sass4 4.0.3 → 4.0.5

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/sass/scss/parser.rb +33 -2
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90f56f1c32e82c05a51ec107e401ac59d366b8060fdecb63a8e633ae3304979c
4
- data.tar.gz: 8b0611a66faf22a436b59ebb4d7ec7b5d4b2656944426cd4eb0b60f28d8c1d40
3
+ metadata.gz: a95a8abb4e8cac8e011430db6f4b0420734229f1c3d34679021a36b7f2319522
4
+ data.tar.gz: 8d2d7d357322744008fb0626f67593e2fdfcdf6582df2dc717da8dfbaf586613
5
5
  SHA512:
6
- metadata.gz: 1a719b57e58444d007b5d269059cf2a7ae580e5c8cff0cc8df0ba6e2037993923ef716f6d1c8ff025ada04d23015bcaf9616bfb03eb9caa40a433a4d83a5453a
7
- data.tar.gz: 2a368b557d9338bdc995d0444d0b2c499d56217c07666e20a1edcd918ef45a63b5907aca8380b57bba7fd0c494c063b53d8526c4087432bf9c3ad65695e7b697
6
+ metadata.gz: b6303afe9ca9060a8de4e6fd4e9e8cc0e0ac024916abf9e494a323e636f77e6b8907d6f3c31755db23d89e0b1115f799c3f89b64e2468683b74571209cb491f3
7
+ data.tar.gz: 581d6dbb0a5ead1cb9f6f3dd40dec02992e77d691bcd22360166ded3538b4bfd4ebca7b7a9d04509237da2a6e0b989feb2a7312f6c466bd674f8c5cdcbdc839f
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.3
1
+ 4.0.5
@@ -904,12 +904,14 @@ module Sass
904
904
  # semantics.
905
905
  #
906
906
  # [token consumption algorithm]: https://drafts.csswg.org/css-syntax-3/#consume-token.
907
- result = tok(%r{
907
+ result = sass_variable_in_custom_property ||
908
+ declaration_value_quoted_url ||
909
+ tok(%r{
908
910
  (
909
911
  (?!
910
912
  url\(
911
913
  )
912
- [^()\[\]{}"'#/ \t\r\n\f#{top_level ? ";" : ""}]
914
+ [^()\[\]{}"'\#$/ \t\r\n\f#{top_level ? ";" : ""}]
913
915
  |
914
916
  \#(?!\{)
915
917
  |
@@ -942,6 +944,25 @@ module Sass
942
944
  end
943
945
  end
944
946
 
947
+ # url("...") and url('...') inside custom property values (Dart Sass
948
+ # handles these via bracket/string scanning; our url lexer only matched
949
+ # unquoted URLCHAR, so quoted data URIs failed before any '(' token).
950
+ def declaration_value_quoted_url
951
+ start = @scanner.pos
952
+ return unless tok(/url\(#{W}/i)
953
+ inner = interp_string
954
+ unless inner
955
+ @scanner.pos = start
956
+ return
957
+ end
958
+ ss
959
+ unless tok(/\)/)
960
+ @scanner.pos = start
961
+ return
962
+ end
963
+ ['url(', *inner, ')']
964
+ end
965
+
945
966
  def declaration
946
967
  # This allows the "*prop: val", ":prop: val", "#prop: val", and ".prop:
947
968
  # val" hacks.
@@ -1061,6 +1082,16 @@ module Sass
1061
1082
  sass_script(:parse_interpolated, warn_for_color)
1062
1083
  end
1063
1084
 
1085
+ def sass_variable_in_custom_property
1086
+ start_pos = source_position
1087
+ return unless tok(VARIABLE)
1088
+ name = @scanner[2]
1089
+ var = Sass::Script::Tree::Variable.new(name)
1090
+ var.line = @line
1091
+ var.source_range = range(start_pos)
1092
+ var
1093
+ end
1094
+
1064
1095
  def string
1065
1096
  return unless tok(STRING)
1066
1097
  Sass::Script::Value::String.value(@scanner[1] || @scanner[2])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass4
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2026-04-03 00:00:00.000000000 Z
14
+ date: 2026-04-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: sass-listen