sass-embedded 1.79.2-x86-mingw-ucrt → 1.79.4-x86-mingw-ucrt

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/exe/sass +1 -9
  3. data/ext/sass/dart-sass/src/sass.snapshot +0 -0
  4. data/lib/sass/compiler/connection.rb +1 -9
  5. data/lib/sass/compiler/host/protofier.rb +16 -55
  6. data/lib/sass/elf.rb +4 -4
  7. data/lib/sass/embedded/version.rb +1 -1
  8. data/lib/sass/value/color/channel.rb +79 -0
  9. data/lib/sass/value/color/conversions.rb +464 -0
  10. data/lib/sass/value/color/gamut_map_method/clip.rb +45 -0
  11. data/lib/sass/value/color/gamut_map_method/local_minde.rb +94 -0
  12. data/lib/sass/value/color/gamut_map_method.rb +45 -0
  13. data/lib/sass/value/color/interpolation_method.rb +51 -0
  14. data/lib/sass/value/color/space/a98_rgb.rb +57 -0
  15. data/lib/sass/value/color/space/display_p3.rb +57 -0
  16. data/lib/sass/value/color/space/hsl.rb +65 -0
  17. data/lib/sass/value/color/space/hwb.rb +70 -0
  18. data/lib/sass/value/color/space/lab.rb +77 -0
  19. data/lib/sass/value/color/space/lch.rb +53 -0
  20. data/lib/sass/value/color/space/lms.rb +129 -0
  21. data/lib/sass/value/color/space/oklab.rb +66 -0
  22. data/lib/sass/value/color/space/oklch.rb +54 -0
  23. data/lib/sass/value/color/space/prophoto_rgb.rb +59 -0
  24. data/lib/sass/value/color/space/rec2020.rb +69 -0
  25. data/lib/sass/value/color/space/rgb.rb +52 -0
  26. data/lib/sass/value/color/space/srgb.rb +141 -0
  27. data/lib/sass/value/color/space/srgb_linear.rb +72 -0
  28. data/lib/sass/value/color/space/utils.rb +86 -0
  29. data/lib/sass/value/color/space/xyz_d50.rb +100 -0
  30. data/lib/sass/value/color/space/xyz_d65.rb +57 -0
  31. data/lib/sass/value/color/space.rb +198 -0
  32. data/lib/sass/value/color.rb +537 -162
  33. data/lib/sass/value/fuzzy_math.rb +30 -3
  34. data/lib/sass/value/string.rb +1 -1
  35. metadata +29 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 816b4f1f16774c6bb73babb559badf8e5aef56789899df6465ce6a596b212a8e
4
- data.tar.gz: 780f0d75ddc6c3917908fa69eaf2af6d008c6cb37ae1098d3dc5234b9e8ea870
3
+ metadata.gz: aaf9888f94c9df6c9e646ccbdb100fa956015bae2900d2360b57670f55d098c9
4
+ data.tar.gz: b1c604ed640b95156bfc7800c0bb38623656c0479f80aa573fcc7be0211a0658
5
5
  SHA512:
6
- metadata.gz: 6fd6939d1fc0c78788c533b071caf3060f262ef8d365872ef2f60d842093759c6f4d740213bb25ab6a3fcc8ad83d883c94d632dc7872c7cd685ecaa512dd74d3
7
- data.tar.gz: ac65dc47e66cf040c6758e39abd98cd44cf0e1fd9a934943937ab8650793d9a964b427b1e8ae8700dbc0fdf7d4d8e092055d1fb7965d78745b396ca1144a1fe2
6
+ metadata.gz: 6fa64ee82b7978103d211f69bb745bf6c724e279503b9871cce29e37cab6e25e39677d084eb0e0aa3b309a52996e7fe1a4c6e64d3e31aad9e1e6bcfd7345d59b
7
+ data.tar.gz: efa7c5a290a7181d0e3285abd8ff0801bfb9606a47b36bb111cc8ccd691eb39cc4e273870b2612c3bc0f98f5f1648c5f5eab3ea87fc5ff294aec3add2d0bc1c8
data/exe/sass CHANGED
@@ -6,15 +6,7 @@ require_relative '../ext/sass/cli'
6
6
  module Sass
7
7
  # The `sass` command line interface
8
8
  module CLI
9
- begin
10
- Kernel.exec(*COMMAND, *ARGV)
11
- rescue Errno::ENOENT
12
- require_relative '../lib/sass/elf'
13
-
14
- raise if ELF::INTERPRETER.nil?
15
-
16
- Kernel.exec(ELF::INTERPRETER, *COMMAND, *ARGV)
17
- end
9
+ Kernel.exec(*COMMAND, *ARGV)
18
10
  end
19
11
 
20
12
  private_constant :CLI
Binary file
@@ -12,15 +12,7 @@ module Sass
12
12
  class Connection
13
13
  def initialize
14
14
  @mutex = Mutex.new
15
- @stdin, @stdout, @stderr, @wait_thread = begin
16
- Open3.popen3(*CLI::COMMAND, '--embedded', chdir: __dir__)
17
- rescue Errno::ENOENT
18
- require_relative '../elf'
19
-
20
- raise if ELF::INTERPRETER.nil?
21
-
22
- Open3.popen3(ELF::INTERPRETER, *CLI::COMMAND, '--embedded', chdir: __dir__)
23
- end
15
+ @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(*CLI::COMMAND, '--embedded', chdir: __dir__)
24
16
 
25
17
  @stdin.binmode
26
18
 
@@ -25,37 +25,15 @@ module Sass
25
25
  number: Number.to_proto(obj)
26
26
  )
27
27
  when Sass::Value::Color
28
- if obj.instance_eval { !defined?(@hue) }
29
- EmbeddedProtocol::Value.new(
30
- color: EmbeddedProtocol::Value::Color.new(
31
- channel1: obj.red,
32
- channel2: obj.green,
33
- channel3: obj.blue,
34
- alpha: obj.alpha.to_f,
35
- space: 'rgb'
36
- )
37
- )
38
- elsif obj.instance_eval { !defined?(@saturation) }
39
- EmbeddedProtocol::Value.new(
40
- color: EmbeddedProtocol::Value::Color.new(
41
- channel1: obj.hue.to_f,
42
- channel2: obj.whiteness.to_f,
43
- channel3: obj.blackness.to_f,
44
- alpha: obj.alpha.to_f,
45
- space: 'hwb'
46
- )
47
- )
48
- else
49
- EmbeddedProtocol::Value.new(
50
- color: EmbeddedProtocol::Value::Color.new(
51
- channel1: obj.hue.to_f,
52
- channel2: obj.saturation.to_f,
53
- channel3: obj.lightness.to_f,
54
- alpha: obj.alpha.to_f,
55
- space: 'hsl'
56
- )
28
+ EmbeddedProtocol::Value.new(
29
+ color: EmbeddedProtocol::Value::Color.new(
30
+ channel1: obj.send(:channel0_or_nil),
31
+ channel2: obj.send(:channel1_or_nil),
32
+ channel3: obj.send(:channel2_or_nil),
33
+ alpha: obj.send(:alpha_or_nil),
34
+ space: obj.space
57
35
  )
58
- end
36
+ )
59
37
  when Sass::Value::ArgumentList
60
38
  EmbeddedProtocol::Value.new(
61
39
  argument_list: EmbeddedProtocol::Value::ArgumentList.new(
@@ -134,31 +112,14 @@ module Sass
134
112
  when :number
135
113
  Number.from_proto(obj)
136
114
  when :color
137
- case obj.space
138
- when 'rgb'
139
- Sass::Value::Color.new(
140
- red: obj.channel1,
141
- green: obj.channel2,
142
- blue: obj.channel3,
143
- alpha: obj.alpha
144
- )
145
- when 'hsl'
146
- Sass::Value::Color.new(
147
- hue: obj.channel1,
148
- saturation: obj.channel2,
149
- lightness: obj.channel3,
150
- alpha: obj.alpha
151
- )
152
- when 'hwb'
153
- Sass::Value::Color.new(
154
- hue: obj.channel1,
155
- whiteness: obj.channel2,
156
- blackness: obj.channel3,
157
- alpha: obj.alpha
158
- )
159
- else
160
- raise NotImplementedError, 'CSS Color Level 4 will be supported in a future release'
161
- end
115
+ Sass::Value::Color.send(
116
+ :for_space,
117
+ obj.space,
118
+ obj.channel1,
119
+ obj.channel2,
120
+ obj.channel3,
121
+ obj.alpha
122
+ )
162
123
  when :argument_list
163
124
  Sass::Value::ArgumentList.new(
164
125
  obj.contents.map do |element|
data/lib/sass/elf.rb CHANGED
@@ -147,7 +147,7 @@ module Sass
147
147
  elf_ehdr = :Elf64_Ehdr
148
148
  elf_phdr = :Elf64_Phdr
149
149
  else
150
- raise ArgumentError
150
+ raise EncodingError
151
151
  end
152
152
 
153
153
  case @ehdr[:e_ident][EI_DATA]
@@ -156,7 +156,7 @@ module Sass
156
156
  when ELFDATA2MSB
157
157
  little_endian = false
158
158
  else
159
- raise ArgumentError
159
+ raise EncodingError
160
160
  end
161
161
 
162
162
  @ehdr.merge!(read(elf_ehdr, little_endian))
@@ -189,7 +189,7 @@ module Sass
189
189
 
190
190
  @buffer.seek(phdr[:p_offset], IO::SEEK_SET)
191
191
  interpreter = @buffer.read(phdr[:p_filesz])
192
- raise ArgumentError unless interpreter.end_with?("\0")
192
+ raise EncodingError unless interpreter.end_with?("\0")
193
193
 
194
194
  interpreter.chomp!("\0")
195
195
  end
@@ -215,7 +215,7 @@ module Sass
215
215
  end
216
216
  end
217
217
  end
218
- end
218
+ end.freeze
219
219
  end
220
220
 
221
221
  private_constant :ELF
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sass
4
4
  module Embedded
5
- VERSION = '1.79.2'
5
+ VERSION = '1.79.4'
6
6
  end
7
7
  end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ module Value
5
+ class Color
6
+ # @see https://github.com/sass/dart-sass/blob/main/lib/src/value/color/channel.dart
7
+ class ColorChannel
8
+ # @return [::String]
9
+ attr_reader :name
10
+
11
+ # @return [::Boolean]
12
+ def polar_angle?
13
+ @polar_angle
14
+ end
15
+
16
+ # @return [::String, nil]
17
+ attr_reader :associated_unit
18
+
19
+ # @param name [::String]
20
+ # @param polar_angle [::Boolean]
21
+ # @param associated_unit [::String]
22
+ def initialize(name, polar_angle:, associated_unit: nil)
23
+ @name = name
24
+ @polar_angle = polar_angle
25
+ @associated_unit = associated_unit
26
+ end
27
+
28
+ # @return [::Boolean]
29
+ def analogous?(other)
30
+ case [name, other.name]
31
+ in ['red' | 'x', 'red' | 'x'] |
32
+ ['green' | 'y', 'green' | 'y'] |
33
+ ['blue' | 'z', 'blue' | 'z'] |
34
+ ['chroma' | 'saturation', 'chroma' | 'saturation'] |
35
+ ['lightness', 'lightness'] |
36
+ ['hue', 'hue']
37
+ true
38
+ else
39
+ false
40
+ end
41
+ end
42
+ end
43
+
44
+ private_constant :ColorChannel
45
+
46
+ # @see https://github.com/sass/dart-sass/blob/main/lib/src/value/color/channel.dart
47
+ class LinearChannel < ColorChannel
48
+ # @return [Numeric]
49
+ attr_reader :min, :max
50
+
51
+ # @return [::Boolean]
52
+ attr_reader :requires_percent, :lower_clamped, :upper_clamped
53
+
54
+ # @param name [::String]
55
+ # @param min [Numeric]
56
+ # @param max [Numeric]
57
+ # @param requires_percent [::Boolean]
58
+ # @param lower_clamped [::Boolean]
59
+ # @param upper_clamped [::Boolean]
60
+ # @param conventionally_percent [::Boolean]
61
+ def initialize(name, min, max, requires_percent: false, lower_clamped: false, upper_clamped: false,
62
+ conventionally_percent: nil)
63
+ super(name,
64
+ polar_angle: false,
65
+ associated_unit: if conventionally_percent.nil? ? (min.zero? && max == 100) : conventionally_percent
66
+ '%'
67
+ end)
68
+ @min = min
69
+ @max = max
70
+ @requires_percent = requires_percent
71
+ @lower_clamped = lower_clamped
72
+ @upper_clamped = upper_clamped
73
+ end
74
+ end
75
+
76
+ private_constant :LinearChannel
77
+ end
78
+ end
79
+ end