@noya-app/noya-designsystem 0.1.8 → 0.1.9

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.
package/dist/index.mjs CHANGED
@@ -703,6 +703,85 @@ import { useEffect as useEffect6, useState as useState8 } from "react";
703
703
  import { decodeQueryParameters } from "@noya-app/noya-utils";
704
704
  import { useEffect as useEffect7, useState as useState9 } from "react";
705
705
 
706
+ // ../emitter/src/index.ts
707
+ var Emitter = class {
708
+ constructor(options = {}) {
709
+ this.bufferEventsIfNoListeners = options.bufferEventsIfNoListeners ?? false;
710
+ }
711
+ bufferEventsIfNoListeners;
712
+ listeners = [];
713
+ addListener = (f, options = {}) => {
714
+ if (options.once) {
715
+ const handler = (...args) => {
716
+ this.removeListener(handler);
717
+ return f(...args);
718
+ };
719
+ this.listeners.push(handler);
720
+ } else {
721
+ this.listeners.push(f);
722
+ }
723
+ if (this.bufferedEvents.length > 0) {
724
+ const eventsToEmit = this.bufferedEvents;
725
+ this.bufferedEvents = [];
726
+ eventsToEmit.forEach((event) => {
727
+ this.emit(...event);
728
+ });
729
+ }
730
+ return () => this.removeListener(f);
731
+ };
732
+ removeListener = (f) => {
733
+ const index = this.listeners.indexOf(f);
734
+ if (index === -1)
735
+ return;
736
+ this.listeners.splice(index, 1);
737
+ };
738
+ emit = (...args) => {
739
+ if (this.bufferEventsIfNoListeners && this.listeners.length === 0) {
740
+ this.bufferedEvents.push(args);
741
+ return;
742
+ }
743
+ this.listeners.forEach((l) => l(...args));
744
+ };
745
+ bufferedEvents = [];
746
+ };
747
+
748
+ // ../noya-react-utils/src/utils/ClientStorage.ts
749
+ var ClientStorage = class {
750
+ getItem(storageKey) {
751
+ if (typeof localStorage === "undefined") {
752
+ return null;
753
+ }
754
+ return localStorage.getItem(storageKey);
755
+ }
756
+ setItem(storageKey, value) {
757
+ if (typeof localStorage === "undefined") {
758
+ return;
759
+ }
760
+ if (value === null) {
761
+ localStorage.removeItem(storageKey);
762
+ } else {
763
+ localStorage.setItem(storageKey, value);
764
+ }
765
+ this.emitter.emit(storageKey, value);
766
+ }
767
+ emitter = new Emitter();
768
+ _isListening = false;
769
+ addListener(storageKey, listener) {
770
+ if (!this._isListening && typeof window !== "undefined") {
771
+ this._isListening = true;
772
+ window.addEventListener("storage", (event) => {
773
+ this.emitter.emit(event.key, event.newValue);
774
+ });
775
+ }
776
+ return this.emitter.addListener((key, value) => {
777
+ if (key === storageKey) {
778
+ listener(value);
779
+ }
780
+ });
781
+ }
782
+ };
783
+ var clientStorage = new ClientStorage();
784
+
706
785
  // ../noya-react-utils/src/utils/assignRef.ts
707
786
  function assignRef(ref, value) {
708
787
  if (typeof ref === "function") {