protos 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e18641b7b93b0f94886468a48ed3c3263bb5edd72dbaeabfc03e346598f0d409
4
- data.tar.gz: 207f45d2b30525c4ed65f83943c2c4eb0617a72dacabc7238a9f3cd4309ad96d
3
+ metadata.gz: 875e55f36d03988e78d0e6834e840094b089ee1e755c003b6483a07a503bfbf4
4
+ data.tar.gz: 6b0bdbfc22451928316c73dd931cdeebe3e47cf20c596b3d5318b3145f51b5bc
5
5
  SHA512:
6
- metadata.gz: 844cc78e0e2972c8e726a46af3ed08e420c3581d93c79f04b266019f10a38f2441b4ec1a76ec787b16592698cc80c742d1d87d8cc793ac0259bd5baa0acbc893
7
- data.tar.gz: 7b0c9022724175b60e5d1f53efb75237f944889e07fee18c8ff99165b1ae8b87843e9d0fb7ad3f8358788af565938e240141d386f29f31ac372efb71a95c40b0
6
+ metadata.gz: 62c59568bcf8631d3d9c40de57ddb6b1df2f92183c0e9aa92e8be6b0da7d6e325e440a869eda3f1fd0cb93f651f9db8598a9914cc89b6454a1cda7f5a04517fc
7
+ data.tar.gz: 2ef45fba8e402133e4345fa91186713dc864e11d737bf3200548340cf7ed3d115e08b406b6d5c98eab8d568d4178b37d1b5e43fa13569dcc873fda6a8f338be9
data/CHANGELOG.md CHANGED
@@ -1,19 +1,28 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2024-03-01
3
+ ## [0.5.0] - 2024-08-27
4
4
 
5
- - Initial release
5
+ - Fixes all accessibility violations according to Axe Core
6
+ - Reduces responsibility of Tabs to only be a tablist, no tab panels
7
+ - Fixes passing ID to popovers, dropdowns, drawers, etc to not override the
8
+ input ID
9
+ - Changes trigger on popover to be a button instead of a div
6
10
 
7
- ## [0.2.0] - 2024-03-06
11
+ ## [0.4.3] - 2024-08-14
8
12
 
9
- - Chose to move away from daisyUI dropdown defaults as they have problems
10
- displaying properly in too many situations
11
- - Opted for using a protos-stimulus controller that uses tippy.js
13
+ - Removes unneeded auto-loading in Rails which fixes collisions with `protos-markdown`
14
+ - Adds fixes for handling form submissions within modals with `protos-stimulus`
15
+ v0.0.3
16
+ - Adds ability to disable margin on p tags with `Protos::Typography`
12
17
 
13
- ## [0.3.0] - 2024-04-06
18
+ ## [0.4.2] - 2024-04-30
14
19
 
15
- - Updates to phlex v0.10 by changing all `template` methods to `view_template`
16
- - Improvements to README
20
+ - Adds ability to pass arrays of tokens to themes
21
+ - Removes unnecessary calls to `tokens`, preferring arrays of strings for
22
+ performance
23
+ - Improvements to performance with constant hash lookups and early returns on
24
+ `mix`
25
+ - Adds steps component
17
26
 
18
27
  ## [0.4.0] - 2024-04-09
19
28
 
@@ -21,11 +30,17 @@
21
30
  - Apparently `render` is called differently within ERB
22
31
  - Suggested to change all calls to immediately render, would improve ergonomics
23
32
 
24
- ## [0.4.2] - 2024-04-30
33
+ ## [0.3.0] - 2024-04-06
25
34
 
26
- - Adds ability to pass arrays of tokens to themes
27
- - Removes unnecessary calls to `tokens`, preferring arrays of strings for
28
- performance
29
- - Improvements to performance with constant hash lookups and early returns on
30
- `mix`
31
- - Adds steps component
35
+ - Updates to phlex v0.10 by changing all `template` methods to `view_template`
36
+ - Improvements to README
37
+
38
+ ## [0.2.0] - 2024-03-06
39
+
40
+ - Chose to move away from daisyUI dropdown defaults as they have problems
41
+ displaying properly in too many situations
42
+ - Opted for using a protos-stimulus controller that uses tippy.js
43
+
44
+ ## [0.1.0] - 2024-03-01
45
+
46
+ - Initial release
@@ -5,16 +5,16 @@ module Protos
5
5
  class Item < Component
6
6
  # DOCS: An accorion is just a collapse with radio buttons.
7
7
 
8
- option :id, type: Types::Coercible::String
8
+ option :input_id, type: Types::String | Types::Integer
9
9
 
10
10
  def view_template(&block)
11
11
  li(**attrs) do
12
- render Collapse.new(theme: collapse_theme) do
13
- # form: "" prevents the radio button from being submitted if its
14
- # within a form
15
- input(type: :radio, name: id, form: "", autocomplete: :off)
16
- yield if block
17
- end
12
+ render Collapse.new(
13
+ theme: collapse_theme,
14
+ input_id: @input_id.to_s,
15
+ input_type: :radio,
16
+ &block
17
+ )
18
18
  end
19
19
  end
20
20
 
@@ -7,20 +7,30 @@ module Protos
7
7
  # to be open at the same time, use the collapse component.
8
8
  # https://daisyui.com/components/accordion/
9
9
 
10
- option :id, default: -> { "collapse-#{SecureRandom.hex(4)}" }
11
-
12
10
  def view_template(&)
13
11
  ul(**attrs, &)
14
12
  end
15
13
 
16
- def item(*, **, &) = render Item.new(*, id:, **, &)
14
+ def item(*, input_id: nil, **, &)
15
+ self.current_input_id = input_id
16
+
17
+ render Item.new(*, input_id: current_input_id, **, &)
18
+ end
17
19
 
18
20
  def content(...) = render Collapse::Content.new(...)
19
21
 
20
- def title(*, **, &) = render Collapse::Title.new(*, id:, **, &)
22
+ def title(*, **, &)
23
+ render Collapse::Title.new(*, input_id: current_input_id, **, &)
24
+ end
21
25
 
22
26
  private
23
27
 
28
+ attr_reader :current_input_id
29
+
30
+ def current_input_id=(value)
31
+ @current_input_id = value || "collapse-#{SecureRandom.hex(4)}"
32
+ end
33
+
24
34
  def theme
25
35
  {
26
36
  container: "join join-vertical"
@@ -11,6 +11,12 @@ module Protos
11
11
 
12
12
  private
13
13
 
14
+ def default_attrs
15
+ {
16
+ aria_label: "alert-actions"
17
+ }
18
+ end
19
+
14
20
  def theme
15
21
  {
16
22
  container: "flex gap-xs items-center"
@@ -15,6 +15,12 @@ module Protos
15
15
 
16
16
  private
17
17
 
18
+ def default_attrs
19
+ {
20
+ aria_label: "breadcrumbs"
21
+ }
22
+ end
23
+
18
24
  def theme
19
25
  {
20
26
  container: "breadcrumbs"
@@ -5,14 +5,15 @@ module Protos
5
5
  class Title < Component
6
6
  # DOCS: The title of a collapse. This is the content that is always
7
7
  # visible and is used to toggle the collapse.
8
- option :id,
9
- type: Types::Coercible::String,
8
+
9
+ option :input_id,
10
+ type: Types::String | Types::Integer | Types::Nil,
10
11
  reader: false,
11
- default: -> { "" }
12
+ default: -> { }
12
13
 
13
14
  def view_template(&)
14
- if @id.size.positive?
15
- label(for: @id, **attrs, &)
15
+ if @input_id
16
+ label(for: @input_id.to_s, **attrs, &)
16
17
  else
17
18
  div(**attrs, &)
18
19
  end
@@ -6,19 +6,30 @@ module Protos
6
6
  # is visible at all times, and the content is only visible when expanded.
7
7
  # https://daisyui.com/components/collapse/
8
8
 
9
- option :checkbox, default: -> { false }, type: Types::Bool, reader: false
10
- option :id,
9
+ option :input_type, default: -> { :checkbox }, reader: false
10
+ option :input_id,
11
+ reader: false,
11
12
  default: -> { "collapse-#{SecureRandom.hex(4)}" },
12
13
  type: Types::String
13
14
 
14
15
  def view_template
15
16
  div(**attrs) do
16
- input(type: "checkbox", id:, autocomplete: :off) if @checkbox
17
+ if @input_type
18
+ input(
19
+ type: @input_type,
20
+ id: @input_id,
21
+ name: @input_id,
22
+ autocomplete: :off,
23
+ # form: "" prevents the radio button from being submitted if its
24
+ # within a form
25
+ form: ""
26
+ )
27
+ end
17
28
  yield if block_given?
18
29
  end
19
30
  end
20
31
 
21
- def title(*, **, &) = render Title.new(*, id:, **, &)
32
+ def title(*, **, &) = render Title.new(*, input_id: @input_id, **, &)
22
33
 
23
34
  def content(...) = render Content.new(...)
24
35
 
@@ -12,6 +12,14 @@ module Protos
12
12
  ul(class: css[:list], &block)
13
13
  end
14
14
  end
15
+
16
+ private
17
+
18
+ def default_attrs
19
+ {
20
+ data: { "protos--command-target": "group" }
21
+ }
22
+ end
15
23
  end
16
24
  end
17
25
  end
@@ -12,12 +12,15 @@ module Protos
12
12
  }
13
13
 
14
14
  def view_template(&block)
15
- div(**attrs) do
15
+ li(**attrs) do
16
16
  label(class: css[:label]) do
17
17
  div(class: css[:icon], &block) if block
18
18
  input(
19
19
  type: :text,
20
- data: { action: "protos--command#filter" },
20
+ data: {
21
+ action: "protos--command#filter",
22
+ "protos--command-target": "input"
23
+ },
21
24
  class: css[:input],
22
25
  placeholder:,
23
26
  autocomplete: :off
@@ -13,7 +13,10 @@ module Protos
13
13
 
14
14
  def default_attrs
15
15
  {
16
- data: { "protos--command-target": "item" }
16
+ data: {
17
+ "protos--command-target": "item",
18
+ action: "turbo:submit-end->protos--modal#handleFormSubmit"
19
+ }
17
20
  }
18
21
  end
19
22
  end
@@ -7,7 +7,7 @@ module Protos
7
7
  # inside a Protos::Command::Group component.
8
8
 
9
9
  def view_template(&)
10
- h2(**attrs, &)
10
+ li { h2(**attrs, &) }
11
11
  end
12
12
 
13
13
  private
@@ -10,21 +10,21 @@ module Protos
10
10
  div(**attrs, &)
11
11
  end
12
12
 
13
- def input(...) = render Input.new(...)
13
+ def input(...) = render Command::Input.new(...)
14
14
 
15
- def list(...) = render List.new(...)
15
+ def list(...) = render Command::List.new(...)
16
16
 
17
- def trigger(...) = render Trigger.new(...)
17
+ def trigger(...) = render Command::Trigger.new(...)
18
18
 
19
- def dialog(...) = render Dialog.new(...)
19
+ def dialog(...) = render Command::Dialog.new(...)
20
20
 
21
- def title(...) = render Title.new(...)
21
+ def title(...) = render Command::Title.new(...)
22
22
 
23
- def group(...) = render Group.new(...)
23
+ def group(...) = render Command::Group.new(...)
24
24
 
25
- def item(...) = render Item.new(...)
25
+ def item(...) = render Command::Item.new(...)
26
26
 
27
- def empty(...) = render Empty.new(...)
27
+ def empty(...) = render Command::Empty.new(...)
28
28
 
29
29
  private
30
30
 
@@ -6,11 +6,15 @@ module Protos
6
6
  # DOCS: The content that will be shown when you open the drawer using the
7
7
  # trigger. This would be hidden until triggered.
8
8
 
9
- option :id, type: Types::Coercible::String
9
+ option :input_id, reader: false, type: Types::String
10
10
 
11
11
  def view_template
12
12
  aside(**attrs) do
13
- label(for: id, aria_label: "close sidebar", class: css[:toggle])
13
+ label(
14
+ for: @input_id,
15
+ aria_label: "close sidebar",
16
+ class: css[:toggle]
17
+ )
14
18
  yield if block_given?
15
19
  end
16
20
  end
@@ -6,10 +6,10 @@ module Protos
6
6
  # DOCS: The trigger for a drawer. When this is clicked the side will open
7
7
  # and overlap the main content with a darker overlay.
8
8
 
9
- option :id, type: Types::Coercible::String
9
+ option :input_id, reader: false, type: Types::String
10
10
 
11
11
  def view_template(&)
12
- label(for: id, **attrs, &)
12
+ label(for: @input_id, **attrs, &)
13
13
  end
14
14
 
15
15
  private
data/lib/protos/drawer.rb CHANGED
@@ -7,20 +7,29 @@ module Protos
7
7
  # trigger is clicked.
8
8
  # https://daisyui.com/components/drawer/
9
9
 
10
- option :id, type: Types::Coercible::String
10
+ option :id,
11
+ reader: false,
12
+ type: Types::Coercible::String,
13
+ default: -> { "drawer-#{SecureRandom.hex(4)}" }
11
14
 
12
15
  def view_template
13
16
  div(**attrs) do
14
- input(id:, type: :checkbox, class: css[:toggle], autocomplete: :off)
17
+ input(
18
+ id: @id,
19
+ type: :checkbox,
20
+ class: css[:toggle],
21
+ autocomplete: :off,
22
+ form: ""
23
+ )
15
24
  yield if block_given?
16
25
  end
17
26
  end
18
27
 
19
28
  def content(...) = render Content.new(...)
20
29
 
21
- def side(*, **, &) = render Side.new(*, id:, **, &)
30
+ def side(*, **, &) = render Side.new(*, input_id: @id, **, &)
22
31
 
23
- def trigger(*, **, &) = render Trigger.new(*, id:, **, &)
32
+ def trigger(*, **, &) = render Trigger.new(*, input_id: @id, **, &)
24
33
 
25
34
  private
26
35
 
data/lib/protos/engine.rb CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  module Protos
4
4
  class Engine < ::Rails::Engine
5
- # DOCS: This is the engine for the Protos gem. It allows autoloading the lib
6
- # when used inside a Rails app.
7
-
8
- config.autoload_paths += Dir["#{config.root}/lib/"]
5
+ # DOCS: This is the engine for the Protos gem. It allows autoloading the
6
+ # lib when used inside a Rails app.
9
7
  end
10
8
  end
@@ -7,7 +7,7 @@ module Protos
7
7
  # or click on to show the popover.
8
8
 
9
9
  def view_template(&)
10
- div(**attrs, &)
10
+ button(**attrs, &)
11
11
  end
12
12
 
13
13
  private
@@ -15,7 +15,8 @@ module Protos
15
15
  def default_attrs
16
16
  {
17
17
  data: { "protos--popover-target": "trigger" },
18
- tabindex: 0
18
+ tabindex: 0,
19
+ type: :button
19
20
  }
20
21
  end
21
22
  end
data/lib/protos/swap.rb CHANGED
@@ -8,7 +8,13 @@ module Protos
8
8
 
9
9
  def view_template
10
10
  label(**attrs) do
11
- input(type: :checkbox, class: css[:input], autocomplete: :off)
11
+ input(
12
+ type: :checkbox,
13
+ class: css[:input],
14
+ autocomplete: :off,
15
+ form: "",
16
+ aria_label: "swap"
17
+ )
12
18
  yield if block_given?
13
19
  end
14
20
  end
@@ -5,35 +5,24 @@ module Protos
5
5
  class Tab < Component
6
6
  # DOCS: A single tab in a tabs component
7
7
 
8
- option :id
9
- option :label
10
8
  option :active, default: -> { false }
11
9
  option :disabled, default: -> { false }
12
10
 
13
11
  def view_template(&)
14
- input(
15
- type: :radio,
16
- class: css[:input],
17
- name: id,
18
- role: :tab,
19
- aria_label: label,
20
- autocomplete: :off
21
- )
22
- div(**attrs, &)
12
+ button(**attrs, disabled:, &)
23
13
  end
24
14
 
25
15
  private
26
16
 
27
17
  def default_attrs
28
18
  {
29
- role: :tabpanel
19
+ role: :tab
30
20
  }
31
21
  end
32
22
 
33
23
  def theme
34
24
  {
35
- container: "tab-content",
36
- input: tokens(
25
+ container: tokens(
37
26
  "tab",
38
27
  disabled: "tab-disabled",
39
28
  active: "tab-active"
@@ -8,6 +8,7 @@ module Protos
8
8
  def view_template(&block)
9
9
  form(method: :dialog, class: css[:form]) do
10
10
  button(
11
+ aria_label: "close",
11
12
  autofocus: true,
12
13
  formmethod: :dialog,
13
14
  formnovalidate: true,
@@ -5,6 +5,8 @@ module Protos
5
5
  class Paragraph < Component
6
6
  # DOCS: A paragraph of text
7
7
 
8
+ option :margin, default: -> { true }
9
+
8
10
  def view_template(&)
9
11
  p(**attrs, &)
10
12
  end
@@ -13,9 +15,9 @@ module Protos
13
15
 
14
16
  def theme
15
17
  {
16
- container: %w(
17
- leading-relaxed
18
- [&:not(:first-child)]:mt-sm
18
+ container: tokens(
19
+ "leading-relaxed",
20
+ margin: "[&:not(:first-child)]:mt-sm"
19
21
  )
20
22
  }
21
23
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Protos
4
- VERSION = "0.4.2"
4
+ VERSION = "0.5.0"
5
5
  end
data/lib/protos.rb CHANGED
@@ -8,128 +8,126 @@ require "tailwind_merge"
8
8
 
9
9
  module Protos
10
10
  class Error < StandardError; end
11
-
12
- if defined?(Rails)
13
- require_relative "protos/engine"
14
- else
15
- require_relative "protos/version"
16
- require_relative "protos/types"
17
- require_relative "protos/token_list"
18
- require_relative "protos/component"
19
- require_relative "protos/theme"
20
- require_relative "protos/attributes"
21
-
22
- # Components
23
- require_relative "protos/accordion"
24
- require_relative "protos/accordion/item"
25
-
26
- require_relative "protos/alert"
27
- require_relative "protos/alert/actions"
28
- require_relative "protos/alert/icon"
29
-
30
- require_relative "protos/avatar"
31
-
32
- require_relative "protos/breadcrumbs"
33
- require_relative "protos/breadcrumbs/crumb"
34
-
35
- require_relative "protos/card"
36
- require_relative "protos/card/body"
37
- require_relative "protos/card/title"
38
- require_relative "protos/card/actions"
39
- require_relative "protos/card/image"
40
-
41
- require_relative "protos/carousel"
42
- require_relative "protos/carousel/item"
43
- require_relative "protos/carousel/actions"
44
-
45
- require_relative "protos/chat_bubble"
46
- require_relative "protos/chat_bubble/content"
47
- require_relative "protos/chat_bubble/image"
48
- require_relative "protos/chat_bubble/header"
49
- require_relative "protos/chat_bubble/footer"
50
-
51
- require_relative "protos/collapse"
52
- require_relative "protos/collapse/title"
53
- require_relative "protos/collapse/content"
54
-
55
- require_relative "protos/command"
56
- require_relative "protos/command/input"
57
- require_relative "protos/command/dialog"
58
- require_relative "protos/command/group"
59
- require_relative "protos/command/list"
60
- require_relative "protos/command/trigger"
61
- require_relative "protos/command/title"
62
- require_relative "protos/command/item"
63
- require_relative "protos/command/empty"
64
-
65
- require_relative "protos/drawer"
66
- require_relative "protos/drawer/side"
67
- require_relative "protos/drawer/trigger"
68
- require_relative "protos/drawer/content"
69
-
70
- require_relative "protos/hero"
71
- require_relative "protos/hero/content"
72
- require_relative "protos/hero/overlay"
73
-
74
- require_relative "protos/list"
75
- require_relative "protos/list/item"
76
-
77
- require_relative "protos/modal"
78
- require_relative "protos/modal/close_button"
79
- require_relative "protos/modal/dialog"
80
- require_relative "protos/modal/trigger"
81
-
82
- require_relative "protos/popover"
83
- require_relative "protos/popover/trigger"
84
- require_relative "protos/popover/content"
85
-
86
- require_relative "protos/stats"
87
- require_relative "protos/stats/actions"
88
- require_relative "protos/stats/description"
89
- require_relative "protos/stats/figure"
90
- require_relative "protos/stats/stat"
91
- require_relative "protos/stats/title"
92
- require_relative "protos/stats/value"
93
-
94
- require_relative "protos/steps"
95
- require_relative "protos/steps/step"
96
-
97
- require_relative "protos/swap"
98
- require_relative "protos/swap/on"
99
- require_relative "protos/swap/off"
100
-
101
- require_relative "protos/tabs"
102
- require_relative "protos/tabs/tab"
103
-
104
- require_relative "protos/table"
105
- require_relative "protos/table/caption"
106
- require_relative "protos/table/header"
107
- require_relative "protos/table/head"
108
- require_relative "protos/table/body"
109
- require_relative "protos/table/footer"
110
- require_relative "protos/table/row"
111
- require_relative "protos/table/cell"
112
-
113
- require_relative "protos/toast"
114
- require_relative "protos/toast/close_button"
115
-
116
- require_relative "protos/timeline"
117
- require_relative "protos/timeline/item"
118
- require_relative "protos/timeline/left"
119
- require_relative "protos/timeline/center"
120
- require_relative "protos/timeline/right"
121
-
122
- require_relative "protos/typography"
123
- require_relative "protos/typography/heading"
124
- require_relative "protos/typography/paragraph"
125
- require_relative "protos/typography/inline_link"
126
-
127
- # Dependent
128
- require_relative "protos/dropdown"
129
- require_relative "protos/dropdown/item"
130
- require_relative "protos/dropdown/menu"
131
- require_relative "protos/dropdown/trigger"
132
-
133
- require_relative "protos/combobox"
134
- end
135
11
  end
12
+
13
+ require_relative "protos/version"
14
+ require_relative "protos/types"
15
+ require_relative "protos/token_list"
16
+ require_relative "protos/component"
17
+ require_relative "protos/theme"
18
+ require_relative "protos/attributes"
19
+
20
+ # Components
21
+ require_relative "protos/accordion"
22
+ require_relative "protos/accordion/item"
23
+
24
+ require_relative "protos/alert"
25
+ require_relative "protos/alert/actions"
26
+ require_relative "protos/alert/icon"
27
+
28
+ require_relative "protos/avatar"
29
+
30
+ require_relative "protos/breadcrumbs"
31
+ require_relative "protos/breadcrumbs/crumb"
32
+
33
+ require_relative "protos/card"
34
+ require_relative "protos/card/body"
35
+ require_relative "protos/card/title"
36
+ require_relative "protos/card/actions"
37
+ require_relative "protos/card/image"
38
+
39
+ require_relative "protos/carousel"
40
+ require_relative "protos/carousel/item"
41
+ require_relative "protos/carousel/actions"
42
+
43
+ require_relative "protos/chat_bubble"
44
+ require_relative "protos/chat_bubble/content"
45
+ require_relative "protos/chat_bubble/image"
46
+ require_relative "protos/chat_bubble/header"
47
+ require_relative "protos/chat_bubble/footer"
48
+
49
+ require_relative "protos/collapse"
50
+ require_relative "protos/collapse/title"
51
+ require_relative "protos/collapse/content"
52
+
53
+ require_relative "protos/command"
54
+ require_relative "protos/command/input"
55
+ require_relative "protos/command/dialog"
56
+ require_relative "protos/command/group"
57
+ require_relative "protos/command/list"
58
+ require_relative "protos/command/trigger"
59
+ require_relative "protos/command/title"
60
+ require_relative "protos/command/item"
61
+ require_relative "protos/command/empty"
62
+
63
+ require_relative "protos/drawer"
64
+ require_relative "protos/drawer/side"
65
+ require_relative "protos/drawer/trigger"
66
+ require_relative "protos/drawer/content"
67
+
68
+ require_relative "protos/hero"
69
+ require_relative "protos/hero/content"
70
+ require_relative "protos/hero/overlay"
71
+
72
+ require_relative "protos/list"
73
+ require_relative "protos/list/item"
74
+
75
+ require_relative "protos/modal"
76
+ require_relative "protos/modal/close_button"
77
+ require_relative "protos/modal/dialog"
78
+ require_relative "protos/modal/trigger"
79
+
80
+ require_relative "protos/popover"
81
+ require_relative "protos/popover/trigger"
82
+ require_relative "protos/popover/content"
83
+
84
+ require_relative "protos/stats"
85
+ require_relative "protos/stats/actions"
86
+ require_relative "protos/stats/description"
87
+ require_relative "protos/stats/figure"
88
+ require_relative "protos/stats/stat"
89
+ require_relative "protos/stats/title"
90
+ require_relative "protos/stats/value"
91
+
92
+ require_relative "protos/steps"
93
+ require_relative "protos/steps/step"
94
+
95
+ require_relative "protos/swap"
96
+ require_relative "protos/swap/on"
97
+ require_relative "protos/swap/off"
98
+
99
+ require_relative "protos/tabs"
100
+ require_relative "protos/tabs/tab"
101
+
102
+ require_relative "protos/table"
103
+ require_relative "protos/table/caption"
104
+ require_relative "protos/table/header"
105
+ require_relative "protos/table/head"
106
+ require_relative "protos/table/body"
107
+ require_relative "protos/table/footer"
108
+ require_relative "protos/table/row"
109
+ require_relative "protos/table/cell"
110
+
111
+ require_relative "protos/toast"
112
+ require_relative "protos/toast/close_button"
113
+
114
+ require_relative "protos/timeline"
115
+ require_relative "protos/timeline/item"
116
+ require_relative "protos/timeline/left"
117
+ require_relative "protos/timeline/center"
118
+ require_relative "protos/timeline/right"
119
+
120
+ require_relative "protos/typography"
121
+ require_relative "protos/typography/heading"
122
+ require_relative "protos/typography/paragraph"
123
+ require_relative "protos/typography/inline_link"
124
+
125
+ # Dependent
126
+ require_relative "protos/dropdown"
127
+ require_relative "protos/dropdown/item"
128
+ require_relative "protos/dropdown/menu"
129
+ require_relative "protos/dropdown/trigger"
130
+
131
+ require_relative "protos/combobox"
132
+
133
+ require_relative "protos/engine" if defined?(Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nolan J Tait
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-30 00:00:00.000000000 Z
11
+ date: 2024-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-core
@@ -220,7 +220,7 @@ requirements:
220
220
  - tailwindcss
221
221
  - daisyui
222
222
  - protos-stimulus
223
- rubygems_version: 3.5.7
223
+ rubygems_version: 3.5.18
224
224
  signing_key:
225
225
  specification_version: 4
226
226
  summary: A UI component library built with phlex and daisyui