diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
new file mode 100644
index 0000000..247d211
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
@@ -0,0 +1,32 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import scala.scalajs.js.annotation.JSExportTopLevel
+import scala.scalajs.js.annotation.JSExport
+import scala.scalajs.js.annotation.JSImport
+import scala.scalajs.js
+import org.scalajs.dom
+import com.raquo.laminar.api.L.{*, given}
+import scala.scalajs.js.Date
+
+@js.native
+@JSImport("stylesheets/main.css", JSImport.Namespace)
+object Css extends js.Any
+
+@JSExportTopLevel("app")
+object Main {
+
+ // Pull in the stylesheet
+ val css: Css.type = Css
+
+ @JSExport
+ def main(args: Array[String]): Unit = {
+ val appContainer = dom.document.querySelector("#app")
+ val $time = EventStream.periodic(1000).mapTo(new Date().toTimeString)
+ val appElement: Div = div(
+ h1("Hello"),
+ "Current time is: ",
+ b(child.text <-- $time)
+ )
+ val root: RootNode = render(appContainer, Layout.layout(appElement))
+ }
+}
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
new file mode 100644
index 0000000..247d211
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
@@ -0,0 +1,32 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import scala.scalajs.js.annotation.JSExportTopLevel
+import scala.scalajs.js.annotation.JSExport
+import scala.scalajs.js.annotation.JSImport
+import scala.scalajs.js
+import org.scalajs.dom
+import com.raquo.laminar.api.L.{*, given}
+import scala.scalajs.js.Date
+
+@js.native
+@JSImport("stylesheets/main.css", JSImport.Namespace)
+object Css extends js.Any
+
+@JSExportTopLevel("app")
+object Main {
+
+ // Pull in the stylesheet
+ val css: Css.type = Css
+
+ @JSExport
+ def main(args: Array[String]): Unit = {
+ val appContainer = dom.document.querySelector("#app")
+ val $time = EventStream.periodic(1000).mapTo(new Date().toTimeString)
+ val appElement: Div = div(
+ h1("Hello"),
+ "Current time is: ",
+ b(child.text <-- $time)
+ )
+ val root: RootNode = render(appContainer, Layout.layout(appElement))
+ }
+}
diff --git a/app/src/main/static/stylesheets/main.css b/app/src/main/static/stylesheets/main.css
new file mode 100644
index 0000000..76fcadc
--- /dev/null
+++ b/app/src/main/static/stylesheets/main.css
@@ -0,0 +1,3 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
new file mode 100644
index 0000000..247d211
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
@@ -0,0 +1,32 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import scala.scalajs.js.annotation.JSExportTopLevel
+import scala.scalajs.js.annotation.JSExport
+import scala.scalajs.js.annotation.JSImport
+import scala.scalajs.js
+import org.scalajs.dom
+import com.raquo.laminar.api.L.{*, given}
+import scala.scalajs.js.Date
+
+@js.native
+@JSImport("stylesheets/main.css", JSImport.Namespace)
+object Css extends js.Any
+
+@JSExportTopLevel("app")
+object Main {
+
+ // Pull in the stylesheet
+ val css: Css.type = Css
+
+ @JSExport
+ def main(args: Array[String]): Unit = {
+ val appContainer = dom.document.querySelector("#app")
+ val $time = EventStream.periodic(1000).mapTo(new Date().toTimeString)
+ val appElement: Div = div(
+ h1("Hello"),
+ "Current time is: ",
+ b(child.text <-- $time)
+ )
+ val root: RootNode = render(appContainer, Layout.layout(appElement))
+ }
+}
diff --git a/app/src/main/static/stylesheets/main.css b/app/src/main/static/stylesheets/main.css
new file mode 100644
index 0000000..76fcadc
--- /dev/null
+++ b/app/src/main/static/stylesheets/main.css
@@ -0,0 +1,3 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
diff --git a/app/tailwind.config.js b/app/tailwind.config.js
index 3159b69..39108af 100644
--- a/app/tailwind.config.js
+++ b/app/tailwind.config.js
@@ -6,7 +6,7 @@
module.exports = {
mode: 'jit',
- purge: [
+ content: [
path.resolve(__dirname, `./${appInfo.bundlePath(process.env.NODE_ENV)}/*.js`),
path.resolve(__dirname, './*.html'),
],
@@ -16,7 +16,7 @@
serif: ['Inter', 'ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'],
},
colors: {
- gray: colors.coolGray,
+ gray: colors.gray,
},
},
},
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
new file mode 100644
index 0000000..247d211
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
@@ -0,0 +1,32 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import scala.scalajs.js.annotation.JSExportTopLevel
+import scala.scalajs.js.annotation.JSExport
+import scala.scalajs.js.annotation.JSImport
+import scala.scalajs.js
+import org.scalajs.dom
+import com.raquo.laminar.api.L.{*, given}
+import scala.scalajs.js.Date
+
+@js.native
+@JSImport("stylesheets/main.css", JSImport.Namespace)
+object Css extends js.Any
+
+@JSExportTopLevel("app")
+object Main {
+
+ // Pull in the stylesheet
+ val css: Css.type = Css
+
+ @JSExport
+ def main(args: Array[String]): Unit = {
+ val appContainer = dom.document.querySelector("#app")
+ val $time = EventStream.periodic(1000).mapTo(new Date().toTimeString)
+ val appElement: Div = div(
+ h1("Hello"),
+ "Current time is: ",
+ b(child.text <-- $time)
+ )
+ val root: RootNode = render(appContainer, Layout.layout(appElement))
+ }
+}
diff --git a/app/src/main/static/stylesheets/main.css b/app/src/main/static/stylesheets/main.css
new file mode 100644
index 0000000..76fcadc
--- /dev/null
+++ b/app/src/main/static/stylesheets/main.css
@@ -0,0 +1,3 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
diff --git a/app/tailwind.config.js b/app/tailwind.config.js
index 3159b69..39108af 100644
--- a/app/tailwind.config.js
+++ b/app/tailwind.config.js
@@ -6,7 +6,7 @@
module.exports = {
mode: 'jit',
- purge: [
+ content: [
path.resolve(__dirname, `./${appInfo.bundlePath(process.env.NODE_ENV)}/*.js`),
path.resolve(__dirname, './*.html'),
],
@@ -16,7 +16,7 @@
serif: ['Inter', 'ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'],
},
colors: {
- gray: colors.coolGray,
+ gray: colors.gray,
},
},
},
diff --git a/app/vite.config.js b/app/vite.config.js
index 78ea958..27b4956 100644
--- a/app/vite.config.js
+++ b/app/vite.config.js
@@ -1,5 +1,5 @@
import path from 'path'
-import {minifyHtml, injectHtml} from 'vite-plugin-html'
+import { createHtmlPlugin } from 'vite-plugin-html'
import appInfo from './app-info.js'
//const moduleUrl = new URL(import.meta.url)
@@ -14,12 +14,12 @@
return {
publicDir: './src/main/static/public',
plugins: [
- ...(process.env.NODE_ENV === 'production' ? [
- minifyHtml(),
- ] : []),
- injectHtml({
- injectData: {
- script
+ createHtmlPlugin({
+ minify: process.env.NODE_ENV === 'production',
+ inject: {
+ data: {
+ script
+ }
}
})
],
diff --git a/app/index.html b/app/index.html
index c3d4ca4..b921e14 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1,18 +1,13 @@
-
+
Posuzování shody dle MDR
-
-
+
<%- script %>
diff --git a/app/package.json b/app/package.json
index 283a637..1f98d8f 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,19 +1,19 @@
{
"private": true,
"devDependencies": {
- "@tailwindcss/forms": "^0.3.4",
- "@tailwindcss/typography": "^0.4.1",
- "postcss": "^8.3.11",
+ "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/typography": "^0.5.1",
+ "autoprefixer": "^10.4.2",
+ "postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss-preset-env": "^7.0.1",
"stylelint": "^14.1.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
- "tailwindcss": "^2.2.19",
- "autoprefixer": "^10.0.2",
- "vite": "^2.6.14",
- "vite-plugin-html": "^2.1.0",
- "typescript": "4.2.4"
+ "tailwindcss": "^3.0.18",
+ "typescript": "4.2.4",
+ "vite": "^2.7.13",
+ "vite-plugin-html": "^3.0.3"
},
"browserslist": [
"defaults"
@@ -23,6 +23,5 @@
"build": "vite build",
"serve": "vite preview"
},
- "dependencies": {
- }
+ "dependencies": {}
}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
deleted file mode 100644
index 017d6cb..0000000
--- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/Main.scala
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.e_bs.cmi.mdr.pdb
-
-import scala.scalajs.js.annotation.JSExportTopLevel
-import scala.scalajs.js.annotation.JSExport
-import org.scalajs.dom
-import com.raquo.laminar.api.L.{*, given}
-
-@JSExportTopLevel("app")
-object Main {
-
- @JSExport
- def main(args: Array[String]): Unit = {
- val appContainer = dom.document.querySelector("#app")
- val appElement: Div = div(
- h1("Hello"),
- "Current time is:",
- b("12:00")
- )
- val root: RootNode = render(appContainer, appElement)
- }
-}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
new file mode 100644
index 0000000..b448dc6
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Icons.scala
@@ -0,0 +1,62 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.svg.{*, given}
+import com.raquo.domtypes.generic.defs.attrs.AriaAttrs
+import com.raquo.laminar.keys.ReactiveSvgAttr
+import com.raquo.laminar.builders.SvgBuilders
+import com.raquo.domtypes.generic.codecs.BooleanAsTrueFalseStringCodec
+
+object Icons {
+ object aria {
+ val hidden = customSvgAttr("aria-hidden", BooleanAsTrueFalseStringCodec)
+ }
+
+ object outline {
+ val bell =
+ //
+ svg(
+ cls := "h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
+ )
+ )
+
+ val menu = svg(
+ cls := "block h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M4 6h16M4 12h16M4 18h16"
+ )
+ )
+ val x =
+ svg(
+ cls := "hidden h-6 w-6",
+ xmlns := "http://www.w3.org/2000/svg",
+ fill := "none",
+ viewBox := "0 0 24 24",
+ stroke := "currentColor",
+ aria.hidden := true,
+ path(
+ strokeLineCap := "round",
+ strokeLineJoin := "round",
+ strokeWidth := "2",
+ d := "M6 18L18 6M6 6l12 12"
+ )
+ )
+ }
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
new file mode 100644
index 0000000..a801746
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Layout.scala
@@ -0,0 +1,259 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import com.raquo.laminar.api.L.{*, given}
+import com.raquo.domtypes.generic.codecs.StringAsIsCodec
+
+object Layout {
+ val ariaCurrent = customProp("aria-current", StringAsIsCodec)
+
+ def layout(content: HtmlElement): HtmlElement =
+ div(
+ cls := "min-h-full",
+ nav(
+ cls := "bg-indigo-600",
+ div(
+ cls := "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
+ div(
+ cls := "flex items-center justify-between h-16",
+ div(
+ cls := "flex items-center",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-8 w-8",
+ src := "https://tailwindui.com/img/logos/workflow-mark-indigo-300.svg",
+ alt := "Workflow"
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-10 flex items-baseline space-x-4",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white px-3 py-2 rounded-md text-sm font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 px-3 py-2 rounded-md text-sm font-medium",
+ "Reports"
+ )
+ )
+ )
+ ),
+ div(
+ cls := "hidden md:block",
+ div(
+ cls := "ml-4 flex items-center md:ml-6",
+ button(
+ tpe := "button",
+ cls := "p-1 bg-indigo-600 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ ),
+
+ //
+ div(
+ cls := "ml-3 relative",
+ div(
+ button(
+ tpe := "button",
+ cls := "max-w-xs bg-indigo-600 rounded-full flex items-center text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ idAttr := "user-menu-button",
+ aria.expanded := false,
+ aria.hasPopup := true,
+ span(cls := "sr-only", "Open user menu"),
+ img(
+ cls := "h-8 w-8 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ )
+ ),
+ /*
+ * */
+ div(
+ cls := "origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",
+ role := "menu",
+ aria.orientation := "vertical",
+ aria.labelledBy := "user-menu-button",
+ tabIndex := -1,
+ //
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-0",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-1",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-4 py-2 text-sm text-gray-700",
+ role := "menuitem",
+ tabIndex := -1,
+ idAttr := "user-menu-item-2",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ div(
+ cls := "-mr-2 flex md:hidden",
+ //
+ button(
+ tpe := "button",
+ cls := "bg-indigo-600 inline-flex items-center justify-center p-2 rounded-md text-indigo-200 hover:text-white hover:bg-indigo-500 hover:bg-opacity-75 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ aria.controls := "mobile-menu",
+ aria.expanded := false,
+ span(cls := "sr-only", "Open main menu"),
+ Icons.outline.menu,
+ Icons.outline.x
+ )
+ )
+ )
+ ),
+
+ //
+ div(
+ cls := "md:hidden",
+ idAttr := "mobile-menu",
+ div(
+ cls := "px-2 pt-2 pb-3 space-y-1 sm:px-3",
+ //
+ a(
+ href := "#",
+ cls := "bg-indigo-700 text-white block px-3 py-2 rounded-md text-base font-medium",
+ ariaCurrent := "page",
+ "Dashboard"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Team"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Projects"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Calendar"
+ ),
+ a(
+ href := "#",
+ cls := "text-white hover:bg-indigo-500 hover:bg-opacity-75 block px-3 py-2 rounded-md text-base font-medium",
+ "Reports"
+ )
+ ),
+ div(
+ cls := "pt-4 pb-3 border-t border-indigo-700",
+ div(
+ cls := "flex items-center px-5",
+ div(
+ cls := "flex-shrink-0",
+ img(
+ cls := "h-10 w-10 rounded-full",
+ src := "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
+ alt := ""
+ )
+ ),
+ div(
+ cls := "ml-3",
+ div(cls := "text-base font-medium text-white", "Tom Cook"),
+ div(
+ cls := "text-sm font-medium text-indigo-300",
+ "tom@example.com"
+ )
+ ),
+ button(
+ tpe := "button",
+ cls := "ml-auto bg-indigo-600 flex-shrink-0 p-1 rounded-full text-indigo-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-indigo-600 focus:ring-white",
+ span(cls := "sr-only", "View notifications"),
+ Icons.outline.bell
+ )
+ ),
+ div(
+ cls := "mt-3 px-2 space-y-1",
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Your Profile"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Settings"
+ ),
+ a(
+ href := "#",
+ cls := "block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-indigo-500 hover:bg-opacity-75",
+ "Sign out"
+ )
+ )
+ )
+ )
+ ),
+ header(
+ cls := "bg-white shadow-sm",
+ div(
+ cls := "max-w-7xl mx-auto py-4 px-4 sm:px-6 lg:px-8",
+ h1(
+ cls := "text-lg leading-6 font-semibold text-gray-900",
+ "Dashboard"
+ )
+ )
+ ),
+ main(
+ div(
+ cls := "max-w-7xl mx-auto py-6 sm:px-6 lg:px-8",
+ //
+ div(
+ cls := "px-4 py-4 sm:px-0",
+ div(
+ cls := "border-4 border-dashed border-gray-200 rounded-lg h-96",
+ content
+ )
+ )
+ //
+ )
+ )
+ )
+}
diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
new file mode 100644
index 0000000..247d211
--- /dev/null
+++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala
@@ -0,0 +1,32 @@
+package cz.e_bs.cmi.mdr.pdb.app
+
+import scala.scalajs.js.annotation.JSExportTopLevel
+import scala.scalajs.js.annotation.JSExport
+import scala.scalajs.js.annotation.JSImport
+import scala.scalajs.js
+import org.scalajs.dom
+import com.raquo.laminar.api.L.{*, given}
+import scala.scalajs.js.Date
+
+@js.native
+@JSImport("stylesheets/main.css", JSImport.Namespace)
+object Css extends js.Any
+
+@JSExportTopLevel("app")
+object Main {
+
+ // Pull in the stylesheet
+ val css: Css.type = Css
+
+ @JSExport
+ def main(args: Array[String]): Unit = {
+ val appContainer = dom.document.querySelector("#app")
+ val $time = EventStream.periodic(1000).mapTo(new Date().toTimeString)
+ val appElement: Div = div(
+ h1("Hello"),
+ "Current time is: ",
+ b(child.text <-- $time)
+ )
+ val root: RootNode = render(appContainer, Layout.layout(appElement))
+ }
+}
diff --git a/app/src/main/static/stylesheets/main.css b/app/src/main/static/stylesheets/main.css
new file mode 100644
index 0000000..76fcadc
--- /dev/null
+++ b/app/src/main/static/stylesheets/main.css
@@ -0,0 +1,3 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
diff --git a/app/tailwind.config.js b/app/tailwind.config.js
index 3159b69..39108af 100644
--- a/app/tailwind.config.js
+++ b/app/tailwind.config.js
@@ -6,7 +6,7 @@
module.exports = {
mode: 'jit',
- purge: [
+ content: [
path.resolve(__dirname, `./${appInfo.bundlePath(process.env.NODE_ENV)}/*.js`),
path.resolve(__dirname, './*.html'),
],
@@ -16,7 +16,7 @@
serif: ['Inter', 'ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'],
},
colors: {
- gray: colors.coolGray,
+ gray: colors.gray,
},
},
},
diff --git a/app/vite.config.js b/app/vite.config.js
index 78ea958..27b4956 100644
--- a/app/vite.config.js
+++ b/app/vite.config.js
@@ -1,5 +1,5 @@
import path from 'path'
-import {minifyHtml, injectHtml} from 'vite-plugin-html'
+import { createHtmlPlugin } from 'vite-plugin-html'
import appInfo from './app-info.js'
//const moduleUrl = new URL(import.meta.url)
@@ -14,12 +14,12 @@
return {
publicDir: './src/main/static/public',
plugins: [
- ...(process.env.NODE_ENV === 'production' ? [
- minifyHtml(),
- ] : []),
- injectHtml({
- injectData: {
- script
+ createHtmlPlugin({
+ minify: process.env.NODE_ENV === 'production',
+ inject: {
+ data: {
+ script
+ }
}
})
],
diff --git a/app/yarn.lock b/app/yarn.lock
index 52a7ba7..01e25f5 100644
--- a/app/yarn.lock
+++ b/app/yarn.lock
@@ -80,22 +80,21 @@
estree-walker "^2.0.1"
picomatch "^2.2.2"
-"@tailwindcss/forms@^0.3.4":
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.3.4.tgz#e4939dc16450eccf4fd2029770096f38cbb556d4"
- integrity sha512-vlAoBifNJUkagB+PAdW4aHMe4pKmSLroH398UPgIogBFc91D2VlHUxe4pjxQhiJl0Nfw53sHSJSQBSTQBZP3vA==
+"@tailwindcss/forms@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.4.0.tgz#a46715e347a32d216a3973eb67473bd29ae3798e"
+ integrity sha512-DeaQBx6EgEeuZPQACvC+mKneJsD8am1uiJugjgQK1+/Vt+Ai0GpFBC2T2fqnUad71WgOxyrZPE6BG1VaI6YqfQ==
dependencies:
mini-svg-data-uri "^1.2.3"
-"@tailwindcss/typography@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.4.1.tgz#51ddbceea6a0ee9902c649dbe58871c81a831212"
- integrity sha512-ovPPLUhs7zAIJfr0y1dbGlyCuPhpuv/jpBoFgqAc658DWGGrOBWBMpAWLw2KlzbNeVk4YBJMzue1ekvIbdw6XA==
+"@tailwindcss/typography@^0.5.1":
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.1.tgz#486248a9426501f11a9b0295f7cfc0eb29659c46"
+ integrity sha512-AmSzZSgLhHKlILKduU+PKBTHL6c+al82syZlRid1xgmlWwXagLigO+O++B4C0scpMfzW//f/3YCRcwwEHWoU3w==
dependencies:
lodash.castarray "^4.4.0"
lodash.isplainobject "^4.0.6"
lodash.merge "^4.6.2"
- lodash.uniq "^4.5.0"
"@types/minimist@^1.2.0":
version "1.2.2"
@@ -193,7 +192,7 @@
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
-autoprefixer@^10.0.2, autoprefixer@^10.4.2:
+autoprefixer@^10.4.2:
version "10.4.2"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b"
integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
@@ -220,6 +219,11 @@
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -251,11 +255,6 @@
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-bytes@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
- integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -289,9 +288,9 @@
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297:
- version "1.0.30001304"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001304.tgz#38af55ed3fc8220cb13e35e6e7309c8c65a05559"
- integrity sha512-bdsfZd6K6ap87AGqSHJP/s1V+U6Z5lyrcbBu3ovbCCf8cSYpwTtGrCBObMpJqwxfTbLW6YTIdbb1jEeTelcpYQ==
+ version "1.0.30001305"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001305.tgz#02cd8031df07c4fcb117aa2ecc4899122681bd4c"
+ integrity sha512-p7d9YQMji8haf0f+5rbcv9WlQ+N5jMPfRAnUmZRlNxsNeBO3Yr7RYG6M2uTY1h9tCVdlkJg6YNNc4kiAiBLdWA==
chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
@@ -310,7 +309,7 @@
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chokidar@^3.5.2:
+chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -358,38 +357,27 @@
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@^1.1.4, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-string@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
- integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
-color@^4.0.1:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/color/-/color-4.2.0.tgz#0c782459a3e98838ea01e4bc0fb43310ca35af78"
- integrity sha512-hHTcrbvEnGjC7WBMk6ibQWFVDgEFTVmjrz2Q5HlU6ltwxv0JJN2Z8I7uRbWeQLF04dikxs8zgyZkazRJvSMtyQ==
- dependencies:
- color-convert "^2.0.1"
- color-string "^1.9.0"
-
colord@^2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
+colorette@^2.0.16:
+ version "2.0.16"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+ integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-commander@^8.0.0, commander@^8.3.0:
+commander@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
@@ -399,6 +387,11 @@
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+consola@^2.15.3:
+ version "2.15.3"
+ resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
+ integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
+
cosmiconfig@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
@@ -417,11 +410,6 @@
dependencies:
postcss-selector-parser "^6.0.8"
-css-color-names@^0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
- integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-
css-has-pseudo@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz#4824a34cb92dae7e09ea1d3fd19691b653412098"
@@ -434,10 +422,21 @@
resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349"
integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
-css-unit-converter@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
- integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
+css-select@^4.1.3:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
+ integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^5.1.0"
+ domhandler "^4.3.0"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
+
+css-what@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
+ integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
cssdb@^6.1.0:
version "6.1.0"
@@ -500,6 +499,36 @@
resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+dom-serializer@^1.0.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
+ integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.2.0"
+ entities "^2.0.0"
+
+domelementtype@^2.0.1, domelementtype@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+ integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+
+domhandler@^4.2.0, domhandler@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626"
+ integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
+ dependencies:
+ domelementtype "^2.2.0"
+
+domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+ dependencies:
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
+
dot-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
@@ -508,15 +537,15 @@
no-case "^3.0.4"
tslib "^2.0.3"
-dotenv-expand@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
- integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+dotenv-expand@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-6.0.1.tgz#233328515e4b71091a6513e2ffe7e9a24b49bb0c"
+ integrity sha512-GNHcCOyRKLCXWnH3L/+sJ04PQxxgTOZDCPuQQnqkqPMGIilyoxHZ2JUNmh2VWKCfzVKH/AZsqcbuSYlDDVb/xw==
-dotenv@^10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
- integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+dotenv@^14.3.2:
+ version "14.3.2"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369"
+ integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==
ejs@^3.1.6:
version "3.1.6"
@@ -526,15 +555,20 @@
jake "^10.6.1"
electron-to-chromium@^1.4.17:
- version "1.4.59"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.59.tgz#657f2588c048fb95975779f8fea101fad854de89"
- integrity sha512-AOJ3cAE0TWxz4fQ9zkND5hWrQg16nsZKVz9INOot1oV//u4wWu5xrj9CQMmPTYskkZRunSRc9sAnr4EkexXokg==
+ version "1.4.61"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.61.tgz#97689f81b4ac5c996363d9ee7babd3406c44d6c3"
+ integrity sha512-kpzCOOFlx63C9qKRyIDEsKIUgzoe98ump7T4gU+/OLzj8gYkkWf2SIyBjhTSE0keAjMAp3i7C262YtkQOMYrGw==
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+entities@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -677,7 +711,7 @@
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9:
+fast-glob@^3.2.11, fast-glob@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
@@ -783,14 +817,14 @@
dependencies:
is-glob "^4.0.1"
-glob-parent@^6.0.1:
+glob-parent@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
dependencies:
is-glob "^4.0.3"
-glob@^7.1.3, glob@^7.1.7:
+glob@^7.1.3:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -862,16 +896,11 @@
dependencies:
function-bind "^1.1.1"
-he@^1.2.0:
+he@1.2.0, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-hex-color-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
- integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -884,16 +913,6 @@
dependencies:
lru-cache "^6.0.0"
-hsl-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
- integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
-
-hsla-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
- integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-
html-minifier-terser@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
@@ -963,11 +982,6 @@
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-is-arrayish@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
- integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
is-binary-path@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
@@ -975,18 +989,6 @@
dependencies:
binary-extensions "^2.0.0"
-is-color-stop@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
- integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
- dependencies:
- css-color-names "^0.0.4"
- hex-color-regex "^1.1.0"
- hsl-regex "^1.0.0"
- hsla-regex "^1.0.0"
- rgb-regex "^1.0.1"
- rgba-regex "^1.0.0"
-
is-core-module@^2.5.0, is-core-module@^2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
@@ -1117,26 +1119,11 @@
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash.topath@^4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009"
- integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=
-
lodash.truncate@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
-lodash.uniq@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
- integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-
-lodash@^4.17.21:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
lower-case@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
@@ -1228,17 +1215,12 @@
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-modern-normalize@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7"
- integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==
-
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-nanoid@^3.1.30:
+nanoid@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
@@ -1251,12 +1233,13 @@
lower-case "^2.0.2"
tslib "^2.0.3"
-node-emoji@^1.11.0:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c"
- integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==
+node-html-parser@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-5.2.0.tgz#6f29fd00d79f65334e7e20200964644207925607"
+ integrity sha512-fmiwLfQu+J2A0zjwSEkztSHexAf5qq/WoiL/Hgo1K7JpfEP+OGWY5maG0kGaM+IFVdixF/1QbyXaQ3h4cGfeLw==
dependencies:
- lodash "^4.17.21"
+ css-select "^4.1.3"
+ he "1.2.0"
node-releases@^2.0.1:
version "2.0.1"
@@ -1298,6 +1281,13 @@
resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03"
integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=
+nth-check@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
+ integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
+ dependencies:
+ boolbase "^1.0.0"
+
object-hash@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
@@ -1382,6 +1372,11 @@
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pathe@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339"
+ integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==
+
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -1517,13 +1512,12 @@
resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42"
integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==
-postcss-js@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33"
- integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==
+postcss-js@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
+ integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
dependencies:
camelcase-css "^2.0.1"
- postcss "^8.1.6"
postcss-lab-function@^4.0.3:
version "4.0.3"
@@ -1672,45 +1666,25 @@
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-value-parser@^3.3.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8.1.6, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.5:
- version "8.4.5"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
- integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
+postcss@^8.4.5, postcss@^8.4.6:
+ version "8.4.6"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1"
+ integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==
dependencies:
- nanoid "^3.1.30"
+ nanoid "^3.2.0"
picocolors "^1.0.0"
- source-map-js "^1.0.1"
-
-pretty-hrtime@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
- integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+ source-map-js "^1.0.2"
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-purgecss@^4.0.3:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-4.1.3.tgz#683f6a133c8c4de7aa82fe2746d1393b214918f7"
- integrity sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==
- dependencies:
- commander "^8.0.0"
- glob "^7.1.7"
- postcss "^8.3.5"
- postcss-selector-parser "^6.0.6"
-
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -1767,14 +1741,6 @@
indent-string "^4.0.0"
strip-indent "^3.0.0"
-reduce-css-calc@^2.1.8:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03"
- integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==
- dependencies:
- css-unit-converter "^1.1.1"
- postcss-value-parser "^3.3.0"
-
relateurl@^0.2.7:
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
@@ -1795,7 +1761,7 @@
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0:
+resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.21.0:
version "1.22.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
@@ -1809,17 +1775,7 @@
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rgb-regex@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
- integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
-
-rgba-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
- integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-
-rimraf@^3.0.0, rimraf@^3.0.2:
+rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -1827,9 +1783,9 @@
glob "^7.1.3"
rollup@^2.59.0:
- version "2.66.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.1.tgz#366b0404de353c4331d538c3ad2963934fcb4937"
- integrity sha512-crSgLhSkLMnKr4s9iZ/1qJCplgAgrRY+igWv8KhG/AjKOJ0YX/WpmANyn8oxrw+zenF3BXWDLa7Xl/QZISH+7w==
+ version "2.67.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.67.0.tgz#496de7e641dbe39f681c5a82419cb5013917d406"
+ integrity sha512-W83AaERwvDiHwHEF/dfAfS3z1Be5wf7n+pO3ZAO5IQadCT2lBTr7WQ2MwZZe+nodbD+n3HtC4OCOAdsOPPcKZQ==
optionalDependencies:
fsevents "~2.3.2"
@@ -1857,13 +1813,6 @@
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
-simple-swizzle@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
- integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
- dependencies:
- is-arrayish "^0.3.1"
-
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -1878,7 +1827,7 @@
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
-source-map-js@^1.0.1:
+source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@@ -2061,43 +2010,31 @@
string-width "^4.2.3"
strip-ansi "^6.0.1"
-tailwindcss@^2.2.19:
- version "2.2.19"
- resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.2.19.tgz#540e464832cd462bb9649c1484b0a38315c2653c"
- integrity sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw==
+tailwindcss@^3.0.18:
+ version "3.0.18"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.18.tgz#ea4825e6496d77dc21877b6b61c7cc56cda3add5"
+ integrity sha512-ihPTpEyA5ANgZbwKlgrbfnzOp9R5vDHFWmqxB1PT8NwOGCOFVVMl+Ps1cQQ369acaqqf1BEF77roCwK0lvNmTw==
dependencies:
arg "^5.0.1"
- bytes "^3.0.0"
chalk "^4.1.2"
- chokidar "^3.5.2"
- color "^4.0.1"
+ chokidar "^3.5.3"
+ color-name "^1.1.4"
cosmiconfig "^7.0.1"
detective "^5.2.0"
didyoumean "^1.2.2"
dlv "^1.1.3"
- fast-glob "^3.2.7"
- fs-extra "^10.0.0"
- glob-parent "^6.0.1"
- html-tags "^3.1.0"
- is-color-stop "^1.1.0"
- is-glob "^4.0.1"
- lodash "^4.17.21"
- lodash.topath "^4.5.2"
- modern-normalize "^1.1.0"
- node-emoji "^1.11.0"
+ fast-glob "^3.2.11"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
normalize-path "^3.0.0"
object-hash "^2.2.0"
- postcss-js "^3.0.3"
+ postcss-js "^4.0.0"
postcss-load-config "^3.1.0"
postcss-nested "5.0.6"
- postcss-selector-parser "^6.0.6"
- postcss-value-parser "^4.1.0"
- pretty-hrtime "^1.0.3"
- purgecss "^4.0.3"
+ postcss-selector-parser "^6.0.9"
+ postcss-value-parser "^4.2.0"
quick-lru "^5.1.1"
- reduce-css-calc "^2.1.8"
- resolve "^1.20.0"
- tmp "^0.2.1"
+ resolve "^1.21.0"
terser@^5.10.0:
version "5.10.0"
@@ -2108,13 +2045,6 @@
source-map "~0.7.2"
source-map-support "~0.5.20"
-tmp@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
- integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
- dependencies:
- rimraf "^3.0.0"
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -2187,19 +2117,24 @@
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
-vite-plugin-html@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/vite-plugin-html/-/vite-plugin-html-2.1.2.tgz#aaf846a806b37e4884870e5ce1918166e9ce9125"
- integrity sha512-7HXkL6n7M2qDEaUV4Vnz8yM2glW4gV36d5HSBIM5gOoAG1PkuQb4Vv9FTPgPiQxq4sPRf/6IgABX0MeLVW+CyQ==
+vite-plugin-html@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/vite-plugin-html/-/vite-plugin-html-3.0.3.tgz#5f1375fd76ca0f8fb538a780940bc226739cbbe8"
+ integrity sha512-9X0AhjXB97JsxddzhIZ2/r0s6JfY4UUR5hJsl/dUNE+rR9fmjAgOJtDgE8ZNrSNy/x2SLgBA4O0S4gFwFkLQHw==
dependencies:
"@rollup/pluginutils" "^4.1.2"
- dotenv "^10.0.0"
- dotenv-expand "^5.1.0"
+ colorette "^2.0.16"
+ consola "^2.15.3"
+ dotenv "^14.3.2"
+ dotenv-expand "^6.0.1"
ejs "^3.1.6"
+ fast-glob "^3.2.11"
fs-extra "^10.0.0"
html-minifier-terser "^6.1.0"
+ node-html-parser "^5.2.0"
+ pathe "^0.2.0"
-vite@^2.6.14:
+vite@^2.7.13:
version "2.7.13"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.7.13.tgz#99b56e27dfb1e4399e407cf94648f5c7fb9d77f5"
integrity sha512-Mq8et7f3aK0SgSxjDNfOAimZGW9XryfHRa/uV0jseQSilg+KhYDSoNb9h1rknOy6SuMkvNDLKCYAYYUMCE+IgQ==