lookbook 1.0.0.beta.0 → 1.0.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +231 -9
  3. data/app/assets/lookbook/js/stores/inspector.js +4 -4
  4. data/app/components/lookbook/{component.rb → base_component.rb} +1 -1
  5. data/app/components/lookbook/button/component.rb +1 -1
  6. data/app/components/lookbook/button_group/component.rb +1 -1
  7. data/app/components/lookbook/code/component.rb +1 -1
  8. data/app/components/lookbook/copy_button/component.html.erb +1 -1
  9. data/app/components/lookbook/copy_button/component.rb +1 -1
  10. data/app/components/lookbook/dimensions_display/component.html.erb +2 -1
  11. data/app/components/lookbook/dimensions_display/component.js +19 -12
  12. data/app/components/lookbook/dimensions_display/component.rb +1 -1
  13. data/app/components/lookbook/embed/component.html.erb +6 -5
  14. data/app/components/lookbook/embed/component.rb +1 -1
  15. data/app/components/lookbook/filter/component.html.erb +1 -1
  16. data/app/components/lookbook/filter/component.rb +1 -1
  17. data/app/components/lookbook/header/component.html.erb +7 -12
  18. data/app/components/lookbook/header/component.rb +1 -1
  19. data/app/components/lookbook/icon/component.rb +1 -1
  20. data/app/components/lookbook/nav/component.rb +1 -1
  21. data/app/components/lookbook/nav/item/component.html.erb +2 -2
  22. data/app/components/lookbook/nav/item/component.rb +1 -1
  23. data/app/components/lookbook/page_tabs/component.html.erb +18 -0
  24. data/app/components/lookbook/page_tabs/component.rb +19 -0
  25. data/app/components/lookbook/params_editor/component.rb +1 -1
  26. data/app/components/lookbook/params_editor/field/component.rb +1 -1
  27. data/app/components/lookbook/prose/component.rb +1 -1
  28. data/app/components/lookbook/split_layout/component.rb +1 -1
  29. data/app/components/lookbook/tab_panels/component.html.erb +5 -0
  30. data/app/components/lookbook/tab_panels/component.js +25 -0
  31. data/app/components/lookbook/tab_panels/component.rb +20 -0
  32. data/app/components/lookbook/{tabbed_content/section → tab_panels/panel}/component.html.erb +2 -2
  33. data/app/components/lookbook/tab_panels/panel/component.rb +9 -0
  34. data/app/components/lookbook/tabs/component.html.erb +8 -2
  35. data/app/components/lookbook/tabs/component.js +14 -6
  36. data/app/components/lookbook/tabs/component.rb +9 -11
  37. data/app/components/lookbook/tabs/dropdown_tab/component.html.erb +8 -2
  38. data/app/components/lookbook/tabs/dropdown_tab/component.rb +5 -4
  39. data/app/components/lookbook/tabs/tab/component.html.erb +9 -3
  40. data/app/components/lookbook/tabs/tab/component.rb +5 -4
  41. data/app/components/lookbook/toolbar/component.css +1 -1
  42. data/app/components/lookbook/toolbar/component.rb +1 -1
  43. data/app/components/lookbook/viewport/component.rb +1 -1
  44. data/app/controllers/lookbook/application_controller.rb +2 -2
  45. data/app/controllers/lookbook/pages_controller.rb +2 -1
  46. data/app/controllers/lookbook/previews_controller.rb +90 -91
  47. data/app/helpers/lookbook/application_helper.rb +8 -2
  48. data/app/helpers/lookbook/component_helper.rb +4 -0
  49. data/app/helpers/lookbook/page_helper.rb +2 -2
  50. data/app/views/layouts/lookbook/application.html.erb +1 -1
  51. data/app/views/layouts/lookbook/page.html.erb +2 -2
  52. data/app/views/layouts/lookbook/shell.html.erb +1 -1
  53. data/app/views/layouts/lookbook/skeleton.html.erb +7 -1
  54. data/app/views/lookbook/404.html.erb +1 -1
  55. data/app/views/lookbook/index.html.erb +1 -1
  56. data/app/views/lookbook/pages/show.html.erb +15 -5
  57. data/app/views/lookbook/preview.html.erb +3 -3
  58. data/app/views/lookbook/previews/panels/_content.html.erb +13 -0
  59. data/app/views/lookbook/previews/panels/_notes.html.erb +5 -5
  60. data/app/views/lookbook/previews/panels/_output.html.erb +3 -3
  61. data/app/views/lookbook/previews/panels/_params.html.erb +2 -2
  62. data/app/views/lookbook/previews/panels/_preview.html.erb +2 -2
  63. data/app/views/lookbook/previews/panels/_source.html.erb +6 -6
  64. data/app/views/lookbook/previews/show.html.erb +39 -36
  65. data/config/routes.rb +6 -6
  66. data/lib/lookbook/collection.rb +1 -1
  67. data/lib/lookbook/component.rb +31 -0
  68. data/lib/lookbook/config.rb +133 -33
  69. data/lib/lookbook/engine.rb +72 -12
  70. data/lib/lookbook/page.rb +34 -11
  71. data/lib/lookbook/page_section.rb +31 -0
  72. data/lib/lookbook/parser.rb +1 -4
  73. data/lib/lookbook/preview.rb +25 -8
  74. data/lib/lookbook/preview_example.rb +2 -2
  75. data/lib/lookbook/preview_group.rb +1 -1
  76. data/lib/lookbook/source_inspector.rb +10 -0
  77. data/lib/lookbook/store.rb +36 -0
  78. data/lib/lookbook/theme.rb +7 -0
  79. data/lib/lookbook/utils.rb +3 -3
  80. data/lib/lookbook/version.rb +1 -1
  81. data/lib/lookbook.rb +3 -12
  82. data/public/lookbook-assets/css/lookbook.css +34 -5
  83. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  84. data/public/lookbook-assets/js/lookbook.js +84 -71
  85. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  86. metadata +14 -8
  87. data/app/components/lookbook/tabbed_content/component.html.erb +0 -5
  88. data/app/components/lookbook/tabbed_content/component.js +0 -21
  89. data/app/components/lookbook/tabbed_content/component.rb +0 -20
  90. data/app/components/lookbook/tabbed_content/section/component.rb +0 -9
@@ -8,16 +8,20 @@ module Lookbook
8
8
  autoload :Config, "lookbook/config"
9
9
 
10
10
  class << self
11
+ def version
12
+ Lookbook::VERSION
13
+ end
14
+
11
15
  def config
12
16
  @config ||= Config.new
13
17
  end
14
18
 
15
- def logger
16
- @logger ||= Rails.env.development? ? Logger.new($stdout) : Rails.logger
19
+ def configure
20
+ yield(config)
17
21
  end
18
22
 
19
- def version
20
- Lookbook::VERSION
23
+ def logger
24
+ @logger ||= Rails.env.development? ? Logger.new($stdout) : Rails.logger
21
25
  end
22
26
 
23
27
  def debug_data
@@ -28,8 +32,46 @@ module Lookbook
28
32
  }
29
33
  end
30
34
 
31
- def configure
32
- yield(config)
35
+ def previews
36
+ Preview.all
37
+ end
38
+
39
+ def pages
40
+ Page.all
41
+ end
42
+
43
+ def after_initialize(&block)
44
+ add_hook(:after_initialize, block)
45
+ end
46
+
47
+ def before_exit(&block)
48
+ add_hook(:before_exit, block)
49
+ end
50
+
51
+ def after_change(&block)
52
+ add_hook(:after_change, block)
53
+ end
54
+
55
+ def define_panel(name, opts = {})
56
+ config.define_inspector_panel(name, opts)
57
+ end
58
+
59
+ def amend_panel(name, opts = {})
60
+ config.amend_inspector_panel(name, opts)
61
+ end
62
+
63
+ def remove_panel(name)
64
+ config.remove_inspector_panel(name)
65
+ end
66
+
67
+ def broadcast(event_name, data = {})
68
+ Engine.websocket&.broadcast(event_name.to_s, data)
69
+ end
70
+
71
+ protected
72
+
73
+ def add_hook(event_name, block)
74
+ config.hooks[event_name] << block
33
75
  end
34
76
  end
35
77
 
@@ -43,8 +85,10 @@ module Lookbook
43
85
  config.lookbook.preview_paths += config.view_component.preview_paths
44
86
  config.lookbook.preview_controller ||= config.view_component.preview_controller
45
87
 
88
+ config.lookbook.components_path = config.view_component.view_component_path if config.view_component.view_component_path.present?
89
+
46
90
  config.lookbook.listen_paths += config.lookbook.preview_paths
47
- config.lookbook.listen_paths << (config.view_component.view_component_path.presence || "app/components")
91
+ config.lookbook.listen_paths << config.lookbook.components_path
48
92
  end
49
93
 
50
94
  initializer "lookbook.logging.development" do
@@ -73,12 +117,14 @@ module Lookbook
73
117
  only: /\.(rb|html.*)$/,
74
118
  force_polling: Lookbook.config.listen_use_polling
75
119
  ) do |modified, added, removed|
120
+ changes = { modified: modified, added: added, removed: removed }
76
121
  begin
77
122
  parser.parse
78
123
  rescue
79
124
  end
80
125
  Lookbook::Preview.clear_cache
81
- Lookbook::Engine.websocket&.broadcast("reload", {})
126
+ Lookbook::Engine.reload_ui(changes)
127
+ Lookbook::Engine.run_hooks(:after_change, changes)
82
128
  end
83
129
  Lookbook::Engine.register_listener(preview_listener)
84
130
 
@@ -87,7 +133,9 @@ module Lookbook
87
133
  only: /\.(html.*|md.*)$/,
88
134
  force_polling: Lookbook.config.listen_use_polling
89
135
  ) do |modified, added, removed|
90
- Lookbook::Engine.websocket&.broadcast("reload", {})
136
+ changes = { modified: modified, added: added, removed: removed }
137
+ Lookbook::Engine.reload_ui(changes)
138
+ Lookbook::Engine.run_hooks(:after_change, changes)
91
139
  end
92
140
  Lookbook::Engine.register_listener(page_listener)
93
141
  end
@@ -103,18 +151,20 @@ module Lookbook
103
151
  "
104
152
  end
105
153
  end
154
+
155
+ Lookbook::Engine.run_hooks(:after_initialize)
106
156
  end
107
157
 
108
158
  at_exit do
109
159
  if config.lookbook.listen
110
160
  Lookbook.logger.debug "Stopping listeners"
111
- Lookbook::Engine.listeners.each do |listener|
112
- listener.stop
113
- end
161
+ Lookbook::Engine.listeners.each { |listener| listener.stop }
114
162
  end
163
+ Lookbook::Engine.run_hooks(:before_exit)
115
164
  end
116
165
 
117
166
  class << self
167
+
118
168
  def websocket
119
169
  if config.lookbook.auto_refresh
120
170
  cable = ActionCable::Server::Configuration.new
@@ -162,6 +212,16 @@ module Lookbook
162
212
  @listeners ||= []
163
213
  end
164
214
 
215
+ def run_hooks(event_name, *args)
216
+ Lookbook.config.hooks[event_name].each do |hook|
217
+ hook.call(Lookbook, *args)
218
+ end
219
+ end
220
+
221
+ def reload_ui(changed = {})
222
+ websocket&.broadcast("reload", changed)
223
+ end
224
+
165
225
  attr_reader :preview_controller
166
226
  end
167
227
  end
data/lib/lookbook/page.rb CHANGED
@@ -15,19 +15,22 @@ module Lookbook
15
15
  ]
16
16
 
17
17
  attr_reader :errors
18
+ attr_accessor :sections
18
19
 
19
20
  def initialize(path, base_path)
20
21
  @pathname = Pathname.new path
21
- @base_path = base_path
22
+ @base_path = Pathname.new base_path
22
23
  @options = nil
23
24
  @errors = []
25
+ @sections = []
26
+ @page_name = remove_position_prefix(path_name)
24
27
  rel_path = @pathname.relative_path_from(@base_path)
25
- page_path = (rel_path.dirname.to_s == "." ? name : "#{rel_path.dirname}/#{name}")
28
+ page_path = rel_path.dirname.to_s == "." ? @page_name : "#{rel_path.dirname}/#{@page_name}"
26
29
  super(page_path)
27
30
  end
28
31
 
29
32
  def url_path
30
- page_path lookup_path
33
+ lookbook_page_path lookup_path
31
34
  end
32
35
 
33
36
  def full_path
@@ -35,7 +38,7 @@ module Lookbook
35
38
  end
36
39
 
37
40
  def name
38
- remove_position_prefix(path_name)
41
+ @page_name
39
42
  end
40
43
 
41
44
  def hidden?
@@ -73,7 +76,7 @@ module Lookbook
73
76
  def type
74
77
  :page
75
78
  end
76
-
79
+
77
80
  def id
78
81
  options[:id]
79
82
  end
@@ -152,17 +155,37 @@ module Lookbook
152
155
  end
153
156
 
154
157
  def all
155
- pages = Array(page_paths).map do |dir|
156
- Dir["#{dir}/**/*.html.*", "#{dir}/**/*.md.*"].sort.map do |page|
157
- Lookbook::Page.new(page, dir)
158
- end
158
+ pages, sections =
159
+ Array(page_paths).flat_map do |dir|
160
+ Dir["#{dir}/**/*.html.*", "#{dir}/**/*.md.*"].sort.map do |path|
161
+ create(path, dir)
162
+ end
163
+ end.partition { |page| page.type == :page }
164
+
165
+ sorted_pages = pages
166
+ .uniq { |page| page.path }
167
+ .sort_by { |page| [page.position, page.label] }
168
+
169
+ page_dict = sorted_pages.index_by(&:path)
170
+ sorted_sections = sections.sort_by { |section| [section.position, section.label] }
171
+
172
+ sorted_sections.each do |section|
173
+ page_dict[section.path].sections << section
159
174
  end
160
- sorted_pages = pages.flatten.uniq { |p| p.path }.sort_by { |page| [page.position, page.label] }
175
+
161
176
  PageCollection.new(sorted_pages)
162
177
  end
163
178
 
164
179
  def page_paths
165
- Lookbook.config.page_paths.filter { |dir| Dir.exist? dir }
180
+ Lookbook.config.page_paths.select { |dir| Dir.exist? dir }
181
+ end
182
+
183
+ def section_path?(path)
184
+ !!path.match(%r{\[(.*?\w+)\]})
185
+ end
186
+
187
+ def create(path, base_path)
188
+ (section_path?(path) ? PageSection : Page).new(path, base_path)
166
189
  end
167
190
  end
168
191
  end
@@ -0,0 +1,31 @@
1
+ module Lookbook
2
+ class PageSection < Page
3
+
4
+ def name
5
+ return @name if @name.present?
6
+ matches = full_path.to_s.match(%r{\[(?<name>\w+)\]})
7
+ @name ||= matches[:name]
8
+ end
9
+
10
+ def id
11
+ "#{super}-#{name}"
12
+ end
13
+
14
+ def url_path
15
+ nil
16
+ end
17
+
18
+ def path
19
+ super.gsub("[#{name}]", "")
20
+ end
21
+
22
+ def type
23
+ :page_section
24
+ end
25
+
26
+ def lookup_path
27
+ "#{super}/#{name}"
28
+ end
29
+
30
+ end
31
+ end
@@ -23,10 +23,6 @@ module Lookbook
23
23
  registry.get(path)
24
24
  end
25
25
 
26
- # def yardoc_file_path
27
- # Rails&.root ? Rails.root.join(YARDOC_FILE_PATH) : YARDOC_FILE_PATH
28
- # end
29
-
30
26
  class << self
31
27
  def define_tags
32
28
  YARD::Tags::Library.define_tag("Hidden status", :hidden)
@@ -34,6 +30,7 @@ module Lookbook
34
30
  YARD::Tags::Library.define_tag("Display", :display)
35
31
  YARD::Tags::Library.define_tag("Position", :position)
36
32
  YARD::Tags::Library.define_tag("ID", :id)
33
+ YARD::Tags::Library.define_tag("Component", :component)
37
34
  end
38
35
  end
39
36
  end
@@ -8,7 +8,7 @@ module Lookbook
8
8
  def initialize(preview)
9
9
  @preview = preview
10
10
  @preview_inspector = SourceInspector.new(@preview.name)
11
- super(preview_class_name(preview_class_basename(@preview.name)))
11
+ super(preview_class_path(@preview.name))
12
12
  end
13
13
 
14
14
  def id
@@ -34,7 +34,7 @@ module Lookbook
34
34
  def examples
35
35
  return @examples if @examples.present?
36
36
  public_methods = @preview.public_instance_methods(false)
37
- public_method_objects = @preview_inspector&.methods&.filter { |m| public_methods.include?(m.name) }
37
+ public_method_objects = @preview_inspector&.methods&.select { |m| public_methods.include?(m.name) }
38
38
  examples = (public_method_objects || []).map { |m| PreviewExample.new(m.name.to_s, self) }
39
39
  sorted = Lookbook.config.sort_examples ? examples.sort_by(&:label) : examples
40
40
  @examples = []
@@ -62,18 +62,14 @@ module Lookbook
62
62
  end
63
63
 
64
64
  def full_path
65
- base_path = Array(preview_paths).detect do |preview_path|
65
+ base_path = Array(Lookbook.config.preview_paths).detect do |preview_path|
66
66
  Dir["#{preview_path}/#{name.underscore}.rb"].first
67
67
  end
68
68
  Pathname.new(Dir["#{base_path}/#{name.underscore}.rb"].first)
69
69
  end
70
70
 
71
71
  def url_path
72
- inspect_path lookup_path
73
- end
74
-
75
- def preview_paths
76
- ViewComponent::Base.preview_paths
72
+ lookbook_inspect_path lookup_path
77
73
  end
78
74
 
79
75
  def parent_collections_names
@@ -96,6 +92,27 @@ module Lookbook
96
92
  true
97
93
  end
98
94
 
95
+ def component
96
+ components.first
97
+ end
98
+
99
+ def components
100
+ component_classes = @preview_inspector&.components.any? ? @preview_inspector&.components : [guess_component]
101
+ component_classes.map do |class_name|
102
+ Component.new(class_name.to_s)
103
+ end
104
+ end
105
+
106
+ protected
107
+
108
+ def guess_component
109
+ begin
110
+ name.chomp("Preview").constantize
111
+ rescue
112
+ nil
113
+ end
114
+ end
115
+
99
116
  class << self
100
117
  def find(path)
101
118
  all.find { |p| p.lookup_path == path }
@@ -15,7 +15,7 @@ module Lookbook
15
15
  end
16
16
 
17
17
  def url_path
18
- inspect_path lookup_path
18
+ lookbook_inspect_path lookup_path
19
19
  end
20
20
 
21
21
  def label
@@ -30,7 +30,7 @@ module Lookbook
30
30
  @example_inspector.source.split("\n")[1..-2].join("\n").strip_heredoc
31
31
  end
32
32
 
33
- def source_lang
33
+ def lang
34
34
  Lookbook::Lang.find(:ruby)
35
35
  end
36
36
 
@@ -10,7 +10,7 @@ module Lookbook
10
10
  end
11
11
 
12
12
  def url_path
13
- inspect_path lookup_path
13
+ lookbook_inspect_path lookup_path
14
14
  end
15
15
 
16
16
  def label
@@ -39,6 +39,16 @@ module Lookbook
39
39
  code_object&.tag(:position)&.text&.to_i || 10000
40
40
  end
41
41
 
42
+ def components
43
+ if code_object&.tags(:component).present?
44
+ code_object.tags(:component).map do |component|
45
+ component.text.constantize
46
+ end
47
+ else
48
+ []
49
+ end
50
+ end
51
+
42
52
  def display_params
43
53
  display_params = {}.with_indifferent_access
44
54
  if code_object&.tags(:display).present?
@@ -0,0 +1,36 @@
1
+ module Lookbook
2
+ class Store < ActiveSupport::OrderedOptions
3
+ def initialize(data = {}, deep = true)
4
+ super()
5
+ @deep = deep
6
+ set(data) if data.present?
7
+ end
8
+
9
+ def [](key)
10
+ super(normalize_key(key))
11
+ end
12
+
13
+ def []=(key, value)
14
+ super(normalize_key(key), normalize_value(value))
15
+ end
16
+
17
+ def set(data)
18
+ data.keys.each do |key|
19
+ self[normalize_key(key)] = normalize_value(data[key])
20
+ end
21
+ self
22
+ end
23
+
24
+ def method_missing(name, *args)
25
+ super(normalize_key(name), *args.map { |arg| normalize_value(arg) })
26
+ end
27
+
28
+ def normalize_key(key)
29
+ key.to_s.downcase.gsub("-", "_").to_sym
30
+ end
31
+
32
+ def normalize_value(value)
33
+ @deep && value.is_a?(Hash) ? Store.new(value) : value
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,8 @@
1
1
  module Lookbook
2
2
  class Theme
3
+
4
+ BASE_THEMES = [:indigo, :zinc, :blue]
5
+
3
6
  def initialize(config = {})
4
7
  @config = config
5
8
  @css = nil
@@ -18,5 +21,9 @@ module Lookbook
18
21
  ""
19
22
  end
20
23
  end
24
+
25
+ def self.valid_theme?(name)
26
+ BASE_THEMES.include? name.to_sym
27
+ end
21
28
  end
22
29
  end
@@ -8,7 +8,7 @@ module Lookbook
8
8
  protected
9
9
 
10
10
  def generate_id(*args)
11
- parts = args.map { |arg| arg.to_s.parameterize.underscore }
11
+ parts = args.map { |arg| arg.to_s.force_encoding("UTF-8").parameterize.underscore }
12
12
  parts.join("-").tr("/_", "-").delete_prefix("-").delete_suffix("-").gsub("--", "-")
13
13
  end
14
14
 
@@ -16,7 +16,7 @@ module Lookbook
16
16
  class_name(klass).to_s.chomp("ComponentPreview").chomp("Component::Preview").chomp("::Preview").chomp("Component").chomp("Preview").chomp("::")
17
17
  end
18
18
 
19
- def preview_class_name(klass)
19
+ def preview_class_path(klass)
20
20
  preview_class_basename(klass).underscore
21
21
  end
22
22
 
@@ -49,7 +49,7 @@ module Lookbook
49
49
  end
50
50
 
51
51
  def to_preview_path(*args)
52
- args.flatten.map { |arg| preview_class_name(arg) }.join("/")
52
+ args.flatten.map { |arg| preview_class_path(arg) }.join("/")
53
53
  end
54
54
 
55
55
  protected
@@ -1,3 +1,3 @@
1
1
  module Lookbook
2
- VERSION = "1.0.0.beta.0"
2
+ VERSION = "1.0.0.beta.3"
3
3
  end
data/lib/lookbook.rb CHANGED
@@ -11,6 +11,7 @@ module Lookbook
11
11
  autoload :Lang, "lookbook/lang"
12
12
  autoload :Params, "lookbook/params"
13
13
  autoload :Page, "lookbook/page"
14
+ autoload :PageSection, "lookbook/page_section"
14
15
  autoload :PageCollection, "lookbook/page_collection"
15
16
  autoload :Features, "lookbook/features"
16
17
  autoload :Collection, "lookbook/collection"
@@ -25,16 +26,6 @@ module Lookbook
25
26
  autoload :CodeFormatter, "lookbook/code_formatter"
26
27
  autoload :Markdown, "lookbook/markdown"
27
28
  autoload :Theme, "lookbook/theme"
28
-
29
- class << self
30
- include Utils
31
-
32
- def previews
33
- Preview.all
34
- end
35
-
36
- def pages
37
- Page.all
38
- end
39
- end
29
+ autoload :Store, "lookbook/store"
30
+ autoload :Component, "lookbook/component"
40
31
  end
@@ -1557,6 +1557,8 @@ pre[class*="language-"] {
1557
1557
 
1558
1558
  [data-component="toolbar"] [data-component="tabs"] {
1559
1559
  margin-bottom: -1px;
1560
+ padding-left: 1rem;
1561
+ padding-right: 1rem;
1560
1562
  position: relative;
1561
1563
  }
1562
1564
 
@@ -1700,6 +1702,10 @@ pre[class*="language-"] {
1700
1702
  left: -1rem;
1701
1703
  }
1702
1704
 
1705
+ .-bottom-px {
1706
+ bottom: -1px;
1707
+ }
1708
+
1703
1709
  .z-50 {
1704
1710
  z-index: 50;
1705
1711
  }
@@ -1790,10 +1796,18 @@ pre[class*="language-"] {
1790
1796
  margin-top: .25rem;
1791
1797
  }
1792
1798
 
1799
+ .mb-6 {
1800
+ margin-bottom: 1.5rem;
1801
+ }
1802
+
1793
1803
  .-ml-3 {
1794
1804
  margin-left: -.75rem;
1795
1805
  }
1796
1806
 
1807
+ .-mb-px {
1808
+ margin-bottom: -1px;
1809
+ }
1810
+
1797
1811
  .mr-auto {
1798
1812
  margin-right: auto;
1799
1813
  }
@@ -1830,6 +1844,10 @@ pre[class*="language-"] {
1830
1844
  display: grid;
1831
1845
  }
1832
1846
 
1847
+ .contents {
1848
+ display: contents;
1849
+ }
1850
+
1833
1851
  .\!hidden {
1834
1852
  display: none !important;
1835
1853
  }
@@ -2145,6 +2163,12 @@ pre[class*="language-"] {
2145
2163
  margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse) ) );
2146
2164
  }
2147
2165
 
2166
+ .space-x-3 > :not([hidden]) ~ :not([hidden]) {
2167
+ --tw-space-x-reverse: 0;
2168
+ margin-right: calc(.75rem * var(--tw-space-x-reverse) );
2169
+ margin-left: calc(.75rem * calc(1 - var(--tw-space-x-reverse) ) );
2170
+ }
2171
+
2148
2172
  .divide-y > :not([hidden]) ~ :not([hidden]) {
2149
2173
  --tw-divide-y-reverse: 0;
2150
2174
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse) ) );
@@ -2432,11 +2456,6 @@ pre[class*="language-"] {
2432
2456
  padding-right: .75rem;
2433
2457
  }
2434
2458
 
2435
- .py-4 {
2436
- padding-top: 1rem;
2437
- padding-bottom: 1rem;
2438
- }
2439
-
2440
2459
  .py-1 {
2441
2460
  padding-top: .25rem;
2442
2461
  padding-bottom: .25rem;
@@ -2447,6 +2466,11 @@ pre[class*="language-"] {
2447
2466
  padding-right: .25rem;
2448
2467
  }
2449
2468
 
2469
+ .px-2 {
2470
+ padding-left: .5rem;
2471
+ padding-right: .5rem;
2472
+ }
2473
+
2450
2474
  .pb-10 {
2451
2475
  padding-bottom: 2.5rem;
2452
2476
  }
@@ -2543,6 +2567,11 @@ pre[class*="language-"] {
2543
2567
  line-height: 1rem;
2544
2568
  }
2545
2569
 
2570
+ .text-lg {
2571
+ font-size: 1.125rem;
2572
+ line-height: 1.75rem;
2573
+ }
2574
+
2546
2575
  .font-bold {
2547
2576
  font-weight: 700;
2548
2577
  }
@@ -1 +1 @@
1
- {"mappings":"AAKE;;;;;AAOD;;;;AAQC;;;;;;;AASA;;;;;AAOA;;;;;;AAMA;;;;AAIA;;;;;AAUA;;;;;AAKA;;;;AAMA;;;;;AAQA;;;;AAIA;;;;;;;AAMD;;;;AAEA;;;;AAMC;;;;;;AAQA;;;;;;;;;AAaA;;;;AAMA;;;;;;AASA;;;;AAIA;;;;AAIA;;;;AAIA;;;;AAMA;;;;;AAKA;;;;AAKA;;;;;AAKA;;;;AAIA;;;;AAcD;;;;;AAGA;;;;AAEA;;;;;;AAQC;;;;AAKA;;;;;AAMA;;;;AAKA;;;;AAMA;;;;;AAYA;;;;;AAMA;;;;AAED;;;;;;;;;;;;AAaA;;;;;;;;;;;;;AAWA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AAgBA;;;;AAEA;;;;AAEA;;;;;;;;;;;;AAUA;;;;;;;;AAMA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;;;AAQA;;;;AAEA;;;;;AAGA;EACG;;;;;AAGD;;;;;;;;;;AAQF;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA;;;;;AAGA;;;;;;;;AAMA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;AAKA;;;;;;;;;;;;AAUA;;;;AAEA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;AAMA;;;;AAEA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;AAIA;;;;AAEA;;;;;;;;;;;;;AAcA;;;;;;;;;;;;AAUA;;;;AAIA;;;;;;;;;;AAQA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;AAEA;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;;;;AAKA;;;;;;;AAKA;;;;;;;AAKA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;AAUA;;;;AAEA;;;;AAEA;;;;;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;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAKA;;;;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;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;;AAMA;;;;;AAGI;;;;;AAGJ;;;;;AAGE;;;;;;;;;;AAQF;;;;;AAGA;;;;;;;;;;AAOA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;;;;;AAMA;;;;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;;;;;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;;;;AAEA;;;;;AAGA;;;;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;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;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;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;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;;;;AAEF;;;;;AAGA;;;;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 .form-input {\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;\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;;;;;;;;;AAaA;;;;AAMA;;;;;;AASA;;;;AAIA;;;;AAIA;;;;AAIA;;;;AAMA;;;;;AAKA;;;;AAKA;;;;;AAKA;;;;AAIA;;;;AAcD;;;;;AAGA;;;;AAEA;;;;;;AAQC;;;;AAKA;;;;;AAMA;;;;AAKA;;;;AAMA;;;;;AAYA;;;;;AAMA;;;;AAED;;;;;;;;;;;;AAaA;;;;;;;;;;;;;AAWA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AAgBA;;;;AAEA;;;;AAEA;;;;;;;;;;;;AAUA;;;;;;;;AAMA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;;;;;;;AAQA;;;;AAEA;;;;;AAGA;EACG;;;;;AAGD;;;;;;;;;;AAQF;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA;;;;;AAGA;;;;;;;;AAMA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;AAKA;;;;;;;;;;;;AAUA;;;;AAEA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;;AAOA;;;;AAEA;;;;;;;;AAMA;;;;AAEA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;AAIA;;;;AAEA;;;;;;;;;;;;;AAcA;;;;;;;;;;;;AAUA;;;;AAIA;;;;;;;;;;AAQA;;;;;AAGA;;;;;;;;;AAOA;;;;;AAGA;;;;AAEA;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;;;AAKA;;;;;;AAIA;;;;;;;AAKA;;;;;;;AAKA;;;;;;;AAKA;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;;;AAUA;;;;AAEA;;;;AAEA;;;;;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;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;;AAIA;;;;AAEA;;;;AAEA;;;;AAKA;;;;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;;;;;;AAIA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;;;;AAMA;;;;;AAGI;;;;;;;AAKJ;;;;;AAGE;;;;;;;;;;AAQF;;;;;AAGA;;;;;;;;;;AAOA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;;;;;AAMA;;;;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;;;;;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;;;;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;;;;AAEA;;;;;AAGA;;;;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;;;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;;AAGA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;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;;;;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;;;;;AAGA;;;;AAEA;;;;AAEA;;;;;AAGA;;;;AAEA;;;;;AAGA;;;;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;;;;AAEF;;;;;AAGA;;;;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 .form-input {\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;\n }\n}\n"],"names":[],"version":3,"file":"lookbook.css.map"}