diff --git a/.gitignore b/.gitignore
index 81bf4932c..90a0431fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ yarn-debug.log*
yarn-error.log*
app/src/nativeModulesContent.js
packages/api/src/nativeModulesContent.js
+.VSCodeCounter
\ No newline at end of file
diff --git a/packages/web/public/global.css b/packages/web/public/global.css
index a5228d520..f0e359b4a 100644
--- a/packages/web/public/global.css
+++ b/packages/web/public/global.css
@@ -31,6 +31,9 @@ body {
.icon-invisible {
visibility: hidden;
}
+.flex {
+ display: flex;
+}
/* html, body {
position: relative;
diff --git a/packages/web/src/Screen.svelte b/packages/web/src/Screen.svelte
index 14d5d3d4d..3cdf48060 100644
--- a/packages/web/src/Screen.svelte
+++ b/packages/web/src/Screen.svelte
@@ -9,6 +9,7 @@
import splitterDrag from './utility/splitterDrag';
import CurrentDropDownMenu from './modals/CurrentDropDownMenu.svelte';
import StatusBar from './widgets/StatusBar.svelte';
+ import ModalLayer from './modals/ModalLayer.svelte';
@@ -47,6 +48,7 @@
{/if}
+
diff --git a/packages/web/src/modals/ModalBase.svelte b/packages/web/src/modals/ModalBase.svelte
new file mode 100644
index 000000000..1322c9299
--- /dev/null
+++ b/packages/web/src/modals/ModalBase.svelte
@@ -0,0 +1,93 @@
+
+
+
+
+
+
diff --git a/packages/web/src/modals/ModalLayer.svelte b/packages/web/src/modals/ModalLayer.svelte
new file mode 100644
index 000000000..5b0d827e6
--- /dev/null
+++ b/packages/web/src/modals/ModalLayer.svelte
@@ -0,0 +1,7 @@
+
+
+{#each $openedModals as { component, props, modalId }}
+
+{/each}
diff --git a/packages/web/src/modals/modalTools.ts b/packages/web/src/modals/modalTools.ts
new file mode 100644
index 000000000..c23718b82
--- /dev/null
+++ b/packages/web/src/modals/modalTools.ts
@@ -0,0 +1,11 @@
+import { openedModals } from '../stores';
+import uuidv1 from 'uuid/v1';
+
+export function showModal(component, props = {}) {
+ const modalId = uuidv1();
+ openedModals.update(x => [...x, { component, modalId, props }]);
+}
+
+export function closeModal(modalId) {
+ openedModals.update(x => x.filter(y => y.modalId != modalId));
+}
diff --git a/packages/web/src/plugins/ThemeDark.svelte b/packages/web/src/plugins/ThemeDark.svelte
index 1aa6722cd..76b7bb141 100644
--- a/packages/web/src/plugins/ThemeDark.svelte
+++ b/packages/web/src/plugins/ThemeDark.svelte
@@ -48,6 +48,11 @@
--theme-bg-selected: #15395b; /* blue-3 */
--theme-bg-statusbar-inv: blue;
+ --theme-bg-modalheader: rgb(43, 60, 61);
+
+ --theme-bg-button-inv: #004488;
+ --theme-bg-button-inv-2: #1a5794;
+ --theme-bg-button-inv-3: #346aa0;
--theme-icon-blue: #3c9ae8;
--theme-icon-green: #8fd460;
diff --git a/packages/web/src/plugins/ThemeLight.svelte b/packages/web/src/plugins/ThemeLight.svelte
index f959fc6b7..115a8bc2a 100644
--- a/packages/web/src/plugins/ThemeLight.svelte
+++ b/packages/web/src/plugins/ThemeLight.svelte
@@ -41,6 +41,11 @@
--theme-bg-selected: #91d5ff; /* blue-3 */
--theme-bg-statusbar-inv: blue;
+ --theme-bg-modalheader: #eff;
+
+ --theme-bg-button-inv: #337ab7;
+ --theme-bg-button-inv-2: #4d8bc0;
+ --theme-bg-button-inv-3: #679cc9;
--theme-icon-blue: #096dd9; /* blue-7 */
--theme-icon-green: #237804; /* green-7 */
@@ -51,5 +56,6 @@
--theme-icon-inv-green: #8fd460;
--theme-icon-inv-red: #e84749;
+
}
diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts
index 35e72e757..3fd4d747f 100644
--- a/packages/web/src/stores.ts
+++ b/packages/web/src/stores.ts
@@ -36,8 +36,8 @@ export const activeTabId = derived([openedTabs], ([$openedTabs]) => $openedTabs.
export const visibleToolbar = writableWithStorage(1, 'visibleToolbar');
export const leftPanelWidth = writable(300);
export const currentDropDownMenu = writable(null);
+export const openedModals = writable([]);
subscribeCssVariable(selectedWidget, x => (x ? 1 : 0), '--dim-visible-left-panel');
subscribeCssVariable(visibleToolbar, x => (x ? 1 : 0), '--dim-visible-toolbar');
subscribeCssVariable(leftPanelWidth, x => `${x}px`, '--dim-left-panel-width');
-
diff --git a/packages/web/src/widgets/FormStyledButton.svelte b/packages/web/src/widgets/FormStyledButton.svelte
new file mode 100644
index 000000000..fbb1fbd86
--- /dev/null
+++ b/packages/web/src/widgets/FormStyledButton.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+