protos 0.4.2 → 0.5.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.
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