stimulus_plumbers 0.3.3 → 0.4.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/app/assets/javascripts/stimulus-plumbers/controllers.manifest.json +273 -0
  4. data/app/assets/javascripts/stimulus-plumbers/stimulus-plumbers-controllers.es.js +228 -145
  5. data/app/assets/javascripts/stimulus-plumbers/stimulus-plumbers-controllers.umd.js +1 -1
  6. data/app/assets/stylesheets/stimulus_plumbers/tokens.css +43 -7
  7. data/config/locales/en.yml +10 -0
  8. data/lib/stimulus_plumbers/components/avatar.rb +14 -13
  9. data/lib/stimulus_plumbers/components/button/group.rb +9 -4
  10. data/lib/stimulus_plumbers/components/button/slots.rb +11 -0
  11. data/lib/stimulus_plumbers/components/button.rb +30 -34
  12. data/lib/stimulus_plumbers/components/calendar/turbo/days_of_month.rb +151 -0
  13. data/lib/stimulus_plumbers/components/calendar/turbo/days_of_week.rb +62 -0
  14. data/lib/stimulus_plumbers/components/calendar/turbo/months_of_year.rb +99 -0
  15. data/lib/stimulus_plumbers/components/calendar/turbo/years_of_decade.rb +86 -0
  16. data/lib/stimulus_plumbers/components/calendar/turbo.rb +65 -0
  17. data/lib/stimulus_plumbers/components/calendar.rb +70 -29
  18. data/lib/stimulus_plumbers/components/card/slots.rb +26 -0
  19. data/lib/stimulus_plumbers/components/card.rb +54 -14
  20. data/lib/stimulus_plumbers/components/combobox/builder.rb +45 -0
  21. data/lib/stimulus_plumbers/components/combobox/date/navigation.rb +72 -0
  22. data/lib/stimulus_plumbers/components/combobox/date/navigator.rb +25 -0
  23. data/lib/stimulus_plumbers/components/combobox/date.rb +34 -24
  24. data/lib/stimulus_plumbers/components/combobox/dropdown.rb +27 -24
  25. data/lib/stimulus_plumbers/components/combobox/options/option.rb +1 -1
  26. data/lib/stimulus_plumbers/components/combobox/options/option_group.rb +1 -1
  27. data/lib/stimulus_plumbers/components/combobox/time/drum.rb +1 -1
  28. data/lib/stimulus_plumbers/components/combobox/time.rb +48 -49
  29. data/lib/stimulus_plumbers/components/combobox/trigger.rb +17 -12
  30. data/lib/stimulus_plumbers/components/combobox/typeahead.rb +63 -16
  31. data/lib/stimulus_plumbers/components/combobox.rb +58 -38
  32. data/lib/stimulus_plumbers/components/divider.rb +9 -8
  33. data/lib/stimulus_plumbers/components/icon.rb +5 -1
  34. data/lib/stimulus_plumbers/components/link/slots.rb +11 -0
  35. data/lib/stimulus_plumbers/components/link.rb +63 -0
  36. data/lib/stimulus_plumbers/components/list/item/slots.rb +13 -0
  37. data/lib/stimulus_plumbers/components/list/item.rb +83 -0
  38. data/lib/stimulus_plumbers/components/list/section.rb +73 -0
  39. data/lib/stimulus_plumbers/components/list.rb +31 -0
  40. data/lib/stimulus_plumbers/components/popover/panel.rb +32 -0
  41. data/lib/stimulus_plumbers/components/popover/trigger.rb +27 -0
  42. data/lib/stimulus_plumbers/components/popover.rb +44 -18
  43. data/lib/stimulus_plumbers/engine.rb +1 -0
  44. data/lib/stimulus_plumbers/form/base.rb +103 -0
  45. data/lib/stimulus_plumbers/form/builder.rb +71 -24
  46. data/lib/stimulus_plumbers/form/field.rb +56 -88
  47. data/lib/stimulus_plumbers/form/fields/error.rb +1 -1
  48. data/lib/stimulus_plumbers/form/fields/fieldset.rb +11 -8
  49. data/lib/stimulus_plumbers/form/fields/hint.rb +1 -1
  50. data/lib/stimulus_plumbers/form/fields/inputs/checkbox.rb +115 -0
  51. data/lib/stimulus_plumbers/form/fields/inputs/combobox.rb +24 -0
  52. data/lib/stimulus_plumbers/form/fields/inputs/datetime.rb +40 -58
  53. data/lib/stimulus_plumbers/form/fields/inputs/file.rb +9 -8
  54. data/lib/stimulus_plumbers/form/fields/inputs/password.rb +30 -23
  55. data/lib/stimulus_plumbers/form/fields/inputs/radio.rb +60 -0
  56. data/lib/stimulus_plumbers/form/fields/inputs/search.rb +31 -54
  57. data/lib/stimulus_plumbers/form/fields/inputs/select/grouped.rb +22 -33
  58. data/lib/stimulus_plumbers/form/fields/inputs/select/timezone.rb +3 -46
  59. data/lib/stimulus_plumbers/form/fields/inputs/select/weekday.rb +3 -26
  60. data/lib/stimulus_plumbers/form/fields/inputs/select.rb +62 -61
  61. data/lib/stimulus_plumbers/form/fields/inputs/submit.rb +10 -7
  62. data/lib/stimulus_plumbers/form/fields/inputs/text.rb +29 -22
  63. data/lib/stimulus_plumbers/form/fields/inputs/text_area.rb +9 -8
  64. data/lib/stimulus_plumbers/form/fields/label/floating.rb +41 -0
  65. data/lib/stimulus_plumbers/form/fields/label.rb +9 -3
  66. data/lib/stimulus_plumbers/form/fields/renderer.rb +39 -0
  67. data/lib/stimulus_plumbers/helpers/button_helper.rb +1 -1
  68. data/lib/stimulus_plumbers/helpers/calendar_helper.rb +2 -2
  69. data/lib/stimulus_plumbers/helpers/calendar_turbo_helper.rb +56 -4
  70. data/lib/stimulus_plumbers/helpers/card_helper.rb +1 -11
  71. data/lib/stimulus_plumbers/helpers/combobox_helper.rb +27 -60
  72. data/lib/stimulus_plumbers/helpers/icon_helper.rb +11 -0
  73. data/lib/stimulus_plumbers/helpers/link_helper.rb +11 -0
  74. data/lib/stimulus_plumbers/helpers/list_helper.rb +11 -0
  75. data/lib/stimulus_plumbers/helpers/plumber_helper.rb +3 -6
  76. data/lib/stimulus_plumbers/helpers.rb +6 -2
  77. data/lib/stimulus_plumbers/logger.rb +4 -3
  78. data/lib/stimulus_plumbers/plumber/base.rb +6 -1
  79. data/lib/stimulus_plumbers/plumber/dispatcher/klass_proxy.rb +4 -3
  80. data/lib/stimulus_plumbers/plumber/dispatcher/method_call.rb +4 -3
  81. data/lib/stimulus_plumbers/plumber/dispatcher.rb +4 -4
  82. data/lib/stimulus_plumbers/plumber/options/aria.rb +17 -0
  83. data/lib/stimulus_plumbers/plumber/options/html.rb +29 -0
  84. data/lib/stimulus_plumbers/plumber/options/stimulus.rb +29 -0
  85. data/lib/stimulus_plumbers/plumber/options/theme.rb +19 -0
  86. data/lib/stimulus_plumbers/plumber/options/token_list.rb +29 -0
  87. data/lib/stimulus_plumbers/plumber/renderer.rb +136 -41
  88. data/lib/stimulus_plumbers/plumber/slots.rb +74 -0
  89. data/lib/stimulus_plumbers/themes/base.rb +5 -7
  90. data/lib/stimulus_plumbers/themes/schema/avatar/ranges.rb +13 -0
  91. data/lib/stimulus_plumbers/themes/schema/button/ranges.rb +16 -0
  92. data/lib/stimulus_plumbers/themes/schema/card/ranges.rb +13 -0
  93. data/lib/stimulus_plumbers/themes/schema/form/checkbox/ranges.rb +16 -0
  94. data/lib/stimulus_plumbers/themes/schema/form/radio/ranges.rb +16 -0
  95. data/lib/stimulus_plumbers/themes/schema/form/ranges.rb +1 -2
  96. data/lib/stimulus_plumbers/themes/schema/link/ranges.rb +14 -0
  97. data/lib/stimulus_plumbers/themes/schema/ranges.rb +1 -5
  98. data/lib/stimulus_plumbers/themes/schema.rb +119 -48
  99. data/lib/stimulus_plumbers/version.rb +1 -1
  100. data/lib/stimulus_plumbers.rb +20 -15
  101. metadata +42 -15
  102. data/lib/stimulus_plumbers/components/action_list/item.rb +0 -30
  103. data/lib/stimulus_plumbers/components/action_list/section.rb +0 -28
  104. data/lib/stimulus_plumbers/components/action_list.rb +0 -29
  105. data/lib/stimulus_plumbers/components/calendar/month/turbo/days_of_month.rb +0 -149
  106. data/lib/stimulus_plumbers/components/calendar/month/turbo/days_of_week.rb +0 -43
  107. data/lib/stimulus_plumbers/components/calendar/month/turbo.rb +0 -59
  108. data/lib/stimulus_plumbers/components/card/section.rb +0 -31
  109. data/lib/stimulus_plumbers/components/combobox/popover.rb +0 -47
  110. data/lib/stimulus_plumbers/components/date_picker/navigation.rb +0 -41
  111. data/lib/stimulus_plumbers/components/date_picker/navigator.rb +0 -23
  112. data/lib/stimulus_plumbers/components/popover/builder.rb +0 -25
  113. data/lib/stimulus_plumbers/form/fields/inputs/choice.rb +0 -69
  114. data/lib/stimulus_plumbers/helpers/action_list_helper.rb +0 -25
  115. data/lib/stimulus_plumbers/plumber/html_options.rb +0 -52
@@ -1,96 +1,157 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../form/field"
3
4
  require_relative "schema/ranges"
5
+ require_relative "schema/avatar/ranges"
6
+ require_relative "schema/button/ranges"
7
+ require_relative "schema/card/ranges"
8
+ require_relative "schema/link/ranges"
4
9
  require_relative "schema/form/ranges"
10
+ require_relative "schema/form/checkbox/ranges"
11
+ require_relative "schema/form/radio/ranges"
5
12
  require_relative "schema/icon"
6
13
 
7
14
  module StimulusPlumbers
8
15
  module Themes
9
16
  module Schema
10
- ACTION_LIST = {
11
- action_list_item: {
12
- active: { default: false, validate: Ranges::BOOL }
13
- }.freeze,
14
- action_list: {}.freeze
17
+ LIST = {
18
+ list: {}.freeze,
19
+ list_section: {}.freeze,
20
+ list_section_title: {}.freeze,
21
+ list_section_description: {}.freeze,
22
+ list_item: {}.freeze,
23
+ list_item_icon: {}.freeze,
24
+ list_item_content: {}.freeze,
25
+ list_item_title: {}.freeze,
26
+ list_item_description: {}.freeze
15
27
  }.freeze
16
28
 
17
29
  AVATAR = {
18
- avatar: {
19
- size: { default: :md, validate: Ranges::SIZE },
20
- color: { default: nil, validate: :avatar_color_range }
21
- }.freeze
30
+ avatar: {
31
+ size: { default: :md, validate: Avatar::Ranges::SIZE },
32
+ variant: { default: nil, validate: :avatar_variant_range }
33
+ }.freeze,
34
+ avatar_image: {}.freeze
22
35
  }.freeze
23
36
 
24
37
  BUTTON = {
25
38
  button: {
26
- variant: { default: :primary, validate: Ranges::BUTTON_VARIANT },
27
- size: { default: :md, validate: Ranges::SIZE }
39
+ type: { default: :default, validate: Button::Ranges::TYPE },
40
+ variant: { default: :primary, validate: Button::Ranges::VARIANT },
41
+ size: { default: :md, validate: Button::Ranges::SIZE }
28
42
  }.freeze,
29
43
  button_group: {
30
- alignment: { default: :left, validate: Ranges::FLEX_ALIGN },
31
- direction: { default: :row, validate: Ranges::FLEX_DIRECTION }
44
+ layout: { default: :inline, validate: Button::Ranges::LAYOUT }
32
45
  }.freeze,
33
46
  button_icon: {}.freeze
34
47
  }.freeze
35
48
 
36
49
  CALENDAR = {
37
- calendar: {}.freeze,
38
- calendar_days_of_week: {}.freeze,
39
- calendar_week: {}.freeze,
40
- calendar_days_of_month: {}.freeze,
41
- calendar_day: {
50
+ calendar: {}.freeze,
51
+ calendar_days_of_week: {}.freeze,
52
+ calendar_days_of_month: {}.freeze,
53
+ calendar_months_of_year: {}.freeze,
54
+ calendar_years_of_decade: {}.freeze,
55
+ calendar_row: {}.freeze,
56
+ calendar_day: {
42
57
  today: { default: false, validate: Ranges::BOOL },
43
58
  selected: { default: false, validate: Ranges::BOOL },
44
59
  outside: { default: false, validate: Ranges::BOOL }
45
60
  }.freeze,
46
- calendar_navigation: {}.freeze,
47
- calendar_navigation_navigator: {}.freeze
61
+ calendar_month: {
62
+ outside: { default: false, validate: Ranges::BOOL }
63
+ }.freeze,
64
+ calendar_year: {
65
+ outside: { default: false, validate: Ranges::BOOL }
66
+ }.freeze,
67
+ calendar_quarter_grid: {}.freeze
48
68
  }.freeze
49
69
 
50
70
  CARD = {
51
- card: {}.freeze,
52
- card_section: {}.freeze
71
+ card: { variant: { default: :tertiary, validate: Card::Ranges::VARIANT } }.freeze,
72
+ card_header: {}.freeze,
73
+ card_icon: {}.freeze,
74
+ card_title: {}.freeze,
75
+ card_body: {}.freeze,
76
+ card_action: {}.freeze
53
77
  }.freeze
54
78
 
55
79
  COMBOBOX = {
56
- combobox_trigger: {}.freeze,
57
- combobox_trigger_group: {}.freeze,
58
- combobox_option: {
80
+ combobox: {}.freeze,
81
+ combobox_popover: {}.freeze,
82
+ combobox_trigger: {}.freeze,
83
+ combobox_trigger_icon: {}.freeze,
84
+ combobox_trigger_group: {}.freeze,
85
+ combobox_option: {
59
86
  selected: { default: false, validate: Ranges::BOOL },
60
87
  disabled: { default: false, validate: Ranges::BOOL }
61
88
  }.freeze,
62
- combobox_option_group: {}.freeze,
63
- combobox_listbox: {}.freeze,
64
- combobox_typeahead_loading: {}.freeze,
65
- combobox_typeahead_empty: {}.freeze,
66
- combobox_time: {}.freeze
89
+ combobox_option_group: {}.freeze,
90
+ combobox_listbox: {}.freeze,
91
+ combobox_typeahead_loading: {}.freeze,
92
+ combobox_typeahead_loading_icon: {}.freeze,
93
+ combobox_typeahead_empty: {}.freeze,
94
+ combobox_time: {}.freeze,
95
+ combobox_date_navigation: {}.freeze,
96
+ combobox_date_navigation_navigator: {}.freeze
67
97
  }.freeze
68
98
 
69
99
  FORM = {
70
- form_group: {
100
+ form_group: {
71
101
  layout: { default: :stacked, validate: Form::Ranges::LAYOUT },
72
102
  error: { default: false, validate: Ranges::BOOL }
73
103
  }.freeze,
74
- form_label: {
104
+ form_field_label: {
75
105
  required: { default: false, validate: Ranges::BOOL },
76
106
  hidden: { default: false, validate: Ranges::BOOL }
77
107
  }.freeze,
78
- form_required_mark: {}.freeze,
79
- form_details: {}.freeze,
80
- form_error: {}.freeze,
81
- form_input: { error: { default: false, validate: Ranges::BOOL } }.freeze,
82
- form_textarea: { error: { default: false, validate: Ranges::BOOL } }.freeze,
83
- form_file: { error: { default: false, validate: Ranges::BOOL } }.freeze,
84
- form_select: { error: { default: false, validate: Ranges::BOOL } }.freeze,
85
- form_checkbox: { error: { default: false, validate: Ranges::BOOL } }.freeze,
86
- form_radio: { error: { default: false, validate: Ranges::BOOL } }.freeze,
87
- form_combobox: { error: { default: false, validate: Ranges::BOOL } }.freeze,
88
- form_input_reveal: { error: { default: false, validate: Ranges::BOOL } }.freeze,
89
- form_input_clearable: {}.freeze,
90
- form_button_reveal: {}.freeze,
91
- form_button_clear: {}.freeze,
92
- form_submit: {
93
- variant: { default: :default, validate: Form::Ranges::SUBMIT_VARIANT }
108
+ form_field_required_mark: {}.freeze,
109
+ form_field_hint: {}.freeze,
110
+ form_field_error: {}.freeze,
111
+ form_field_choice_items: {
112
+ layout: { default: :stacked, validate: Form::Ranges::LAYOUT }
113
+ }.freeze,
114
+ form_field_checkbox_label: {
115
+ type: { default: :default, validate: Form::Checkbox::Ranges::TYPE },
116
+ variant: { default: :tertiary, validate: Form::Checkbox::Ranges::VARIANT }
117
+ }.freeze,
118
+ form_field_radio_label: {
119
+ type: { default: :default, validate: Form::Radio::Ranges::TYPE },
120
+ variant: { default: :tertiary, validate: Form::Radio::Ranges::VARIANT }
121
+ }.freeze,
122
+ form_field_input: { error: { default: false, validate: Ranges::BOOL } }.freeze,
123
+ form_field_floating: {
124
+ error: { default: false, validate: Ranges::BOOL },
125
+ type: { default: nil, validate: StimulusPlumbers::Form::Field::FLOATING_TYPES }
126
+ }.freeze,
127
+ form_field_floating_group: {
128
+ type: { default: nil, validate: StimulusPlumbers::Form::Field::FLOATING_TYPES }
129
+ }.freeze,
130
+ form_field_floating_label: {
131
+ type: { default: nil, validate: StimulusPlumbers::Form::Field::FLOATING_TYPES },
132
+ error: { default: false, validate: Ranges::BOOL }
133
+ }.freeze,
134
+ form_field_input_textarea: { error: { default: false, validate: Ranges::BOOL } }.freeze,
135
+ form_field_input_file: { error: { default: false, validate: Ranges::BOOL } }.freeze,
136
+ form_field_input_select: { error: { default: false, validate: Ranges::BOOL } }.freeze,
137
+ form_field_input_checkbox: {
138
+ error: { default: false, validate: Ranges::BOOL },
139
+ type: { default: :default, validate: Form::Checkbox::Ranges::TYPE },
140
+ variant: { default: :tertiary, validate: Form::Checkbox::Ranges::VARIANT }
141
+ }.freeze,
142
+ form_field_input_radio: {
143
+ error: { default: false, validate: Ranges::BOOL },
144
+ type: { default: :default, validate: Form::Radio::Ranges::TYPE },
145
+ variant: { default: :tertiary, validate: Form::Radio::Ranges::VARIANT }
146
+ }.freeze,
147
+ form_field_input_combobox: { error: { default: false, validate: Ranges::BOOL } }.freeze,
148
+ form_field_input_reveal: { error: { default: false, validate: Ranges::BOOL } }.freeze,
149
+ form_field_input_clearable: {}.freeze,
150
+ form_field_input_button_reveal: {}.freeze,
151
+ form_field_input_button_clear: {}.freeze,
152
+ form_submit: {
153
+ type: { default: :default, validate: Button::Ranges::TYPE },
154
+ variant: { default: :primary, validate: Button::Ranges::VARIANT }
94
155
  }.freeze
95
156
  }.freeze
96
157
 
@@ -102,10 +163,20 @@ module StimulusPlumbers
102
163
  input_group: { error: { default: false, validate: Ranges::BOOL } }.freeze
103
164
  }.freeze
104
165
 
166
+ LINK = {
167
+ link: {
168
+ type: { default: :default, validate: Link::Ranges::TYPE },
169
+ variant: { default: :default, validate: Link::Ranges::VARIANT }
170
+ }.freeze,
171
+ link_icon: {}.freeze
172
+ }.freeze
173
+
105
174
  LAYOUT = {
106
175
  divider: {}.freeze,
107
176
  divider_separator: {}.freeze,
108
177
  divider_label: {}.freeze,
178
+ popover_wrapper: {}.freeze,
179
+ popover_trigger: {}.freeze,
109
180
  popover: {}.freeze
110
181
  }.freeze
111
182
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StimulusPlumbers
4
- VERSION = "0.3.3"
4
+ VERSION = "0.4.0"
5
5
  end
@@ -11,48 +11,52 @@ require_relative "stimulus_plumbers/helpers"
11
11
  require_relative "stimulus_plumbers/logger"
12
12
 
13
13
  # -- Plumber base --
14
- require_relative "stimulus_plumbers/plumber/html_options"
15
14
  require_relative "stimulus_plumbers/plumber/dispatcher"
16
- require_relative "stimulus_plumbers/plumber/renderer"
15
+ require_relative "stimulus_plumbers/plumber/slots"
17
16
  require_relative "stimulus_plumbers/plumber/base"
18
17
 
19
18
  # -- UI components --
20
19
  require_relative "stimulus_plumbers/components/icon"
21
20
  require_relative "stimulus_plumbers/components/avatar"
22
21
  require_relative "stimulus_plumbers/components/button"
22
+ require_relative "stimulus_plumbers/components/button/slots"
23
23
  require_relative "stimulus_plumbers/components/button/group"
24
+ require_relative "stimulus_plumbers/components/link"
25
+ require_relative "stimulus_plumbers/components/link/slots"
24
26
  require_relative "stimulus_plumbers/components/card"
25
- require_relative "stimulus_plumbers/components/card/section"
26
- require_relative "stimulus_plumbers/components/action_list"
27
- require_relative "stimulus_plumbers/components/action_list/section"
28
- require_relative "stimulus_plumbers/components/action_list/item"
27
+ require_relative "stimulus_plumbers/components/card/slots"
28
+ require_relative "stimulus_plumbers/components/list"
29
+ require_relative "stimulus_plumbers/components/list/section"
30
+ require_relative "stimulus_plumbers/components/list/item"
31
+ require_relative "stimulus_plumbers/components/list/item/slots"
29
32
  require_relative "stimulus_plumbers/components/divider"
30
33
  require_relative "stimulus_plumbers/components/input_group"
31
34
  require_relative "stimulus_plumbers/components/popover"
32
- require_relative "stimulus_plumbers/components/popover/builder"
35
+ require_relative "stimulus_plumbers/components/popover/trigger"
36
+ require_relative "stimulus_plumbers/components/popover/panel"
33
37
 
34
38
  # -- Calendar --
35
39
  require_relative "stimulus_plumbers/components/calendar"
36
- require_relative "stimulus_plumbers/components/calendar/month/turbo"
37
- require_relative "stimulus_plumbers/components/calendar/month/turbo/days_of_week"
38
- require_relative "stimulus_plumbers/components/calendar/month/turbo/days_of_month"
39
-
40
- # -- Date picker --
41
- require_relative "stimulus_plumbers/components/date_picker/navigator"
42
- require_relative "stimulus_plumbers/components/date_picker/navigation"
40
+ require_relative "stimulus_plumbers/components/calendar/turbo"
41
+ require_relative "stimulus_plumbers/components/calendar/turbo/days_of_week"
42
+ require_relative "stimulus_plumbers/components/calendar/turbo/days_of_month"
43
+ require_relative "stimulus_plumbers/components/calendar/turbo/months_of_year"
44
+ require_relative "stimulus_plumbers/components/calendar/turbo/years_of_decade"
43
45
 
44
46
  # -- Combobox --
45
47
  require_relative "stimulus_plumbers/components/combobox"
46
48
  require_relative "stimulus_plumbers/components/combobox/trigger"
47
- require_relative "stimulus_plumbers/components/combobox/popover"
48
49
  require_relative "stimulus_plumbers/components/combobox/options"
49
50
  require_relative "stimulus_plumbers/components/combobox/options/option"
50
51
  require_relative "stimulus_plumbers/components/combobox/options/option_group"
51
52
  require_relative "stimulus_plumbers/components/combobox/date"
53
+ require_relative "stimulus_plumbers/components/combobox/date/navigator"
54
+ require_relative "stimulus_plumbers/components/combobox/date/navigation"
52
55
  require_relative "stimulus_plumbers/components/combobox/dropdown"
53
56
  require_relative "stimulus_plumbers/components/combobox/typeahead"
54
57
  require_relative "stimulus_plumbers/components/combobox/time"
55
58
  require_relative "stimulus_plumbers/components/combobox/time/drum"
59
+ require_relative "stimulus_plumbers/components/combobox/builder"
56
60
 
57
61
  # -- Form --
58
62
  require_relative "stimulus_plumbers/form/field"
@@ -60,6 +64,7 @@ require_relative "stimulus_plumbers/form/fields/error"
60
64
  require_relative "stimulus_plumbers/form/fields/group"
61
65
  require_relative "stimulus_plumbers/form/fields/hint"
62
66
  require_relative "stimulus_plumbers/form/fields/label"
67
+ require_relative "stimulus_plumbers/form/fields/label/floating"
63
68
  require_relative "stimulus_plumbers/form/builder"
64
69
 
65
70
  module StimulusPlumbers
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stimulus_plumbers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Chang
@@ -40,52 +40,64 @@ files:
40
40
  - CHANGELOG.md
41
41
  - README.md
42
42
  - app/assets/javascripts/stimulus-plumbers/.keep
43
+ - app/assets/javascripts/stimulus-plumbers/controllers.manifest.json
43
44
  - app/assets/javascripts/stimulus-plumbers/stimulus-plumbers-controllers.es.js
44
45
  - app/assets/javascripts/stimulus-plumbers/stimulus-plumbers-controllers.umd.js
45
46
  - app/assets/stylesheets/stimulus_plumbers/tokens.css
47
+ - config/locales/en.yml
46
48
  - lib/stimulus_plumbers.rb
47
- - lib/stimulus_plumbers/components/action_list.rb
48
- - lib/stimulus_plumbers/components/action_list/item.rb
49
- - lib/stimulus_plumbers/components/action_list/section.rb
50
49
  - lib/stimulus_plumbers/components/avatar.rb
51
50
  - lib/stimulus_plumbers/components/button.rb
52
51
  - lib/stimulus_plumbers/components/button/group.rb
52
+ - lib/stimulus_plumbers/components/button/slots.rb
53
53
  - lib/stimulus_plumbers/components/calendar.rb
54
- - lib/stimulus_plumbers/components/calendar/month/turbo.rb
55
- - lib/stimulus_plumbers/components/calendar/month/turbo/days_of_month.rb
56
- - lib/stimulus_plumbers/components/calendar/month/turbo/days_of_week.rb
54
+ - lib/stimulus_plumbers/components/calendar/turbo.rb
55
+ - lib/stimulus_plumbers/components/calendar/turbo/days_of_month.rb
56
+ - lib/stimulus_plumbers/components/calendar/turbo/days_of_week.rb
57
+ - lib/stimulus_plumbers/components/calendar/turbo/months_of_year.rb
58
+ - lib/stimulus_plumbers/components/calendar/turbo/years_of_decade.rb
57
59
  - lib/stimulus_plumbers/components/card.rb
58
- - lib/stimulus_plumbers/components/card/section.rb
60
+ - lib/stimulus_plumbers/components/card/slots.rb
59
61
  - lib/stimulus_plumbers/components/combobox.rb
62
+ - lib/stimulus_plumbers/components/combobox/builder.rb
60
63
  - lib/stimulus_plumbers/components/combobox/date.rb
64
+ - lib/stimulus_plumbers/components/combobox/date/navigation.rb
65
+ - lib/stimulus_plumbers/components/combobox/date/navigator.rb
61
66
  - lib/stimulus_plumbers/components/combobox/dropdown.rb
62
67
  - lib/stimulus_plumbers/components/combobox/options.rb
63
68
  - lib/stimulus_plumbers/components/combobox/options/option.rb
64
69
  - lib/stimulus_plumbers/components/combobox/options/option_group.rb
65
- - lib/stimulus_plumbers/components/combobox/popover.rb
66
70
  - lib/stimulus_plumbers/components/combobox/time.rb
67
71
  - lib/stimulus_plumbers/components/combobox/time/drum.rb
68
72
  - lib/stimulus_plumbers/components/combobox/trigger.rb
69
73
  - lib/stimulus_plumbers/components/combobox/typeahead.rb
70
- - lib/stimulus_plumbers/components/date_picker/navigation.rb
71
- - lib/stimulus_plumbers/components/date_picker/navigator.rb
72
74
  - lib/stimulus_plumbers/components/divider.rb
73
75
  - lib/stimulus_plumbers/components/icon.rb
74
76
  - lib/stimulus_plumbers/components/input_group.rb
77
+ - lib/stimulus_plumbers/components/link.rb
78
+ - lib/stimulus_plumbers/components/link/slots.rb
79
+ - lib/stimulus_plumbers/components/list.rb
80
+ - lib/stimulus_plumbers/components/list/item.rb
81
+ - lib/stimulus_plumbers/components/list/item/slots.rb
82
+ - lib/stimulus_plumbers/components/list/section.rb
75
83
  - lib/stimulus_plumbers/components/popover.rb
76
- - lib/stimulus_plumbers/components/popover/builder.rb
84
+ - lib/stimulus_plumbers/components/popover/panel.rb
85
+ - lib/stimulus_plumbers/components/popover/trigger.rb
77
86
  - lib/stimulus_plumbers/configuration.rb
78
87
  - lib/stimulus_plumbers/engine.rb
88
+ - lib/stimulus_plumbers/form/base.rb
79
89
  - lib/stimulus_plumbers/form/builder.rb
80
90
  - lib/stimulus_plumbers/form/field.rb
81
91
  - lib/stimulus_plumbers/form/fields/error.rb
82
92
  - lib/stimulus_plumbers/form/fields/fieldset.rb
83
93
  - lib/stimulus_plumbers/form/fields/group.rb
84
94
  - lib/stimulus_plumbers/form/fields/hint.rb
85
- - lib/stimulus_plumbers/form/fields/inputs/choice.rb
95
+ - lib/stimulus_plumbers/form/fields/inputs/checkbox.rb
96
+ - lib/stimulus_plumbers/form/fields/inputs/combobox.rb
86
97
  - lib/stimulus_plumbers/form/fields/inputs/datetime.rb
87
98
  - lib/stimulus_plumbers/form/fields/inputs/file.rb
88
99
  - lib/stimulus_plumbers/form/fields/inputs/password.rb
100
+ - lib/stimulus_plumbers/form/fields/inputs/radio.rb
89
101
  - lib/stimulus_plumbers/form/fields/inputs/search.rb
90
102
  - lib/stimulus_plumbers/form/fields/inputs/select.rb
91
103
  - lib/stimulus_plumbers/form/fields/inputs/select/grouped.rb
@@ -95,8 +107,9 @@ files:
95
107
  - lib/stimulus_plumbers/form/fields/inputs/text.rb
96
108
  - lib/stimulus_plumbers/form/fields/inputs/text_area.rb
97
109
  - lib/stimulus_plumbers/form/fields/label.rb
110
+ - lib/stimulus_plumbers/form/fields/label/floating.rb
111
+ - lib/stimulus_plumbers/form/fields/renderer.rb
98
112
  - lib/stimulus_plumbers/helpers.rb
99
- - lib/stimulus_plumbers/helpers/action_list_helper.rb
100
113
  - lib/stimulus_plumbers/helpers/avatar_helper.rb
101
114
  - lib/stimulus_plumbers/helpers/button_helper.rb
102
115
  - lib/stimulus_plumbers/helpers/calendar_helper.rb
@@ -104,6 +117,9 @@ files:
104
117
  - lib/stimulus_plumbers/helpers/card_helper.rb
105
118
  - lib/stimulus_plumbers/helpers/combobox_helper.rb
106
119
  - lib/stimulus_plumbers/helpers/divider_helper.rb
120
+ - lib/stimulus_plumbers/helpers/icon_helper.rb
121
+ - lib/stimulus_plumbers/helpers/link_helper.rb
122
+ - lib/stimulus_plumbers/helpers/list_helper.rb
107
123
  - lib/stimulus_plumbers/helpers/plumber_helper.rb
108
124
  - lib/stimulus_plumbers/helpers/popover_helper.rb
109
125
  - lib/stimulus_plumbers/logger.rb
@@ -113,15 +129,26 @@ files:
113
129
  - lib/stimulus_plumbers/plumber/dispatcher/instance_exec.rb
114
130
  - lib/stimulus_plumbers/plumber/dispatcher/klass_proxy.rb
115
131
  - lib/stimulus_plumbers/plumber/dispatcher/method_call.rb
116
- - lib/stimulus_plumbers/plumber/html_options.rb
132
+ - lib/stimulus_plumbers/plumber/options/aria.rb
133
+ - lib/stimulus_plumbers/plumber/options/html.rb
134
+ - lib/stimulus_plumbers/plumber/options/stimulus.rb
135
+ - lib/stimulus_plumbers/plumber/options/theme.rb
136
+ - lib/stimulus_plumbers/plumber/options/token_list.rb
117
137
  - lib/stimulus_plumbers/plumber/renderer.rb
138
+ - lib/stimulus_plumbers/plumber/slots.rb
118
139
  - lib/stimulus_plumbers/themes/base.rb
119
140
  - lib/stimulus_plumbers/themes/configuration.rb
120
141
  - lib/stimulus_plumbers/themes/icons/external.rb
121
142
  - lib/stimulus_plumbers/themes/icons/registry.rb
122
143
  - lib/stimulus_plumbers/themes/schema.rb
144
+ - lib/stimulus_plumbers/themes/schema/avatar/ranges.rb
145
+ - lib/stimulus_plumbers/themes/schema/button/ranges.rb
146
+ - lib/stimulus_plumbers/themes/schema/card/ranges.rb
147
+ - lib/stimulus_plumbers/themes/schema/form/checkbox/ranges.rb
148
+ - lib/stimulus_plumbers/themes/schema/form/radio/ranges.rb
123
149
  - lib/stimulus_plumbers/themes/schema/form/ranges.rb
124
150
  - lib/stimulus_plumbers/themes/schema/icon.rb
151
+ - lib/stimulus_plumbers/themes/schema/link/ranges.rb
125
152
  - lib/stimulus_plumbers/themes/schema/ranges.rb
126
153
  - lib/stimulus_plumbers/version.rb
127
154
  homepage: https://github.com/ryancyq/stimulus-plumbers
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module StimulusPlumbers
4
- module Components
5
- class ActionList
6
- class Item < Plumber::Base
7
- def render(content = nil, **kwargs, &block)
8
- render_item(content, **kwargs, &block)
9
- end
10
-
11
- private
12
-
13
- def render_item(content, url: nil, external: false, active: false, **kwargs, &block)
14
- html_options = merge_html_options(
15
- { classes: theme.resolve(:action_list_item, active: active).fetch(:classes, "") },
16
- kwargs
17
- )
18
-
19
- template.content_tag(:li) do
20
- render_button(content, url: url, external: external, variant: :outline, **html_options, &block)
21
- end
22
- end
23
-
24
- def render_button(content, url: nil, external: false, **kwargs, &block)
25
- Components::Button.new(template).render(content, url: url, external: external, **kwargs, &block)
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module StimulusPlumbers
4
- module Components
5
- class ActionList
6
- class Section < Plumber::Base
7
- def render(...)
8
- render_section(...)
9
- end
10
-
11
- private
12
-
13
- def render_section(title: nil, **kwargs, &block)
14
- template.content_tag(:li, **kwargs) do
15
- ul_opts = {}
16
- ul_opts[:aria] = { label: title } if title.present?
17
- template.safe_join(
18
- [
19
- (template.content_tag(:span, title, aria: { hidden: "true" }) if title.present?),
20
- template.content_tag(:ul, template.capture(&block), **ul_opts)
21
- ]
22
- )
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module StimulusPlumbers
4
- module Components
5
- class ActionList < Plumber::Base
6
- def render(...)
7
- render_list(...)
8
- end
9
-
10
- def section(...)
11
- ActionList::Section.new(template).render(...)
12
- end
13
-
14
- def item(content = nil, **kwargs, &block)
15
- ActionList::Item.new(template).render(content, **kwargs, &block)
16
- end
17
-
18
- private
19
-
20
- def render_list(role: "list", **kwargs, &block)
21
- html_options = merge_html_options(
22
- { role: role, classes: theme.resolve(:action_list).fetch(:classes, "") },
23
- kwargs
24
- )
25
- template.content_tag(:ul, template.capture(&block), **html_options)
26
- end
27
- end
28
- end
29
- end