stimulus-library 0.7.2 → 0.7.5

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +1 -1
  3. package/dist/controllers/equalize_controller.d.ts +16 -0
  4. package/dist/controllers/equalize_controller.d.ts.map +1 -0
  5. package/dist/controllers/index.d.ts +1 -0
  6. package/dist/controllers/index.d.ts.map +1 -1
  7. package/dist/controllers/signal/events.d.ts +1 -0
  8. package/dist/controllers/signal/events.d.ts.map +1 -1
  9. package/dist/mixins/create_mixin.d.ts +1 -1
  10. package/dist/mixins/create_mixin.d.ts.map +1 -1
  11. package/dist/mixins/install_class_methods.d.ts +1 -1
  12. package/dist/mixins/install_class_methods.d.ts.map +1 -1
  13. package/dist/mixins/use_click_outside.d.ts +1 -1
  14. package/dist/mixins/use_click_outside.d.ts.map +1 -1
  15. package/dist/mixins/use_event_bus.d.ts +1 -1
  16. package/dist/mixins/use_event_bus.d.ts.map +1 -1
  17. package/dist/mixins/use_event_listener.d.ts +1 -1
  18. package/dist/mixins/use_event_listener.d.ts.map +1 -1
  19. package/dist/mixins/use_fullscreen.d.ts +1 -1
  20. package/dist/mixins/use_fullscreen.d.ts.map +1 -1
  21. package/dist/mixins/use_geolocation.d.ts +1 -1
  22. package/dist/mixins/use_geolocation.d.ts.map +1 -1
  23. package/dist/mixins/use_hover.d.ts +1 -1
  24. package/dist/mixins/use_hover.d.ts.map +1 -1
  25. package/dist/mixins/use_injected_html.d.ts +1 -1
  26. package/dist/mixins/use_injected_html.d.ts.map +1 -1
  27. package/dist/mixins/use_intersection.d.ts +1 -1
  28. package/dist/mixins/use_intersection.d.ts.map +1 -1
  29. package/dist/mixins/use_interval.d.ts +1 -1
  30. package/dist/mixins/use_interval.d.ts.map +1 -1
  31. package/dist/mixins/use_localstorage.d.ts +1 -1
  32. package/dist/mixins/use_localstorage.d.ts.map +1 -1
  33. package/dist/mixins/use_mutation_observer.d.ts +1 -1
  34. package/dist/mixins/use_mutation_observer.d.ts.map +1 -1
  35. package/dist/mixins/use_temporary_content.d.ts +1 -1
  36. package/dist/mixins/use_temporary_content.d.ts.map +1 -1
  37. package/dist/mixins/use_timeout.d.ts +1 -1
  38. package/dist/mixins/use_timeout.d.ts.map +1 -1
  39. package/dist/mixins/use_trix_modifiers.d.ts +1 -1
  40. package/dist/mixins/use_trix_modifiers.d.ts.map +1 -1
  41. package/dist/stimulus-library.cjs.js +1 -1
  42. package/dist/stimulus-library.cjs.js.map +1 -1
  43. package/dist/stimulus-library.es.js +382 -4
  44. package/dist/stimulus-library.es.js.map +1 -1
  45. package/dist/stimulus-library.umd.js +1 -1
  46. package/dist/stimulus-library.umd.js.map +1 -1
  47. package/dist/utilities/base_controller.d.ts +1 -1
  48. package/dist/utilities/base_controller.d.ts.map +1 -1
  49. package/dist/utilities/events.d.ts +1 -1
  50. package/dist/utilities/events.d.ts.map +1 -1
  51. package/dist/utilities/logging.d.ts +1 -1
  52. package/dist/utilities/logging.d.ts.map +1 -1
  53. package/dist/utilities/stimulus.d.ts +1 -1
  54. package/dist/utilities/stimulus.d.ts.map +1 -1
  55. package/package.json +7 -10
@@ -18,9 +18,348 @@ var __publicField = (obj, key, value) => {
18
18
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
19
19
  return value;
20
20
  };
21
- import { Controller } from "stimulus";
22
21
  import { camelCase, debounce, upperFirst, clamp, get, set } from "lodash-es";
23
22
  import { isPast, intervalToDuration, formatDuration, toDate, formatDistanceToNow } from "date-fns";
23
+ function camelize(value) {
24
+ return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());
25
+ }
26
+ function capitalize(value) {
27
+ return value.charAt(0).toUpperCase() + value.slice(1);
28
+ }
29
+ function dasherize(value) {
30
+ return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);
31
+ }
32
+ function readInheritableStaticArrayValues(constructor, propertyName) {
33
+ const ancestors = getAncestorsForConstructor(constructor);
34
+ return Array.from(ancestors.reduce((values, constructor2) => {
35
+ getOwnStaticArrayValues(constructor2, propertyName).forEach((name) => values.add(name));
36
+ return values;
37
+ }, new Set()));
38
+ }
39
+ function readInheritableStaticObjectPairs(constructor, propertyName) {
40
+ const ancestors = getAncestorsForConstructor(constructor);
41
+ return ancestors.reduce((pairs, constructor2) => {
42
+ pairs.push(...getOwnStaticObjectPairs(constructor2, propertyName));
43
+ return pairs;
44
+ }, []);
45
+ }
46
+ function getAncestorsForConstructor(constructor) {
47
+ const ancestors = [];
48
+ while (constructor) {
49
+ ancestors.push(constructor);
50
+ constructor = Object.getPrototypeOf(constructor);
51
+ }
52
+ return ancestors.reverse();
53
+ }
54
+ function getOwnStaticArrayValues(constructor, propertyName) {
55
+ const definition = constructor[propertyName];
56
+ return Array.isArray(definition) ? definition : [];
57
+ }
58
+ function getOwnStaticObjectPairs(constructor, propertyName) {
59
+ const definition = constructor[propertyName];
60
+ return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];
61
+ }
62
+ (() => {
63
+ function extendWithReflect(constructor) {
64
+ function extended() {
65
+ return Reflect.construct(constructor, arguments, new.target);
66
+ }
67
+ extended.prototype = Object.create(constructor.prototype, {
68
+ constructor: { value: extended }
69
+ });
70
+ Reflect.setPrototypeOf(extended, constructor);
71
+ return extended;
72
+ }
73
+ function testReflectExtension() {
74
+ const a = function() {
75
+ this.a.call(this);
76
+ };
77
+ const b = extendWithReflect(a);
78
+ b.prototype.a = function() {
79
+ };
80
+ return new b();
81
+ }
82
+ try {
83
+ testReflectExtension();
84
+ return extendWithReflect;
85
+ } catch (error) {
86
+ return (constructor) => class extended extends constructor {
87
+ };
88
+ }
89
+ })();
90
+ function ClassPropertiesBlessing(constructor) {
91
+ const classes = readInheritableStaticArrayValues(constructor, "classes");
92
+ return classes.reduce((properties, classDefinition) => {
93
+ return Object.assign(properties, propertiesForClassDefinition(classDefinition));
94
+ }, {});
95
+ }
96
+ function propertiesForClassDefinition(key) {
97
+ return {
98
+ [`${key}Class`]: {
99
+ get() {
100
+ const { classes } = this;
101
+ if (classes.has(key)) {
102
+ return classes.get(key);
103
+ } else {
104
+ const attribute = classes.getAttributeName(key);
105
+ throw new Error(`Missing attribute "${attribute}"`);
106
+ }
107
+ }
108
+ },
109
+ [`${key}Classes`]: {
110
+ get() {
111
+ return this.classes.getAll(key);
112
+ }
113
+ },
114
+ [`has${capitalize(key)}Class`]: {
115
+ get() {
116
+ return this.classes.has(key);
117
+ }
118
+ }
119
+ };
120
+ }
121
+ function TargetPropertiesBlessing(constructor) {
122
+ const targets = readInheritableStaticArrayValues(constructor, "targets");
123
+ return targets.reduce((properties, targetDefinition) => {
124
+ return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));
125
+ }, {});
126
+ }
127
+ function propertiesForTargetDefinition(name) {
128
+ return {
129
+ [`${name}Target`]: {
130
+ get() {
131
+ const target = this.targets.find(name);
132
+ if (target) {
133
+ return target;
134
+ } else {
135
+ throw new Error(`Missing target element "${name}" for "${this.identifier}" controller`);
136
+ }
137
+ }
138
+ },
139
+ [`${name}Targets`]: {
140
+ get() {
141
+ return this.targets.findAll(name);
142
+ }
143
+ },
144
+ [`has${capitalize(name)}Target`]: {
145
+ get() {
146
+ return this.targets.has(name);
147
+ }
148
+ }
149
+ };
150
+ }
151
+ function ValuePropertiesBlessing(constructor) {
152
+ const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, "values");
153
+ const propertyDescriptorMap = {
154
+ valueDescriptorMap: {
155
+ get() {
156
+ return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {
157
+ const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);
158
+ const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);
159
+ return Object.assign(result, { [attributeName]: valueDescriptor });
160
+ }, {});
161
+ }
162
+ }
163
+ };
164
+ return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {
165
+ return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));
166
+ }, propertyDescriptorMap);
167
+ }
168
+ function propertiesForValueDefinitionPair(valueDefinitionPair) {
169
+ const definition = parseValueDefinitionPair(valueDefinitionPair);
170
+ const { key, name, reader: read, writer: write } = definition;
171
+ return {
172
+ [name]: {
173
+ get() {
174
+ const value = this.data.get(key);
175
+ if (value !== null) {
176
+ return read(value);
177
+ } else {
178
+ return definition.defaultValue;
179
+ }
180
+ },
181
+ set(value) {
182
+ if (value === void 0) {
183
+ this.data.delete(key);
184
+ } else {
185
+ this.data.set(key, write(value));
186
+ }
187
+ }
188
+ },
189
+ [`has${capitalize(name)}`]: {
190
+ get() {
191
+ return this.data.has(key) || definition.hasCustomDefaultValue;
192
+ }
193
+ }
194
+ };
195
+ }
196
+ function parseValueDefinitionPair([token, typeDefinition]) {
197
+ return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);
198
+ }
199
+ function parseValueTypeConstant(constant) {
200
+ switch (constant) {
201
+ case Array:
202
+ return "array";
203
+ case Boolean:
204
+ return "boolean";
205
+ case Number:
206
+ return "number";
207
+ case Object:
208
+ return "object";
209
+ case String:
210
+ return "string";
211
+ }
212
+ }
213
+ function parseValueTypeDefault(defaultValue) {
214
+ switch (typeof defaultValue) {
215
+ case "boolean":
216
+ return "boolean";
217
+ case "number":
218
+ return "number";
219
+ case "string":
220
+ return "string";
221
+ }
222
+ if (Array.isArray(defaultValue))
223
+ return "array";
224
+ if (Object.prototype.toString.call(defaultValue) === "[object Object]")
225
+ return "object";
226
+ }
227
+ function parseValueTypeObject(typeObject) {
228
+ const typeFromObject = parseValueTypeConstant(typeObject.type);
229
+ if (typeFromObject) {
230
+ const defaultValueType = parseValueTypeDefault(typeObject.default);
231
+ if (typeFromObject !== defaultValueType) {
232
+ throw new Error(`Type "${typeFromObject}" must match the type of the default value. Given default value: "${typeObject.default}" as "${defaultValueType}"`);
233
+ }
234
+ return typeFromObject;
235
+ }
236
+ }
237
+ function parseValueTypeDefinition(typeDefinition) {
238
+ const typeFromObject = parseValueTypeObject(typeDefinition);
239
+ const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);
240
+ const typeFromConstant = parseValueTypeConstant(typeDefinition);
241
+ const type = typeFromObject || typeFromDefaultValue || typeFromConstant;
242
+ if (type)
243
+ return type;
244
+ throw new Error(`Unknown value type "${typeDefinition}"`);
245
+ }
246
+ function defaultValueForDefinition(typeDefinition) {
247
+ const constant = parseValueTypeConstant(typeDefinition);
248
+ if (constant)
249
+ return defaultValuesByType[constant];
250
+ const defaultValue = typeDefinition.default;
251
+ if (defaultValue !== void 0)
252
+ return defaultValue;
253
+ return typeDefinition;
254
+ }
255
+ function valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {
256
+ const key = `${dasherize(token)}-value`;
257
+ const type = parseValueTypeDefinition(typeDefinition);
258
+ return {
259
+ type,
260
+ key,
261
+ name: camelize(key),
262
+ get defaultValue() {
263
+ return defaultValueForDefinition(typeDefinition);
264
+ },
265
+ get hasCustomDefaultValue() {
266
+ return parseValueTypeDefault(typeDefinition) !== void 0;
267
+ },
268
+ reader: readers[type],
269
+ writer: writers[type] || writers.default
270
+ };
271
+ }
272
+ const defaultValuesByType = {
273
+ get array() {
274
+ return [];
275
+ },
276
+ boolean: false,
277
+ number: 0,
278
+ get object() {
279
+ return {};
280
+ },
281
+ string: ""
282
+ };
283
+ const readers = {
284
+ array(value) {
285
+ const array = JSON.parse(value);
286
+ if (!Array.isArray(array)) {
287
+ throw new TypeError("Expected array");
288
+ }
289
+ return array;
290
+ },
291
+ boolean(value) {
292
+ return !(value == "0" || value == "false");
293
+ },
294
+ number(value) {
295
+ return Number(value);
296
+ },
297
+ object(value) {
298
+ const object = JSON.parse(value);
299
+ if (object === null || typeof object != "object" || Array.isArray(object)) {
300
+ throw new TypeError("Expected object");
301
+ }
302
+ return object;
303
+ },
304
+ string(value) {
305
+ return value;
306
+ }
307
+ };
308
+ const writers = {
309
+ default: writeString,
310
+ array: writeJSON,
311
+ object: writeJSON
312
+ };
313
+ function writeJSON(value) {
314
+ return JSON.stringify(value);
315
+ }
316
+ function writeString(value) {
317
+ return `${value}`;
318
+ }
319
+ class Controller {
320
+ constructor(context) {
321
+ this.context = context;
322
+ }
323
+ static get shouldLoad() {
324
+ return true;
325
+ }
326
+ get application() {
327
+ return this.context.application;
328
+ }
329
+ get scope() {
330
+ return this.context.scope;
331
+ }
332
+ get element() {
333
+ return this.scope.element;
334
+ }
335
+ get identifier() {
336
+ return this.scope.identifier;
337
+ }
338
+ get targets() {
339
+ return this.scope.targets;
340
+ }
341
+ get classes() {
342
+ return this.scope.classes;
343
+ }
344
+ get data() {
345
+ return this.scope.data;
346
+ }
347
+ initialize() {
348
+ }
349
+ connect() {
350
+ }
351
+ disconnect() {
352
+ }
353
+ dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {
354
+ const type = prefix ? `${prefix}:${eventName}` : eventName;
355
+ const event = new CustomEvent(type, { detail, bubbles, cancelable });
356
+ target.dispatchEvent(event);
357
+ return event;
358
+ }
359
+ }
360
+ Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];
361
+ Controller.targets = [];
362
+ Controller.values = {};
24
363
  function logProperty(prop) {
25
364
  switch (prop) {
26
365
  case "application":
@@ -2886,6 +3225,9 @@ function signalConnectEvent(name) {
2886
3225
  function signalValueEvent(name) {
2887
3226
  return signalEventName(name, "value");
2888
3227
  }
3228
+ function signalVisibilityEvent(name, action) {
3229
+ return signalEventName(`${name}:${action}`, "visibility");
3230
+ }
2889
3231
  class SignalActionController extends BaseController {
2890
3232
  get _predicates() {
2891
3233
  return extractPredicates(this.whenValue);
@@ -3004,10 +3346,10 @@ class SignalVisibilityController extends BaseController {
3004
3346
  return;
3005
3347
  }
3006
3348
  if (this._predicates.every((predicate) => predicate(value))) {
3007
- this.dispatchEvent(this.el, "signal-visibility:show", { detail: { predicate: this.showValue, value } });
3349
+ this.dispatchEvent(this.el, signalVisibilityEvent(this.nameValue, "show"), { detail: { predicate: this.showValue, value } });
3008
3350
  this.removeHideClasses(this.el);
3009
3351
  } else {
3010
- this.dispatchEvent(this.el, "signal-visibility:hide", { detail: { predicate: this.showValue, value } });
3352
+ this.dispatchEvent(this.el, signalVisibilityEvent(this.nameValue, "hide"), { detail: { predicate: this.showValue, value } });
3011
3353
  this.addHideClasses(this.el);
3012
3354
  }
3013
3355
  }
@@ -3997,6 +4339,42 @@ __publicField(ElementSaveController, "values", {
3997
4339
  attributes: String,
3998
4340
  restoreOnLoad: Boolean
3999
4341
  });
4342
+ class EqualizeController extends BaseController {
4343
+ initialize() {
4344
+ this._equalize = debounce(this._equalize.bind(this), 100);
4345
+ this.observer = new ResizeObserver((_entries) => this._equalize());
4346
+ }
4347
+ connect() {
4348
+ let { teardown } = useIntersection(this, this.el, this.appear);
4349
+ this._unobserveIntersection = teardown;
4350
+ requestAnimationFrame(this._equalize);
4351
+ }
4352
+ disconnect() {
4353
+ this._unequalize();
4354
+ }
4355
+ watchTargetConnected(element) {
4356
+ this.observer.observe(element);
4357
+ this._equalize();
4358
+ }
4359
+ watchTargetDisconnected(element) {
4360
+ this.observer.unobserve(element);
4361
+ this._equalize();
4362
+ }
4363
+ appear(_entry) {
4364
+ this._unobserveIntersection();
4365
+ this._equalize();
4366
+ }
4367
+ _equalize() {
4368
+ this._unequalize();
4369
+ let maxHeight = 0;
4370
+ Array.from(this.watchTargets).forEach((target) => maxHeight = Math.max(maxHeight, target.getBoundingClientRect().height));
4371
+ Array.from(this.watchTargets).forEach((target) => target.style.minHeight = `${maxHeight}px`);
4372
+ }
4373
+ _unequalize() {
4374
+ Array.from(this.watchTargets).forEach((target) => target.style.minHeight = "");
4375
+ }
4376
+ }
4377
+ __publicField(EqualizeController, "targets", ["watch"]);
4000
4378
  class EmptyDomController extends BaseController {
4001
4379
  get _container() {
4002
4380
  return this.hasContainerTarget ? this.containerTarget : this.el;
@@ -4712,5 +5090,5 @@ __publicField(TurboFrameRefreshController, "values", {
4712
5090
  interval: Number,
4713
5091
  poll: Boolean
4714
5092
  });
4715
- export { AlertController, AnchorSpyController, AsyncBlockController, AutoSubmitFormController, AutosizeController, BackLinkController, BaseController, CharCountController, CheckboxDisableInputsController, CheckboxEnableInputsController, CheckboxSelectAllController, CheckboxXORController, ClipboardController, ClockController, ConfirmController, ConfirmNavigationController, CountdownController, DebugController, DetectDirtyController, DetectDirtyFormController, DisableWithController, DismissableController, DurationController, ElementSaveController, EmptyDomController, EnableInputsController, EphemeralController, EventBus, FallbackImageController, FocusStealController, FormRcController, FormSaveController, FullscreenController, IntersectionController, IntervalController, LazyBlockController, LightboxImageController, LimitedSelectionCheckboxesController, LoadBlockController, MediaPlayerController, NavigateFormErrorsController, NestedFormController, PasswordConfirmController, PasswordPeekController, PollBlockController, PrefetchController, PresenceController, PrintButtonController, PrintController, RemoteFormController, RemoveController, ResponsiveIframeBodyController, ResponsiveIframeWrapperController, ScrollContainerController, ScrollIntoFocusController, ScrollToBottomController, ScrollToController, ScrollToTopController, SelfDestructController, SignalActionController, SignalDomChildrenController, SignalInputController, SignalVisibilityController, StickyController, StorageSerializers, SyncInputsController, TableSortController, TableTruncateController, TabsController, TeleportController, TemporaryStateController, TimeDistanceController, TimeoutController, ToggleClassController, TreeViewController, TrixModifierController, TurboFrameRCController, TurboFrameRefreshController, UserFocusController, ValueWarnController, WordCountController, applyTemporaryClass, applyTemporaryState, createHiddenButton, createHiddenInput, getAllRadiosInGroup, getOtherRadiosInGroup, getScrollParent, insertElement, insertHiddenButton, insertHiddenInput, isDirty, isElementCheckable, isElementInViewport, isFormDirty, isHTMLAnchorElement, isHTMLButtonButtonElement, isHTMLButtonElement, isHTMLButtonInputElement, isHTMLFormElement, isHTMLImageElement, isHTMLInputElement, isHTMLLabelElement, isHTMLLinkElement, isHTMLResetButtonElement, isHTMLResetInputElement, isHTMLSelectElement, isHTMLSubmitButtonElement, isHTMLSubmitInputElement, isHTMLTextAreaElement, isTurboFrame, isTypeOfButtonableElement, isTypeOfFormInputElement, isTypeOfResetButtonElement, isTypeOfSubmitButtonElement, requestReset, requestSubmit, scrollAbsoluteBottom, scrollAbsoluteLeft, scrollAbsoluteRight, scrollAbsoluteTop, scrollDown, scrollLeft, scrollRight, scrollToElement, scrollUp, useCollectionEventListener, useCollectionEventListeners, useEventListener, useEventListeners, useFullscreen, useGeolocation, useInjectedElement, useInjectedFragment, useInjectedHTML, useInterval, useLocalStorage, useTemporaryContent, useTimeout };
5093
+ export { AlertController, AnchorSpyController, AsyncBlockController, AutoSubmitFormController, AutosizeController, BackLinkController, BaseController, CharCountController, CheckboxDisableInputsController, CheckboxEnableInputsController, CheckboxSelectAllController, CheckboxXORController, ClipboardController, ClockController, ConfirmController, ConfirmNavigationController, CountdownController, DebugController, DetectDirtyController, DetectDirtyFormController, DisableWithController, DismissableController, DurationController, ElementSaveController, EmptyDomController, EnableInputsController, EphemeralController, EqualizeController, EventBus, FallbackImageController, FocusStealController, FormRcController, FormSaveController, FullscreenController, IntersectionController, IntervalController, LazyBlockController, LightboxImageController, LimitedSelectionCheckboxesController, LoadBlockController, MediaPlayerController, NavigateFormErrorsController, NestedFormController, PasswordConfirmController, PasswordPeekController, PollBlockController, PrefetchController, PresenceController, PrintButtonController, PrintController, RemoteFormController, RemoveController, ResponsiveIframeBodyController, ResponsiveIframeWrapperController, ScrollContainerController, ScrollIntoFocusController, ScrollToBottomController, ScrollToController, ScrollToTopController, SelfDestructController, SignalActionController, SignalDomChildrenController, SignalInputController, SignalVisibilityController, StickyController, StorageSerializers, SyncInputsController, TableSortController, TableTruncateController, TabsController, TeleportController, TemporaryStateController, TimeDistanceController, TimeoutController, ToggleClassController, TreeViewController, TrixModifierController, TurboFrameRCController, TurboFrameRefreshController, UserFocusController, ValueWarnController, WordCountController, applyTemporaryClass, applyTemporaryState, createHiddenButton, createHiddenInput, getAllRadiosInGroup, getOtherRadiosInGroup, getScrollParent, insertElement, insertHiddenButton, insertHiddenInput, isDirty, isElementCheckable, isElementInViewport, isFormDirty, isHTMLAnchorElement, isHTMLButtonButtonElement, isHTMLButtonElement, isHTMLButtonInputElement, isHTMLFormElement, isHTMLImageElement, isHTMLInputElement, isHTMLLabelElement, isHTMLLinkElement, isHTMLResetButtonElement, isHTMLResetInputElement, isHTMLSelectElement, isHTMLSubmitButtonElement, isHTMLSubmitInputElement, isHTMLTextAreaElement, isTurboFrame, isTypeOfButtonableElement, isTypeOfFormInputElement, isTypeOfResetButtonElement, isTypeOfSubmitButtonElement, requestReset, requestSubmit, scrollAbsoluteBottom, scrollAbsoluteLeft, scrollAbsoluteRight, scrollAbsoluteTop, scrollDown, scrollLeft, scrollRight, scrollToElement, scrollUp, useCollectionEventListener, useCollectionEventListeners, useEventListener, useEventListeners, useFullscreen, useGeolocation, useInjectedElement, useInjectedFragment, useInjectedHTML, useInterval, useLocalStorage, useTemporaryContent, useTimeout };
4716
5094
  //# sourceMappingURL=stimulus-library.es.js.map