lookbook 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) 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/display_options/editor/component.html.erb +13 -0
  5. data/app/components/lookbook/display_options/editor/component.rb +7 -0
  6. data/app/components/lookbook/display_options/field/component.css +33 -0
  7. data/app/components/lookbook/display_options/field/component.html.erb +8 -0
  8. data/app/components/lookbook/display_options/field/component.js +30 -0
  9. data/app/components/lookbook/display_options/field/component.rb +28 -0
  10. data/app/components/lookbook/inspector_panel/component.html.erb +1 -1
  11. data/app/components/lookbook/inspector_panel/component.rb +10 -11
  12. data/app/components/lookbook/params/editor/component.rb +6 -3
  13. data/app/components/lookbook/params/field/component.rb +1 -5
  14. data/app/components/lookbook/tab_panels/panel/component.html.erb +1 -1
  15. data/app/components/lookbook/tab_panels/panel/component.rb +1 -2
  16. data/app/components/lookbook/tabs/dropdown_tab/component.html.erb +1 -0
  17. data/app/components/lookbook/tabs/tab/component.html.erb +1 -0
  18. data/app/components/lookbook/viewport/component.html.erb +1 -1
  19. data/app/components/lookbook/viewport/component.rb +2 -1
  20. data/app/controllers/lookbook/previews_controller.rb +40 -29
  21. data/app/helpers/lookbook/preview_helper.rb +1 -1
  22. data/app/views/lookbook/previews/panels/_params.html.erb +1 -1
  23. data/app/views/lookbook/previews/panels/_preview.html.erb +9 -6
  24. data/app/views/lookbook/previews/show.html.erb +29 -11
  25. data/config/app.yml +36 -0
  26. data/config/hooks.yml +4 -0
  27. data/config/inputs.yml +48 -0
  28. data/config/panels.yml +30 -0
  29. data/config/routes.rb +1 -1
  30. data/config/tags.yml +29 -0
  31. data/lib/lookbook/engine.rb +40 -20
  32. data/lib/lookbook/markdown.rb +1 -11
  33. data/lib/lookbook/page.rb +1 -1
  34. data/lib/lookbook/params.rb +0 -7
  35. data/lib/lookbook/parser.rb +3 -10
  36. data/lib/lookbook/preview.rb +7 -3
  37. data/lib/lookbook/preview_example.rb +7 -3
  38. data/lib/lookbook/preview_group.rb +2 -2
  39. data/lib/lookbook/services/config_loader.rb +20 -0
  40. data/lib/lookbook/services/search_param_builder.rb +13 -0
  41. data/lib/lookbook/services/search_param_parser.rb +15 -0
  42. data/lib/lookbook/services/tags/key_value_tag_parser.rb +24 -0
  43. data/lib/lookbook/source_inspector.rb +10 -16
  44. data/lib/lookbook/stores/config_store.rb +80 -0
  45. data/lib/lookbook/stores/hook_store.rb +28 -0
  46. data/lib/lookbook/stores/input_store.rb +58 -0
  47. data/lib/lookbook/stores/panel_store.rb +141 -0
  48. data/lib/lookbook/stores/tag_store.rb +46 -0
  49. data/lib/lookbook/support/errors/config_error.rb +7 -0
  50. data/lib/lookbook/support/errors/lookbook_error.rb +21 -0
  51. data/lib/lookbook/support/errors/parser_error.rb +7 -0
  52. data/lib/lookbook/support/service.rb +7 -0
  53. data/lib/lookbook/support/store.rb +77 -0
  54. data/lib/lookbook/support/utils/attribute_utils.rb +9 -0
  55. data/lib/lookbook/support/utils/path_utils.rb +19 -0
  56. data/lib/lookbook/tags.rb +5 -14
  57. data/lib/lookbook/version.rb +1 -1
  58. data/lib/lookbook.rb +43 -12
  59. data/public/lookbook-assets/css/lookbook.css +33 -0
  60. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  61. data/public/lookbook-assets/js/lookbook.js +137 -4
  62. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  63. metadata +29 -6
  64. data/lib/lookbook/config.rb +0 -278
  65. data/lib/lookbook/hooks.rb +0 -21
  66. data/lib/lookbook/panels.rb +0 -25
  67. 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.0"
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"}