lookbook 1.2.1 → 1.4.5

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 (182) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +47 -14
  4. data/app/assets/lookbook/css/themes/blue.css +4 -2
  5. data/app/assets/lookbook/css/themes/green.css +66 -0
  6. data/app/assets/lookbook/css/themes/indigo.css +4 -2
  7. data/app/assets/lookbook/css/themes/rose.css +66 -0
  8. data/app/assets/lookbook/css/themes/zinc.css +4 -2
  9. data/app/components/lookbook/base_component.rb +2 -2
  10. data/app/components/lookbook/code/component.css +2 -2
  11. data/app/components/lookbook/code/component.html.erb +3 -2
  12. data/app/components/lookbook/code/component.rb +13 -2
  13. data/app/components/lookbook/code/highlight_github.css +406 -0
  14. data/app/components/lookbook/header/component.html.erb +1 -1
  15. data/app/components/lookbook/inspector_panel/component.rb +4 -6
  16. data/app/components/lookbook/nav/component.rb +8 -15
  17. data/app/components/lookbook/nav/directory/component.html.erb +28 -0
  18. data/app/components/lookbook/nav/directory/component.rb +4 -0
  19. data/app/components/lookbook/nav/{item → entity}/component.html.erb +8 -8
  20. data/app/components/lookbook/nav/entity/component.rb +49 -0
  21. data/app/components/lookbook/nav/item/component.css +15 -0
  22. data/app/components/lookbook/nav/item/component.js +4 -0
  23. data/app/components/lookbook/nav/item/component.rb +13 -56
  24. data/app/components/lookbook/params/editor/component.html.erb +2 -2
  25. data/app/components/lookbook/params/editor/component.rb +3 -10
  26. data/app/components/lookbook/params/field/component.css +3 -3
  27. data/app/components/lookbook/params/field/component.html.erb +8 -8
  28. data/app/components/lookbook/params/field/component.rb +21 -72
  29. data/app/components/lookbook/split_layout/component.html.erb +1 -1
  30. data/app/components/lookbook/tabs/component.html.erb +1 -1
  31. data/app/components/lookbook/tabs/component.js +4 -0
  32. data/app/components/lookbook/tag_component.rb +1 -1
  33. data/app/components/lookbook/viewport/component.css +1 -1
  34. data/app/components/lookbook/viewport/component.html.erb +1 -1
  35. data/app/components/lookbook/viewport/component.rb +1 -1
  36. data/app/controllers/concerns/lookbook/targetable_concern.rb +131 -0
  37. data/app/controllers/concerns/lookbook/with_preview_controller_concern.rb +13 -0
  38. data/app/controllers/lookbook/application_controller.rb +21 -9
  39. data/app/controllers/lookbook/inspector_controller.rb +45 -0
  40. data/app/controllers/lookbook/page_controller.rb +13 -9
  41. data/app/controllers/lookbook/pages_controller.rb +9 -15
  42. data/app/controllers/lookbook/previews_controller.rb +4 -210
  43. data/app/helpers/lookbook/application_helper.rb +2 -2
  44. data/app/helpers/lookbook/output_helper.rb +5 -5
  45. data/app/helpers/lookbook/page_helper.rb +7 -4
  46. data/app/views/layouts/lookbook/application.html.erb +40 -38
  47. data/app/views/layouts/lookbook/page.html.erb +2 -2
  48. data/app/views/layouts/lookbook/shell.html.erb +3 -2
  49. data/app/views/layouts/lookbook/skeleton.html.erb +7 -7
  50. data/app/views/lookbook/index.html.erb +13 -2
  51. data/app/views/lookbook/{previews → inspector}/inputs/_color.html.erb +0 -0
  52. data/app/views/lookbook/{previews → inspector}/inputs/_range.html.erb +0 -0
  53. data/app/views/lookbook/{previews → inspector}/inputs/_select.html.erb +0 -0
  54. data/app/views/lookbook/{previews → inspector}/inputs/_text.html.erb +0 -0
  55. data/app/views/lookbook/{previews → inspector}/inputs/_textarea.html.erb +0 -0
  56. data/app/views/lookbook/{previews → inspector}/inputs/_toggle.html.erb +5 -5
  57. data/app/views/lookbook/{previews → inspector}/panels/_content.html.erb +0 -0
  58. data/app/views/lookbook/{previews → inspector}/panels/_notes.html.erb +2 -2
  59. data/app/views/lookbook/{previews → inspector}/panels/_output.html.erb +0 -0
  60. data/app/views/lookbook/inspector/panels/_params.html.erb +15 -0
  61. data/app/views/lookbook/{previews → inspector}/panels/_preview.html.erb +0 -0
  62. data/app/views/lookbook/{previews → inspector}/panels/_source.html.erb +0 -0
  63. data/app/views/lookbook/{previews → inspector}/show.html.erb +5 -2
  64. data/config/app.yml +11 -1
  65. data/config/inputs.yml +12 -12
  66. data/config/languages.yml +41 -0
  67. data/config/panels.yml +6 -6
  68. data/config/routes.rb +5 -5
  69. data/config/tags.yml +8 -1
  70. data/lib/lookbook/engine.rb +103 -130
  71. data/lib/lookbook/entities/collections/component_collection.rb +4 -0
  72. data/lib/lookbook/entities/collections/concerns/hierarchical_collection.rb +23 -0
  73. data/lib/lookbook/entities/collections/entity_collection.rb +61 -0
  74. data/lib/lookbook/entities/collections/page_collection.rb +30 -0
  75. data/lib/lookbook/entities/collections/preview_collection.rb +41 -0
  76. data/lib/lookbook/entities/collections/preview_example_collection.rb +4 -0
  77. data/lib/lookbook/entities/component.rb +31 -0
  78. data/lib/lookbook/entities/concerns/annotatable.rb +58 -0
  79. data/lib/lookbook/entities/concerns/inspectable.rb +44 -0
  80. data/lib/lookbook/entities/concerns/locatable.rb +73 -0
  81. data/lib/lookbook/entities/concerns/navigable.rb +43 -0
  82. data/lib/lookbook/entities/entity.rb +53 -0
  83. data/lib/lookbook/entities/page.rb +80 -0
  84. data/lib/lookbook/entities/page_section.rb +43 -0
  85. data/lib/lookbook/entities/preview.rb +87 -0
  86. data/lib/lookbook/entities/preview_example.rb +100 -0
  87. data/lib/lookbook/entities/preview_group.rb +48 -0
  88. data/lib/lookbook/file_watcher.rb +47 -0
  89. data/lib/lookbook/lang.rb +12 -35
  90. data/lib/lookbook/param.rb +99 -0
  91. data/lib/lookbook/{preview_controller.rb → preview_actions.rb} +14 -3
  92. data/lib/lookbook/preview_parser.rb +53 -0
  93. data/lib/lookbook/process.rb +21 -0
  94. data/lib/lookbook/rendered_example.rb +37 -0
  95. data/lib/lookbook/services/code/code_beautifier.rb +21 -0
  96. data/lib/lookbook/services/code/code_highlighter.rb +69 -0
  97. data/lib/lookbook/services/code/code_indenter.rb +14 -0
  98. data/lib/lookbook/services/data/parsers/data_parser.rb +22 -0
  99. data/lib/lookbook/services/data/parsers/json_parser.rb +7 -0
  100. data/lib/lookbook/services/data/parsers/yaml_parser.rb +7 -0
  101. data/lib/lookbook/services/data/resolvers/data_resolver.rb +70 -0
  102. data/lib/lookbook/services/data/resolvers/eval_resolver.rb +10 -0
  103. data/lib/lookbook/services/data/resolvers/file_resolver.rb +28 -0
  104. data/lib/lookbook/services/data/resolvers/method_resolver.rb +10 -0
  105. data/lib/lookbook/services/data/resolvers/yaml_resolver.rb +18 -0
  106. data/lib/lookbook/services/entities/entity_tree_builder.rb +45 -0
  107. data/lib/lookbook/services/markdown_renderer.rb +29 -0
  108. data/lib/lookbook/services/position_prefix_parser.rb +16 -0
  109. data/lib/lookbook/services/string_value_caster.rb +60 -0
  110. data/lib/lookbook/services/tags/tag_options_parser.rb +62 -0
  111. data/lib/lookbook/services/templates/action_view_annotations_handler.rb +21 -0
  112. data/lib/lookbook/services/templates/action_view_annotations_stripper.rb +15 -0
  113. data/lib/lookbook/services/templates/frontmatter_extractor.rb +28 -0
  114. data/lib/lookbook/services/templates/styles_extractor.rb +38 -0
  115. data/lib/lookbook/services/{search_param_builder.rb → urls/search_param_builder.rb} +1 -1
  116. data/lib/lookbook/services/{search_param_parser.rb → urls/search_param_parser.rb} +1 -1
  117. data/lib/lookbook/stores/config_store.rb +12 -9
  118. data/lib/lookbook/stores/input_store.rb +7 -3
  119. data/lib/lookbook/stores/panel_store.rb +2 -2
  120. data/lib/lookbook/stores/tag_store.rb +3 -5
  121. data/lib/lookbook/support/null_object.rb +10 -0
  122. data/lib/lookbook/support/service.rb +2 -2
  123. data/lib/lookbook/support/store.rb +2 -35
  124. data/lib/lookbook/support/tree_node.rb +87 -0
  125. data/lib/lookbook/support/utils/path_utils.rb +32 -5
  126. data/lib/lookbook/support/utils/utils.rb +24 -0
  127. data/lib/lookbook/tags/component_tag.rb +13 -0
  128. data/lib/lookbook/tags/custom_tag.rb +61 -0
  129. data/lib/lookbook/tags/display_tag.rb +15 -0
  130. data/lib/lookbook/tags/hidden_tag.rb +13 -0
  131. data/lib/lookbook/tags/id_tag.rb +7 -0
  132. data/lib/lookbook/tags/label_tag.rb +4 -0
  133. data/lib/lookbook/tags/logical_path_tag.rb +7 -0
  134. data/lib/lookbook/tags/param_tag.rb +63 -0
  135. data/lib/lookbook/tags/position_tag.rb +16 -0
  136. data/lib/lookbook/tags/source_tag.rb +7 -0
  137. data/lib/lookbook/tags/tag_provider.rb +18 -0
  138. data/lib/lookbook/tags/yard_tag.rb +90 -0
  139. data/lib/lookbook/theme.rb +8 -0
  140. data/lib/lookbook/version.rb +1 -1
  141. data/lib/lookbook/websocket.rb +60 -0
  142. data/lib/lookbook.rb +13 -8
  143. data/public/lookbook-assets/css/lookbook.css +487 -411
  144. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  145. data/public/lookbook-assets/css/themes/blue.css +3 -1
  146. data/public/lookbook-assets/css/themes/blue.css.map +1 -1
  147. data/public/lookbook-assets/css/themes/green.css +68 -0
  148. data/public/lookbook-assets/css/themes/green.css.map +1 -0
  149. data/public/lookbook-assets/css/themes/indigo.css +3 -1
  150. data/public/lookbook-assets/css/themes/indigo.css.map +1 -1
  151. data/public/lookbook-assets/css/themes/rose.css +68 -0
  152. data/public/lookbook-assets/css/themes/rose.css.map +1 -0
  153. data/public/lookbook-assets/css/themes/zinc.css +3 -1
  154. data/public/lookbook-assets/css/themes/zinc.css.map +1 -1
  155. data/public/lookbook-assets/js/embed.js +10 -1
  156. data/public/lookbook-assets/js/embed.js.map +1 -1
  157. data/public/lookbook-assets/js/lookbook.js +358 -629
  158. data/public/lookbook-assets/js/lookbook.js.map +1 -1
  159. metadata +96 -44
  160. data/app/components/lookbook/code/highlight_github_light.css +0 -217
  161. data/app/views/lookbook/previews/panels/_params.html.erb +0 -15
  162. data/lib/lookbook/code_formatter.rb +0 -68
  163. data/lib/lookbook/collection.rb +0 -161
  164. data/lib/lookbook/component.rb +0 -34
  165. data/lib/lookbook/entity.rb +0 -47
  166. data/lib/lookbook/markdown.rb +0 -22
  167. data/lib/lookbook/page.rb +0 -195
  168. data/lib/lookbook/page_collection.rb +0 -19
  169. data/lib/lookbook/page_section.rb +0 -29
  170. data/lib/lookbook/params.rb +0 -157
  171. data/lib/lookbook/parser.rb +0 -42
  172. data/lib/lookbook/preview.rb +0 -174
  173. data/lib/lookbook/preview_collection.rb +0 -23
  174. data/lib/lookbook/preview_example.rb +0 -93
  175. data/lib/lookbook/preview_group.rb +0 -62
  176. data/lib/lookbook/source_inspector.rb +0 -95
  177. data/lib/lookbook/support/utils/attribute_utils.rb +0 -9
  178. data/lib/lookbook/tag.rb +0 -122
  179. data/lib/lookbook/tag_options.rb +0 -111
  180. data/lib/lookbook/tags.rb +0 -17
  181. data/lib/lookbook/template_parser.rb +0 -72
  182. data/lib/lookbook/utils.rb +0 -105
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 746247239c9d22b8537a0327dfa40e3d4a2b687a9d48e0a4b61819cba7766bec
4
- data.tar.gz: c288e6e752520bb2b4b90b5e1f682cd68c99961939496b5d698abf2604962efc
3
+ metadata.gz: bda485cc3ea6b7d85317d466952627d1f72dd724aba79140cfdc604512a5f4bc
4
+ data.tar.gz: 6be6a4c31c8f31851083d6f822dd9751ffda7fae471a1ed1fce80246526c3bb2
5
5
  SHA512:
6
- metadata.gz: 6b0aae039cf5d29f2d9f93aca8f2fd62996ecbce1ad9cc9ab8c8b19e82343f71a3dc6694406182e5ebd41b0a6ad97c160a7c156e51463cda51f522b186a25a1d
7
- data.tar.gz: cf44c51bfa10e5eabc5dc6c88931d3e1676e5b72599e00304c83aca343d6a080ef31afa0044e39383d1c4b4ccc179260832afb5951d5427858767b09ff749a4a
6
+ metadata.gz: f1b4af27b5664136e08f65cbcfede40f9a4963d909eab70848376f6e236197ff51b4dd09c95dea2ff95ee5617f8d9ebd3906638efc99b3c09ce0d91b55c31097
7
+ data.tar.gz: 71d7191d3de4543b5068a279462182bb87908a5182667b158aa8a78ced51443696537b8a915f94d9405268d36fd49502ba37d1893737820200fb97827030e413
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021 allmarkedup
3
+ Copyright (c) 2021 Mark Perkins
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,30 +1,42 @@
1
- # Lookbook
2
-
3
- <div>
4
- <a href="https://rubygems.org/gems/lookbook"><img src="https://img.shields.io/gem/v/lookbook" alt="Gem version"></a>
5
- <a href="https://github.com/allmarkedup/lookbook/actions/workflows/ci.yml"><img src="https://github.com/allmarkedup/lookbook/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI status"></a>
6
- </div>
7
1
  <br>
2
+ <img src=".github/assets/lookbook_logo.svg" width="180">
8
3
 
9
4
  A tool to help browse, develop, test & document [ViewComponents](https://viewcomponent.org/) in Ruby on Rails apps.
10
5
 
6
+ [![Gem version](https://img.shields.io/gem/v/lookbook)](https://rubygems.org/gems/lookbook)
7
+ [![CI status](https://github.com/ViewComponent/lookbook/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ViewComponent/lookbook/actions/workflows/ci.yml)
8
+ <br>
9
+
11
10
  ## Documentation
12
11
 
13
- **Lookbook (v1.x)** documentation: **[https://lookbook.build](https://lookbook.build)**
12
+ **Lookbook guide and API docs**: [lookbook.build](https://lookbook.build)
14
13
 
15
- > _Looking for v0.9.x docs? [Head over here](https://github.com/allmarkedup/lookbook/tree/0.9.x)._
14
+ > _Looking for pre-v1.0 documentation? [Head over here](https://github.com/ViewComponent/lookbook/tree/0.9.x)._
16
15
 
17
16
 
18
17
  ## Demo
19
18
 
20
- **Online Demo:** [https://lookbook-demo-app.herokuapp.com/lookbook](https://lookbook-demo-app.herokuapp.com/lookbook)
19
+ **Online Demo**: [lookbook-demo-app.herokuapp.com/lookbook](https://lookbook-demo-app.herokuapp.com/lookbook)
20
+
21
+ ✨ **Demo repo**: [github.com/ViewComponent/lookbook-demo](https://github.com/ViewComponent/lookbook-demo)
21
22
 
22
23
  [![Lookbook UI](.github/assets/lookbook_screenshot_v1.0_beta.png)](https://lookbook-demo-app.herokuapp.com/lookbook/)
23
24
 
24
25
 
25
26
  ## Development
26
27
 
27
- Lookbook's UI is itself built using ViewComponents. To preview these components in a Lookbook instance you can run the included `workbench` app:
28
+ Lookbook is implemented as an isolated [Rails Engine](https://guides.rubyonrails.org/engines.html) and uses [ViewComponent](https://viewcomponent.org), [Tailwind](https://tailwindcss.com/) and [Alpine](https://alpinejs.dev/) for it's UI.
29
+
30
+ This repository contains:
31
+
32
+ * The Lookbook source code ([`/app`](https://github.com/ViewComponent/lookbook/tree/main/app), [`/lib`](https://github.com/ViewComponent/lookbook/tree/main/lib), [`/config`](https://github.com/ViewComponent/lookbook/tree/main/config), etc)
33
+ * A '[workbench](#workbench)' app used for Lookbook component development ([`/workbench`](https://github.com/ViewComponent/lookbook/tree/main/workbench)).
34
+ * The Lookbook [documentation site](#docs-site) source code and content ([`/docs`](https://github.com/ViewComponent/lookbook/tree/main/docs)).
35
+ * A [test suite](#testing) with a 'runable' dummy app ([`/spec`](https://github.com/ViewComponent/lookbook/tree/main/spec)).
36
+
37
+ ### Workbench
38
+
39
+ To preview the Lookbook components within a Lookbook instance you can run the included `workbench` app:
28
40
 
29
41
  1. Clone this repo
30
42
  2. Install dependencies: `bundle install & npm install`
@@ -33,21 +45,42 @@ Lookbook's UI is itself built using ViewComponents. To preview these components
33
45
 
34
46
  The `workbench` app will be started in development mode and any changes to Lookbook's views or assets will immediately be reflected in the UI.
35
47
 
36
- ### Docs site
48
+ ### Documentation site
37
49
 
38
50
  The [Lookbook docs site](https://lookbook.build) is built using [Bridgetown](https://www.bridgetownrb.com/) and the source files can be found in the `./docs` directory.
39
51
 
40
- To see a local version of the site run `bin/docs` from the root of this repo and then visit http://localhost:4000 in your browser.
52
+ To preview changes locally you can run a development version of the docs site:
53
+
54
+ 1. Clone this repo
55
+ 2. Install dependencies: `bundle install`
56
+ 3. Start the app: `bin/docs`
57
+ 4. Visit http://localhost:4000
41
58
 
42
59
  ### Testing
43
60
 
44
- Lookbook uses RSpec for testing.
61
+ Lookbook uses [RSpec](https://relishapp.com/rspec) for testing.
45
62
 
46
63
  Tests can be run using the `rake spec` or `bundle exec rspec` commands.
47
64
 
48
65
  The dummy app that the tests are being run against can be viewed by running the `bin/dummy` command and then browsing to http://localhost:9292/lookbook
49
66
 
50
67
 
68
+ ## Contributing
69
+
70
+ Lookbook is an un-funded open source project and contributions of all types and sizes are most welcome!
71
+
72
+ Please take the time to read over the [Contributing](./CONTRIBUTING.md) guide before making your first contribution and if anything isn't clear then [start a discussion](https://github.com/ViewComponent/lookbook/discussions) and we will do our best to help you out.
73
+
74
+ ## Contributors
75
+
76
+ Lookbook was created by [Mark Perkins](https://github.com/allmarkedup) and continues to grow
77
+ &amp; improve thanks to the ideas, suggestions and hard work of all of [these excellent humans](https://github.com/ViewComponent/lookbook/graphs/contributors):
78
+ <br>
79
+ <br>
80
+ <a href="https://github.com/ViewComponent/lookbook/graphs/contributors">
81
+ <img src="https://contrib.rocks/image?repo=ViewComponent/lookbook&columns=14" width="800" />
82
+ </a>
83
+
51
84
  ## License
52
85
 
53
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
86
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -22,6 +22,7 @@
22
22
  --lookbook-base-900: theme("colors.zinc.900");
23
23
  --lookbook-text: var(--lookbook-base-800);
24
24
  --lookbook-divider: var(--lookbook-base-300);
25
+ --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
25
26
  --lookbook-icon-button-stroke: var(--lookbook-base-400);
26
27
  --lookbook-icon-button-stroke-hover: var(--lookbook-accent-600);
27
28
  --lookbook-tooltip-bg: var(--lookbook-accent-500);
@@ -50,15 +51,16 @@
50
51
  --lookbook-tabs-text-disabled: var(--lookbook-base-300);
51
52
  --lookbook-tabs-border-active: var(--lookbook-accent-400);
52
53
  --lookbook-viewport-handle: var(--lookbook-white);
54
+ --lookbook-viewport-handle-hover: var(--lookbook-draggable-hint);
53
55
  --lookbook-viewport-handle-icon-stroke: var(--lookbook-base-300);
54
56
  --lookbook-viewport-handle-icon-stroke-hover: var(--lookbook-base-700);
55
57
  --lookbook-sidebar-bg: var(--lookbook-base-50);
56
58
  --lookbook-page-bg: var(--lookbook-white);
57
59
  --lookbook-drawer-bg: var(--lookbook-base-50);
60
+ --lookbook-params-editor-bg: var(--lookbook-white);
58
61
  --lookbook-header-bg: var(--lookbook-accent-600);
59
62
  --lookbook-header-text: var(--lookbook-white);
60
63
  --lookbook-header-border: var(--lookbook-accent-700);
61
64
  --lookbook-blank-slate-title: var(--lookbook-accent-600);
62
65
  --lookbook-branding-text: var(--lookbook-header-text);
63
- --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
64
- }
66
+ }
@@ -0,0 +1,66 @@
1
+ :root {
2
+ --lookbook-white: theme("colors.white");
3
+ --lookbook-accent-50: theme("colors.green.50");
4
+ --lookbook-accent-100: theme("colors.green.100");
5
+ --lookbook-accent-200: theme("colors.green.200");
6
+ --lookbook-accent-300: theme("colors.green.300");
7
+ --lookbook-accent-400: theme("colors.green.400");
8
+ --lookbook-accent-500: theme("colors.green.500");
9
+ --lookbook-accent-600: theme("colors.green.600");
10
+ --lookbook-accent-700: theme("colors.green.700");
11
+ --lookbook-accent-800: theme("colors.green.800");
12
+ --lookbook-accent-900: theme("colors.green.900");
13
+ --lookbook-base-50: theme("colors.zinc.50");
14
+ --lookbook-base-100: theme("colors.zinc.100");
15
+ --lookbook-base-200: theme("colors.zinc.200");
16
+ --lookbook-base-300: theme("colors.zinc.300");
17
+ --lookbook-base-400: theme("colors.zinc.400");
18
+ --lookbook-base-500: theme("colors.zinc.500");
19
+ --lookbook-base-600: theme("colors.zinc.600");
20
+ --lookbook-base-700: theme("colors.zinc.700");
21
+ --lookbook-base-800: theme("colors.zinc.800");
22
+ --lookbook-base-900: theme("colors.zinc.900");
23
+ --lookbook-text: var(--lookbook-base-800);
24
+ --lookbook-divider: var(--lookbook-base-300);
25
+ --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
26
+ --lookbook-icon-button-stroke: var(--lookbook-base-400);
27
+ --lookbook-icon-button-stroke-hover: var(--lookbook-accent-600);
28
+ --lookbook-tooltip-bg: var(--lookbook-accent-500);
29
+ --lookbook-tooltip-text: var(--lookbook-white);
30
+ --lookbook-scrollbar: var(--lookbook-base-200);
31
+ --lookbook-scrollbar-hover: var(--lookbook-base-300);
32
+ --lookbook-toolbar-bg: var(--lookbook-white);
33
+ --lookbook-toolbar-divider: var(--lookbook-divider);
34
+ --lookbook-nav-text: var(--lookbook-text);
35
+ --lookbook-nav-toggle: var(--lookbook-base-500);
36
+ --lookbook-nav-icon-stroke: var(--lookbook-accent-500);
37
+ --lookbook-nav-item-hover: var(--lookbook-base-100);
38
+ --lookbook-nav-item-active: var(--lookbook-accent-50);
39
+ --lookbook-input-bg: var(--lookbook-white);
40
+ --lookbook-input-border: var(--lookbook-base-300);
41
+ --lookbook-input-border-focus: var(--lookbook-accent-200);
42
+ --lookbook-input-text: var(--lookbook-base-600);
43
+ --lookbook-input-text-placeholder: var(--lookbook-base-400);
44
+ --lookbook-input-toggle: var(--lookbook-base-300);
45
+ --lookbook-input-toggle-active: var(--lookbook-accent-500);
46
+ --lookbook-prose-bg: var(--lookbook-white);
47
+ --lookbook-prose-text: var(--lookbook-base-600);
48
+ --lookbook-prose-link: var(--lookbook-accent-900);
49
+ --lookbook-tabs-text: var(--lookbook-base-500);
50
+ --lookbook-tabs-text-hover: var(--lookbook-base-700);
51
+ --lookbook-tabs-text-disabled: var(--lookbook-base-300);
52
+ --lookbook-tabs-border-active: var(--lookbook-accent-400);
53
+ --lookbook-viewport-handle: var(--lookbook-white);
54
+ --lookbook-viewport-handle-hover: var(--lookbook-draggable-hint);
55
+ --lookbook-viewport-handle-icon-stroke: var(--lookbook-base-300);
56
+ --lookbook-viewport-handle-icon-stroke-hover: var(--lookbook-base-700);
57
+ --lookbook-sidebar-bg: var(--lookbook-base-50);
58
+ --lookbook-page-bg: var(--lookbook-white);
59
+ --lookbook-drawer-bg: var(--lookbook-base-50);
60
+ --lookbook-params-editor-bg: var(--lookbook-white);
61
+ --lookbook-header-bg: var(--lookbook-accent-600);
62
+ --lookbook-header-text: var(--lookbook-white);
63
+ --lookbook-header-border: var(--lookbook-accent-700);
64
+ --lookbook-blank-slate-title: var(--lookbook-accent-600);
65
+ --lookbook-branding-text: var(--lookbook-header-text);
66
+ }
@@ -22,6 +22,7 @@
22
22
  --lookbook-base-900: theme("colors.zinc.900");
23
23
  --lookbook-text: var(--lookbook-base-800);
24
24
  --lookbook-divider: var(--lookbook-base-300);
25
+ --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
25
26
  --lookbook-icon-button-stroke: var(--lookbook-base-400);
26
27
  --lookbook-icon-button-stroke-hover: var(--lookbook-accent-600);
27
28
  --lookbook-tooltip-bg: var(--lookbook-accent-500);
@@ -50,15 +51,16 @@
50
51
  --lookbook-tabs-text-disabled: var(--lookbook-base-300);
51
52
  --lookbook-tabs-border-active: var(--lookbook-accent-400);
52
53
  --lookbook-viewport-handle: var(--lookbook-white);
54
+ --lookbook-viewport-handle-hover: var(--lookbook-draggable-hint);
53
55
  --lookbook-viewport-handle-icon-stroke: var(--lookbook-base-300);
54
56
  --lookbook-viewport-handle-icon-stroke-hover: var(--lookbook-base-700);
55
57
  --lookbook-sidebar-bg: var(--lookbook-base-50);
56
58
  --lookbook-page-bg: var(--lookbook-white);
57
59
  --lookbook-drawer-bg: var(--lookbook-base-50);
60
+ --lookbook-params-editor-bg: var(--lookbook-white);
58
61
  --lookbook-header-bg: var(--lookbook-accent-600);
59
62
  --lookbook-header-text: var(--lookbook-white);
60
63
  --lookbook-header-border: var(--lookbook-accent-700);
61
64
  --lookbook-blank-slate-title: var(--lookbook-accent-600);
62
65
  --lookbook-branding-text: var(--lookbook-header-text);
63
- --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
64
- }
66
+ }
@@ -0,0 +1,66 @@
1
+ :root {
2
+ --lookbook-white: theme("colors.white");
3
+ --lookbook-accent-50: theme("colors.rose.50");
4
+ --lookbook-accent-100: theme("colors.rose.100");
5
+ --lookbook-accent-200: theme("colors.rose.200");
6
+ --lookbook-accent-300: theme("colors.rose.300");
7
+ --lookbook-accent-400: theme("colors.rose.400");
8
+ --lookbook-accent-500: theme("colors.rose.500");
9
+ --lookbook-accent-600: theme("colors.rose.600");
10
+ --lookbook-accent-700: theme("colors.rose.700");
11
+ --lookbook-accent-800: theme("colors.rose.800");
12
+ --lookbook-accent-900: theme("colors.rose.900");
13
+ --lookbook-base-50: theme("colors.zinc.50");
14
+ --lookbook-base-100: theme("colors.zinc.100");
15
+ --lookbook-base-200: theme("colors.zinc.200");
16
+ --lookbook-base-300: theme("colors.zinc.300");
17
+ --lookbook-base-400: theme("colors.zinc.400");
18
+ --lookbook-base-500: theme("colors.zinc.500");
19
+ --lookbook-base-600: theme("colors.zinc.600");
20
+ --lookbook-base-700: theme("colors.zinc.700");
21
+ --lookbook-base-800: theme("colors.zinc.800");
22
+ --lookbook-base-900: theme("colors.zinc.900");
23
+ --lookbook-text: var(--lookbook-base-800);
24
+ --lookbook-divider: var(--lookbook-base-300);
25
+ --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
26
+ --lookbook-icon-button-stroke: var(--lookbook-base-400);
27
+ --lookbook-icon-button-stroke-hover: var(--lookbook-accent-600);
28
+ --lookbook-tooltip-bg: var(--lookbook-accent-500);
29
+ --lookbook-tooltip-text: var(--lookbook-white);
30
+ --lookbook-scrollbar: var(--lookbook-base-200);
31
+ --lookbook-scrollbar-hover: var(--lookbook-base-300);
32
+ --lookbook-toolbar-bg: var(--lookbook-white);
33
+ --lookbook-toolbar-divider: var(--lookbook-divider);
34
+ --lookbook-nav-text: var(--lookbook-text);
35
+ --lookbook-nav-toggle: var(--lookbook-base-500);
36
+ --lookbook-nav-icon-stroke: var(--lookbook-accent-500);
37
+ --lookbook-nav-item-hover: var(--lookbook-base-100);
38
+ --lookbook-nav-item-active: var(--lookbook-accent-50);
39
+ --lookbook-input-bg: var(--lookbook-white);
40
+ --lookbook-input-border: var(--lookbook-base-300);
41
+ --lookbook-input-border-focus: var(--lookbook-accent-200);
42
+ --lookbook-input-text: var(--lookbook-base-600);
43
+ --lookbook-input-text-placeholder: var(--lookbook-base-400);
44
+ --lookbook-input-toggle: var(--lookbook-base-300);
45
+ --lookbook-input-toggle-active: var(--lookbook-accent-500);
46
+ --lookbook-prose-bg: var(--lookbook-white);
47
+ --lookbook-prose-text: var(--lookbook-base-600);
48
+ --lookbook-prose-link: var(--lookbook-accent-900);
49
+ --lookbook-tabs-text: var(--lookbook-base-500);
50
+ --lookbook-tabs-text-hover: var(--lookbook-base-700);
51
+ --lookbook-tabs-text-disabled: var(--lookbook-base-300);
52
+ --lookbook-tabs-border-active: var(--lookbook-accent-400);
53
+ --lookbook-viewport-handle: var(--lookbook-white);
54
+ --lookbook-viewport-handle-hover: var(--lookbook-draggable-hint);
55
+ --lookbook-viewport-handle-icon-stroke: var(--lookbook-base-300);
56
+ --lookbook-viewport-handle-icon-stroke-hover: var(--lookbook-base-700);
57
+ --lookbook-sidebar-bg: var(--lookbook-base-50);
58
+ --lookbook-page-bg: var(--lookbook-white);
59
+ --lookbook-drawer-bg: var(--lookbook-base-50);
60
+ --lookbook-params-editor-bg: var(--lookbook-white);
61
+ --lookbook-header-bg: var(--lookbook-accent-600);
62
+ --lookbook-header-text: var(--lookbook-white);
63
+ --lookbook-header-border: var(--lookbook-accent-700);
64
+ --lookbook-blank-slate-title: var(--lookbook-accent-600);
65
+ --lookbook-branding-text: var(--lookbook-header-text);
66
+ }
@@ -22,6 +22,7 @@
22
22
  --lookbook-base-900: theme("colors.zinc.900");
23
23
  --lookbook-text: var(--lookbook-base-800);
24
24
  --lookbook-divider: var(--lookbook-base-300);
25
+ --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
25
26
  --lookbook-icon-button-stroke: var(--lookbook-base-400);
26
27
  --lookbook-icon-button-stroke-hover: var(--lookbook-accent-600);
27
28
  --lookbook-tooltip-bg: var(--lookbook-accent-500);
@@ -50,15 +51,16 @@
50
51
  --lookbook-tabs-text-disabled: var(--lookbook-base-300);
51
52
  --lookbook-tabs-border-active: var(--lookbook-accent-400);
52
53
  --lookbook-viewport-handle: var(--lookbook-white);
54
+ --lookbook-viewport-handle-hover: var(--lookbook-draggable-hint);
53
55
  --lookbook-viewport-handle-icon-stroke: var(--lookbook-base-300);
54
56
  --lookbook-viewport-handle-icon-stroke-hover: var(--lookbook-base-700);
55
57
  --lookbook-sidebar-bg: var(--lookbook-base-50);
56
58
  --lookbook-page-bg: var(--lookbook-white);
57
59
  --lookbook-drawer-bg: var(--lookbook-base-50);
60
+ --lookbook-params-editor-bg: var(--lookbook-white);
58
61
  --lookbook-header-bg: var(--lookbook-accent-600);
59
62
  --lookbook-header-text: var(--lookbook-white);
60
63
  --lookbook-header-border: var(--lookbook-accent-700);
61
64
  --lookbook-blank-slate-title: var(--lookbook-accent-600);
62
65
  --lookbook-branding-text: var(--lookbook-header-text);
63
- --lookbook-draggable-hint: rgb(224 231 255 / 0.2);
64
- }
66
+ }
@@ -32,9 +32,9 @@ module Lookbook
32
32
 
33
33
  def alpine_encode(data)
34
34
  if data.is_a? String
35
- "\'#{json_escape data}\'"
35
+ "'#{json_escape data}'"
36
36
  else
37
- json_escape data.to_json.tr("\"", "\'")
37
+ json_escape data.to_json.tr("\"", "'")
38
38
  end
39
39
  end
40
40
 
@@ -1,4 +1,4 @@
1
- @import "./highlight_github_light.css";
1
+ @import "./highlight_github.css";
2
2
 
3
3
  @layer components {
4
4
  [data-component="code"] {
@@ -25,7 +25,7 @@
25
25
 
26
26
  & .line-numbers {
27
27
  width: min-content;
28
- @apply bg-white border-r border-dashed border-lookbook-divider z-10 h-full p-3 select-none text-gray-400 text-right;
28
+ @apply border-r border-dashed z-10 h-full p-3 select-none text-right;
29
29
  }
30
30
 
31
31
  & .line-number {
@@ -3,8 +3,9 @@
3
3
  {
4
4
  "numbered": numbered?,
5
5
  "focussed": focussed?,
6
- "h-full": full_height?
6
+ "h-full": full_height?,
7
+ "dark": is_dark?
7
8
  }
8
9
  ] do %>
9
- <%= Lookbook::CodeFormatter.highlight(source, **@highlight_opts) %>
10
+ <%= Lookbook::CodeHighlighter.call(source, **@highlight_opts) %>
10
11
  <% end %>
@@ -9,7 +9,8 @@ module Lookbook
9
9
  highlight_lines: [],
10
10
  start_line: 1,
11
11
  wrap: false,
12
- theme: :github_light,
12
+ theme: nil,
13
+ dark: false,
13
14
  full_height: false,
14
15
  **html_attrs
15
16
  )
@@ -23,6 +24,7 @@ module Lookbook
23
24
  @highlight_lines = highlight_lines
24
25
  @wrap = wrap
25
26
  @theme = theme
27
+ @dark = dark
26
28
  @full_height = full_height
27
29
  super(**html_attrs)
28
30
  end
@@ -44,7 +46,16 @@ module Lookbook
44
46
  end
45
47
 
46
48
  def full_height?
47
- @full_height == true
49
+ @full_height
50
+ end
51
+
52
+ def is_dark?
53
+ @dark
54
+ end
55
+
56
+ def before_render
57
+ @theme ||= Lookbook.config.highlighter_options.fetch(:theme, :github).to_sym
58
+ @dark ||= !!Lookbook.config.highlighter_options.fetch(:dark, false)
48
59
  end
49
60
 
50
61
  protected