ariadne_view_components 0.0.93.2 → 0.0.94
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/CHANGELOG.md +7 -0
- data/README.md +13 -4
- data/app/assets/javascripts/ariadne_view_components.js +14 -14
- data/app/assets/javascripts/ariadne_view_components.js.br +0 -0
- data/app/assets/javascripts/ariadne_view_components.js.gz +0 -0
- data/app/assets/javascripts/ariadne_view_components.js.map +1 -1
- data/app/assets/stylesheets/ariadne_view_components.css +1 -1
- data/app/assets/stylesheets/ariadne_view_components.css.br +0 -0
- data/app/assets/stylesheets/ariadne_view_components.css.gz +0 -0
- data/app/components/ariadne/base_component.rb +25 -22
- data/app/components/ariadne/behaviors/tooltipable.rb +12 -12
- data/app/components/ariadne/form/checkbox/component.rb +2 -2
- data/app/components/ariadne/form/group/component.rb +1 -1
- data/app/components/ariadne/form/radio_button/component.rb +2 -2
- data/app/components/ariadne/form/select/component.rb +1 -1
- data/app/components/ariadne/form/text_field/component.html.erb +2 -2
- data/app/components/ariadne/form/text_field/component.rb +14 -7
- data/app/components/ariadne/form/toggle/component.rb +2 -2
- data/app/components/ariadne/form/toggle_group/component.rb +1 -1
- data/app/components/ariadne/form/toggle_group/option/component.rb +1 -1
- data/app/components/ariadne/layout/grid/component.rb +1 -1
- data/app/components/ariadne/layout/grid/item/component.rb +2 -2
- data/app/components/ariadne/layout/label_block/component.rb +1 -1
- data/app/components/ariadne/layout/narrow/component.rb +1 -1
- data/app/components/ariadne/ui/accordion/component.rb +3 -1
- data/app/components/ariadne/ui/accordion/item/component.html.erb +10 -10
- data/app/components/ariadne/ui/accordion/item/component.rb +12 -3
- data/app/components/ariadne/ui/avatar/component.html.erb +9 -7
- data/app/components/ariadne/ui/avatar/component.rb +55 -7
- data/app/components/ariadne/ui/badge/component.rb +35 -16
- data/app/components/ariadne/ui/banner/component.html.erb +23 -0
- data/app/components/ariadne/ui/banner/component.rb +226 -0
- data/app/components/ariadne/ui/banner/component.ts +46 -0
- data/app/components/ariadne/ui/blankslate/component.html.erb +2 -2
- data/app/components/ariadne/ui/blankslate/component.rb +12 -1
- data/app/components/ariadne/ui/button/component.rb +35 -24
- data/app/components/ariadne/ui/card/body/component.rb +1 -1
- data/app/components/ariadne/ui/card/component.rb +11 -7
- data/app/components/ariadne/ui/card/footer/component.rb +1 -1
- data/app/components/ariadne/ui/card/header/component.html.erb +2 -2
- data/app/components/ariadne/ui/card/header/component.rb +25 -16
- data/app/components/ariadne/ui/clipboard_copy/component.html.erb +1 -0
- data/app/components/ariadne/ui/clipboard_copy/component.rb +17 -21
- data/app/components/ariadne/ui/clipboard_copy/component.ts +15 -0
- data/app/components/ariadne/ui/color_dot/component.html.erb +5 -5
- data/app/components/ariadne/ui/color_dot/component.rb +19 -4
- data/app/components/ariadne/ui/combobox/component.html.erb +1 -1
- data/app/components/ariadne/ui/combobox/component.rb +54 -23
- data/app/components/ariadne/ui/combobox/component.ts +2 -0
- data/app/components/ariadne/ui/dialog/body/component.html.erb +3 -0
- data/app/components/ariadne/ui/dialog/body/component.rb +28 -0
- data/app/components/ariadne/ui/dialog/component.html.erb +25 -24
- data/app/components/ariadne/ui/dialog/component.rb +87 -18
- data/app/components/ariadne/ui/dialog/component.ts +5 -1
- data/app/components/ariadne/ui/dialog/footer/component.html.erb +3 -0
- data/app/components/ariadne/ui/dialog/footer/component.rb +34 -0
- data/app/components/ariadne/ui/heroicon/component.rb +21 -21
- data/app/components/ariadne/ui/image/component.rb +11 -23
- data/app/components/ariadne/ui/link/component.html.erb +1 -3
- data/app/components/ariadne/ui/link/component.rb +17 -4
- data/app/components/ariadne/ui/list/component.html.erb +5 -9
- data/app/components/ariadne/ui/list/component.rb +31 -7
- data/app/components/ariadne/ui/list/item/component.rb +6 -5
- data/app/components/ariadne/ui/pagination/component.rb +1 -2
- data/app/components/ariadne/ui/popover/component.html.erb +1 -1
- data/app/components/ariadne/ui/popover/component.rb +31 -26
- data/app/components/ariadne/ui/relative_time/component.html.erb +1 -0
- data/app/components/ariadne/ui/{time_ago → relative_time}/component.rb +15 -15
- data/app/components/ariadne/ui/{time_ago → relative_time}/component.ts +1 -1
- data/app/components/ariadne/ui/shortcut/component.html.erb +0 -1
- data/app/components/ariadne/ui/shortcut/component.rb +31 -5
- data/app/components/ariadne/ui/shortcut/component.ts +1 -1
- data/app/components/ariadne/ui/skeleton/component.rb +2 -8
- data/app/components/ariadne/ui/stats_panel/component.html.erb +3 -3
- data/app/components/ariadne/ui/stats_panel/component.rb +25 -1
- data/app/components/ariadne/ui/stats_panel/item/component.html.erb +3 -3
- data/app/components/ariadne/ui/stats_panel/item/component.rb +6 -6
- data/app/components/ariadne/ui/table/cell/component.rb +1 -1
- data/app/components/ariadne/ui/table/row/component.rb +1 -1
- data/app/components/ariadne/ui/typography/component.rb +3 -1
- data/app/frontend/controllers/tooltip_controller.ts +8 -3
- data/app/frontend/stylesheets/ariadne_view_components.css +1 -0
- data/app/frontend/stylesheets/theme.css +88 -0
- data/app/frontend/utils/createController.ts +9 -0
- data/app/helpers/ariadne/color_helper.rb +158 -0
- data/app/helpers/ariadne/form_helper.rb +1 -0
- data/app/helpers/ariadne/size_helper.rb +7 -0
- data/app/lib/ariadne/attributes_helper.rb +4 -4
- data/app/lib/ariadne/view_component/style_variants.rb +1 -1
- data/app/lib/ariadne/view_helper.rb +0 -6
- data/lib/ariadne/accessibility.rb +64 -0
- data/lib/ariadne/forms/dsl/form_object.rb +5 -1
- data/lib/ariadne/forms/dsl/input.rb +1 -1
- data/lib/ariadne/static/generate_arguments.rb +54 -0
- data/lib/ariadne/static/generate_audited_at.rb +17 -0
- data/lib/ariadne/static/generate_constants.rb +19 -0
- data/lib/ariadne/static/generate_previews.rb +53 -0
- data/lib/ariadne/static/generate_statuses.rb +17 -0
- data/lib/ariadne/static/generate_structure.rb +279 -0
- data/lib/ariadne/static.rb +68 -0
- data/lib/ariadne/view_components/constants.rb +2 -2
- data/lib/ariadne/view_components/version.rb +1 -1
- data/lib/ariadne/view_components.rb +0 -51
- data/lib/ariadne/yard/component_manifest.rb +81 -81
- data/lib/ariadne/yard/component_ref.rb +1 -1
- data/lib/ariadne/yard/docs_helper.rb +24 -16
- data/lib/ariadne/yard/dry_initializer/common_handler.rb +103 -0
- data/lib/ariadne/yard/dry_initializer/option_handler.rb +38 -0
- data/lib/ariadne/yard/dry_initializer/param_handler.rb +57 -0
- data/lib/ariadne/yard/registry.rb +2 -5
- data/lib/ariadne/yard/{info_arch_docs_helper.rb → structure_docs_helper.rb} +5 -5
- data/lib/ariadne/yard.rb +20 -8
- data/lib/rubocop/config/default.yml +0 -3
- metadata +34 -37
- data/app/components/ariadne/behaviors/captionable.rb +0 -55
- data/app/components/ariadne/turbo/frame/component.html.erb +0 -3
- data/app/components/ariadne/turbo/frame/component.rb +0 -16
- data/app/components/ariadne/turbo/stream_action/component.html.erb +0 -4
- data/app/components/ariadne/turbo/stream_action/component.rb +0 -25
- data/app/components/ariadne/ui/data_table/component.html.erb +0 -1
- data/app/components/ariadne/ui/data_table/component.rb +0 -11
- data/app/components/ariadne/ui/flash/component.html.erb +0 -18
- data/app/components/ariadne/ui/flash/component.rb +0 -151
- data/app/components/ariadne/ui/flash/component.ts +0 -56
- data/app/components/ariadne/ui/overlay/component.html.erb +0 -12
- data/app/components/ariadne/ui/overlay/component.rb +0 -54
- data/app/components/ariadne/ui/overlay/component.ts +0 -92
- data/app/components/ariadne/ui/time_ago/component.html.erb +0 -1
- data/lib/ariadne/view_components/commands.rb +0 -90
- data/lib/ariadne/view_components/statuses.rb +0 -14
- data/lib/ariadne/view_components/upstream.rb +0 -19
- data/lib/ariadne/yard/lookbook_pages_backend.rb +0 -235
- data/lib/rubocop/cop/ariadne/no_tag_memoize.rb +0 -44
- data/static/arguments.yml +0 -879
- data/static/assets/view-components.svg +0 -18
- data/static/classes.yml +0 -211
- data/static/constants.json +0 -743
- data/static/statuses.json +0 -58
- data/static/tailwindcss.yml +0 -727
- /data/app/components/ariadne/ui/{time_ago → relative_time}/en.yml +0 -0
@@ -1,25 +0,0 @@
|
|
1
|
-
# typed: false
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Ariadne
|
5
|
-
module Turbo
|
6
|
-
module StreamAction
|
7
|
-
class Component < Ariadne::BaseComponent
|
8
|
-
option :component
|
9
|
-
option :action, default: -> { "update" }
|
10
|
-
|
11
|
-
def target
|
12
|
-
@target ||= component.component_id
|
13
|
-
end
|
14
|
-
|
15
|
-
def turbo_action
|
16
|
-
@turbo_action ||= empty? ? "update" : action
|
17
|
-
end
|
18
|
-
|
19
|
-
def empty?
|
20
|
-
action == "drop"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<div>Add Ariadne::UI::DataTable template here</div>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<div class="<%= html_attrs[:class] %>" <%= html_attributes %>>
|
2
|
-
<div class="ariadne-p-4">
|
3
|
-
<div class="ariadne-flex ariadne-items-start">
|
4
|
-
<div class="ariadne-flex-shrink-0 <%= style(:text, type:) %>">
|
5
|
-
<%= icon %>
|
6
|
-
</div>
|
7
|
-
<div class="ariadne-ml-3 ariadne-w-0 ariadne-flex-1 ariadne-pt-0.5 <%= style(:text, type:) %>">
|
8
|
-
<p class="ariadne-text-sm ariadne-font-semibold" data-flash-target="title"><%= title %></p>
|
9
|
-
<p class="ariadne-mt-1 ariadne-text-sm" data-flash-target="message"><%= message %></p>
|
10
|
-
</div>
|
11
|
-
<div class="ariadne-ml-4 ariadne-flex ariadne-flex-shrink-0 ">
|
12
|
-
<% if dismissable? %>
|
13
|
-
<%= render Ariadne::UI::Button::Component.new(theme: :nude, html_attrs: { class: style(:dismissable, type:), aria: { label: "close_label" }, data: { action: "click->#{stimulus_name}#hide" } }).as_icon(icon: "x-mark", variant: :outline) %>
|
14
|
-
<% end %>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
</div>
|
18
|
-
</div>
|
@@ -1,151 +0,0 @@
|
|
1
|
-
# typed: false
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Ariadne
|
5
|
-
module UI
|
6
|
-
module Flash
|
7
|
-
class Component < Ariadne::BaseComponent
|
8
|
-
option :type
|
9
|
-
option :dismissible, default: proc { false }
|
10
|
-
option :title
|
11
|
-
option :message
|
12
|
-
option :persist, default: proc { false }
|
13
|
-
option :width, default: proc { :base }
|
14
|
-
|
15
|
-
accepts_html_attributes do |html_attrs|
|
16
|
-
unless persist
|
17
|
-
html_attrs[:data] = {
|
18
|
-
controller: "flash",
|
19
|
-
transition_enter: "ariadne-transform ariadne-ease-out ariadne-duration-300 ariadne-transition-all",
|
20
|
-
transition_enter_start: "ariadne-translate-y-2 ariadne-opacity-0 sm:ariadne-translate-y-0 sm:ariadne-translate-x-2",
|
21
|
-
transition_enter_end: "ariadne-translate-y-0 ariadne-opacity-100 sm:ariadne-translate-x-0",
|
22
|
-
transition_leave: "ariadne-transition-all ariadne-ease-in ariadne-duration-100",
|
23
|
-
transition_leave_start: "ariadne-opacity-100",
|
24
|
-
transition_leave_end: "ariadne-opacity-0",
|
25
|
-
}
|
26
|
-
end
|
27
|
-
|
28
|
-
html_attrs[:class] = Ariadne::ViewComponents.tailwind_merger.merge([
|
29
|
-
html_attrs[:class],
|
30
|
-
style(type:, width:),
|
31
|
-
])
|
32
|
-
end
|
33
|
-
|
34
|
-
renders_one :icon, Ariadne::UI::Heroicon::Component
|
35
|
-
|
36
|
-
def dismissable?
|
37
|
-
dismissible
|
38
|
-
end
|
39
|
-
|
40
|
-
style do
|
41
|
-
base do
|
42
|
-
[
|
43
|
-
"ariadne-pointer-events-auto",
|
44
|
-
"ariadne-overflow-hidden",
|
45
|
-
"ariadne-rounded-lg",
|
46
|
-
"ariadne-shadow-lg",
|
47
|
-
"ariadne-ring-1",
|
48
|
-
"ariadne-ring-slate-950",
|
49
|
-
"ariadne-ring-opacity-5",
|
50
|
-
"ariadne-z-50",
|
51
|
-
]
|
52
|
-
end
|
53
|
-
|
54
|
-
variants do
|
55
|
-
width do
|
56
|
-
base do
|
57
|
-
[
|
58
|
-
"ariadne-w-full",
|
59
|
-
"ariadne-max-w-sm",
|
60
|
-
]
|
61
|
-
end
|
62
|
-
|
63
|
-
full do
|
64
|
-
[
|
65
|
-
"ariadne-w-full",
|
66
|
-
]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
type do
|
71
|
-
danger do
|
72
|
-
[
|
73
|
-
"ariadne-bg-red-50",
|
74
|
-
]
|
75
|
-
end
|
76
|
-
warning do
|
77
|
-
[
|
78
|
-
"ariadne-bg-yellow-50",
|
79
|
-
]
|
80
|
-
end
|
81
|
-
info do
|
82
|
-
[
|
83
|
-
"ariadne-bg-blue-50",
|
84
|
-
]
|
85
|
-
end
|
86
|
-
success do
|
87
|
-
[
|
88
|
-
"ariadne-bg-green-50",
|
89
|
-
]
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
style(:text) do
|
96
|
-
variants do
|
97
|
-
type do
|
98
|
-
danger do
|
99
|
-
[
|
100
|
-
"ariadne-text-red-700",
|
101
|
-
]
|
102
|
-
end
|
103
|
-
warning do
|
104
|
-
[
|
105
|
-
"ariadne-text-yellow-700",
|
106
|
-
]
|
107
|
-
end
|
108
|
-
info do
|
109
|
-
[
|
110
|
-
"ariadne-text-blue-700",
|
111
|
-
]
|
112
|
-
end
|
113
|
-
success do
|
114
|
-
[
|
115
|
-
"ariadne-text-green-700",
|
116
|
-
]
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
style(:dismissable) do
|
123
|
-
variants do
|
124
|
-
type do
|
125
|
-
danger do
|
126
|
-
[
|
127
|
-
"ariadne-text-red-700",
|
128
|
-
]
|
129
|
-
end
|
130
|
-
warning do
|
131
|
-
[
|
132
|
-
"ariadne-text-yellow-700",
|
133
|
-
]
|
134
|
-
end
|
135
|
-
info do
|
136
|
-
[
|
137
|
-
"ariadne-text-blue-700",
|
138
|
-
]
|
139
|
-
end
|
140
|
-
success do
|
141
|
-
[
|
142
|
-
"ariadne-text-green-700",
|
143
|
-
]
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import {Controller} from '@hotwired/stimulus'
|
2
|
-
// @ts-expect-error: this is untyped https://github.com/mmccall10/el-transition/issues/11
|
3
|
-
import {enter, leave} from 'el-transition'
|
4
|
-
|
5
|
-
export default class FlashController extends Controller {
|
6
|
-
static classes = ['ariadne-hidden']
|
7
|
-
|
8
|
-
static values = {
|
9
|
-
timer: {
|
10
|
-
default: 4000,
|
11
|
-
type: Number,
|
12
|
-
},
|
13
|
-
}
|
14
|
-
declare readonly hasHiddenClass: boolean
|
15
|
-
|
16
|
-
declare readonly hasTimerValue: boolean
|
17
|
-
declare readonly hiddenClass: string
|
18
|
-
declare readonly hiddenClasses: string[]
|
19
|
-
declare timerValue: number
|
20
|
-
|
21
|
-
async connect(): Promise<void> {
|
22
|
-
// Start animation as soon as it connects to the dom
|
23
|
-
await this.show()
|
24
|
-
const noop = (): void => {}
|
25
|
-
|
26
|
-
// Set a timer for it to be removed from the dom automatically
|
27
|
-
setTimeout(() => {
|
28
|
-
this.hide().then(noop).catch(noop)
|
29
|
-
}, this.timerValue)
|
30
|
-
}
|
31
|
-
|
32
|
-
async disconnect(): Promise<void> {
|
33
|
-
await this.hide()
|
34
|
-
}
|
35
|
-
|
36
|
-
async hide(): Promise<void> {
|
37
|
-
await leave(this.element)
|
38
|
-
|
39
|
-
if (this.hasHiddenClass) {
|
40
|
-
this.element.classList.add(this.hiddenClass)
|
41
|
-
} else {
|
42
|
-
this.element.classList.add('ariadne-hidden')
|
43
|
-
}
|
44
|
-
|
45
|
-
this.element.remove()
|
46
|
-
}
|
47
|
-
|
48
|
-
async show(): Promise<void> {
|
49
|
-
if (this.hasHiddenClass) {
|
50
|
-
this.element.classList.remove(this.hiddenClass)
|
51
|
-
} else {
|
52
|
-
this.element.classList.remove('ariadne-hidden')
|
53
|
-
}
|
54
|
-
await enter(this.element)
|
55
|
-
}
|
56
|
-
}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<details class="ariadne-inline" <%= html_attrs.to_html %>>
|
2
|
-
<summary class="ariadne-list-none ariadne-rounded" data-<%= stimulus_name %>-target="anchor">
|
3
|
-
<%= trigger %>
|
4
|
-
</summary>
|
5
|
-
<details-menu
|
6
|
-
class="<%= style(size:) %>"
|
7
|
-
role="menu"
|
8
|
-
data-<%= stimulus_name %>-target="popover"
|
9
|
-
data-action="details-menu-selected->overlay#close">
|
10
|
-
<%= content %>
|
11
|
-
</details-menu>
|
12
|
-
</details>
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# typed: false
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Ariadne
|
5
|
-
module UI
|
6
|
-
module Overlay
|
7
|
-
class Component < Ariadne::BaseComponent
|
8
|
-
renders_one :trigger, Ariadne::UI::Button::Component
|
9
|
-
|
10
|
-
accepts_html_attributes do |html_attrs|
|
11
|
-
html_attrs[:data] = {
|
12
|
-
controller: [stimulus_name, html_attrs.fetch(:data, {}).fetch(:controller, nil)].compact.join(" "),
|
13
|
-
"#{stimulus_name}-placement-value": placement,
|
14
|
-
"#{stimulus_name}-clamped-value": clamped,
|
15
|
-
}
|
16
|
-
end
|
17
|
-
option :size, default: proc { :base }
|
18
|
-
option :placement, default: proc { "bottom" }
|
19
|
-
|
20
|
-
option :clamped, default: proc { false }
|
21
|
-
|
22
|
-
style do
|
23
|
-
base do
|
24
|
-
[
|
25
|
-
"ariadne-fixed",
|
26
|
-
"ariadne-max-w-[90vw]",
|
27
|
-
"ariadne-z-20",
|
28
|
-
|
29
|
-
"ariadne-scroll",
|
30
|
-
"ariadne-scrollbar-trigger",
|
31
|
-
|
32
|
-
"ariadne-rounded-lg",
|
33
|
-
"ariadne-shadow-lg",
|
34
|
-
|
35
|
-
"ariadne-bg-foreground",
|
36
|
-
"dark:ariadne-bg-foreground-dark",
|
37
|
-
"ariadne-text-content",
|
38
|
-
"dark:ariadne-text-content-dark",
|
39
|
-
]
|
40
|
-
end
|
41
|
-
|
42
|
-
variants do
|
43
|
-
size do
|
44
|
-
sm { "ariadne-w-36" }
|
45
|
-
md { "ariadne-w-52" }
|
46
|
-
base { "ariadne-w-64" }
|
47
|
-
lg { "ariadne-w-96" }
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,92 +0,0 @@
|
|
1
|
-
import {type Placement, autoUpdate, computePosition, flip, offset, shift} from '@floating-ui/dom'
|
2
|
-
import {controllerFactory} from '@utils/createController'
|
3
|
-
import {useClickOutside, useMutation} from 'stimulus-use'
|
4
|
-
|
5
|
-
export default class OverlayController extends controllerFactory<HTMLDetailsElement>()({
|
6
|
-
targets: {
|
7
|
-
anchor: null,
|
8
|
-
popover: null,
|
9
|
-
},
|
10
|
-
values: {
|
11
|
-
clamped: Boolean,
|
12
|
-
placement: String,
|
13
|
-
},
|
14
|
-
}) {
|
15
|
-
private changedIds = new Set<string>()
|
16
|
-
private clickHandlers: Array<() => void> = []
|
17
|
-
labels: Array<{el: HTMLLabelElement}>
|
18
|
-
unsubAutoUpdate: (() => void) | undefined
|
19
|
-
|
20
|
-
private setupClickHandlers() {
|
21
|
-
const cb = () => this.toggle()
|
22
|
-
|
23
|
-
for (const fn of this.clickHandlers) {
|
24
|
-
fn()
|
25
|
-
}
|
26
|
-
this.clickHandlers = []
|
27
|
-
|
28
|
-
for (const el of this.anchorTarget.querySelectorAll('button, [tabindex]:not([tabindex="-1"])')) {
|
29
|
-
el.addEventListener('click', cb)
|
30
|
-
this.clickHandlers.push(() => el.removeEventListener('click', cb))
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
checkboxClicked(e: Event) {
|
35
|
-
const target = e.target as HTMLInputElement
|
36
|
-
const value = target.value
|
37
|
-
if (this.changedIds.has(value)) {
|
38
|
-
this.changedIds.delete(value)
|
39
|
-
} else {
|
40
|
-
this.changedIds.add(value)
|
41
|
-
}
|
42
|
-
this.dispatch('clicked', {detail: value})
|
43
|
-
}
|
44
|
-
|
45
|
-
clickOutside() {
|
46
|
-
this.setupAutoUpdate()
|
47
|
-
this.close()
|
48
|
-
}
|
49
|
-
|
50
|
-
close() {
|
51
|
-
this.element.open = false
|
52
|
-
}
|
53
|
-
|
54
|
-
connect() {
|
55
|
-
useClickOutside(this)
|
56
|
-
useMutation(this, {childList: true, subtree: true})
|
57
|
-
this.setupAutoUpdate()
|
58
|
-
this.setupClickHandlers()
|
59
|
-
}
|
60
|
-
|
61
|
-
disconnect() {
|
62
|
-
this.unsubAutoUpdate?.()
|
63
|
-
}
|
64
|
-
|
65
|
-
setupAutoUpdate(): void {
|
66
|
-
if (!this.element.open) {
|
67
|
-
this.unsubAutoUpdate?.()
|
68
|
-
return
|
69
|
-
}
|
70
|
-
|
71
|
-
const updatePopoverPosition = (): void => {
|
72
|
-
void computePosition(this.anchorTarget, this.popoverTarget, {
|
73
|
-
middleware: [offset(6), flip(), shift({padding: 6})],
|
74
|
-
placement: this.placementValue as Placement,
|
75
|
-
strategy: 'fixed',
|
76
|
-
}).then(({x, y}) => {
|
77
|
-
Object.assign(this.popoverTarget.style, {
|
78
|
-
left: `${x}px`,
|
79
|
-
top: `${y}px`,
|
80
|
-
})
|
81
|
-
})
|
82
|
-
}
|
83
|
-
|
84
|
-
updatePopoverPosition()
|
85
|
-
this.unsubAutoUpdate = autoUpdate(this.anchorTarget, this.popoverTarget, updatePopoverPosition)
|
86
|
-
}
|
87
|
-
|
88
|
-
toggle(): void {
|
89
|
-
this.element.open = !this.element.open
|
90
|
-
this.setupAutoUpdate()
|
91
|
-
}
|
92
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
<relative-time <%= html_attributes %>></relative-time>
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "upstream"
|
4
|
-
|
5
|
-
module Ariadne
|
6
|
-
module ViewComponents
|
7
|
-
# commands related to the upstream Tailwindcss project
|
8
|
-
module Commands
|
9
|
-
# raised when the host platform is not supported by upstream tailwindcss's binary releases
|
10
|
-
class UnsupportedPlatformException < StandardError
|
11
|
-
end
|
12
|
-
|
13
|
-
# raised when the tailwindcss executable could not be found where we expected it to be
|
14
|
-
class ExecutableNotFoundException < StandardError
|
15
|
-
end
|
16
|
-
|
17
|
-
class << self
|
18
|
-
def platform
|
19
|
-
[:cpu, :os].map { |m| Gem::Platform.local.send(m) }.join("-")
|
20
|
-
end
|
21
|
-
|
22
|
-
def executable(
|
23
|
-
exe_path: File.expand_path(File.join(__dir__, "..", "..", "..", "exe"))
|
24
|
-
)
|
25
|
-
if Ariadne::ViewComponents::Upstream::NATIVE_PLATFORMS.keys.none? { |p| Gem::Platform.match(p) }
|
26
|
-
raise UnsupportedPlatformException, <<~MESSAGE
|
27
|
-
ariadne_view_components does not support the #{platform} platform
|
28
|
-
Please install tailwindcss following instructions at https://tailwindcss.com/docs/installation
|
29
|
-
MESSAGE
|
30
|
-
end
|
31
|
-
|
32
|
-
exe_path = Dir.glob(File.expand_path(File.join(exe_path, "*", "tailwindcss"))).find do |f|
|
33
|
-
Gem::Platform.match(File.basename(File.dirname(f)))
|
34
|
-
end
|
35
|
-
|
36
|
-
if exe_path.nil?
|
37
|
-
raise ExecutableNotFoundException, <<~MESSAGE
|
38
|
-
Cannot find the tailwindcss executable for #{platform} in #{exe_path}
|
39
|
-
|
40
|
-
If you're using bundler, please make sure you're on the latest bundler version:
|
41
|
-
|
42
|
-
gem install bundler
|
43
|
-
bundle update --bundler
|
44
|
-
|
45
|
-
Then make sure your lock file includes this platform by running:
|
46
|
-
|
47
|
-
bundle lock --add-platform #{platform}
|
48
|
-
bundle install
|
49
|
-
|
50
|
-
See `bundle lock --help` output for details.
|
51
|
-
|
52
|
-
If you're still seeing this message after taking those steps, try running
|
53
|
-
`bundle config` and ensure `force_ruby_platform` isn't set to `true`. See
|
54
|
-
https://github.com/rails/tailwindcss-rails#check-bundle_force_ruby_platform
|
55
|
-
for more details.
|
56
|
-
MESSAGE
|
57
|
-
end
|
58
|
-
|
59
|
-
exe_path
|
60
|
-
end
|
61
|
-
|
62
|
-
def compile_command(debug: false, **kwargs)
|
63
|
-
[
|
64
|
-
executable(**kwargs),
|
65
|
-
"-i",
|
66
|
-
local_path("app/assets/stylesheets/ariadne_view_components.css"),
|
67
|
-
"-o",
|
68
|
-
"app/assets/builds/ariadne_view_components.css",
|
69
|
-
"-c",
|
70
|
-
local_path("tailwind.config.js"),
|
71
|
-
].tap do |command|
|
72
|
-
command << "--minify" unless debug
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def watch_command(poll: false, **kwargs)
|
77
|
-
compile_command(**kwargs).tap do |command|
|
78
|
-
command << "-w"
|
79
|
-
command << "-p" if poll
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def local_path(path)
|
84
|
-
root = File.expand_path(File.join(__dir__, "..", "..", ".."))
|
85
|
-
File.join(root, path)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Ariadne
|
4
|
-
module ViewComponents
|
5
|
-
# constants describing the upstream tailwindcss project
|
6
|
-
module Upstream
|
7
|
-
VERSION = "v3.3.2"
|
8
|
-
|
9
|
-
# rubygems platform name => upstream release filename
|
10
|
-
NATIVE_PLATFORMS = {
|
11
|
-
"arm64-darwin" => "tailwindcss-macos-arm64",
|
12
|
-
"x64-mingw-ucrt" => "tailwindcss-windows-x64.exe",
|
13
|
-
"x86_64-darwin" => "tailwindcss-macos-x64",
|
14
|
-
"x86_64-linux" => "tailwindcss-linux-x64",
|
15
|
-
"aarch64-linux" => "tailwindcss-linux-arm64",
|
16
|
-
}
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|