diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
new file mode 100644
index 0000000..830de88
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,41 @@
+name: Groundwork Bug Report
+description: File a bug report related to Groundwork
+labels: ["bug"]
+body:
+ # BUG REPORT FIELDS
+ - type: textarea
+ id: bug_description
+ attributes:
+ label: Describe the bug
+ description: What went wrong?
+ placeholder:
+ A clear and concise description of the bug... Include the version
+ of Groundwork if known. i.e. gw v0.0.1 (You can see this in your package.json file)
+ Provide any links to relevant code here.
+ validations:
+ required: true
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: REDACTED relevant log output
+ description:
+ Please copy and paste any relevant log output. Either runtime (dev console) or build logs. Removing sensitive
+ information. This will be automatically formatted into code, so no need for
+ backticks.
+ render: shell
+ validations:
+ required: false
+
+ - type: textarea
+ id: repro_steps
+ attributes:
+ label: Steps to Reproduce
+ description: Provide steps to reproduce the issue.
+ placeholder: |
+ 1. npm install
+ 2. npm run dev
+ 3. Navigate to this page
+ 4. See error when clicking XYZ
+ validations:
+ required: false
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..1913e07
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: true
+contact_links:
+ - name: Groundwork Water
+ url: https://github.com/USACE-WaterManagement/groundwork-water/issues/new
+ about: Issues Related to Data/Hook Components or other water management data component problems.
+ - name: Groundwork Geo
+ url: https://github.com/USACE/groundwork-geo/issues/new
+ about: Map component issues that do NOT fetch data and otherwise have trouble with rendering or feature requests.
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
new file mode 100644
index 0000000..dd1b9f3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.yml
@@ -0,0 +1,23 @@
+name: Groundwork Feature Request
+description: Request a feature related to Groundwork
+labels: ["enhancement"]
+body:
+ # FEATURE REQUEST FIELDS
+ - type: textarea
+ id: feature_description
+ attributes:
+ label: Feature Proposal
+ description: What do you want to see added or changed?
+ placeholder: |
+ Describe the feature, its motivation, and usage examples.
+ You can include code or other examples in code blocks.
+ validations:
+ required: true
+
+ - type: textarea
+ id: related_links
+ attributes:
+ label: Related Context or Links
+ description: Include any discussions, docs, or libraries relevant to the request.
+ validations:
+ required: false
diff --git a/lib/components/display/modal.jsx b/lib/components/display/modal.jsx
index 56b26b4..62d95e0 100644
--- a/lib/components/display/modal.jsx
+++ b/lib/components/display/modal.jsx
@@ -8,11 +8,19 @@ import {
import gwMerge from "../../gw-merge";
import { WIDTH_OPTIONS } from "../../utils/sizes";
+const roleOptions = ["dialog", "alertdialog"];
+
function Modal({
opened = false,
onClose,
dialogTitle,
dialogDescription,
+ isStatic = false,
+ autoFocus=false,
+ dialogTransition=false,
+ dialogPanelTransition= false,
+ unmount = true,
+ role='dialog',
buttons,
size = "2xl",
className,
@@ -28,11 +36,27 @@ function Modal({
);
size = "2xl";
}
+
+ // Check if Role exists
+ if (!roleOptions.includes(role)) {
+ console.error(
+ `Invalid role option for dialog ${role}. Must be one of: 'dialog','alertdialog'`)
+ console.warn(
+ `Defaulting to 'dialog' for role of `,
+ );
+ role = "dialog";
+
+ }
return (
@@ -48,6 +72,7 @@ function Modal({
"gw-bg-white",
"gw-p-12",
)}
+ transition={dialogPanelTransition}
>
{dialogTitle && (
diff --git a/lib/components/navigation/breadcrumbs.jsx b/lib/components/navigation/breadcrumbs.jsx
index ce9069a..8938147 100644
--- a/lib/components/navigation/breadcrumbs.jsx
+++ b/lib/components/navigation/breadcrumbs.jsx
@@ -4,6 +4,8 @@ import { MdHome } from "react-icons/md";
import { VscChevronRight } from "react-icons/vsc";
import Link from "./link";
+const BASE_URL = import.meta.env.BASE_URL;
+
function BreadcrumbItem({ className, href, text }) {
const breadcrumbItemClass = useMemo(() => {
return gwMerge(
@@ -30,7 +32,7 @@ function BreadcrumbItem({ className, href, text }) {
);
}
-function Breadcrumbs({ className, children }) {
+function Breadcrumbs({ className, children, baseUrl }) {
const breadcrumbsClass = useMemo(() => {
return gwMerge(
"gw-flex gw-flex-nowrap gw-items-center gw-space-x-2 gw-py-4 gw-overflow-x-auto gw-hide-scrollbar",
@@ -41,7 +43,10 @@ function Breadcrumbs({ className, children }) {
-
+
Home
diff --git a/lib/composite/footer/index.jsx b/lib/composite/footer/index.jsx
index e7bea57..482e017 100644
--- a/lib/composite/footer/index.jsx
+++ b/lib/composite/footer/index.jsx
@@ -110,7 +110,9 @@ function Footer({
{missionText && (
<>
Our Mission
- {missionText}
+
+ {missionText}
+
>
)}
@@ -118,7 +120,9 @@ function Footer({
{aboutText && (
<>
About this Website
- {aboutText}
+
+ {aboutText}
+
>
)}
diff --git a/lib/composite/header/index.jsx b/lib/composite/header/index.jsx
index 9ce1f7a..b3917e5 100644
--- a/lib/composite/header/index.jsx
+++ b/lib/composite/header/index.jsx
@@ -7,6 +7,8 @@ import { useState } from "react";
import gwMerge from "../../gw-merge";
import Link from "../../components/navigation/link";
+const BASE_URL = import.meta.env.BASE_URL;
+
function Title({ title = "", subtitle = "" }) {
return (
-
+
{link.children.map((child) => (
@@ -55,7 +55,7 @@ function NavbarLinkItem({ link, ...props }) {
{child.children.map((grandChild) => {
if (!grandChild.children)
diff --git a/package-lock.json b/package-lock.json
index f9dd2e9..51cc79d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@usace/groundwork",
- "version": "3.14.21",
+ "version": "3.15.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@usace/groundwork",
- "version": "3.14.21",
+ "version": "3.15.6",
"license": "MIT",
"dependencies": {
"@headlessui/react": "^2.2.0",
@@ -32,8 +32,8 @@
"prettier": "^3.6.2",
"tailwind-merge": "^2.5.2",
"tailwindcss": "^3.4.1",
- "vite": "^5.0.13",
- "vitest": "^2.1.1"
+ "vite": "^7.2.7",
+ "vitest": "^3.2.4"
},
"peerDependencies": {
"react": "^18.2.0 || ^19.0.0",
@@ -97,6 +97,7 @@
"integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1",
@@ -349,9 +350,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz",
+ "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==",
"cpu": [
"ppc64"
],
@@ -362,13 +363,13 @@
"aix"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz",
+ "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==",
"cpu": [
"arm"
],
@@ -379,13 +380,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz",
+ "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==",
"cpu": [
"arm64"
],
@@ -396,13 +397,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz",
+ "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==",
"cpu": [
"x64"
],
@@ -413,13 +414,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz",
+ "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==",
"cpu": [
"arm64"
],
@@ -430,13 +431,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz",
+ "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==",
"cpu": [
"x64"
],
@@ -447,13 +448,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==",
"cpu": [
"arm64"
],
@@ -464,13 +465,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz",
+ "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==",
"cpu": [
"x64"
],
@@ -481,13 +482,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz",
+ "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==",
"cpu": [
"arm"
],
@@ -498,13 +499,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz",
+ "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==",
"cpu": [
"arm64"
],
@@ -515,13 +516,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz",
+ "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==",
"cpu": [
"ia32"
],
@@ -532,13 +533,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz",
+ "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==",
"cpu": [
"loong64"
],
@@ -549,13 +550,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz",
+ "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==",
"cpu": [
"mips64el"
],
@@ -566,13 +567,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz",
+ "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==",
"cpu": [
"ppc64"
],
@@ -583,13 +584,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz",
+ "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==",
"cpu": [
"riscv64"
],
@@ -600,13 +601,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz",
+ "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==",
"cpu": [
"s390x"
],
@@ -617,13 +618,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz",
+ "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==",
"cpu": [
"x64"
],
@@ -634,13 +635,30 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz",
+ "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==",
"cpu": [
"x64"
],
@@ -651,13 +669,30 @@
"netbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz",
+ "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz",
+ "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==",
"cpu": [
"x64"
],
@@ -668,13 +703,30 @@
"openbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz",
+ "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz",
+ "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==",
"cpu": [
"x64"
],
@@ -685,13 +737,13 @@
"sunos"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz",
+ "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==",
"cpu": [
"arm64"
],
@@ -702,13 +754,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz",
+ "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==",
"cpu": [
"ia32"
],
@@ -719,13 +771,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz",
+ "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==",
"cpu": [
"x64"
],
@@ -736,7 +788,7 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
@@ -1566,6 +1618,23 @@
"@babel/types": "^7.28.2"
}
},
+ "node_modules/@types/chai": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
+ "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/deep-eql": "*"
+ }
+ },
+ "node_modules/@types/deep-eql": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
@@ -1586,6 +1655,7 @@
"integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -1630,38 +1700,39 @@
}
},
"node_modules/@vitest/expect": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz",
- "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "2.1.9",
- "@vitest/utils": "2.1.9",
- "chai": "^5.1.2",
- "tinyrainbow": "^1.2.0"
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/mocker": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz",
- "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "2.1.9",
+ "@vitest/spy": "3.2.4",
"estree-walker": "^3.0.3",
- "magic-string": "^0.30.12"
+ "magic-string": "^0.30.17"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"msw": "^2.4.9",
- "vite": "^5.0.0"
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
},
"peerDependenciesMeta": {
"msw": {
@@ -1673,70 +1744,71 @@
}
},
"node_modules/@vitest/pretty-format": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz",
- "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tinyrainbow": "^1.2.0"
+ "tinyrainbow": "^2.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/runner": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz",
- "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "2.1.9",
- "pathe": "^1.1.2"
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz",
- "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "2.1.9",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2"
+ "@vitest/pretty-format": "3.2.4",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/spy": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz",
- "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tinyspy": "^3.0.2"
+ "tinyspy": "^4.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/utils": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz",
- "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "2.1.9",
- "loupe": "^3.1.2",
- "tinyrainbow": "^1.2.0"
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
@@ -1748,6 +1820,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2127,6 +2200,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001733",
"electron-to-chromium": "^1.5.199",
@@ -2827,9 +2901,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz",
+ "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -2837,32 +2911,35 @@
"esbuild": "bin/esbuild"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "@esbuild/aix-ppc64": "0.25.9",
+ "@esbuild/android-arm": "0.25.9",
+ "@esbuild/android-arm64": "0.25.9",
+ "@esbuild/android-x64": "0.25.9",
+ "@esbuild/darwin-arm64": "0.25.9",
+ "@esbuild/darwin-x64": "0.25.9",
+ "@esbuild/freebsd-arm64": "0.25.9",
+ "@esbuild/freebsd-x64": "0.25.9",
+ "@esbuild/linux-arm": "0.25.9",
+ "@esbuild/linux-arm64": "0.25.9",
+ "@esbuild/linux-ia32": "0.25.9",
+ "@esbuild/linux-loong64": "0.25.9",
+ "@esbuild/linux-mips64el": "0.25.9",
+ "@esbuild/linux-ppc64": "0.25.9",
+ "@esbuild/linux-riscv64": "0.25.9",
+ "@esbuild/linux-s390x": "0.25.9",
+ "@esbuild/linux-x64": "0.25.9",
+ "@esbuild/netbsd-arm64": "0.25.9",
+ "@esbuild/netbsd-x64": "0.25.9",
+ "@esbuild/openbsd-arm64": "0.25.9",
+ "@esbuild/openbsd-x64": "0.25.9",
+ "@esbuild/openharmony-arm64": "0.25.9",
+ "@esbuild/sunos-x64": "0.25.9",
+ "@esbuild/win32-arm64": "0.25.9",
+ "@esbuild/win32-ia32": "0.25.9",
+ "@esbuild/win32-x64": "0.25.9"
}
},
"node_modules/escalade": {
@@ -2895,6 +2972,7 @@
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -4202,9 +4280,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4981,9 +5059,9 @@
"license": "ISC"
},
"node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
@@ -5075,6 +5153,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -5361,7 +5440,8 @@
"version": "28.1.0",
"resolved": "https://registry.npmjs.org/redux-bundler/-/redux-bundler-28.1.0.tgz",
"integrity": "sha512-dbq0J0Sm0ctK9ZUh73JR/6J937qzNvkKEHXtHv7p2Hl/9sS+xyRQReWjuju8LHopYFiG+U0Lg9XZM1hPp1WkHg==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/redux-bundler-hook": {
"version": "1.0.3",
@@ -5628,8 +5708,7 @@
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
"integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/semver": {
"version": "6.3.1",
@@ -6096,6 +6175,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/strip-literal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
+ "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^9.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/sucrase": {
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
@@ -6218,6 +6317,7 @@
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
"integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -6312,6 +6412,55 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/tinypool": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
@@ -6323,9 +6472,9 @@
}
},
"node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
+ "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6333,9 +6482,9 @@
}
},
"node_modules/tinyspy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
- "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz",
+ "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6546,21 +6695,25 @@
"license": "MIT"
},
"node_modules/vite": {
- "version": "5.4.19",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
- "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
+ "version": "7.2.7",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz",
+ "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
+ "esbuild": "^0.25.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^20.19.0 || >=22.12.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
@@ -6569,19 +6722,25 @@
"fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
"lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
+ "jiti": {
+ "optional": true
+ },
"less": {
"optional": true
},
@@ -6602,74 +6761,116 @@
},
"terser": {
"optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
}
}
},
"node_modules/vite-node": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz",
- "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
- "debug": "^4.3.7",
- "es-module-lexer": "^1.5.4",
- "pathe": "^1.1.2",
- "vite": "^5.0.0"
+ "debug": "^4.4.1",
+ "es-module-lexer": "^1.7.0",
+ "pathe": "^2.0.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
},
"bin": {
"vite-node": "vite-node.mjs"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/vitest": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz",
- "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/expect": "2.1.9",
- "@vitest/mocker": "2.1.9",
- "@vitest/pretty-format": "^2.1.9",
- "@vitest/runner": "2.1.9",
- "@vitest/snapshot": "2.1.9",
- "@vitest/spy": "2.1.9",
- "@vitest/utils": "2.1.9",
- "chai": "^5.1.2",
- "debug": "^4.3.7",
- "expect-type": "^1.1.0",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2",
- "std-env": "^3.8.0",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "debug": "^4.4.1",
+ "expect-type": "^1.2.1",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.2",
+ "std-env": "^3.9.0",
"tinybench": "^2.9.0",
- "tinyexec": "^0.3.1",
- "tinypool": "^1.0.1",
- "tinyrainbow": "^1.2.0",
- "vite": "^5.0.0",
- "vite-node": "2.1.9",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.14",
+ "tinypool": "^1.1.1",
+ "tinyrainbow": "^2.0.0",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
+ "vite-node": "3.2.4",
"why-is-node-running": "^2.3.0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
- "@types/node": "^18.0.0 || >=20.0.0",
- "@vitest/browser": "2.1.9",
- "@vitest/ui": "2.1.9",
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
"happy-dom": "*",
"jsdom": "*"
},
@@ -6677,6 +6878,9 @@
"@edge-runtime/vm": {
"optional": true
},
+ "@types/debug": {
+ "optional": true
+ },
"@types/node": {
"optional": true
},
@@ -6694,6 +6898,19 @@
}
}
},
+ "node_modules/vitest/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index 6f313f4..ef061ec 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@usace/groundwork",
"private": false,
- "version": "3.14.21",
+ "version": "3.15.6",
"license": "MIT",
"type": "module",
"main": "./dist/groundwork.umd.cjs",
@@ -61,7 +61,7 @@
"prettier": "^3.6.2",
"tailwind-merge": "^2.5.2",
"tailwindcss": "^3.4.1",
- "vite": "^5.0.13",
- "vitest": "^2.1.1"
+ "vite": "^7.2.7",
+ "vitest": "^3.2.4"
}
}
diff --git a/src/App.jsx b/src/App.jsx
index ae62879..a0a408c 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -5,17 +5,19 @@ import links from "./nav-links";
import { FaGithub } from "react-icons/fa";
const version = import.meta.env.PKG_VERSION;
+const BASE_URL = import.meta.env.BASE_URL;
function App() {
const {
route: Route,
hash,
doUpdateUrl,
- } = useConnect("selectRoute", "selectHash", "doUpdateUrl");
+ doUpdateHash,
+ } = useConnect("selectRoute", "selectHash", "doUpdateUrl", "doUpdateHash");
if (hash === "") {
window.setTimeout(() => {
- doUpdateUrl("/#/");
+ doUpdateUrl(`${BASE_URL}#/`);
}, 100);
return null;
}
@@ -25,7 +27,7 @@ function App() {
for (let i = 1; i <= linkCount; i++) {
const link = {
id: i,
- href: "/#",
+ href: `#/`,
text: `${prefix} Link ${i}`,
};
links.push(link);
@@ -34,7 +36,13 @@ function App() {
};
return (
-
+
{
+ // Remove BASE_URL# before it is added again by the navhelper so it can be included in the hrefs for copy url purposes
+ if (url.includes(`${BASE_URL}#`)) url = url.replace(`${BASE_URL}#`, "");
+ doUpdateHash(url);
+ })}
+ >
@@ -10,10 +12,10 @@ function NotFound() {
-
+
Go Home
-
+
Go to Documentation
window.history.back()}>
diff --git a/src/app-pages/documentation/_docs-page.jsx b/src/app-pages/documentation/_docs-page.jsx
index 087e689..a6795e6 100644
--- a/src/app-pages/documentation/_docs-page.jsx
+++ b/src/app-pages/documentation/_docs-page.jsx
@@ -2,15 +2,17 @@ import { useConnect } from "redux-bundler-hook";
import { Container, Sidebar, Breadcrumbs, BreadcrumbItem } from "../../../lib";
import sidebarLinks from "../../nav-links";
+const BASE_URL = import.meta.env.BASE_URL;
+
function DocsPage({ breadcrumbs = [], children }) {
const { hash } = useConnect("selectHash");
return (
-
+
{breadcrumbs.map((breadcrumb) => (
))}
diff --git a/src/app-pages/documentation/_template.jsx b/src/app-pages/documentation/_template.jsx
index 0751d74..91d2dbc 100644
--- a/src/app-pages/documentation/_template.jsx
+++ b/src/app-pages/documentation/_template.jsx
@@ -3,10 +3,12 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
];
diff --git a/src/app-pages/documentation/app-shell/index.jsx b/src/app-pages/documentation/app-shell/index.jsx
index a9c217c..49f97cd 100644
--- a/src/app-pages/documentation/app-shell/index.jsx
+++ b/src/app-pages/documentation/app-shell/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Application Shell",
- href: "/#/docs/app-shell",
+ href: `${BASE_URL}#/docs/app-shell`,
},
];
@@ -27,12 +29,12 @@ function AppShell() {
Components
-
+
Site Wrapper - Add the standard header and footer to your pages
-
+
Search - Customizable search options
diff --git a/src/app-pages/documentation/app-shell/search.jsx b/src/app-pages/documentation/app-shell/search.jsx
index 61442cc..a0c5ea3 100644
--- a/src/app-pages/documentation/app-shell/search.jsx
+++ b/src/app-pages/documentation/app-shell/search.jsx
@@ -11,18 +11,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Application Shell",
- href: "/#/docs/app-shell",
+ href: `${BASE_URL}#/docs/app-shell`,
},
{
text: "Search",
- href: "/#/docs/app-shell/search",
+ href: `${BASE_URL}#/docs/app-shell/search`,
},
];
diff --git a/src/app-pages/documentation/app-shell/site-wrapper.jsx b/src/app-pages/documentation/app-shell/site-wrapper.jsx
index e128984..c600f26 100644
--- a/src/app-pages/documentation/app-shell/site-wrapper.jsx
+++ b/src/app-pages/documentation/app-shell/site-wrapper.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Application Shell",
- href: "/#/docs/app-shell",
+ href: `${BASE_URL}#/docs/app-shell`,
},
{
text: "Site Wrapper",
- href: "/#/docs/app-shell/site-wrapper",
+ href: `${BASE_URL}#/docs/app-shell/site-wrapper`,
},
];
@@ -213,7 +215,7 @@ function SiteWrapperDocs() {
code={`import { SiteWrapper } from "@usace/groundwork";
import { useConnect } from "redux-bundler-hook";
-const links = [{ id: "docs", text: "Documentation", href: "/#/docs" }];
+const links = [{ id: "docs", text: "Documentation", href: "/docs" }];
function App() {
const {
diff --git a/src/app-pages/documentation/buttons/delete-confirm.jsx b/src/app-pages/documentation/buttons/delete-confirm.jsx
index cab21a3..242dde2 100644
--- a/src/app-pages/documentation/buttons/delete-confirm.jsx
+++ b/src/app-pages/documentation/buttons/delete-confirm.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
},
{
text: "Delete / Confirm",
- href: "/#/docs/buttons/delete-confirm",
+ href: `${BASE_URL}#/docs/buttons/delete-confirm`,
},
];
diff --git a/src/app-pages/documentation/buttons/generic-buttons.jsx b/src/app-pages/documentation/buttons/generic-buttons.jsx
index 9c276f5..cf8dd4b 100644
--- a/src/app-pages/documentation/buttons/generic-buttons.jsx
+++ b/src/app-pages/documentation/buttons/generic-buttons.jsx
@@ -1,16 +1,19 @@
-import { UsaceBox, Code, Button, Text, H3 } from "../../../../lib";
+import { UsaceBox, Code, Button, Text, H3, Badge } from "../../../../lib";
+import Link from "../../../../lib/components/navigation/link";
import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}/docs/buttons`,
},
];
@@ -107,6 +110,7 @@ function GenericButtonsDocs() {
recommended that you implement your own button using the{" "}
{""} primitive component.
+ NOTE: if you are linking to your own site to include the base. Otherwise include rel="external"
{/* Example usage - remove if not needed */}
Basic Usage
@@ -116,7 +120,7 @@ function GenericButtonsDocs() {
Outlined
Plain
Disabled
-
As a Link
+
As a Link
{/* Example code */}
@@ -124,13 +128,14 @@ function GenericButtonsDocs() {
code={`import { Button } from "@usace/groundwork";
function Component() {
+ const BASE_URL = import.meta.env.BASE_URL;
return (
Default
Outlined
Plain
Disabled
- As a Link
+ As a Link
)
}
diff --git a/src/app-pages/documentation/buttons/index.jsx b/src/app-pages/documentation/buttons/index.jsx
index f86d8c8..c099623 100644
--- a/src/app-pages/documentation/buttons/index.jsx
+++ b/src/app-pages/documentation/buttons/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
},
];
@@ -25,18 +27,18 @@ function Buttons() {
Components
-
+
Generic Buttons - All the flavors that come out of the box.
-
+
Ok/Cancel - When you need a simple acknowledgement or a chance
to back out.
-
+
Delete/Confirm - When you need to make sure the user wants to
delete something.
diff --git a/src/app-pages/documentation/buttons/login-button.jsx b/src/app-pages/documentation/buttons/login-button.jsx
index 2e6a6f0..8507e3c 100644
--- a/src/app-pages/documentation/buttons/login-button.jsx
+++ b/src/app-pages/documentation/buttons/login-button.jsx
@@ -11,18 +11,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import { useState } from "react";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
},
{
text: "Login Button",
- href: "/#/docs/buttons/login-button",
+ href: `${BASE_URL}#/docs/buttons/login-button`,
},
];
@@ -110,7 +112,7 @@ function LoginButtonDocs() {
{
id: "profile",
text: `View Profile`,
- link: "#",
+ link: `${BASE_URL}#/docs`,
},
]}
/>
diff --git a/src/app-pages/documentation/buttons/ok-cancel.jsx b/src/app-pages/documentation/buttons/ok-cancel.jsx
index f842c75..4e3b6ee 100644
--- a/src/app-pages/documentation/buttons/ok-cancel.jsx
+++ b/src/app-pages/documentation/buttons/ok-cancel.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
},
{
text: "OK / Cancel",
- href: "/#/docs/buttons/ok-cancel",
+ href: `${BASE_URL}#/docs/buttons/ok-cancel`,
},
];
diff --git a/src/app-pages/documentation/buttons/popout-menu.jsx b/src/app-pages/documentation/buttons/popout-menu.jsx
index 36f02b7..f3f70dc 100644
--- a/src/app-pages/documentation/buttons/popout-menu.jsx
+++ b/src/app-pages/documentation/buttons/popout-menu.jsx
@@ -5,18 +5,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import links from "../../../nav-links";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
},
{
text: "Popout Menu",
- href: "/#/docs/buttons/PopoutMenu",
+ href: `${BASE_URL}#/docs/buttons/popout-menu`,
},
];
@@ -60,7 +62,7 @@ function PopoutMenuDocs() {
{" "} component, please see the{" "}
diff --git a/src/app-pages/documentation/display/accordion.jsx b/src/app-pages/documentation/display/accordion.jsx
index cf27c9c..c1197ea 100644
--- a/src/app-pages/documentation/display/accordion.jsx
+++ b/src/app-pages/documentation/display/accordion.jsx
@@ -4,18 +4,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import { LuPartyPopper } from "react-icons/lu";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Accordion",
- href: "/#/docs/display/accordion",
+ href: `${BASE_URL}#/docs/display/accordion`,
},
];
diff --git a/src/app-pages/documentation/display/badge.jsx b/src/app-pages/documentation/display/badge.jsx
index 60dc500..bad0d39 100644
--- a/src/app-pages/documentation/display/badge.jsx
+++ b/src/app-pages/documentation/display/badge.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Badge",
- href: "/#/docs/display/badge",
+ href: `${BASE_URL}#/docs/display/badge`,
},
];
diff --git a/src/app-pages/documentation/display/card.jsx b/src/app-pages/documentation/display/card.jsx
index 9ffa4b7..d7b2e9a 100644
--- a/src/app-pages/documentation/display/card.jsx
+++ b/src/app-pages/documentation/display/card.jsx
@@ -3,10 +3,12 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
];
diff --git a/src/app-pages/documentation/display/divider.jsx b/src/app-pages/documentation/display/divider.jsx
index 0d5a4ca..02d237f 100644
--- a/src/app-pages/documentation/display/divider.jsx
+++ b/src/app-pages/documentation/display/divider.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Divider",
- href: "/#/docs/display/divider",
+ href: `${BASE_URL}#/docs/display/divider`,
},
];
diff --git a/src/app-pages/documentation/display/headings.jsx b/src/app-pages/documentation/display/headings.jsx
index 0a3f19d..753fb5a 100644
--- a/src/app-pages/documentation/display/headings.jsx
+++ b/src/app-pages/documentation/display/headings.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Headings",
- href: "/#/docs/display/headings",
+ href: `${BASE_URL}#/docs/display/headings`,
},
];
diff --git a/src/app-pages/documentation/display/hero.jsx b/src/app-pages/documentation/display/hero.jsx
index b3732c1..3ba2e2a 100644
--- a/src/app-pages/documentation/display/hero.jsx
+++ b/src/app-pages/documentation/display/hero.jsx
@@ -1,12 +1,14 @@
-import { UsaceBox, Code, Text, Hero, Badge, H2 } from "../../../../lib";
+import { UsaceBox, Code, Text, Hero, Badge } from "../../../../lib";
import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
];
diff --git a/src/app-pages/documentation/display/index.jsx b/src/app-pages/documentation/display/index.jsx
index 2272c5e..62f0c35 100644
--- a/src/app-pages/documentation/display/index.jsx
+++ b/src/app-pages/documentation/display/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
];
@@ -24,34 +26,38 @@ function Display() {
Components
-
+
Badge - A small piece of information that can be displayed on a
page.
-
+
Headings - Section headings for standard content.
-
+
Hero - A large, prominent section of a page.
- Text - Standard text for a page.
+
+ Text - Standard text for a page.
+
- Table - A table of data.
+
+ Table - A table of data.
+
-
+
Accordion - Stackable / Expandible sections.
-
+
Card - Put a box around some content.
diff --git a/src/app-pages/documentation/display/modal.jsx b/src/app-pages/documentation/display/modal.jsx
index 9dac4fb..cd4d2b1 100644
--- a/src/app-pages/documentation/display/modal.jsx
+++ b/src/app-pages/documentation/display/modal.jsx
@@ -4,14 +4,16 @@ import CodeExample from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Modal",
- href: "/#/docs/modal",
+ href: `${BASE_URL}#/docs/modal`,
},
];
@@ -58,6 +60,42 @@ const componentProps = [
default: "2xl",
desc: "Size of the modal dialog. Options include: 'sx', 'sm', 'md', 'lg', 'xl', '2xl', '4xl', 'full'.",
},
+ {
+ name: "isStatic",
+ type:"boolean",
+ default:"false",
+ desc:"Whether the element should ignore the internally managed open/closed state."
+ },
+ {
+ name:"autoFocus",
+ type:"boolean",
+ default:"false",
+ desc:"Whether or not the dialog should receive focus when first rendered."
+ },
+ {
+ name:"dialogTransition",
+ type:"boolean",
+ default:"false",
+ desc:"Whether the element should render transition attributes like data-closed, data-enter and data-leave."
+ },
+ {
+ name:"unmount",
+ type:"boolean",
+ default:"true",
+ desc:"Whether the element should be unmounted or hidden based on the open/closed state."
+ },
+ {
+ name:"role",
+ type:"string",
+ default:"dialog",
+ desc:"The role to apply to the dialog root element. Options include: 'dialog' , 'alertdialog'"
+ },
+ {
+ name:"dialogPanelTransition",
+ type:"boolean",
+ default:"false",
+ desc:"Whether the element should render transition attributes like data-closed, data-enter and data-leave."
+ },
{
name: "className",
type: "string",
diff --git a/src/app-pages/documentation/display/progress-bar.jsx b/src/app-pages/documentation/display/progress-bar.jsx
index b1085f5..2bdb5c8 100644
--- a/src/app-pages/documentation/display/progress-bar.jsx
+++ b/src/app-pages/documentation/display/progress-bar.jsx
@@ -4,18 +4,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Progress Bar",
- href: "/#/docs/display/progress-bar",
+ href: `${BASE_URL}#/docs/display/progress-bar`,
},
];
diff --git a/src/app-pages/documentation/display/skeleton.jsx b/src/app-pages/documentation/display/skeleton.jsx
index dec63ad..8e4bd6f 100644
--- a/src/app-pages/documentation/display/skeleton.jsx
+++ b/src/app-pages/documentation/display/skeleton.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Layout",
- href: "/#/docs/layout",
+ href: `${BASE_URL}#/docs/layout`,
},
{
text: "Skeleton",
- href: "/#/docs/display/skeleton",
+ href: `${BASE_URL}#/docs/display/skeleton`,
},
];
diff --git a/src/app-pages/documentation/display/table.jsx b/src/app-pages/documentation/display/table.jsx
index d4e53c9..4165263 100644
--- a/src/app-pages/documentation/display/table.jsx
+++ b/src/app-pages/documentation/display/table.jsx
@@ -13,18 +13,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Table",
- href: "/#/docs/display/table",
+ href: `${BASE_URL}#/docs/display/table`,
},
];
diff --git a/src/app-pages/documentation/display/text.jsx b/src/app-pages/documentation/display/text.jsx
index 30d6548..a1e0fd5 100644
--- a/src/app-pages/documentation/display/text.jsx
+++ b/src/app-pages/documentation/display/text.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
},
{
text: "Text",
- href: "/#/docs/display/Text",
+ href: `${BASE_URL}#/docs/display/Text`,
},
];
diff --git a/src/app-pages/documentation/forms/checkboxes.jsx b/src/app-pages/documentation/forms/checkboxes.jsx
index cd66724..99a83c5 100644
--- a/src/app-pages/documentation/forms/checkboxes.jsx
+++ b/src/app-pages/documentation/forms/checkboxes.jsx
@@ -5,10 +5,12 @@ import DocsPage from "../_docs-page";
import { Checkboxes } from "../../../../lib/components/form/checkboxes";
import { useState, useMemo } from "react";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
- { text: "Documentation", href: "/#/docs" },
- { text: "Forms", href: "/#/docs/forms" },
- { text: "Checkboxes", href: "/#/docs/forms/checkboxes" },
+ { text: "Documentation", href: `${BASE_URL}#/docs` },
+ { text: "Forms", href: `${BASE_URL}#/docs/forms` },
+ { text: "Checkboxes", href: `${BASE_URL}#/docs/forms/checkboxes` },
];
const checkboxItemProps = [
diff --git a/src/app-pages/documentation/forms/color-input.jsx b/src/app-pages/documentation/forms/color-input.jsx
index 8c02166..20de896 100644
--- a/src/app-pages/documentation/forms/color-input.jsx
+++ b/src/app-pages/documentation/forms/color-input.jsx
@@ -4,18 +4,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import { useState } from "react";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Color Input",
- href: "/#/docs/forms/color-input",
+ href: `${BASE_URL}#/docs/forms/color-input`,
},
];
diff --git a/src/app-pages/documentation/forms/date-time-inputs.jsx b/src/app-pages/documentation/forms/date-time-inputs.jsx
index 6f5d3de..b7abd7b 100644
--- a/src/app-pages/documentation/forms/date-time-inputs.jsx
+++ b/src/app-pages/documentation/forms/date-time-inputs.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Date/Time Input",
- href: "/#/docs/forms/date-time-inputs",
+ href: `${BASE_URL}#/docs/forms/date-time-inputs`,
},
];
diff --git a/src/app-pages/documentation/forms/dropdown.jsx b/src/app-pages/documentation/forms/dropdown.jsx
index a1cca9a..1f55d76 100644
--- a/src/app-pages/documentation/forms/dropdown.jsx
+++ b/src/app-pages/documentation/forms/dropdown.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Dropdown",
- href: "/#/docs/forms/dropdown",
+ href: `${BASE_URL}#/docs/forms/dropdown`,
},
];
diff --git a/src/app-pages/documentation/forms/fieldset.jsx b/src/app-pages/documentation/forms/fieldset.jsx
index 3434454..345a3fe 100644
--- a/src/app-pages/documentation/forms/fieldset.jsx
+++ b/src/app-pages/documentation/forms/fieldset.jsx
@@ -14,18 +14,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Fieldset",
- href: "/#/docs/forms/fieldset",
+ href: `${BASE_URL}#/docs/forms/fieldset`,
},
];
diff --git a/src/app-pages/documentation/forms/file-input.jsx b/src/app-pages/documentation/forms/file-input.jsx
index c40e46f..9e73a3a 100644
--- a/src/app-pages/documentation/forms/file-input.jsx
+++ b/src/app-pages/documentation/forms/file-input.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "File Input",
- href: "/#/docs/forms/file-input",
+ href: `${BASE_URL}#/docs/forms/file-input`,
},
];
diff --git a/src/app-pages/documentation/forms/index.jsx b/src/app-pages/documentation/forms/index.jsx
index 074851a..aae9092 100644
--- a/src/app-pages/documentation/forms/index.jsx
+++ b/src/app-pages/documentation/forms/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
];
@@ -23,31 +25,46 @@ function Forms() {
Components
diff --git a/src/app-pages/documentation/forms/input.jsx b/src/app-pages/documentation/forms/input.jsx
index aa16a2f..192c2ba 100644
--- a/src/app-pages/documentation/forms/input.jsx
+++ b/src/app-pages/documentation/forms/input.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Input",
- href: "/#/docs/forms/input",
+ href: `${BASE_URL}#/docs/forms/input`,
},
];
diff --git a/src/app-pages/documentation/forms/numeric-inputs.jsx b/src/app-pages/documentation/forms/numeric-inputs.jsx
index db6f5f0..d157eb7 100644
--- a/src/app-pages/documentation/forms/numeric-inputs.jsx
+++ b/src/app-pages/documentation/forms/numeric-inputs.jsx
@@ -4,18 +4,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import { useState } from "react";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Numeric Inputs",
- href: "/#/docs/forms/numeric-input",
+ href: `${BASE_URL}#/docs/forms/numeric-input`,
},
];
diff --git a/src/app-pages/documentation/forms/radio-group.jsx b/src/app-pages/documentation/forms/radio-group.jsx
index 453acf7..4878a2e 100644
--- a/src/app-pages/documentation/forms/radio-group.jsx
+++ b/src/app-pages/documentation/forms/radio-group.jsx
@@ -4,18 +4,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Radio Group",
- href: "/#/docs/forms/RadioGroup",
+ href: `${BASE_URL}#/docs/forms/RadioGroup`,
},
];
diff --git a/src/app-pages/documentation/forms/text-input.jsx b/src/app-pages/documentation/forms/text-input.jsx
index edb73b0..1eac117 100644
--- a/src/app-pages/documentation/forms/text-input.jsx
+++ b/src/app-pages/documentation/forms/text-input.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Text Inputs",
- href: "/#/docs/forms/text-inputs",
+ href: `${BASE_URL}#/docs/forms/text-inputs`,
},
];
diff --git a/src/app-pages/documentation/forms/textarea.jsx b/src/app-pages/documentation/forms/textarea.jsx
index 8ef06be..d82c0f0 100644
--- a/src/app-pages/documentation/forms/textarea.jsx
+++ b/src/app-pages/documentation/forms/textarea.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
},
{
text: "Text Area",
- href: "/#/docs/forms/textarea",
+ href: `${BASE_URL}#/docs/forms/textarea`,
},
];
diff --git a/src/app-pages/documentation/getting-started/adding-tailwind.jsx b/src/app-pages/documentation/getting-started/adding-tailwind.jsx
index 0ab0e5a..14a885f 100644
--- a/src/app-pages/documentation/getting-started/adding-tailwind.jsx
+++ b/src/app-pages/documentation/getting-started/adding-tailwind.jsx
@@ -4,18 +4,20 @@ import { CodeExample } from "../../../app-components/code-example";
import DocsPage from "../_docs-page";
import { TbPlayerTrackNext } from "react-icons/tb";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Getting Started",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs/getting-started`,
},
{
text: "Adding Tailwind CSS",
- href: "/#/docs/adding-tailwind",
+ href: `${BASE_URL}#/docs/adding-tailwind`,
},
];
@@ -146,7 +148,10 @@ export default App;`}
reading to learn more.
-
+
Keep Reading
diff --git a/src/app-pages/documentation/getting-started/client-side-routing.jsx b/src/app-pages/documentation/getting-started/client-side-routing.jsx
index 490f956..2d29f9f 100644
--- a/src/app-pages/documentation/getting-started/client-side-routing.jsx
+++ b/src/app-pages/documentation/getting-started/client-side-routing.jsx
@@ -2,18 +2,20 @@ import { UsaceBox, Code, Text, H3, Badge } from "../../../../lib";
import { CodeExample } from "../../../app-components/code-example";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Getting Started",
- href: "/#/docs",
+ href: `/${BASE_URL}#/docs/getting-started`,
},
{
text: "Client-Side Routing",
- href: "/#/docs/client-side-routing",
+ href: `${BASE_URL}#/docs/client-side-routing`,
},
];
@@ -122,11 +124,14 @@ function ClientSideRouting() {
rest of the guide will assume you have followed these steps. These
steps also assume that you have walked through a project set up
using the{" "}
-
+
quick start guide
{" "}
and{" "}
-
+
adding Tailwind CSS
{" "}
tutorials.
@@ -238,6 +243,8 @@ export default function Home() {
code={`import { UsaceBox } from "@usace/groundwork";
import { useConnect } from "redux-bundler-hook";
+const BASE_URL = import.meta.env.BASE_URL;
+
export default function Location() {
const { routeParams } = useConnect("selectRouteParams");
const location = routeParams?.location?.toUpperCase();
@@ -246,7 +253,7 @@ export default function Location() {
@@ -285,11 +292,16 @@ export default function Location() {
import Home from "../app-pages/home";
import Location from "../app-pages/location";
+const BASE_URL = import.meta.env.BASE_URL;
+
export default createRouteBundle({
- "/": Home,
- "/location/:location": Location,
- "*": Home,
-});`}
+ [\`${BASE_URL}\`]: Home,
+ [\`${BASE_URL}/\`]: Home,
+ [\`${BASE_URL}/location/:location\`]: Location,
+ "*": Home, // Replace with your NotFound.jsx component!
+ {
+ routeInfoSelector: "selectPathname",
+ });`}
>
{" "}
@@ -498,12 +510,12 @@ export default App;`}
code={`import { defineConfig } from 'vite';
export default defineConfig({
- base: '/your-base-path/', // Replace 'your-base-path' with the actual base path i.e. '/myapp/' or '/hec/'
+ base: '/your-base-path', // Replace 'your-base-path' with the actual base path i.e. '/myapp' or '/hec'
plugins: [react()],
});`}
/>
- Replace '/your-base-path/' with the actual base path
+ Replace '/your-base-path' with the actual base path
where your application will be deployed. This ensures that all URLs
in your application are correctly prefixed with the base path.
@@ -513,15 +525,16 @@ export default defineConfig({
to update these paths to include the base path.
- In addition the doUpdateUrlWithBase function can be
- used to update the URL with the base path dynamically.
+ In addition the doUpdateUrl function can be used to
+ update the URL. Just take care to also prepend the{" "}
+ BASE_URL constant to any paths you provide.
For situations where you require setting the base path such as in
img tags or anchor tags, you can use the:{" "}
- const base = import.meta.env.BASE_URL{" "}
+ const BASE_URL = import.meta.env.BASE_URL{" "}
Environment variable to get the base URL of your application. This
@@ -530,38 +543,37 @@ export default defineConfig({
+
)
}`}
/>
Updating the URL dynamically
- The doUpdateUrlWithBase function is a utility function
- that allows you to update the URL in the browser without causing a
- full page refresh. This is useful when you want to update the URL
- based on user interaction, such as clicking on a link or submitting
- a form. This is more efficient than using an anchor tag with an href
+ The doUpdateUrl function is a utility function that
+ allows you to update the URL in the browser without causing a full
+ page refresh. This is useful when you want to update the URL based
+ on user interaction, such as clicking on a link or submitting a
+ form. This is more efficient than using an anchor tag with an href
attribute, as it allows you to update the URL without causing a full
page refresh.
- Inside your component, you can call the{" "}
- doUpdateUrlWithBase function with the new URL you want
- to navigate to. Be sure to also import the{" "}
- doUpdateUrlWithBase function from the{" "}
+ Inside your component, you can call the doUpdateUrl{" "}
+ function with the new URL you want to navigate to. Be sure to also
+ import the doUpdateUrl function from the{" "}
redux-bundler package.
./src/app-pages/mypath/tab-example.jsx
{
- doUpdateUrlWithBase(\`\${base}mypath/\${tab.name?.toLowerCase()}\`);
+ doUpdateUrl(\`\${BASE_URL}/mypath/\${tab.name?.toLowerCase()}\`);
}
}))
diff --git a/src/app-pages/documentation/getting-started/package-maintenance.jsx b/src/app-pages/documentation/getting-started/package-maintenance.jsx
index 7dd8a21..d21902d 100644
--- a/src/app-pages/documentation/getting-started/package-maintenance.jsx
+++ b/src/app-pages/documentation/getting-started/package-maintenance.jsx
@@ -3,18 +3,20 @@ import { UsaceBox, Code, Text, H3 } from "../../../../lib";
import { CodeExample } from "../../../app-components/code-example";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Getting Started",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs/getting-started`,
},
{
text: "Package Maintenance",
- href: "/#/docs/package-maintenance",
+ href: `${BASE_URL}#/docs/package-maintenance`,
},
];
diff --git a/src/app-pages/documentation/getting-started/quick-start-guide.jsx b/src/app-pages/documentation/getting-started/quick-start-guide.jsx
index 837f950..ea3c3d9 100644
--- a/src/app-pages/documentation/getting-started/quick-start-guide.jsx
+++ b/src/app-pages/documentation/getting-started/quick-start-guide.jsx
@@ -4,18 +4,20 @@ import { CodeExample } from "../../../app-components/code-example";
import DocsPage from "../_docs-page";
import { TbPlayerTrackNext } from "react-icons/tb";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Getting Started",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs/getting-started`,
},
{
text: "Quick Start Guide",
- href: "/#/docs/quick-start",
+ href: `${BASE_URL}#/docs/quick-start`,
},
];
@@ -188,7 +190,10 @@ export default App;`}
Groundwork uses under the hood.
-
+
Keep Reading
diff --git a/src/app-pages/documentation/index.jsx b/src/app-pages/documentation/index.jsx
index 9e918f1..aefd3b1 100644
--- a/src/app-pages/documentation/index.jsx
+++ b/src/app-pages/documentation/index.jsx
@@ -2,10 +2,12 @@ import { UsaceBox, Text, Code, H4 } from "../../../lib";
import CopyButton from "../../app-components/copy-button";
import DocsPage from "./_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
];
@@ -30,7 +32,7 @@ function Docs() {
Vite documentation
{" "}
for more details on getting started or visit the{" "}
-
+
quick start guide
{" "}
for a step by step guide for getting set up using Vite with
diff --git a/src/app-pages/documentation/layout/container.jsx b/src/app-pages/documentation/layout/container.jsx
index 75eba47..02f23a6 100644
--- a/src/app-pages/documentation/layout/container.jsx
+++ b/src/app-pages/documentation/layout/container.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Layout",
- href: "/#/docs/layout",
+ href: `${BASE_URL}#/docs/layout`,
},
{
text: "Container",
- href: "/#/docs/layout/container",
+ href: `${BASE_URL}#/docs/layout/container`,
},
];
diff --git a/src/app-pages/documentation/layout/index.jsx b/src/app-pages/documentation/layout/index.jsx
index d87b9bd..910bcc6 100644
--- a/src/app-pages/documentation/layout/index.jsx
+++ b/src/app-pages/documentation/layout/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Layout",
- href: "/#/docs/layout",
+ href: `${BASE_URL}#/docs/layout`,
},
];
@@ -28,10 +30,16 @@ function Layout() {
Components
-
+
Container - a simple wrapper to manage margins.
-
+
USACE Box - A container with a header and the red and gray
flourish on top.
diff --git a/src/app-pages/documentation/layout/usace-box.jsx b/src/app-pages/documentation/layout/usace-box.jsx
index aa92547..d089141 100644
--- a/src/app-pages/documentation/layout/usace-box.jsx
+++ b/src/app-pages/documentation/layout/usace-box.jsx
@@ -3,18 +3,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Layout",
- href: "/#/docs/layout",
+ href: `${BASE_URL}#/docs/layout`,
},
{
text: "USACE Box",
- href: "/#/docs/layout/usace-box",
+ href: `${BASE_URL}#/docs/layout/usace-box`,
},
];
diff --git a/src/app-pages/documentation/navigation/breadcrumbs.jsx b/src/app-pages/documentation/navigation/breadcrumbs.jsx
index a9cb074..eb57610 100644
--- a/src/app-pages/documentation/navigation/breadcrumbs.jsx
+++ b/src/app-pages/documentation/navigation/breadcrumbs.jsx
@@ -11,6 +11,8 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const breadcrumbsPropsData = [
{
name: "className",
@@ -39,20 +41,26 @@ const breadcrumbItemPropsData = [
default: "''",
desc: "The text of the breadcrumb item.",
},
+ {
+ name: "baseUrl",
+ type: "string",
+ default: "''",
+ desc: "The base URL for the breadcrumb item.",
+ },
];
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
},
{
text: "Breadcrumbs",
- href: "/#/docs/navigation/breadcrumbs",
+ href: `${BASE_URL}#/docs/navigation/breadcrumbs`,
},
];
@@ -77,21 +85,26 @@ function Breadcrumbs() {
Basic Usage
-
-
-
+
+
+
-
-
-
+ code={`
+const BASE_URL = import.meta.env.BASE_URL;
+
+
+
+
`}
/>
diff --git a/src/app-pages/documentation/navigation/index.jsx b/src/app-pages/documentation/navigation/index.jsx
index b44d0dc..0bd17d8 100644
--- a/src/app-pages/documentation/navigation/index.jsx
+++ b/src/app-pages/documentation/navigation/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
},
];
@@ -25,12 +27,12 @@ function Navigation() {
Components
-
+
Breadcrumbs - Keep track of where you are in the site
-
+
Tabs - Display multiple sub-pages on the same page
diff --git a/src/app-pages/documentation/navigation/link-provider.jsx b/src/app-pages/documentation/navigation/link-provider.jsx
index 28c5e9c..fb29a34 100644
--- a/src/app-pages/documentation/navigation/link-provider.jsx
+++ b/src/app-pages/documentation/navigation/link-provider.jsx
@@ -4,18 +4,20 @@ import { CodeExample } from "../../../app-components/code-example";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
},
{
text: "Link Provider",
- href: "/#/docs/navigation/link-provider",
+ href: `${BASE_URL}#/docs/navigation/link-provider`,
},
];
const componentProps = [
diff --git a/src/app-pages/documentation/navigation/sidebar.jsx b/src/app-pages/documentation/navigation/sidebar.jsx
index 8fc7303..0fdaf34 100644
--- a/src/app-pages/documentation/navigation/sidebar.jsx
+++ b/src/app-pages/documentation/navigation/sidebar.jsx
@@ -6,18 +6,20 @@ import DocsPage from "../_docs-page";
import examplePopoutLinks from "../../../example-popout-links";
import exampleRegularLinks from "../../../example-regular-links";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
},
{
text: "Sidebar",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
];
const componentProps = [
diff --git a/src/app-pages/documentation/navigation/tabs.jsx b/src/app-pages/documentation/navigation/tabs.jsx
index 9ed582b..de3b280 100644
--- a/src/app-pages/documentation/navigation/tabs.jsx
+++ b/src/app-pages/documentation/navigation/tabs.jsx
@@ -4,18 +4,20 @@ import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
import { VscCloudDownload, VscMail, VscSettingsGear } from "react-icons/vsc";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
},
{
text: "Tabs",
- href: "/#/docs/navigation/tabs",
+ href: `${BASE_URL}#/docs/navigation/tabs`,
},
];
diff --git a/src/app-pages/documentation/types/index.jsx b/src/app-pages/documentation/types/index.jsx
index 0f7c87e..1a83339 100644
--- a/src/app-pages/documentation/types/index.jsx
+++ b/src/app-pages/documentation/types/index.jsx
@@ -1,14 +1,16 @@
import { UsaceBox, H4, Text } from "../../../../lib";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Types",
- href: "/#/docs/types",
+ href: `${BASE_URL}#/docs/types`,
},
];
@@ -24,10 +26,16 @@ function Types() {
Components
diff --git a/src/app-pages/documentation/types/link.jsx b/src/app-pages/documentation/types/link.jsx
index 6bebae7..0721a48 100644
--- a/src/app-pages/documentation/types/link.jsx
+++ b/src/app-pages/documentation/types/link.jsx
@@ -2,6 +2,8 @@ import { UsaceBox, Text, Code } from "../../../../lib";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const linkProps = [
{
name: "id",
@@ -32,15 +34,15 @@ const linkProps = [
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Types",
- href: "/#/docs/types",
+ href: `${BASE_URL}#/docs/types`,
},
{
text: "Link",
- href: "/#/docs/types/link",
+ href: `${BASE_URL}#/docs/types/link`,
},
];
diff --git a/src/app-pages/documentation/types/tab.jsx b/src/app-pages/documentation/types/tab.jsx
index 9a25fb7..c7130f9 100644
--- a/src/app-pages/documentation/types/tab.jsx
+++ b/src/app-pages/documentation/types/tab.jsx
@@ -2,6 +2,8 @@ import { UsaceBox, Text, Code } from "../../../../lib";
import PropsTable from "../../../app-components/props-table";
import DocsPage from "../_docs-page";
+const BASE_URL = import.meta.env.BASE_URL;
+
const tabProps = [
{
name: "name",
@@ -44,15 +46,15 @@ const tabProps = [
const pageBreadcrumbs = [
{
text: "Documentation",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
},
{
text: "Types",
- href: "/#/docs/types",
+ href: `${BASE_URL}#/docs/types`,
},
{
text: "Tab",
- href: "/#/docs/types/tab",
+ href: `${BASE_URL}#/docs/types/tab`,
},
];
diff --git a/src/app-pages/home.jsx b/src/app-pages/home.jsx
index 80fad75..34646a9 100644
--- a/src/app-pages/home.jsx
+++ b/src/app-pages/home.jsx
@@ -1,15 +1,15 @@
import { Container, Text, Code, UsaceBox, TextLink, Hero } from "../../lib";
import CopyButton from "../app-components/copy-button";
-const base = import.meta.env.BASE_URL;
+const BASE_URL = import.meta.env.BASE_URL;
function Home() {
return (
<>
-
+
Check out the docs
diff --git a/src/app-pages/logout.jsx b/src/app-pages/logout.jsx
index 83e30c4..fecb9fe 100644
--- a/src/app-pages/logout.jsx
+++ b/src/app-pages/logout.jsx
@@ -1,11 +1,13 @@
import { useEffect } from "react";
import { useConnect } from "redux-bundler-hook";
+const BASE_URL = import.meta.env.BASE_URL;
+
function Logout() {
const { doUpdateUrl } = useConnect("doUpdateUrl");
useEffect(() => {
- doUpdateUrl("/");
+ doUpdateUrl(`${BASE_URL}#/`);
}, [doUpdateUrl]);
return Logging out
;
diff --git a/src/example-popout-links.js b/src/example-popout-links.js
index fa709e9..3fc9530 100644
--- a/src/example-popout-links.js
+++ b/src/example-popout-links.js
@@ -1,28 +1,30 @@
+const BASE_URL = import.meta.env.BASE_URL;
+
export default [
{
id: "l0",
text: "Link 0",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "l1",
text: "Link 1",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "l2",
text: "Link 2",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
children: [
{
id: "l3",
text: "Child Link 3",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
children: [
{
id: "l4",
text: "Child Link 4",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "l5",
diff --git a/src/example-regular-links.js b/src/example-regular-links.js
index 94490cd..0010d30 100644
--- a/src/example-regular-links.js
+++ b/src/example-regular-links.js
@@ -1,28 +1,30 @@
+const BASE_URL = import.meta.env.BASE_URL;
+
export default [
{
id: "rl0",
text: "Link 0",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "rl1",
text: "Link 1",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "rl2",
text: "Link 2",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
children: [
{
id: "rl3",
text: "Child Link 3",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
children: [
{
id: "rl4",
text: "Child Link 4",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
{
id: "rl5",
diff --git a/src/nav-links.js b/src/nav-links.js
index b9163bd..bb55f51 100644
--- a/src/nav-links.js
+++ b/src/nav-links.js
@@ -1,257 +1,259 @@
+const BASE_URL = import.meta.env.BASE_URL;
+
export default [
{
id: "getting-started",
text: "Getting Started",
- href: "/#/docs",
+ href: `${BASE_URL}#/docs`,
children: [
{
id: "quick-start",
text: "Quick Start Guide",
- href: "/#/docs/quick-start",
+ href: `${BASE_URL}#/docs/quick-start`,
},
{
id: "adding-tailwind",
text: "Adding Tailwind CSS",
- href: "/#/docs/adding-tailwind",
+ href: `${BASE_URL}#/docs/adding-tailwind`,
},
{
id: "client-side-routing",
text: "Client-Side Routing",
- href: "/#/docs/client-side-routing",
+ href: `${BASE_URL}#/docs/client-side-routing`,
},
{
id: "package-maintenance",
text: "Package Maintenance",
- href: "/#/docs/package-maintenance",
+ href: `${BASE_URL}#/docs/package-maintenance`,
},
],
},
{
id: "app-shell",
text: "Application Shell",
- href: "/#/docs/app-shell",
+ href: `${BASE_URL}#/docs/app-shell`,
children: [
{
id: "site-wrapper",
text: "Site Wrapper",
- href: "/#/docs/app-shell/site-wrapper",
+ href: `${BASE_URL}#/docs/app-shell/site-wrapper`,
},
{
id: "search",
text: "Search",
- href: "/#/docs/app-shell/search",
+ href: `${BASE_URL}#/docs/app-shell/search`,
},
],
},
{
id: "layout",
text: "Layout",
- href: "/#/docs/layout",
+ href: `${BASE_URL}#/docs/layout`,
children: [
{
id: "container",
text: "Container",
- href: "/#/docs/layout/container",
+ href: `${BASE_URL}#/docs/layout/container`,
},
{
id: "usace-box",
text: "UsaceBox",
- href: "/#/docs/layout/usace-box",
+ href: `${BASE_URL}#/docs/layout/usace-box`,
},
],
},
{
id: "navigation",
text: "Navigation",
- href: "/#/docs/navigation",
+ href: `${BASE_URL}#/docs/navigation`,
children: [
{
id: "breadcrumbs",
text: "Breadcrumbs",
- href: "/#/docs/navigation/breadcrumbs",
+ href: `${BASE_URL}#/docs/navigation/breadcrumbs`,
},
{
id: "link-provider",
text: "Link Provider",
- href: "/#/docs/navigation/link-provider",
+ href: `${BASE_URL}#/docs/navigation/link-provider`,
},
{
id: "tabs",
text: "Tabs",
- href: "/#/docs/navigation/tabs",
+ href: `${BASE_URL}#/docs/navigation/tabs`,
},
{
id: "sidebar",
text: "Sidebar",
- href: "/#/docs/navigation/sidebar",
+ href: `${BASE_URL}#/docs/navigation/sidebar`,
},
],
},
{
id: "buttons",
text: "Buttons",
- href: "/#/docs/buttons",
+ href: `${BASE_URL}#/docs/buttons`,
children: [
{
id: "generic-buttons",
text: "Generic Buttons",
- href: "/#/docs/buttons/generic-buttons",
+ href: `${BASE_URL}#/docs/buttons/generic-buttons`,
},
{
id: "ok-cancel",
text: "Ok/Cancel",
- href: "/#/docs/buttons/ok-cancel",
+ href: `${BASE_URL}#/docs/buttons/ok-cancel`,
},
{
id: "delete-confirm",
text: "Delete/Confirm",
- href: "/#/docs/buttons/delete-confirm",
+ href: `${BASE_URL}#/docs/buttons/delete-confirm`,
},
{
id: "login-button",
text: "Login Button",
- href: "/#/docs/buttons/login-button",
+ href: `${BASE_URL}#/docs/buttons/login-button`,
},
{
id: "popout-menu",
text: "Popout Menu",
- href: "/#/docs/buttons/popout-menu",
+ href: `${BASE_URL}#/docs/buttons/popout-menu`,
},
],
},
{
id: "display",
text: "Display",
- href: "/#/docs/display",
+ href: `${BASE_URL}#/docs/display`,
children: [
{
id: "badge",
text: "Badge",
- href: "/#/docs/display/badge",
+ href: `${BASE_URL}#/docs/display/badge`,
},
{
id: "divider",
text: "Divider",
- href: "/#/docs/display/divider",
+ href: `${BASE_URL}#/docs/display/divider`,
},
{
id: "headings",
text: "Headings",
- href: "/#/docs/display/headings",
+ href: `${BASE_URL}#/docs/display/headings`,
},
{
id: "hero",
text: "Hero",
- href: "/#/docs/display/hero",
+ href: `${BASE_URL}#/docs/display/hero`,
},
{
id: "skeleton",
text: "Skeleton",
- href: "/#/docs/display/skeleton",
+ href: `${BASE_URL}#/docs/display/skeleton`,
},
{
id: "text",
text: "Text",
- href: "/#/docs/display/text",
+ href: `${BASE_URL}#/docs/display/text`,
},
{
id: "table",
text: "Table",
- href: "/#/docs/display/table",
+ href: `${BASE_URL}#/docs/display/table`,
},
{
id: "modal",
text: "Modal",
- href: "/#/docs/display/modal",
+ href: `${BASE_URL}#/docs/display/modal`,
},
{
id: "accordion",
text: "Accordion",
- href: "/#/docs/display/accordion",
+ href: `${BASE_URL}#/docs/display/accordion`,
},
{
id: "card",
text: "Card",
- href: "/#/docs/display/card",
+ href: `${BASE_URL}#/docs/display/card`,
},
{
id: "progress-bar",
text: "Progress Bar",
- href: "/#/docs/display/progress-bar",
+ href: `${BASE_URL}#/docs/display/progress-bar`,
},
],
},
{
id: "forms",
text: "Forms",
- href: "/#/docs/forms",
+ href: `${BASE_URL}#/docs/forms`,
children: [
{
id: "checkboxes",
text: "Checkboxes",
- href: "/#/docs/forms/checkboxes",
+ href: `${BASE_URL}#/docs/forms/checkboxes`,
},
{
id: "forms-dropdown",
text: "Dropdown",
- href: "/#/docs/forms/dropdown",
+ href: `${BASE_URL}#/docs/forms/dropdown`,
},
{
id: "fieldset",
text: "Fieldset",
- href: "/#/docs/forms/fieldset",
+ href: `${BASE_URL}#/docs/forms/fieldset`,
},
{
id: "text-inputs",
text: "Text Inputs",
- href: "/#/docs/forms/text-inputs",
+ href: `${BASE_URL}#/docs/forms/text-inputs`,
},
{
id: "textarea",
text: "Text Area",
- href: "/#/docs/forms/textarea",
+ href: `${BASE_URL}#/docs/forms/textarea`,
},
{
id: "numeric-inputs",
text: "Numeric Inputs",
- href: "/#/docs/forms/numeric-inputs",
+ href: `${BASE_URL}#/docs/forms/numeric-inputs`,
},
{
id: "color-input",
text: "Color Input",
- href: "/#/docs/forms/color-input",
+ href: `${BASE_URL}#/docs/forms/color-input`,
},
{
id: "date-time-inputs",
text: "Date/Time Inputs",
- href: "/#/docs/forms/date-time-inputs",
+ href: `${BASE_URL}#/docs/forms/date-time-inputs`,
},
{
id: "file-input",
text: "File Input",
- href: "/#/docs/forms/file-input",
+ href: `${BASE_URL}#/docs/forms/file-input`,
},
{
id: "radio-group",
text: "Radio Group",
- href: "/#/docs/forms/radio-group",
+ href: `${BASE_URL}#/docs/forms/radio-group`,
},
],
},
{
id: "types",
text: "Types",
- href: "/#/docs/types",
+ href: `${BASE_URL}#/docs/types`,
children: [
{
id: "link",
text: "Link",
- href: "/#/docs/types/link",
+ href: `${BASE_URL}#/docs/types/link`,
},
{
id: "tab",
text: "Tab",
- href: "/#/docs/types/tab",
+ href: `${BASE_URL}#/docs/types/tab`,
},
],
},