ruby_ui 1.0.0.beta1 → 1.0.0.pre.alpha.4

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/rbui/base_generator.rb +17 -0
  3. data/lib/generators/rbui/component_generator.rb +137 -0
  4. data/lib/generators/rbui/install/install_generator.rb +194 -0
  5. data/lib/{ruby_ui → rbui}/accordion/accordion.rb +1 -1
  6. data/lib/{ruby_ui → rbui}/accordion/accordion_content.rb +2 -2
  7. data/lib/{ruby_ui → rbui}/accordion/accordion_default_content.rb +1 -1
  8. data/lib/{ruby_ui → rbui}/accordion/accordion_default_trigger.rb +3 -3
  9. data/lib/{ruby_ui → rbui}/accordion/accordion_icon.rb +2 -2
  10. data/lib/{ruby_ui → rbui}/accordion/accordion_item.rb +4 -4
  11. data/lib/{ruby_ui → rbui}/accordion/accordion_trigger.rb +2 -3
  12. data/lib/{ruby_ui → rbui}/alert/alert.rb +2 -2
  13. data/lib/{ruby_ui → rbui}/alert/alert_description.rb +1 -1
  14. data/lib/{ruby_ui → rbui}/alert/alert_title.rb +1 -1
  15. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog.rb +3 -3
  16. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_action.rb +2 -2
  17. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_cancel.rb +3 -3
  18. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_content.rb +4 -4
  19. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_description.rb +1 -1
  20. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_footer.rb +1 -1
  21. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_header.rb +1 -1
  22. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_title.rb +1 -1
  23. data/lib/{ruby_ui → rbui}/alert_dialog/alert_dialog_trigger.rb +2 -2
  24. data/lib/{ruby_ui → rbui}/aspect_ratio/aspect_ratio.rb +1 -1
  25. data/lib/{ruby_ui → rbui}/avatar/avatar.rb +2 -2
  26. data/lib/{ruby_ui → rbui}/avatar/avatar_fallback.rb +1 -1
  27. data/lib/{ruby_ui → rbui}/avatar/avatar_image.rb +1 -1
  28. data/lib/{ruby_ui → rbui}/badge/badge.rb +2 -2
  29. data/lib/{ruby_ui → rbui}/base.rb +8 -1
  30. data/lib/{ruby_ui → rbui}/button/button.rb +13 -13
  31. data/lib/rbui/calendar/calendar.rb +39 -0
  32. data/lib/{ruby_ui → rbui}/calendar/calendar_body.rb +2 -2
  33. data/lib/{ruby_ui → rbui}/calendar/calendar_days.rb +14 -14
  34. data/lib/{ruby_ui → rbui}/calendar/calendar_header.rb +1 -1
  35. data/lib/{ruby_ui → rbui}/calendar/calendar_next.rb +2 -2
  36. data/lib/{ruby_ui → rbui}/calendar/calendar_prev.rb +2 -2
  37. data/lib/{ruby_ui → rbui}/calendar/calendar_title.rb +2 -2
  38. data/lib/{ruby_ui → rbui}/calendar/calendar_weekdays.rb +2 -2
  39. data/lib/{ruby_ui → rbui}/card/card.rb +1 -1
  40. data/lib/{ruby_ui → rbui}/card/card_content.rb +1 -1
  41. data/lib/{ruby_ui → rbui}/card/card_description.rb +1 -1
  42. data/lib/{ruby_ui → rbui}/card/card_footer.rb +1 -1
  43. data/lib/{ruby_ui → rbui}/card/card_header.rb +1 -1
  44. data/lib/{ruby_ui → rbui}/card/card_title.rb +1 -1
  45. data/lib/{ruby_ui → rbui}/chart/chart.rb +3 -3
  46. data/lib/{ruby_ui → rbui}/checkbox/checkbox.rb +4 -4
  47. data/lib/{ruby_ui → rbui}/checkbox/checkbox_group.rb +2 -2
  48. data/lib/{ruby_ui → rbui}/clipboard/clipboard.rb +6 -6
  49. data/lib/{ruby_ui → rbui}/clipboard/clipboard_popover.rb +2 -2
  50. data/lib/{ruby_ui → rbui}/clipboard/clipboard_source.rb +2 -2
  51. data/lib/{ruby_ui → rbui}/clipboard/clipboard_trigger.rb +3 -3
  52. data/lib/{ruby_ui → rbui}/codeblock/codeblock.rb +10 -7
  53. data/lib/{ruby_ui → rbui}/collapsible/collapsible.rb +3 -3
  54. data/lib/{ruby_ui → rbui}/collapsible/collapsible_content.rb +2 -2
  55. data/lib/{ruby_ui → rbui}/collapsible/collapsible_trigger.rb +2 -2
  56. data/lib/rbui/combobox/combobox.rb +24 -0
  57. data/lib/rbui/combobox/combobox_content.rb +31 -0
  58. data/lib/{ruby_ui → rbui}/combobox/combobox_empty.rb +2 -2
  59. data/lib/{ruby_ui → rbui}/combobox/combobox_group.rb +2 -2
  60. data/lib/{ruby_ui → rbui}/combobox/combobox_input.rb +4 -4
  61. data/lib/{ruby_ui → rbui}/combobox/combobox_item.rb +5 -5
  62. data/lib/{ruby_ui → rbui}/combobox/combobox_list.rb +4 -2
  63. data/lib/{ruby_ui → rbui}/combobox/combobox_search_input.rb +3 -3
  64. data/lib/{ruby_ui → rbui}/combobox/combobox_separator.rb +1 -1
  65. data/lib/{ruby_ui → rbui}/combobox/combobox_trigger.rb +3 -3
  66. data/lib/{ruby_ui → rbui}/combobox/combobox_value.rb +2 -2
  67. data/lib/{ruby_ui → rbui}/command/command.rb +1 -1
  68. data/lib/{ruby_ui → rbui}/command/command_dialog.rb +2 -2
  69. data/lib/{ruby_ui → rbui}/command/command_dialog_content.rb +6 -6
  70. data/lib/{ruby_ui → rbui}/command/command_dialog_trigger.rb +3 -3
  71. data/lib/{ruby_ui → rbui}/command/command_empty.rb +2 -2
  72. data/lib/{ruby_ui → rbui}/command/command_group.rb +2 -2
  73. data/lib/{ruby_ui → rbui}/command/command_input.rb +3 -3
  74. data/lib/{ruby_ui → rbui}/command/command_item.rb +2 -2
  75. data/lib/{ruby_ui → rbui}/command/command_list.rb +1 -1
  76. data/lib/{ruby_ui → rbui}/context_menu/context_menu.rb +2 -2
  77. data/lib/{ruby_ui → rbui}/context_menu/context_menu_content.rb +2 -2
  78. data/lib/{ruby_ui → rbui}/context_menu/context_menu_item.rb +3 -3
  79. data/lib/{ruby_ui → rbui}/context_menu/context_menu_label.rb +2 -2
  80. data/lib/{ruby_ui → rbui}/context_menu/context_menu_separator.rb +1 -1
  81. data/lib/{ruby_ui → rbui}/context_menu/context_menu_trigger.rb +3 -3
  82. data/lib/{ruby_ui → rbui}/dialog/dialog.rb +3 -3
  83. data/lib/{ruby_ui → rbui}/dialog/dialog_content.rb +7 -7
  84. data/lib/{ruby_ui → rbui}/dialog/dialog_description.rb +1 -1
  85. data/lib/{ruby_ui → rbui}/dialog/dialog_footer.rb +1 -1
  86. data/lib/{ruby_ui → rbui}/dialog/dialog_header.rb +1 -1
  87. data/lib/{ruby_ui → rbui}/dialog/dialog_middle.rb +1 -1
  88. data/lib/{ruby_ui → rbui}/dialog/dialog_title.rb +1 -1
  89. data/lib/{ruby_ui → rbui}/dialog/dialog_trigger.rb +2 -2
  90. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu.rb +4 -4
  91. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu_content.rb +2 -2
  92. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu_item.rb +3 -3
  93. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu_label.rb +1 -1
  94. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu_separator.rb +1 -1
  95. data/lib/{ruby_ui → rbui}/dropdown_menu/dropdown_menu_trigger.rb +2 -2
  96. data/lib/{ruby_ui → rbui}/form/form.rb +1 -1
  97. data/lib/{ruby_ui → rbui}/form/form_field.rb +2 -2
  98. data/lib/{ruby_ui → rbui}/form/form_field_error.rb +2 -2
  99. data/lib/{ruby_ui → rbui}/form/form_field_hint.rb +1 -1
  100. data/lib/{ruby_ui → rbui}/form/form_field_label.rb +1 -1
  101. data/lib/{ruby_ui → rbui}/hover_card/hover_card.rb +3 -3
  102. data/lib/{ruby_ui → rbui}/hover_card/hover_card_content.rb +2 -2
  103. data/lib/{ruby_ui → rbui}/hover_card/hover_card_trigger.rb +2 -2
  104. data/lib/{ruby_ui → rbui}/input/input.rb +3 -3
  105. data/lib/{ruby_ui → rbui}/link/link.rb +13 -13
  106. data/lib/{ruby_ui → rbui}/pagination/pagination.rb +1 -1
  107. data/lib/{ruby_ui → rbui}/pagination/pagination_content.rb +1 -1
  108. data/lib/{ruby_ui → rbui}/pagination/pagination_ellipsis.rb +1 -1
  109. data/lib/{ruby_ui → rbui}/pagination/pagination_item.rb +4 -4
  110. data/lib/{ruby_ui → rbui}/popover/popover.rb +4 -4
  111. data/lib/{ruby_ui → rbui}/popover/popover_content.rb +2 -2
  112. data/lib/{ruby_ui → rbui}/popover/popover_trigger.rb +2 -2
  113. data/lib/{ruby_ui → rbui}/radio_button/radio_button.rb +3 -3
  114. data/lib/rbui/railtie.rb +52 -0
  115. data/lib/{ruby_ui → rbui}/select/select.rb +5 -5
  116. data/lib/{ruby_ui → rbui}/select/select_content.rb +3 -3
  117. data/lib/{ruby_ui → rbui}/select/select_group.rb +1 -1
  118. data/lib/{ruby_ui → rbui}/select/select_input.rb +4 -4
  119. data/lib/{ruby_ui → rbui}/select/select_item.rb +4 -4
  120. data/lib/{ruby_ui → rbui}/select/select_label.rb +1 -1
  121. data/lib/{ruby_ui → rbui}/select/select_trigger.rb +3 -3
  122. data/lib/{ruby_ui → rbui}/select/select_value.rb +2 -2
  123. data/lib/{ruby_ui → rbui}/sheet/sheet.rb +2 -2
  124. data/lib/{ruby_ui → rbui}/sheet/sheet_content.rb +7 -7
  125. data/lib/{ruby_ui → rbui}/sheet/sheet_description.rb +1 -1
  126. data/lib/{ruby_ui → rbui}/sheet/sheet_footer.rb +1 -1
  127. data/lib/{ruby_ui → rbui}/sheet/sheet_header.rb +1 -1
  128. data/lib/{ruby_ui → rbui}/sheet/sheet_middle.rb +1 -1
  129. data/lib/{ruby_ui → rbui}/sheet/sheet_title.rb +1 -1
  130. data/lib/{ruby_ui → rbui}/sheet/sheet_trigger.rb +2 -2
  131. data/lib/{ruby_ui → rbui}/shortcut_key/shortcut_key.rb +1 -1
  132. data/lib/{ruby_ui → rbui}/table/table.rb +1 -1
  133. data/lib/{ruby_ui → rbui}/table/table_body.rb +1 -1
  134. data/lib/{ruby_ui → rbui}/table/table_caption.rb +1 -1
  135. data/lib/{ruby_ui → rbui}/table/table_cell.rb +1 -1
  136. data/lib/{ruby_ui → rbui}/table/table_footer.rb +1 -1
  137. data/lib/{ruby_ui → rbui}/table/table_head.rb +1 -1
  138. data/lib/{ruby_ui → rbui}/table/table_header.rb +1 -1
  139. data/lib/{ruby_ui → rbui}/table/table_row.rb +1 -1
  140. data/lib/{ruby_ui → rbui}/tabs/tabs.rb +3 -3
  141. data/lib/{ruby_ui → rbui}/tabs/tabs_content.rb +2 -2
  142. data/lib/{ruby_ui → rbui}/tabs/tabs_list.rb +1 -1
  143. data/lib/{ruby_ui → rbui}/tabs/tabs_trigger.rb +3 -3
  144. data/lib/{ruby_ui → rbui}/textarea/textarea.rb +3 -3
  145. data/lib/{ruby_ui → rbui}/theme_toggle/theme_toggle.rb +4 -4
  146. data/lib/{ruby_ui → rbui}/tooltip/tooltip.rb +3 -3
  147. data/lib/{ruby_ui → rbui}/tooltip/tooltip_content.rb +3 -3
  148. data/lib/{ruby_ui → rbui}/tooltip/tooltip_trigger.rb +2 -2
  149. data/lib/{ruby_ui → rbui}/typography/typography_blockquote.rb +1 -1
  150. data/lib/rbui/typography/typography_h1.rb +17 -0
  151. data/lib/rbui/typography/typography_h2.rb +17 -0
  152. data/lib/rbui/typography/typography_h3.rb +17 -0
  153. data/lib/rbui/typography/typography_h4.rb +17 -0
  154. data/lib/{ruby_ui/typography/inline_code.rb → rbui/typography/typography_inline_code.rb} +2 -2
  155. data/lib/{ruby_ui/typography/inline_link.rb → rbui/typography/typography_inline_link.rb} +2 -2
  156. data/lib/rbui/typography/typography_large.rb +17 -0
  157. data/lib/rbui/typography/typography_lead.rb +17 -0
  158. data/lib/rbui/typography/typography_list.rb +47 -0
  159. data/lib/rbui/typography/typography_list_item.rb +17 -0
  160. data/lib/rbui/typography/typography_muted.rb +17 -0
  161. data/lib/rbui/typography/typography_p.rb +17 -0
  162. data/lib/rbui/typography/typography_small.rb +17 -0
  163. data/lib/rbui/version.rb +5 -0
  164. data/lib/rbui.rb +57 -0
  165. data/lib/ruby_ui.rb +1 -5
  166. metadata +174 -163
  167. data/lib/generators/ruby_ui/component_generator.rb +0 -130
  168. data/lib/generators/ruby_ui/install/install_generator.rb +0 -90
  169. data/lib/generators/ruby_ui/javascript_utils.rb +0 -36
  170. data/lib/ruby_ui/calendar/calendar.rb +0 -39
  171. data/lib/ruby_ui/combobox/combobox.rb +0 -24
  172. data/lib/ruby_ui/combobox/combobox_content.rb +0 -31
  173. data/lib/ruby_ui/masked_input/masked_input.rb +0 -15
  174. data/lib/ruby_ui/typography/heading.rb +0 -60
  175. data/lib/ruby_ui/typography/text.rb +0 -53
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyUI
4
- class Combobox < Base
5
- def view_template(&)
6
- div(**attrs, &)
7
- end
8
-
9
- private
10
-
11
- def default_attrs
12
- {
13
- data: {
14
- controller: "ruby-ui--combobox",
15
- ruby_ui__combobox_open_value: "false",
16
- action: "click@window->ruby-ui--combobox#onClickOutside",
17
- ruby_ui__combobox_ruby_ui__combobox_content_outlet: ".combobox-content",
18
- ruby_ui__combobox_ruby_ui__combobox_item_outlet: ".combobox-item"
19
- },
20
- class: "group/combobox w-full relative"
21
- }
22
- end
23
- end
24
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyUI
4
- class ComboboxContent < Base
5
- def initialize(**attrs)
6
- @id = "content#{SecureRandom.hex(4)}"
7
- super
8
- end
9
-
10
- def view_template(&)
11
- div(**attrs) do
12
- div(class: "min-w-max max-h-[300px] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md outline-none animate-out group-data-[ruby-ui--combobox-open-value=true]/combobox:animate-in fade-out-0 group-data-[ruby-ui--combobox-open-value=true]/combobox:fade-in-0 zoom-out-95 group-data-[ruby-ui--combobox-open-value=true]/combobox:zoom-in-95 slide-in-from-top-2", &)
13
- end
14
- end
15
-
16
- private
17
-
18
- def default_attrs
19
- {
20
- id: @id,
21
- role: "listbox",
22
- data: {
23
- controller: "ruby-ui--combobox-content",
24
- ruby_ui__combobox_target: "content",
25
- action: "keydown.enter->ruby-ui--combobox#onKeyEnter keydown.esc->ruby-ui--combobox#onEscKey keydown.down->ruby-ui--combobox#onKeyDown keydown.up->ruby-ui--combobox#onKeyUp"
26
- },
27
- class: "combobox-content hidden w-full absolute top-0 left-0 z-50"
28
- }
29
- end
30
- end
31
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyUI
4
- class MaskedInput < Base
5
- def view_template
6
- Input(type: "text", **attrs)
7
- end
8
-
9
- private
10
-
11
- def default_attrs
12
- {data: {controller: "ruby-ui--masked-input"}}
13
- end
14
- end
15
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyUI
4
- class Heading < Base
5
- def initialize(level: nil, as: nil, size: nil, **attrs)
6
- @level = level
7
- @as = as
8
- @size = size
9
- super(**attrs)
10
- end
11
-
12
- def view_template(&)
13
- tag = determine_tag
14
- public_send(tag, **attrs, &)
15
- end
16
-
17
- private
18
-
19
- def determine_tag
20
- return @as if @as
21
- return "h#{@level}" if @level
22
- "h1"
23
- end
24
-
25
- def default_attrs
26
- {
27
- class: class_names
28
- }
29
- end
30
-
31
- def class_names
32
- base_classes = "scroll-m-20 font-bold tracking-tight"
33
- size_class = size_to_class[(@size || level_to_size[@level&.to_s] || "6").to_s]
34
- "#{base_classes} #{size_class}"
35
- end
36
-
37
- def size_to_class
38
- {
39
- "1" => "text-xs",
40
- "2" => "text-sm",
41
- "3" => "text-base",
42
- "4" => "text-lg",
43
- "5" => "text-xl",
44
- "6" => "text-2xl",
45
- "7" => "text-3xl lg:text-4xl",
46
- "8" => "text-4xl",
47
- "9" => "text-5xl"
48
- }
49
- end
50
-
51
- def level_to_size
52
- {
53
- "1" => "7",
54
- "2" => "6",
55
- "3" => "5",
56
- "4" => "4"
57
- }
58
- end
59
- end
60
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyUI
4
- class Text < Base
5
- def initialize(as: "p", size: "3", weight: "regular", **attrs)
6
- @as = as
7
- @size = size
8
- @weight = weight
9
- super(**attrs)
10
- end
11
-
12
- def view_template(&)
13
- public_send(@as, **attrs, &)
14
- end
15
-
16
- private
17
-
18
- def default_attrs
19
- {
20
- class: class_names
21
- }
22
- end
23
-
24
- def class_names
25
- "#{size_to_class[@size]} #{weight_to_class[@weight]}"
26
- end
27
-
28
- def size_to_class
29
- {
30
- "1" => "text-xs", "xs" => "text-xs",
31
- "2" => "text-sm", "sm" => "text-sm",
32
- "3" => "text-base", "base" => "text-base",
33
- "4" => "text-lg", "lg" => "text-lg",
34
- "5" => "text-xl", "xl" => "text-xl",
35
- "6" => "text-2xl", "2xl" => "text-2xl",
36
- "7" => "text-3xl", "3xl" => "text-3xl",
37
- "8" => "text-4xl", "4xl" => "text-4xl",
38
- "9" => "text-5xl", "5xl" => "text-5xl"
39
- }
40
- end
41
-
42
- def weight_to_class
43
- {
44
- "muted" => "text-muted-foreground",
45
- "light" => "font-light",
46
- "regular" => "font-normal",
47
- "medium" => "font-medium",
48
- "semibold" => "font-semibold",
49
- "bold" => "font-bold"
50
- }
51
- end
52
- end
53
- end