Previews

No matching results.

x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<div class="lui-image-wrapper">
<turbo-frame id="multiple_image_images_pokemon_1_full">
<div data-controller="images" data-images-editable-value="true" data-images-standalone-value="false" data-images-form-id-value="" data-images-with-attached-value="false" data-images-turbo-frame-id-value="multiple_image_images_pokemon_1_full" data-images-unique-id-value="multiple_image_images_pokemon_1_full" data-images-list-view-value="false" data-images-has-many-value="true" data-images-force-new-value="false" data-images-submit-on-upload-value="true" data-images-direct-upload-authorization-value="" data-images-direct-upload-url-value="/rails/active_storage/direct_uploads" data-images-max-size-error-message-value="Image is too big." data-images-max-size-batch-error-message-value="Images batch is too big." data-images-urls-value="{"attach":"/loopos_ui/images","detach":"/loopos_ui/images"}">
<div class="lui-image lui-image--full" data-images-target="imageComponent" data-action="pubsub:action@window->images#executeAction">
<div
role="status"
class="hidden lui-image__loader"
data-images-target="loader"
>
<span class="lui-button__tooltip-wrapper inline-flex w-fit">
<button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-tiny lui-button--disabled w-fit w-fit relative" data-controller="lui--button" disabled="disabled">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 12px; height: 12px;"><i class="lui-button__icon lui-button__icon--tiny fa-regular fa-spinner" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-rounded" style="--lui-micon-size: 12px;">
progress_activity
</i>
</div>
</button></span>
</div>
<img class="hidden lui-image__image" data-images-target="image" src="" />
<div
class="lui-image__placeholder lui-image__placeholder--editable flex"
data-images-target="placeholder"
>
<div class="lui-icon h-[16px] w-[16px]">
<i class="fa-regular fa-image lui-icon__icon" style="font-size: 16px; color: white;"></i>
</div>
</div>
<div class="overflow-visible lui-image__image-edit">
<form data-images-target="form" enctype="multipart/form-data" action="#" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="vMh0zOBlR0lIUzCfgUi3Ntb-SXoA0mtGLeGCzfRJxa0tXLbXGuo08sTpWSULJxy2dUx6BWYqhh5yTyAbWaDIig" />
<input type="hidden" name="authenticity_token" id="authenticity_token" value="E58Isco4NrD4P7LxElnVjBoxgyyn_LcVFb4nTEN2B0v77umsqxdTtVecouwS_RCRn9gRpz6C8DAL1cfcXQZBRg" />
<input type="hidden" autocomplete="off" value="4PCQWnaHhVD3Guj77C/o1FoZfCyljwzbk6IVEXrWL4bwgbc5i7tINYa/ZAgLqi7l6U/3jmAzswfkmdM8EG2esRpD09d+Md0kO2oLIn0DIx57TjYAxE3xzvtUi317WCbbJEsD69uJJqM=--aXoNFcrFYQ72bEd0--DUZDf+JjjXBKsK1MYutXeg==" data-images-target="uploadContext" name="context">
<div class="hidden" data-images-target="noImageUploader">
<span class="lui-button__tooltip-wrapper inline-flex w-fit">
<div class="lui-tooltip hidden"
data-controller="tooltips"
data-tooltips-tippy-target-id-value=""
data-tooltips-position-value="top"
data-tooltips-interactive-value="false"
>
<div class="lui-tooltip__title">
Upload images here
</div>
</div>
<button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-tiny w-fit w-fit relative" data-controller="lui--button" data-action="click->images#openFilePickerMultiple">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 12px; height: 12px;"><i class="lui-button__icon lui-button__icon--tiny fa-regular fa-upload" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-rounded" style="--lui-micon-size: 12px;">
progress_activity
</i>
</div>
</button></span>
</div>
<div class="hidden" data-images-target="withImageUploader">
<div
data-controller="action-menu"
data-action="modal:open@window->action-menu#disableTippy modal:close@window->action-menu#enableTippy"
data-action-menu-placement-value="bottom"
class="lui-action-menu">
<div data-action-menu-target="trigger" class="flex">
<span class="lui-button__tooltip-wrapper inline-flex w-fit">
<button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-tiny w-fit w-fit relative" data-controller="lui--button" type="button">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 12px; height: 12px;"><i class="lui-button__icon lui-button__icon--tiny fa-regular fa-ellipsis-vertical" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-rounded" style="--lui-micon-size: 12px;">
progress_activity
</i>
</div>
</button></span>
</div>
<div data-action-menu-target="menu" class="hidden lui-action-menu__wrapper" data-controller="modal form-submit pubsub">
<div class="lui-action-menu__options" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
<div class="contents cursor-pointer">
<div class="lui-action-menu__option " data-action="click->pubsub#publish" data-pubsub-unique-id-param="multiple_image_images_pokemon_1_full" data-pubsub-action-param="openFilePicker">
<div class="lui-action-menu__option-text cursor-default">
<i class="fa-regular fa-arrows-rotate"></i>
<span>Upload new image</span>
</div>
</div>
</div>
<div class="contents cursor-pointer">
<div class="lui-action-menu__option " data-action="click->pubsub#publish" data-pubsub-unique-id-param="multiple_image_images_pokemon_1_full" data-pubsub-action-param="openFilePickerMultiple">
<div class="lui-action-menu__option-text cursor-default">
<i class="fa-regular fa-plus"></i>
<span>Add more images</span>
</div>
</div>
</div>
<div class="contents cursor-pointer">
<div class="lui-action-menu__option " data-action="click->pubsub#publish" data-pubsub-unique-id-param="multiple_image_images_pokemon_1_full" data-pubsub-action-param="detachImage">
<div class="lui-action-menu__option-text cursor-default">
<i class="fa-regular fa-trash"></i>
<span>Remove image</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<input accept="image/jpeg,image/png,image/webp" class="hidden" data-direct-upload-url="/rails/active_storage/direct_uploads" data-images-target="file" data-action="change->images#previewAndSubmit" type="file" name="file" id="file" />
<input name="files[][]" type="hidden" value="" /><input accept="image/jpeg,image/png,image/webp" multiple="multiple" class="hidden" data-direct-upload-url="/rails/active_storage/direct_uploads" data-images-target="fileMultiple" data-action="change->images#previewAndSubmitMultiple" type="file" name="files[][]" id="files[]" />
<input type="submit" name="commit" value="Save" data-images-target="submit" data-disable-with="Save" class="hidden" />
</form>
</div>
</div>
<span class="lui-image__error hidden" data-images-target="error"></span>
</div>
</turbo-frame>
</div>

No Usage documentation to display.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
pokemon = Pokemon.first
pokemon_args = {
model: pokemon,
association: :images,
# size: :small,
list_view: params[:list_view] || false,
}
%>
<% pokemon.images.purge if params.delete(:delete_all_images).present? %>
<%= render LooposUi::V2::Image.new(
**pokemon_args,
editable: true,
help: params[:help].presence,
error: params[:error].presence,
) %>
Param Description Input

Helper text below the image input

Validation error message