zuora_connect_ui 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (449) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/zuora_connect_ui.js +1 -0
  3. data/app/assets/javascripts/zuora_connect_ui/util.js +51 -0
  4. data/app/assets/stylesheets/_zuora_connect_ui.scss +4 -6
  5. data/app/assets/stylesheets/zuora_connect_ui/datatables.scss +3 -3
  6. data/app/helpers/zuora_connect_ui/application_helper.rb +28 -4
  7. data/app/views/partials/_table.html.erb +16 -7
  8. data/lib/zuora_connect_ui/version.rb +1 -1
  9. data/vendor/ruby/2.6.0/cache/autoprefixer-rails-9.6.1.1.gem +0 -0
  10. data/vendor/ruby/2.6.0/cache/parser-2.6.4.1.gem +0 -0
  11. data/vendor/ruby/2.6.0/cache/sassc-2.2.0.gem +0 -0
  12. data/vendor/ruby/2.6.0/cache/zeitwerk-2.1.10.gem +0 -0
  13. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem.build_complete +0 -0
  14. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem_make.out +75 -0
  15. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/sassc/libsass.so +0 -0
  16. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/CHANGELOG.md +1085 -0
  17. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Gemfile +10 -0
  18. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/LICENSE +20 -0
  19. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/README.md +237 -0
  20. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Rakefile +53 -0
  21. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/autoprefixer-rails.gemspec +32 -0
  22. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails.rb +41 -0
  23. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/processor.rb +194 -0
  24. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/railtie.rb +50 -0
  25. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/result.rb +24 -0
  26. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/sprockets.rb +62 -0
  27. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/version.rb +3 -0
  28. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/rake/autoprefixer_tasks.rb +28 -0
  29. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/Rakefile +2 -0
  30. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/config/manifest.js +0 -0
  31. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/evaluate.css.erb +1 -0
  32. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/loaded.sass +2 -0
  33. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/sass.sass +1 -0
  34. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/test.css +3 -0
  35. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/wrong.css +2 -0
  36. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/application_controller.rb +2 -0
  37. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/css_controller.rb +6 -0
  38. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config.ru +2 -0
  39. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/application.rb +16 -0
  40. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/autoprefixer.yml +2 -0
  41. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/boot.rb +2 -0
  42. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environment.rb +3 -0
  43. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environments/test.rb +9 -0
  44. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/initializers/secret_token.rb +1 -0
  45. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/routes.rb +3 -0
  46. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/autoprefixer_spec.rb +121 -0
  47. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/processor_spec.rb +25 -0
  48. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/rails_spec.rb +40 -0
  49. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/railtie_spec.rb +29 -0
  50. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/spec_helper.rb +16 -0
  51. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/vendor/autoprefixer.js +67195 -0
  52. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CHANGELOG.md +909 -0
  53. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CONTRIBUTING.md +17 -0
  54. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Gemfile +10 -0
  55. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/LICENSE.txt +25 -0
  56. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/README.md +301 -0
  57. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Rakefile +166 -0
  58. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-parse +7 -0
  59. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-rewrite +7 -0
  60. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/ci/run_rubocop_specs +14 -0
  61. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/AST_FORMAT.md +1816 -0
  62. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/CUSTOMIZATION.md +37 -0
  63. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/INTERNALS.md +21 -0
  64. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/css/common.css +68 -0
  65. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/gauntlet_parser.rb +123 -0
  66. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser.rb +82 -0
  67. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/all.rb +12 -0
  68. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/node.rb +40 -0
  69. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/processor.rb +264 -0
  70. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/base.rb +270 -0
  71. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/builders/default.rb +1741 -0
  72. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/clobbering_error.rb +13 -0
  73. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/color.rb +32 -0
  74. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/context.rb +59 -0
  75. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/current.rb +92 -0
  76. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/deprecation.rb +13 -0
  77. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic.rb +163 -0
  78. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic/engine.rb +105 -0
  79. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rb +23546 -0
  80. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rl +2503 -0
  81. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/dedenter.rb +79 -0
  82. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/explanation.rb +55 -0
  83. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/literal.rb +269 -0
  84. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/max_numparam_stack.rb +42 -0
  85. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/stack_state.rb +49 -0
  86. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.rb +6124 -0
  87. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.y +2198 -0
  88. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/messages.rb +90 -0
  89. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/meta.rb +33 -0
  90. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rewriter.rb +105 -0
  91. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.rb +5661 -0
  92. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.y +1934 -0
  93. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.rb +6084 -0
  94. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.y +2175 -0
  95. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.rb +6511 -0
  96. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.y +2353 -0
  97. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.rb +6570 -0
  98. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.y +2357 -0
  99. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.rb +6605 -0
  100. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.y +2364 -0
  101. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.rb +6624 -0
  102. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.y +2370 -0
  103. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.rb +6689 -0
  104. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.y +2408 -0
  105. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.rb +6656 -0
  106. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.y +2405 -0
  107. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.rb +6670 -0
  108. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.y +2413 -0
  109. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.rb +6893 -0
  110. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.y +2470 -0
  111. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.rb +6078 -0
  112. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.y +2182 -0
  113. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner.rb +253 -0
  114. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_parse.rb +157 -0
  115. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_rewrite.rb +101 -0
  116. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/buffer.rb +330 -0
  117. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment.rb +121 -0
  118. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment/associator.rb +210 -0
  119. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map.rb +186 -0
  120. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/collection.rb +18 -0
  121. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/condition.rb +21 -0
  122. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/constant.rb +32 -0
  123. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/definition.rb +23 -0
  124. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/for.rb +19 -0
  125. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/heredoc.rb +19 -0
  126. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/index.rb +33 -0
  127. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/keyword.rb +20 -0
  128. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/objc_kwarg.rb +19 -0
  129. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/operator.rb +17 -0
  130. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/rescue_body.rb +21 -0
  131. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/send.rb +36 -0
  132. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/ternary.rb +18 -0
  133. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/variable.rb +31 -0
  134. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/range.rb +310 -0
  135. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter.rb +513 -0
  136. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter/action.rb +44 -0
  137. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter.rb +301 -0
  138. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter/action.rb +133 -0
  139. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/static_environment.rb +46 -0
  140. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/syntax_error.rb +21 -0
  141. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/tree_rewriter.rb +134 -0
  142. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/version.rb +5 -0
  143. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/parser.gemspec +51 -0
  144. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/input.rb +5 -0
  145. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/output.rb +5 -0
  146. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/rewriter.rb +20 -0
  147. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/helper.rb +59 -0
  148. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/parse_helper.rb +316 -0
  149. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/racc_coverage_helper.rb +133 -0
  150. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_base.rb +31 -0
  151. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_current.rb +29 -0
  152. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic.rb +96 -0
  153. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic_engine.rb +62 -0
  154. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_encoding.rb +99 -0
  155. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer.rb +3659 -0
  156. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer_stack_state.rb +78 -0
  157. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parse_helper.rb +80 -0
  158. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parser.rb +7579 -0
  159. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_parse.rb +35 -0
  160. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_rewrite.rb +47 -0
  161. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_buffer.rb +162 -0
  162. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment.rb +36 -0
  163. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment_associator.rb +367 -0
  164. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_map.rb +15 -0
  165. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_range.rb +172 -0
  166. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter.rb +541 -0
  167. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter_action.rb +46 -0
  168. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_tree_rewriter.rb +173 -0
  169. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_static_environment.rb +45 -0
  170. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/input.rb +3 -0
  171. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/output.rb +3 -0
  172. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/using_tree_rewriter.rb +9 -0
  173. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CHANGELOG.md +77 -0
  174. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CODE_OF_CONDUCT.md +10 -0
  175. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Gemfile +2 -0
  176. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/LICENSE.txt +22 -0
  177. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/README.md +68 -0
  178. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Rakefile +53 -0
  179. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/Makefile +271 -0
  180. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/SharedPtr.o +0 -0
  181. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast.o +0 -0
  182. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast2c.o +0 -0
  183. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_fwd_decl.o +0 -0
  184. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_cmp.o +0 -0
  185. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_unify.o +0 -0
  186. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_selectors.o +0 -0
  187. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_supports.o +0 -0
  188. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_values.o +0 -0
  189. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/backtrace.o +0 -0
  190. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/base64vlq.o +0 -0
  191. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/bind.o +0 -0
  192. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c2ast.o +0 -0
  193. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c99func.o +0 -0
  194. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cencode.o +0 -0
  195. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/check_nesting.o +0 -0
  196. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/color_maps.o +0 -0
  197. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/constants.o +0 -0
  198. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/context.o +0 -0
  199. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cssize.o +0 -0
  200. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/depend +4 -0
  201. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/emitter.o +0 -0
  202. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/environment.o +0 -0
  203. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/error_handling.o +0 -0
  204. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/eval.o +0 -0
  205. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/expand.o +0 -0
  206. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extconf.rb +84 -0
  207. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extend.o +0 -0
  208. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/file.o +0 -0
  209. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_colors.o +0 -0
  210. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_lists.o +0 -0
  211. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_maps.o +0 -0
  212. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_miscs.o +0 -0
  213. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_numbers.o +0 -0
  214. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_selectors.o +0 -0
  215. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_strings.o +0 -0
  216. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_utils.o +0 -0
  217. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/inspect.o +0 -0
  218. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/json.o +0 -0
  219. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/lexer.o +0 -0
  220. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass.so +0 -0
  221. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/VERSION +1 -0
  222. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/contrib/plugin.cpp +60 -0
  223. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass.h +15 -0
  224. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/base.h +96 -0
  225. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/context.h +170 -0
  226. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/functions.h +139 -0
  227. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/values.h +145 -0
  228. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/version.h +12 -0
  229. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass2scss.h +120 -0
  230. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.cpp +963 -0
  231. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.hpp +905 -0
  232. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.cpp +80 -0
  233. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.hpp +39 -0
  234. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_def_macros.hpp +132 -0
  235. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.cpp +30 -0
  236. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.hpp +341 -0
  237. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_cmp.cpp +909 -0
  238. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_unify.cpp +280 -0
  239. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.cpp +1475 -0
  240. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.hpp +568 -0
  241. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.cpp +130 -0
  242. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.hpp +121 -0
  243. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.cpp +967 -0
  244. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.hpp +489 -0
  245. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/cencode.h +32 -0
  246. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/encode.h +79 -0
  247. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.cpp +50 -0
  248. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.hpp +29 -0
  249. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.cpp +47 -0
  250. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.hpp +30 -0
  251. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.cpp +312 -0
  252. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.hpp +15 -0
  253. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.cpp +64 -0
  254. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.hpp +14 -0
  255. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c99func.c +54 -0
  256. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cencode.c +108 -0
  257. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.cpp +394 -0
  258. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.hpp +66 -0
  259. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.cpp +651 -0
  260. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.hpp +331 -0
  261. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.cpp +194 -0
  262. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.hpp +194 -0
  263. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.cpp +890 -0
  264. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.hpp +152 -0
  265. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.cpp +604 -0
  266. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.hpp +77 -0
  267. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debug.hpp +43 -0
  268. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debugger.hpp +807 -0
  269. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.cpp +298 -0
  270. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.hpp +103 -0
  271. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.cpp +260 -0
  272. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.hpp +119 -0
  273. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.cpp +212 -0
  274. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.hpp +229 -0
  275. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.cpp +1657 -0
  276. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.hpp +112 -0
  277. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.cpp +822 -0
  278. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.hpp +78 -0
  279. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.cpp +2132 -0
  280. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.hpp +86 -0
  281. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.cpp +522 -0
  282. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.hpp +133 -0
  283. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.cpp +594 -0
  284. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.hpp +85 -0
  285. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.cpp +284 -0
  286. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.hpp +34 -0
  287. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.cpp +94 -0
  288. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.hpp +30 -0
  289. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.cpp +256 -0
  290. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.hpp +40 -0
  291. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.cpp +220 -0
  292. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.hpp +45 -0
  293. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.cpp +235 -0
  294. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.hpp +35 -0
  295. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.cpp +254 -0
  296. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.hpp +34 -0
  297. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.cpp +156 -0
  298. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.hpp +56 -0
  299. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.cpp +1087 -0
  300. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.hpp +99 -0
  301. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.cpp +1436 -0
  302. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.hpp +117 -0
  303. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/kwd_arg_macros.hpp +28 -0
  304. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.cpp +184 -0
  305. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.hpp +315 -0
  306. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.cpp +84 -0
  307. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.hpp +38 -0
  308. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/mapping.hpp +18 -0
  309. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.cpp +33 -0
  310. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.hpp +286 -0
  311. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.cpp +322 -0
  312. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.hpp +118 -0
  313. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operation.hpp +213 -0
  314. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.cpp +266 -0
  315. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.hpp +30 -0
  316. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.cpp +339 -0
  317. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.hpp +47 -0
  318. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.cpp +3153 -0
  319. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.hpp +402 -0
  320. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/paths.hpp +71 -0
  321. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.cpp +188 -0
  322. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.hpp +57 -0
  323. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.cpp +184 -0
  324. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.hpp +124 -0
  325. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.cpp +1780 -0
  326. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.hpp +484 -0
  327. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.cpp +87 -0
  328. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.hpp +34 -0
  329. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.cpp +155 -0
  330. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.hpp +142 -0
  331. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass2scss.cpp +895 -0
  332. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.cpp +772 -0
  333. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.hpp +129 -0
  334. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.cpp +210 -0
  335. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.hpp +50 -0
  336. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.cpp +152 -0
  337. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.hpp +256 -0
  338. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.cpp +365 -0
  339. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.hpp +82 -0
  340. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.cpp +198 -0
  341. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.hpp +62 -0
  342. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.cpp +58 -0
  343. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.hpp +76 -0
  344. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.cpp +114 -0
  345. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.hpp +46 -0
  346. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.cpp +505 -0
  347. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.hpp +110 -0
  348. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8.h +34 -0
  349. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/checked.h +336 -0
  350. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/core.h +332 -0
  351. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/unchecked.h +235 -0
  352. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.cpp +105 -0
  353. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.hpp +37 -0
  354. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.cpp +725 -0
  355. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.hpp +106 -0
  356. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.cpp +75 -0
  357. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.hpp +19 -0
  358. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.cpp +140 -0
  359. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.hpp +12 -0
  360. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/listize.o +0 -0
  361. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/node.o +0 -0
  362. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/operators.o +0 -0
  363. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/output.o +0 -0
  364. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/parser.o +0 -0
  365. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/plugins.o +0 -0
  366. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/position.o +0 -0
  367. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/prelexer.o +0 -0
  368. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/remove_placeholders.o +0 -0
  369. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass.o +0 -0
  370. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass2scss.o +0 -0
  371. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_context.o +0 -0
  372. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_functions.o +0 -0
  373. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_util.o +0 -0
  374. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_values.o +0 -0
  375. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/source_map.o +0 -0
  376. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/subset_map.o +0 -0
  377. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/to_value.o +0 -0
  378. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/units.o +0 -0
  379. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/utf8_string.o +0 -0
  380. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util.o +0 -0
  381. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util_string.o +0 -0
  382. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/values.o +0 -0
  383. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc.rb +57 -0
  384. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/dependency.rb +17 -0
  385. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/engine.rb +139 -0
  386. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/error.rb +37 -0
  387. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/functions_handler.rb +73 -0
  388. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/import_handler.rb +50 -0
  389. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/importer.rb +31 -0
  390. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/libsass.so +0 -0
  391. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native.rb +62 -0
  392. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/lib_c.rb +21 -0
  393. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_context_api.rb +147 -0
  394. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_functions_api.rb +159 -0
  395. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass2scss_api.rb +10 -0
  396. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_input_style.rb +13 -0
  397. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_output_style.rb +12 -0
  398. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_value.rb +97 -0
  399. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/string_list.rb +10 -0
  400. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/sass_2_scss.rb +9 -0
  401. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script.rb +17 -0
  402. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/functions.rb +8 -0
  403. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value.rb +137 -0
  404. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/bool.rb +32 -0
  405. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/color.rb +95 -0
  406. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/list.rb +136 -0
  407. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/map.rb +69 -0
  408. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/number.rb +389 -0
  409. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/string.rb +96 -0
  410. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion.rb +69 -0
  411. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/base.rb +13 -0
  412. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/bool.rb +13 -0
  413. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/color.rb +18 -0
  414. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/list.rb +25 -0
  415. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/map.rb +21 -0
  416. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/number.rb +13 -0
  417. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/string.rb +17 -0
  418. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util.rb +231 -0
  419. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util/normalized_map.rb +117 -0
  420. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/version.rb +5 -0
  421. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/sassc.gemspec +69 -0
  422. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/custom_importer_test.rb +127 -0
  423. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/engine_test.rb +314 -0
  424. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/error_test.rb +29 -0
  425. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/fixtures/paths.scss +10 -0
  426. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/functions_test.rb +323 -0
  427. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/native_test.rb +213 -0
  428. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/output_style_test.rb +107 -0
  429. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/sass_2_scss_test.rb +14 -0
  430. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/test_helper.rb +45 -0
  431. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/README.md +533 -0
  432. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk.rb +12 -0
  433. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/error.rb +10 -0
  434. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/explicit_namespace.rb +80 -0
  435. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/gem_inflector.rb +19 -0
  436. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/inflector.rb +19 -0
  437. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/kernel.rb +33 -0
  438. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader.rb +759 -0
  439. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader/callbacks.rb +71 -0
  440. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/real_mod_name.rb +15 -0
  441. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/registry.rb +147 -0
  442. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/version.rb +5 -0
  443. data/vendor/ruby/2.6.0/specifications/autoprefixer-rails-9.6.1.1.gemspec +47 -0
  444. data/vendor/ruby/2.6.0/specifications/parser-2.6.4.1.gemspec +62 -0
  445. data/vendor/ruby/2.6.0/specifications/sassc-2.2.0.gemspec +60 -0
  446. data/vendor/ruby/2.6.0/specifications/zeitwerk-2.1.10.gemspec +21 -0
  447. metadata +441 -4
  448. data/vendor/assets/anjuna/css/anjuna-application.css +0 -2
  449. data/vendor/assets/anjuna/css/anjuna-theme.css +0 -2
@@ -0,0 +1,112 @@
1
+ #ifndef SASS_EVAL_H
2
+ #define SASS_EVAL_H
3
+
4
+ #include "ast.hpp"
5
+ #include "context.hpp"
6
+ #include "listize.hpp"
7
+ #include "operation.hpp"
8
+ #include "environment.hpp"
9
+
10
+ namespace Sass {
11
+
12
+ class Expand;
13
+ class Context;
14
+
15
+ class Eval : public Operation_CRTP<Expression*, Eval> {
16
+
17
+ public:
18
+ Expand& exp;
19
+ Context& ctx;
20
+ Backtraces& traces;
21
+ Eval(Expand& exp);
22
+ ~Eval();
23
+
24
+ bool force;
25
+ bool is_in_comment;
26
+ bool is_in_selector_schema;
27
+
28
+ Boolean_Obj bool_true;
29
+ Boolean_Obj bool_false;
30
+
31
+ Env* environment();
32
+ EnvStack& env_stack();
33
+ const std::string cwd();
34
+ Selector_List_Obj selector();
35
+ CalleeStack& callee_stack();
36
+ SelectorStack& selector_stack();
37
+ bool& old_at_root_without_rule();
38
+ struct Sass_Inspect_Options& options();
39
+ struct Sass_Inspect_Options options2();
40
+ struct Sass_Compiler* compiler();
41
+
42
+ // for evaluating function bodies
43
+ Expression* operator()(Block*);
44
+ Expression* operator()(Assignment*);
45
+ Expression* operator()(If*);
46
+ Expression* operator()(For*);
47
+ Expression* operator()(Each*);
48
+ Expression* operator()(While*);
49
+ Expression* operator()(Return*);
50
+ Expression* operator()(Warning*);
51
+ Expression* operator()(Error*);
52
+ Expression* operator()(Debug*);
53
+
54
+ Expression* operator()(List*);
55
+ Expression* operator()(Map*);
56
+ Expression* operator()(Binary_Expression*);
57
+ Expression* operator()(Unary_Expression*);
58
+ Expression* operator()(Function_Call*);
59
+ Expression* operator()(Variable*);
60
+ Expression* operator()(Number*);
61
+ Expression* operator()(Color_RGBA*);
62
+ Expression* operator()(Color_HSLA*);
63
+ Expression* operator()(Boolean*);
64
+ Expression* operator()(String_Schema*);
65
+ Expression* operator()(String_Quoted*);
66
+ Expression* operator()(String_Constant*);
67
+ // Expression* operator()(Selector_List*);
68
+ Media_Query* operator()(Media_Query*);
69
+ Expression* operator()(Media_Query_Expression*);
70
+ Expression* operator()(At_Root_Query*);
71
+ Expression* operator()(Supports_Operator*);
72
+ Expression* operator()(Supports_Negation*);
73
+ Expression* operator()(Supports_Declaration*);
74
+ Expression* operator()(Supports_Interpolation*);
75
+ Expression* operator()(Null*);
76
+ Expression* operator()(Argument*);
77
+ Expression* operator()(Arguments*);
78
+ Expression* operator()(Comment*);
79
+
80
+ // these will return selectors
81
+ Selector_List* operator()(Selector_List*);
82
+ Selector_List* operator()(Complex_Selector*);
83
+ Compound_Selector* operator()(Compound_Selector*);
84
+ Simple_Selector* operator()(Simple_Selector* s);
85
+ Wrapped_Selector* operator()(Wrapped_Selector* s);
86
+
87
+ // they don't have any specific implementation (yet)
88
+ Id_Selector* operator()(Id_Selector* s) { return s; };
89
+ Class_Selector* operator()(Class_Selector* s) { return s; };
90
+ Pseudo_Selector* operator()(Pseudo_Selector* s) { return s; };
91
+ Type_Selector* operator()(Type_Selector* s) { return s; };
92
+ Attribute_Selector* operator()(Attribute_Selector* s) { return s; };
93
+ Placeholder_Selector* operator()(Placeholder_Selector* s) { return s; };
94
+
95
+ // actual evaluated selectors
96
+ Selector_List* operator()(Selector_Schema*);
97
+ Expression* operator()(Parent_Selector*);
98
+ Expression* operator()(Parent_Reference*);
99
+
100
+ // generic fallback
101
+ template <typename U>
102
+ Expression* fallback(U x)
103
+ { return Cast<Expression>(x); }
104
+
105
+ private:
106
+ void interpolation(Context& ctx, std::string& res, Expression_Obj ex, bool into_quotes, bool was_itpl = false);
107
+
108
+ };
109
+
110
+ }
111
+
112
+ #endif
@@ -0,0 +1,822 @@
1
+ // sass.hpp must go before all system headers to get the
2
+ // __EXTENSIONS__ fix on Solaris.
3
+ #include "sass.hpp"
4
+
5
+ #include <iostream>
6
+ #include <typeinfo>
7
+
8
+ #include "ast.hpp"
9
+ #include "expand.hpp"
10
+ #include "bind.hpp"
11
+ #include "eval.hpp"
12
+ #include "backtrace.hpp"
13
+ #include "context.hpp"
14
+ #include "parser.hpp"
15
+ #include "sass_functions.hpp"
16
+
17
+ namespace Sass {
18
+
19
+ // simple endless recursion protection
20
+ const size_t maxRecursion = 500;
21
+
22
+ Expand::Expand(Context& ctx, Env* env, SelectorStack* stack)
23
+ : ctx(ctx),
24
+ traces(ctx.traces),
25
+ eval(Eval(*this)),
26
+ recursions(0),
27
+ in_keyframes(false),
28
+ at_root_without_rule(false),
29
+ old_at_root_without_rule(false),
30
+ env_stack(EnvStack()),
31
+ block_stack(BlockStack()),
32
+ call_stack(CallStack()),
33
+ selector_stack(SelectorStack()),
34
+ media_stack(MediaStack())
35
+ {
36
+ env_stack.push_back(nullptr);
37
+ env_stack.push_back(env);
38
+ block_stack.push_back(nullptr);
39
+ call_stack.push_back({});
40
+ if (stack == NULL) { selector_stack.push_back({}); }
41
+ else { selector_stack.insert(selector_stack.end(), stack->begin(), stack->end()); }
42
+ media_stack.push_back(nullptr);
43
+ }
44
+
45
+ Env* Expand::environment()
46
+ {
47
+ if (env_stack.size() > 0)
48
+ return env_stack.back();
49
+ return 0;
50
+ }
51
+
52
+ Selector_List_Obj Expand::selector()
53
+ {
54
+ if (selector_stack.size() > 0)
55
+ return selector_stack.back();
56
+ return {};
57
+ }
58
+
59
+ // blocks create new variable scopes
60
+ Block* Expand::operator()(Block* b)
61
+ {
62
+ // create new local environment
63
+ // set the current env as parent
64
+ Env env(environment());
65
+ // copy the block object (add items later)
66
+ Block_Obj bb = SASS_MEMORY_NEW(Block,
67
+ b->pstate(),
68
+ b->length(),
69
+ b->is_root());
70
+ // setup block and env stack
71
+ this->block_stack.push_back(bb);
72
+ this->env_stack.push_back(&env);
73
+ // operate on block
74
+ // this may throw up!
75
+ this->append_block(b);
76
+ // revert block and env stack
77
+ this->block_stack.pop_back();
78
+ this->env_stack.pop_back();
79
+ // return copy
80
+ return bb.detach();
81
+ }
82
+
83
+ Statement* Expand::operator()(Ruleset* r)
84
+ {
85
+ LOCAL_FLAG(old_at_root_without_rule, at_root_without_rule);
86
+
87
+ if (in_keyframes) {
88
+ Block* bb = operator()(r->block());
89
+ Keyframe_Rule_Obj k = SASS_MEMORY_NEW(Keyframe_Rule, r->pstate(), bb);
90
+ if (r->selector()) {
91
+ if (Selector_List* s = r->selector()) {
92
+ selector_stack.push_back({});
93
+ k->name(s->eval(eval));
94
+ selector_stack.pop_back();
95
+ }
96
+ }
97
+ return k.detach();
98
+ }
99
+
100
+ // reset when leaving scope
101
+ LOCAL_FLAG(at_root_without_rule, false);
102
+
103
+ // `&` is allowed in `@at-root`!
104
+ bool has_parent_selector = false;
105
+ for (size_t i = 0, L = selector_stack.size(); i < L && !has_parent_selector; i++) {
106
+ Selector_List_Obj ll = selector_stack.at(i);
107
+ has_parent_selector = ll != nullptr && ll->length() > 0;
108
+ }
109
+
110
+ Selector_List_Obj sel = r->selector();
111
+ if (sel) sel = sel->eval(eval);
112
+
113
+ // check for parent selectors in base level rules
114
+ if (r->is_root() || (block_stack.back() && block_stack.back()->is_root())) {
115
+ if (Selector_List* selector_list = Cast<Selector_List>(r->selector())) {
116
+ for (Complex_Selector_Obj complex_selector : selector_list->elements()) {
117
+ Complex_Selector* tail = complex_selector;
118
+ while (tail) {
119
+ if (tail->head()) for (Simple_Selector_Obj header : tail->head()->elements()) {
120
+ Parent_Selector* ptr = Cast<Parent_Selector>(header);
121
+ if (ptr == NULL || (!ptr->real() || has_parent_selector)) continue;
122
+ std::string sel_str(complex_selector->to_string(ctx.c_options));
123
+ error("Base-level rules cannot contain the parent-selector-referencing character '&'.", header->pstate(), traces);
124
+ }
125
+ tail = tail->tail();
126
+ }
127
+ }
128
+ }
129
+ }
130
+ else {
131
+ if (sel->length() == 0 || sel->has_parent_ref()) {
132
+ if (sel->has_real_parent_ref() && !has_parent_selector) {
133
+ error("Base-level rules cannot contain the parent-selector-referencing character '&'.", sel->pstate(), traces);
134
+ }
135
+ }
136
+ }
137
+
138
+ // do not connect parent again
139
+ sel->remove_parent_selectors();
140
+ selector_stack.push_back(sel);
141
+ Env env(environment());
142
+ if (block_stack.back()->is_root()) {
143
+ env_stack.push_back(&env);
144
+ }
145
+ sel->set_media_block(media_stack.back());
146
+ Block_Obj blk;
147
+ if (r->block()) blk = operator()(r->block());
148
+ Ruleset* rr = SASS_MEMORY_NEW(Ruleset,
149
+ r->pstate(),
150
+ sel,
151
+ blk);
152
+ selector_stack.pop_back();
153
+ if (block_stack.back()->is_root()) {
154
+ env_stack.pop_back();
155
+ }
156
+
157
+ rr->is_root(r->is_root());
158
+ rr->tabs(r->tabs());
159
+
160
+ return rr;
161
+ }
162
+
163
+ Statement* Expand::operator()(Supports_Block* f)
164
+ {
165
+ Expression_Obj condition = f->condition()->perform(&eval);
166
+ Supports_Block_Obj ff = SASS_MEMORY_NEW(Supports_Block,
167
+ f->pstate(),
168
+ Cast<Supports_Condition>(condition),
169
+ operator()(f->block()));
170
+ return ff.detach();
171
+ }
172
+
173
+ Statement* Expand::operator()(Media_Block* m)
174
+ {
175
+ Media_Block_Obj cpy = SASS_MEMORY_COPY(m);
176
+ // Media_Blocks are prone to have circular references
177
+ // Copy could leak memory if it does not get picked up
178
+ // Looks like we are able to reset block reference for copy
179
+ // Good as it will ensure a low memory overhead for this fix
180
+ // So this is a cheap solution with a minimal price
181
+ ctx.ast_gc.push_back(cpy); cpy->block({});
182
+ Expression_Obj mq = eval(m->media_queries());
183
+ std::string str_mq(mq->to_string(ctx.c_options));
184
+ char* str = sass_copy_c_string(str_mq.c_str());
185
+ ctx.strings.push_back(str);
186
+ Parser p(Parser::from_c_str(str, ctx, traces, mq->pstate()));
187
+ mq = p.parse_media_queries(); // re-assign now
188
+ cpy->media_queries(mq);
189
+ media_stack.push_back(cpy);
190
+ Block_Obj blk = operator()(m->block());
191
+ Media_Block* mm = SASS_MEMORY_NEW(Media_Block,
192
+ m->pstate(),
193
+ mq,
194
+ blk);
195
+ media_stack.pop_back();
196
+ mm->tabs(m->tabs());
197
+ return mm;
198
+ }
199
+
200
+ Statement* Expand::operator()(At_Root_Block* a)
201
+ {
202
+ Block_Obj ab = a->block();
203
+ Expression_Obj ae = a->expression();
204
+
205
+ if (ae) ae = ae->perform(&eval);
206
+ else ae = SASS_MEMORY_NEW(At_Root_Query, a->pstate());
207
+
208
+ LOCAL_FLAG(at_root_without_rule, Cast<At_Root_Query>(ae)->exclude("rule"));
209
+ LOCAL_FLAG(in_keyframes, false);
210
+
211
+ ;
212
+
213
+ Block_Obj bb = ab ? operator()(ab) : NULL;
214
+ At_Root_Block_Obj aa = SASS_MEMORY_NEW(At_Root_Block,
215
+ a->pstate(),
216
+ bb,
217
+ Cast<At_Root_Query>(ae));
218
+ return aa.detach();
219
+ }
220
+
221
+ Statement* Expand::operator()(Directive* a)
222
+ {
223
+ LOCAL_FLAG(in_keyframes, a->is_keyframes());
224
+ Block* ab = a->block();
225
+ Selector_List* as = a->selector();
226
+ Expression* av = a->value();
227
+ selector_stack.push_back({});
228
+ if (av) av = av->perform(&eval);
229
+ if (as) as = eval(as);
230
+ selector_stack.pop_back();
231
+ Block* bb = ab ? operator()(ab) : NULL;
232
+ Directive* aa = SASS_MEMORY_NEW(Directive,
233
+ a->pstate(),
234
+ a->keyword(),
235
+ as,
236
+ bb,
237
+ av);
238
+ return aa;
239
+ }
240
+
241
+ Statement* Expand::operator()(Declaration* d)
242
+ {
243
+ Block_Obj ab = d->block();
244
+ String_Obj old_p = d->property();
245
+ Expression_Obj prop = old_p->perform(&eval);
246
+ String_Obj new_p = Cast<String>(prop);
247
+ // we might get a color back
248
+ if (!new_p) {
249
+ std::string str(prop->to_string(ctx.c_options));
250
+ new_p = SASS_MEMORY_NEW(String_Constant, old_p->pstate(), str);
251
+ }
252
+ Expression_Obj value = d->value();
253
+ if (value) value = value->perform(&eval);
254
+ Block_Obj bb = ab ? operator()(ab) : NULL;
255
+ if (!bb) {
256
+ if (!value || (value->is_invisible() && !d->is_important())) {
257
+ if (d->is_custom_property()) {
258
+ error("Custom property values may not be empty.", d->value()->pstate(), traces);
259
+ } else {
260
+ return nullptr;
261
+ }
262
+ }
263
+ }
264
+ Declaration* decl = SASS_MEMORY_NEW(Declaration,
265
+ d->pstate(),
266
+ new_p,
267
+ value,
268
+ d->is_important(),
269
+ d->is_custom_property(),
270
+ bb);
271
+ decl->tabs(d->tabs());
272
+ return decl;
273
+ }
274
+
275
+ Statement* Expand::operator()(Assignment* a)
276
+ {
277
+ Env* env = environment();
278
+ const std::string& var(a->variable());
279
+ if (a->is_global()) {
280
+ if (a->is_default()) {
281
+ if (env->has_global(var)) {
282
+ Expression_Obj e = Cast<Expression>(env->get_global(var));
283
+ if (!e || e->concrete_type() == Expression::NULL_VAL) {
284
+ env->set_global(var, a->value()->perform(&eval));
285
+ }
286
+ }
287
+ else {
288
+ env->set_global(var, a->value()->perform(&eval));
289
+ }
290
+ }
291
+ else {
292
+ env->set_global(var, a->value()->perform(&eval));
293
+ }
294
+ }
295
+ else if (a->is_default()) {
296
+ if (env->has_lexical(var)) {
297
+ auto cur = env;
298
+ while (cur && cur->is_lexical()) {
299
+ if (cur->has_local(var)) {
300
+ if (AST_Node_Obj node = cur->get_local(var)) {
301
+ Expression_Obj e = Cast<Expression>(node);
302
+ if (!e || e->concrete_type() == Expression::NULL_VAL) {
303
+ cur->set_local(var, a->value()->perform(&eval));
304
+ }
305
+ }
306
+ else {
307
+ throw std::runtime_error("Env not in sync");
308
+ }
309
+ return 0;
310
+ }
311
+ cur = cur->parent();
312
+ }
313
+ throw std::runtime_error("Env not in sync");
314
+ }
315
+ else if (env->has_global(var)) {
316
+ if (AST_Node_Obj node = env->get_global(var)) {
317
+ Expression_Obj e = Cast<Expression>(node);
318
+ if (!e || e->concrete_type() == Expression::NULL_VAL) {
319
+ env->set_global(var, a->value()->perform(&eval));
320
+ }
321
+ }
322
+ }
323
+ else if (env->is_lexical()) {
324
+ env->set_local(var, a->value()->perform(&eval));
325
+ }
326
+ else {
327
+ env->set_local(var, a->value()->perform(&eval));
328
+ }
329
+ }
330
+ else {
331
+ env->set_lexical(var, a->value()->perform(&eval));
332
+ }
333
+ return 0;
334
+ }
335
+
336
+ Statement* Expand::operator()(Import* imp)
337
+ {
338
+ Import_Obj result = SASS_MEMORY_NEW(Import, imp->pstate());
339
+ if (imp->import_queries() && imp->import_queries()->size()) {
340
+ Expression_Obj ex = imp->import_queries()->perform(&eval);
341
+ result->import_queries(Cast<List>(ex));
342
+ }
343
+ for ( size_t i = 0, S = imp->urls().size(); i < S; ++i) {
344
+ result->urls().push_back(imp->urls()[i]->perform(&eval));
345
+ }
346
+ // all resources have been dropped for Input_Stubs
347
+ // for ( size_t i = 0, S = imp->incs().size(); i < S; ++i) {}
348
+ return result.detach();
349
+ }
350
+
351
+ Statement* Expand::operator()(Import_Stub* i)
352
+ {
353
+ traces.push_back(Backtrace(i->pstate()));
354
+ // get parent node from call stack
355
+ AST_Node_Obj parent = call_stack.back();
356
+ if (Cast<Block>(parent) == NULL) {
357
+ error("Import directives may not be used within control directives or mixins.", i->pstate(), traces);
358
+ }
359
+ // we don't seem to need that actually afterall
360
+ Sass_Import_Entry import = sass_make_import(
361
+ i->imp_path().c_str(),
362
+ i->abs_path().c_str(),
363
+ 0, 0
364
+ );
365
+ ctx.import_stack.push_back(import);
366
+
367
+ Block_Obj trace_block = SASS_MEMORY_NEW(Block, i->pstate());
368
+ Trace_Obj trace = SASS_MEMORY_NEW(Trace, i->pstate(), i->imp_path(), trace_block, 'i');
369
+ block_stack.back()->append(trace);
370
+ block_stack.push_back(trace_block);
371
+
372
+ const std::string& abs_path(i->resource().abs_path);
373
+ append_block(ctx.sheets.at(abs_path).root);
374
+ sass_delete_import(ctx.import_stack.back());
375
+ ctx.import_stack.pop_back();
376
+ block_stack.pop_back();
377
+ traces.pop_back();
378
+ return 0;
379
+ }
380
+
381
+ Statement* Expand::operator()(Warning* w)
382
+ {
383
+ // eval handles this too, because warnings may occur in functions
384
+ w->perform(&eval);
385
+ return 0;
386
+ }
387
+
388
+ Statement* Expand::operator()(Error* e)
389
+ {
390
+ // eval handles this too, because errors may occur in functions
391
+ e->perform(&eval);
392
+ return 0;
393
+ }
394
+
395
+ Statement* Expand::operator()(Debug* d)
396
+ {
397
+ // eval handles this too, because warnings may occur in functions
398
+ d->perform(&eval);
399
+ return 0;
400
+ }
401
+
402
+ Statement* Expand::operator()(Comment* c)
403
+ {
404
+ if (ctx.output_style() == COMPRESSED) {
405
+ // comments should not be evaluated in compact
406
+ // https://github.com/sass/libsass/issues/2359
407
+ if (!c->is_important()) return NULL;
408
+ }
409
+ eval.is_in_comment = true;
410
+ Comment* rv = SASS_MEMORY_NEW(Comment, c->pstate(), Cast<String>(c->text()->perform(&eval)), c->is_important());
411
+ eval.is_in_comment = false;
412
+ // TODO: eval the text, once we're parsing/storing it as a String_Schema
413
+ return rv;
414
+ }
415
+
416
+ Statement* Expand::operator()(If* i)
417
+ {
418
+ Env env(environment(), true);
419
+ env_stack.push_back(&env);
420
+ call_stack.push_back(i);
421
+ Expression_Obj rv = i->predicate()->perform(&eval);
422
+ if (*rv) {
423
+ append_block(i->block());
424
+ }
425
+ else {
426
+ Block* alt = i->alternative();
427
+ if (alt) append_block(alt);
428
+ }
429
+ call_stack.pop_back();
430
+ env_stack.pop_back();
431
+ return 0;
432
+ }
433
+
434
+ // For does not create a new env scope
435
+ // But iteration vars are reset afterwards
436
+ Statement* Expand::operator()(For* f)
437
+ {
438
+ std::string variable(f->variable());
439
+ Expression_Obj low = f->lower_bound()->perform(&eval);
440
+ if (low->concrete_type() != Expression::NUMBER) {
441
+ traces.push_back(Backtrace(low->pstate()));
442
+ throw Exception::TypeMismatch(traces, *low, "integer");
443
+ }
444
+ Expression_Obj high = f->upper_bound()->perform(&eval);
445
+ if (high->concrete_type() != Expression::NUMBER) {
446
+ traces.push_back(Backtrace(high->pstate()));
447
+ throw Exception::TypeMismatch(traces, *high, "integer");
448
+ }
449
+ Number_Obj sass_start = Cast<Number>(low);
450
+ Number_Obj sass_end = Cast<Number>(high);
451
+ // check if units are valid for sequence
452
+ if (sass_start->unit() != sass_end->unit()) {
453
+ std::stringstream msg; msg << "Incompatible units: '"
454
+ << sass_start->unit() << "' and '"
455
+ << sass_end->unit() << "'.";
456
+ error(msg.str(), low->pstate(), traces);
457
+ }
458
+ double start = sass_start->value();
459
+ double end = sass_end->value();
460
+ // only create iterator once in this environment
461
+ Env env(environment(), true);
462
+ env_stack.push_back(&env);
463
+ call_stack.push_back(f);
464
+ Block* body = f->block();
465
+ if (start < end) {
466
+ if (f->is_inclusive()) ++end;
467
+ for (double i = start;
468
+ i < end;
469
+ ++i) {
470
+ Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
471
+ env.set_local(variable, it);
472
+ append_block(body);
473
+ }
474
+ } else {
475
+ if (f->is_inclusive()) --end;
476
+ for (double i = start;
477
+ i > end;
478
+ --i) {
479
+ Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
480
+ env.set_local(variable, it);
481
+ append_block(body);
482
+ }
483
+ }
484
+ call_stack.pop_back();
485
+ env_stack.pop_back();
486
+ return 0;
487
+ }
488
+
489
+ // Eval does not create a new env scope
490
+ // But iteration vars are reset afterwards
491
+ Statement* Expand::operator()(Each* e)
492
+ {
493
+ std::vector<std::string> variables(e->variables());
494
+ Expression_Obj expr = e->list()->perform(&eval);
495
+ List_Obj list;
496
+ Map_Obj map;
497
+ if (expr->concrete_type() == Expression::MAP) {
498
+ map = Cast<Map>(expr);
499
+ }
500
+ else if (Selector_List* ls = Cast<Selector_List>(expr)) {
501
+ Listize listize;
502
+ Expression_Obj rv = ls->perform(&listize);
503
+ list = Cast<List>(rv);
504
+ }
505
+ else if (expr->concrete_type() != Expression::LIST) {
506
+ list = SASS_MEMORY_NEW(List, expr->pstate(), 1, SASS_COMMA);
507
+ list->append(expr);
508
+ }
509
+ else {
510
+ list = Cast<List>(expr);
511
+ }
512
+ // remember variables and then reset them
513
+ Env env(environment(), true);
514
+ env_stack.push_back(&env);
515
+ call_stack.push_back(e);
516
+ Block* body = e->block();
517
+
518
+ if (map) {
519
+ for (auto key : map->keys()) {
520
+ Expression_Obj k = key->perform(&eval);
521
+ Expression_Obj v = map->at(key)->perform(&eval);
522
+
523
+ if (variables.size() == 1) {
524
+ List_Obj variable = SASS_MEMORY_NEW(List, map->pstate(), 2, SASS_SPACE);
525
+ variable->append(k);
526
+ variable->append(v);
527
+ env.set_local(variables[0], variable);
528
+ } else {
529
+ env.set_local(variables[0], k);
530
+ env.set_local(variables[1], v);
531
+ }
532
+ append_block(body);
533
+ }
534
+ }
535
+ else {
536
+ // bool arglist = list->is_arglist();
537
+ if (list->length() == 1 && Cast<Selector_List>(list)) {
538
+ list = Cast<List>(list);
539
+ }
540
+ for (size_t i = 0, L = list->length(); i < L; ++i) {
541
+ Expression_Obj item = list->at(i);
542
+ // unwrap value if the expression is an argument
543
+ if (Argument_Obj arg = Cast<Argument>(item)) item = arg->value();
544
+ // check if we got passed a list of args (investigate)
545
+ if (List_Obj scalars = Cast<List>(item)) {
546
+ if (variables.size() == 1) {
547
+ List_Obj var = scalars;
548
+ // if (arglist) var = (*scalars)[0];
549
+ env.set_local(variables[0], var);
550
+ } else {
551
+ for (size_t j = 0, K = variables.size(); j < K; ++j) {
552
+ Expression_Obj res = j >= scalars->length()
553
+ ? SASS_MEMORY_NEW(Null, expr->pstate())
554
+ : (*scalars)[j]->perform(&eval);
555
+ env.set_local(variables[j], res);
556
+ }
557
+ }
558
+ } else {
559
+ if (variables.size() > 0) {
560
+ env.set_local(variables.at(0), item);
561
+ for (size_t j = 1, K = variables.size(); j < K; ++j) {
562
+ Expression_Obj res = SASS_MEMORY_NEW(Null, expr->pstate());
563
+ env.set_local(variables[j], res);
564
+ }
565
+ }
566
+ }
567
+ append_block(body);
568
+ }
569
+ }
570
+ call_stack.pop_back();
571
+ env_stack.pop_back();
572
+ return 0;
573
+ }
574
+
575
+ Statement* Expand::operator()(While* w)
576
+ {
577
+ Expression_Obj pred = w->predicate();
578
+ Block* body = w->block();
579
+ Env env(environment(), true);
580
+ env_stack.push_back(&env);
581
+ call_stack.push_back(w);
582
+ Expression_Obj cond = pred->perform(&eval);
583
+ while (!cond->is_false()) {
584
+ append_block(body);
585
+ cond = pred->perform(&eval);
586
+ }
587
+ call_stack.pop_back();
588
+ env_stack.pop_back();
589
+ return 0;
590
+ }
591
+
592
+ Statement* Expand::operator()(Return* r)
593
+ {
594
+ error("@return may only be used within a function", r->pstate(), traces);
595
+ return 0;
596
+ }
597
+
598
+
599
+ void Expand::expand_selector_list(Selector_Obj s, Selector_List_Obj extender) {
600
+
601
+ if (Selector_List_Obj sl = Cast<Selector_List>(s)) {
602
+ for (Complex_Selector_Obj complex_selector : sl->elements()) {
603
+ Complex_Selector_Obj tail = complex_selector;
604
+ while (tail) {
605
+ if (tail->head()) for (Simple_Selector_Obj header : tail->head()->elements()) {
606
+ if (Cast<Parent_Selector>(header) == NULL) continue; // skip all others
607
+ std::string sel_str(complex_selector->to_string(ctx.c_options));
608
+ error("Can't extend " + sel_str + ": can't extend parent selectors", header->pstate(), traces);
609
+ }
610
+ tail = tail->tail();
611
+ }
612
+ }
613
+ }
614
+
615
+
616
+ Selector_List_Obj contextualized = Cast<Selector_List>(s->perform(&eval));
617
+ if (contextualized == nullptr) return;
618
+ for (auto complex_sel : contextualized->elements()) {
619
+ Complex_Selector_Obj c = complex_sel;
620
+ if (!c->head() || c->tail()) {
621
+ std::string sel_str(contextualized->to_string(ctx.c_options));
622
+ error("Can't extend " + sel_str + ": can't extend nested selectors", c->pstate(), traces);
623
+ }
624
+ Compound_Selector_Obj target = c->head();
625
+ if (contextualized->is_optional()) target->is_optional(true);
626
+ for (size_t i = 0, L = extender->length(); i < L; ++i) {
627
+ Complex_Selector_Obj sel = (*extender)[i];
628
+ if (!(sel->head() && sel->head()->length() > 0 &&
629
+ Cast<Parent_Selector>((*sel->head())[0])))
630
+ {
631
+ Compound_Selector_Obj hh = SASS_MEMORY_NEW(Compound_Selector, (*extender)[i]->pstate());
632
+ hh->media_block((*extender)[i]->media_block());
633
+ Complex_Selector_Obj ssel = SASS_MEMORY_NEW(Complex_Selector, (*extender)[i]->pstate());
634
+ ssel->media_block((*extender)[i]->media_block());
635
+ if (sel->has_line_feed()) ssel->has_line_feed(true);
636
+ Parent_Selector_Obj ps = SASS_MEMORY_NEW(Parent_Selector, (*extender)[i]->pstate());
637
+ ps->media_block((*extender)[i]->media_block());
638
+ hh->append(ps);
639
+ ssel->tail(sel);
640
+ ssel->head(hh);
641
+ sel = ssel;
642
+ }
643
+ // if (c->has_line_feed()) sel->has_line_feed(true);
644
+ ctx.subset_map.put(target, std::make_pair(sel, target));
645
+ }
646
+ }
647
+
648
+ }
649
+
650
+ Statement* Expand::operator()(Extension* e)
651
+ {
652
+ if (Selector_List_Obj extender = selector()) {
653
+ Selector_List* sl = e->selector();
654
+ // abort on invalid selector
655
+ if (sl == NULL) return NULL;
656
+ if (Selector_Schema* schema = sl->schema()) {
657
+ if (schema->has_real_parent_ref()) {
658
+ // put root block on stack again (ignore parents)
659
+ // selector schema must not connect in eval!
660
+ block_stack.push_back(block_stack.at(1));
661
+ sl = eval(sl->schema());
662
+ block_stack.pop_back();
663
+ } else {
664
+ selector_stack.push_back({});
665
+ sl = eval(sl->schema());
666
+ selector_stack.pop_back();
667
+ }
668
+ }
669
+ for (Complex_Selector_Obj cs : sl->elements()) {
670
+ if (!cs.isNull() && !cs->head().isNull()) {
671
+ cs->head()->media_block(media_stack.back());
672
+ }
673
+ }
674
+ selector_stack.push_back({});
675
+ expand_selector_list(sl, extender);
676
+ selector_stack.pop_back();
677
+ }
678
+ return 0;
679
+ }
680
+
681
+ Statement* Expand::operator()(Definition* d)
682
+ {
683
+ Env* env = environment();
684
+ Definition_Obj dd = SASS_MEMORY_COPY(d);
685
+ env->local_frame()[d->name() +
686
+ (d->type() == Definition::MIXIN ? "[m]" : "[f]")] = dd;
687
+
688
+ if (d->type() == Definition::FUNCTION && (
689
+ Prelexer::calc_fn_call(d->name().c_str()) ||
690
+ d->name() == "element" ||
691
+ d->name() == "expression" ||
692
+ d->name() == "url"
693
+ )) {
694
+ deprecated(
695
+ "Naming a function \"" + d->name() + "\" is disallowed and will be an error in future versions of Sass.",
696
+ "This name conflicts with an existing CSS function with special parse rules.",
697
+ false, d->pstate()
698
+ );
699
+ }
700
+
701
+ // set the static link so we can have lexical scoping
702
+ dd->environment(env);
703
+ return 0;
704
+ }
705
+
706
+ Statement* Expand::operator()(Mixin_Call* c)
707
+ {
708
+ if (recursions > maxRecursion) {
709
+ throw Exception::StackError(traces, *c);
710
+ }
711
+
712
+ recursions ++;
713
+
714
+ Env* env = environment();
715
+ std::string full_name(c->name() + "[m]");
716
+ if (!env->has(full_name)) {
717
+ error("no mixin named " + c->name(), c->pstate(), traces);
718
+ }
719
+ Definition_Obj def = Cast<Definition>((*env)[full_name]);
720
+ Block_Obj body = def->block();
721
+ Parameters_Obj params = def->parameters();
722
+
723
+ if (c->block() && c->name() != "@content" && !body->has_content()) {
724
+ error("Mixin \"" + c->name() + "\" does not accept a content block.", c->pstate(), traces);
725
+ }
726
+ Expression_Obj rv = c->arguments()->perform(&eval);
727
+ Arguments_Obj args = Cast<Arguments>(rv);
728
+ std::string msg(", in mixin `" + c->name() + "`");
729
+ traces.push_back(Backtrace(c->pstate(), msg));
730
+ ctx.callee_stack.push_back({
731
+ c->name().c_str(),
732
+ c->pstate().path,
733
+ c->pstate().line + 1,
734
+ c->pstate().column + 1,
735
+ SASS_CALLEE_MIXIN,
736
+ { env }
737
+ });
738
+
739
+ Env new_env(def->environment());
740
+ env_stack.push_back(&new_env);
741
+ if (c->block()) {
742
+ Parameters_Obj params = c->block_parameters();
743
+ if (!params) params = SASS_MEMORY_NEW(Parameters, c->pstate());
744
+ // represent mixin content blocks as thunks/closures
745
+ Definition_Obj thunk = SASS_MEMORY_NEW(Definition,
746
+ c->pstate(),
747
+ "@content",
748
+ params,
749
+ c->block(),
750
+ Definition::MIXIN);
751
+ thunk->environment(env);
752
+ new_env.local_frame()["@content[m]"] = thunk;
753
+ }
754
+
755
+ bind(std::string("Mixin"), c->name(), params, args, &new_env, &eval, traces);
756
+
757
+ Block_Obj trace_block = SASS_MEMORY_NEW(Block, c->pstate());
758
+ Trace_Obj trace = SASS_MEMORY_NEW(Trace, c->pstate(), c->name(), trace_block);
759
+
760
+ env->set_global("is_in_mixin", bool_true);
761
+ if (Block* pr = block_stack.back()) {
762
+ trace_block->is_root(pr->is_root());
763
+ }
764
+ block_stack.push_back(trace_block);
765
+ for (auto bb : body->elements()) {
766
+ if (Ruleset* r = Cast<Ruleset>(bb)) {
767
+ r->is_root(trace_block->is_root());
768
+ }
769
+ Statement_Obj ith = bb->perform(this);
770
+ if (ith) trace->block()->append(ith);
771
+ }
772
+ block_stack.pop_back();
773
+ env->del_global("is_in_mixin");
774
+
775
+ ctx.callee_stack.pop_back();
776
+ env_stack.pop_back();
777
+ traces.pop_back();
778
+
779
+ recursions --;
780
+ return trace.detach();
781
+ }
782
+
783
+ Statement* Expand::operator()(Content* c)
784
+ {
785
+ Env* env = environment();
786
+ // convert @content directives into mixin calls to the underlying thunk
787
+ if (!env->has("@content[m]")) return 0;
788
+
789
+ if (block_stack.back()->is_root()) {
790
+ selector_stack.push_back({});
791
+ }
792
+
793
+ Arguments_Obj args = c->arguments();
794
+ if (!args) args = SASS_MEMORY_NEW(Arguments, c->pstate());
795
+
796
+ Mixin_Call_Obj call = SASS_MEMORY_NEW(Mixin_Call,
797
+ c->pstate(),
798
+ "@content",
799
+ args);
800
+
801
+ Trace_Obj trace = Cast<Trace>(call->perform(this));
802
+
803
+ if (block_stack.back()->is_root()) {
804
+ selector_stack.pop_back();
805
+ }
806
+
807
+ return trace.detach();
808
+ }
809
+
810
+ // process and add to last block on stack
811
+ inline void Expand::append_block(Block* b)
812
+ {
813
+ if (b->is_root()) call_stack.push_back(b);
814
+ for (size_t i = 0, L = b->length(); i < L; ++i) {
815
+ Statement* stm = b->at(i);
816
+ Statement_Obj ith = stm->perform(this);
817
+ if (ith) block_stack.back()->append(ith);
818
+ }
819
+ if (b->is_root()) call_stack.pop_back();
820
+ }
821
+
822
+ }