markawesome 0.10.0 → 0.11.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 +4 -4
- data/CHANGELOG.md +22 -0
- data/lib/markawesome/transformers/button_transformer.rb +1 -1
- data/lib/markawesome/transformers/callout_transformer.rb +1 -1
- data/lib/markawesome/transformers/details_transformer.rb +1 -1
- data/lib/markawesome/transformers/dialog_transformer.rb +3 -3
- data/lib/markawesome/transformers/layout_transformer.rb +1 -1
- data/lib/markawesome/transformers/popover_transformer.rb +12 -5
- data/lib/markawesome/transformers/tag_transformer.rb +1 -1
- data/lib/markawesome/version.rb +1 -1
- data/markawesome.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ff219b440ba6edf0b45bffa865e4ff4bf8516d5f3c214aa8bdff33c41133565
|
|
4
|
+
data.tar.gz: b22df3f6875fcae4e9a98f0b86e384c2841ad14942f85832f70c5521c6a4058e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 84a1023e4464efd824f30f1612ede362a7469af9e47a3484b645dd921cad2c24aeda58f51ca4b00727ad5d327015e1cb68ed7892df00c97fdacee42ad3809c9a
|
|
7
|
+
data.tar.gz: 883d44d1df8777343f2ff998ef95f8a832a6333066eca8d9e782c6c9026884c1e56f9459ecbd40b30f1f6be716bf22773c225eb0384867b6ad8d2fe1bef5c8a4
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.11.0] - 2026-06-16
|
|
8
|
+
|
|
9
|
+
Aligns generated markup with Web Awesome 3.8.0 (latest). See `ROADMAP.md` for the remaining enhancement backlog from the same audit.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- `DialogTransformer` footer button now emits `variant='brand'` instead of the non-existent `variant='primary'`. `primary` is a Shoelace-era value with no equivalent in Web Awesome 3.x, so the button silently fell back to the default neutral variant instead of rendering as a brand call-to-action.
|
|
14
|
+
- `DialogTransformer` image-trigger buttons now emit `appearance='plain'` instead of the invalid `variant='text'`. Because `text` is not a valid `variant`, the wrapping button fell back to the default `accent` appearance — rendering image thumbnails inside a filled accent button background. `appearance='plain'` removes the button chrome as intended.
|
|
15
|
+
- `PopoverTransformer` triggers now emit `appearance='plain'` instead of the invalid `variant='text'`, so popover triggers render as plain text rather than filled buttons.
|
|
16
|
+
- `DetailsTransformer` now emits `appearance='filled-outlined'` (hyphenated) instead of `'filled outlined'` (space). The space-separated value is not a valid appearance and silently fell back to `outlined`.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Web Awesome 3.x size scale (`xs`, `s`, `m`, `l`, `xl`) is now accepted for `button`, `callout`, and `tag` components. The legacy `small`/`medium`/`large` tokens continue to work.
|
|
21
|
+
- Layout utilities now accept the `4xl` and `5xl` gap tokens (`wa-gap-4xl`, `wa-gap-5xl`), added to Web Awesome's spacing scale in 3.4.
|
|
22
|
+
|
|
23
|
+
## [0.10.1] - 2026-05-08
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- `PopoverTransformer` no longer emits duplicate `id` attributes when the same popover (identical trigger text and content) appears more than once in a document. Popover IDs were derived solely from `MD5(trigger + content)`, so repeated popovers shared an ID and triggered HTML validators' `no-dup-id` rule. The first occurrence keeps its existing ID for backwards compatibility; subsequent occurrences are suffixed with `-2`, `-3`, etc.
|
|
28
|
+
|
|
7
29
|
## [0.10.0] - 2026-05-05
|
|
8
30
|
|
|
9
31
|
### Added
|
|
@@ -25,7 +25,7 @@ module Markawesome
|
|
|
25
25
|
BUTTON_ATTRIBUTES = {
|
|
26
26
|
variant: %w[brand success neutral warning danger],
|
|
27
27
|
appearance: %w[accent filled outlined filled-outlined plain],
|
|
28
|
-
size: %w[small medium large],
|
|
28
|
+
size: %w[xs s m l xl small medium large],
|
|
29
29
|
pill: %w[pill],
|
|
30
30
|
caret: %w[caret],
|
|
31
31
|
loading: %w[loading],
|
|
@@ -14,7 +14,7 @@ module Markawesome
|
|
|
14
14
|
class CalloutTransformer < BaseTransformer
|
|
15
15
|
VARIANTS = %w[info brand success neutral warning danger].freeze
|
|
16
16
|
CALLOUT_ATTRIBUTES = {
|
|
17
|
-
size: %w[small medium large],
|
|
17
|
+
size: %w[xs s m l xl small medium large],
|
|
18
18
|
appearance: %w[accent filled outlined plain filled-outlined]
|
|
19
19
|
}.freeze
|
|
20
20
|
VARIANT_ALIASES = { 'info' => 'brand' }.freeze
|
|
@@ -160,15 +160,15 @@ module Markawesome
|
|
|
160
160
|
# Only allow HTML for image tags (for image dialog support), escape everything else for security
|
|
161
161
|
button_content = is_image_button ? button_text : escape_html(button_text)
|
|
162
162
|
button_id_attr = is_image_button ? " id='#{button_id}'" : ''
|
|
163
|
-
|
|
164
|
-
html << "<wa-button#{button_id_attr}#{
|
|
163
|
+
button_appearance = is_image_button ? " appearance='plain'" : ''
|
|
164
|
+
html << "<wa-button#{button_id_attr}#{button_appearance} data-dialog='open #{dialog_id}'>#{button_content}</wa-button>"
|
|
165
165
|
|
|
166
166
|
# Dialog element
|
|
167
167
|
html << "<wa-dialog #{dialog_attrs.join(' ')}#{style_attr}>"
|
|
168
168
|
html << content_html
|
|
169
169
|
|
|
170
170
|
# Footer with close button
|
|
171
|
-
html << "<wa-button slot='footer' variant='
|
|
171
|
+
html << "<wa-button slot='footer' variant='brand' data-dialog='close'>Close</wa-button>"
|
|
172
172
|
|
|
173
173
|
html << '</wa-dialog>'
|
|
174
174
|
|
|
@@ -18,7 +18,7 @@ module Markawesome
|
|
|
18
18
|
# Flank-specific: start, end modifiers; size:CSS_VALUE, content:PCT
|
|
19
19
|
# Frame-specific: landscape, portrait, square modifiers; radius:SIZE
|
|
20
20
|
class LayoutTransformer < BaseTransformer
|
|
21
|
-
VALID_GAPS = %w[0 3xs 2xs xs s m l xl 2xl 3xl].freeze
|
|
21
|
+
VALID_GAPS = %w[0 3xs 2xs xs s m l xl 2xl 3xl 4xl 5xl].freeze
|
|
22
22
|
VALID_ALIGNS = %w[start end center stretch baseline].freeze
|
|
23
23
|
VALID_JUSTIFIES = %w[start end center space-between space-around space-evenly].freeze
|
|
24
24
|
VALID_RADII = %w[s m l pill circle square].freeze
|
|
@@ -22,6 +22,11 @@ module Markawesome
|
|
|
22
22
|
}.freeze
|
|
23
23
|
|
|
24
24
|
def self.transform(content)
|
|
25
|
+
# Tracks ID base usage within this transform call so repeated popovers
|
|
26
|
+
# (same trigger + content) get disambiguated suffixes instead of
|
|
27
|
+
# colliding on the page.
|
|
28
|
+
seen_ids = Hash.new(0)
|
|
29
|
+
|
|
25
30
|
# Inline regex (single-line, no newlines allowed)
|
|
26
31
|
inline_regex = /&&&[ \t]*([^\r\n]*?)[ \t]*>>>[ \t]*([^\r\n]+?)[ \t]*&&&/
|
|
27
32
|
|
|
@@ -39,7 +44,7 @@ module Markawesome
|
|
|
39
44
|
params_string, trigger_text = parse_inline_trigger_and_params(combined)
|
|
40
45
|
placement, without_arrow, distance, _link_style = parse_parameters(params_string)
|
|
41
46
|
|
|
42
|
-
popover_id = generate_popover_id(trigger_text, popover_content)
|
|
47
|
+
popover_id = generate_popover_id(trigger_text, popover_content, seen_ids)
|
|
43
48
|
|
|
44
49
|
build_inline_popover_html(popover_id, trigger_text, popover_content,
|
|
45
50
|
{ placement: placement, without_arrow: without_arrow,
|
|
@@ -54,7 +59,7 @@ module Markawesome
|
|
|
54
59
|
|
|
55
60
|
placement, without_arrow, distance, link_style = parse_parameters(params_string)
|
|
56
61
|
|
|
57
|
-
popover_id = generate_popover_id(trigger_text, popover_content)
|
|
62
|
+
popover_id = generate_popover_id(trigger_text, popover_content, seen_ids)
|
|
58
63
|
|
|
59
64
|
content_html = markdown_to_html(popover_content)
|
|
60
65
|
|
|
@@ -116,10 +121,12 @@ module Markawesome
|
|
|
116
121
|
[placement, without_arrow, distance, link_style]
|
|
117
122
|
end
|
|
118
123
|
|
|
119
|
-
def generate_popover_id(trigger_text, content)
|
|
124
|
+
def generate_popover_id(trigger_text, content, seen_ids)
|
|
120
125
|
hash_input = "#{trigger_text}#{content}"
|
|
121
126
|
hash = Digest::MD5.hexdigest(hash_input)
|
|
122
|
-
"popover-#{hash[0..7]}"
|
|
127
|
+
base = "popover-#{hash[0..7]}"
|
|
128
|
+
occurrence = seen_ids[base] += 1
|
|
129
|
+
occurrence == 1 ? base : "#{base}-#{occurrence}"
|
|
123
130
|
end
|
|
124
131
|
|
|
125
132
|
def parse_inline_trigger_and_params(combined_string)
|
|
@@ -195,7 +202,7 @@ module Markawesome
|
|
|
195
202
|
'cursor: pointer; font: inherit;'
|
|
196
203
|
"<button type='button' id='#{popover_id}' class='ma-popover-trigger' style='#{link_style_attr}'>#{trigger_content}</button>"
|
|
197
204
|
else
|
|
198
|
-
"<wa-button id='#{popover_id}'
|
|
205
|
+
"<wa-button id='#{popover_id}' appearance='plain'>#{trigger_content}</wa-button>"
|
|
199
206
|
end
|
|
200
207
|
end
|
|
201
208
|
|
|
@@ -21,7 +21,7 @@ module Markawesome
|
|
|
21
21
|
COMPONENT_ATTRIBUTES = {
|
|
22
22
|
variant: %w[brand success neutral warning danger],
|
|
23
23
|
appearance: %w[accent filled outlined filled-outlined],
|
|
24
|
-
size: %w[small medium large],
|
|
24
|
+
size: %w[xs s m l xl small medium large],
|
|
25
25
|
pill: %w[pill],
|
|
26
26
|
'with-remove': %w[with-remove]
|
|
27
27
|
}.freeze
|
data/lib/markawesome/version.rb
CHANGED
data/markawesome.gemspec
CHANGED
|
@@ -35,7 +35,6 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
|
|
36
36
|
spec.add_dependency 'kramdown', '~> 2.0'
|
|
37
37
|
|
|
38
|
-
spec.add_development_dependency 'bundler', '~> 2.0'
|
|
39
38
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
40
39
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
41
40
|
spec.add_development_dependency 'rubocop', '~> 1.0'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: markawesome
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Janne Waren
|
|
@@ -23,20 +23,6 @@ dependencies:
|
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '2.0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: bundler
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '2.0'
|
|
33
|
-
type: :development
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '2.0'
|
|
40
26
|
- !ruby/object:Gem::Dependency
|
|
41
27
|
name: rake
|
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -137,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
137
123
|
- !ruby/object:Gem::Version
|
|
138
124
|
version: '0'
|
|
139
125
|
requirements: []
|
|
140
|
-
rubygems_version: 4.0.
|
|
126
|
+
rubygems_version: 4.0.10
|
|
141
127
|
specification_version: 4
|
|
142
128
|
summary: Framework-agnostic Markdown to Web Awesome component transformer
|
|
143
129
|
test_files: []
|