ruby_ui 1.1.0 → 1.3.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 +4 -4
- data/lib/generators/ruby_ui/component_generator.rb +5 -1
- data/lib/generators/ruby_ui/dependencies.yml +32 -0
- data/lib/generators/ruby_ui/install/install_generator.rb +1 -1
- data/lib/generators/ruby_ui/install/templates/tailwind.css.erb +1 -1
- data/lib/generators/ruby_ui/javascript_utils.rb +27 -6
- data/lib/ruby_ui/avatar/avatar.rb +3 -0
- data/lib/ruby_ui/avatar/avatar_controller.js +33 -0
- data/lib/ruby_ui/avatar/avatar_fallback.rb +3 -0
- data/lib/ruby_ui/avatar/avatar_image.rb +4 -0
- data/lib/ruby_ui/base.rb +6 -0
- data/lib/ruby_ui/calendar/calendar.rb +3 -1
- data/lib/ruby_ui/calendar/calendar_controller.js +66 -7
- data/lib/ruby_ui/calendar/calendar_days.rb +20 -0
- data/lib/ruby_ui/calendar/calendar_docs.rb +9 -0
- data/lib/ruby_ui/combobox/combobox_badge.rb +17 -0
- data/lib/ruby_ui/combobox/combobox_badge_trigger.rb +47 -0
- data/lib/ruby_ui/combobox/combobox_clear_button.rb +40 -0
- data/lib/ruby_ui/combobox/combobox_controller.js +4 -2
- data/lib/ruby_ui/combobox/combobox_docs.rb +199 -64
- data/lib/ruby_ui/combobox/combobox_input_trigger.rb +64 -0
- data/lib/ruby_ui/combobox/combobox_item_indicator.rb +30 -0
- data/lib/ruby_ui/command/command_controller.js +10 -19
- data/lib/ruby_ui/command/command_dialog.rb +4 -1
- data/lib/ruby_ui/command/command_dialog_content.rb +2 -2
- data/lib/ruby_ui/command/command_dialog_controller.js +34 -0
- data/lib/ruby_ui/command/command_dialog_trigger.rb +2 -2
- data/lib/ruby_ui/data_table/data_table.rb +29 -0
- data/lib/ruby_ui/data_table/data_table_bulk_actions.rb +18 -0
- data/lib/ruby_ui/data_table/data_table_column_toggle.rb +62 -0
- data/lib/ruby_ui/data_table/data_table_column_visibility_controller.js +14 -0
- data/lib/ruby_ui/data_table/data_table_controller.js +57 -0
- data/lib/ruby_ui/data_table/data_table_docs.rb +180 -0
- data/lib/ruby_ui/data_table/data_table_expand_toggle.rb +53 -0
- data/lib/ruby_ui/data_table/data_table_form.rb +39 -0
- data/lib/ruby_ui/data_table/data_table_kaminari_adapter.rb +17 -0
- data/lib/ruby_ui/data_table/data_table_manual_adapter.rb +17 -0
- data/lib/ruby_ui/data_table/data_table_pagination.rb +100 -0
- data/lib/ruby_ui/data_table/data_table_pagination_bar.rb +15 -0
- data/lib/ruby_ui/data_table/data_table_pagy_adapter.rb +17 -0
- data/lib/ruby_ui/data_table/data_table_per_page_select.rb +35 -0
- data/lib/ruby_ui/data_table/data_table_row_checkbox.rb +30 -0
- data/lib/ruby_ui/data_table/data_table_search.rb +57 -0
- data/lib/ruby_ui/data_table/data_table_search_controller.js +62 -0
- data/lib/ruby_ui/data_table/data_table_select_all_checkbox.rb +21 -0
- data/lib/ruby_ui/data_table/data_table_selection_summary.rb +25 -0
- data/lib/ruby_ui/data_table/data_table_sort_head.rb +112 -0
- data/lib/ruby_ui/data_table/data_table_toolbar.rb +15 -0
- data/lib/ruby_ui/date_picker/date_picker.rb +85 -0
- data/lib/ruby_ui/date_picker/date_picker_docs.rb +23 -0
- data/lib/ruby_ui/native_select/native_select.rb +39 -0
- data/lib/ruby_ui/native_select/native_select_docs.rb +83 -0
- data/lib/ruby_ui/native_select/native_select_group.rb +15 -0
- data/lib/ruby_ui/native_select/native_select_icon.rb +39 -0
- data/lib/ruby_ui/native_select/native_select_option.rb +15 -0
- data/lib/ruby_ui/select/select_value.rb +2 -1
- data/lib/ruby_ui/sheet/sheet.rb +9 -1
- data/lib/ruby_ui/sheet/sheet_controller.js +6 -0
- data/lib/ruby_ui/theme_toggle/theme_toggle.rb +14 -2
- data/lib/ruby_ui/theme_toggle/theme_toggle_controller.js +27 -19
- data/lib/ruby_ui/theme_toggle/theme_toggle_docs.rb +12 -42
- data/lib/ruby_ui/toast/toast.rb +18 -0
- data/lib/ruby_ui/toast/toast_action.rb +27 -0
- data/lib/ruby_ui/toast/toast_cancel.rb +27 -0
- data/lib/ruby_ui/toast/toast_close.rb +40 -0
- data/lib/ruby_ui/toast/toast_controller.js +151 -0
- data/lib/ruby_ui/toast/toast_description.rb +18 -0
- data/lib/ruby_ui/toast/toast_docs.rb +12 -0
- data/lib/ruby_ui/toast/toast_icon.rb +65 -0
- data/lib/ruby_ui/toast/toast_item.rb +72 -0
- data/lib/ruby_ui/toast/toast_region.rb +124 -0
- data/lib/ruby_ui/toast/toast_title.rb +18 -0
- data/lib/ruby_ui/toast/toaster_controller.js +306 -0
- data/lib/ruby_ui/toggle/toggle.rb +101 -0
- data/lib/ruby_ui/toggle/toggle_controller.js +33 -0
- data/lib/ruby_ui/toggle_group/toggle_group.rb +119 -0
- data/lib/ruby_ui/toggle_group/toggle_group_controller.js +126 -0
- data/lib/ruby_ui/toggle_group/toggle_group_item.rb +67 -0
- data/lib/ruby_ui/tooltip/tooltip_content.rb +12 -5
- data/lib/ruby_ui/tooltip/tooltip_controller.js +58 -22
- data/lib/ruby_ui/tooltip/tooltip_docs.rb +13 -0
- data/lib/ruby_ui/tooltip/tooltip_trigger.rb +10 -3
- data/lib/ruby_ui.rb +3 -1
- metadata +66 -10
- data/lib/ruby_ui/theme_toggle/set_dark_mode.rb +0 -16
- data/lib/ruby_ui/theme_toggle/set_light_mode.rb +0 -16
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyUI
|
|
4
|
+
class ToggleGroupItem < Toggle
|
|
5
|
+
JOIN_BASE = "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10"
|
|
6
|
+
|
|
7
|
+
def initialize(value:, group_context:, variant: nil, size: nil, **attrs)
|
|
8
|
+
@item_value = value.to_s
|
|
9
|
+
@group_context = group_context
|
|
10
|
+
|
|
11
|
+
pressed = group_context[:selected_values].include?(@item_value)
|
|
12
|
+
super(
|
|
13
|
+
pressed: pressed,
|
|
14
|
+
name: nil,
|
|
15
|
+
value: @item_value,
|
|
16
|
+
variant: variant || group_context[:variant],
|
|
17
|
+
size: size || group_context[:size],
|
|
18
|
+
disabled: group_context[:disabled],
|
|
19
|
+
**attrs
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def view_template(&block)
|
|
24
|
+
button(**attrs, &block)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def default_attrs
|
|
30
|
+
attrs = {type: "button"}
|
|
31
|
+
attrs[:disabled] = true if @disabled
|
|
32
|
+
attrs[:data] = {
|
|
33
|
+
state: @pressed ? "on" : "off",
|
|
34
|
+
value: @item_value,
|
|
35
|
+
"ruby-ui--toggle-group-target": "item",
|
|
36
|
+
action: "click->ruby-ui--toggle-group#select keydown->ruby-ui--toggle-group#navigate"
|
|
37
|
+
}
|
|
38
|
+
attrs[:class] = [Toggle.classes_for(variant: @variant, size: @size), join_classes]
|
|
39
|
+
|
|
40
|
+
if @group_context[:type] == :single
|
|
41
|
+
attrs[:role] = "radio"
|
|
42
|
+
attrs[:aria] = {checked: @pressed.to_s}
|
|
43
|
+
attrs[:tabindex] = @pressed ? "0" : "-1"
|
|
44
|
+
else
|
|
45
|
+
attrs[:aria] = {pressed: @pressed.to_s}
|
|
46
|
+
attrs[:tabindex] = "0"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
attrs
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def join_classes
|
|
53
|
+
classes = [JOIN_BASE]
|
|
54
|
+
return classes unless @group_context[:spacing] == 0
|
|
55
|
+
|
|
56
|
+
classes << "rounded-none shadow-none"
|
|
57
|
+
if @group_context[:orientation] == :vertical
|
|
58
|
+
classes << "first-of-type:rounded-t-md last-of-type:rounded-b-md"
|
|
59
|
+
classes << "border-t-0 first-of-type:border-t" if @group_context[:variant] == :outline
|
|
60
|
+
else
|
|
61
|
+
classes << "first-of-type:rounded-l-md last-of-type:rounded-r-md"
|
|
62
|
+
classes << "border-l-0 first-of-type:border-l" if @group_context[:variant] == :outline
|
|
63
|
+
end
|
|
64
|
+
classes
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -8,7 +8,9 @@ module RubyUI
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def view_template(&)
|
|
11
|
-
|
|
11
|
+
template(data: {ruby_ui__tooltip_target: "content"}) do
|
|
12
|
+
div(**attrs, &)
|
|
13
|
+
end
|
|
12
14
|
end
|
|
13
15
|
|
|
14
16
|
private
|
|
@@ -16,10 +18,15 @@ module RubyUI
|
|
|
16
18
|
def default_attrs
|
|
17
19
|
{
|
|
18
20
|
id: @id,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
class: [
|
|
22
|
+
"invisible pointer-events-none w-fit max-w-[calc(100vw-2rem)] text-balance break-words absolute top-0 left-0 z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md",
|
|
23
|
+
"data-[placement=bottom]:slide-in-from-top-2",
|
|
24
|
+
"data-[placement=left]:slide-in-from-right-2",
|
|
25
|
+
"data-[placement=right]:slide-in-from-left-2",
|
|
26
|
+
"data-[placement=top]:slide-in-from-bottom-2",
|
|
27
|
+
"data-[state=open]:visible data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
28
|
+
"data-[state=closed]:visible data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:fill-mode-forwards"
|
|
29
|
+
]
|
|
23
30
|
}
|
|
24
31
|
end
|
|
25
32
|
end
|
|
@@ -3,36 +3,72 @@ import { computePosition, autoUpdate, offset, shift } from "@floating-ui/dom";
|
|
|
3
3
|
|
|
4
4
|
export default class extends Controller {
|
|
5
5
|
static targets = ["trigger", "content"];
|
|
6
|
-
static values = { placement: String }
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
static values = { placement: "top" };
|
|
8
|
+
|
|
9
|
+
mount() {
|
|
10
|
+
if (this.mounted) return;
|
|
11
|
+
|
|
12
|
+
const element = this.cloneTemplate();
|
|
13
|
+
element.setAttribute("data-placement", this.placementValue);
|
|
14
|
+
document.body.appendChild(element);
|
|
15
|
+
|
|
16
|
+
this.triggerTarget.setAttribute("aria-describedby", element.id);
|
|
17
|
+
element.addEventListener("animationend", (event) => this.animationEnd(event));
|
|
18
|
+
|
|
19
|
+
const onBeforeCache = () => this.unmount();
|
|
20
|
+
document.addEventListener("turbo:before-cache", onBeforeCache);
|
|
21
|
+
|
|
22
|
+
this.mounted = { element, onBeforeCache };
|
|
23
|
+
this.mounted.stopAutoUpdate = autoUpdate(this.triggerTarget, element, () => this.reposition());
|
|
11
24
|
}
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
this.
|
|
26
|
+
unmount() {
|
|
27
|
+
if (!this.mounted) return;
|
|
15
28
|
|
|
16
|
-
|
|
17
|
-
this.triggerTarget.setAttribute("aria-describedby", tooltipId);
|
|
29
|
+
document.removeEventListener("turbo:before-cache", this.mounted.onBeforeCache);
|
|
18
30
|
|
|
31
|
+
this.mounted.stopAutoUpdate?.();
|
|
32
|
+
this.mounted.element.remove();
|
|
33
|
+
this.triggerTarget.removeAttribute("aria-describedby");
|
|
34
|
+
|
|
35
|
+
this.mounted = null;
|
|
19
36
|
}
|
|
20
37
|
|
|
21
38
|
disconnect() {
|
|
22
|
-
this.
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
this.unmount();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
show() {
|
|
43
|
+
if (!this.hasContentTarget) return;
|
|
44
|
+
|
|
45
|
+
this.mount();
|
|
46
|
+
this.mounted.element.setAttribute("data-state", "open");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
hide() {
|
|
50
|
+
this.mounted?.element.setAttribute("data-state", "closed");
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
animationEnd(event) {
|
|
54
|
+
if (event.animationName !== "exit") return;
|
|
55
|
+
if (this.mounted?.element.getAttribute("data-state") !== "closed") return;
|
|
56
|
+
|
|
57
|
+
this.unmount();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
cloneTemplate() {
|
|
61
|
+
return this.contentTarget.content.firstElementChild.cloneNode(true);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
reposition() {
|
|
65
|
+
if (!this.mounted) return;
|
|
66
|
+
|
|
67
|
+
const position = { placement: this.placementValue, middleware: [offset(4), shift()] };
|
|
68
|
+
|
|
69
|
+
computePosition(this.triggerTarget, this.mounted.element, position).then(({ x, y }) => {
|
|
70
|
+
this.mounted?.element.style.setProperty("left", `${x}px`);
|
|
71
|
+
this.mounted?.element.style.setProperty("top", `${y}px`);
|
|
36
72
|
});
|
|
37
73
|
}
|
|
38
74
|
}
|
|
@@ -24,6 +24,19 @@ class Views::Docs::Tooltip < Views::Base
|
|
|
24
24
|
RUBY
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
render Docs::VisualCodeExample.new(title: "Long content", context: self) do
|
|
28
|
+
<<~RUBY
|
|
29
|
+
Tooltip do
|
|
30
|
+
TooltipTrigger do
|
|
31
|
+
Button(variant: :outline) { "Hover me" }
|
|
32
|
+
end
|
|
33
|
+
TooltipContent do
|
|
34
|
+
Text { "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
RUBY
|
|
38
|
+
end
|
|
39
|
+
|
|
27
40
|
render Components::ComponentSetup::Tabs.new(component_name: component)
|
|
28
41
|
|
|
29
42
|
render Docs::ComponentsTable.new(component_files(component))
|
|
@@ -10,9 +10,16 @@ module RubyUI
|
|
|
10
10
|
|
|
11
11
|
def default_attrs
|
|
12
12
|
{
|
|
13
|
-
data: {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
data: {
|
|
14
|
+
ruby_ui__tooltip_target: "trigger",
|
|
15
|
+
action: [
|
|
16
|
+
"mouseenter->ruby-ui--tooltip#show",
|
|
17
|
+
"mouseleave->ruby-ui--tooltip#hide",
|
|
18
|
+
"focus->ruby-ui--tooltip#show",
|
|
19
|
+
"blur->ruby-ui--tooltip#hide"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
variant: :outline
|
|
16
23
|
}
|
|
17
24
|
end
|
|
18
25
|
end
|
data/lib/ruby_ui.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_ui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- George Kettle
|
|
@@ -13,6 +13,9 @@ dependencies:
|
|
|
13
13
|
name: phlex
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.1'
|
|
16
19
|
- - ">="
|
|
17
20
|
- !ruby/object:Gem::Version
|
|
18
21
|
version: 2.1.2
|
|
@@ -20,6 +23,9 @@ dependencies:
|
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
25
|
requirements:
|
|
26
|
+
- - "~>"
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
version: '2.1'
|
|
23
29
|
- - ">="
|
|
24
30
|
- !ruby/object:Gem::Version
|
|
25
31
|
version: 2.1.2
|
|
@@ -29,28 +35,28 @@ dependencies:
|
|
|
29
35
|
requirements:
|
|
30
36
|
- - "~>"
|
|
31
37
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
38
|
+
version: 5.0.0
|
|
33
39
|
type: :development
|
|
34
40
|
prerelease: false
|
|
35
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
42
|
requirements:
|
|
37
43
|
- - "~>"
|
|
38
44
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
45
|
+
version: 5.0.0
|
|
40
46
|
- !ruby/object:Gem::Dependency
|
|
41
47
|
name: tailwind_merge
|
|
42
48
|
requirement: !ruby/object:Gem::Requirement
|
|
43
49
|
requirements:
|
|
44
50
|
- - "~>"
|
|
45
51
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
52
|
+
version: '1.4'
|
|
47
53
|
type: :development
|
|
48
54
|
prerelease: false
|
|
49
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
56
|
requirements:
|
|
51
57
|
- - "~>"
|
|
52
58
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
59
|
+
version: '1.4'
|
|
54
60
|
- !ruby/object:Gem::Dependency
|
|
55
61
|
name: rake
|
|
56
62
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -85,14 +91,14 @@ dependencies:
|
|
|
85
91
|
requirements:
|
|
86
92
|
- - "~>"
|
|
87
93
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
94
|
+
version: '6.0'
|
|
89
95
|
type: :development
|
|
90
96
|
prerelease: false
|
|
91
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
98
|
requirements:
|
|
93
99
|
- - "~>"
|
|
94
100
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
101
|
+
version: '6.0'
|
|
96
102
|
description: Ruby UI is a UI Component Library for Ruby developers. Built on top of
|
|
97
103
|
the Phlex Framework.
|
|
98
104
|
email: george.kettle@icloud.com
|
|
@@ -138,6 +144,7 @@ files:
|
|
|
138
144
|
- lib/ruby_ui/aspect_ratio/aspect_ratio.rb
|
|
139
145
|
- lib/ruby_ui/aspect_ratio/aspect_ratio_docs.rb
|
|
140
146
|
- lib/ruby_ui/avatar/avatar.rb
|
|
147
|
+
- lib/ruby_ui/avatar/avatar_controller.js
|
|
141
148
|
- lib/ruby_ui/avatar/avatar_docs.rb
|
|
142
149
|
- lib/ruby_ui/avatar/avatar_fallback.rb
|
|
143
150
|
- lib/ruby_ui/avatar/avatar_image.rb
|
|
@@ -200,11 +207,16 @@ files:
|
|
|
200
207
|
- lib/ruby_ui/collapsible/collapsible_docs.rb
|
|
201
208
|
- lib/ruby_ui/collapsible/collapsible_trigger.rb
|
|
202
209
|
- lib/ruby_ui/combobox/combobox.rb
|
|
210
|
+
- lib/ruby_ui/combobox/combobox_badge.rb
|
|
211
|
+
- lib/ruby_ui/combobox/combobox_badge_trigger.rb
|
|
203
212
|
- lib/ruby_ui/combobox/combobox_checkbox.rb
|
|
213
|
+
- lib/ruby_ui/combobox/combobox_clear_button.rb
|
|
204
214
|
- lib/ruby_ui/combobox/combobox_controller.js
|
|
205
215
|
- lib/ruby_ui/combobox/combobox_docs.rb
|
|
206
216
|
- lib/ruby_ui/combobox/combobox_empty_state.rb
|
|
217
|
+
- lib/ruby_ui/combobox/combobox_input_trigger.rb
|
|
207
218
|
- lib/ruby_ui/combobox/combobox_item.rb
|
|
219
|
+
- lib/ruby_ui/combobox/combobox_item_indicator.rb
|
|
208
220
|
- lib/ruby_ui/combobox/combobox_list.rb
|
|
209
221
|
- lib/ruby_ui/combobox/combobox_list_group.rb
|
|
210
222
|
- lib/ruby_ui/combobox/combobox_popover.rb
|
|
@@ -216,6 +228,7 @@ files:
|
|
|
216
228
|
- lib/ruby_ui/command/command_controller.js
|
|
217
229
|
- lib/ruby_ui/command/command_dialog.rb
|
|
218
230
|
- lib/ruby_ui/command/command_dialog_content.rb
|
|
231
|
+
- lib/ruby_ui/command/command_dialog_controller.js
|
|
219
232
|
- lib/ruby_ui/command/command_dialog_trigger.rb
|
|
220
233
|
- lib/ruby_ui/command/command_docs.rb
|
|
221
234
|
- lib/ruby_ui/command/command_empty.rb
|
|
@@ -231,6 +244,29 @@ files:
|
|
|
231
244
|
- lib/ruby_ui/context_menu/context_menu_label.rb
|
|
232
245
|
- lib/ruby_ui/context_menu/context_menu_separator.rb
|
|
233
246
|
- lib/ruby_ui/context_menu/context_menu_trigger.rb
|
|
247
|
+
- lib/ruby_ui/data_table/data_table.rb
|
|
248
|
+
- lib/ruby_ui/data_table/data_table_bulk_actions.rb
|
|
249
|
+
- lib/ruby_ui/data_table/data_table_column_toggle.rb
|
|
250
|
+
- lib/ruby_ui/data_table/data_table_column_visibility_controller.js
|
|
251
|
+
- lib/ruby_ui/data_table/data_table_controller.js
|
|
252
|
+
- lib/ruby_ui/data_table/data_table_docs.rb
|
|
253
|
+
- lib/ruby_ui/data_table/data_table_expand_toggle.rb
|
|
254
|
+
- lib/ruby_ui/data_table/data_table_form.rb
|
|
255
|
+
- lib/ruby_ui/data_table/data_table_kaminari_adapter.rb
|
|
256
|
+
- lib/ruby_ui/data_table/data_table_manual_adapter.rb
|
|
257
|
+
- lib/ruby_ui/data_table/data_table_pagination.rb
|
|
258
|
+
- lib/ruby_ui/data_table/data_table_pagination_bar.rb
|
|
259
|
+
- lib/ruby_ui/data_table/data_table_pagy_adapter.rb
|
|
260
|
+
- lib/ruby_ui/data_table/data_table_per_page_select.rb
|
|
261
|
+
- lib/ruby_ui/data_table/data_table_row_checkbox.rb
|
|
262
|
+
- lib/ruby_ui/data_table/data_table_search.rb
|
|
263
|
+
- lib/ruby_ui/data_table/data_table_search_controller.js
|
|
264
|
+
- lib/ruby_ui/data_table/data_table_select_all_checkbox.rb
|
|
265
|
+
- lib/ruby_ui/data_table/data_table_selection_summary.rb
|
|
266
|
+
- lib/ruby_ui/data_table/data_table_sort_head.rb
|
|
267
|
+
- lib/ruby_ui/data_table/data_table_toolbar.rb
|
|
268
|
+
- lib/ruby_ui/date_picker/date_picker.rb
|
|
269
|
+
- lib/ruby_ui/date_picker/date_picker_docs.rb
|
|
234
270
|
- lib/ruby_ui/dialog/dialog.rb
|
|
235
271
|
- lib/ruby_ui/dialog/dialog_content.rb
|
|
236
272
|
- lib/ruby_ui/dialog/dialog_controller.js
|
|
@@ -274,6 +310,11 @@ files:
|
|
|
274
310
|
- lib/ruby_ui/masked_input/masked_input.rb
|
|
275
311
|
- lib/ruby_ui/masked_input/masked_input_controller.js
|
|
276
312
|
- lib/ruby_ui/masked_input/masked_input_docs.rb
|
|
313
|
+
- lib/ruby_ui/native_select/native_select.rb
|
|
314
|
+
- lib/ruby_ui/native_select/native_select_docs.rb
|
|
315
|
+
- lib/ruby_ui/native_select/native_select_group.rb
|
|
316
|
+
- lib/ruby_ui/native_select/native_select_icon.rb
|
|
317
|
+
- lib/ruby_ui/native_select/native_select_option.rb
|
|
277
318
|
- lib/ruby_ui/pagination/pagination.rb
|
|
278
319
|
- lib/ruby_ui/pagination/pagination_content.rb
|
|
279
320
|
- lib/ruby_ui/pagination/pagination_docs.rb
|
|
@@ -363,11 +404,26 @@ files:
|
|
|
363
404
|
- lib/ruby_ui/tabs/tabs_trigger.rb
|
|
364
405
|
- lib/ruby_ui/textarea/textarea.rb
|
|
365
406
|
- lib/ruby_ui/textarea/textarea_docs.rb
|
|
366
|
-
- lib/ruby_ui/theme_toggle/set_dark_mode.rb
|
|
367
|
-
- lib/ruby_ui/theme_toggle/set_light_mode.rb
|
|
368
407
|
- lib/ruby_ui/theme_toggle/theme_toggle.rb
|
|
369
408
|
- lib/ruby_ui/theme_toggle/theme_toggle_controller.js
|
|
370
409
|
- lib/ruby_ui/theme_toggle/theme_toggle_docs.rb
|
|
410
|
+
- lib/ruby_ui/toast/toast.rb
|
|
411
|
+
- lib/ruby_ui/toast/toast_action.rb
|
|
412
|
+
- lib/ruby_ui/toast/toast_cancel.rb
|
|
413
|
+
- lib/ruby_ui/toast/toast_close.rb
|
|
414
|
+
- lib/ruby_ui/toast/toast_controller.js
|
|
415
|
+
- lib/ruby_ui/toast/toast_description.rb
|
|
416
|
+
- lib/ruby_ui/toast/toast_docs.rb
|
|
417
|
+
- lib/ruby_ui/toast/toast_icon.rb
|
|
418
|
+
- lib/ruby_ui/toast/toast_item.rb
|
|
419
|
+
- lib/ruby_ui/toast/toast_region.rb
|
|
420
|
+
- lib/ruby_ui/toast/toast_title.rb
|
|
421
|
+
- lib/ruby_ui/toast/toaster_controller.js
|
|
422
|
+
- lib/ruby_ui/toggle/toggle.rb
|
|
423
|
+
- lib/ruby_ui/toggle/toggle_controller.js
|
|
424
|
+
- lib/ruby_ui/toggle_group/toggle_group.rb
|
|
425
|
+
- lib/ruby_ui/toggle_group/toggle_group_controller.js
|
|
426
|
+
- lib/ruby_ui/toggle_group/toggle_group_item.rb
|
|
371
427
|
- lib/ruby_ui/tooltip/tooltip.rb
|
|
372
428
|
- lib/ruby_ui/tooltip/tooltip_content.rb
|
|
373
429
|
- lib/ruby_ui/tooltip/tooltip_controller.js
|
|
@@ -397,7 +453,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
397
453
|
- !ruby/object:Gem::Version
|
|
398
454
|
version: '0'
|
|
399
455
|
requirements: []
|
|
400
|
-
rubygems_version:
|
|
456
|
+
rubygems_version: 4.0.10
|
|
401
457
|
specification_version: 4
|
|
402
458
|
summary: RubyUI is a UI Component Library for Ruby developers.
|
|
403
459
|
test_files: []
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyUI
|
|
4
|
-
class SetDarkMode < Base
|
|
5
|
-
def view_template(&)
|
|
6
|
-
div(**attrs, &)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def default_attrs
|
|
10
|
-
{
|
|
11
|
-
class: "hidden dark:inline-block",
|
|
12
|
-
data: {controller: "ruby-ui--theme-toggle", action: "click->ruby-ui--theme-toggle#setLightTheme"}
|
|
13
|
-
}
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyUI
|
|
4
|
-
class SetLightMode < Base
|
|
5
|
-
def view_template(&)
|
|
6
|
-
div(**attrs, &)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def default_attrs
|
|
10
|
-
{
|
|
11
|
-
class: "dark:hidden",
|
|
12
|
-
data: {controller: "ruby-ui--theme-toggle", action: "click->ruby-ui--theme-toggle#setDarkTheme"}
|
|
13
|
-
}
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|