lookbook 1.3.4 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -11
  3. data/app/assets/lookbook/css/themes/blue.css +1 -1
  4. data/app/assets/lookbook/css/themes/green.css +1 -1
  5. data/app/assets/lookbook/css/themes/indigo.css +1 -1
  6. data/app/assets/lookbook/css/themes/rose.css +1 -1
  7. data/app/assets/lookbook/css/themes/zinc.css +1 -1
  8. data/app/components/lookbook/code/component.rb +2 -4
  9. data/app/components/lookbook/header/component.html.erb +1 -1
  10. data/app/components/lookbook/inspector_panel/component.rb +1 -1
  11. data/app/components/lookbook/nav/component.rb +8 -15
  12. data/app/components/lookbook/nav/directory/component.html.erb +26 -0
  13. data/app/components/lookbook/nav/directory/component.rb +4 -0
  14. data/app/components/lookbook/nav/{item → entity}/component.html.erb +5 -7
  15. data/app/components/lookbook/nav/entity/component.rb +49 -0
  16. data/app/components/lookbook/nav/item/component.css +15 -0
  17. data/app/components/lookbook/nav/item/component.js +4 -0
  18. data/app/components/lookbook/nav/item/component.rb +13 -56
  19. data/app/controllers/concerns/lookbook/targetable_concern.rb +13 -38
  20. data/app/controllers/lookbook/application_controller.rb +9 -7
  21. data/app/controllers/lookbook/page_controller.rb +2 -2
  22. data/app/controllers/lookbook/pages_controller.rb +9 -15
  23. data/app/helpers/lookbook/application_helper.rb +1 -1
  24. data/app/helpers/lookbook/page_helper.rb +7 -4
  25. data/app/views/layouts/lookbook/application.html.erb +3 -4
  26. data/app/views/layouts/lookbook/page.html.erb +2 -2
  27. data/app/views/layouts/lookbook/shell.html.erb +2 -2
  28. data/app/views/layouts/lookbook/skeleton.html.erb +7 -7
  29. data/app/views/lookbook/index.html.erb +3 -3
  30. data/app/views/lookbook/inspector/panels/_params.html.erb +2 -2
  31. data/config/languages.yml +41 -0
  32. data/config/panels.yml +1 -1
  33. data/config/tags.yml +4 -0
  34. data/lib/lookbook/engine.rb +65 -43
  35. data/lib/lookbook/entities/collections/component_collection.rb +4 -0
  36. data/lib/lookbook/entities/collections/concerns/hierarchical_collection.rb +27 -0
  37. data/lib/lookbook/entities/collections/entity_collection.rb +66 -0
  38. data/lib/lookbook/entities/collections/page_collection.rb +30 -0
  39. data/lib/lookbook/entities/collections/preview_collection.rb +35 -0
  40. data/lib/lookbook/entities/collections/preview_example_collection.rb +9 -0
  41. data/lib/lookbook/entities/component.rb +31 -0
  42. data/lib/lookbook/entities/concerns/annotatable.rb +58 -0
  43. data/lib/lookbook/entities/concerns/inspectable.rb +44 -0
  44. data/lib/lookbook/entities/concerns/locatable.rb +73 -0
  45. data/lib/lookbook/entities/concerns/navigable.rb +27 -0
  46. data/lib/lookbook/entities/entity.rb +48 -0
  47. data/lib/lookbook/entities/page.rb +80 -0
  48. data/lib/lookbook/entities/page_section.rb +43 -0
  49. data/lib/lookbook/entities/preview.rb +87 -0
  50. data/lib/lookbook/entities/preview_example.rb +91 -0
  51. data/lib/lookbook/entities/preview_group.rb +48 -0
  52. data/lib/lookbook/file_watcher.rb +1 -1
  53. data/lib/lookbook/lang.rb +12 -35
  54. data/lib/lookbook/param.rb +2 -2
  55. data/lib/lookbook/preview_parser.rb +1 -1
  56. data/lib/lookbook/rendered_example.rb +37 -0
  57. data/lib/lookbook/services/code/code_indenter.rb +14 -0
  58. data/lib/lookbook/services/data/resolvers/data_resolver.rb +2 -2
  59. data/lib/lookbook/services/data/resolvers/method_resolver.rb +1 -1
  60. data/lib/lookbook/services/entities/entity_tree_builder.rb +45 -0
  61. data/lib/lookbook/services/position_prefix_parser.rb +16 -0
  62. data/lib/lookbook/support/store.rb +0 -33
  63. data/lib/lookbook/support/tree_node.rb +83 -0
  64. data/lib/lookbook/support/utils/path_utils.rb +26 -2
  65. data/lib/lookbook/support/utils/utils.rb +24 -0
  66. data/lib/lookbook/tags/component_tag.rb +6 -0
  67. data/lib/lookbook/tags/custom_tag.rb +2 -0
  68. data/lib/lookbook/tags/id_tag.rb +1 -1
  69. data/lib/lookbook/tags/logical_path_tag.rb +3 -0
  70. data/lib/lookbook/tags/param_tag.rb +2 -0
  71. data/lib/lookbook/tags/source_tag.rb +7 -0
  72. data/lib/lookbook/tags/yard_tag.rb +35 -7
  73. data/lib/lookbook/version.rb +1 -1
  74. data/lib/lookbook.rb +11 -7
  75. data/public/lookbook-assets/css/lookbook.css +33 -21
  76. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  77. data/public/lookbook-assets/js/lookbook.js +64 -63
  78. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  79. metadata +35 -18
  80. data/lib/lookbook/collection.rb +0 -161
  81. data/lib/lookbook/component.rb +0 -34
  82. data/lib/lookbook/entity.rb +0 -47
  83. data/lib/lookbook/page.rb +0 -194
  84. data/lib/lookbook/page_collection.rb +0 -19
  85. data/lib/lookbook/page_section.rb +0 -29
  86. data/lib/lookbook/preview.rb +0 -181
  87. data/lib/lookbook/preview_collection.rb +0 -23
  88. data/lib/lookbook/preview_example.rb +0 -93
  89. data/lib/lookbook/preview_group.rb +0 -58
  90. data/lib/lookbook/source_inspector.rb +0 -76
  91. data/lib/lookbook/support/utils/attribute_utils.rb +0 -14
  92. data/lib/lookbook/utils.rb +0 -65
@@ -0,0 +1,45 @@
1
+ module Lookbook
2
+ class EntityTreeBuilder < Service
3
+ attr_reader :include_hidden
4
+
5
+ def initialize(entities, include_hidden: false)
6
+ @entities = entities.to_a
7
+ @include_hidden = include_hidden
8
+ end
9
+
10
+ def call
11
+ root_node = TreeNode.new
12
+ entities.each do |entity|
13
+ current_node = root_node
14
+ path_segments = parse_segments(entity.logical_path)
15
+ path_segments.each.with_index(1) do |segment, i|
16
+ name, position_prefix = segment
17
+ content = entity if entity.depth == i # entities are always on the leaf nodes
18
+
19
+ current_node.add_child(name, content, position: position_prefix) unless current_node.has_child?(name)
20
+ current_node = current_node.get_child(name)
21
+
22
+ if content && content.type == :preview
23
+ content.visible_examples.each do |example|
24
+ current_node.add_child(example.name, example)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ root_node
30
+ end
31
+
32
+ def parse_segments(path)
33
+ path.split("/").map do |segment|
34
+ unless segment.start_with?(".")
35
+ position, name = PositionPrefixParser.call(segment)
36
+ [name, position || 10000]
37
+ end
38
+ end.compact
39
+ end
40
+
41
+ def entities
42
+ include_hidden ? @entities : @entities.select(&:visible?)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ module Lookbook
2
+ class PositionPrefixParser < Service
3
+ POSITION_PREFIX_REGEX = /^(\d+?)[-_]/
4
+
5
+ attr_reader :input
6
+
7
+ def initialize(input)
8
+ @input = String(input)
9
+ end
10
+
11
+ def call
12
+ matches = input.match(POSITION_PREFIX_REGEX)
13
+ matches ? [matches[1].to_i, input.gsub(POSITION_PREFIX_REGEX, "")] : [nil, input]
14
+ end
15
+ end
16
+ end
@@ -25,39 +25,6 @@ module Lookbook
25
25
  true
26
26
  end
27
27
 
28
- # def [](key)
29
- # key = key.to_sym
30
- # if respond_to? key
31
- # public_send(key)
32
- # else
33
- # self[key]
34
- # end
35
- # end
36
-
37
- # def []=(key, value)
38
- # setter_key = "#{key}=".to_sym
39
- # if respond_to? setter_key
40
- # public_send(setter_key, value)
41
- # else
42
- # _set(key.to_sym, normalize_value(value))
43
- # end
44
- # end
45
-
46
- # def method_missing(key, *args)
47
- # if key.to_s.end_with?("=")
48
- # args[0] = normalize_value(args[0])
49
- # end
50
- # public_send(key.to_sym, *args)
51
- # end
52
-
53
- # def respond_to_missing?(key, *args)
54
- # key?(key.to_sym)
55
- # end
56
-
57
- # def fetch(key, *args)
58
- # super.fetch(key.to_sym, *args)
59
- # end
60
-
61
28
  def to_h
62
29
  transform_values do |value|
63
30
  value.is_a?(Store) ? value.to_h : value
@@ -0,0 +1,83 @@
1
+ module Lookbook
2
+ class TreeNode
3
+ include Enumerable
4
+
5
+ delegate_missing_to :content
6
+
7
+ attr_accessor :path, :content
8
+ attr_reader :children
9
+
10
+ def initialize(path = nil, content = nil, position: 10000)
11
+ @path = path.to_s
12
+ @content = content
13
+ @position = position
14
+ @children = []
15
+ end
16
+
17
+ def id
18
+ Utils.id(content_value(:id, path))
19
+ end
20
+
21
+ def name
22
+ segments.last
23
+ end
24
+
25
+ def label
26
+ content_value(:label, name.titleize)
27
+ end
28
+
29
+ def position
30
+ content_value(:position, @position)
31
+ end
32
+
33
+ def type
34
+ content_value(:type, :directory)
35
+ end
36
+
37
+ def depth
38
+ path.split("/").size
39
+ end
40
+
41
+ def add_child(name, content = nil, position: 10000)
42
+ children << TreeNode.new("#{path}/#{name}", content, position: position)
43
+ sort_children
44
+ end
45
+
46
+ def has_child?(name)
47
+ !!get_child(name)
48
+ end
49
+
50
+ def get_child(name)
51
+ children.find { |child| child.name == name }
52
+ end
53
+
54
+ def content?
55
+ content.present?
56
+ end
57
+
58
+ def each(&block)
59
+ if block
60
+ children.each do |child|
61
+ yield child
62
+ end
63
+ else
64
+ to_enum(:each)
65
+ end
66
+ end
67
+
68
+ protected
69
+
70
+ def content_value(method_name, fallback = nil)
71
+ value = content.send(method_name) if content
72
+ value || fallback
73
+ end
74
+
75
+ def sort_children
76
+ @children.sort_by! { |child| [child.position, child.label] }
77
+ end
78
+
79
+ def segments
80
+ path.split("/")
81
+ end
82
+ end
83
+ end
@@ -5,10 +5,30 @@ module Lookbook
5
5
  File.absolute_path(path.to_s, Rails.root)
6
6
  end
7
7
 
8
- def normalize_all(paths, allow_root: false)
8
+ def to_lookup_path(file_path)
9
+ path = file_path.to_s.downcase
10
+
11
+ directory_path = File.dirname(path)
12
+ directory_path = nil if directory_path.start_with?(".")
13
+
14
+ file_name = File.basename(path).split(".").first
15
+
16
+ segments = [*directory_path&.split("/"), file_name].compact
17
+ stripped_segments = segments.map! do |segment|
18
+ PositionPrefixParser.call(segment).last.tr("-", "_")
19
+ end
20
+
21
+ to_path(stripped_segments)
22
+ end
23
+
24
+ def to_path(*args)
25
+ args.flatten.compact.map(&:to_s).join("/")
26
+ end
27
+
28
+ def normalize_paths(paths, allow_root: false)
9
29
  Array(paths).map do |path|
10
30
  full_path = to_absolute(path)
11
- if Dir.exist?(full_path)
31
+ if File.exist?(full_path)
12
32
  full_path if allow_root || !root_path?(full_path)
13
33
  end
14
34
  end.compact.uniq
@@ -17,6 +37,10 @@ module Lookbook
17
37
  def root_path?(path)
18
38
  Rails.application.root.to_s == path.to_s
19
39
  end
40
+
41
+ def strip_slashes(path)
42
+ path.to_s.gsub(/\A\/|\/\z/, "")
43
+ end
20
44
  end
21
45
  end
22
46
  end
@@ -0,0 +1,24 @@
1
+ module Lookbook
2
+ module Utils
3
+ class << self
4
+ def id(*args)
5
+ parts = args.map { |arg| arg.to_s }
6
+ id_str = parts.join("-").force_encoding("UTF-8").parameterize.dasherize
7
+ PathUtils.strip_slashes(id_str).tr("/", "-").gsub("--", "-")
8
+ end
9
+
10
+ def name(str)
11
+ str.to_s.parameterize.tr("-", "_")
12
+ end
13
+
14
+ def value_or_fallback(value, fallback = nil, &block)
15
+ if value.nil?
16
+ fallback_block = block || proc { fallback }
17
+ fallback_block.call
18
+ else
19
+ value
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -2,6 +2,12 @@ module Lookbook
2
2
  class ComponentTag < YardTag
3
3
  def value
4
4
  text.constantize if text.present?
5
+ rescue
6
+ nil
7
+ end
8
+
9
+ def tag_body
10
+ text
5
11
  end
6
12
  end
7
13
  end
@@ -1,5 +1,7 @@
1
1
  module Lookbook
2
2
  class CustomTag < YardTag
3
+ supports_options
4
+
3
5
  attr_reader :arg_names, :tag_args
4
6
 
5
7
  def initialize(tag_name, text = nil, *args)
@@ -1,7 +1,7 @@
1
1
  module Lookbook
2
2
  class IdTag < YardTag
3
3
  def value
4
- AttributeUtils.entity_id(text) if text.present?
4
+ Utils.id(text) if text.present?
5
5
  end
6
6
  end
7
7
  end
@@ -1,4 +1,7 @@
1
1
  module Lookbook
2
2
  class LogicalPathTag < YardTag
3
+ def value
4
+ PathUtils.strip_slashes(super)
5
+ end
3
6
  end
4
7
  end
@@ -3,6 +3,8 @@ module Lookbook
3
3
  VALUE_TYPE_MATCHER = /^(\[\s?([A-Z]{1}\w+)\s?\])/
4
4
  DESCRIPTION_MATCHER = /"(.*[^\\])"$/
5
5
 
6
+ supports_options
7
+
6
8
  attr_reader :tag_args
7
9
 
8
10
  def initialize(text)
@@ -0,0 +1,7 @@
1
+ module Lookbook
2
+ class SourceTag < YardTag
3
+ def value
4
+ resolve_path(text.strip) if text.present?
5
+ end
6
+ end
7
+ end
@@ -26,23 +26,51 @@ module Lookbook
26
26
  # i.e. for the @hidden tag this would return boolean true/false.
27
27
  alias_method :value, :text
28
28
 
29
+ def self.supports_options(value = true)
30
+ @supports_options = !!value
31
+ end
32
+
33
+ def self.supports_options?
34
+ @supports_options.nil? ? false : @supports_options
35
+ end
36
+
37
+ supports_options
38
+
29
39
  protected
30
40
 
31
41
  def tag_parts
32
42
  if @tag_parts.nil?
33
- options, text = TagOptionsParser.call(@text, {
34
- file: host_file,
35
- base_dir: (File.dirname(host_file) if host_file),
36
- eval_context: host_class_instance,
37
- permit_eval: Lookbook.config.preview_params_options_eval
38
- })
43
+ options, text = if self.class.supports_options?
44
+ TagOptionsParser.call(@text, {
45
+ file: host_file,
46
+ base_dir: host_file&.dirname,
47
+ eval_context: host_class_instance,
48
+ permit_eval: Lookbook.config.preview_params_options_eval
49
+ })
50
+ else
51
+ [{}, @text]
52
+ end
39
53
  end
40
54
  @tag_parts ||= {options: options, text: text}
41
55
  end
42
56
 
57
+ def resolve_path(path)
58
+ return unless host_file
59
+
60
+ dir = path.start_with?(".") ? host_file.dirname : host_file_base_directory
61
+ Pathname(File.expand_path(path, dir))
62
+ end
63
+
43
64
  def host_file
44
65
  location = object&.files&.first # [file, line_number]
45
- location&.first
66
+ Pathname(location.first) if location
67
+ end
68
+
69
+ def host_file_base_directory
70
+ return unless host_file
71
+
72
+ directories = Engine.preview_paths.map(&:to_s).sort_by(&:length).reverse
73
+ directories.first { |dir| host_file.to_s.start_with?(dir) }
46
74
  end
47
75
 
48
76
  def host_class_instance
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "1.3.4"
2
+ VERSION = "1.4.0"
3
3
  end
data/lib/lookbook.rb CHANGED
@@ -16,23 +16,27 @@ module Lookbook
16
16
  end
17
17
 
18
18
  def config
19
- @config ||= ConfigStore.init_from_config
19
+ @_config ||= ConfigStore.init_from_config
20
20
  end
21
21
 
22
22
  def configure
23
23
  yield(config)
24
24
  end
25
25
 
26
+ def engine
27
+ Engine
28
+ end
29
+
26
30
  def data
27
- @data ||= Store.new
31
+ @_data ||= Store.new
28
32
  end
29
33
 
30
34
  def data=(new_data)
31
- @data = Store.new(new_data)
35
+ @_data = Store.new(new_data)
32
36
  end
33
37
 
34
38
  def logger
35
- @logger ||= if Rails.logger.present? && config.log_use_rails_logger
39
+ @_logger ||= if Rails.logger.present? && config.log_use_rails_logger
36
40
  Rails.logger
37
41
  else
38
42
  logger = Logger.new($stdout)
@@ -55,11 +59,11 @@ module Lookbook
55
59
  end
56
60
 
57
61
  def previews
58
- Preview.all
62
+ Engine.previews
59
63
  end
60
64
 
61
65
  def pages
62
- Page.all
66
+ Engine.pages
63
67
  end
64
68
 
65
69
  def broadcast(event_name, data = {})
@@ -67,7 +71,7 @@ module Lookbook
67
71
  end
68
72
 
69
73
  def theme
70
- @theme ||= Lookbook::Theme.new(config.ui_theme, config.ui_theme_overrides)
74
+ @_theme ||= Lookbook::Theme.new(config.ui_theme, config.ui_theme_overrides)
71
75
  end
72
76
 
73
77
  def define_param_input(*args)
@@ -1444,6 +1444,39 @@ pre[class*="language-"] {
1444
1444
  padding: 1rem;
1445
1445
  }
1446
1446
 
1447
+ [data-component="nav"] .nav-action {
1448
+ width: 100%;
1449
+ cursor: pointer;
1450
+ -webkit-user-select: none;
1451
+ user-select: none;
1452
+ color: var(--lookbook-nav-text);
1453
+ align-items: center;
1454
+ padding-top: .25rem;
1455
+ padding-bottom: .25rem;
1456
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;
1457
+ transition-duration: .15s;
1458
+ transition-timing-function: cubic-bezier(.4, 0, .2, 1);
1459
+ display: flex;
1460
+ }
1461
+
1462
+ [data-component="nav"] .nav-action:hover {
1463
+ background-color: var(--lookbook-nav-item-hover);
1464
+ }
1465
+
1466
+ [data-component="nav"] .nav-action-inner {
1467
+ width: 100%;
1468
+ align-items: center;
1469
+ display: flex;
1470
+ position: relative;
1471
+ }
1472
+
1473
+ [data-component="nav"] .nav-toggle-icon {
1474
+ color: var(--lookbook-nav-toggle);
1475
+ margin-right: .25rem;
1476
+ position: absolute;
1477
+ left: -1rem;
1478
+ }
1479
+
1447
1480
  [data-component="params-editor"] table:not(.linear) thead tr {
1448
1481
  border-bottom-width: 1px;
1449
1482
  border-color: var(--lookbook-divider);
@@ -1761,10 +1794,6 @@ input[type="color"]::-webkit-color-swatch {
1761
1794
  left: -1px;
1762
1795
  }
1763
1796
 
1764
- .-left-4 {
1765
- left: -1rem;
1766
- }
1767
-
1768
1797
  .top-\[2px\] {
1769
1798
  top: 2px;
1770
1799
  }
@@ -2519,11 +2548,6 @@ input[type="color"]::-webkit-color-swatch {
2519
2548
  padding-bottom: .75rem;
2520
2549
  }
2521
2550
 
2522
- .py-1 {
2523
- padding-top: .25rem;
2524
- padding-bottom: .25rem;
2525
- }
2526
-
2527
2551
  .px-1 {
2528
2552
  padding-left: .25rem;
2529
2553
  padding-right: .25rem;
@@ -2732,14 +2756,6 @@ input[type="color"]::-webkit-color-swatch {
2732
2756
  color: var(--lookbook-prose-text);
2733
2757
  }
2734
2758
 
2735
- .text-lookbook-nav-text {
2736
- color: var(--lookbook-nav-text);
2737
- }
2738
-
2739
- .text-lookbook-nav-toggle {
2740
- color: var(--lookbook-nav-toggle);
2741
- }
2742
-
2743
2759
  .text-lookbook-nav-icon-stroke {
2744
2760
  color: var(--lookbook-nav-icon-stroke);
2745
2761
  }
@@ -3466,10 +3482,6 @@ input[type="color"]::-webkit-color-swatch {
3466
3482
  background-color: var(--lookbook-draggable-hint);
3467
3483
  }
3468
3484
 
3469
- .hover\:bg-lookbook-nav-item-hover:hover {
3470
- background-color: var(--lookbook-nav-item-hover);
3471
- }
3472
-
3473
3485
  .hover\:text-gray-900:hover {
3474
3486
  --tw-text-opacity: 1;
3475
3487
  color: rgb(17 24 39 / var(--tw-text-opacity));
@@ -1 +1 @@
1
- {"mappings":"AAKE;;;;;AAOD;;;;AASC;;;;;;;;AAUA;;;;;AAOA;;;;;;AAMA;;;;AAIA;;;;;AAUA;;;;;AAKA;;;;AAMA;;;;;AAQA;;;;AAIA;;;;;;;AAMD;;;;AAEA;;;;AAMC;;;;;;AAQA;;;;;;;;;;AAcA;;;;AAMA;;;;;;AASA;;;;AAIA;;;;AAIA;;;;AAIA;;;;AAMA;;;;;AAKA;;;;AAKA;;;;;AAKA;;;;AAIA;;;;AAcD;;;;;AAGA;;;;AAEA;;;;;;AAQC;;;;AAKA;;;;;AAMA;;;;AAKA;;;;AAMA;;;;;AAYA;;;;;AAIwE;;;;AAEzE;;;;;;;;;;;;AAaA;;;;;;;;;;;;;AAWA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AAgBA;;;;AAEA;;;;AAEA;;;;;;;;;;;;AAUA;;;;;;;;AAMA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;;;AAQA;;;;;AAGA;;;;;AAGA;EACG;;;;;AAGD;;;;;;;;;;AAQF;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA;;;;;;;;;;;;AAaA;;;;;;;;;;;;;AAWA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;;;;AAMA;;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;AAKA;;;;;AAGA;;;;AAEA;;;;;;;AAKA;;;;;;;;;;;;AAUA;;;;AAEA;;;;AAEA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;AAMA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;AAIA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;;;;;AAcA;;;;;;;;;;;;AAUA;;;;AAIA;;;;;;;;;;AAQA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;;;;AAKA;;;;;;;AAKA;;;;;;;AAKA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;AAUA;;;;;;AAIA;;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;;;;AAKA;;;;;;;AAKA;;;;;;;AAKA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;AAUA;;;;;;AAIA;;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;AAMA;;;;;AAGI;;;;;;;AAKc;;;;AAElB;;;;;;;;AAMM;;;;;;;;;;;;AASA;;;;;;;;AAMA;;;;;AAGN;;;;;AAGgC;;;;AAEhC;;;;;AAGA;;;;;;AAiBI;;;;;;AAIJ;;;;;;;AAKI;;;;;;;;;AAOJ;;;;;;;;;;AAQA;;;;;AAGA;;;;;AAGA;;;;;;;AAQA;;;;AAEQ;;;;AAEA;;;;;AAGR;;;;;AAMA;;;;AAEA;;;;AAEQ;;;;AAIF;;;;AAGA;;;;;AAGN;;;;;;AAIA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;;;;;AAMA;;;;;AAGI;;;;;;;AAKJ;;;;;AAGE;;;;;;;;;;AAQF;;;;;AAGA;;;;;;;;;;AAOA;;;;AAEA;;;;AAeA;;;;;AAgBA;;;;AAeA;;;;;AAgBA;;;;;;;;;AAoBA;;;;;;;AAME;;;;AAEA;;;;;;AAIF;;;;;;;;;AAQE;;;;;;AAIF;;;;;;;;AAMA;;;;;;AAKA;;;;;;;;;AAOE;;;;AAEA;;;;;AAGF;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAKA;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAA6D;;;;AAA+C;;;;;;;;;;;;AAA6L;;;;AAAsD;;;;;;;;AAAmJ;;;;AAAsD;;;;;;;;AAAyJ;;;;AAAsD;;;;;;;AAAkJ;;;;AAAsD;;;;;;;AAAoJ;;;;AAAuG;;;;;;AAA+C;;;;;;;AAA6F;;;;;;AAA2D;;;;AAAkC;;;;;;;AAAsH;;;;;;;AAAyH;;;;;;;AAA0H;;;;;;;AAA2H;;;;AAA2F;;;;AAAiG;;;;AAA6F;;;;AAA+F;;;;AAAkC;;;;;;;;AAAuG;;;;;;;;AAOx4E;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;;;AASF;;;;;;AAIA;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CE;;;;AAEF;;;;;;AAIE;;;;AAEE;;;;;AAGa;;;;;AAGF;;;;AAEE;;;;;AAG2B;;;;AAE3B;;;;AAGH;;;;;AAGI;;;;AAEH;;;;AAEM;;;;;AAGM;;;;;AAGF;;;;;AAGD;;;;;;;AAKC;;;;;AAGA;;;;;AAGH;;;;AAEC;;;;AAEE;;;;;AAGC;;;;AAEF;;;;AAEA;;;;;AAGA;;;;;AAGI;;;;AAED;;;;;AAeD;;;;;AAGJ;;;;AAEA;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEF;;;;;AAGF;;;;AAEG;;;;AAEC;;;;AAEH;;;;;AAGG;;;;;AAGD;;;;AAEH;;;;AAEI;;;;AAID;;;;AAEL;;;;AAEK;;;;;AAGA;;;;AAEE;;;;AAQG;;;;AAcK;;;;AAEH;;;;AAEA;;;;AAEC;;;;AAEA;;;;AAEF;;;;AAMG;;;;AAEyF;;;;;AAG/F;;;;AAItB;;;;AAEJ;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;;AAGA;;;;AAEA;EAEC;;;;;EAKA","sources":["app/assets/lookbook/css/lookbook.css"],"sourcesContent":["@import \"tailwindcss/base\";\n@import \"tailwindcss/components\";\n@import \"tailwindcss/utilities\";\n\n@import \"./tooltip.css\";\n\n@import-glob \"../../../components/lookbook/**/*/component.css\";\n\n@layer base {\n html {\n @apply scroll-smooth h-screen;\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n html {\n @apply scroll-auto;\n }\n }\n\n body {\n @apply text-lookbook-text font-sans text-sm antialiased overflow-hidden;\n }\n\n [x-cloak] {\n @apply !hidden;\n }\n\n pre[class*=\"language-\"] {\n @apply !p-0 !m-0;\n }\n\n ::-webkit-scrollbar {\n @apply w-1 h-1;\n }\n\n ::-webkit-scrollbar-track {\n @apply bg-transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n @apply transition-colors rounded-full\tbg-clip-content bg-lookbook-scrollbar;\n }\n\n ::-webkit-scrollbar-thumb:hover {\n @apply bg-lookbook-scrollbar-hover;\n }\n}\n\n@layer components {\n [type=\"text\"],\n [type=\"email\"],\n [type=\"url\"],\n [type=\"password\"],\n [type=\"number\"],\n [type=\"date\"],\n [type=\"datetime-local\"],\n [type=\"month\"],\n [type=\"search\"],\n [type=\"tel\"],\n [type=\"time\"],\n [type=\"week\"],\n textarea,\n select {\n @apply text-lookbook-input-text placeholder:text-lookbook-input-text-placeholder placeholder:italic;\n @apply border-lookbook-input-border focus:ring-lookbook-input-border-focus focus:border-lookbook-input-border-focus;\n @apply rounded-md text-sm w-full bg-lookbook-input-bg block;\n }\n\n input[type=\"range\"] {\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n cursor: pointer;\n width: 100%;\n }\n\n input[type=\"range\"]:focus {\n outline: none;\n }\n\n input[type=\"range\"]::-webkit-slider-runnable-track {\n @apply bg-lookbook-input-toggle;\n border-radius: 0.5rem;\n height: 0.5rem;\n }\n\n input[type=\"range\"]::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n @apply bg-lookbook-input-toggle-active;\n margin-top: -4px;\n border-radius: 0.5rem;\n height: 1rem;\n width: 1rem;\n }\n\n input[type=\"range\"]::-moz-range-track {\n @apply bg-lookbook-input-toggle;\n border-radius: 0.5rem;\n height: 0.5rem;\n }\n\n input[type=\"range\"]::-moz-range-thumb {\n @apply bg-lookbook-input-toggle-active;\n border: none;\n border-radius: 0.5rem;\n height: 1rem;\n width: 1rem;\n }\n\n input[type=\"range\"]:focus::-webkit-slider-thumb,\n input[type=\"range\"]:focus::-moz-range-thumb {\n @apply outline-1 outline-lookbook-input-toggle-active outline-offset-2;\n }\n\n input[type=\"color\"] {\n -webkit-appearance: none;\n width: 46px;\n @apply border border-lookbook-input-border rounded-lg cursor-pointer;\n }\n\n input[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n input[type=\"color\"]::-webkit-color-swatch {\n @apply border-0 rounded-lg;\n }\n}\n"],"names":[],"version":3,"file":"lookbook.css.map"}
1
+ {"mappings":"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;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAKA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;AAGA;;;;AAEA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAA6D;;;;AAA+C;;;;;;;;;;;;AAA6L;;;;AAAsD;;;;;;;;AAAmJ;;;;AAAsD;;;;;;;;AAAyJ;;;;AAAsD;;;;;;;AAAkJ;;;;AAAsD;;;;;;;AAAoJ;;;;AAAuG;;;;;;AAA+C;;;;;;;AAA6F;;;;;;AAA2D;;;;AAAkC;;;;;;;AAAsH;;;;;;;AAAyH;;;;;;;AAA0H;;;;;;;AAA2H;;;;AAA2F;;;;AAAiG;;;;AAA6F;;;;AAA+F;;;;AAAkC;;;;;;;;AAAuG;;;;;;;;AAOx4E;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;;;AASF;;;;;;AAIA;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CE;;;;AAEF;;;;;;AAIE;;;;AAEE;;;;;AAGa;;;;;AAGF;;;;AAEE;;;;;AAG2B;;;;AAE3B;;;;AAGH;;;;;AAGI;;;;AAEH;;;;AAEM;;;;;AAGM;;;;;AAGF;;;;;AAGD;;;;;;;AAKC;;;;;AAGA;;;;;AAGH;;;;AAEC;;;;AAEE;;;;;AAGC;;;;AAEF;;;;AAEA;;;;;AAGA;;;;;AAGI;;;;AAED;;;;;AAeD;;;;;AAGJ;;;;AAEA;;;;AAEE;;;;AAEA;;;;AAEA;;;;AAEF;;;;;AAGF;;;;AAEG;;;;AAEC;;;;AAEH;;;;;AAGG;;;;;AAGD;;;;AAEH;;;;AAEI;;;;AAID;;;;AAEL;;;;AAEK;;;;;AAGA;;;;AAEE;;;;AAQG;;;;AAcK;;;;AAEH;;;;AAEA;;;;AAEC;;;;AAEA;;;;AAEF;;;;AAMG;;;;AAEyF;;;;;AAG/F;;;;AAItB;;;;AAEJ;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;;;AAIA;;;;AAEA;;;;;AAGA;;;;AAEA;EAEC;;;;;EAKA","sources":["app/assets/lookbook/css/lookbook.css"],"sourcesContent":["@import \"tailwindcss/base\";\n@import \"tailwindcss/components\";\n@import \"tailwindcss/utilities\";\n\n@import \"./tooltip.css\";\n\n@import-glob \"../../../components/lookbook/**/*/component.css\";\n\n@layer base {\n html {\n @apply scroll-smooth h-screen;\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n html {\n @apply scroll-auto;\n }\n }\n\n body {\n @apply text-lookbook-text font-sans text-sm antialiased overflow-hidden;\n }\n\n [x-cloak] {\n @apply !hidden;\n }\n\n pre[class*=\"language-\"] {\n @apply !p-0 !m-0;\n }\n\n ::-webkit-scrollbar {\n @apply w-1 h-1;\n }\n\n ::-webkit-scrollbar-track {\n @apply bg-transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n @apply transition-colors rounded-full\tbg-clip-content bg-lookbook-scrollbar;\n }\n\n ::-webkit-scrollbar-thumb:hover {\n @apply bg-lookbook-scrollbar-hover;\n }\n}\n\n@layer components {\n [type=\"text\"],\n [type=\"email\"],\n [type=\"url\"],\n [type=\"password\"],\n [type=\"number\"],\n [type=\"date\"],\n [type=\"datetime-local\"],\n [type=\"month\"],\n [type=\"search\"],\n [type=\"tel\"],\n [type=\"time\"],\n [type=\"week\"],\n textarea,\n select {\n @apply text-lookbook-input-text placeholder:text-lookbook-input-text-placeholder placeholder:italic;\n @apply border-lookbook-input-border focus:ring-lookbook-input-border-focus focus:border-lookbook-input-border-focus;\n @apply rounded-md text-sm w-full bg-lookbook-input-bg block;\n }\n\n input[type=\"range\"] {\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n cursor: pointer;\n width: 100%;\n }\n\n input[type=\"range\"]:focus {\n outline: none;\n }\n\n input[type=\"range\"]::-webkit-slider-runnable-track {\n @apply bg-lookbook-input-toggle;\n border-radius: 0.5rem;\n height: 0.5rem;\n }\n\n input[type=\"range\"]::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n @apply bg-lookbook-input-toggle-active;\n margin-top: -4px;\n border-radius: 0.5rem;\n height: 1rem;\n width: 1rem;\n }\n\n input[type=\"range\"]::-moz-range-track {\n @apply bg-lookbook-input-toggle;\n border-radius: 0.5rem;\n height: 0.5rem;\n }\n\n input[type=\"range\"]::-moz-range-thumb {\n @apply bg-lookbook-input-toggle-active;\n border: none;\n border-radius: 0.5rem;\n height: 1rem;\n width: 1rem;\n }\n\n input[type=\"range\"]:focus::-webkit-slider-thumb,\n input[type=\"range\"]:focus::-moz-range-thumb {\n @apply outline-1 outline-lookbook-input-toggle-active outline-offset-2;\n }\n\n input[type=\"color\"] {\n -webkit-appearance: none;\n width: 46px;\n @apply border border-lookbook-input-border rounded-lg cursor-pointer;\n }\n\n input[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n input[type=\"color\"]::-webkit-color-swatch {\n @apply border-0 rounded-lg;\n }\n}\n"],"names":[],"version":3,"file":"lookbook.css.map"}