@unabridged/midwest 0.17.0 → 0.18.0

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 (26) hide show
  1. package/app/assets/javascript/midwest/index.ts +4 -0
  2. package/app/assets/javascript/midwest.js +407 -33
  3. package/app/assets/javascript/midwest.js.map +1 -1
  4. package/app/assets/stylesheets/midwest.css +1 -1
  5. package/app/assets/stylesheets/midwest.tailwind.css +4 -1
  6. package/dist/css/midwest.css +1 -1
  7. package/dist/javascript/collection/app/assets/javascript/midwest/index.js +4 -0
  8. package/dist/javascript/collection/app/assets/javascript/midwest/index.js.map +1 -1
  9. package/dist/javascript/collection/app/components/midwest/color_picker_component/color_picker_component_controller.js +135 -0
  10. package/dist/javascript/collection/app/components/midwest/color_picker_component/color_picker_component_controller.js.map +1 -0
  11. package/dist/javascript/collection/app/components/midwest/countdown_timer_component/countdown_timer_component_controller.js +27 -6
  12. package/dist/javascript/collection/app/components/midwest/countdown_timer_component/countdown_timer_component_controller.js.map +1 -1
  13. package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js +109 -21
  14. package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js.map +1 -1
  15. package/dist/javascript/collection/app/components/midwest/form/color_picker_component/color_picker_component_controller.js +129 -0
  16. package/dist/javascript/collection/app/components/midwest/form/color_picker_component/color_picker_component_controller.js.map +1 -0
  17. package/dist/javascript/collection/app/components/midwest/form/input_component/input_component_controller.js +50 -1
  18. package/dist/javascript/collection/app/components/midwest/form/input_component/input_component_controller.js.map +1 -1
  19. package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js +38 -5
  20. package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js.map +1 -1
  21. package/dist/javascript/collection/app/components/midwest/notification_component/notification_component_controller.js +60 -0
  22. package/dist/javascript/collection/app/components/midwest/notification_component/notification_component_controller.js.map +1 -0
  23. package/dist/javascript/midwest.d.ts +5 -0
  24. package/dist/javascript/midwest.js +407 -33
  25. package/dist/javascript/midwest.js.map +1 -1
  26. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ import { Controller } from '@hotwired/stimulus';
2
+
3
+ class Notification extends Controller {
4
+ container = null;
5
+ observer = null;
6
+ connect() {
7
+ this.container = this.element.closest("[popover]");
8
+ this.container?.showPopover?.();
9
+ requestAnimationFrame(() => {
10
+ this.element.classList.add("visible");
11
+ });
12
+ const frame = this.element.parentElement;
13
+ if (frame) {
14
+ this.observer = new MutationObserver(() => this.syncCountdown());
15
+ this.observer.observe(frame, { childList: true });
16
+ setTimeout(() => this.syncCountdown());
17
+ }
18
+ }
19
+ disconnect() {
20
+ this.observer?.disconnect();
21
+ this.observer = null;
22
+ if (this.container) {
23
+ const frame = this.container.querySelector("turbo-frame");
24
+ if (frame?.children.length === 0 && this.container.matches(":popover-open")) {
25
+ this.container.hidePopover?.();
26
+ }
27
+ this.container = null;
28
+ }
29
+ }
30
+ close() {
31
+ if (!this.element.classList.contains("animated")) {
32
+ this.element.remove();
33
+ return;
34
+ }
35
+ this.element.classList.add("closing");
36
+ setTimeout(() => {
37
+ this.element.remove();
38
+ }, 350);
39
+ }
40
+ syncCountdown() {
41
+ const timerEl = this.element.querySelector('[data-controller~="midwest-countdown-timer"]');
42
+ if (!timerEl)
43
+ return;
44
+ const timer = this.application.getControllerForElementAndIdentifier(
45
+ timerEl,
46
+ "midwest-countdown-timer"
47
+ );
48
+ if (!timer)
49
+ return;
50
+ const isTop = this.element === this.element.parentElement?.firstElementChild;
51
+ if (isTop) {
52
+ timer.resume();
53
+ } else {
54
+ timer.pause();
55
+ }
56
+ }
57
+ }
58
+
59
+ export { Notification as default };
60
+ //# sourceMappingURL=notification_component_controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification_component_controller.js","sources":["../../../../../../../app/components/midwest/notification_component/notification_component_controller.ts"],"sourcesContent":["import { Controller } from '@hotwired/stimulus'\n\ntype PopoverElement = HTMLElement & { showPopover?(): void; hidePopover?(): void }\n\ninterface PausableTimer {\n pause(): void\n resume(): void\n}\n\nexport default class Notification extends Controller<HTMLElement> {\n private container: PopoverElement | null = null\n private observer: MutationObserver | null = null\n\n connect () {\n this.container = this.element.closest<PopoverElement>('[popover]')\n this.container?.showPopover?.()\n\n requestAnimationFrame(() => {\n this.element.classList.add('visible')\n })\n\n const frame = this.element.parentElement\n if (frame) {\n this.observer = new MutationObserver(() => this.syncCountdown())\n this.observer.observe(frame, { childList: true })\n // Defer until nested controllers (e.g. CountdownTimer) have connected\n setTimeout(() => this.syncCountdown())\n }\n }\n\n disconnect () {\n this.observer?.disconnect()\n this.observer = null\n\n if (this.container) {\n const frame = this.container.querySelector('turbo-frame')\n if (frame?.children.length === 0 && this.container.matches(':popover-open')) {\n this.container.hidePopover?.()\n }\n this.container = null\n }\n }\n\n close () {\n if (!this.element.classList.contains('animated')) {\n this.element.remove()\n return\n }\n\n this.element.classList.add('closing')\n setTimeout(() => {\n this.element.remove()\n }, 350)\n }\n\n private syncCountdown (): void {\n const timerEl = this.element.querySelector<HTMLElement>('[data-controller~=\"midwest-countdown-timer\"]')\n if (!timerEl) return\n\n const timer = this.application.getControllerForElementAndIdentifier(\n timerEl, 'midwest-countdown-timer'\n ) as PausableTimer | null\n if (!timer) return\n\n const isTop = this.element === this.element.parentElement?.firstElementChild\n if (isTop) { timer.resume() } else { timer.pause() }\n }\n}\n"],"names":[],"mappings":";;AASA,MAAqB,qBAAqB,UAAwB,CAAA;AAAA,EACxD,SAAmC,GAAA,IAAA,CAAA;AAAA,EACnC,QAAoC,GAAA,IAAA,CAAA;AAAA,EAE5C,OAAW,GAAA;AACT,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAwB,WAAW,CAAA,CAAA;AACjE,IAAA,IAAA,CAAK,WAAW,WAAc,IAAA,CAAA;AAE9B,IAAA,qBAAA,CAAsB,MAAM;AAC1B,MAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AAAA,KACrC,CAAA,CAAA;AAED,IAAM,MAAA,KAAA,GAAQ,KAAK,OAAQ,CAAA,aAAA,CAAA;AAC3B,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,WAAW,IAAI,gBAAA,CAAiB,MAAM,IAAA,CAAK,eAAe,CAAA,CAAA;AAC/D,MAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,KAAA,EAAO,EAAE,SAAA,EAAW,MAAM,CAAA,CAAA;AAEhD,MAAW,UAAA,CAAA,MAAM,IAAK,CAAA,aAAA,EAAe,CAAA,CAAA;AAAA,KACvC;AAAA,GACF;AAAA,EAEA,UAAc,GAAA;AACZ,IAAA,IAAA,CAAK,UAAU,UAAW,EAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAA;AAEhB,IAAA,IAAI,KAAK,SAAW,EAAA;AAClB,MAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,SAAU,CAAA,aAAA,CAAc,aAAa,CAAA,CAAA;AACxD,MAAI,IAAA,KAAA,EAAO,SAAS,MAAW,KAAA,CAAA,IAAK,KAAK,SAAU,CAAA,OAAA,CAAQ,eAAe,CAAG,EAAA;AAC3E,QAAA,IAAA,CAAK,UAAU,WAAc,IAAA,CAAA;AAAA,OAC/B;AACA,MAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAAA,EAEA,KAAS,GAAA;AACP,IAAA,IAAI,CAAC,IAAK,CAAA,OAAA,CAAQ,SAAU,CAAA,QAAA,CAAS,UAAU,CAAG,EAAA;AAChD,MAAA,IAAA,CAAK,QAAQ,MAAO,EAAA,CAAA;AACpB,MAAA,OAAA;AAAA,KACF;AAEA,IAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AACpC,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,IAAA,CAAK,QAAQ,MAAO,EAAA,CAAA;AAAA,OACnB,GAAG,CAAA,CAAA;AAAA,GACR;AAAA,EAEQ,aAAuB,GAAA;AAC7B,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,aAAA,CAA2B,8CAA8C,CAAA,CAAA;AACtG,IAAA,IAAI,CAAC,OAAA;AAAS,MAAA,OAAA;AAEd,IAAM,MAAA,KAAA,GAAQ,KAAK,WAAY,CAAA,oCAAA;AAAA,MAC7B,OAAA;AAAA,MAAS,yBAAA;AAAA,KACX,CAAA;AACA,IAAA,IAAI,CAAC,KAAA;AAAO,MAAA,OAAA;AAEZ,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,OAAY,KAAA,IAAA,CAAK,QAAQ,aAAe,EAAA,iBAAA,CAAA;AAC3D,IAAA,IAAI,KAAO,EAAA;AAAE,MAAA,KAAA,CAAM,MAAO,EAAA,CAAA;AAAA,KAAS,MAAA;AAAE,MAAA,KAAA,CAAM,KAAM,EAAA,CAAA;AAAA,KAAE;AAAA,GACrD;AACF;;;;"}
@@ -46,8 +46,13 @@ declare class CountdownTimer extends Controller {
46
46
  };
47
47
  secondsValue: number;
48
48
  private timer;
49
+ private remaining;
50
+ private startTime;
49
51
  connect(): void;
50
52
  disconnect(): void;
53
+ pause(): void;
54
+ resume(): void;
55
+ private setPlayState;
51
56
  }
52
57
 
53
58
  declare class Chart extends Controller<HTMLElement> {