lookbook 1.2.1 → 1.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +47 -14
- data/app/assets/lookbook/css/themes/blue.css +4 -2
- data/app/assets/lookbook/css/themes/green.css +66 -0
- data/app/assets/lookbook/css/themes/indigo.css +4 -2
- data/app/assets/lookbook/css/themes/rose.css +66 -0
- data/app/assets/lookbook/css/themes/zinc.css +4 -2
- data/app/components/lookbook/base_component.rb +2 -2
- data/app/components/lookbook/code/component.css +2 -2
- data/app/components/lookbook/code/component.html.erb +3 -2
- data/app/components/lookbook/code/component.rb +13 -2
- data/app/components/lookbook/code/highlight_github.css +406 -0
- data/app/components/lookbook/header/component.html.erb +1 -1
- data/app/components/lookbook/inspector_panel/component.rb +4 -6
- data/app/components/lookbook/nav/component.rb +8 -15
- data/app/components/lookbook/nav/directory/component.html.erb +28 -0
- data/app/components/lookbook/nav/directory/component.rb +4 -0
- data/app/components/lookbook/nav/{item → entity}/component.html.erb +8 -8
- data/app/components/lookbook/nav/entity/component.rb +49 -0
- data/app/components/lookbook/nav/item/component.css +15 -0
- data/app/components/lookbook/nav/item/component.js +4 -0
- data/app/components/lookbook/nav/item/component.rb +13 -56
- data/app/components/lookbook/params/editor/component.html.erb +2 -2
- data/app/components/lookbook/params/editor/component.rb +3 -10
- data/app/components/lookbook/params/field/component.css +3 -3
- data/app/components/lookbook/params/field/component.html.erb +8 -8
- data/app/components/lookbook/params/field/component.rb +21 -72
- data/app/components/lookbook/split_layout/component.html.erb +1 -1
- data/app/components/lookbook/tabs/component.html.erb +1 -1
- data/app/components/lookbook/tabs/component.js +4 -0
- data/app/components/lookbook/tag_component.rb +1 -1
- data/app/components/lookbook/viewport/component.css +1 -1
- data/app/components/lookbook/viewport/component.html.erb +1 -1
- data/app/components/lookbook/viewport/component.rb +1 -1
- data/app/controllers/concerns/lookbook/targetable_concern.rb +131 -0
- data/app/controllers/concerns/lookbook/with_preview_controller_concern.rb +13 -0
- data/app/controllers/lookbook/application_controller.rb +21 -9
- data/app/controllers/lookbook/inspector_controller.rb +45 -0
- data/app/controllers/lookbook/page_controller.rb +13 -9
- data/app/controllers/lookbook/pages_controller.rb +9 -15
- data/app/controllers/lookbook/previews_controller.rb +4 -210
- data/app/helpers/lookbook/application_helper.rb +2 -2
- data/app/helpers/lookbook/output_helper.rb +5 -5
- data/app/helpers/lookbook/page_helper.rb +7 -4
- data/app/views/layouts/lookbook/application.html.erb +40 -38
- data/app/views/layouts/lookbook/page.html.erb +2 -2
- data/app/views/layouts/lookbook/shell.html.erb +3 -2
- data/app/views/layouts/lookbook/skeleton.html.erb +7 -7
- data/app/views/lookbook/index.html.erb +13 -2
- data/app/views/lookbook/{previews → inspector}/inputs/_color.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/inputs/_range.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/inputs/_select.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/inputs/_text.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/inputs/_textarea.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/inputs/_toggle.html.erb +5 -5
- data/app/views/lookbook/{previews → inspector}/panels/_content.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/panels/_notes.html.erb +2 -2
- data/app/views/lookbook/{previews → inspector}/panels/_output.html.erb +0 -0
- data/app/views/lookbook/inspector/panels/_params.html.erb +15 -0
- data/app/views/lookbook/{previews → inspector}/panels/_preview.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/panels/_source.html.erb +0 -0
- data/app/views/lookbook/{previews → inspector}/show.html.erb +5 -2
- data/config/app.yml +11 -1
- data/config/inputs.yml +12 -12
- data/config/languages.yml +41 -0
- data/config/panels.yml +6 -6
- data/config/routes.rb +5 -5
- data/config/tags.yml +8 -1
- data/lib/lookbook/engine.rb +103 -130
- data/lib/lookbook/entities/collections/component_collection.rb +4 -0
- data/lib/lookbook/entities/collections/concerns/hierarchical_collection.rb +23 -0
- data/lib/lookbook/entities/collections/entity_collection.rb +61 -0
- data/lib/lookbook/entities/collections/page_collection.rb +30 -0
- data/lib/lookbook/entities/collections/preview_collection.rb +41 -0
- data/lib/lookbook/entities/collections/preview_example_collection.rb +4 -0
- data/lib/lookbook/entities/component.rb +31 -0
- data/lib/lookbook/entities/concerns/annotatable.rb +58 -0
- data/lib/lookbook/entities/concerns/inspectable.rb +44 -0
- data/lib/lookbook/entities/concerns/locatable.rb +73 -0
- data/lib/lookbook/entities/concerns/navigable.rb +43 -0
- data/lib/lookbook/entities/entity.rb +53 -0
- data/lib/lookbook/entities/page.rb +80 -0
- data/lib/lookbook/entities/page_section.rb +43 -0
- data/lib/lookbook/entities/preview.rb +87 -0
- data/lib/lookbook/entities/preview_example.rb +100 -0
- data/lib/lookbook/entities/preview_group.rb +48 -0
- data/lib/lookbook/file_watcher.rb +47 -0
- data/lib/lookbook/lang.rb +12 -35
- data/lib/lookbook/param.rb +99 -0
- data/lib/lookbook/{preview_controller.rb → preview_actions.rb} +14 -3
- data/lib/lookbook/preview_parser.rb +53 -0
- data/lib/lookbook/process.rb +21 -0
- data/lib/lookbook/rendered_example.rb +37 -0
- data/lib/lookbook/services/code/code_beautifier.rb +21 -0
- data/lib/lookbook/services/code/code_highlighter.rb +69 -0
- data/lib/lookbook/services/code/code_indenter.rb +14 -0
- data/lib/lookbook/services/data/parsers/data_parser.rb +22 -0
- data/lib/lookbook/services/data/parsers/json_parser.rb +7 -0
- data/lib/lookbook/services/data/parsers/yaml_parser.rb +7 -0
- data/lib/lookbook/services/data/resolvers/data_resolver.rb +70 -0
- data/lib/lookbook/services/data/resolvers/eval_resolver.rb +10 -0
- data/lib/lookbook/services/data/resolvers/file_resolver.rb +28 -0
- data/lib/lookbook/services/data/resolvers/method_resolver.rb +10 -0
- data/lib/lookbook/services/data/resolvers/yaml_resolver.rb +18 -0
- data/lib/lookbook/services/entities/entity_tree_builder.rb +45 -0
- data/lib/lookbook/services/markdown_renderer.rb +29 -0
- data/lib/lookbook/services/position_prefix_parser.rb +16 -0
- data/lib/lookbook/services/string_value_caster.rb +60 -0
- data/lib/lookbook/services/tags/tag_options_parser.rb +62 -0
- data/lib/lookbook/services/templates/action_view_annotations_handler.rb +21 -0
- data/lib/lookbook/services/templates/action_view_annotations_stripper.rb +15 -0
- data/lib/lookbook/services/templates/frontmatter_extractor.rb +28 -0
- data/lib/lookbook/services/templates/styles_extractor.rb +38 -0
- data/lib/lookbook/services/{search_param_builder.rb → urls/search_param_builder.rb} +1 -1
- data/lib/lookbook/services/{search_param_parser.rb → urls/search_param_parser.rb} +1 -1
- data/lib/lookbook/stores/config_store.rb +12 -9
- data/lib/lookbook/stores/input_store.rb +7 -3
- data/lib/lookbook/stores/panel_store.rb +2 -2
- data/lib/lookbook/stores/tag_store.rb +3 -5
- data/lib/lookbook/support/null_object.rb +10 -0
- data/lib/lookbook/support/service.rb +2 -2
- data/lib/lookbook/support/store.rb +2 -35
- data/lib/lookbook/support/tree_node.rb +87 -0
- data/lib/lookbook/support/utils/path_utils.rb +32 -5
- data/lib/lookbook/support/utils/utils.rb +24 -0
- data/lib/lookbook/tags/component_tag.rb +13 -0
- data/lib/lookbook/tags/custom_tag.rb +61 -0
- data/lib/lookbook/tags/display_tag.rb +15 -0
- data/lib/lookbook/tags/hidden_tag.rb +13 -0
- data/lib/lookbook/tags/id_tag.rb +7 -0
- data/lib/lookbook/tags/label_tag.rb +4 -0
- data/lib/lookbook/tags/logical_path_tag.rb +7 -0
- data/lib/lookbook/tags/param_tag.rb +63 -0
- data/lib/lookbook/tags/position_tag.rb +16 -0
- data/lib/lookbook/tags/source_tag.rb +7 -0
- data/lib/lookbook/tags/tag_provider.rb +18 -0
- data/lib/lookbook/tags/yard_tag.rb +90 -0
- data/lib/lookbook/theme.rb +8 -0
- data/lib/lookbook/version.rb +1 -1
- data/lib/lookbook/websocket.rb +60 -0
- data/lib/lookbook.rb +13 -8
- data/public/lookbook-assets/css/lookbook.css +487 -411
- data/public/lookbook-assets/css/lookbook.css.map +1 -1
- data/public/lookbook-assets/css/themes/blue.css +3 -1
- data/public/lookbook-assets/css/themes/blue.css.map +1 -1
- data/public/lookbook-assets/css/themes/green.css +68 -0
- data/public/lookbook-assets/css/themes/green.css.map +1 -0
- data/public/lookbook-assets/css/themes/indigo.css +3 -1
- data/public/lookbook-assets/css/themes/indigo.css.map +1 -1
- data/public/lookbook-assets/css/themes/rose.css +68 -0
- data/public/lookbook-assets/css/themes/rose.css.map +1 -0
- data/public/lookbook-assets/css/themes/zinc.css +3 -1
- data/public/lookbook-assets/css/themes/zinc.css.map +1 -1
- data/public/lookbook-assets/js/embed.js +10 -1
- data/public/lookbook-assets/js/embed.js.map +1 -1
- data/public/lookbook-assets/js/lookbook.js +358 -629
- data/public/lookbook-assets/js/lookbook.js.map +1 -1
- metadata +96 -44
- data/app/components/lookbook/code/highlight_github_light.css +0 -217
- data/app/views/lookbook/previews/panels/_params.html.erb +0 -15
- data/lib/lookbook/code_formatter.rb +0 -68
- data/lib/lookbook/collection.rb +0 -161
- data/lib/lookbook/component.rb +0 -34
- data/lib/lookbook/entity.rb +0 -47
- data/lib/lookbook/markdown.rb +0 -22
- data/lib/lookbook/page.rb +0 -195
- data/lib/lookbook/page_collection.rb +0 -19
- data/lib/lookbook/page_section.rb +0 -29
- data/lib/lookbook/params.rb +0 -157
- data/lib/lookbook/parser.rb +0 -42
- data/lib/lookbook/preview.rb +0 -174
- data/lib/lookbook/preview_collection.rb +0 -23
- data/lib/lookbook/preview_example.rb +0 -93
- data/lib/lookbook/preview_group.rb +0 -62
- data/lib/lookbook/source_inspector.rb +0 -95
- data/lib/lookbook/support/utils/attribute_utils.rb +0 -9
- data/lib/lookbook/tag.rb +0 -122
- data/lib/lookbook/tag_options.rb +0 -111
- data/lib/lookbook/tags.rb +0 -17
- data/lib/lookbook/template_parser.rb +0 -72
- data/lib/lookbook/utils.rb +0 -105
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bda485cc3ea6b7d85317d466952627d1f72dd724aba79140cfdc604512a5f4bc
|
4
|
+
data.tar.gz: 6be6a4c31c8f31851083d6f822dd9751ffda7fae471a1ed1fce80246526c3bb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1b4af27b5664136e08f65cbcfede40f9a4963d909eab70848376f6e236197ff51b4dd09c95dea2ff95ee5617f8d9ebd3906638efc99b3c09ce0d91b55c31097
|
7
|
+
data.tar.gz: 71d7191d3de4543b5068a279462182bb87908a5182667b158aa8a78ced51443696537b8a915f94d9405268d36fd49502ba37d1893737820200fb97827030e413
|
data/LICENSE.txt
CHANGED
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
|
12
|
+
✨ **Lookbook guide and API docs**: [lookbook.build](https://lookbook.build)
|
14
13
|
|
15
|
-
> _Looking for
|
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
|
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
|
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
|
-
###
|
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
|
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
|
+
& 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
|
-
|
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
|
-
|
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
|
-
|
64
|
-
}
|
66
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
@import "./
|
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
|
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::
|
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:
|
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
|
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
|