lightning_ui_kit 0.3.1 → 0.3.2
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/README.md +30 -0
- data/app/assets/stylesheets/lightning_ui_kit/application.css +58 -0
- data/app/assets/stylesheets/lightning_ui_kit/themes.css +133 -0
- data/app/components/lightning_ui_kit/alert_component.rb +1 -1
- data/app/components/lightning_ui_kit/avatar_component.html.erb +1 -1
- data/app/components/lightning_ui_kit/badge_component.rb +14 -14
- data/app/components/lightning_ui_kit/banner_component.html.erb +1 -1
- data/app/components/lightning_ui_kit/banner_component.rb +3 -3
- data/app/components/lightning_ui_kit/button_component.rb +16 -16
- data/app/components/lightning_ui_kit/checkbox_component.html.erb +10 -10
- data/app/components/lightning_ui_kit/combobox_component.html.erb +14 -14
- data/app/components/lightning_ui_kit/combobox_component.rb +4 -4
- data/app/components/lightning_ui_kit/description_list/item_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/dropdown_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/dropdown_component.rb +1 -1
- data/app/components/lightning_ui_kit/dropzone_component.html.erb +13 -13
- data/app/components/lightning_ui_kit/dropzone_component.rb +1 -1
- data/app/components/lightning_ui_kit/file_input_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/file_input_component.rb +3 -3
- data/app/components/lightning_ui_kit/input_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/input_component.rb +9 -9
- data/app/components/lightning_ui_kit/layout_component.html.erb +10 -10
- data/app/components/lightning_ui_kit/modal_component.html.erb +4 -4
- data/app/components/lightning_ui_kit/pagination_component.html.erb +3 -3
- data/app/components/lightning_ui_kit/pagination_component.rb +14 -5
- data/app/components/lightning_ui_kit/select_component.html.erb +3 -3
- data/app/components/lightning_ui_kit/select_component.rb +3 -3
- data/app/components/lightning_ui_kit/sidebar_link_component.html.erb +1 -1
- data/app/components/lightning_ui_kit/sidebar_link_component.rb +11 -7
- data/app/components/lightning_ui_kit/sidebar_section_component.rb +1 -1
- data/app/components/lightning_ui_kit/skeleton_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/spinner_component.html.erb +5 -4
- data/app/components/lightning_ui_kit/switch_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/switch_component.rb +7 -7
- data/app/components/lightning_ui_kit/table_component.html.erb +7 -7
- data/app/components/lightning_ui_kit/text_component.rb +1 -1
- data/app/components/lightning_ui_kit/textarea_component.html.erb +2 -2
- data/app/components/lightning_ui_kit/textarea_component.rb +3 -3
- data/app/components/lightning_ui_kit/toast_component.html.erb +3 -3
- data/app/components/lightning_ui_kit/tooltip_component.html.erb +2 -2
- data/app/javascript/lightning_ui_kit/controllers/combobox_controller.js +2 -2
- data/app/javascript/lightning_ui_kit/controllers/dropzone_controller.js +1 -1
- data/lib/lightning_ui_kit/builder.rb +56 -56
- data/lib/lightning_ui_kit/version.rb +1 -1
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/bigdecimal-3.2.2/bigdecimal.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/bigdecimal-3.2.2/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/bigdecimal-3.2.2/mkmf.log +3 -3
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/date-3.4.1/date_core.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/date-3.4.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/erb-5.0.2/erb/escape.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/erb-5.0.2/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/io-console-0.8.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/io-console-0.8.1/io/console.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/json-2.18.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/json-2.18.0/json/ext/generator.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/json-2.18.0/json/ext/parser.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/nio4r-2.7.4/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/nio4r-2.7.4/nio4r_ext.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.8.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.8.0/prism/prism.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/psych-5.2.6/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/psych-5.2.6/psych.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/stringio-3.1.7/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/stringio-3.1.7/stringio.so +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/websocket-driver-0.8.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/websocket-driver-0.8.0/websocket_mask.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.2.2/lib/bigdecimal.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/date-3.4.1/lib/date_core.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/erb-5.0.2/lib/erb/escape.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/io-console-0.8.1/lib/io/console.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/json-2.18.0/lib/json/ext/generator.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/json-2.18.0/lib/json/ext/parser.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/nio4r-2.7.4/lib/nio4r_ext.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/prism-1.8.0/lib/prism/prism.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/psych-5.2.6/lib/psych.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/stringio-3.1.7/lib/stringio.so +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/websocket-driver-0.8.0/lib/websocket_mask.so +0 -0
- metadata +2 -3
- data/app/assets/vendor/lightning_ui_kit.css +0 -3191
- data/app/assets/vendor/lightning_ui_kit.js +0 -12
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
<div class="lui:w-full lui:grid lui:gap-1 lui:my-4" id="#NEW_FILE" data-lui-dropzone-target="file">
|
|
4
4
|
<div class="lui:flex lui:items-center lui:justify-between lui:gap-2">
|
|
5
5
|
<div class="lui:flex lui:items-center lui:gap-2">
|
|
6
|
-
<%= heroicon("document", variant: :outline, options: {class: "lui:w-10 lui:h-10 lui:text-
|
|
6
|
+
<%= heroicon("document", variant: :outline, options: {class: "lui:w-10 lui:h-10 lui:text-focus"}) %>
|
|
7
7
|
<div class="lui:grid lui:gap-1">
|
|
8
|
-
<h4 class="lui:text-
|
|
9
|
-
<h5 class="lui:text-
|
|
8
|
+
<h4 class="lui:text-foreground lui:text-sm lui:font-normal lui:leading-snug" data-lui-dropzone-target="filename"></h4>
|
|
9
|
+
<h5 class="lui:text-foreground-muted lui:text-xs lui:font-normal lui:leading-[18px]" data-lui-dropzone-target="status"></h5>
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
12
12
|
<%= heroicon(
|
|
13
13
|
"x-circle",
|
|
14
14
|
variant: :outline,
|
|
15
15
|
options: {
|
|
16
|
-
class: "lui:w-6 lui:h-6 lui:text-
|
|
16
|
+
class: "lui:w-6 lui:h-6 lui:text-foreground-muted lui:hover:text-focus lui:hover:cursor-pointer",
|
|
17
17
|
data_action: "click->lui-dropzone#removeFile"
|
|
18
18
|
}) %>
|
|
19
19
|
</div>
|
|
20
20
|
<div class="lui:relative lui:flex lui:items-center lui:gap-2.5 lui:py-1.5">
|
|
21
|
-
<div class="lui:relative lui:w-full lui:h-2.5 lui:overflow-hidden lui:rounded-3xl lui:bg-
|
|
22
|
-
<div data-lui-dropzone-target="progressbar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 0%" class="lui:flex lui:h-full lui:items-center lui:justify-center lui:bg-
|
|
21
|
+
<div class="lui:relative lui:w-full lui:h-2.5 lui:overflow-hidden lui:rounded-3xl lui:bg-surface-tertiary">
|
|
22
|
+
<div data-lui-dropzone-target="progressbar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 0%" class="lui:flex lui:h-full lui:items-center lui:justify-center lui:bg-interactive lui:text-foreground-invert lui:rounded-3xl"></div>
|
|
23
23
|
</div>
|
|
24
|
-
<span data-lui-dropzone-target="percentage-progress" class="lui:ml-2 lui:bg-
|
|
24
|
+
<span data-lui-dropzone-target="percentage-progress" class="lui:ml-2 lui:bg-surface lui:rounded-full lui:text-foreground lui:text-xs lui:font-medium lui:flex lui:justify-center lui:items-center">0%</span>
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
27
|
</template>
|
|
@@ -30,18 +30,18 @@
|
|
|
30
30
|
<% if @description %>
|
|
31
31
|
<%= tag.p(
|
|
32
32
|
@description,
|
|
33
|
-
class: "lui:text-base/6 lui:text-
|
|
33
|
+
class: "lui:text-base/6 lui:text-foreground-muted lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
34
34
|
data: description_data
|
|
35
35
|
) %>
|
|
36
36
|
<% end %>
|
|
37
37
|
|
|
38
|
-
<div class="lui:py-9 lui:bg-
|
|
38
|
+
<div class="lui:py-9 lui:bg-surface-secondary lui:rounded-2xl lui:border lui:border-border lui:border-dotted lui:hover:cursor-pointer lui:hover:bg-surface-tertiary" data-action="click->lui-dropzone#selectFiles">
|
|
39
39
|
<div class="lui:mb-3 lui:flex lui:items-center lui:justify-center">
|
|
40
|
-
<%= heroicon("cloud-arrow-up", variant: :outline, options: {class: "lui:w-10 lui:h-10 lui:text-
|
|
40
|
+
<%= heroicon("cloud-arrow-up", variant: :outline, options: {class: "lui:w-10 lui:h-10 lui:text-focus"}) %>
|
|
41
41
|
</div>
|
|
42
|
-
<p class="lui:text-center lui:text-
|
|
42
|
+
<p class="lui:text-center lui:text-foreground lui:text-base lui:font-medium lui:leading-snug"><%= t("dropzone.default_message") %></p>
|
|
43
43
|
<% if @placeholder %>
|
|
44
|
-
<p class="lui:text-center lui:text-
|
|
44
|
+
<p class="lui:text-center lui:text-foreground-muted lui:text-base lui:sm:text-sm/6 lui:font-normal lui:leading-4 lui:mt-1.5"><%= @placeholder %></p>
|
|
45
45
|
<% end %>
|
|
46
46
|
<%= render_file_input %>
|
|
47
47
|
</div>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
<% if has_errors? %>
|
|
50
50
|
<%= tag.p(
|
|
51
51
|
error_messages,
|
|
52
|
-
class: "lui:text-base/6 lui:text-
|
|
52
|
+
class: "lui:text-base/6 lui:text-destructive-text lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
53
53
|
data: error_data
|
|
54
54
|
) %>
|
|
55
55
|
<% end %>
|
|
@@ -52,7 +52,7 @@ class LightningUiKit::DropzoneComponent < LightningUiKit::BaseComponent
|
|
|
52
52
|
|
|
53
53
|
def label_html_options
|
|
54
54
|
{
|
|
55
|
-
class: "lui:text-base/6 lui:text-
|
|
55
|
+
class: "lui:text-base/6 lui:text-foreground lui:select-none lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
56
56
|
data: label_data
|
|
57
57
|
}
|
|
58
58
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<% if @description %>
|
|
4
4
|
<%= tag.p(
|
|
5
5
|
@description,
|
|
6
|
-
class: "lui:text-base/6 lui:text-
|
|
6
|
+
class: "lui:text-base/6 lui:text-foreground-muted lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
7
7
|
data: description_data
|
|
8
8
|
) %>
|
|
9
9
|
<% end %>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<% if has_errors? %>
|
|
14
14
|
<%= tag.p(
|
|
15
15
|
error_messages,
|
|
16
|
-
class: "lui:text-base/6 lui:text-
|
|
16
|
+
class: "lui:text-base/6 lui:text-destructive-text lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
17
17
|
data: error_data
|
|
18
18
|
) %>
|
|
19
19
|
<% end %>
|
|
@@ -51,7 +51,7 @@ class LightningUiKit::FileInputComponent < LightningUiKit::BaseComponent
|
|
|
51
51
|
|
|
52
52
|
def label_html_options
|
|
53
53
|
{
|
|
54
|
-
class: "lui:text-base/6 lui:text-
|
|
54
|
+
class: "lui:text-base/6 lui:text-foreground lui:select-none lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
55
55
|
data: label_data
|
|
56
56
|
}
|
|
57
57
|
end
|
|
@@ -68,7 +68,7 @@ class LightningUiKit::FileInputComponent < LightningUiKit::BaseComponent
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def file_input_classes
|
|
71
|
-
"lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:text-base/6 lui:text-
|
|
71
|
+
"lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:text-base/6 lui:text-foreground lui:placeholder:text-foreground-muted lui:sm:text-sm/6 lui:border lui:border-border lui:data-[hover]:border-border-hover lui:bg-transparent lui:focus:outline-hidden lui:data-invalid:border-destructive-border lui:data-invalid:data-[hover]:border-destructive-border lui:data-disabled:cursor-not-allowed lui:data-disabled:border-border-hover lui:data-disabled:file:cursor-not-allowed lui:file:cursor-pointer lui:cursor-pointer lui:file:border-0 lui:file:px-[calc(--spacing(3.5)-1px)] lui:file:py-[calc(--spacing(2.5)-1px)] lui:file:sm:px-[calc(--spacing(3)-1px)] lui:file:sm:py-[calc(--spacing(1.5)-1px)] lui:file:mr-4 lui:file:bg-surface-tertiary lui:file:rounded-l-[calc(var(--radius-lg)-1px)]"
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def file_input_html_options
|
|
@@ -91,6 +91,6 @@ class LightningUiKit::FileInputComponent < LightningUiKit::BaseComponent
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def control_classes
|
|
94
|
-
"lui:relative lui:block lui:w-full lui:after:pointer-events-none lui:after:absolute lui:after:inset-0 lui:after:rounded-lg lui:after:ring-transparent lui:after:ring-inset lui:sm:focus-within:after:ring-2 lui:sm:focus-within:after:ring-
|
|
94
|
+
"lui:relative lui:block lui:w-full lui:after:pointer-events-none lui:after:absolute lui:after:inset-0 lui:after:rounded-lg lui:after:ring-transparent lui:after:ring-inset lui:sm:focus-within:after:ring-2 lui:sm:focus-within:after:ring-focus lui:has-data-disabled:opacity-50"
|
|
95
95
|
end
|
|
96
96
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<% if @description %>
|
|
4
4
|
<%= tag.p(
|
|
5
5
|
@description,
|
|
6
|
-
class: "lui:text-base/6 lui:text-
|
|
6
|
+
class: "lui:text-base/6 lui:text-foreground-muted lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
7
7
|
data: description_data
|
|
8
8
|
) %>
|
|
9
9
|
<% end %>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<% if has_errors? %>
|
|
26
26
|
<%= tag.p(
|
|
27
27
|
error_messages,
|
|
28
|
-
class: "lui:text-base/6 lui:text-
|
|
28
|
+
class: "lui:text-base/6 lui:text-destructive-text lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
29
29
|
data: error_data
|
|
30
30
|
) %>
|
|
31
31
|
<% end %>
|
|
@@ -68,7 +68,7 @@ class LightningUiKit::InputComponent < LightningUiKit::BaseComponent
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def input_classes
|
|
71
|
-
"lui:peer lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:px-[calc(--spacing(3.5)-1px)] lui:py-[calc(--spacing(2.5)-1px)] lui:sm:px-[calc(--spacing(3)-1px)] lui:sm:py-[calc(--spacing(1.5)-1px)] lui:text-base/6 lui:text-
|
|
71
|
+
"lui:peer lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:px-[calc(--spacing(3.5)-1px)] lui:py-[calc(--spacing(2.5)-1px)] lui:sm:px-[calc(--spacing(3)-1px)] lui:sm:py-[calc(--spacing(1.5)-1px)] lui:text-base/6 lui:text-foreground lui:placeholder:text-foreground-muted lui:sm:text-sm/6 lui:border lui:border-border lui:data-[hover]:border-border-hover lui:bg-transparent lui:focus:outline-hidden lui:data-invalid:border-destructive-border lui:data-invalid:data-[hover]:border-destructive-border/60 lui:data-disabled:border-border-hover"
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def input_html_options
|
|
@@ -117,24 +117,24 @@ class LightningUiKit::InputComponent < LightningUiKit::BaseComponent
|
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
def color_classes
|
|
120
|
-
"lui:h-10 lui:w-14 lui:cursor-pointer lui:appearance-none lui:rounded-lg lui:border lui:border-
|
|
121
|
-
"lui:data-[hover]:border-
|
|
120
|
+
"lui:h-10 lui:w-14 lui:cursor-pointer lui:appearance-none lui:rounded-lg lui:border lui:border-border lui:bg-transparent lui:p-1 " \
|
|
121
|
+
"lui:data-[hover]:border-border-hover lui:focus:outline-none lui:focus:ring-2 lui:focus:ring-focus " \
|
|
122
122
|
"[&::-webkit-color-swatch-wrapper]:lui:p-0 [&::-webkit-color-swatch]:lui:rounded-md [&::-webkit-color-swatch]:lui:border-0 " \
|
|
123
123
|
"[&::-moz-color-swatch]:lui:rounded-md [&::-moz-color-swatch]:lui:border-0 " \
|
|
124
124
|
"lui:disabled:opacity-50 lui:disabled:cursor-not-allowed"
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
def range_classes
|
|
128
|
-
"lui:w-full lui:h-2 lui:appearance-none lui:cursor-pointer lui:bg-
|
|
129
|
-
"[&::-webkit-slider-thumb]:lui:appearance-none [&::-webkit-slider-thumb]:lui:w-4 [&::-webkit-slider-thumb]:lui:h-4 [&::-webkit-slider-thumb]:lui:bg-
|
|
130
|
-
"[&::-moz-range-thumb]:lui:appearance-none [&::-moz-range-thumb]:lui:w-4 [&::-moz-range-thumb]:lui:h-4 [&::-moz-range-thumb]:lui:bg-
|
|
131
|
-
"[&::-moz-range-track]:lui:bg-
|
|
128
|
+
"lui:w-full lui:h-2 lui:appearance-none lui:cursor-pointer lui:bg-surface-tertiary lui:rounded-full lui:focus:outline-none " \
|
|
129
|
+
"[&::-webkit-slider-thumb]:lui:appearance-none [&::-webkit-slider-thumb]:lui:w-4 [&::-webkit-slider-thumb]:lui:h-4 [&::-webkit-slider-thumb]:lui:bg-interactive [&::-webkit-slider-thumb]:lui:rounded-full [&::-webkit-slider-thumb]:lui:cursor-pointer [&::-webkit-slider-thumb]:lui:shadow-sm [&::-webkit-slider-thumb]:lui:transition-transform [&::-webkit-slider-thumb]:hover:lui:scale-110 " \
|
|
130
|
+
"[&::-moz-range-thumb]:lui:appearance-none [&::-moz-range-thumb]:lui:w-4 [&::-moz-range-thumb]:lui:h-4 [&::-moz-range-thumb]:lui:bg-interactive [&::-moz-range-thumb]:lui:rounded-full [&::-moz-range-thumb]:lui:border-0 [&::-moz-range-thumb]:lui:cursor-pointer [&::-moz-range-thumb]:lui:shadow-sm [&::-moz-range-thumb]:lui:transition-transform [&::-moz-range-thumb]:hover:lui:scale-110 " \
|
|
131
|
+
"[&::-moz-range-track]:lui:bg-surface-tertiary [&::-moz-range-track]:lui:rounded-full " \
|
|
132
132
|
"lui:disabled:opacity-50 lui:disabled:cursor-not-allowed"
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
def label_html_options
|
|
136
136
|
{
|
|
137
|
-
class: "lui:text-base/6 lui:text-
|
|
137
|
+
class: "lui:text-base/6 lui:text-foreground lui:select-none lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
138
138
|
data: label_data
|
|
139
139
|
}
|
|
140
140
|
end
|
|
@@ -151,7 +151,7 @@ class LightningUiKit::InputComponent < LightningUiKit::BaseComponent
|
|
|
151
151
|
end
|
|
152
152
|
|
|
153
153
|
def control_classes
|
|
154
|
-
"lui:relative lui:block lui:w-full lui:before:pointer-events-none lui:before:absolute lui:before:inset-px lui:before:rounded-[7px] lui:before:bg-
|
|
154
|
+
"lui:relative lui:block lui:w-full lui:before:pointer-events-none lui:before:absolute lui:before:inset-px lui:before:rounded-[7px] lui:before:bg-surface-input lui:before:shadow-sm lui:after:pointer-events-none lui:after:absolute lui:after:inset-0 lui:after:rounded-lg lui:after:ring-transparent lui:after:ring-inset lui:sm:focus-within:after:ring-2 lui:sm:focus-within:after:ring-focus lui:has-data-disabled:opacity-50 lui:has-data-disabled:before:bg-surface-hover lui:has-data-disabled:before:shadow-none lui:has-data-invalid:before:shadow-destructive-border/10"
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
def standard_input_type?
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div class="lui:relative lui:isolate lui:flex lui:h-screen lui:w-full lui:bg-
|
|
1
|
+
<div class="lui:relative lui:isolate lui:flex lui:h-screen lui:w-full lui:bg-surface lui:max-lg:flex-col lui:max-lg:h-auto lui:max-lg:min-h-screen lui:lg:bg-surface-aside lui:overflow-hidden" data-controller="lui-layout">
|
|
2
2
|
<%# Desktop Sidebar (fixed, hidden on mobile) %>
|
|
3
3
|
<div class="lui:fixed lui:inset-y-0 lui:left-0 <%= sidebar_width_class %> lui:max-lg:hidden lui:z-10">
|
|
4
4
|
<nav class="lui:flex lui:h-full lui:min-h-0 lui:flex-col">
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
<%# Footer at bottom of sidebar %>
|
|
23
23
|
<% if footer? %>
|
|
24
|
-
<div class="lui:border-t lui:border-
|
|
24
|
+
<div class="lui:border-t lui:border-border">
|
|
25
25
|
<%= footer %>
|
|
26
26
|
</div>
|
|
27
27
|
<% end %>
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
<button
|
|
35
35
|
type="button"
|
|
36
36
|
aria-label="Open navigation"
|
|
37
|
-
class="lui:cursor-pointer lui:relative lui:flex lui:min-w-0 lui:items-center lui:gap-3 lui:rounded-lg lui:p-2 lui:text-left lui:text-base/6 lui:font-medium lui:text-
|
|
37
|
+
class="lui:cursor-pointer lui:relative lui:flex lui:min-w-0 lui:items-center lui:gap-3 lui:rounded-lg lui:p-2 lui:text-left lui:text-base/6 lui:font-medium lui:text-foreground lui:sm:text-sm/5 lui:hover:bg-surface-hover"
|
|
38
38
|
data-action="lui-layout#openSidebar"
|
|
39
39
|
>
|
|
40
40
|
<span class="lui:absolute lui:top-1/2 lui:left-1/2 lui:size-[max(100%,2.75rem)] lui:-translate-x-1/2 lui:-translate-y-1/2 [@media(pointer:fine)]:lui:hidden" aria-hidden="true"></span>
|
|
41
|
-
<svg class="lui:size-6 lui:shrink-0 lui:fill-
|
|
41
|
+
<svg class="lui:size-6 lui:shrink-0 lui:fill-foreground-muted lui:sm:size-5" viewBox="0 0 20 20" aria-hidden="true">
|
|
42
42
|
<path d="M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z"></path>
|
|
43
43
|
</svg>
|
|
44
44
|
</button>
|
|
@@ -59,22 +59,22 @@
|
|
|
59
59
|
>
|
|
60
60
|
<%# Backdrop %>
|
|
61
61
|
<div
|
|
62
|
-
class="lui:fixed lui:inset-0 lui:bg-
|
|
62
|
+
class="lui:fixed lui:inset-0 lui:bg-surface-overlay lui:opacity-0 lui:transition-opacity lui:duration-300 lui:group-data-[open]:opacity-100"
|
|
63
63
|
data-action="click->lui-layout#closeSidebar"
|
|
64
64
|
></div>
|
|
65
65
|
|
|
66
66
|
<%# Mobile Sidebar Panel %>
|
|
67
|
-
<div class="lui:fixed lui:inset-y-0 lui:left-0 <%= sidebar_width_class %> lui:bg-
|
|
67
|
+
<div class="lui:fixed lui:inset-y-0 lui:left-0 <%= sidebar_width_class %> lui:bg-surface-aside lui:-translate-x-full lui:transition-transform lui:duration-300 lui:ease-out lui:shadow-xl lui:group-data-[open]:translate-x-0">
|
|
68
68
|
<nav class="lui:flex lui:h-full lui:min-h-0 lui:flex-col">
|
|
69
69
|
<%# Close button %>
|
|
70
70
|
<div class="lui:flex lui:items-center lui:justify-end lui:p-4">
|
|
71
71
|
<button
|
|
72
72
|
type="button"
|
|
73
73
|
aria-label="Close navigation"
|
|
74
|
-
class="lui:cursor-pointer lui:rounded-lg lui:p-2 lui:hover:bg-
|
|
74
|
+
class="lui:cursor-pointer lui:rounded-lg lui:p-2 lui:hover:bg-surface-hover"
|
|
75
75
|
data-action="lui-layout#closeSidebar"
|
|
76
76
|
>
|
|
77
|
-
<svg class="lui:size-6 lui:fill-
|
|
77
|
+
<svg class="lui:size-6 lui:fill-foreground-muted" viewBox="0 0 20 20" aria-hidden="true">
|
|
78
78
|
<path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path>
|
|
79
79
|
</svg>
|
|
80
80
|
</button>
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
|
|
100
100
|
<%# Footer %>
|
|
101
101
|
<% if footer? %>
|
|
102
|
-
<div class="lui:border-t lui:border-
|
|
102
|
+
<div class="lui:border-t lui:border-border">
|
|
103
103
|
<%= footer %>
|
|
104
104
|
</div>
|
|
105
105
|
<% end %>
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
|
|
110
110
|
<%# Main Content Area %>
|
|
111
111
|
<main class="lui:flex lui:flex-1 lui:flex-col lui:min-h-0 lui:pb-4 lui:lg:min-w-0 lui:lg:pt-4 lui:lg:pr-4 <%= main_padding_class %>">
|
|
112
|
-
<div class="lui:flex-1 lui:min-h-0 lui:p-6 lui:lg:rounded-lg lui:lg:bg-
|
|
112
|
+
<div class="lui:flex-1 lui:min-h-0 lui:p-6 lui:lg:rounded-lg lui:lg:bg-surface-secondary lui:lg:p-10 lui:lg:shadow-xs lui:lg:ring-1 lui:lg:ring-border-subtle lui:lg:overflow-y-auto">
|
|
113
113
|
<div class="lui:mx-auto lui:max-w-6xl">
|
|
114
114
|
<%= content %>
|
|
115
115
|
</div>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
<%= tag.dialog(id: @id, open: @open, data:) do %>
|
|
2
|
-
<div class="lui:fixed lui:inset-0 lui:flex lui:w-screen lui:justify-center lui:overflow-y-auto lui:bg-
|
|
2
|
+
<div class="lui:fixed lui:inset-0 lui:flex lui:w-screen lui:justify-center lui:overflow-y-auto lui:bg-surface-overlay lui:px-2 lui:py-2 lui:transition lui:duration-100 lui:focus:outline-0 lui:data-closed:opacity-0 lui:data-enter:ease-out lui:data-leave:ease-in lui:sm:px-6 lui:sm:py-8 lg:lui:px-8 lg:lui:py-16" aria-hidden="true" data-open=""></div>
|
|
3
3
|
<div class="lui:fixed lui:inset-0 lui:w-screen lui:overflow-y-auto lui:pt-6 lui:sm:pt-0">
|
|
4
4
|
<div class="lui:grid lui:min-h-full lui:grid-rows-[1fr_auto] lui:justify-items-center lui:sm:grid-rows-[1fr_auto_3fr] lui:sm:p-4" data-action="click->lui-modal#closeOnBackdrop">
|
|
5
|
-
<div class="lui:sm:max-w-3xl lui:row-start-2 lui:w-full lui:min-w-0 lui:rounded-t-3xl lui:bg-
|
|
5
|
+
<div class="lui:sm:max-w-3xl lui:row-start-2 lui:w-full lui:min-w-0 lui:rounded-t-3xl lui:bg-surface-secondary lui:p-(--gutter) lui:ring-1 lui:shadow-lg lui:ring-border lui:[--gutter:--spacing(8)] lui:sm:mb-auto lui:sm:rounded-2xl lui:forced-colors:outline lui:transition lui:duration-100 lui:will-change-transform lui:data-closed:translate-y-12 lui:data-closed:opacity-0 lui:data-enter:ease-out lui:data-leave:ease-in lui:sm:data-closed:translate-y-0 lui:sm:data-closed:data-enter:scale-95" data-open="" data-lui-modal-target="panel">
|
|
6
6
|
<% if @title %>
|
|
7
|
-
<h2 class="lui:text-lg/6 lui:font-semibold lui:text-balance lui:text-
|
|
7
|
+
<h2 class="lui:text-lg/6 lui:font-semibold lui:text-balance lui:text-foreground lui:sm:text-base/6" data-open="">
|
|
8
8
|
<%= @title %>
|
|
9
9
|
</h2>
|
|
10
10
|
<% end %>
|
|
11
11
|
<% if @description %>
|
|
12
|
-
<p data-slot="text" data-open="" class="lui:mt-2 lui:text-pretty lui:text-base/6 lui:text-
|
|
12
|
+
<p data-slot="text" data-open="" class="lui:mt-2 lui:text-pretty lui:text-base/6 lui:text-foreground-muted lui:sm:text-sm/6">
|
|
13
13
|
<%= @description %>
|
|
14
14
|
</p>
|
|
15
15
|
<% end %>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<%= tag.div(class: "lui:items-center lui:gap-x-2 lui:sm:flex") do %>
|
|
2
2
|
<% if @with_arrows %>
|
|
3
|
-
<%= link_to(url(@current_page - 1), class:
|
|
3
|
+
<%= link_to(url(@current_page - 1), class: arrow_link_classes, data: data(disabled: @current_page == 1)) do %>
|
|
4
4
|
<%= heroicon("chevron-left", options: { class: "w-5 h-5" }) %>
|
|
5
5
|
<% end %>
|
|
6
6
|
<% end %>
|
|
7
7
|
|
|
8
8
|
<% pages_with_gaps.each do |page| %>
|
|
9
9
|
<% if page == :gap %>
|
|
10
|
-
<span aria-hidden="true" class="lui:w-[2.25rem] lui:text-center lui:text-sm/6 lui:font-semibold lui:text-
|
|
10
|
+
<span aria-hidden="true" class="lui:w-[2.25rem] lui:text-center lui:text-sm/6 lui:font-semibold lui:text-foreground lui:select-none">…</span>
|
|
11
11
|
<% else %>
|
|
12
12
|
<%= link_to(page, url(page), class: link_classes, data: data(active: @current_page == page)) %>
|
|
13
13
|
<% end %>
|
|
14
14
|
<% end %>
|
|
15
15
|
|
|
16
16
|
<% if @with_arrows %>
|
|
17
|
-
<%= link_to(url(@current_page + 1), class:
|
|
17
|
+
<%= link_to(url(@current_page + 1), class: arrow_link_classes, data: data(disabled: @current_page == @total_pages)) do %>
|
|
18
18
|
<%= heroicon("chevron-right", options: {class: "w-5 h-5" }) %>
|
|
19
19
|
<% end %>
|
|
20
20
|
<% end %>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
class LightningUiKit::PaginationComponent < LightningUiKit::BaseComponent
|
|
2
|
-
def initialize(current_page:, total_pages:, path:, page_param: "page", with_arrows: false, **options)
|
|
2
|
+
def initialize(current_page:, total_pages:, path:, page_param: "page", params: {}, with_arrows: false, **options)
|
|
3
3
|
@current_page = current_page
|
|
4
4
|
@total_pages = total_pages
|
|
5
5
|
@with_arrows = with_arrows
|
|
6
6
|
@path = path
|
|
7
7
|
@page_param = page_param
|
|
8
|
+
@params = params
|
|
8
9
|
@options = options
|
|
9
10
|
end
|
|
10
11
|
|
|
@@ -18,9 +19,16 @@ class LightningUiKit::PaginationComponent < LightningUiKit::BaseComponent
|
|
|
18
19
|
def link_classes
|
|
19
20
|
"lui:min-w-[2.25rem] lui:flex lui:items-center lui:justify-center lui:rounded-lg lui:border lui:text-base/6 lui:font-semibold lui:px-[calc(--spacing(3.5)-1px)] \
|
|
20
21
|
lui:py-[calc(--spacing(2.5)-1px)] lui:sm:px-[calc(--spacing(3)-1px)] lui:sm:py-[calc(--spacing(1.5)-1px)] lui:sm:text-sm/6 \
|
|
21
|
-
lui:focus:outline-hidden lui:focus:outline lui:focus:outline-2 lui:focus:outline-offset-2 lui:focus:outline-
|
|
22
|
-
lui:data-[disabled]:opacity-50 lui:data-[disabled]:pointer-events-none lui:border-transparent lui:text-
|
|
23
|
-
lui:data-[active]:bg-
|
|
22
|
+
lui:focus:outline-hidden lui:focus:outline lui:focus:outline-2 lui:focus:outline-offset-2 lui:focus:outline-focus \
|
|
23
|
+
lui:data-[disabled]:opacity-50 lui:data-[disabled]:pointer-events-none lui:border-transparent lui:text-foreground \
|
|
24
|
+
lui:data-[active]:bg-surface-hover lui:hover:bg-surface-hover"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def arrow_link_classes
|
|
28
|
+
"lui:min-w-[2.25rem] lui:aspect-square lui:flex lui:items-center lui:justify-center lui:rounded-lg lui:border \
|
|
29
|
+
lui:focus:outline-hidden lui:focus:outline lui:focus:outline-2 lui:focus:outline-offset-2 lui:focus:outline-focus \
|
|
30
|
+
lui:data-[disabled]:opacity-50 lui:data-[disabled]:pointer-events-none lui:border-transparent lui:text-foreground \
|
|
31
|
+
lui:hover:bg-surface-hover"
|
|
24
32
|
end
|
|
25
33
|
|
|
26
34
|
def pages_with_gaps
|
|
@@ -36,6 +44,7 @@ class LightningUiKit::PaginationComponent < LightningUiKit::BaseComponent
|
|
|
36
44
|
end
|
|
37
45
|
|
|
38
46
|
def url(page)
|
|
39
|
-
|
|
47
|
+
query = @params.merge(@page_param => page).to_query
|
|
48
|
+
"#{@path}?#{query}"
|
|
40
49
|
end
|
|
41
50
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<%= tag.div data:, class: classes do %>
|
|
2
2
|
<%= render_label %>
|
|
3
3
|
<% if @description %>
|
|
4
|
-
<p data-slot="description" class="lui:text-base/6 lui:text-
|
|
4
|
+
<p data-slot="description" class="lui:text-base/6 lui:text-foreground-muted lui:data-disabled:opacity-50 lui:sm:text-sm/6" <%= "data-disabled=true" if @disabled %>>
|
|
5
5
|
<%= @description %>
|
|
6
6
|
</p>
|
|
7
7
|
<% end %>
|
|
8
8
|
<span data-slot="control" class="<%= control_classes %>">
|
|
9
9
|
<%= render_select %>
|
|
10
10
|
<span class="lui:pointer-events-none lui:absolute lui:inset-y-0 lui:right-0 lui:flex lui:items-center lui:pr-2">
|
|
11
|
-
<svg class="lui:size-5 lui:stroke-
|
|
11
|
+
<svg class="lui:size-5 lui:stroke-foreground-muted lui:sm:size-4 lui:forced-colors:stroke-[CanvasText]" viewBox="0 0 16 16" aria-hidden="true" fill="none">
|
|
12
12
|
<path d="M5.75 10.75L8 13L10.25 10.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
13
13
|
<path d="M10.25 5.25L8 3L5.75 5.25" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
14
14
|
</svg>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<% if has_errors? %>
|
|
18
18
|
<%= tag.p(
|
|
19
19
|
error_messages,
|
|
20
|
-
class: "lui:text-base/6 lui:text-
|
|
20
|
+
class: "lui:text-base/6 lui:text-destructive-text lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
21
21
|
data: error_data
|
|
22
22
|
) %>
|
|
23
23
|
<% end %>
|
|
@@ -55,7 +55,7 @@ class LightningUiKit::SelectComponent < LightningUiKit::BaseComponent
|
|
|
55
55
|
|
|
56
56
|
def label_html_options
|
|
57
57
|
{
|
|
58
|
-
class: "lui:text-base/6 lui:text-
|
|
58
|
+
class: "lui:text-base/6 lui:text-foreground lui:select-none lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
59
59
|
data: label_data
|
|
60
60
|
}
|
|
61
61
|
end
|
|
@@ -72,11 +72,11 @@ class LightningUiKit::SelectComponent < LightningUiKit::BaseComponent
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def select_classes
|
|
75
|
-
"lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:py-[calc(--spacing(2.5)-1px)] lui:sm:py-[calc(--spacing(1.5)-1px)] lui:pr-[calc(--spacing(10)-1px)] lui:pl-[calc(--spacing(3.5)-1px)] lui:sm:pr-[calc(--spacing(9)-1px)] lui:sm:pl-[calc(--spacing(3)-1px)] lui:[&_optgroup]:font-semibold lui:text-base/6 lui:text-
|
|
75
|
+
"lui:relative lui:block lui:w-full lui:appearance-none lui:rounded-lg lui:py-[calc(--spacing(2.5)-1px)] lui:sm:py-[calc(--spacing(1.5)-1px)] lui:pr-[calc(--spacing(10)-1px)] lui:pl-[calc(--spacing(3.5)-1px)] lui:sm:pr-[calc(--spacing(9)-1px)] lui:sm:pl-[calc(--spacing(3)-1px)] lui:[&_optgroup]:font-semibold lui:text-base/6 lui:text-foreground lui:placeholder:text-foreground-muted lui:sm:text-sm/6 lui:border lui:border-border lui:data-[hover]:border-border-hover lui:bg-transparent lui:focus:outline-hidden lui:data-invalid:border-destructive-border lui:data-invalid:data-[hover]:border-destructive-border lui:data-disabled:border-border-hover lui:data-disabled:opacity-100"
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
def control_classes
|
|
79
|
-
"lui:relative lui:block lui:w-full lui:before:pointer-events-none lui:before:absolute lui:before:inset-px lui:before:rounded-[7px] lui:before:bg-
|
|
79
|
+
"lui:relative lui:block lui:w-full lui:before:pointer-events-none lui:before:absolute lui:before:inset-px lui:before:rounded-[7px] lui:before:bg-surface-input lui:before:shadow-sm lui:after:pointer-events-none lui:after:absolute lui:after:inset-0 lui:after:rounded-lg lui:after:ring-inset lui:focus-within:after:ring-2 lui:focus-within:after:ring-focus lui:has-data-disabled:opacity-50 lui:has-data-disabled:before:bg-surface-hover lui:has-data-disabled:before:shadow-none"
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def select_html_options
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
class LightningUiKit::SidebarLinkComponent < LightningUiKit::BaseComponent
|
|
2
|
-
def initialize(title:, url:, icon: nil, current: false, **options)
|
|
2
|
+
def initialize(title:, url:, icon: nil, current: false, animate_icon: false, **options)
|
|
3
3
|
@title = title
|
|
4
4
|
@url = url
|
|
5
5
|
@icon = icon
|
|
6
6
|
@current = current
|
|
7
|
+
@animate_icon = animate_icon
|
|
7
8
|
@options = options
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def classes
|
|
11
|
-
base_classes = "lui:flex lui:items-center lui:gap-3 lui:rounded-lg lui:px-3 lui:py-2 lui:text-sm lui:transition-
|
|
12
|
+
base_classes = "lui:relative lui:flex lui:items-center lui:gap-3 lui:rounded-lg lui:px-3 lui:py-2 lui:text-sm lui:transition-all lui:duration-150 lui:ease-out"
|
|
12
13
|
|
|
13
14
|
if @current
|
|
14
|
-
merge_classes([base_classes, "lui:bg-
|
|
15
|
+
merge_classes([base_classes, "lui:bg-surface-hover lui:text-foreground lui:font-semibold", @options[:class]].compact.join(" "))
|
|
15
16
|
else
|
|
16
|
-
merge_classes([base_classes, "lui:text-
|
|
17
|
+
merge_classes([base_classes, "lui:text-foreground-secondary lui:hover:bg-surface-hover lui:hover:text-foreground", @options[:class]].compact.join(" "))
|
|
17
18
|
end
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
def icon_classes
|
|
21
|
-
if @current
|
|
22
|
-
"lui:size-5 lui:shrink-0 lui:text-
|
|
22
|
+
base = if @current
|
|
23
|
+
"lui:size-5 lui:shrink-0 lui:text-foreground"
|
|
23
24
|
else
|
|
24
|
-
"lui:size-5 lui:shrink-0 lui:text-
|
|
25
|
+
"lui:size-5 lui:shrink-0 lui:text-foreground-faint lui:transition-colors lui:duration-150 lui:group-hover:text-foreground-secondary"
|
|
25
26
|
end
|
|
27
|
+
|
|
28
|
+
base += " lui:group-hover:animate-icon-bounce" if @animate_icon
|
|
29
|
+
base
|
|
26
30
|
end
|
|
27
31
|
|
|
28
32
|
def data
|
|
@@ -11,6 +11,6 @@ class LightningUiKit::SidebarSectionComponent < LightningUiKit::BaseComponent
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def title_classes
|
|
14
|
-
"lui:px-3 lui:py-2 lui:text-
|
|
14
|
+
"lui:px-3 lui:py-2 lui:text-[0.6875rem] lui:font-semibold lui:text-foreground-faint lui:uppercase lui:tracking-widest"
|
|
15
15
|
end
|
|
16
16
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<div role="status" class="lui:animate-pulse">
|
|
2
2
|
<% if @with_title %>
|
|
3
|
-
<h3 class="lui:h-3 lui:bg-
|
|
3
|
+
<h3 class="lui:h-3 lui:bg-surface-tertiary lui:rounded-full lui:w-48 lui:mb-4"></h3>
|
|
4
4
|
<% end %>
|
|
5
5
|
<div class="lui:space-y-2.5">
|
|
6
6
|
<% @lines.times do %>
|
|
7
|
-
<p class="lui:h-2 lui:bg-
|
|
7
|
+
<p class="lui:h-2 lui:bg-surface-tertiary lui:rounded-full"></p>
|
|
8
8
|
<% end %>
|
|
9
9
|
</div>
|
|
10
10
|
</div>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
<svg class="lui:animate-spin
|
|
1
|
+
<svg class="lui:animate-spin"
|
|
2
2
|
xmlns="http://www.w3.org/2000/svg" width="18" height="18"
|
|
3
|
-
viewBox="0 0 30 30" fill="none"
|
|
3
|
+
viewBox="0 0 30 30" fill="none"
|
|
4
|
+
style="--lui-spinner-primary: var(--lui-theme-spinner-primary); --lui-spinner-secondary: var(--lui-theme-spinner-secondary);">
|
|
4
5
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
5
6
|
d="M14.4304 0.0323927C14.0002 0.172039 13.7522 0.420298 13.6321 0.825659C13.5643 1.05258 13.5527 1.58013 13.5527 4.33426C13.5527 7.98251 13.5488 7.93596 13.9208 8.30835C14.4187 8.80487 15.5812 8.80487 16.0792 8.30835C16.4511 7.93596 16.4473 7.98251 16.4473 4.33426C16.4473 0.804324 16.4415 0.742259 16.1547 0.400903C15.9145 0.115792 15.6568 0.0207556 15.0775 0.00523939C14.8614 -0.00695113 14.6447 0.00214369 14.4304 0.0323927ZM24.4026 3.89593C24.1643 4.00648 23.7574 4.38857 21.816 6.33779C20.0316 8.12797 19.4872 8.70595 19.4 8.89602C19.3276 9.05362 19.2902 9.2251 19.2905 9.39857C19.2909 9.57205 19.3289 9.74338 19.4019 9.9007C19.5376 10.1916 19.9832 10.6494 20.2835 10.8065C20.5877 10.9655 21.0391 10.9636 21.3549 10.8026C21.6785 10.6358 26.1541 6.15547 26.3207 5.83157C26.4001 5.66482 26.4417 5.4826 26.4427 5.29788C26.4437 5.11317 26.404 4.93051 26.3265 4.7629C26.1121 4.40396 25.8092 4.10611 25.4469 3.89787C25.2865 3.81116 25.1072 3.7656 24.925 3.76526C24.7427 3.76492 24.5633 3.80982 24.4026 3.89593ZM22.2559 13.5858C21.9939 13.6581 21.7571 13.8017 21.5719 14.0009C21.3065 14.3597 21.2232 15.0889 21.3898 15.6029C21.5022 15.952 21.785 16.2352 22.1338 16.3477C22.3702 16.4253 22.7557 16.435 25.6406 16.435C28.4093 16.435 28.9189 16.4233 29.1475 16.3554C29.719 16.1848 29.998 15.7348 30 14.9842C30 14.2375 29.7152 13.7894 29.1242 13.611C28.9247 13.5509 28.2989 13.5392 25.6484 13.5431C23.8698 13.547 22.343 13.5664 22.2559 13.5858ZM20.3339 19.3811C20.0277 19.5207 19.5763 19.963 19.4194 20.2772C19.3393 20.4342 19.2957 20.6073 19.2916 20.7836C19.2876 20.9599 19.3233 21.1348 19.3961 21.2954C19.5395 21.6154 24.0422 26.1384 24.3968 26.3188C24.8986 26.5767 25.4139 26.4507 25.9332 25.9425C26.4447 25.4421 26.5803 24.899 26.3207 24.3928C26.1405 24.0379 21.6223 19.5304 21.3026 19.3869C21.1498 19.3207 20.9853 19.286 20.8188 19.285C20.6524 19.284 20.4874 19.3167 20.3339 19.3811ZM14.5059 21.342C14.2442 21.4158 14.0076 21.56 13.822 21.759C13.5546 22.1197 13.5527 22.1449 13.5527 25.6322C13.5527 28.4096 13.5643 28.9197 13.6321 29.1485C13.8026 29.7207 14.254 30 15 30C15.7459 30 16.1973 29.7207 16.3678 29.1485C16.488 28.7374 16.486 22.5018 16.364 22.143C16.3264 21.9983 16.2577 21.8636 16.1627 21.7484C16.0676 21.6331 15.9485 21.5401 15.8137 21.4758C15.6006 21.3594 15.4766 21.3303 15.1104 21.3167C14.9086 21.3046 14.706 21.313 14.5059 21.342Z"
|
|
6
|
-
fill="
|
|
7
|
+
fill="var(--lui-spinner-primary)" />
|
|
7
8
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
8
9
|
d="M4.83402 3.86487C4.5279 4.00452 4.07647 4.44673 3.91953 4.76093C3.83948 4.918 3.79581 5.09111 3.79179 5.2674C3.78776 5.44369 3.82348 5.61861 3.89628 5.77918C4.03965 6.0992 8.54237 10.6222 8.89693 10.8026C9.39873 11.0605 9.91411 10.9344 10.4334 10.4263C10.9448 9.92589 11.0805 9.38282 10.8208 8.8766C10.6407 8.52167 6.12245 4.01421 5.80276 3.87069C5.65 3.80447 5.48545 3.76982 5.31899 3.76882C5.15252 3.76782 4.98757 3.80049 4.83402 3.86487ZM0.85443 13.6129C0.282873 13.7933 0 14.2491 0 14.9842C0.00193748 15.7348 0.280935 16.1847 0.852493 16.3554C1.08112 16.4233 1.59067 16.4349 4.35934 16.4349C7.24425 16.4349 7.62981 16.4252 7.86618 16.3477C8.03981 16.2905 8.19761 16.1934 8.32684 16.064C8.45607 15.9347 8.55313 15.7767 8.61018 15.6029C8.7768 15.0889 8.69349 14.3596 8.42805 13.9989C8.32166 13.8831 8.19656 13.7861 8.058 13.7118L7.79256 13.5644L4.4349 13.5528C1.73211 13.545 1.03268 13.5567 0.85443 13.6129ZM8.90274 19.4121C8.66443 19.5227 8.25756 19.9047 6.3162 21.854C4.53177 23.6442 3.98734 24.2221 3.90016 24.4122C3.82771 24.5698 3.79037 24.7413 3.7907 24.9148C3.79104 25.0882 3.82904 25.2596 3.90209 25.4169C4.03772 25.7078 4.48334 26.1655 4.78365 26.3226C5.08783 26.4817 5.53927 26.4797 5.85508 26.3188C6.17864 26.152 10.6542 21.6717 10.8208 21.3478C10.9002 21.181 10.9419 20.9988 10.9429 20.8141C10.9439 20.6294 10.9042 20.4467 10.8267 20.2791C10.6122 19.9201 10.3094 19.6223 9.94704 19.414C9.7867 19.3273 9.60738 19.2818 9.42513 19.2814C9.24289 19.2811 9.06341 19.326 8.90274 19.4121Z"
|
|
9
|
-
fill="
|
|
10
|
+
fill="var(--lui-spinner-secondary)" />
|
|
10
11
|
</svg>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<% if @description %>
|
|
4
4
|
<%= tag.p(
|
|
5
5
|
@description,
|
|
6
|
-
class: "lui:text-base/6 lui:text-
|
|
6
|
+
class: "lui:text-base/6 lui:text-foreground-muted lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
7
7
|
data: description_data
|
|
8
8
|
) %>
|
|
9
9
|
<% end %>
|
|
10
10
|
<% if has_errors? %>
|
|
11
11
|
<%= tag.p(
|
|
12
12
|
error_messages,
|
|
13
|
-
class: "lui:text-base/6 lui:text-
|
|
13
|
+
class: "lui:text-base/6 lui:text-destructive-text lui:data-disabled:opacity-50 lui:sm:text-sm/6",
|
|
14
14
|
data: error_data
|
|
15
15
|
) %>
|
|
16
16
|
<% end %>
|
|
@@ -53,13 +53,13 @@ class LightningUiKit::SwitchComponent < LightningUiKit::BaseComponent
|
|
|
53
53
|
def button_classes
|
|
54
54
|
"lui:group lui:relative lui:isolate lui:inline-flex lui:h-6 lui:w-10 lui:cursor-default lui:rounded-full " \
|
|
55
55
|
"lui:p-[3px] lui:sm:h-5 lui:sm:w-8 lui:transition lui:duration-200 lui:ease-in-out " \
|
|
56
|
-
"lui:forced-colors:outline lui:forced-colors:[--switch-bg:Highlight] lui:bg-
|
|
56
|
+
"lui:forced-colors:outline lui:forced-colors:[--switch-bg:Highlight] lui:bg-surface-tertiary lui:ring-1 lui:ring-black/5 lui:ring-inset " \
|
|
57
57
|
"lui:data-checked:bg-(--switch-bg) lui:data-checked:ring-(--switch-bg-ring) lui:focus:outline-hidden lui:data-focus:outline-2 " \
|
|
58
|
-
"lui:data-focus:outline-offset-2 lui:data-focus:outline-
|
|
59
|
-
"lui:data-disabled:bg-
|
|
60
|
-
"lui:[--switch-bg-ring:var(--lui-
|
|
61
|
-
"lui:[--switch-bg:var(--lui-
|
|
62
|
-
"lui:[--switch-ring:var(--lui-
|
|
58
|
+
"lui:data-focus:outline-offset-2 lui:data-focus:outline-focus lui:hover:ring-black/15 lui:hover:data-checked:ring-(--switch-bg-ring) " \
|
|
59
|
+
"lui:data-disabled:bg-surface-tertiary lui:data-disabled:opacity-50 lui:data-disabled:data-checked:bg-surface-tertiary lui:data-disabled:data-checked:ring-black/5 " \
|
|
60
|
+
"lui:[--switch-bg-ring:var(--lui-theme-border-invert)] " \
|
|
61
|
+
"lui:[--switch-bg:var(--lui-theme-surface-invert)] " \
|
|
62
|
+
"lui:[--switch-ring:var(--lui-theme-border-invert)] " \
|
|
63
63
|
"lui:[--switch-shadow:var(--lui-color-black)]/10 " \
|
|
64
64
|
"lui:[--switch:white]"
|
|
65
65
|
end
|
|
@@ -97,7 +97,7 @@ class LightningUiKit::SwitchComponent < LightningUiKit::BaseComponent
|
|
|
97
97
|
def render_label
|
|
98
98
|
return unless render_label?
|
|
99
99
|
|
|
100
|
-
tag.label(effective_label, id: label_id, class: "lui:text-base/6 lui:text-
|
|
100
|
+
tag.label(effective_label, id: label_id, class: "lui:text-base/6 lui:text-foreground lui:select-none lui:data-disabled:opacity-50 lui:sm:text-sm/6", data: label_data)
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
def render_hidden_field
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
<div class="lui:border-
|
|
2
|
-
<table class="lui:min-w-full lui:text-left lui:text-sm/6 lui:text-
|
|
3
|
-
<thead class="lui:text-
|
|
1
|
+
<div class="lui:border-border-subtle lui:border lui:rounded-lg">
|
|
2
|
+
<table class="lui:min-w-full lui:text-left lui:text-sm/6 lui:text-foreground lui:border-collapse lui:border-inherit">
|
|
3
|
+
<thead class="lui:text-foreground-muted">
|
|
4
4
|
<tr class="">
|
|
5
5
|
<% columns.each do |column| %>
|
|
6
|
-
<th class="lui:border-b lui:border-b-
|
|
6
|
+
<th class="lui:border-b lui:border-b-border lui:px-4 lui:py-2 lui:font-medium"><%= column.title %></th>
|
|
7
7
|
<% end %>
|
|
8
8
|
<% if actions.present? %>
|
|
9
|
-
<th class="lui:border-b lui:border-b-
|
|
9
|
+
<th class="lui:border-b lui:border-b-border lui:px-4 lui:py-2 lui:font-medium"><%= @actions_title %></th>
|
|
10
10
|
<% end %>
|
|
11
11
|
</tr>
|
|
12
12
|
</thead>
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
<% @data.each do |row| %>
|
|
22
22
|
<tr class="lui:group">
|
|
23
23
|
<% columns.each do |column| %>
|
|
24
|
-
<td class="lui:p-4 lui:border-b lui:border-
|
|
24
|
+
<td class="lui:p-4 lui:border-b lui:border-border-subtle lui:group-last:border-b-0">
|
|
25
25
|
<%= column.call(row) %>
|
|
26
26
|
</td>
|
|
27
27
|
<% end %>
|
|
28
28
|
<% if actions.present? %>
|
|
29
|
-
<td class="lui:p-4 lui:flex lui:gap-3 lui:border-b lui:border-
|
|
29
|
+
<td class="lui:p-4 lui:flex lui:gap-3 lui:border-b lui:border-border-subtle lui:group-last:border-b-0">
|
|
30
30
|
<% actions.each do |action| %>
|
|
31
31
|
<%= action.call(row) %>
|
|
32
32
|
<% end %>
|
|
@@ -5,6 +5,6 @@ class LightningUiKit::TextComponent < LightningUiKit::BaseComponent
|
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def classes
|
|
8
|
-
merge_classes(["lui:text-
|
|
8
|
+
merge_classes(["lui:text-foreground-secondary lui:text-#{@size}", @options[:class]].compact.join(" "))
|
|
9
9
|
end
|
|
10
10
|
end
|