sdr_view_components 0.1.0

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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +75 -0
  4. data/Rakefile +15 -0
  5. data/app/assets/stylesheets/styles.scss +118 -0
  6. data/app/components/base_component.rb +31 -0
  7. data/app/components/component_support/button_support.rb +14 -0
  8. data/app/components/component_support/css_classes.rb +16 -0
  9. data/app/components/component_support/file_hierarchy.rb +22 -0
  10. data/app/components/sdr_view_components/elements/alert_component.html.erb +14 -0
  11. data/app/components/sdr_view_components/elements/alert_component.rb +65 -0
  12. data/app/components/sdr_view_components/elements/banner_component.html.erb +20 -0
  13. data/app/components/sdr_view_components/elements/banner_component.rb +41 -0
  14. data/app/components/sdr_view_components/elements/breadcrumb_component.html.erb +7 -0
  15. data/app/components/sdr_view_components/elements/breadcrumb_component.rb +28 -0
  16. data/app/components/sdr_view_components/elements/breadcrumb_nav_component.html.erb +10 -0
  17. data/app/components/sdr_view_components/elements/breadcrumb_nav_component.rb +24 -0
  18. data/app/components/sdr_view_components/elements/button_component.rb +31 -0
  19. data/app/components/sdr_view_components/elements/button_link_component.rb +29 -0
  20. data/app/components/sdr_view_components/elements/navigation/dropdown_menu_component.html.erb +13 -0
  21. data/app/components/sdr_view_components/elements/navigation/dropdown_menu_component.rb +19 -0
  22. data/app/components/sdr_view_components/elements/navigation/nav_item_component.rb +25 -0
  23. data/app/components/sdr_view_components/elements/skip_links_component.html.erb +5 -0
  24. data/app/components/sdr_view_components/elements/skip_links_component.rb +8 -0
  25. data/app/components/sdr_view_components/elements/toast_component.html.erb +40 -0
  26. data/app/components/sdr_view_components/elements/toast_component.rb +35 -0
  27. data/app/components/sdr_view_components/elements/tooltip_component.html.erb +11 -0
  28. data/app/components/sdr_view_components/elements/tooltip_component.rb +39 -0
  29. data/app/components/sdr_view_components/forms/basic_checkbox_component.rb +22 -0
  30. data/app/components/sdr_view_components/forms/button_component.rb +42 -0
  31. data/app/components/sdr_view_components/forms/checkbox_component.html.erb +6 -0
  32. data/app/components/sdr_view_components/forms/checkbox_component.rb +23 -0
  33. data/app/components/sdr_view_components/forms/field_component.html.erb +6 -0
  34. data/app/components/sdr_view_components/forms/field_component.rb +74 -0
  35. data/app/components/sdr_view_components/forms/help_text_component.html.erb +3 -0
  36. data/app/components/sdr_view_components/forms/help_text_component.rb +23 -0
  37. data/app/components/sdr_view_components/forms/invalid_feedback_component.rb +43 -0
  38. data/app/components/sdr_view_components/forms/invalid_feedback_support.rb +21 -0
  39. data/app/components/sdr_view_components/forms/label_component.html.erb +6 -0
  40. data/app/components/sdr_view_components/forms/label_component.rb +33 -0
  41. data/app/components/sdr_view_components/forms/submit_component.html.erb +3 -0
  42. data/app/components/sdr_view_components/forms/submit_component.rb +25 -0
  43. data/app/components/sdr_view_components/forms/toggle_component.html.erb +10 -0
  44. data/app/components/sdr_view_components/forms/toggle_component.rb +24 -0
  45. data/app/components/sdr_view_components/forms/toggle_option_component.html.erb +2 -0
  46. data/app/components/sdr_view_components/forms/toggle_option_component.rb +26 -0
  47. data/app/components/sdr_view_components/structure/footer_component.html.erb +141 -0
  48. data/app/components/sdr_view_components/structure/footer_component.rb +9 -0
  49. data/app/components/sdr_view_components/structure/header_component.html.erb +65 -0
  50. data/app/components/sdr_view_components/structure/header_component.rb +63 -0
  51. data/app/components/sdr_view_components/structure/style_override_dark_component.html.erb +9 -0
  52. data/app/components/sdr_view_components/structure/style_override_dark_component.rb +22 -0
  53. data/app/components/sdr_view_components/structure/style_override_light_component.html.erb +6 -0
  54. data/app/components/sdr_view_components/structure/style_override_light_component.rb +9 -0
  55. data/config/routes.rb +4 -0
  56. data/lib/sdr_view_components/engine.rb +25 -0
  57. data/lib/sdr_view_components/version.rb +5 -0
  58. data/lib/sdr_view_components.rb +12 -0
  59. metadata +141 -0
@@ -0,0 +1,141 @@
1
+ <footer>
2
+ <section id="pre-footer" class="py-4" aria-label="Library footer">
3
+ <div class="container">
4
+ <div class="row row-gap-3">
5
+ <div id="sul-footer-img" class="d-none d-md-flex d-lg-none d-xl-flex col-sm-12 col-lg-3 col-xl-3 d-flex align-items-start justify-content-lg-start justify-content-md-center">
6
+ <a href="https://library.stanford.edu" class="prefooter-logo stacked-lg">Stanford University Libraries</a>
7
+ </div>
8
+ <section class="col-md-4 col-xl-3 primary-menu" aria-label="Main links">
9
+ <div class="d-block d-md-none d-lg-block d-xl-none mb-3">
10
+ <a href="https://library.stanford.edu" class="prefooter-logo">Stanford University Libraries</a>
11
+ </div>
12
+ <ul class="list-unstyled fw-semibold">
13
+ <li>
14
+ <a href="https://library.stanford.edu/all-locations-and-hours">All locations and hours
15
+ <i class="bi bi-arrow-right-short"></i></a>
16
+ </li>
17
+ <li>
18
+ <a href="https://library.stanford.edu/">Library website
19
+ <i class="bi bi-arrow-right-short"></i></a>
20
+ </li>
21
+ <li>
22
+ <a href="https://mylibrary.stanford.edu">My Account
23
+ <i class="bi bi-arrow-right-short"></i></a>
24
+ </li>
25
+ </ul>
26
+ </section>
27
+ <section class="col-md-4 col-xl-3 secondary-menu" aria-labelledby="get-help-header">
28
+ <header id="get-help-header" class="fw-semibold fs-5 mb-2">
29
+ Get help
30
+ </header>
31
+ <ul class="list-unstyled">
32
+ <li>
33
+ <a href="https://library.stanford.edu/contact-us">Contact us</a>
34
+ </li>
35
+ <li>
36
+ <a href="https://library.stanford.edu/library-accessibility">Library accessibility</a>
37
+ </li>
38
+ <li>
39
+ <a href="https://library-status.stanford.edu/">System status</a>
40
+ </li>
41
+ <li>
42
+ <a href="https://library.stanford.edu/ask/email/connection-problems">Report a connection problem</a>
43
+ </li>
44
+ </ul>
45
+ </section>
46
+ <section class="col-md-4 col-xl-3 secondary-menu" aria-labelledby="search-header">
47
+ <header id="search-header" class="fw-semibold fs-5 mb-2">
48
+ Search
49
+ </header>
50
+ <ul class="list-unstyled">
51
+ <li>
52
+ <a href="https://searchworks.stanford.edu/">SearchWorks Catalog</a>
53
+ |
54
+ <a href="https://searchworks.stanford.edu/articles">Articles+</a>
55
+ </li>
56
+ <li>
57
+ <a href="https://archives.stanford.edu/">Archival Collections at Stanford</a>
58
+ </li>
59
+ <li>
60
+ <a href="https://spotlight.stanford.edu/">Spotlight Exhibits</a>
61
+ </li>
62
+ <li>
63
+ <a href="https://earthworks.stanford.edu/">EarthWorks</a>
64
+ </li>
65
+ <li>
66
+ <a href="https://guides.library.stanford.edu/">Guides</a>
67
+ </li>
68
+ </ul>
69
+ </section>
70
+ </div>
71
+ </div>
72
+ </section>
73
+ <section id="su-footer" class="text-white bg-dark pt-4 pb-4" aria-label="Stanford University footer">
74
+ <div class="container d-flex flex-column flex-lg-row align-items-center align-md-normal" title="Common Stanford resources">
75
+ <div class="mt-1 mb-2 align-self-lg-start">
76
+ <a class="su-logo" href="https://www.stanford.edu">Stanford<br>
77
+ <span class="su-logo-university">University</span></a>
78
+ </div>
79
+ <div class="ms-lg-5">
80
+ <nav aria-label="Global footer menu" class="d-flex flex-row gap-4 gap-sm-0 flex-sm-column justify-content-center justify-content-lg-start align-items-start align-items-sm-center align-items-lg-start">
81
+ <ul class="justify-content-center justify-content-lg-start fw-semibold gap-sm-2 gap-md-3 gap-lg-4 list-unstyled d-flex flex-column flex-sm-row">
82
+ <li>
83
+ <a href="https://www.stanford.edu">
84
+ Stanford Home<span class="visually-hidden">(link is external)</span>
85
+ </a>
86
+ </li>
87
+ <li>
88
+ <a href="https://visit.stanford.edu/plan/">
89
+ Maps &amp; Directions<span class="visually-hidden">(link is external)</span></a>
90
+ </li>
91
+ <li>
92
+ <a href="https://www.stanford.edu/search/">
93
+ Search Stanford<span class="visually-hidden">(link is external)</span>
94
+ </a>
95
+ </li>
96
+ <li>
97
+ <a href="https://emergency.stanford.edu">
98
+ Emergency Info<span class="visually-hidden">(link is external)</span>
99
+ </a>
100
+ </li>
101
+ </ul>
102
+ <ul class="justify-content-center justify-content-lg-start gap-sm-2 gap-md-3 gap-lg-4 list-unstyled d-flex flex-column flex-sm-row">
103
+ <li>
104
+ <a href="https://www.stanford.edu/site/terms/" title="Terms of use for sites">
105
+ Terms of Use<span class="visually-hidden">(link is external)</span>
106
+ </a>
107
+ </li>
108
+ <li>
109
+ <a href="https://www.stanford.edu/site/privacy/" title="Privacy and cookie policy">
110
+ Privacy<span class="visually-hidden">(link is external)</span>
111
+ </a>
112
+ </li>
113
+ <li>
114
+ <a href="https://uit.stanford.edu/security/copyright-infringement" title="Report alleged copyright infringement">
115
+ Copyright<span class="visually-hidden">(link is external)</span>
116
+ </a>
117
+ </li>
118
+ <li>
119
+ <a href="https://adminguide.stanford.edu/chapter-1/subchapter-5/policy-1-5-4" title="Ownership and use of Stanford trademarks and images">
120
+ Trademarks<span class="visually-hidden">(link is external)</span>
121
+ </a>
122
+ </li>
123
+ <li>
124
+ <a href="https://studentservices.stanford.edu/more-resources/student-policies/non-academic/non-discrimination" title="Non-discrimination policy">
125
+ Non-Discrimination<span class="visually-hidden">(link is external)</span>
126
+ </a>
127
+ </li>
128
+ <li>
129
+ <a href="https://www.stanford.edu/site/accessibility" title="Report web accessibility issues">
130
+ Accessibility<span class="visually-hidden">(link is external)</span>
131
+ </a>
132
+ </li>
133
+ </ul>
134
+ </nav>
135
+ <div class="text-center text-lg-start copyright">
136
+ <span class="text-nowrap">© Stanford University.</span><span class="text-nowrap">&nbsp; Stanford, California 94305.</span>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </section>
141
+ </footer>
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Structure
5
+ # Component for rendering page footer.
6
+ class FooterComponent < BaseComponent
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,65 @@
1
+ <%= style_override %>
2
+
3
+ <header>
4
+ <div class="identity-bar">
5
+ <div class="container">
6
+ <a class="su-brand-bar__logo" href="https://www.stanford.edu">Stanford University</a>
7
+ </div>
8
+ </div>
9
+ <%= tag.nav class: navbar_classes do %>
10
+ <div class="container">
11
+ <a class="mb-0 navbar-brand navbar-logo" href="https://library.stanford.edu">Stanford University Libraries</a>
12
+ <button
13
+ class="navbar-toggler navbar-toggler-right collapsed"
14
+ type="button"
15
+ data-toggle="collapse"
16
+ data-bs-toggle="collapse"
17
+ data-target="#user-util-collapse"
18
+ data-bs-target="#user-util-collapse"
19
+ aria-controls="user-util-collapse"
20
+ aria-expanded="false"
21
+ aria-label="Toggle navigation">
22
+ <span class="navbar-toggler-icon"></span>
23
+ </button>
24
+
25
+ <div class="d-md-block d-none">
26
+ <ul class="navbar-nav">
27
+ <% primary_navigation_links.each do |link| %>
28
+ <%= link %>
29
+ <% end %>
30
+ </ul>
31
+ </div>
32
+ </div>
33
+ <% end %>
34
+ <%= tag.div class: masthead_classes do %>
35
+ <div class="container">
36
+ <div class="d-flex flex-wrap align-items-end pt-3 pb-1 pb-md-3 gap-2">
37
+ <div class="d-flex align-items-end gap-2 flex-grow-1">
38
+ <span class="rosette-logo me-1 align-self-start flex-shrink-0" aria-hidden></span>
39
+ <div class="me-1 flex-grow-1">
40
+ <%= title %>
41
+ <%= subtitle %>
42
+ </div>
43
+ </div>
44
+ <div class="<%= navbar_classes %> ms-md-auto">
45
+ <nav class="collapse navbar-collapse align-items-start justify-content-md-end navbar-expand-md d-md-flex flex-column flex-md-row" aria-label="browse" id="user-util-collapse">
46
+ <% if secondary_navigation_links.any? %>
47
+ <hr class="d-md-none vw-100 my-0">
48
+ <ul class="navbar-nav justify-content-md-end gap-0 gap-md-4 w-100 fw-semibold">
49
+ <% secondary_navigation_links.each do |link| %>
50
+ <%= link %>
51
+ <% end %>
52
+ </ul>
53
+ <% end %>
54
+ <hr class="d-md-none vw-100 my-0">
55
+ <ul class="navbar-nav d-md-none gap-0 w-100">
56
+ <% primary_navigation_links.each do |link| %>
57
+ <%= link %>
58
+ <% end %>
59
+ </ul>
60
+ </nav>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ <% end %>
65
+ </header>
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Structure
5
+ # Component for rendering page header.
6
+ class HeaderComponent < BaseComponent
7
+ renders_many :primary_navigation_links
8
+ renders_many :secondary_navigation_links
9
+
10
+ VARIANT_MASTHEAD_CLASS = {
11
+ light: 'bg-light',
12
+ dark: 'bg-dark sky-dark',
13
+ white: 'border-bottom'
14
+ }.freeze
15
+
16
+ VARIANT_NAVBAR_CLASS = {
17
+ light: 'bg-light',
18
+ dark: 'bg-dark sky-dark'
19
+ }.freeze
20
+
21
+ # param title [String] The main application title text.
22
+ # param subtitle [String, nil] An optional subtitle text.
23
+ # param variant [Symbol] One of :light, :dark, :white - determines color scheme.
24
+ # param background_color [String, nil] Optional RGB color value for background (i.e. '1, 104, 149').
25
+ # Used only when variant is :dark.
26
+ def initialize(title:, subtitle: nil, variant: :light, background_color: nil)
27
+ @title = title
28
+ @subtitle = subtitle
29
+ @variant = variant
30
+ @background_color = background_color
31
+ super()
32
+ end
33
+
34
+ attr_reader :variant, :background_color
35
+
36
+ def masthead_classes
37
+ merge_classes('masthead', VARIANT_MASTHEAD_CLASS[variant])
38
+ end
39
+
40
+ def navbar_classes
41
+ merge_classes('navbar navbar-expand-md', VARIANT_NAVBAR_CLASS[variant])
42
+ end
43
+
44
+ def style_override
45
+ return render SdrViewComponents::Structure::StyleOverrideLightComponent.new unless variant == :dark
46
+
47
+ render SdrViewComponents::Structure::StyleOverrideDarkComponent.new(background_color:)
48
+ end
49
+
50
+ def subtitle
51
+ return if @subtitle.blank?
52
+
53
+ tag.span @subtitle, class: 'h4 d-block my-1'
54
+ end
55
+
56
+ def title
57
+ tag.div(class: 'h1 my-0') do
58
+ link_to @title, '/'
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,9 @@
1
+ <style>
2
+ :root {
3
+ --stanford-sky-dark-rgb: <%= background_color %>;
4
+ }
5
+
6
+ .sky-dark {
7
+ --bs-dark-rgb: var(--stanford-sky-dark-rgb);
8
+ }
9
+ </style>
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Structure
5
+ # Component for proving style overrides for dark variant header.
6
+ # Used to set custom background color if provided.
7
+ class StyleOverrideDarkComponent < BaseComponent
8
+ def initialize(background_color:)
9
+ @background_color = background_color
10
+ super()
11
+ end
12
+
13
+ attr_reader :background_color
14
+
15
+ private
16
+
17
+ def render?
18
+ background_color.present?
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,6 @@
1
+ <style>
2
+ :root {
3
+ --identity-bar-bg-color: var(--stanford-cardinal);
4
+ --identity-bar-color: white;
5
+ }
6
+ </style>
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Structure
5
+ # Component for providing style overrides for light variant header.
6
+ # Switches the identity bar styling to the cardinal red background and white text.
7
+ class StyleOverrideLightComponent < BaseComponent; end
8
+ end
9
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ SdrViewComponents::Engine.routes.draw do
4
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'view_component'
4
+
5
+ module SdrViewComponents
6
+ # Engine class for the SDR View Components gem
7
+ class Engine < ::Rails::Engine
8
+ isolate_namespace SdrViewComponents
9
+
10
+ initializer 'sdr_view_components.view_component' do
11
+ require 'view_component/engine'
12
+
13
+ # Tell VC where your previews live (inside the engine)
14
+ config.view_component.previews.paths << root.join('spec/components/previews')
15
+
16
+ # Optional: which layout to wrap previews in (comes from the dummy app)
17
+ config.view_component.default_preview_layout = 'application'
18
+ end
19
+
20
+ initializer 'sdr_view_components.assets' do |app|
21
+ app.config.assets.paths << Engine.root.join('app', 'assets', 'stylesheets').to_s
22
+ app.config.assets.precompile += %w[sdr_view_components.css]
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sdr_view_components/version'
4
+ require 'sdr_view_components/engine'
5
+ require 'zeitwerk'
6
+
7
+ loader = Zeitwerk::Loader.for_gem
8
+ loader.setup # ready!
9
+
10
+ # SdrViewComponents module
11
+ module SdrViewComponents
12
+ end
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sdr_view_components
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Collier
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-12-04 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '8.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '8.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: view_component
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: zeitwerk
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ description: Rails gem for providing SDR-specific ViewComponents.
55
+ email:
56
+ - aaron.collier@stanford.edu
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - MIT-LICENSE
62
+ - README.md
63
+ - Rakefile
64
+ - app/assets/stylesheets/styles.scss
65
+ - app/components/base_component.rb
66
+ - app/components/component_support/button_support.rb
67
+ - app/components/component_support/css_classes.rb
68
+ - app/components/component_support/file_hierarchy.rb
69
+ - app/components/sdr_view_components/elements/alert_component.html.erb
70
+ - app/components/sdr_view_components/elements/alert_component.rb
71
+ - app/components/sdr_view_components/elements/banner_component.html.erb
72
+ - app/components/sdr_view_components/elements/banner_component.rb
73
+ - app/components/sdr_view_components/elements/breadcrumb_component.html.erb
74
+ - app/components/sdr_view_components/elements/breadcrumb_component.rb
75
+ - app/components/sdr_view_components/elements/breadcrumb_nav_component.html.erb
76
+ - app/components/sdr_view_components/elements/breadcrumb_nav_component.rb
77
+ - app/components/sdr_view_components/elements/button_component.rb
78
+ - app/components/sdr_view_components/elements/button_link_component.rb
79
+ - app/components/sdr_view_components/elements/navigation/dropdown_menu_component.html.erb
80
+ - app/components/sdr_view_components/elements/navigation/dropdown_menu_component.rb
81
+ - app/components/sdr_view_components/elements/navigation/nav_item_component.rb
82
+ - app/components/sdr_view_components/elements/skip_links_component.html.erb
83
+ - app/components/sdr_view_components/elements/skip_links_component.rb
84
+ - app/components/sdr_view_components/elements/toast_component.html.erb
85
+ - app/components/sdr_view_components/elements/toast_component.rb
86
+ - app/components/sdr_view_components/elements/tooltip_component.html.erb
87
+ - app/components/sdr_view_components/elements/tooltip_component.rb
88
+ - app/components/sdr_view_components/forms/basic_checkbox_component.rb
89
+ - app/components/sdr_view_components/forms/button_component.rb
90
+ - app/components/sdr_view_components/forms/checkbox_component.html.erb
91
+ - app/components/sdr_view_components/forms/checkbox_component.rb
92
+ - app/components/sdr_view_components/forms/field_component.html.erb
93
+ - app/components/sdr_view_components/forms/field_component.rb
94
+ - app/components/sdr_view_components/forms/help_text_component.html.erb
95
+ - app/components/sdr_view_components/forms/help_text_component.rb
96
+ - app/components/sdr_view_components/forms/invalid_feedback_component.rb
97
+ - app/components/sdr_view_components/forms/invalid_feedback_support.rb
98
+ - app/components/sdr_view_components/forms/label_component.html.erb
99
+ - app/components/sdr_view_components/forms/label_component.rb
100
+ - app/components/sdr_view_components/forms/submit_component.html.erb
101
+ - app/components/sdr_view_components/forms/submit_component.rb
102
+ - app/components/sdr_view_components/forms/toggle_component.html.erb
103
+ - app/components/sdr_view_components/forms/toggle_component.rb
104
+ - app/components/sdr_view_components/forms/toggle_option_component.html.erb
105
+ - app/components/sdr_view_components/forms/toggle_option_component.rb
106
+ - app/components/sdr_view_components/structure/footer_component.html.erb
107
+ - app/components/sdr_view_components/structure/footer_component.rb
108
+ - app/components/sdr_view_components/structure/header_component.html.erb
109
+ - app/components/sdr_view_components/structure/header_component.rb
110
+ - app/components/sdr_view_components/structure/style_override_dark_component.html.erb
111
+ - app/components/sdr_view_components/structure/style_override_dark_component.rb
112
+ - app/components/sdr_view_components/structure/style_override_light_component.html.erb
113
+ - app/components/sdr_view_components/structure/style_override_light_component.rb
114
+ - config/routes.rb
115
+ - lib/sdr_view_components.rb
116
+ - lib/sdr_view_components/engine.rb
117
+ - lib/sdr_view_components/version.rb
118
+ homepage: https://github.com/sul-dlss/sdr_view_components
119
+ licenses: []
120
+ metadata:
121
+ homepage_uri: https://github.com/sul-dlss/sdr_view_components
122
+ source_code_uri: https://github.com/sul-dlss/sdr_view_components
123
+ rubygems_mfa_required: 'true'
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '3.4'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubygems_version: 3.6.2
139
+ specification_version: 4
140
+ summary: Rails gem for providing SDR-specific ViewComponents.
141
+ test_files: []