diff --git a/.gitignore b/.gitignore
index 75689a41..74fd01fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
/spec/dummy/storage/
/spec/dummy/tmp/
/spec/dummy/node_modules
+/spec/dummy/app/assets/builds
/spec/app/assets/builds
/node_modules
spec/dummy/ink_components.tailwind.config.js
diff --git a/.tool-versions b/.tool-versions
index 05668b72..ddd9cc2e 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1 +1,2 @@
ruby 3.3.4
+nodejs 20.11.0
diff --git a/Procfile.dev b/Procfile.dev
index b1a9cc48..33d16328 100644
--- a/Procfile.dev
+++ b/Procfile.dev
@@ -1,3 +1,3 @@
-web: rails s -p 3000 -b 0.0.0.0
+web: bin/rails s -p 3000 -b 0.0.0.0
dummy_css: yarn --cwd ./spec/dummy run build:css --watch
dummy_js: yarn --cwd ./spec/dummy run build --watch
diff --git a/app/components/ink_components/forms/label/component.rb b/app/components/ink_components/forms/label/component.rb
index 6bd0cd72..a425345a 100644
--- a/app/components/ink_components/forms/label/component.rb
+++ b/app/components/ink_components/forms/label/component.rb
@@ -5,7 +5,7 @@ module Forms
module Label
class Component < ApplicationComponent
style do
- base { %w[ block mb-2 text-sm font-medium ] }
+ base { %w[ block text-sm font-medium ] }
variants {
state {
default { "text-gray-900 dark:text-white" }
diff --git a/app/helpers/ink_components/form_builder.rb b/app/helpers/ink_components/form_builder.rb
index 496d3fda..044d2e25 100644
--- a/app/helpers/ink_components/form_builder.rb
+++ b/app/helpers/ink_components/form_builder.rb
@@ -8,8 +8,9 @@ class FormBuilder < ActionView::Helpers::FormBuilder
delegate :render, to: :template
- def label(attribute, content = nil, **opts)
+ def label(attribute, content = nil, **opts, &)
content ||= label_text(attribute)
+ content = template.capture(&) if block_given?
label_component(for: format_id(attribute, objectify_options(opts)), **sanitize_options(opts)) { content }
end
@@ -80,8 +81,10 @@ def error_message(attribute, **)
helper_text_component(state:, **) { error_messages(attribute) }
end
- def submit(content = nil, **options)
+ def submit(content = nil, **options, &)
content ||= submit_default_value
+ content = template.capture(&) if block_given?
+
options[:data] = { disable_with: content }.merge(options[:data] || {})
button_component(builder: :button_tag, value: content, **options) { content }
end
diff --git a/app/views/users/new.html.erb b/app/views/users/new.html.erb
index f1344d90..a9fc5061 100644
--- a/app/views/users/new.html.erb
+++ b/app/views/users/new.html.erb
@@ -41,10 +41,24 @@
+ <%= f.label :full_name do %>
+ Nome completo
+ <%= f.text_field :full_name %>
+ <% end %>
+
+
+