protos 0.6.0 → 0.7.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -1
  3. data/README.md +34 -22
  4. data/examples/list.rb +2 -2
  5. data/examples/navbar.rb +3 -8
  6. data/lib/protos/accordion/item.rb +4 -2
  7. data/lib/protos/accordion.rb +10 -11
  8. data/lib/protos/alert.rb +3 -0
  9. data/lib/protos/avatar.rb +10 -10
  10. data/lib/protos/badge.rb +62 -0
  11. data/lib/protos/breadcrumbs.rb +2 -0
  12. data/lib/protos/card.rb +12 -7
  13. data/lib/protos/carousel.rb +13 -10
  14. data/lib/protos/chat_bubble/content.rb +12 -12
  15. data/lib/protos/chat_bubble.rb +11 -6
  16. data/lib/protos/collapse/title.rb +3 -3
  17. data/lib/protos/collapse.rb +10 -7
  18. data/lib/protos/combobox.rb +3 -3
  19. data/lib/protos/command/input.rb +4 -4
  20. data/lib/protos/command.rb +16 -2
  21. data/lib/protos/component.rb +1 -1
  22. data/lib/protos/drawer.rb +7 -3
  23. data/lib/protos/dropdown.rb +10 -6
  24. data/lib/protos/hero.rb +3 -0
  25. data/lib/protos/list.rb +2 -0
  26. data/lib/protos/modal/close_button.rb +8 -0
  27. data/lib/protos/modal/dialog.rb +4 -6
  28. data/lib/protos/modal.rb +6 -1
  29. data/lib/protos/popover.rb +24 -21
  30. data/lib/protos/stats.rb +7 -0
  31. data/lib/protos/steps.rb +5 -3
  32. data/lib/protos/swap.rb +3 -0
  33. data/lib/protos/table/caption.rb +3 -3
  34. data/lib/protos/table/cell.rb +3 -3
  35. data/lib/protos/table/head.rb +3 -3
  36. data/lib/protos/table.rb +21 -13
  37. data/lib/protos/tabs/tab.rb +4 -4
  38. data/lib/protos/tabs.rb +18 -16
  39. data/lib/protos/theme.rb +8 -7
  40. data/lib/protos/timeline.rb +8 -3
  41. data/lib/protos/toast.rb +5 -3
  42. data/lib/protos/typography/paragraph.rb +3 -3
  43. data/lib/protos/typography.rb +4 -0
  44. data/lib/protos/version.rb +1 -1
  45. data/lib/protos.rb +37 -121
  46. metadata +4 -7
  47. data/lib/protos/command/dialog.rb +0 -40
@@ -10,14 +10,18 @@ module Protos
10
10
  # rather than pure CSS for accessibility. The layout of pure CSS was too
11
11
  # tricky to get right and we felt the dependency tradeoff was worthwhile.
12
12
 
13
+ autoload :Item, "protos/dropdown/item"
14
+ autoload :Menu, "protos/dropdown/menu"
15
+ autoload :Trigger, "protos/dropdown/trigger"
16
+
13
17
  option :position,
14
- type: Popover::Positions,
15
- default: -> { :bottom },
16
- reader: false
18
+ type: Popover::Positions,
19
+ default: -> { :bottom },
20
+ reader: false
17
21
  option :trigger,
18
- default: -> { :click },
19
- reader: false,
20
- type: Popover::Triggers | Types::Array.of(Popover::Triggers)
22
+ default: -> { :click },
23
+ reader: false,
24
+ type: Popover::Triggers | Types::Array.of(Popover::Triggers)
21
25
 
22
26
  def item(...) = render Item.new(...)
23
27
 
data/lib/protos/hero.rb CHANGED
@@ -6,6 +6,9 @@ module Protos
6
6
  # optionally layout an image for a responsive layout.
7
7
  # https://daisyui.com/components/hero/
8
8
 
9
+ autoload :Content, "protos/hero/content"
10
+ autoload :Overlay, "protos/hero/overlay"
11
+
9
12
  def view_template(&)
10
13
  div(**attrs, &)
11
14
  end
data/lib/protos/list.rb CHANGED
@@ -5,6 +5,8 @@ module Protos
5
5
  # DOCS: A list of items that are joined together for easier styling with
6
6
  # borders, border radius, etc.
7
7
 
8
+ autoload :Item, "protos/list/item"
9
+
8
10
  option :ordered, Types::Bool, default: -> { false }, reader: false
9
11
 
10
12
  def view_template(&)
@@ -10,6 +10,14 @@ module Protos
10
10
  button(**attrs, &block)
11
11
  end
12
12
  end
13
+
14
+ private
15
+
16
+ def default_attrs
17
+ {
18
+ data: { action: "protos--modal#close" }
19
+ }
20
+ end
13
21
  end
14
22
  end
15
23
  end
@@ -14,12 +14,10 @@ module Protos
14
14
 
15
15
  private
16
16
 
17
- def attrs
18
- @attrs ||= build_attrs(
19
- {
20
- data: { "protos--modal-target": "modal" }
21
- }
22
- )
17
+ def default_attrs
18
+ {
19
+ data: { "protos--modal-target": "dialog" }
20
+ }
23
21
  end
24
22
 
25
23
  def theme
data/lib/protos/modal.rb CHANGED
@@ -5,6 +5,10 @@ module Protos
5
5
  # DOCS: A modal component that can be triggered by a button or a link and
6
6
  # will open a fullscreen modal, usually with a close button.
7
7
 
8
+ autoload :CloseButton, "protos/modal/close_button"
9
+ autoload :Dialog, "protos/modal/dialog"
10
+ autoload :Trigger, "protos/modal/trigger"
11
+
8
12
  def view_template(&)
9
13
  div(**attrs, class: css[:container], &)
10
14
  end
@@ -20,7 +24,8 @@ module Protos
20
24
  def default_attrs
21
25
  {
22
26
  data: {
23
- controller: "protos--modal"
27
+ controller: "protos--modal",
28
+ action: "click->protos--modal#backdropClose"
24
29
  }
25
30
  }
26
31
  end
@@ -12,6 +12,9 @@ module Protos
12
12
  # Tippy.js options can be passed in via the `options` attribute or, more
13
13
  # conveniently by the typed options listed below.
14
14
 
15
+ autoload :Trigger, "protos/popover/trigger"
16
+ autoload :Content, "protos/popover/content"
17
+
15
18
  Positions = Types::Coercible::Symbol.enum(
16
19
  :top,
17
20
  :top_start,
@@ -52,33 +55,33 @@ module Protos
52
55
  )
53
56
 
54
57
  option :position,
55
- type: Positions,
56
- default: -> { :top },
57
- reader: false
58
+ type: Positions,
59
+ default: -> { :top },
60
+ reader: false
58
61
  option :animation,
59
- type: Animations,
60
- default: -> { :fade },
61
- reader: false
62
+ type: Animations,
63
+ default: -> { :fade },
64
+ reader: false
62
65
  option :duration,
63
- type: Types::Integer | Types::Array.of(Types::Integer),
64
- default: -> { [300, 250] },
65
- reader: false
66
+ type: Types::Integer | Types::Array.of(Types::Integer),
67
+ default: -> { [300, 250] },
68
+ reader: false
66
69
  option :hide_on_click,
67
- type: Types::Bool | Types.Value(:toggle),
68
- default: -> { true },
69
- reader: false
70
+ type: Types::Bool | Types.Value(:toggle),
71
+ default: -> { true },
72
+ reader: false
70
73
  option :z_index,
71
- type: Types::Integer,
72
- default: -> { 9999 },
73
- reader: false
74
+ type: Types::Integer,
75
+ default: -> { 9999 },
76
+ reader: false
74
77
  option :options,
75
- default: -> { {} },
76
- reader: false,
77
- type: Types::Hash
78
+ default: -> { {} },
79
+ reader: false,
80
+ type: Types::Hash
78
81
  option :trigger,
79
- default: -> { %i[mouseenter focus] },
80
- reader: false,
81
- type: Triggers | Types::Array.of(Triggers)
82
+ default: -> { %i[mouseenter focus] },
83
+ reader: false,
84
+ type: Triggers | Types::Array.of(Triggers)
82
85
 
83
86
  def view_template(&)
84
87
  div(**attrs, &)
data/lib/protos/stats.rb CHANGED
@@ -5,6 +5,13 @@ module Protos
5
5
  # DOCS: Stats component that contains a collection of stats
6
6
  # https://daisyui.com/components/stat/
7
7
 
8
+ autoload :Actions, "protos/stats/actions"
9
+ autoload :Description, "protos/stats/description"
10
+ autoload :Figure, "protos/stats/figure"
11
+ autoload :Stat, "protos/stats/stat"
12
+ autoload :Title, "protos/stats/title"
13
+ autoload :Value, "protos/stats/value"
14
+
8
15
  def view_template(&)
9
16
  div(**attrs, &)
10
17
  end
data/lib/protos/steps.rb CHANGED
@@ -5,6 +5,8 @@ module Protos
5
5
  # DOCS: Steps can be used to show a list of steps in a process.
6
6
  # https://daisyui.com/components/steps/
7
7
 
8
+ autoload :Step, "protos/steps/step"
9
+
8
10
  option :vertical, type: Types::Bool, default: -> { false }
9
11
 
10
12
  def view_template(&)
@@ -17,10 +19,10 @@ module Protos
17
19
 
18
20
  def theme
19
21
  {
20
- container: tokens(
22
+ container: [
21
23
  "steps",
22
- vertical: "steps-vertical"
23
- )
24
+ ("steps-vertical" if vertical)
25
+ ]
24
26
  }
25
27
  end
26
28
  end
data/lib/protos/swap.rb CHANGED
@@ -6,6 +6,9 @@ module Protos
6
6
  # display different content.
7
7
  # https://daisyui.com/components/swap/
8
8
 
9
+ autoload :On, "protos/swap/on"
10
+ autoload :Off, "protos/swap/off"
11
+
9
12
  def view_template
10
13
  label(**attrs) do
11
14
  input(
@@ -11,9 +11,9 @@ module Protos
11
11
  }.freeze
12
12
 
13
13
  option :side,
14
- reader: false,
15
- type: Types::Coercible::Symbol.enum(:bottom, :top),
16
- default: -> { :bottom }
14
+ reader: false,
15
+ type: Types::Coercible::Symbol.enum(:bottom, :top),
16
+ default: -> { :bottom }
17
17
 
18
18
  def view_template(&)
19
19
  caption(**attrs, &)
@@ -12,9 +12,9 @@ module Protos
12
12
  }.freeze
13
13
 
14
14
  option :align,
15
- type: Types::Coercible::Symbol.enum(:left, :center, :right),
16
- reader: false,
17
- default: -> { :left }
15
+ type: Types::Coercible::Symbol.enum(:left, :center, :right),
16
+ reader: false,
17
+ default: -> { :left }
18
18
 
19
19
  def view_template(&)
20
20
  td(**attrs, &)
@@ -12,9 +12,9 @@ module Protos
12
12
  }.freeze
13
13
 
14
14
  option :align,
15
- type: Types::Coercible::Symbol.enum(:left, :center, :right),
16
- reader: false,
17
- default: -> { :left }
15
+ type: Types::Coercible::Symbol.enum(:left, :center, :right),
16
+ reader: false,
17
+ default: -> { :left }
18
18
 
19
19
  def view_template(&)
20
20
  th(**attrs, &)
data/lib/protos/table.rb CHANGED
@@ -5,6 +5,14 @@ module Protos
5
5
  # DOCS: A table component
6
6
  # https://daisyui.com/components/table/
7
7
 
8
+ autoload :Caption, "protos/table/caption"
9
+ autoload :Header, "protos/table/header"
10
+ autoload :Head, "protos/table/head"
11
+ autoload :Body, "protos/table/body"
12
+ autoload :Footer, "protos/table/footer"
13
+ autoload :Row, "protos/table/row"
14
+ autoload :Cell, "protos/table/cell"
15
+
8
16
  SIZES = {
9
17
  xs: "table-xs",
10
18
  sm: "table-sm",
@@ -16,14 +24,14 @@ module Protos
16
24
  option :pin_columns, default: -> { false }, type: Types::Bool
17
25
  option :striped, default: -> { false }, type: Types::Bool
18
26
  option :size,
19
- default: -> { :md },
20
- reader: false,
21
- type: Types::Coercible::Symbol.enum(
22
- :xs,
23
- :sm,
24
- :md,
25
- :lg
26
- )
27
+ default: -> { :md },
28
+ reader: false,
29
+ type: Types::Coercible::Symbol.enum(
30
+ :xs,
31
+ :sm,
32
+ :md,
33
+ :lg
34
+ )
27
35
 
28
36
  def view_template(&block)
29
37
  div(**attrs) do
@@ -54,13 +62,13 @@ module Protos
54
62
  def theme
55
63
  {
56
64
  container: "w-full overflow-x-auto",
57
- table: tokens(
65
+ table: [
58
66
  "table",
59
67
  size,
60
- pin_rows: "table-pin-rows",
61
- pin_columns: "table-pin-columns",
62
- striped: "table-striped"
63
- )
68
+ ("table-pin-rows" if pin_rows),
69
+ ("table-pin-columns" if pin_columns),
70
+ ("table-striped" if striped)
71
+ ]
64
72
  }
65
73
  end
66
74
  end
@@ -22,11 +22,11 @@ module Protos
22
22
 
23
23
  def theme
24
24
  {
25
- container: tokens(
25
+ container: [
26
26
  "tab",
27
- disabled: "tab-disabled",
28
- active: "tab-active"
29
- )
27
+ ("tab-disabled" if disabled),
28
+ ("tab-active" if active)
29
+ ]
30
30
  }
31
31
  end
32
32
  end
data/lib/protos/tabs.rb CHANGED
@@ -5,6 +5,8 @@ module Protos
5
5
  # DOCS: A component that contains many Protos::Tab components
6
6
  # https://daisyui.com/components/tab/
7
7
 
8
+ autoload :Tab, "protos/tabs/tab"
9
+
8
10
  SIZES = {
9
11
  xs: "tabs-xs",
10
12
  sm: "tabs-sm",
@@ -13,23 +15,23 @@ module Protos
13
15
  }.freeze
14
16
 
15
17
  option :type,
16
- default: -> { :default },
17
- reader: false,
18
- type: Types::Coercible::Symbol.enum(
19
- :default,
20
- :boxed,
21
- :bordered,
22
- :lifted
23
- )
18
+ default: -> { :default },
19
+ reader: false,
20
+ type: Types::Coercible::Symbol.enum(
21
+ :default,
22
+ :boxed,
23
+ :bordered,
24
+ :lifted
25
+ )
24
26
  option :size,
25
- default: -> { :md },
26
- reader: false,
27
- type: Types::Coercible::Symbol.enum(
28
- :xs,
29
- :sm,
30
- :md,
31
- :lg
32
- )
27
+ default: -> { :md },
28
+ reader: false,
29
+ type: Types::Coercible::Symbol.enum(
30
+ :xs,
31
+ :sm,
32
+ :md,
33
+ :lg
34
+ )
33
35
 
34
36
  def view_template(&)
35
37
  div(**attrs, &)
data/lib/protos/theme.rb CHANGED
@@ -9,7 +9,7 @@ module Protos
9
9
 
10
10
  class << self
11
11
  def merger
12
- @merger ||= TailwindMerge::Merger.new
12
+ @merger ||= TailwindMerge::Merger.new.freeze
13
13
  end
14
14
  end
15
15
 
@@ -25,14 +25,15 @@ module Protos
25
25
  end
26
26
  end
27
27
 
28
- def [](key)
29
- return nil unless key?(key)
28
+ def [](*keys)
29
+ symbols, strings = keys.partition { |key| key.is_a?(Symbol) }
30
+ values = @theme.values_at(*symbols).join(" ")
31
+ values += " #{strings.join(" ")}" unless strings.empty?
30
32
 
31
- value = @theme[key].to_s
32
- return nil if value.empty?
33
- return value unless @tailwind_merge
33
+ return nil if values.empty?
34
+ return values unless @tailwind_merge
34
35
 
35
- self.class.merger.merge(value)
36
+ self.class.merger.merge(values)
36
37
  end
37
38
 
38
39
  def key?(key)
@@ -5,6 +5,11 @@ module Protos
5
5
  # DOCS: A timeline component
6
6
  # https://daisyui.com/components/timeline/
7
7
 
8
+ autoload :Item, "protos/timeline/item"
9
+ autoload :Left, "protos/timeline/left"
10
+ autoload :Center, "protos/timeline/center"
11
+ autoload :Right, "protos/timeline/right"
12
+
8
13
  option :vertical, type: Types::Bool, default: -> { false }
9
14
 
10
15
  def view_template(&)
@@ -23,10 +28,10 @@ module Protos
23
28
 
24
29
  def theme
25
30
  {
26
- container: tokens(
31
+ container: [
27
32
  "timeline",
28
- vertical: "timeline-vertical"
29
- )
33
+ ("timeline-vertical" if vertical)
34
+ ]
30
35
  }
31
36
  end
32
37
  end
data/lib/protos/toast.rb CHANGED
@@ -6,6 +6,8 @@ module Protos
6
6
  # that popup at a fixed position on the screen.
7
7
  # https://daisyui.com/components/toast/
8
8
 
9
+ autoload :CloseButton, "protos/toast/close_button"
10
+
9
11
  Positions = Types::Symbol.enum(
10
12
  :top_start,
11
13
  :top_center,
@@ -31,9 +33,9 @@ module Protos
31
33
  }.freeze
32
34
 
33
35
  option :position,
34
- type: Positions,
35
- default: -> { :bottom_end },
36
- reader: false
36
+ type: Positions,
37
+ default: -> { :bottom_end },
38
+ reader: false
37
39
 
38
40
  def view_template(&)
39
41
  dialog(**attrs, &)
@@ -15,10 +15,10 @@ module Protos
15
15
 
16
16
  def theme
17
17
  {
18
- container: tokens(
18
+ container: [
19
19
  "leading-relaxed",
20
- margin: "[&:not(:first-child)]:mt-sm"
21
- )
20
+ ("[&:not(:first-child)]:mt-sm" if margin)
21
+ ]
22
22
  }
23
23
  end
24
24
  end
@@ -5,6 +5,10 @@ module Protos
5
5
  # DOCS: The core typography module that can be mixedin to override the
6
6
  # default elements with custom elements.
7
7
 
8
+ autoload :Heading, "protos/typography/heading"
9
+ autoload :Paragraph, "protos/typography/paragraph"
10
+ autoload :InlineLink, "protos/typography/inline_link"
11
+
8
12
  def h1(**, &)
9
13
  render Heading.new(level: 1, size: :xl, **, &)
10
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Protos
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.0"
5
5
  end
data/lib/protos.rb CHANGED
@@ -8,127 +8,43 @@ require "tailwind_merge"
8
8
 
9
9
  module Protos
10
10
  class Error < StandardError; end
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/mix"
19
- require_relative "protos/attributes"
20
-
21
- # Components
22
- require_relative "protos/accordion"
23
- require_relative "protos/accordion/item"
24
-
25
- require_relative "protos/alert"
26
- require_relative "protos/alert/actions"
27
- require_relative "protos/alert/icon"
28
-
29
- require_relative "protos/avatar"
30
-
31
- require_relative "protos/breadcrumbs"
32
- require_relative "protos/breadcrumbs/crumb"
33
-
34
- require_relative "protos/card"
35
- require_relative "protos/card/body"
36
- require_relative "protos/card/title"
37
- require_relative "protos/card/actions"
38
- require_relative "protos/card/image"
39
-
40
- require_relative "protos/carousel"
41
- require_relative "protos/carousel/item"
42
- require_relative "protos/carousel/actions"
43
-
44
- require_relative "protos/chat_bubble"
45
- require_relative "protos/chat_bubble/content"
46
- require_relative "protos/chat_bubble/image"
47
- require_relative "protos/chat_bubble/header"
48
- require_relative "protos/chat_bubble/footer"
49
-
50
- require_relative "protos/collapse"
51
- require_relative "protos/collapse/title"
52
- require_relative "protos/collapse/content"
53
-
54
- require_relative "protos/command"
55
- require_relative "protos/command/input"
56
- require_relative "protos/command/dialog"
57
- require_relative "protos/command/group"
58
- require_relative "protos/command/list"
59
- require_relative "protos/command/trigger"
60
- require_relative "protos/command/title"
61
- require_relative "protos/command/item"
62
- require_relative "protos/command/empty"
63
-
64
- require_relative "protos/drawer"
65
- require_relative "protos/drawer/side"
66
- require_relative "protos/drawer/trigger"
67
- require_relative "protos/drawer/content"
68
-
69
- require_relative "protos/hero"
70
- require_relative "protos/hero/content"
71
- require_relative "protos/hero/overlay"
72
11
 
73
- require_relative "protos/list"
74
- require_relative "protos/list/item"
75
-
76
- require_relative "protos/modal"
77
- require_relative "protos/modal/close_button"
78
- require_relative "protos/modal/dialog"
79
- require_relative "protos/modal/trigger"
80
-
81
- require_relative "protos/popover"
82
- require_relative "protos/popover/trigger"
83
- require_relative "protos/popover/content"
84
-
85
- require_relative "protos/stats"
86
- require_relative "protos/stats/actions"
87
- require_relative "protos/stats/description"
88
- require_relative "protos/stats/figure"
89
- require_relative "protos/stats/stat"
90
- require_relative "protos/stats/title"
91
- require_relative "protos/stats/value"
92
-
93
- require_relative "protos/steps"
94
- require_relative "protos/steps/step"
95
-
96
- require_relative "protos/swap"
97
- require_relative "protos/swap/on"
98
- require_relative "protos/swap/off"
99
-
100
- require_relative "protos/tabs"
101
- require_relative "protos/tabs/tab"
102
-
103
- require_relative "protos/table"
104
- require_relative "protos/table/caption"
105
- require_relative "protos/table/header"
106
- require_relative "protos/table/head"
107
- require_relative "protos/table/body"
108
- require_relative "protos/table/footer"
109
- require_relative "protos/table/row"
110
- require_relative "protos/table/cell"
111
-
112
- require_relative "protos/toast"
113
- require_relative "protos/toast/close_button"
114
-
115
- require_relative "protos/timeline"
116
- require_relative "protos/timeline/item"
117
- require_relative "protos/timeline/left"
118
- require_relative "protos/timeline/center"
119
- require_relative "protos/timeline/right"
120
-
121
- require_relative "protos/typography"
122
- require_relative "protos/typography/heading"
123
- require_relative "protos/typography/paragraph"
124
- require_relative "protos/typography/inline_link"
125
-
126
- # Dependent
127
- require_relative "protos/dropdown"
128
- require_relative "protos/dropdown/item"
129
- require_relative "protos/dropdown/menu"
130
- require_relative "protos/dropdown/trigger"
131
-
132
- require_relative "protos/combobox"
12
+ autoload :Version, "protos/version"
13
+ autoload :Types, "protos/types"
14
+ autoload :TokenList, "protos/token_list"
15
+ autoload :Component, "protos/component"
16
+ autoload :Theme, "protos/theme"
17
+ autoload :Mix, "protos/mix"
18
+ autoload :Attributes, "protos/attributes"
19
+
20
+ # Components
21
+ autoload :Accordion, "protos/accordion"
22
+ autoload :Alert, "protos/alert"
23
+ autoload :Avatar, "protos/avatar"
24
+ autoload :Badge, "protos/badge"
25
+ autoload :Breadcrumbs, "protos/breadcrumbs"
26
+ autoload :Card, "protos/card"
27
+ autoload :Carousel, "protos/carousel"
28
+ autoload :ChatBubble, "protos/chat_bubble"
29
+ autoload :Collapse, "protos/collapse"
30
+ autoload :Command, "protos/command"
31
+ autoload :Drawer, "protos/drawer"
32
+ autoload :Hero, "protos/hero"
33
+ autoload :List, "protos/list"
34
+ autoload :Modal, "protos/modal"
35
+ autoload :Popover, "protos/popover"
36
+ autoload :Stats, "protos/stats"
37
+ autoload :Steps, "protos/steps"
38
+ autoload :Swap, "protos/swap"
39
+ autoload :Tabs, "protos/tabs"
40
+ autoload :Table, "protos/table"
41
+ autoload :Toast, "protos/toast"
42
+ autoload :Timeline, "protos/timeline"
43
+ autoload :Typography, "protos/typography"
44
+
45
+ # Dependent
46
+ autoload :Dropdown, "protos/dropdown"
47
+ autoload :Combobox, "protos/combobox"
48
+ end
133
49
 
134
50
  require_relative "protos/engine" if defined?(Rails)