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 %> + +

+
<%= f.check_box :paid %> <%= f.label :paid, class: "mb-0" %>
<%= f.submit %> + +

+ + <%= f.submit class: "flex items-center gap-2" do %> + <%= icon_component(name: :github, class: "size-3") %> + Salvar + <% end %> <% end %>