tybo 0.0.1
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 +7 -0
- data/lib/app/components/attachment_card_component.html.erb +26 -0
- data/lib/app/components/attachment_card_component.rb +9 -0
- data/lib/app/components/attachments_list_component.html.erb +9 -0
- data/lib/app/components/attachments_list_component.rb +5 -0
- data/lib/app/components/current_user_mini_card_component.html.erb +8 -0
- data/lib/app/components/current_user_mini_card_component.rb +7 -0
- data/lib/app/components/form_component.html.erb +36 -0
- data/lib/app/components/form_component.rb +14 -0
- data/lib/app/components/forms/breadcrumb_component.html.erb +18 -0
- data/lib/app/components/forms/breadcrumb_component.rb +9 -0
- data/lib/app/components/forms/delete_button_component.html.erb +3 -0
- data/lib/app/components/forms/delete_button_component.rb +9 -0
- data/lib/app/components/forms/divider_component.html.erb +8 -0
- data/lib/app/components/forms/divider_component.rb +9 -0
- data/lib/app/components/forms/submit_button_component.html.erb +7 -0
- data/lib/app/components/forms/submit_button_component.rb +6 -0
- data/lib/app/components/forms/subtitle_component.html.erb +5 -0
- data/lib/app/components/forms/subtitle_component.rb +9 -0
- data/lib/app/components/forms/title_component.html.erb +3 -0
- data/lib/app/components/forms/title_component.rb +9 -0
- data/lib/app/components/icons/collection_component.html.erb +3 -0
- data/lib/app/components/icons/collection_component.rb +6 -0
- data/lib/app/components/icons/home_component.html.erb +3 -0
- data/lib/app/components/icons/home_component.rb +6 -0
- data/lib/app/components/icons/mic_component.html.erb +3 -0
- data/lib/app/components/icons/mic_component.rb +6 -0
- data/lib/app/components/icons/news_paper_component.html.erb +3 -0
- data/lib/app/components/icons/news_paper_component.rb +6 -0
- data/lib/app/components/icons/office_building_component.html.erb +3 -0
- data/lib/app/components/icons/office_building_component.rb +6 -0
- data/lib/app/components/icons/question_mark_circle_component.html.erb +3 -0
- data/lib/app/components/icons/question_mark_circle_component.rb +7 -0
- data/lib/app/components/icons/trash_component.html.erb +3 -0
- data/lib/app/components/icons/trash_component.rb +6 -0
- data/lib/app/components/icons/users_component.html.erb +3 -0
- data/lib/app/components/icons/users_component.rb +6 -0
- data/lib/app/components/index_component.html.erb +9 -0
- data/lib/app/components/index_component.rb +5 -0
- data/lib/app/components/index_header_add_component.html.erb +3 -0
- data/lib/app/components/index_header_add_component.rb +7 -0
- data/lib/app/components/index_header_component.html.erb +15 -0
- data/lib/app/components/index_header_component.rb +10 -0
- data/lib/app/components/input/file_component.html.erb +11 -0
- data/lib/app/components/input/file_component.rb +29 -0
- data/lib/app/components/sidebar_component.html.erb +23 -0
- data/lib/app/components/sidebar_component.rb +6 -0
- data/lib/app/components/sidebar_item_component.html.erb +9 -0
- data/lib/app/components/sidebar_item_component.rb +9 -0
- data/lib/app/components/sign_out_button_component.html.erb +5 -0
- data/lib/app/components/sign_out_button_component.rb +4 -0
- data/lib/app/components/tables/table_component.html.erb +21 -0
- data/lib/app/components/tables/table_component.rb +8 -0
- data/lib/app/components/tables/tbody_component.html.erb +5 -0
- data/lib/app/components/tables/tbody_component.rb +7 -0
- data/lib/app/components/tables/td_component.html.erb +3 -0
- data/lib/app/components/tables/td_component.rb +6 -0
- data/lib/app/components/tables/th_component.html.erb +3 -0
- data/lib/app/components/tables/th_component.rb +6 -0
- data/lib/app/components/tables/thead_component.html.erb +7 -0
- data/lib/app/components/tables/thead_component.rb +7 -0
- data/lib/app/components/tables/tr_component.html.erb +6 -0
- data/lib/app/components/tables/tr_component.rb +11 -0
- data/lib/app/helpers/application_helper.rb +5 -0
- data/lib/app/helpers/flash_helper.rb +16 -0
- data/lib/app/javascript/controllers/flash_controller.js +7 -0
- data/lib/tybo.rb +45 -0
- metadata +179 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9897851e74a06c11d9a138fd37ce454356f3d7d9df8735e481fafa40a45ecde1
|
4
|
+
data.tar.gz: fbd99b2a4e4ffae5ee374e8a2bf69623ca80dcc20512e717d8cfb68d360f4710
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2c029d94231d4e20fe1b5498e3aac4f9f16c3d4c70b16316c0de63e55f3be79767e3ca174e1e90563d98b61d96ba505809440d95ca6bbda23cb69c4b68b63214
|
7
|
+
data.tar.gz: dcec0696f8fa822cc8898e761836eda344d030f1156eb31034f88d2127b6edd679516bb663302075575d0939acef606eda66b92d2f1b2997dec8b02d69a60c94
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= turbo_frame_tag @attachment do %>
|
2
|
+
<li class="col-span-1 flex rounded-md shadow-sm">
|
3
|
+
<div class="flex-shrink-0 flex items-center justify-center w-16 bg-gray-100 text-gray-500 text-sm font-medium rounded-l-md border-t border-r border-b border-gray-200 ">
|
4
|
+
|
5
|
+
<% if @attachment.image? %>
|
6
|
+
<%= image_tag @attachment %>
|
7
|
+
<% else %>
|
8
|
+
<%= @attachment.blob.filename.extension.upcase %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="flex flex-1 items-center justify-between truncate rounded-r-md border-t border-r border-b border-gray-200 bg-white">
|
14
|
+
<div class="flex-1 truncate px-4 py-2 text-sm">
|
15
|
+
<span href="#" class="font-medium text-gray-900 hover:text-gray-600" title="<%= @attachment.blob.filename %>"><%= @attachment.blob.filename %></span>
|
16
|
+
<p class="text-gray-500"><%= (@attachment.blob.byte_size.to_f / 1000000).round(2) %> Mb</p>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="flex-shrink-0 pr-2">
|
20
|
+
<%= button_tag type: :button, data: { controller: "attachments", attachments_method_value: 'delete', attachments_url_value: remove_attachment_admin_thematic_path(@attachment.record), attachments_attachment_id_value: @attachment.id, action: "click->attachments#toggle" } do %>
|
21
|
+
<span class="sr-only">Delete</span>
|
22
|
+
<%= render(Icons::TrashComponent.new) %>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
25
|
+
</li>
|
26
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="flex-shrink-0 flex justify-between items-center border-t border-sidebar-200 p-4">
|
2
|
+
<div class="flex items-center">
|
3
|
+
<p class="text-sm ml-3 font-medium text-white">
|
4
|
+
<%= "#{@user.first_name} #{@user.last_name}" %>
|
5
|
+
</p>
|
6
|
+
</div>
|
7
|
+
<%= render(SignOutButtonComponent.new) %>
|
8
|
+
</div>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
2
|
+
<div class="max-w-2xl mx-auto ">
|
3
|
+
|
4
|
+
<% if breadcrumb? %>
|
5
|
+
<%= breadcrumb %>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<div class="my-5 mb-10">
|
9
|
+
<div class="mt-2 md:flex md:items-center md:justify-between">
|
10
|
+
|
11
|
+
<% if title? %>
|
12
|
+
<%= title %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if delete_button? %>
|
16
|
+
<%= delete_button %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<% if @nav_bar %>
|
23
|
+
<%= render(@nav_bar) %>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<% if item.is_a?(ApplicationRecord) && item.errors.any? %>
|
27
|
+
<div class="error-message">
|
28
|
+
<%= render('layouts/errors', errors: item.errors.full_messages.to_sentence.capitalize) %>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
|
32
|
+
<div class="px-4 py-5 bg-white space-y-6 sm:p-6 shadow sm:rounded-md sm:overflow-hidden">
|
33
|
+
<%= content %>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class FormComponent < ViewComponent::Base
|
4
|
+
renders_one :breadcrumb, Forms::BreadcrumbComponent
|
5
|
+
renders_one :title, Forms::TitleComponent
|
6
|
+
renders_one :delete_button, Forms::DeleteButtonComponent
|
7
|
+
|
8
|
+
def initialize(item:, nav_bar: nil)
|
9
|
+
@item = item
|
10
|
+
@nav_bar = nav_bar
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :item
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<ol role="list" class="flex items-center space-x-4">
|
2
|
+
|
3
|
+
<% @items.each.with_index do |item, i| %>
|
4
|
+
<li>
|
5
|
+
<div class="flex items-center">
|
6
|
+
<% if i.positive? %>
|
7
|
+
<!-- Heroicon name: solid/chevron-right -->
|
8
|
+
<svg class="flex-shrink-0 h-5 w-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
9
|
+
<path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
|
10
|
+
</svg>
|
11
|
+
<% end %>
|
12
|
+
<a href="<%= item[:path] %>" class="<%= 'ml-4' unless i.zero? %> text-sm font-medium text-gray-500 hover:text-gray-700">
|
13
|
+
<%= item[:label] %>
|
14
|
+
</a>
|
15
|
+
</div>
|
16
|
+
</li>
|
17
|
+
<% end %>
|
18
|
+
</ol>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<button type="button" class="inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-red-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" type="delete">
|
2
|
+
<%= link_to "Supprimer", @path, data: { "turbo-method": :delete, turbo_confirm: 'Êtes vous sûr ?' } %>
|
3
|
+
</button>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="relative">
|
2
|
+
<div class="absolute inset-0 flex items-center" aria-hidden="true">
|
3
|
+
<div class="w-full border-t border-gray-300"></div>
|
4
|
+
</div>
|
5
|
+
<div class="relative flex justify-center">
|
6
|
+
<span class="bg-white px-2 text-sm text-gray-500"><%= @title %></span>
|
7
|
+
</div>
|
8
|
+
</div>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<div class="pt-5">
|
2
|
+
<div class="flex justify-end">
|
3
|
+
<button type="submit" class="ml-3 inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
4
|
+
Sauvegarder
|
5
|
+
</button>
|
6
|
+
</div>
|
7
|
+
</div>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 01-2.25 2.25M16.5 7.5V18a2.25 2.25 0 002.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 002.25 2.25h13.5M6 7.5h3v3H6v-3z" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6" xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth={2}>
|
2
|
+
<path strokeLinecap="round" strokeLinejoin="round" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg class="mr-3 flex-shrink-0 h-6 w-6 text-sidebar-50" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
|
2
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
|
2
|
+
<%= link_to '+', @path, class: "inline-flex items-center justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:w-auto" %>
|
3
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="sm:flex sm:items-center">
|
2
|
+
<div class="sm:flex-auto">
|
3
|
+
<h1 class="text-xl font-semibold text-gray-900">
|
4
|
+
<%= @title %>
|
5
|
+
</h1>
|
6
|
+
<p class="mt-2 text-sm text-gray-700">
|
7
|
+
<%= @subtitle %>
|
8
|
+
</p>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<% if add_button? %>
|
12
|
+
<%= add_button %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div>
|
2
|
+
<label class="block my-5 block text-sm font-medium text-gray-700 string optional text-sm font-medium text-gray-600">
|
3
|
+
<%= label %>
|
4
|
+
<% if @object.attached? && object.variable? %>
|
5
|
+
<%= image_tag @picture, class: 'border-2 border-dashed border-gray-300 mb-4' %>
|
6
|
+
<% elsif @object.attached? %>
|
7
|
+
<div><%= link_to @object.filename, url_for(@object) %></div>
|
8
|
+
<% end %>
|
9
|
+
<%= @form.file_field @field, class: "font-normal block text-sm text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 file:mr-5 file:py-2 file:px-6 file:border-0 pr-5" %>
|
10
|
+
</label>
|
11
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Input
|
4
|
+
class FileComponent < ViewComponent::Base
|
5
|
+
def initialize(item:, field:, form:, variant: nil)
|
6
|
+
@item = item
|
7
|
+
@field = field
|
8
|
+
@form = form
|
9
|
+
@label = label
|
10
|
+
@variant = variant
|
11
|
+
@picture = picture
|
12
|
+
@object = object
|
13
|
+
end
|
14
|
+
|
15
|
+
def label
|
16
|
+
I18n.t("#{@item.class.name.downcase}.attributes.#{@field}")
|
17
|
+
end
|
18
|
+
|
19
|
+
def picture
|
20
|
+
return object unless @variant
|
21
|
+
|
22
|
+
object.variant(@variant)
|
23
|
+
end
|
24
|
+
|
25
|
+
def object
|
26
|
+
@item.send(@field)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class=" md:flex md:w-64 md:flex-col md:fixed md:inset-y-0">
|
2
|
+
<div class="flex-1 flex flex-col min-h-0 bg-sidebar">
|
3
|
+
<div class="flex-1 flex flex-col pt-5 pb-4 overflow-y-auto">
|
4
|
+
<div class="flex items-center flex-shrink-0 px-4">
|
5
|
+
<%= image_tag("https://tymate.com/assets/logos/logo-full-tymate-white-44c399f36de12ec8b69a86ec02ab13fc5c80842dd2333117658ead762ff15f93.svg", alt: "logo rif", class: 'mx-auto h-15 w-auto') %>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<nav class="mt-5 flex-1 px-2 space-y-1" aria-label="Sidebar">
|
9
|
+
|
10
|
+
<% items.each do |item| %>
|
11
|
+
<%= item %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
</nav>
|
15
|
+
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<% if current_user_card? %>
|
19
|
+
<%= current_user_card %>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% current_class = current_page?(@path) ? 'bg-sidebar-900 text-white hover:bg-sidebar-900' : '' %>
|
2
|
+
|
3
|
+
<%= link_to @path, class: "#{current_class} group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-sidebar-200" do %>
|
4
|
+
<%= render(@icon.new) %>
|
5
|
+
|
6
|
+
<span class="flex-1 text-white">
|
7
|
+
<%= @label %>
|
8
|
+
</span>
|
9
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<%= button_to sign_out_path, class:"flex items-center", method: :delete do %>
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="white" stroke-width="2">
|
3
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
4
|
+
</svg>
|
5
|
+
<% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
<div class="mt-8 flex flex-col">
|
3
|
+
<div class="-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8">
|
4
|
+
<div class="inline-block min-w-full py-2 align-middle md:px-6 lg:px-8">
|
5
|
+
<div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
|
6
|
+
<table class="min-w-full divide-y divide-gray-300">
|
7
|
+
|
8
|
+
<% if thead? %>
|
9
|
+
<%= thead %>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% if tbody? %>
|
13
|
+
<%= tbody %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
</table>
|
17
|
+
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FlashHelper
|
4
|
+
# todo remove me and create a custom administrator authentification
|
5
|
+
def current_user
|
6
|
+
OpenStruct.new(email: "michel@tymate.com")
|
7
|
+
end
|
8
|
+
|
9
|
+
def classes_for_flash(key)
|
10
|
+
if %w[error alert].include?(key)
|
11
|
+
'red'
|
12
|
+
else
|
13
|
+
'green'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/tybo.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
autoload 'AttachmentCardComponent', 'app/components/attachment_card_component'
|
2
|
+
autoload 'AttachmentsListComponent', 'app/components/attachments_list_component'
|
3
|
+
autoload 'CurrentUserMiniCardComponent', 'app/components/current_user_mini_card_component'
|
4
|
+
autoload 'FormComponent', 'app/components/form_component'
|
5
|
+
autoload 'IndexComponent', 'app/components/index_component'
|
6
|
+
autoload 'IndexHeaderAddComponent', 'app/components/index_header_add_component'
|
7
|
+
autoload 'IndexHeaderComponent', 'app/components/index_header_component'
|
8
|
+
autoload 'SidebarComponent', 'app/components/sidebar_component'
|
9
|
+
autoload 'SidebarItemComponent', 'app/components/sidebar_item_component'
|
10
|
+
autoload 'SignOutButtonComponent', 'app/components/sign_out_button_component'
|
11
|
+
autoload 'ModalComponent', 'app/components/modal_component'
|
12
|
+
|
13
|
+
module Forms
|
14
|
+
autoload 'BreadcrumbComponent', 'app/components/forms/breadcrumb_component'
|
15
|
+
autoload 'DeleteButtonComponent', 'app/components/forms/delete_button_component'
|
16
|
+
autoload 'DividerComponent', 'app/components/forms/divider_component'
|
17
|
+
autoload 'SubmitButtonComponent', 'app/components/forms/submit_button_component'
|
18
|
+
autoload 'SubtitleComponent', 'app/components/forms/subtitle_component'
|
19
|
+
autoload 'TitleComponent', 'app/components/forms/title_component'
|
20
|
+
end
|
21
|
+
|
22
|
+
module Icons
|
23
|
+
autoload 'CollectionComponent', 'app/components/icons/collection_component'
|
24
|
+
autoload 'HomeComponent', 'app/components/icons/home_component'
|
25
|
+
autoload 'MicComponent', 'app/components/icons/mic_component'
|
26
|
+
autoload 'NewsPaperComponent', 'app/components/icons/news_paper_component'
|
27
|
+
autoload 'OfficeBuildingComponent', 'app/components/icons/office_building_component'
|
28
|
+
autoload 'QuestionMarkCircleComponent', 'app/components/icons/question_mark_circle_component'
|
29
|
+
autoload 'TrashComponent', 'app/components/icons/trash_component'
|
30
|
+
autoload 'UsersComponent', 'app/components/icons/users_component'
|
31
|
+
end
|
32
|
+
|
33
|
+
module Input
|
34
|
+
autoload 'FileComponent', 'app/components/input/file_component'
|
35
|
+
end
|
36
|
+
|
37
|
+
module Tables
|
38
|
+
autoload 'TableComponent', 'app/components/tables/table_component'
|
39
|
+
autoload 'TbodyComponent', 'app/components/tables/tbody_component'
|
40
|
+
autoload 'TdComponent', 'app/components/tables/td_component'
|
41
|
+
autoload 'ThComponent', 'app/components/tables/th_component'
|
42
|
+
autoload 'TheadComponent', 'app/components/tables/thead_component'
|
43
|
+
autoload 'TrComponent', 'app/components/tables/tr_component'
|
44
|
+
autoload 'ActiveRecordTotoComponent', 'app/components/tables/active_record_toto_component'
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tybo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Julien Camblan
|
8
|
+
- Michel Delpierre
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2022-12-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: turbo-rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.1.1
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 1.1.1
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: stimulus-rails
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.1.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.1.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: view_component
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 2.62.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 2.62.0
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: tailwindcss-rails
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: ransack
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
description: Collection of ViewComponents objects for backoffice
|
85
|
+
email: tech@tymate.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- lib/app/components/attachment_card_component.html.erb
|
91
|
+
- lib/app/components/attachment_card_component.rb
|
92
|
+
- lib/app/components/attachments_list_component.html.erb
|
93
|
+
- lib/app/components/attachments_list_component.rb
|
94
|
+
- lib/app/components/current_user_mini_card_component.html.erb
|
95
|
+
- lib/app/components/current_user_mini_card_component.rb
|
96
|
+
- lib/app/components/form_component.html.erb
|
97
|
+
- lib/app/components/form_component.rb
|
98
|
+
- lib/app/components/forms/breadcrumb_component.html.erb
|
99
|
+
- lib/app/components/forms/breadcrumb_component.rb
|
100
|
+
- lib/app/components/forms/delete_button_component.html.erb
|
101
|
+
- lib/app/components/forms/delete_button_component.rb
|
102
|
+
- lib/app/components/forms/divider_component.html.erb
|
103
|
+
- lib/app/components/forms/divider_component.rb
|
104
|
+
- lib/app/components/forms/submit_button_component.html.erb
|
105
|
+
- lib/app/components/forms/submit_button_component.rb
|
106
|
+
- lib/app/components/forms/subtitle_component.html.erb
|
107
|
+
- lib/app/components/forms/subtitle_component.rb
|
108
|
+
- lib/app/components/forms/title_component.html.erb
|
109
|
+
- lib/app/components/forms/title_component.rb
|
110
|
+
- lib/app/components/icons/collection_component.html.erb
|
111
|
+
- lib/app/components/icons/collection_component.rb
|
112
|
+
- lib/app/components/icons/home_component.html.erb
|
113
|
+
- lib/app/components/icons/home_component.rb
|
114
|
+
- lib/app/components/icons/mic_component.html.erb
|
115
|
+
- lib/app/components/icons/mic_component.rb
|
116
|
+
- lib/app/components/icons/news_paper_component.html.erb
|
117
|
+
- lib/app/components/icons/news_paper_component.rb
|
118
|
+
- lib/app/components/icons/office_building_component.html.erb
|
119
|
+
- lib/app/components/icons/office_building_component.rb
|
120
|
+
- lib/app/components/icons/question_mark_circle_component.html.erb
|
121
|
+
- lib/app/components/icons/question_mark_circle_component.rb
|
122
|
+
- lib/app/components/icons/trash_component.html.erb
|
123
|
+
- lib/app/components/icons/trash_component.rb
|
124
|
+
- lib/app/components/icons/users_component.html.erb
|
125
|
+
- lib/app/components/icons/users_component.rb
|
126
|
+
- lib/app/components/index_component.html.erb
|
127
|
+
- lib/app/components/index_component.rb
|
128
|
+
- lib/app/components/index_header_add_component.html.erb
|
129
|
+
- lib/app/components/index_header_add_component.rb
|
130
|
+
- lib/app/components/index_header_component.html.erb
|
131
|
+
- lib/app/components/index_header_component.rb
|
132
|
+
- lib/app/components/input/file_component.html.erb
|
133
|
+
- lib/app/components/input/file_component.rb
|
134
|
+
- lib/app/components/sidebar_component.html.erb
|
135
|
+
- lib/app/components/sidebar_component.rb
|
136
|
+
- lib/app/components/sidebar_item_component.html.erb
|
137
|
+
- lib/app/components/sidebar_item_component.rb
|
138
|
+
- lib/app/components/sign_out_button_component.html.erb
|
139
|
+
- lib/app/components/sign_out_button_component.rb
|
140
|
+
- lib/app/components/tables/table_component.html.erb
|
141
|
+
- lib/app/components/tables/table_component.rb
|
142
|
+
- lib/app/components/tables/tbody_component.html.erb
|
143
|
+
- lib/app/components/tables/tbody_component.rb
|
144
|
+
- lib/app/components/tables/td_component.html.erb
|
145
|
+
- lib/app/components/tables/td_component.rb
|
146
|
+
- lib/app/components/tables/th_component.html.erb
|
147
|
+
- lib/app/components/tables/th_component.rb
|
148
|
+
- lib/app/components/tables/thead_component.html.erb
|
149
|
+
- lib/app/components/tables/thead_component.rb
|
150
|
+
- lib/app/components/tables/tr_component.html.erb
|
151
|
+
- lib/app/components/tables/tr_component.rb
|
152
|
+
- lib/app/helpers/application_helper.rb
|
153
|
+
- lib/app/helpers/flash_helper.rb
|
154
|
+
- lib/app/javascript/controllers/flash_controller.js
|
155
|
+
- lib/tybo.rb
|
156
|
+
homepage: https://rubygems.org/gems/backoffice-components
|
157
|
+
licenses:
|
158
|
+
- MIT
|
159
|
+
metadata: {}
|
160
|
+
post_install_message:
|
161
|
+
rdoc_options: []
|
162
|
+
require_paths:
|
163
|
+
- lib
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
requirements: []
|
175
|
+
rubygems_version: 3.2.32
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: ''
|
179
|
+
test_files: []
|