anchor_view_components 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +61 -0
  5. data/app/assets/builds/anchor-view-components.css +1 -0
  6. data/app/assets/stylesheets/anchor-view-components.tailwind.css +8 -0
  7. data/app/assets/stylesheets/components/button.css +29 -0
  8. data/app/assets/stylesheets/components/toast.css +21 -0
  9. data/app/components/anchor/action_menu_component.html.erb +19 -0
  10. data/app/components/anchor/action_menu_component.rb +23 -0
  11. data/app/components/anchor/action_menu_controller.ts +21 -0
  12. data/app/components/anchor/anchor_view_components.ts +13 -0
  13. data/app/components/anchor/autocomplete_component.en.yml +3 -0
  14. data/app/components/anchor/autocomplete_component.html.erb +36 -0
  15. data/app/components/anchor/autocomplete_component.rb +42 -0
  16. data/app/components/anchor/autocomplete_controller.ts +37 -0
  17. data/app/components/anchor/badge_component.html.erb +8 -0
  18. data/app/components/anchor/badge_component.rb +27 -0
  19. data/app/components/anchor/banner_component.html.erb +9 -0
  20. data/app/components/anchor/banner_component.rb +28 -0
  21. data/app/components/anchor/breadcrumbs/item_component.html.erb +16 -0
  22. data/app/components/anchor/breadcrumbs/item_component.rb +15 -0
  23. data/app/components/anchor/breadcrumbs_component.html.erb +10 -0
  24. data/app/components/anchor/breadcrumbs_component.rb +17 -0
  25. data/app/components/anchor/button_component.html.erb +22 -0
  26. data/app/components/anchor/button_component.rb +76 -0
  27. data/app/components/anchor/component.rb +21 -0
  28. data/app/components/anchor/dialog_component.html.erb +42 -0
  29. data/app/components/anchor/dialog_component.rb +25 -0
  30. data/app/components/anchor/dialog_controller.ts +15 -0
  31. data/app/components/anchor/icon_component.html.erb +6 -0
  32. data/app/components/anchor/icon_component.rb +9 -0
  33. data/app/components/anchor/loading_indicator_component.html.erb +6 -0
  34. data/app/components/anchor/loading_indicator_component.rb +23 -0
  35. data/app/components/anchor/panel/body_component.html.erb +8 -0
  36. data/app/components/anchor/panel/body_component.rb +6 -0
  37. data/app/components/anchor/panel/footer_component.html.erb +9 -0
  38. data/app/components/anchor/panel/footer_component.rb +17 -0
  39. data/app/components/anchor/panel/header_component.html.erb +9 -0
  40. data/app/components/anchor/panel/header_component.rb +15 -0
  41. data/app/components/anchor/panel_component.html.erb +8 -0
  42. data/app/components/anchor/panel_component.rb +20 -0
  43. data/app/components/anchor/prose_component.html.erb +3 -0
  44. data/app/components/anchor/prose_component.rb +9 -0
  45. data/app/components/anchor/tab_bar/tab_component.html.erb +11 -0
  46. data/app/components/anchor/tab_bar/tab_component.rb +12 -0
  47. data/app/components/anchor/tab_bar_component.html.erb +10 -0
  48. data/app/components/anchor/tab_bar_component.rb +17 -0
  49. data/app/components/anchor/text_component.html.erb +8 -0
  50. data/app/components/anchor/text_component.rb +43 -0
  51. data/app/components/anchor/toast_component.html.erb +28 -0
  52. data/app/components/anchor/toast_component.rb +32 -0
  53. data/app/components/anchor/toast_controller.ts +21 -0
  54. data/app/helpers/anchor/fetch_or_fallback_helper.rb +20 -0
  55. data/app/helpers/anchor/view_helper.rb +35 -0
  56. data/lib/anchor/view_components/engine.rb +23 -0
  57. data/lib/anchor/view_components/version.rb +5 -0
  58. data/lib/anchor/view_components.rb +8 -0
  59. data/previews/anchor/action_menu_component_preview.rb +22 -0
  60. data/previews/anchor/badge_component_preview.rb +40 -0
  61. data/previews/anchor/banner_component_preview.rb +41 -0
  62. data/previews/anchor/banner_preview/with_banner.html.erb +11 -0
  63. data/previews/anchor/breadcrumbs_component_preview.rb +15 -0
  64. data/previews/anchor/button_component_preview.rb +81 -0
  65. data/previews/anchor/dialog_component_preview.rb +19 -0
  66. data/previews/anchor/dialog_preview/with_footer.html.erb +16 -0
  67. data/previews/anchor/icon_component_preview.rb +7 -0
  68. data/previews/anchor/loading_indicator_component_preview.rb +26 -0
  69. data/previews/anchor/panel_component_preview.rb +48 -0
  70. data/previews/anchor/tab_bar_component_preview.rb +15 -0
  71. data/previews/anchor/table_preview/default.html.erb +35 -0
  72. data/previews/anchor/text_component_preview.rb +76 -0
  73. data/previews/anchor/toast_component_preview.rb +34 -0
  74. metadata +156 -0
@@ -0,0 +1,11 @@
1
+ <%= render Anchor::PanelComponent.new(active: true) do |panel| %>
2
+ <% panel.with_header.with_content("Test Results") %>
3
+
4
+ <% panel.with_body do %>
5
+ <%= render Anchor::BannerComponent.new(variant: :critical) do %>
6
+ <%= tag.p "Additional testing is required.", class: "text-critical font-semibold" %>
7
+ <% end %>
8
+
9
+ <%= tag.p "Panel body", class: "mt-3" %>
10
+ <% end %>
11
+ <% end %>
@@ -0,0 +1,15 @@
1
+ module Anchor
2
+ class BreadcrumbsComponentPreview < ViewComponent::Preview
3
+ # rubocop:disable Layout/LineLength
4
+ # @param label text "A brief description of the purpose of the navigation, omitting the term ‘navigation’, as the screen reader will read both the role and the contents of the label. Defaults to ‘Breadcrumb’."
5
+ # @param number_of_breadcrumbs number
6
+ # rubocop:enable Layout/LineLength
7
+ def playground(label: "Accessible label", number_of_breadcrumbs: 3)
8
+ render(Anchor::BreadcrumbsComponent.new(label:)) do |c|
9
+ Array.new(number_of_breadcrumbs || 3) do |i|
10
+ c.with_item(href: "#").with_content("Breadcrumb #{i + 1}")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,81 @@
1
+ module Anchor
2
+ class ButtonComponentPreview < ViewComponent::Preview
3
+ # @param content text
4
+ # @param tag select {{ Anchor::ButtonComponent::TAG_OPTIONS }}
5
+ # @param type select {{ Anchor::ButtonComponent::TYPE_OPTIONS }}
6
+ # @param size [Symbol] select {{ Anchor::ButtonComponent::SIZE_OPTIONS }}
7
+ # @param variant select {{ Anchor::ButtonComponent::VARIANT_OPTIONS }}
8
+ def playground(
9
+ content: "Button",
10
+ tag: Anchor::ButtonComponent::TAG_DEFAULT,
11
+ type: Anchor::ButtonComponent::TYPE_DEFAULT,
12
+ size: Anchor::ButtonComponent::SIZE_DEFAULT,
13
+ variant: Anchor::ButtonComponent::VARIANT_DEFAULT
14
+ )
15
+ render(Anchor::ButtonComponent.new(
16
+ tag:,
17
+ type:,
18
+ size:,
19
+ variant:
20
+ ).with_content(content))
21
+ end
22
+
23
+ # @!group Sizes
24
+
25
+ def default
26
+ render(Anchor::ButtonComponent.new.with_content("Button"))
27
+ end
28
+
29
+ def small
30
+ render(Anchor::ButtonComponent.new(size: :small).with_content("Button"))
31
+ end
32
+
33
+ # @!endgroup
34
+
35
+ # @!group Variants
36
+
37
+ def basic
38
+ render(Anchor::ButtonComponent.new.with_content("Button"))
39
+ end
40
+
41
+ def primary
42
+ render(Anchor::ButtonComponent.new(variant: :primary)
43
+ .with_content("Button"))
44
+ end
45
+
46
+ def critical
47
+ render(Anchor::ButtonComponent.new(variant: :critical)
48
+ .with_content("Button"))
49
+ end
50
+
51
+ def text
52
+ render(Anchor::ButtonComponent.new(variant: :text)
53
+ .with_content("Button"))
54
+ end
55
+
56
+ # @!endgroup
57
+
58
+ # @!group With Icons
59
+
60
+ def starting_icon
61
+ render(Anchor::ButtonComponent.new) do |c|
62
+ c.with_starting_icon(icon: "nav-arrow-left")
63
+ "Button"
64
+ end
65
+ end
66
+
67
+ def ending_icon
68
+ render(Anchor::ButtonComponent.new) do |c|
69
+ c.with_ending_icon(icon: "nav-arrow-right")
70
+ "Button"
71
+ end
72
+ end
73
+
74
+ # @!endgroup
75
+
76
+ def link
77
+ render(Anchor::ButtonComponent.new(tag: :a, href: "#")
78
+ .with_content("Button"))
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,19 @@
1
+ module Anchor
2
+ class DialogComponentPreview < ViewComponent::Preview
3
+ # @param title text
4
+ # @param body_text textarea
5
+ def playground(
6
+ body_text: "Content",
7
+ title: "Dialog Title"
8
+ )
9
+ render Anchor::DialogComponent.new(title:) do |c|
10
+ c.with_show_button.with_content("Show Dialog")
11
+ c.with_body.with_content(body_text)
12
+ end
13
+ end
14
+
15
+ def with_footer
16
+ render_with_template(template: "anchor_ui/dialog_preview/with_footer")
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ <%= render Anchor::DialogComponent.new(
2
+ title: "Dialog Title",
3
+ ) do |dialog| %>
4
+ <% dialog.with_show_button.with_content("Show Dialog") %>
5
+
6
+ <% dialog.with_body do %>
7
+ <%= tag.p "Content" %>
8
+ <% end %>
9
+
10
+ <% dialog.with_footer do %>
11
+ <%= render Anchor::ButtonComponent.new(
12
+ data: { action: "dialog#close" }
13
+ ).with_content("Cancel") %>
14
+ <%= render Anchor::ButtonComponent.new(variant: :primary).with_content("Save") %>
15
+ <% end %>
16
+ <% end %>
@@ -0,0 +1,7 @@
1
+ module Anchor
2
+ class IconComponentPreview < ViewComponent::Preview
3
+ def default
4
+ render(Anchor::IconComponent.new(icon: "actions-check-circle-base"))
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,26 @@
1
+ module Anchor
2
+ class LoadingIndicatorComponentPreview < ViewComponent::Preview
3
+ # rubocop:disable Layout/LineLength
4
+ # @param variant [Symbol] select {{ Anchor::LoadingIndicatorComponent::VARIANT_OPTIONS }}
5
+ # rubocop:enable Layout/LineLength
6
+ def playground(
7
+ variant: Anchor::LoadingIndicatorComponent::VARIANT_DEFAULT
8
+ )
9
+ render Anchor::LoadingIndicatorComponent.new(variant:)
10
+ end
11
+
12
+ # @!group Variants
13
+ def sm
14
+ render Anchor::LoadingIndicatorComponent.new(variant: :sm)
15
+ end
16
+
17
+ def md
18
+ render Anchor::LoadingIndicatorComponent.new(variant: :md)
19
+ end
20
+
21
+ def lg
22
+ render Anchor::LoadingIndicatorComponent.new(variant: :lg)
23
+ end
24
+ # @!endgroup
25
+ end
26
+ end
@@ -0,0 +1,48 @@
1
+ module Anchor
2
+ class PanelComponentPreview < ViewComponent::Preview
3
+ def inactive
4
+ render Anchor::PanelComponent.new(active: false) do |component|
5
+ component.with_header.with_content("My Panel")
6
+ component.with_body.with_content("I'm hidden")
7
+ end
8
+ end
9
+
10
+ def active
11
+ render Anchor::PanelComponent.new(active: true) do |component|
12
+ component.with_header.with_content("My Panel")
13
+ component.with_body do
14
+ "The panel contents are displayed when it is active."
15
+ end
16
+ end
17
+ end
18
+
19
+ def with_footer
20
+ render Anchor::PanelComponent.new(active: true) do |component|
21
+ component.with_header.with_content("My Panel")
22
+ component.with_body.with_content("Panel with footer")
23
+ component
24
+ .with_footer
25
+ .with_primary_action(form: "example", label: "Save")
26
+ end
27
+ end
28
+
29
+ def with_footer_with_supporting_text
30
+ render Anchor::PanelComponent.new(active: true) do |component|
31
+ component.with_header.with_content("My Panel")
32
+
33
+ component
34
+ .with_body
35
+ .with_content("Panel with footer and supporting text")
36
+
37
+ component.with_footer do |footer|
38
+ footer.with_supporting_text.with_content("1 of 2")
39
+ footer.with_primary_action(form: "example", label: "Save")
40
+ end
41
+ end
42
+ end
43
+
44
+ def with_banner
45
+ render_with_template(template: "anchor_ui/banner_preview/with_banner")
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,15 @@
1
+ module Anchor
2
+ class TabBarComponentPreview < ViewComponent::Preview
3
+ # rubocop:disable Layout/LineLength
4
+ # @param label text "A brief description of the purpose of the navigation, omitting the term ‘navigation’, as the screen reader will read both the role and the contents of the label."
5
+ # @param number_of_tabs number
6
+ # rubocop:enable Layout/LineLength
7
+ def playground(label: "Accessible label", number_of_tabs: 3)
8
+ render(Anchor::TabBarComponent.new(label:)) do |c|
9
+ Array.new(number_of_tabs || 3) do |i|
10
+ c.with_tab(href: "#", active: i.zero?).with_content("Label")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,35 @@
1
+ <%= render Anchor::TableComponent.new(data:) do |table| %>
2
+ <% table.with_column(header: "Donor ID", data_key: :id) do %>
3
+ <%#= row[:id] %>
4
+ <%# foo %>
5
+ <% end %>
6
+
7
+ <%# table.with_column("Price", numeric: true) do |row| %>
8
+ <%#= row[:price] %>
9
+ <%# end %>
10
+
11
+ <% table.with_column(header: "Donor Name") do %>
12
+ :donor_name
13
+ <% end %>
14
+
15
+ <% table.with_column(header: "Donor Phone Number") do %>
16
+ :donor_phone_number
17
+ <% end %>
18
+
19
+ <% table.with_column(header: "Actions") do %>
20
+ <%= render Anchor::ActionMenuComponent.new do |menu| %>
21
+ <% menu.with_show_button do |button| %>
22
+ <% button.with_ending_icon(icon: "nav-arrow-down") %>
23
+ Actions
24
+ <% end %>
25
+
26
+ <% menu.with_item do %>
27
+ <%= link_to("Edit", "#") %>
28
+ <% end %>
29
+
30
+ <% menu.with_item do %>
31
+ <%= link_to("Delete", "#") %>
32
+ <% end %>
33
+ <% end %>
34
+ <% end %>
35
+ <% end %>
@@ -0,0 +1,76 @@
1
+ module Anchor
2
+ class TextComponentPreview < ViewComponent::Preview
3
+ TEXT = "The quick brown fox jumps over the lazy dog.".freeze
4
+
5
+ # rubocop:disable Layout/LineLength
6
+ # @param content text
7
+ # @param tag text
8
+ # @param variant [Symbol] select {{ Anchor::TextComponent::VARIANT_OPTIONS }}
9
+ # rubocop:enable Layout/LineLength
10
+ def playground(
11
+ content: TEXT,
12
+ tag: Anchor::TextComponent::TAG_DEFAULT,
13
+ variant: Anchor::TextComponent::VARIANT_DEFAULT
14
+ )
15
+ render Anchor::TextComponent.new(variant:, tag:)
16
+ .with_content(content)
17
+ end
18
+
19
+ # @!group Variants
20
+ def body_sm
21
+ render Anchor::TextComponent.new(variant: :body_sm, tag: :div)
22
+ .with_content(TEXT)
23
+ end
24
+
25
+ def body_base
26
+ render Anchor::TextComponent.new(variant: :body_base, tag: :div)
27
+ .with_content(TEXT)
28
+ end
29
+
30
+ def body_lg
31
+ render Anchor::TextComponent.new(variant: :body_lg, tag: :div)
32
+ .with_content(TEXT)
33
+ end
34
+
35
+ def subheading_sm
36
+ render Anchor::TextComponent.new(variant: :subheading_sm)
37
+ .with_content(TEXT)
38
+ end
39
+
40
+ def subheading_xs
41
+ render Anchor::TextComponent.new(variant: :subheading_xs)
42
+ .with_content(TEXT)
43
+ end
44
+
45
+ def heading_base
46
+ render Anchor::TextComponent.new(variant: :heading_base, tag: :h3)
47
+ .with_content(TEXT)
48
+ end
49
+
50
+ def heading_lg
51
+ render Anchor::TextComponent.new(variant: :heading_lg, tag: :h3)
52
+ .with_content(TEXT)
53
+ end
54
+
55
+ def heading_xl
56
+ render Anchor::TextComponent.new(variant: :heading_xl, tag: :h3)
57
+ .with_content(TEXT)
58
+ end
59
+
60
+ def heading_2xl
61
+ render Anchor::TextComponent.new(variant: :heading_2xl, tag: :h3)
62
+ .with_content(TEXT)
63
+ end
64
+
65
+ def heading_3xl
66
+ render Anchor::TextComponent.new(variant: :heading_3xl, tag: :h3)
67
+ .with_content(TEXT)
68
+ end
69
+
70
+ def heading_4xl
71
+ render Anchor::TextComponent.new(variant: :heading_4xl, tag: :h3)
72
+ .with_content(TEXT)
73
+ end
74
+ # @!endgroup
75
+ end
76
+ end
@@ -0,0 +1,34 @@
1
+ module Anchor
2
+ class ToastComponentPreview < ViewComponent::Preview
3
+ def variant_notice
4
+ render(Anchor::ToastComponent.new(variant: :notice).with_content(
5
+ "Questionnaire created"
6
+ ))
7
+ end
8
+
9
+ def variant_success
10
+ render(Anchor::ToastComponent.new(variant: :success).with_content(
11
+ "Questionnaire created"
12
+ ))
13
+ end
14
+
15
+ def variant_error
16
+ render(Anchor::ToastComponent.new(variant: :error).with_content(
17
+ "Questionnaire deleted"
18
+ ))
19
+ end
20
+
21
+ def variant_alert
22
+ render(Anchor::ToastComponent.new(variant: :alert).with_content(
23
+ "Questionnaire created"
24
+ ))
25
+ end
26
+
27
+ def with_icon
28
+ render(Anchor::ToastComponent.new) do |component|
29
+ component.with_icon(icon: "actions-check-circle-base")
30
+ "Confirmed"
31
+ end
32
+ end
33
+ end
34
+ end
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: anchor_view_components
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Buoy Software
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-07-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: inline_svg
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: view_component
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description:
56
+ email:
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - CHANGELOG.md
62
+ - LICENSE.txt
63
+ - README.md
64
+ - app/assets/builds/anchor-view-components.css
65
+ - app/assets/stylesheets/anchor-view-components.tailwind.css
66
+ - app/assets/stylesheets/components/button.css
67
+ - app/assets/stylesheets/components/toast.css
68
+ - app/components/anchor/action_menu_component.html.erb
69
+ - app/components/anchor/action_menu_component.rb
70
+ - app/components/anchor/action_menu_controller.ts
71
+ - app/components/anchor/anchor_view_components.ts
72
+ - app/components/anchor/autocomplete_component.en.yml
73
+ - app/components/anchor/autocomplete_component.html.erb
74
+ - app/components/anchor/autocomplete_component.rb
75
+ - app/components/anchor/autocomplete_controller.ts
76
+ - app/components/anchor/badge_component.html.erb
77
+ - app/components/anchor/badge_component.rb
78
+ - app/components/anchor/banner_component.html.erb
79
+ - app/components/anchor/banner_component.rb
80
+ - app/components/anchor/breadcrumbs/item_component.html.erb
81
+ - app/components/anchor/breadcrumbs/item_component.rb
82
+ - app/components/anchor/breadcrumbs_component.html.erb
83
+ - app/components/anchor/breadcrumbs_component.rb
84
+ - app/components/anchor/button_component.html.erb
85
+ - app/components/anchor/button_component.rb
86
+ - app/components/anchor/component.rb
87
+ - app/components/anchor/dialog_component.html.erb
88
+ - app/components/anchor/dialog_component.rb
89
+ - app/components/anchor/dialog_controller.ts
90
+ - app/components/anchor/icon_component.html.erb
91
+ - app/components/anchor/icon_component.rb
92
+ - app/components/anchor/loading_indicator_component.html.erb
93
+ - app/components/anchor/loading_indicator_component.rb
94
+ - app/components/anchor/panel/body_component.html.erb
95
+ - app/components/anchor/panel/body_component.rb
96
+ - app/components/anchor/panel/footer_component.html.erb
97
+ - app/components/anchor/panel/footer_component.rb
98
+ - app/components/anchor/panel/header_component.html.erb
99
+ - app/components/anchor/panel/header_component.rb
100
+ - app/components/anchor/panel_component.html.erb
101
+ - app/components/anchor/panel_component.rb
102
+ - app/components/anchor/prose_component.html.erb
103
+ - app/components/anchor/prose_component.rb
104
+ - app/components/anchor/tab_bar/tab_component.html.erb
105
+ - app/components/anchor/tab_bar/tab_component.rb
106
+ - app/components/anchor/tab_bar_component.html.erb
107
+ - app/components/anchor/tab_bar_component.rb
108
+ - app/components/anchor/text_component.html.erb
109
+ - app/components/anchor/text_component.rb
110
+ - app/components/anchor/toast_component.html.erb
111
+ - app/components/anchor/toast_component.rb
112
+ - app/components/anchor/toast_controller.ts
113
+ - app/helpers/anchor/fetch_or_fallback_helper.rb
114
+ - app/helpers/anchor/view_helper.rb
115
+ - lib/anchor/view_components.rb
116
+ - lib/anchor/view_components/engine.rb
117
+ - lib/anchor/view_components/version.rb
118
+ - previews/anchor/action_menu_component_preview.rb
119
+ - previews/anchor/badge_component_preview.rb
120
+ - previews/anchor/banner_component_preview.rb
121
+ - previews/anchor/banner_preview/with_banner.html.erb
122
+ - previews/anchor/breadcrumbs_component_preview.rb
123
+ - previews/anchor/button_component_preview.rb
124
+ - previews/anchor/dialog_component_preview.rb
125
+ - previews/anchor/dialog_preview/with_footer.html.erb
126
+ - previews/anchor/icon_component_preview.rb
127
+ - previews/anchor/loading_indicator_component_preview.rb
128
+ - previews/anchor/panel_component_preview.rb
129
+ - previews/anchor/tab_bar_component_preview.rb
130
+ - previews/anchor/table_preview/default.html.erb
131
+ - previews/anchor/text_component_preview.rb
132
+ - previews/anchor/toast_component_preview.rb
133
+ homepage: https://github.com/BuoySoftware/anchor_view_components
134
+ licenses:
135
+ - MIT
136
+ metadata: {}
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 3.0.6
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubygems_version: 3.4.17
153
+ signing_key:
154
+ specification_version: 4
155
+ summary: ViewComponents for Buoy’s design system, Anchor
156
+ test_files: []