- Welcome to The SYSTEM
+
The SYSTEM
+
+
diff --git a/app/assets/css/tailwind.css b/app/assets/css/tailwind.css
new file mode 100644
index 0000000..b5c61c9
--- /dev/null
+++ b/app/assets/css/tailwind.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/app/assets/scss/_base.scss b/app/assets/scss/_base.scss
new file mode 100644
index 0000000..0d71886
--- /dev/null
+++ b/app/assets/scss/_base.scss
@@ -0,0 +1,11 @@
+/* Base document styles */
+html,
+body {
+ height: 100%;
+}
+
+body {
+ color: var(--text-primary);
+ background-color: var(--bg-dark);
+ font-family: "Inter", sans-serif;
+}
diff --git a/app/assets/scss/_utilities.scss b/app/assets/scss/_utilities.scss
new file mode 100644
index 0000000..0a7e662
--- /dev/null
+++ b/app/assets/scss/_utilities.scss
@@ -0,0 +1,8 @@
+/* Custom small utilities */
+.no-scrollbar {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+}
+.no-scrollbar::-webkit-scrollbar {
+ display: none;
+}
diff --git a/app/assets/scss/_variables.scss b/app/assets/scss/_variables.scss
new file mode 100644
index 0000000..59e81c1
--- /dev/null
+++ b/app/assets/scss/_variables.scss
@@ -0,0 +1,4 @@
+$color-primary: #3b82f6;
+$color-muted: #6b7280;
+$text-primary: #ffffff;
+$text-secondary: #e2e8f0;
diff --git a/app/assets/scss/main.scss b/app/assets/scss/main.scss
new file mode 100644
index 0000000..235c071
--- /dev/null
+++ b/app/assets/scss/main.scss
@@ -0,0 +1,3 @@
+@use 'variables';
+@use 'base';
+@use 'utilities';
diff --git a/app/components/PrimeButtonDemo.spec.ts b/app/components/PrimeButtonDemo.spec.ts
new file mode 100644
index 0000000..69d6b94
--- /dev/null
+++ b/app/components/PrimeButtonDemo.spec.ts
@@ -0,0 +1,22 @@
+import { mount } from '@vue/test-utils';
+import { nextTick } from 'vue';
+import PrimeVue from 'primevue/config';
+import Button from 'primevue/button';
+import Dialog from 'primevue/dialog';
+import PrimeButtonDemo from './PrimeButtonDemo.vue';
+import { it, expect } from 'vitest';
+
+it('opens dialog on click', async () => {
+ const wrapper = mount(PrimeButtonDemo, {
+ attachTo: document.body,
+ global: {
+ plugins: [PrimeVue],
+ components: { Button, Dialog },
+ },
+ });
+
+ await wrapper.find('button').trigger('click');
+ await nextTick();
+
+ expect(document.body.innerHTML).toContain('PrimeVue is working');
+});
diff --git a/app/components/PrimeButtonDemo.vue b/app/components/PrimeButtonDemo.vue
new file mode 100644
index 0000000..2baf9e7
--- /dev/null
+++ b/app/components/PrimeButtonDemo.vue
@@ -0,0 +1,15 @@
+
+
+
+