@konomi-app/ui 1.5.2 → 1.6.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.
package/dist/index.css ADDED
@@ -0,0 +1,15 @@
1
+ /* esbuild-plugin-sass:C:\Users\Ribbit\Documents\github\ui-modules\vanilla\src\dialog\theme.scss */
2
+ @keyframes swal2-show {
3
+ 0% {
4
+ opacity: 0;
5
+ }
6
+ 100% {
7
+ opacity: 1;
8
+ }
9
+ }
10
+ @keyframes swal2-hide {
11
+ 100% {
12
+ opacity: 0;
13
+ }
14
+ }
15
+ /*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1wbHVnaW4tc2FzczpDOlxcVXNlcnNcXFJpYmJpdFxcRG9jdW1lbnRzXFxnaXRodWJcXHVpLW1vZHVsZXNcXHZhbmlsbGFcXHNyY1xcZGlhbG9nXFx0aGVtZS5zY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJAa2V5ZnJhbWVzIHN3YWwyLXNob3cge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3YWwyLWhpZGUge1xuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59Il0sCiAgIm1hcHBpbmdzIjogIjtBQUFBO0FBQUE7QUFFSTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHSjtBQUFBO0FBRUk7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo= */
package/dist/index.d.ts CHANGED
@@ -1,2 +1 @@
1
- export * from './loading-overlay';
2
- export * from './modal';
1
+ export * from './loading-overlay';
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
- export * from './loading-overlay';
2
- export * from './modal';
1
+ export * from './loading-overlay';
3
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -1,22 +1,22 @@
1
- import { Overlay } from './overlay';
2
- type Label = string | string[];
3
- type ConstructorProps = Readonly<Partial<{
4
- label: Label;
5
- progress: number;
6
- }>>;
7
- export declare class LoadingOverlay extends Overlay {
8
- #private;
9
- protected readonly _loaderElement: HTMLDivElement;
10
- protected readonly _progressElement: HTMLDivElement;
11
- protected readonly _contentElement: HTMLDivElement;
12
- constructor(props?: ConstructorProps);
13
- hide(): void;
14
- set label(label: Label);
15
- set html(html: string);
16
- set progress(progress: number);
17
- render(): void;
18
- private containerStyle;
19
- private loaderStyle;
20
- private progressStyle;
21
- }
22
- export {};
1
+ import { Overlay } from './overlay';
2
+ type Label = string | string[];
3
+ type ConstructorProps = Readonly<Partial<{
4
+ label: Label;
5
+ progress: number;
6
+ }>>;
7
+ export declare class LoadingOverlay extends Overlay {
8
+ #private;
9
+ protected readonly _loaderElement: HTMLDivElement;
10
+ protected readonly _progressElement: HTMLDivElement;
11
+ protected readonly _contentElement: HTMLDivElement;
12
+ constructor(props?: ConstructorProps);
13
+ hide(): void;
14
+ set label(label: Label);
15
+ set html(html: string);
16
+ set progress(progress: number);
17
+ render(): void;
18
+ private containerStyle;
19
+ private loaderStyle;
20
+ private progressStyle;
21
+ }
22
+ export {};
@@ -1,67 +1,68 @@
1
- import { css } from '@emotion/css';
2
- import { Overlay } from './overlay';
3
- export class LoadingOverlay extends Overlay {
4
- #label;
5
- #html;
6
- #progress;
7
- _loaderElement;
8
- _progressElement;
9
- _contentElement;
10
- constructor(props = {}) {
11
- super();
12
- this.#label = props.label ?? '';
13
- this.#html = '';
14
- this.#progress = props.progress ?? null;
15
- const container = document.createElement('div');
16
- container.classList.add(this.containerStyle);
17
- this._root.append(container);
18
- const loaderElement = document.createElement('div');
19
- loaderElement.classList.add(this.loaderStyle);
20
- this._loaderElement = loaderElement;
21
- container.append(loaderElement);
22
- const progressElement = document.createElement('div');
23
- progressElement.classList.add(this.progressStyle);
24
- this._progressElement = progressElement;
25
- container.append(progressElement);
26
- const contentElement = document.createElement('div');
27
- this._contentElement = contentElement;
28
- container.append(contentElement);
29
- this.render();
30
- }
31
- hide() {
32
- this.#progress = 0;
33
- this.#html = '';
34
- this.#label = '';
35
- super.hide();
36
- }
37
- set label(label) {
38
- this.#label = label;
39
- this.render();
40
- }
41
- set html(html) {
42
- this.#html = html;
43
- this.render();
44
- }
45
- set progress(progress) {
46
- this.#progress = progress;
47
- this.render();
48
- }
49
- render() {
50
- super.render();
51
- this._progressElement.style.width = `${this.#progress}%`;
52
- this._loaderElement.style.animationName = this._shown ? 'spin' : 'none';
53
- if (this.#html) {
54
- this._contentElement.innerHTML = this.#html;
55
- }
56
- else {
57
- if (this.#label instanceof Array) {
58
- this._contentElement.innerHTML = `<div>${this.#label.join('</div><div>')}</div>`;
59
- }
60
- else {
61
- this._contentElement.innerText = this.#label;
62
- }
63
- }
64
- }
1
+ import { css } from '@emotion/css';
2
+ import { Overlay } from './overlay';
3
+ export class LoadingOverlay extends Overlay {
4
+ #label;
5
+ #html;
6
+ #progress;
7
+ _loaderElement;
8
+ _progressElement;
9
+ _contentElement;
10
+ constructor(props = {}) {
11
+ super();
12
+ this.#label = props.label ?? '';
13
+ this.#html = '';
14
+ this.#progress = props.progress ?? null;
15
+ const container = document.createElement('div');
16
+ container.classList.add(this.containerStyle);
17
+ this._root.append(container);
18
+ const loaderElement = document.createElement('div');
19
+ loaderElement.innerHTML = '<div><div></div></div>';
20
+ loaderElement.classList.add(this.loaderStyle);
21
+ this._loaderElement = loaderElement;
22
+ container.append(loaderElement);
23
+ const progressElement = document.createElement('div');
24
+ progressElement.classList.add(this.progressStyle);
25
+ this._progressElement = progressElement;
26
+ container.append(progressElement);
27
+ const contentElement = document.createElement('div');
28
+ this._contentElement = contentElement;
29
+ container.append(contentElement);
30
+ this.render();
31
+ }
32
+ hide() {
33
+ this.#progress = 0;
34
+ this.#html = '';
35
+ this.#label = '';
36
+ super.hide();
37
+ }
38
+ set label(label) {
39
+ this.#label = label;
40
+ this.render();
41
+ }
42
+ set html(html) {
43
+ this.#html = html;
44
+ this.render();
45
+ }
46
+ set progress(progress) {
47
+ this.#progress = progress;
48
+ this.render();
49
+ }
50
+ render() {
51
+ super.render();
52
+ this._progressElement.style.width = `${this.#progress}%`;
53
+ this._loaderElement.style.animationName = this._shown ? 'spin' : 'none';
54
+ if (this.#html) {
55
+ this._contentElement.innerHTML = this.#html;
56
+ }
57
+ else {
58
+ if (this.#label instanceof Array) {
59
+ this._contentElement.innerHTML = `<div>${this.#label.join('</div><div>')}</div>`;
60
+ }
61
+ else {
62
+ this._contentElement.innerText = this.#label;
63
+ }
64
+ }
65
+ }
65
66
  containerStyle = css `
66
67
  display: flex;
67
68
  flex-direction: column;
@@ -99,30 +100,52 @@ export class LoadingOverlay extends Overlay {
99
100
  border-radius: 1em;
100
101
  }
101
102
  }
102
- `;
103
+ `;
103
104
  loaderStyle = css `
104
- font-size: 48px;
105
+ font-size: 60px;
105
106
  width: 1em;
106
107
  height: 1em;
108
+ border-radius: 50%;
109
+ box-shadow: inset 0 0 0 1px #3b82f633;
107
110
  position: relative;
108
- border: 2px solid #2563ebaa;
109
- border-radius: 1em;
110
- animation-duration: 2s;
111
- animation-timing-function: ease;
112
- animation-delay: 0s;
113
- animation-iteration-count: infinite;
114
- animation-direction: normal;
115
- animation-fill-mode: none;
116
- animation-play-state: running;
117
- `;
111
+ > div {
112
+ position: absolute;
113
+ left: 50%;
114
+ top: 50%;
115
+ width: 0.5em;
116
+ height: 1em;
117
+ margin-left: -0.5em;
118
+ margin-top: -0.5em;
119
+ overflow: hidden;
120
+ transform-origin: 0.5em 0.5em;
121
+ mask-image: linear-gradient(top, #000f, #0000);
122
+ -webkit-mask-image: -webkit-linear-gradient(top, #000f, #0000);
123
+ animation: rotate 1.2s infinite linear;
124
+
125
+ > div {
126
+ width: 1em;
127
+ height: 1em;
128
+ border-radius: 50%;
129
+ box-shadow: inset 0 0 0 1px #3b82f6;
130
+ }
131
+ }
132
+ @keyframes rotate {
133
+ 0% {
134
+ transform: rotate(0deg);
135
+ }
136
+ 100% {
137
+ transform: rotate(360deg);
138
+ }
139
+ }
140
+ `;
118
141
  progressStyle = css `
119
142
  position: absolute;
120
143
  bottom: 0px;
121
144
  left: 0;
122
145
  width: 0%;
123
- height: 3px;
146
+ height: 2px;
124
147
  background-color: #2563eb;
125
- transition: all 250ms ease;
126
- `;
127
- }
148
+ transition: all 350ms ease;
149
+ `;
150
+ }
128
151
  //# sourceMappingURL=loading-overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-overlay.js","sourceRoot":"","sources":["../src/loading-overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loading-overlay.js","sourceRoot":"","sources":["../src/loading-overlay.ts"],"names":[],"mappings":"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"}
package/dist/overlay.d.ts CHANGED
@@ -1,21 +1,20 @@
1
- export declare class Overlay {
2
- protected readonly _root: HTMLDivElement;
3
- protected _shown: boolean;
4
- protected _disableBeforeUnload: boolean;
5
- constructor();
6
- show(): void;
7
- hide(): void;
8
- protected render(): void;
9
- /** JavaScript中にページを離れようとした場合にアラートを表示します */
10
- private beforeunload;
11
- private rootClass;
12
- /**
13
- * @deprecated このメソッドは非推奨です。代わりに`show`メソッドを使用してください。
14
- */
15
- start(): void;
16
- /**
17
- * @deprecated このメソッドは非推奨です。代わりに`hide`メソッドを使用してください。
18
- */
19
- stop(): void;
20
- }
21
- export declare const getLoadingOverlay: () => Overlay;
1
+ export declare class Overlay {
2
+ protected readonly _root: HTMLDivElement;
3
+ protected _shown: boolean;
4
+ protected _disableBeforeUnload: boolean;
5
+ constructor();
6
+ show(): void;
7
+ hide(): void;
8
+ protected render(): void;
9
+ /** JavaScript中にページを離れようとした場合にアラートを表示します */
10
+ private beforeunload;
11
+ private rootClass;
12
+ /**
13
+ * @deprecated このメソッドは非推奨です。代わりに`show`メソッドを使用してください。
14
+ */
15
+ start(): void;
16
+ /**
17
+ * @deprecated このメソッドは非推奨です。代わりに`hide`メソッドを使用してください。
18
+ */
19
+ stop(): void;
20
+ }
package/dist/overlay.js CHANGED
@@ -1,37 +1,37 @@
1
- import { css } from '@emotion/css';
2
- export class Overlay {
3
- _root;
4
- _shown;
5
- _disableBeforeUnload;
6
- constructor() {
7
- this._shown = false;
8
- this._disableBeforeUnload = false;
9
- const root = document.createElement('div');
10
- this._root = root;
11
- this._root.classList.add(this.rootClass);
12
- document.body.append(root);
13
- }
14
- show() {
15
- this._shown = true;
16
- window.addEventListener('beforeunload', this.beforeunload);
17
- document.body.style.overflow = 'hidden';
18
- this.render();
19
- }
20
- hide() {
21
- this._shown = false;
22
- window.removeEventListener('beforeunload', this.beforeunload);
23
- document.body.style.overflow = 'auto';
24
- this.render();
25
- }
26
- render() {
27
- this._root.style.opacity = this._shown ? '1' : '0';
28
- this._root.style.pointerEvents = this._shown ? 'all' : 'none';
29
- }
30
- /** JavaScript中にページを離れようとした場合にアラートを表示します */
31
- beforeunload(event) {
32
- event.preventDefault();
33
- event.returnValue = '';
34
- }
1
+ import { css } from '@emotion/css';
2
+ export class Overlay {
3
+ _root;
4
+ _shown;
5
+ _disableBeforeUnload;
6
+ constructor() {
7
+ this._shown = false;
8
+ this._disableBeforeUnload = false;
9
+ const root = document.createElement('div');
10
+ this._root = root;
11
+ this._root.classList.add(this.rootClass);
12
+ document.body.append(root);
13
+ }
14
+ show() {
15
+ this._shown = true;
16
+ window.addEventListener('beforeunload', this.beforeunload);
17
+ document.body.style.overflow = 'hidden';
18
+ this.render();
19
+ }
20
+ hide() {
21
+ this._shown = false;
22
+ window.removeEventListener('beforeunload', this.beforeunload);
23
+ document.body.style.overflow = 'auto';
24
+ this.render();
25
+ }
26
+ render() {
27
+ this._root.style.opacity = this._shown ? '1' : '0';
28
+ this._root.style.pointerEvents = this._shown ? 'all' : 'none';
29
+ }
30
+ /** JavaScript中にページを離れようとした場合にアラートを表示します */
31
+ beforeunload(event) {
32
+ event.preventDefault();
33
+ event.returnValue = '';
34
+ }
35
35
  rootClass = css `
36
36
  font-family: 'Yu Gothic Medium', '游ゴシック', YuGothic, 'メイリオ', 'Hiragino Kaku Gothic ProN',
37
37
  Meiryo, sans-serif;
@@ -54,25 +54,18 @@ export class Overlay {
54
54
  z-index: 1000;
55
55
  opacity: 0;
56
56
  transition: all 250ms ease;
57
- `;
58
- /**
59
- * @deprecated このメソッドは非推奨です。代わりに`show`メソッドを使用してください。
60
- */
61
- start() {
62
- this.show();
63
- }
64
- /**
65
- * @deprecated このメソッドは非推奨です。代わりに`hide`メソッドを使用してください。
66
- */
67
- stop() {
68
- this.hide();
69
- }
70
- }
71
- let cachedLoadingOverlay = null;
72
- export const getLoadingOverlay = () => {
73
- if (cachedLoadingOverlay === null) {
74
- cachedLoadingOverlay = new Overlay();
75
- }
76
- return cachedLoadingOverlay;
77
- };
57
+ `;
58
+ /**
59
+ * @deprecated このメソッドは非推奨です。代わりに`show`メソッドを使用してください。
60
+ */
61
+ start() {
62
+ this.show();
63
+ }
64
+ /**
65
+ * @deprecated このメソッドは非推奨です。代わりに`hide`メソッドを使用してください。
66
+ */
67
+ stop() {
68
+ this.hide();
69
+ }
70
+ }
78
71
  //# sourceMappingURL=overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,MAAM,OAAO,OAAO;IACC,KAAK,CAAiB;IAC/B,MAAM,CAAU;IAChB,oBAAoB,CAAU;IAExC;QACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAES,MAAM;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,2CAA2C;IACnC,YAAY,CAAC,KAAwB;QAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACzB,CAAC;IAEO,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;GAsBtB,CAAC;IAEF;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IACD;;OAEG;IACI,IAAI;QACT,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,IAAI,oBAAoB,GAAmB,IAAI,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAY,EAAE;IAC7C,IAAI,oBAAoB,KAAK,IAAI,EAAE;QACjC,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;KACtC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,MAAM,OAAO,OAAO;IACC,KAAK,CAAiB;IAC/B,MAAM,CAAU;IAChB,oBAAoB,CAAU;IAExC;QACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAES,MAAM;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,2CAA2C;IACnC,YAAY,CAAC,KAAwB;QAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACzB,CAAC;IAEO,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;GAsBtB,CAAC;IAEF;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IACD;;OAEG;IACI,IAAI;QACT,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konomi-app/ui",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.js",
6
6
  "author": "adachi",
@@ -13,7 +13,7 @@
13
13
  "@emotion/css": "^11.10.6"
14
14
  },
15
15
  "devDependencies": {
16
- "typescript": "^4.9.5"
16
+ "typescript": "^5.0.3"
17
17
  },
18
18
  "prettier": {
19
19
  "printWidth": 100,
package/dist/alert.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Overlay } from './overlay';
2
- export declare class Alert extends Overlay {
3
- }
package/dist/alert.js DELETED
@@ -1,4 +0,0 @@
1
- import { Overlay } from './overlay';
2
- export class Alert extends Overlay {
3
- }
4
- //# sourceMappingURL=alert.js.map
package/dist/alert.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,KAAM,SAAQ,OAAO;CAAG"}
package/dist/modal.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import { Overlay } from './overlay';
2
- type Mode = 'alert' | 'prompt' | 'loading' | 'custom';
3
- type Label = string | string[];
4
- type ConstructorProps = Readonly<Partial<{
5
- initialMode: Mode;
6
- }>>;
7
- type LoadingProps = {
8
- label: Label;
9
- html: string;
10
- progress: number | null;
11
- };
12
- export declare class Modal extends Overlay {
13
- #private;
14
- constructor(props?: ConstructorProps);
15
- hide(): void;
16
- set loading(props: Partial<LoadingProps>);
17
- changeMode(mode: Mode): void;
18
- render(): void;
19
- private containerStyle;
20
- }
21
- export {};
package/dist/modal.js DELETED
@@ -1,141 +0,0 @@
1
- import { css } from '@emotion/css';
2
- import { Overlay } from './overlay';
3
- export class Modal extends Overlay {
4
- #mode;
5
- #containerElement;
6
- #loadingProps;
7
- constructor(props = {}) {
8
- super();
9
- const { initialMode = 'loading' } = props;
10
- this.#mode = initialMode;
11
- this.#loadingProps = {
12
- label: '',
13
- html: '',
14
- progress: null,
15
- };
16
- const container = document.createElement('div');
17
- this.#containerElement = container;
18
- container.classList.add(this.containerStyle);
19
- this._root.append(container);
20
- this.render();
21
- }
22
- hide() {
23
- this.#loadingProps = {
24
- label: '',
25
- html: '',
26
- progress: null,
27
- };
28
- super.hide();
29
- }
30
- set loading(props) {
31
- this.#mode = 'loading';
32
- this.#loadingProps = { ...this.#loadingProps, ...props };
33
- this.render();
34
- }
35
- changeMode(mode) {
36
- this.#mode = mode;
37
- this.render();
38
- }
39
- render() {
40
- super.render();
41
- if (this.#mode === 'loading') {
42
- const { label, html, progress } = this.#loadingProps;
43
- this.#containerElement.innerHTML = `
44
- <div class="__c">
45
- <div class="__i"></div>
46
- <div>${html || typeof label === 'string' ? label : label.join('<br />')}</div>
47
- <div class="__p" style="width: ${progress ?? 0}%"></div>
48
- </div>`;
49
- }
50
- else {
51
- }
52
- }
53
- containerStyle = css `
54
- .__c {
55
- display: flex;
56
- flex-direction: column;
57
- align-items: center;
58
- justify-content: center;
59
- gap: 32px;
60
- padding: 32px 64px;
61
- background-color: #fffc;
62
- border-radius: 8px;
63
- box-shadow: 0 5px 24px -6px #0002;
64
- min-width: 400px;
65
- max-width: 90vw;
66
- min-height: 300px;
67
- position: relative;
68
- overflow: hidden;
69
- transition: all 250ms ease;
70
- }
71
-
72
- @keyframes spin {
73
- 0% {
74
- transform: rotate(0deg);
75
- border-radius: 1em;
76
- }
77
- 20% {
78
- transform: rotate(0deg);
79
- }
80
- 30%,
81
- 60% {
82
- border-radius: 0.25em;
83
- }
84
- 70% {
85
- transform: rotate(180deg);
86
- }
87
- 100% {
88
- transform: rotate(180deg);
89
- border-radius: 1em;
90
- }
91
- }
92
-
93
- @keyframes show {
94
- 0% {
95
- opacity: 0;
96
- transform: scale(0.9);
97
- }
98
- 100% {
99
- opacity: 1;
100
- transform: scale(1);
101
- }
102
- }
103
- @keyframes hide {
104
- 0% {
105
- opacity: 1;
106
- transform: scale(1);
107
- }
108
- 100% {
109
- opacity: 0;
110
- transform: scale(0.9);
111
- }
112
- }
113
-
114
- .__i {
115
- font-size: 48px;
116
- width: 1em;
117
- height: 1em;
118
- position: relative;
119
- border: 2px solid #2563ebaa;
120
- border-radius: 1em;
121
- animation-duration: 2s;
122
- animation-timing-function: ease;
123
- animation-delay: 0s;
124
- animation-iteration-count: infinite;
125
- animation-direction: normal;
126
- animation-fill-mode: none;
127
- animation-play-state: running;
128
- }
129
-
130
- .__p {
131
- position: absolute;
132
- bottom: 0px;
133
- left: 0;
134
- width: 0%;
135
- height: 3px;
136
- background-color: #2563eb;
137
- transition: all 250ms ease;
138
- }
139
- `;
140
- }
141
- //# sourceMappingURL=modal.js.map
package/dist/modal.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../src/modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,OAAO,KAAM,SAAQ,OAAO;IAChC,KAAK,CAAO;IACZ,iBAAiB,CAAiB;IAClC,aAAa,CAAe;IAE5B,YAAmB,QAA0B,EAAE;QAC7C,KAAK,EAAE,CAAC;QAER,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;QAE1C,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG;YACnB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,IAAI;QACX,IAAI,CAAC,aAAa,GAAG;YACnB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAED,IAAW,OAAO,CAAC,KAA4B;QAC7C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,IAAU;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,MAAM;QACb,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG;;;iBAGxB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;2CACtC,QAAQ,IAAI,CAAC;eACzC,CAAC;SACX;aAAM;SACN;IACH,CAAC;IAEO,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsF3B,CAAC;CACH"}