lookbook 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/lookbook/js/helpers/string.js +23 -1
  3. data/app/assets/lookbook/js/lookbook.js +0 -1
  4. data/app/components/lookbook/button/component.html.erb +2 -1
  5. data/app/components/lookbook/button/component.js +9 -0
  6. data/app/components/lookbook/display_options/editor/component.html.erb +13 -0
  7. data/app/components/lookbook/display_options/editor/component.rb +7 -0
  8. data/app/components/lookbook/display_options/field/component.css +33 -0
  9. data/app/components/lookbook/display_options/field/component.html.erb +8 -0
  10. data/app/components/lookbook/display_options/field/component.js +30 -0
  11. data/app/components/lookbook/display_options/field/component.rb +28 -0
  12. data/app/components/lookbook/inspector_panel/component.html.erb +1 -1
  13. data/app/components/lookbook/inspector_panel/component.rb +10 -11
  14. data/app/components/lookbook/params/editor/component.rb +6 -3
  15. data/app/components/lookbook/params/field/component.rb +1 -5
  16. data/app/components/lookbook/tab_panels/panel/component.html.erb +1 -1
  17. data/app/components/lookbook/tab_panels/panel/component.rb +1 -2
  18. data/app/components/lookbook/tabs/dropdown_tab/component.html.erb +1 -0
  19. data/app/components/lookbook/tabs/tab/component.html.erb +1 -0
  20. data/app/components/lookbook/viewport/component.html.erb +1 -1
  21. data/app/components/lookbook/viewport/component.rb +2 -1
  22. data/app/controllers/lookbook/previews_controller.rb +40 -29
  23. data/app/helpers/lookbook/preview_helper.rb +1 -1
  24. data/app/views/lookbook/previews/panels/_params.html.erb +1 -1
  25. data/app/views/lookbook/previews/panels/_preview.html.erb +9 -6
  26. data/app/views/lookbook/previews/show.html.erb +29 -11
  27. data/config/app.yml +36 -0
  28. data/config/hooks.yml +4 -0
  29. data/config/inputs.yml +48 -0
  30. data/config/panels.yml +30 -0
  31. data/config/routes.rb +1 -1
  32. data/config/tags.yml +29 -0
  33. data/lib/lookbook/engine.rb +40 -20
  34. data/lib/lookbook/markdown.rb +1 -11
  35. data/lib/lookbook/page.rb +1 -1
  36. data/lib/lookbook/params.rb +0 -7
  37. data/lib/lookbook/parser.rb +3 -10
  38. data/lib/lookbook/preview.rb +7 -3
  39. data/lib/lookbook/preview_example.rb +7 -3
  40. data/lib/lookbook/preview_group.rb +2 -2
  41. data/lib/lookbook/services/config_loader.rb +20 -0
  42. data/lib/lookbook/services/search_param_builder.rb +13 -0
  43. data/lib/lookbook/services/search_param_parser.rb +15 -0
  44. data/lib/lookbook/services/tags/key_value_tag_parser.rb +24 -0
  45. data/lib/lookbook/source_inspector.rb +10 -16
  46. data/lib/lookbook/stores/config_store.rb +80 -0
  47. data/lib/lookbook/stores/hook_store.rb +28 -0
  48. data/lib/lookbook/stores/input_store.rb +58 -0
  49. data/lib/lookbook/stores/panel_store.rb +141 -0
  50. data/lib/lookbook/stores/tag_store.rb +46 -0
  51. data/lib/lookbook/support/errors/config_error.rb +7 -0
  52. data/lib/lookbook/support/errors/lookbook_error.rb +21 -0
  53. data/lib/lookbook/support/errors/parser_error.rb +7 -0
  54. data/lib/lookbook/support/service.rb +7 -0
  55. data/lib/lookbook/support/store.rb +77 -0
  56. data/lib/lookbook/support/utils/attribute_utils.rb +9 -0
  57. data/lib/lookbook/support/utils/path_utils.rb +19 -0
  58. data/lib/lookbook/tags.rb +5 -14
  59. data/lib/lookbook/version.rb +1 -1
  60. data/lib/lookbook.rb +43 -12
  61. data/public/lookbook-assets/css/lookbook.css +33 -0
  62. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  63. data/public/lookbook-assets/js/lookbook.js +145 -4
  64. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  65. metadata +29 -6
  66. data/lib/lookbook/config.rb +0 -278
  67. data/lib/lookbook/hooks.rb +0 -21
  68. data/lib/lookbook/panels.rb +0 -25
  69. data/lib/lookbook/store.rb +0 -34
@@ -0,0 +1,141 @@
1
+ module Lookbook
2
+ class PanelStore
3
+ CONFIG_FILE = "config/panels.yml"
4
+
5
+ DEFAULTS = {
6
+ label: lambda { |data| data.name.titleize },
7
+ hotkey: nil,
8
+ disabled: false,
9
+ show: true,
10
+ copy: nil,
11
+ locals: {}
12
+ }
13
+
14
+ attr_reader :store
15
+ delegate :to_h, to: :store
16
+
17
+ def initialize(config = nil)
18
+ @store = {}
19
+ load_config(config)
20
+ end
21
+
22
+ def add_panel(name, group_name, *args)
23
+ if get_panel(name)
24
+ raise ConfigError.new("panel with name '#{name}' already exists", scope: "panels.config")
25
+ else
26
+ panel = build_config(name, group_name, *args)
27
+ insert_at_position(group_name, panel.position, panel)
28
+ end
29
+ end
30
+
31
+ def update_panel(name, opts = {})
32
+ panel = get_panel(name)
33
+ if panel.present?
34
+ panel.merge!(opts.except(:name, :position))
35
+ if opts.key?(:position)
36
+ remove_panel(name)
37
+ insert_at_position(panel.group, opts[:position], panel)
38
+ end
39
+ else
40
+ not_found!(name)
41
+ end
42
+ end
43
+
44
+ def remove_panel(name)
45
+ store.each do |group_name, panels|
46
+ return true unless panels.reject! { |p| p.name == name.to_sym }.nil?
47
+ end
48
+ not_found!(name)
49
+ end
50
+
51
+ def load_config(config)
52
+ config.to_h.each do |group_name, panels|
53
+ panels.each do |opts|
54
+ add_panel(opts[:name], group_name, opts.except(:name))
55
+ end
56
+ end
57
+ end
58
+
59
+ def get_panel(name, group_name = nil)
60
+ panels(group_name).find { |p| p.name == name.to_sym }
61
+ end
62
+
63
+ def count_panels(group_name = nil)
64
+ panels(group_name).count
65
+ end
66
+
67
+ def in_group(name)
68
+ store[name.to_sym] ||= []
69
+ end
70
+
71
+ def panels(group_name = nil)
72
+ store.to_h.reduce([]) do |result, (name, group_panels)|
73
+ result.push(*group_panels) if group_name.nil? || name == group_name.to_sym
74
+ end
75
+ end
76
+
77
+ def self.resolve_config(opts, data)
78
+ if opts[:name].present?
79
+ data = data.is_a?(Store) ? data : Store.new(data)
80
+ data.name = opts[:name].to_s
81
+ resolved = opts.transform_values do |value|
82
+ value.respond_to?(:call) ? value.call(data) : value
83
+ end
84
+ Store.new(resolved)
85
+ else
86
+ raise ConfigError.new(":name key is required when resolving config", scope: "panels.config")
87
+ end
88
+ end
89
+
90
+ def self.init_from_config
91
+ new(default_config)
92
+ end
93
+
94
+ def self.default_config
95
+ config = ConfigLoader.call(CONFIG_FILE)
96
+ config.each do |group, panels|
97
+ panels.map! do |opts|
98
+ opts.transform_values! do |value|
99
+ value.is_a?(String) && value.start_with?("->") ? eval(value) : value # standard:disable Security/Eval
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ protected
106
+
107
+ def insert_at_position(group_name, position, opts)
108
+ group_panels = in_group(group_name)
109
+ index = insert_index(position, group_panels.count)
110
+ group_panels.insert(index, opts.except!(:position))
111
+ end
112
+
113
+ def insert_index(position, items_count)
114
+ index = position == 0 ? 1 : (position || 0).to_int
115
+ last_position = items_count + 1
116
+ index = last_position if index > last_position
117
+ index - 1
118
+ end
119
+
120
+ def build_config(name, group_name, *args)
121
+ opts = if args.many? && args.last.is_a?(Hash)
122
+ args.last.merge({partial: args.first})
123
+ elsif args.any?
124
+ args.first.is_a?(String) ? {partial: args.first} : args.first
125
+ else
126
+ {}
127
+ end
128
+ if opts[:partial].present?
129
+ opts[:name] = name.to_sym
130
+ opts[:group] = group_name.to_sym
131
+ Store.new(DEFAULTS.merge(opts))
132
+ else
133
+ raise ConfigError.new("panels must define a partial path", scope: "panels.config")
134
+ end
135
+ end
136
+
137
+ def not_found!(name)
138
+ raise ConfigError.new("could not find panel named '#{name}'", scope: "panels.config")
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,46 @@
1
+ module Lookbook
2
+ class TagStore
3
+ CONFIG_FILE = "config/tags.yml"
4
+
5
+ attr_reader :store
6
+ delegate :to_h, to: :store
7
+
8
+ def initialize(config = nil)
9
+ @store = {}
10
+ config.to_h.each { add_tag(_1, _2) }
11
+ end
12
+
13
+ def add_tag(name, opts = nil)
14
+ name = name.to_sym
15
+ if store.key?(name)
16
+ raise ConfigError.new("tag with name '#{name}' already exists", scope: "tags.config")
17
+ else
18
+ store[name] = build_config(name, opts)
19
+ end
20
+ end
21
+
22
+ def get_tag(name)
23
+ store[name.to_sym]
24
+ end
25
+
26
+ def self.init_from_config
27
+ new(default_config)
28
+ end
29
+
30
+ def self.default_config
31
+ ConfigLoader.call(CONFIG_FILE)
32
+ end
33
+
34
+ protected
35
+
36
+ def build_config(name, opts = nil)
37
+ opts = opts.to_h
38
+ Store.new({
39
+ name: name.to_sym,
40
+ label: opts[:label] || name.to_s.titleize,
41
+ yard_parser: opts[:yard_parser]&.to_sym,
42
+ opts: opts[:opts].to_h
43
+ })
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,7 @@
1
+ module Lookbook
2
+ class ConfigError < LookbookError
3
+ def initialize(msg = nil, scope: "config", **kwargs)
4
+ super(msg, scope: scope, **kwargs)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,21 @@
1
+ module Lookbook
2
+ class LookbookError < StandardError
3
+ attr_reader :scope, :original, :message
4
+
5
+ def initialize(msg = nil, scope: nil, original: nil)
6
+ @scope = scope
7
+ @original = original
8
+ @message = msg
9
+ super(msg)
10
+ end
11
+
12
+ def full_message
13
+ if msg.nil?
14
+ message
15
+ else
16
+ scope_str = scope.nil? ? "[#{scope}]" : ""
17
+ "#{scope_str} #{message}".strip
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Lookbook
2
+ class ParserError < LookbookError
3
+ def initialize(msg = nil, scope: "parser", **kwargs)
4
+ super(msg, scope: scope, **kwargs)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Lookbook
2
+ class Service
3
+ def self.call(*args, **kwargs)
4
+ new(*args, **kwargs).call
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,77 @@
1
+ module Lookbook
2
+ class Store < ActiveSupport::OrderedOptions
3
+ def initialize(initial_data = nil, opts = {})
4
+ @recursive = opts[:recursive] || false
5
+ super()
6
+ initial_data.to_h.each { self[_1] = _2 }
7
+ end
8
+
9
+ def []=(key, value)
10
+ super(key, normalize_value(value))
11
+ end
12
+
13
+ def fetch(name, *args)
14
+ super(name.to_sym, *args)
15
+ end
16
+
17
+ def method_missing(name, *args)
18
+ if name.to_s.end_with?("=")
19
+ args[0] = normalize_value(args[0])
20
+ end
21
+ super(name, *args)
22
+ end
23
+
24
+ def respond_to_missing?(name, include_private)
25
+ true
26
+ end
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
+ def to_h
62
+ transform_values do |value|
63
+ value.is_a?(Store) ? value.to_h : value
64
+ end
65
+ end
66
+
67
+ def to_hash
68
+ to_h
69
+ end
70
+
71
+ protected
72
+
73
+ def normalize_value(value)
74
+ @recursive && !value.is_a?(Store) && value.is_a?(Hash) ? Store.new(value, recursive: @recursive) : value
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,9 @@
1
+ module Lookbook
2
+ module AttributeUtils
3
+ class << self
4
+ def dom_id(*args)
5
+ ["lookbook", *args].join("-").parameterize.dasherize
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ module Lookbook
2
+ module PathUtils
3
+ class << self
4
+ def to_absolute(path)
5
+ File.absolute_path(path.to_s, Rails.root)
6
+ end
7
+
8
+ def normalize_all(paths, allow_root: false)
9
+ root = Rails.application.root.to_s
10
+ paths.map do |path|
11
+ full_path = to_absolute(path)
12
+ if Dir.exist?(full_path)
13
+ full_path if allow_root || full_path.to_s != root
14
+ end
15
+ end.compact.uniq
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/lookbook/tags.rb CHANGED
@@ -1,23 +1,14 @@
1
1
  module Lookbook
2
2
  module Tags
3
- def define_tag(name, args = nil, opts = {}, &block)
4
- name = name.to_s.downcase.underscore.to_sym
5
- if args.is_a? Hash
6
- opts = args
7
- args = nil
8
- end
9
- opts[:args] = args
10
- opts[:parser] = block if block
11
- Lookbook.config.preview_tags[name] = opts
12
- end
13
-
14
3
  def self.process_tags(tag_objects, file: nil, eval_scope: nil)
15
4
  return [] if tag_objects.none?
16
5
  tag_objects.map do |tag_object|
17
- opts = Lookbook.config.preview_tags[tag_object.tag_name] || {}
6
+ tag_config = Engine.tags.get_tag(tag_object.tag_name).to_h
7
+ tag_opts = tag_config[:opts].to_h
18
8
  Lookbook::Tag.new(tag_object,
19
- opts[:args],
20
- **opts.except(:args),
9
+ tag_opts[:named_args],
10
+ parser: tag_opts[:args_parser],
11
+ **tag_opts.except(:named_args, :args_parser),
21
12
  file: file,
22
13
  eval_scope: eval_scope)
23
14
  end.compact
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.1"
3
3
  end
data/lib/lookbook.rb CHANGED
@@ -1,24 +1,21 @@
1
1
  require "zeitwerk"
2
- require "ostruct"
3
2
  require "lookbook/version"
4
3
 
5
4
  loader = Zeitwerk::Loader.for_gem
6
5
  loader.ignore("#{__dir__}/lookbook.rb")
7
6
  loader.push_dir("#{__dir__}/lookbook", namespace: Lookbook)
7
+ loader.collapse("#{__dir__}/lookbook/*")
8
+ loader.collapse("#{__dir__}/lookbook/*/*")
8
9
  loader.setup
9
10
 
10
11
  module Lookbook
11
12
  class << self
12
- include Lookbook::Hooks
13
- include Lookbook::Panels
14
- include Lookbook::Tags
15
-
16
13
  def version
17
14
  Lookbook::VERSION
18
15
  end
19
16
 
20
17
  def config
21
- @config ||= Config.new
18
+ @config ||= ConfigStore.init_from_config
22
19
  end
23
20
 
24
21
  def configure
@@ -47,7 +44,12 @@ module Lookbook
47
44
  {
48
45
  version: version,
49
46
  env: Rails.env.to_s,
50
- config: config.to_h
47
+ config: [
48
+ config.to_h,
49
+ {panels: Engine.panels.to_h},
50
+ {inputs: Engine.inputs.to_h},
51
+ {tags: Engine.tags.to_h}
52
+ ].inject(:merge)
51
53
  }
52
54
  end
53
55
 
@@ -67,13 +69,42 @@ module Lookbook
67
69
  @theme ||= Lookbook::Theme.new(config.ui_theme, config.ui_theme_overrides)
68
70
  end
69
71
 
70
- def define_param_input(input, partial, input_options = nil)
71
- config.preview_param_inputs[input.to_sym] = {
72
- partial: partial,
73
- input_options: input_options || {}
74
- }
72
+ def define_param_input(*args)
73
+ Engine.inputs.add_input(*args)
74
+ end
75
+
76
+ def define_panel(name, *args)
77
+ Engine.panels.add_panel(name, :drawer, *args)
78
+ end
79
+
80
+ def amend_panel(*args)
81
+ Engine.panels.update_panel(*args)
82
+ end
83
+
84
+ def remove_panel(name)
85
+ Engine.panels.remove_panel(name)
86
+ end
87
+
88
+ def define_tag(name, args = nil, &block)
89
+ Engine.tags.add_tag(name, {
90
+ named_args: args.to_a,
91
+ args_parser: block
92
+ })
93
+ end
94
+
95
+ def after_initialize(&block)
96
+ Engine.hooks.add_hook(:after_initialize, block)
97
+ end
98
+
99
+ def before_exit(&block)
100
+ Engine.hooks.add_hook(:before_exit, block)
101
+ end
102
+
103
+ def after_change(&block)
104
+ Engine.hooks.add_hook(:after_change, block)
75
105
  end
76
106
  end
77
107
  end
78
108
 
109
+ require "rails"
79
110
  require "lookbook/engine"
@@ -1691,6 +1691,25 @@ pre[class*="language-"] {
1691
1691
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
1692
1692
  }
1693
1693
 
1694
+ [data-component="display-options-field"] [type="text"], [data-component="display-options-field"] [type="email"], [data-component="display-options-field"] [type="url"], [data-component="display-options-field"] [type="password"], [data-component="display-options-field"] [type="number"], [data-component="display-options-field"] [type="date"], [data-component="display-options-field"] [type="datetime-local"], [data-component="display-options-field"] [type="month"], [data-component="display-options-field"] [type="search"], [data-component="display-options-field"] [type="tel"], [data-component="display-options-field"] [type="time"], [data-component="display-options-field"] [type="week"], [data-component="display-options-field"] textarea, [data-component="display-options-field"] select {
1695
+ padding: .26rem .6rem;
1696
+ font-size: .8rem;
1697
+ line-height: 1.1rem;
1698
+ }
1699
+
1700
+ [data-component="display-options-field"] label {
1701
+ cursor: pointer;
1702
+ color: var(--lookbook-input-text);
1703
+ font-size: .82rem;
1704
+ }
1705
+
1706
+ [data-component="display-options-field"] select {
1707
+ background-position: right .4rem center;
1708
+ background-size: 1.2em 1.2em;
1709
+ border-radius: .375rem;
1710
+ padding-right: 1.5rem;
1711
+ }
1712
+
1694
1713
  [data-component="icon"] {
1695
1714
  flex: none;
1696
1715
  line-height: 1;
@@ -2504,6 +2523,12 @@ input[type="color"]::-webkit-color-swatch {
2504
2523
  margin-bottom: calc(.75rem * var(--tw-space-y-reverse));
2505
2524
  }
2506
2525
 
2526
+ .space-x-1\.5 > :not([hidden]) ~ :not([hidden]) {
2527
+ --tw-space-x-reverse: 0;
2528
+ margin-right: calc(.375rem * var(--tw-space-x-reverse));
2529
+ margin-left: calc(.375rem * calc(1 - var(--tw-space-x-reverse)) );
2530
+ }
2531
+
2507
2532
  .divide-y > :not([hidden]) ~ :not([hidden]) {
2508
2533
  --tw-divide-y-reverse: 0;
2509
2534
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)) );
@@ -2926,6 +2951,10 @@ input[type="color"]::-webkit-color-swatch {
2926
2951
  line-height: 1rem;
2927
2952
  }
2928
2953
 
2954
+ .text-\[0\.82rem\] {
2955
+ font-size: .82rem;
2956
+ }
2957
+
2929
2958
  .text-lg {
2930
2959
  font-size: 1.125rem;
2931
2960
  line-height: 1.75rem;
@@ -3021,6 +3050,10 @@ input[type="color"]::-webkit-color-swatch {
3021
3050
  color: var(--lookbook-viewport-handle-icon-stroke);
3022
3051
  }
3023
3052
 
3053
+ .text-lookbook-input-text {
3054
+ color: var(--lookbook-input-text);
3055
+ }
3056
+
3024
3057
  .text-lookbook-nav-text {
3025
3058
  color: var(--lookbook-nav-text);
3026
3059
  }
@@ -1 +1 @@
1
- {"mappings":"AAKE;;;;;AAOD;;;;AAQC;;;;;;;AASA;;;;;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;;;;;AAID;;;;;;;;;;;;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;;;;AAEA;;;;AAEA;;;;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;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;AAKM;;;;;AAMA;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAUA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAMA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAQA;;;;AAgBA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAMA;;;;AAEA;;;;;AAGA;;;;;;;;AAMN;;;;;AAGI;;;;;;;AAKc;;;;AAElB;;;;;;;;AAMM;;;;;;;;;;;;;;;;;AAcA;;;;;;;;AAMA;;;;;AAGN;;;;;AAGgC;;;;AAEhC;;;;;AAGA;;;;;;;;;AAOA;;;;;;;;;;AAQA;;;;;AAGA;;;;;;AAIA;;;;;;;AAQA;;;;AAEQ;;;;AAEA;;;;;;AAIR;;;;;AAMA;;;;AAEA;;;;AAEQ;;;;AAIF;;;;AAGA;;;;;;AAIN;;;;;;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;;;;AAEA;;;;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;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;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;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;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;;;;AAEF;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;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":"AAKE;;;;;AAOD;;;;AAQC;;;;;;;AASA;;;;;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;;;;;AAID;;;;;;;;;;;;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;;;;AAEA;;;;AAEA;;;;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;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;AAKM;;;;;AAMA;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAUA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAMA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAQA;;;;AAgBA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAMA;;;;AAEA;;;;;AAGA;;;;;;;;AAMN;;;;;AAGI;;;;;;;AAKc;;;;AAElB;;;;;;;;AAMM;;;;;;;;;;;;;;;;;AAcA;;;;;;;;AAMA;;;;;AAGN;;;;;AAGgC;;;;AAEhC;;;;;AAGA;;;;;;AAiBI;;;;;;AAIJ;;;;;;;AAKI;;;;;;;;;AAOJ;;;;;;;;;;AAQA;;;;;AAGA;;;;;;AAIA;;;;;;;AAQA;;;;AAEQ;;;;AAEA;;;;;;AAIR;;;;;AAMA;;;;AAEA;;;;AAEQ;;;;AAIF;;;;AAGA;;;;;;AAIN;;;;;;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;;;;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;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;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;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;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;;;;;AAGA;;;;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;;;;AAEF;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;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"}