From 635954f81d4956beca94663d372bbc91eb5a35a4 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Wed, 21 Aug 2024 14:28:31 +0200 Subject: [PATCH] move ui and api to seperate packages and add npm actions for them --- .github/workflows/npm-publish-api.yml | 21 + .github/workflows/npm-publish-ui.yml | 21 + .gitignore | 3 +- docker-compose.yml | 2 +- e2e/project-members.spec.ts | 4 +- e2e/projects.spec.ts | 4 +- e2e/timetracker.spec.ts | 2 + package-lock.json | 474 +++--- package.json | 2 +- .../Common/Client/ClientCreateModal.vue | 10 +- .../Common/Client/ClientEditModal.vue | 10 +- .../Client/ClientMoreOptionsDropdown.vue | 4 +- .../Client/ClientMultiselectDropdown.vue | 2 +- .../Components/Common/Client/ClientTable.vue | 6 +- .../Common/Client/ClientTableRow.vue | 2 +- .../InvitationMoreOptionsDropdown.vue | 2 +- .../Common/Invitation/InvitationTableRow.vue | 4 +- .../Common/Member/MemberBillableRateModal.vue | 10 +- .../Common/Member/MemberBillableSelect.vue | 4 +- .../Common/Member/MemberCombobox.vue | 8 +- .../Common/Member/MemberEditModal.vue | 14 +- .../Common/Member/MemberInviteModal.vue | 16 +- .../Member/MemberMoreOptionsDropdown.vue | 4 +- .../Member/MemberMultiselectDropdown.vue | 2 +- .../MemberOwnershipTransferConfirmModal.vue | 6 +- .../Common/Member/MemberRoleSelect.vue | 4 +- .../Common/Member/MemberTableRow.vue | 16 +- .../Components/Common/MultiselectDropdown.vue | 2 +- .../OrganizationBillableRateModal.vue | 12 +- .../Common/Project/ProjectDropdown.vue | 12 +- .../Common/Project/ProjectEditModal.vue | 29 +- .../Project/ProjectMoreOptionsDropdown.vue | 4 +- .../Project/ProjectMultiselectDropdown.vue | 2 +- .../Common/Project/ProjectTable.vue | 8 +- .../Common/Project/ProjectTableRow.vue | 10 +- .../ProjectMemberBillableRateModal.vue | 10 +- .../ProjectMemberCreateModal.vue | 15 +- .../ProjectMember/ProjectMemberEditModal.vue | 17 +- .../ProjectMemberMoreOptionsDropdown.vue | 4 +- .../ProjectMember/ProjectMemberTable.vue | 4 +- .../ProjectMember/ProjectMemberTableRow.vue | 10 +- .../Common/Reporting/ReportingChart.vue | 4 +- .../Common/Reporting/ReportingFilterBadge.vue | 2 +- .../Reporting/ReportingGroupBySelect.vue | 4 +- .../Common/Reporting/ReportingPieChart.vue | 6 +- .../Common/Reporting/ReportingRow.vue | 9 +- .../Common/Tag/TagMoreOptionsDropdown.vue | 4 +- .../js/Components/Common/Tag/TagTable.vue | 6 +- .../js/Components/Common/Tag/TagTableRow.vue | 2 +- .../Common/Task/TaskCreateModal.vue | 8 +- .../Components/Common/Task/TaskEditModal.vue | 10 +- .../Common/Task/TaskMoreOptionsDropdown.vue | 4 +- .../Common/Task/TaskMultiselectDropdown.vue | 2 +- .../js/Components/Common/Task/TaskTable.vue | 4 +- .../Components/Common/Task/TaskTableRow.vue | 2 +- .../Common/TimeEntry/TimeEntryCreateModal.vue | 29 +- resources/js/Components/ConfirmationModal.vue | 2 +- resources/js/Components/ConfirmsPassword.vue | 10 +- .../js/Components/CurrentSidebarTimer.vue | 4 +- .../Dashboard/ActivityGraphCard.vue | 2 +- .../js/Components/Dashboard/DashboardCard.vue | 2 +- .../Dashboard/DayOverviewCardEntry.vue | 2 +- .../Dashboard/ProjectsChartCard.vue | 2 +- .../Dashboard/RecentlyTrackedTasksCard.vue | 2 +- .../RecentlyTrackedTasksCardEntry.vue | 4 +- .../Components/Dashboard/TeamActivityCard.vue | 2 +- .../Components/Dashboard/ThisWeekOverview.vue | 14 +- .../js/Components/OrganizationSwitcher.vue | 2 +- resources/js/Components/TimeTracker.vue | 14 +- resources/js/Components/UserSettingsIcon.vue | 2 +- resources/js/Layouts/AppLayout.vue | 2 +- .../js/Pages/API/Partials/ApiTokenManager.vue | 16 +- resources/js/Pages/Auth/ConfirmPassword.vue | 8 +- resources/js/Pages/Auth/ForgotPassword.vue | 8 +- resources/js/Pages/Auth/Login.vue | 8 +- resources/js/Pages/Auth/Register.vue | 10 +- resources/js/Pages/Auth/ResetPassword.vue | 8 +- .../js/Pages/Auth/TwoFactorChallenge.vue | 8 +- resources/js/Pages/Auth/VerifyEmail.vue | 2 +- resources/js/Pages/Clients.vue | 2 +- resources/js/Pages/Members.vue | 2 +- .../Pages/Profile/Partials/DeleteUserForm.vue | 10 +- .../LogoutOtherBrowserSessionsForm.vue | 10 +- .../Partials/TwoFactorAuthenticationForm.vue | 12 +- .../Profile/Partials/UpdatePasswordForm.vue | 8 +- .../Partials/UpdateProfileInformationForm.vue | 10 +- resources/js/Pages/ProjectShow.vue | 4 +- resources/js/Pages/Projects.vue | 8 +- resources/js/Pages/Reporting.vue | 18 +- resources/js/Pages/Tags.vue | 4 +- .../Pages/Teams/Partials/CreateTeamForm.vue | 8 +- .../Pages/Teams/Partials/DeleteTeamForm.vue | 4 +- .../js/Pages/Teams/Partials/ImportData.vue | 12 +- .../Partials/OrganizationBillableRate.vue | 10 +- .../Teams/Partials/TeamMemberManager.vue | 14 +- .../Teams/Partials/UpdateTeamNameForm.vue | 8 +- resources/js/Pages/Time.vue | 12 +- resources/js/packages/api/.gitignore | 5 + resources/js/packages/api/package-lock.json | 171 +++ resources/js/packages/api/package.json | 31 + .../api.ts => packages/api/src/index.ts} | 16 +- .../packages/api/src/openapi.json.client.ts | 0 resources/js/packages/api/tsconfig.json | 27 + resources/js/packages/ui/.gitignore | 5 + resources/js/packages/ui/package-lock.json | 1365 +++++++++++++++++ resources/js/packages/ui/package.json | 46 + .../Common => packages/ui/src}/Badge.vue | 0 .../ui/src}/BillableRateModal.vue | 6 +- .../ui/src/Buttons}/DangerButton.vue | 0 .../ui/src/Buttons}/PrimaryButton.vue | 2 +- .../ui/src/Buttons}/SecondaryButton.vue | 0 .../Common => packages/ui/src}/CardTitle.vue | 0 .../ui/src}/Client/ClientDropdown.vue | 6 +- .../ui/src}/Client/ClientDropdownItem.vue | 0 .../ui/src}/DaySectionHeader.vue | 5 +- .../ui/src}/DialogModal.vue | 0 .../ui/src}/GroupedItemsCountButton.vue | 0 .../ui/src}/Icons/BillableIcon.vue | 0 .../ui/src/Input}/BillableRateInput.vue | 16 +- .../ui/src/Input}/BillableToggleButton.vue | 2 +- .../ui/src/Input}/Checkbox.vue | 0 .../ui/src/Input}/DatePicker.vue | 5 +- .../ui/src/Input}/DateRangePicker.vue | 6 +- .../ui/src/Input}/Dropdown.vue | 0 .../ui/src/Input}/InputError.vue | 0 .../ui/src/Input}/InputLabel.vue | 0 .../ui/src/Input}/SelectDropdown.vue | 4 +- .../ui/src/Input}/SelectDropdownItem.vue | 0 .../ui/src/Input}/TextInput.vue | 0 .../ui/src/Input}/TimePicker.vue | 5 +- .../ui/src/Input}/TimeRangeSelector.vue | 9 +- .../ui/src}/LoadingSpinner.vue | 0 .../{Components => packages/ui/src}/Modal.vue | 0 .../ui/src}/MoreOptionsDropdown.vue | 2 +- .../ui/src}/Project/ProjectBadge.vue | 2 +- .../src}/Project/ProjectBillableRateModal.vue | 7 +- .../ui/src}/Project/ProjectBillableSelect.vue | 4 +- .../ui/src}/Project/ProjectColorSelector.vue | 4 +- .../ui/src}/Project/ProjectCreateModal.vue | 30 +- .../ui/src}/Project/ProjectDropdownItem.vue | 0 .../Project/ProjectEditBillableSection.vue | 11 +- .../ui/src}/Tag/TagBadge.vue | 2 +- .../ui/src}/Tag/TagCreateModal.vue | 10 +- .../ui/src}/Tag/TagDropdown.vue | 6 +- .../src}/TimeEntry/TimeEntryAggregateRow.vue | 25 +- .../TimeEntry/TimeEntryDescriptionInput.vue | 0 .../src}/TimeEntry/TimeEntryGroupedTable.vue | 16 +- .../TimeEntryMoreOptionsDropdown.vue | 2 +- .../src}/TimeEntry/TimeEntryRangeSelector.vue | 9 +- .../ui/src}/TimeEntry/TimeEntryRow.vue | 20 +- .../TimeEntry/TimeEntryRowDurationInput.vue | 5 +- .../ui/src}/TimeEntry/TimeEntryRowHeading.vue | 2 +- .../TimeEntry/TimeEntryRowTagDropdown.vue | 8 +- .../src}/TimeTracker/TimeTrackerControls.vue | 15 +- .../TimeTrackerProjectTaskDropdown.vue | 14 +- .../TimeTracker/TimeTrackerRangeSelector.vue | 8 +- ...rRunningInDifferentOrganizationOverlay.vue | 2 +- .../TimeTracker/TimeTrackerTagDropdown.vue | 4 +- .../ui/src}/TimeTrackerStartStop.vue | 0 resources/js/packages/ui/src/index.ts | 68 + .../js/{ => packages/ui/src}/utils/color.ts | 2 +- resources/js/packages/ui/src/utils/money.ts | 22 + .../js/{ => packages/ui/src}/utils/random.ts | 0 .../js/{ => packages/ui/src}/utils/time.ts | 0 resources/js/packages/ui/tsconfig.json | 31 + resources/js/packages/ui/vite.config.js | 34 + resources/js/types/dom.d.ts | 1 + resources/js/types/models.d.ts | 88 ++ resources/js/types/time-entries.d.ts | 2 +- resources/js/utils/money.ts | 26 - resources/js/utils/notification.ts | 2 +- resources/js/utils/session.ts | 15 + resources/js/utils/useClients.ts | 4 +- resources/js/utils/useCurrentTimeEntry.ts | 4 +- resources/js/utils/useInvitations.ts | 4 +- resources/js/utils/useMembers.ts | 4 +- resources/js/utils/useOrganization.ts | 4 +- resources/js/utils/useProjectMembers.ts | 4 +- resources/js/utils/useProjects.ts | 4 +- resources/js/utils/useReporting.ts | 6 +- resources/js/utils/useTags.ts | 4 +- resources/js/utils/useTasks.ts | 4 +- resources/js/utils/useTimeEntries.ts | 6 +- .../views/vendor/passport/authorize.blade.php | 4 +- tsconfig.json | 2 +- 185 files changed, 2755 insertions(+), 712 deletions(-) create mode 100644 .github/workflows/npm-publish-api.yml create mode 100644 .github/workflows/npm-publish-ui.yml create mode 100644 resources/js/packages/api/.gitignore create mode 100644 resources/js/packages/api/package-lock.json create mode 100644 resources/js/packages/api/package.json rename resources/js/{utils/api.ts => packages/api/src/index.ts} (90%) rename openapi.json.client.ts => resources/js/packages/api/src/openapi.json.client.ts (100%) create mode 100644 resources/js/packages/api/tsconfig.json create mode 100644 resources/js/packages/ui/.gitignore create mode 100644 resources/js/packages/ui/package-lock.json create mode 100644 resources/js/packages/ui/package.json rename resources/js/{Components/Common => packages/ui/src}/Badge.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/BillableRateModal.vue (91%) rename resources/js/{Components => packages/ui/src/Buttons}/DangerButton.vue (100%) rename resources/js/{Components => packages/ui/src/Buttons}/PrimaryButton.vue (92%) rename resources/js/{Components => packages/ui/src/Buttons}/SecondaryButton.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/CardTitle.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/Client/ClientDropdown.vue (96%) rename resources/js/{Components/Common => packages/ui/src}/Client/ClientDropdownItem.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/DaySectionHeader.vue (93%) rename resources/js/{Components => packages/ui/src}/DialogModal.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/GroupedItemsCountButton.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/Icons/BillableIcon.vue (100%) rename resources/js/{Components/Common => packages/ui/src/Input}/BillableRateInput.vue (86%) rename resources/js/{Components/Common => packages/ui/src/Input}/BillableToggleButton.vue (95%) rename resources/js/{Components => packages/ui/src/Input}/Checkbox.vue (100%) rename resources/js/{Components/Common => packages/ui/src/Input}/DatePicker.vue (95%) rename resources/js/{Components/Common => packages/ui/src/Input}/DateRangePicker.vue (88%) rename resources/js/{Components => packages/ui/src/Input}/Dropdown.vue (100%) rename resources/js/{Components => packages/ui/src/Input}/InputError.vue (100%) rename resources/js/{Components => packages/ui/src/Input}/InputLabel.vue (100%) rename resources/js/{Components/Common => packages/ui/src/Input}/SelectDropdown.vue (96%) rename resources/js/{Components/Common => packages/ui/src/Input}/SelectDropdownItem.vue (100%) rename resources/js/{Components => packages/ui/src/Input}/TextInput.vue (100%) rename resources/js/{Components/Common => packages/ui/src/Input}/TimePicker.vue (97%) rename resources/js/{Components/Common => packages/ui/src/Input}/TimeRangeSelector.vue (92%) rename resources/js/{Components => packages/ui/src}/LoadingSpinner.vue (100%) rename resources/js/{Components => packages/ui/src}/Modal.vue (100%) rename resources/js/{Components => packages/ui/src}/MoreOptionsDropdown.vue (95%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectBadge.vue (95%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectBillableRateModal.vue (82%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectBillableSelect.vue (91%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectColorSelector.vue (91%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectCreateModal.vue (82%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectDropdownItem.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/Project/ProjectEditBillableSection.vue (88%) rename resources/js/{Components/Common => packages/ui/src}/Tag/TagBadge.vue (94%) rename resources/js/{Components/Common => packages/ui/src}/Tag/TagCreateModal.vue (84%) rename resources/js/{Components/Common => packages/ui/src}/Tag/TagDropdown.vue (97%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryAggregateRow.vue (86%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryDescriptionInput.vue (100%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryGroupedTable.vue (91%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryMoreOptionsDropdown.vue (90%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryRangeSelector.vue (78%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryRow.vue (84%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryRowDurationInput.vue (94%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryRowHeading.vue (84%) rename resources/js/{Components/Common => packages/ui/src}/TimeEntry/TimeEntryRowTagDropdown.vue (80%) rename resources/js/{Components/Common => packages/ui/src}/TimeTracker/TimeTrackerControls.vue (89%) rename resources/js/{Components/Common => packages/ui/src}/TimeTracker/TimeTrackerProjectTaskDropdown.vue (97%) rename resources/js/{Components/Common => packages/ui/src}/TimeTracker/TimeTrackerRangeSelector.vue (94%) rename resources/js/{Components/Common => packages/ui/src}/TimeTracker/TimeTrackerRunningInDifferentOrganizationOverlay.vue (90%) rename resources/js/{Components/Common => packages/ui/src}/TimeTracker/TimeTrackerTagDropdown.vue (93%) rename resources/js/{Components/Common => packages/ui/src}/TimeTrackerStartStop.vue (100%) create mode 100644 resources/js/packages/ui/src/index.ts rename resources/js/{ => packages/ui/src}/utils/color.ts (91%) create mode 100644 resources/js/packages/ui/src/utils/money.ts rename resources/js/{ => packages/ui/src}/utils/random.ts (100%) rename resources/js/{ => packages/ui/src}/utils/time.ts (100%) create mode 100644 resources/js/packages/ui/tsconfig.json create mode 100644 resources/js/packages/ui/vite.config.js create mode 100644 resources/js/types/dom.d.ts create mode 100644 resources/js/types/models.d.ts create mode 100644 resources/js/utils/session.ts diff --git a/.github/workflows/npm-publish-api.yml b/.github/workflows/npm-publish-api.yml new file mode 100644 index 00000000..99bf74a2 --- /dev/null +++ b/.github/workflows/npm-publish-api.yml @@ -0,0 +1,21 @@ +name: Publish API package to NPM +on: + push: +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@v4 + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v4 + with: + node-version: '20.x' + registry-url: 'https://registry.npmjs.org' + - run: npm ci + - run: npm run build + - run: npm publish --provenance --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/npm-publish-ui.yml b/.github/workflows/npm-publish-ui.yml new file mode 100644 index 00000000..43e91a96 --- /dev/null +++ b/.github/workflows/npm-publish-ui.yml @@ -0,0 +1,21 @@ +name: Publish UI package to NPM +on: + push: +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@v4 + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v4 + with: + node-version: '20.x' + registry-url: 'https://registry.npmjs.org' + - run: npm ci + - run: npm run build + - run: npm publish --provenance --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 5d32ea50..aeeb3ff7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /.phpunit.cache -/node_modules +node_modules +dist /public/build /public/hot /public/storage diff --git a/docker-compose.yml b/docker-compose.yml index 349db8a6..389d7264 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -108,7 +108,7 @@ services: - sail - reverse-proxy playwright: - image: mcr.microsoft.com/playwright:v1.45.2-jammy + image: mcr.microsoft.com/playwright:v1.46.1-jammy command: ['npx', 'playwright', 'test', '--ui-port=8080', '--ui-host=0.0.0.0'] working_dir: /src extra_hosts: diff --git a/e2e/project-members.spec.ts b/e2e/project-members.spec.ts index 3f9e966e..eb27288b 100644 --- a/e2e/project-members.spec.ts +++ b/e2e/project-members.spec.ts @@ -1,7 +1,7 @@ import { expect, Page } from '@playwright/test'; import { PLAYWRIGHT_BASE_URL } from '../playwright/config'; import { test } from '../playwright/fixtures'; -import { formatCents } from '../resources/js/utils/money'; +import { formatCents } from '../resources/js/packages/ui/src/utils/money'; async function goToProjectsOverview(page: Page) { await page.goto(PLAYWRIGHT_BASE_URL + '/projects'); @@ -58,6 +58,6 @@ test('test that updating project member billable rate works for existing time en page .getByRole('row') .first() - .getByText(formatCents(newBillableRate * 100)) + .getByText(formatCents(newBillableRate * 100, 'EUR')) ).toBeVisible(); }); diff --git a/e2e/projects.spec.ts b/e2e/projects.spec.ts index 8c3c5f36..113a9a6d 100644 --- a/e2e/projects.spec.ts +++ b/e2e/projects.spec.ts @@ -1,7 +1,7 @@ import { expect, Page } from '@playwright/test'; import { PLAYWRIGHT_BASE_URL } from '../playwright/config'; import { test } from '../playwright/fixtures'; -import { formatCents } from '../resources/js/utils/money'; +import { formatCents } from '../resources/js/packages/ui/src/utils/money'; async function goToProjectsOverview(page: Page) { await page.goto(PLAYWRIGHT_BASE_URL + '/projects'); @@ -131,7 +131,7 @@ test('test that updating billable rate works with existing time entries', async page .getByRole('row') .first() - .getByText(formatCents(newBillableRate * 100)) + .getByText(formatCents(newBillableRate * 100, 'EUR')) ).toBeVisible(); }); diff --git a/e2e/timetracker.spec.ts b/e2e/timetracker.spec.ts index f449fa6f..2ae2f94b 100644 --- a/e2e/timetracker.spec.ts +++ b/e2e/timetracker.spec.ts @@ -285,3 +285,5 @@ test('test that adding a new tag when the timer is running', async ({ // test billable toggle // TODO: Test that project can be created in the time tracker row + +// Add Test that time tracker starts on enter with description diff --git a/package-lock.json b/package-lock.json index edde7956..141503b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1019,38 +1019,38 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz", - "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.6" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.9.tgz", - "integrity": "sha512-zB1PcI350t4tkm3rvUhSRKa9sT7vH5CrAbQxW+VaPYJXKAO0gsg4CTueL+6Ajp7XzAQC8CW4Jj1Wgqc0sB6oUQ==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.6" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.6.tgz", - "integrity": "sha512-0KI3zGxIUs1KDR/pjQPdJH4Z8nGBm0yJ5WRoRfdw1Kzeh45jkIfA0rmD0kBF6fKHH+xaH7g8y4jIXyAV5MGK3g==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==", "license": "MIT" }, "node_modules/@floating-ui/vue": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.3.tgz", - "integrity": "sha512-1YlBnfamNCwT85JZJ2HH9t5DO6DAArhQHAiDQW5l+d9MzlN8atywXw2wI9vitPkoZZSurrDJ2viMzrbhPTmLmQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.4.tgz", + "integrity": "sha512-ammH7T3vyCx7pmm9OF19Wc42zrGnUw0QvLoidgypWsCLJMtGXEwY7paYIHO+K+oLC3mbWpzIHzeTVienYenlNg==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0", - "@floating-ui/utils": "^0.2.6", + "@floating-ui/utils": "^0.2.7", "vue-demi": ">=0.13.0" } }, @@ -1365,13 +1365,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz", - "integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==", + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.1.tgz", + "integrity": "sha512-Fq6SwLujA/DOIvNC2EL/SojJnkKf/rAwJ//APpJJHRyMi1PdKrY3Az+4XNQ51N4RTbItbIByQ0jgd1tayq1aeA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.46.0" + "playwright": "1.46.1" }, "bin": { "playwright": "cli.js" @@ -1381,9 +1381,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", - "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", "cpu": [ "arm" ], @@ -1395,9 +1395,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", - "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", "cpu": [ "arm64" ], @@ -1409,9 +1409,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", - "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", "cpu": [ "arm64" ], @@ -1423,9 +1423,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", - "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", "cpu": [ "x64" ], @@ -1437,9 +1437,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", - "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", "cpu": [ "arm" ], @@ -1451,9 +1451,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", - "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", "cpu": [ "arm" ], @@ -1465,9 +1465,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", - "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", "cpu": [ "arm64" ], @@ -1479,9 +1479,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", - "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", "cpu": [ "arm64" ], @@ -1493,9 +1493,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", - "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", "cpu": [ "ppc64" ], @@ -1507,9 +1507,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", - "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", "cpu": [ "riscv64" ], @@ -1521,9 +1521,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", - "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", "cpu": [ "s390x" ], @@ -1535,9 +1535,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", - "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", "cpu": [ "x64" ], @@ -1549,9 +1549,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", - "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", "cpu": [ "x64" ], @@ -1563,9 +1563,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", - "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", "cpu": [ "arm64" ], @@ -1577,9 +1577,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", - "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", "cpu": [ "ia32" ], @@ -1591,9 +1591,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", - "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", "cpu": [ "x64" ], @@ -1648,9 +1648,9 @@ } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz", - "integrity": "sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==", + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.14.tgz", + "integrity": "sha512-ZvOCjUbsJBjL9CxQBn+VEnFpouzuKhxh2dH8xMIWHILL+HfOYtlAkWcyoon8LlzE53d2Yo6YO6pahKKNW3q1YQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1664,9 +1664,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.4.tgz", - "integrity": "sha512-iO5Ujgw3O1yIxWDe9FgUPNkGjyT657b1WNX52u+Wv1DyBFEpdCdGkuVaky0M3hHFqNWjAmHWTn4wgj9rTr7ZQg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.9.0.tgz", + "integrity": "sha512-Saga7/QRGej/IDCVP5BgJ1oDqlDT2d9rQyoflS3fgMS8ntJ8JGw/LBqK2GorHa06+VrNFc0tGz65XQHJQJetFQ==", "license": "MIT", "funding": { "type": "github", @@ -1674,12 +1674,12 @@ } }, "node_modules/@tanstack/vue-virtual": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.8.5.tgz", - "integrity": "sha512-JBHw3xFUslYgrbvNlCYtTWwFo8zjzRs7c2rs6B4JKFXWyP5yHuoeivgQgeZ34t6O6lJTNqc/K4ccmmcmKqpMPA==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.9.0.tgz", + "integrity": "sha512-MVJhQh57OR3wg2pWL/25IN1/nITFNnpFaz4gOvRCqnxhsH0WRePBBKvixOaFTgiyYfmrjFbb4d0nRMTvsjZZdQ==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.8.4" + "@tanstack/virtual-core": "3.9.0" }, "funding": { "type": "github", @@ -1707,13 +1707,13 @@ } }, "node_modules/@types/node": { - "version": "20.14.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", - "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", + "version": "20.16.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz", + "integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/web-bluetooth": { @@ -1929,68 +1929,68 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.0-alpha.18", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz", - "integrity": "sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0.tgz", + "integrity": "sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.0-alpha.18" + "@volar/source-map": "2.4.0" } }, "node_modules/@volar/source-map": { - "version": "2.4.0-alpha.18", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz", - "integrity": "sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0.tgz", + "integrity": "sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.0-alpha.18", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz", - "integrity": "sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0.tgz", + "integrity": "sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.0-alpha.18", + "@volar/language-core": "2.4.0", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vue/compiler-core": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.35.tgz", - "integrity": "sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.35", + "@vue/shared": "3.4.38", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz", - "integrity": "sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz", - "integrity": "sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", + "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.35", - "@vue/compiler-dom": "3.4.35", - "@vue/compiler-ssr": "3.4.35", - "@vue/shared": "3.4.35", + "@vue/compiler-core": "3.4.38", + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.40", @@ -1998,13 +1998,13 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz", - "integrity": "sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", + "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-dom": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/compiler-vue2": { @@ -2088,53 +2088,53 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.35.tgz", - "integrity": "sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", + "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.4.35" + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.35.tgz", - "integrity": "sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", + "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/reactivity": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz", - "integrity": "sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", + "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.35", - "@vue/runtime-core": "3.4.35", - "@vue/shared": "3.4.35", + "@vue/reactivity": "3.4.38", + "@vue/runtime-core": "3.4.38", + "@vue/shared": "3.4.38", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.35.tgz", - "integrity": "sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", + "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38" }, "peerDependencies": { - "vue": "3.4.35" + "vue": "3.4.38" } }, "node_modules/@vue/shared": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.35.tgz", - "integrity": "sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==", "license": "MIT" }, "node_modules/@vue/tsconfig": { @@ -2145,14 +2145,14 @@ "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", - "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.11.0", - "@vueuse/shared": "10.11.0", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", "vue-demi": ">=0.14.8" }, "funding": { @@ -2186,18 +2186,18 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", - "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", - "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", "license": "MIT", "dependencies": { "vue-demi": ">=0.14.8" @@ -2433,9 +2433,9 @@ } }, "node_modules/axios": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", - "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dev": true, "license": "MIT", "dependencies": { @@ -2580,9 +2580,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001649", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001649.tgz", - "integrity": "sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -2879,9 +2879,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", - "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", + "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==", "dev": true, "license": "ISC" }, @@ -3132,9 +3132,9 @@ } }, "node_modules/eslint-plugin-vue/node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "license": "MIT", "peer": true, "dependencies": { @@ -3450,9 +3450,9 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", @@ -3782,9 +3782,9 @@ } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "engines": { "node": ">= 4" @@ -4674,13 +4674,13 @@ } }, "node_modules/pinia": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.0.tgz", - "integrity": "sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.2.tgz", + "integrity": "sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", - "vue-demi": "^0.14.8" + "vue-demi": "^0.14.10" }, "funding": { "url": "https://github.com/sponsors/posva" @@ -4735,13 +4735,13 @@ } }, "node_modules/playwright": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.0.tgz", - "integrity": "sha512-XYJ5WvfefWONh1uPAUAi0H2xXV5S3vrtcnXe6uAOgdGi3aSpqOSXX08IAjXW34xitfuOJsvXU5anXZxPSEQiJw==", + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.1.tgz", + "integrity": "sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.46.0" + "playwright-core": "1.46.1" }, "bin": { "playwright": "cli.js" @@ -4754,9 +4754,9 @@ } }, "node_modules/playwright-core": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.0.tgz", - "integrity": "sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==", + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.1.tgz", + "integrity": "sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4903,9 +4903,9 @@ } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -4990,9 +4990,9 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", "dependencies": { @@ -5115,9 +5115,9 @@ "license": "MIT" }, "node_modules/radix-vue": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.9.2.tgz", - "integrity": "sha512-XXwEMmXJmzcy9SebywbQdrZg8UE1jueqPMpxKK6NoquRC0CP4dvlBcuzp4lDWNSsqOgmkXa6CNbwEzdCX96umg==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.9.4.tgz", + "integrity": "sha512-d950wxB+MVVU6L9h39OsNzAdk2BiGDDfhXJiHsksPAIK5pCR8W4U0RB0WLQEdjmmL9p1aXOYm4FBDq0oIo2G/w==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.6.7", @@ -5246,9 +5246,9 @@ } }, "node_modules/rollup": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", - "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5262,22 +5262,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.20.0", - "@rollup/rollup-android-arm64": "4.20.0", - "@rollup/rollup-darwin-arm64": "4.20.0", - "@rollup/rollup-darwin-x64": "4.20.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", - "@rollup/rollup-linux-arm-musleabihf": "4.20.0", - "@rollup/rollup-linux-arm64-gnu": "4.20.0", - "@rollup/rollup-linux-arm64-musl": "4.20.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", - "@rollup/rollup-linux-riscv64-gnu": "4.20.0", - "@rollup/rollup-linux-s390x-gnu": "4.20.0", - "@rollup/rollup-linux-x64-gnu": "4.20.0", - "@rollup/rollup-linux-x64-musl": "4.20.0", - "@rollup/rollup-win32-arm64-msvc": "4.20.0", - "@rollup/rollup-win32-ia32-msvc": "4.20.0", - "@rollup/rollup-win32-x64-msvc": "4.20.0", + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", "fsevents": "~2.3.2" } }, @@ -5613,9 +5613,9 @@ "license": "0BSD" }, "node_modules/tailwind-merge": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", - "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", + "integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", "license": "MIT", "funding": { "type": "github", @@ -5623,9 +5623,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", - "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", + "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -5660,9 +5660,9 @@ } }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -5779,9 +5779,9 @@ "license": "Apache-2.0" }, "node_modules/ts-pattern": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.2.0.tgz", - "integrity": "sha512-aGaSpOlDcns7ZoeG/OMftWyQG1KqPVhgplhJxNCvyIXqWrumM5uIoOSarw/hmmi/T1PnuQ/uD8NaFHvLpHicDg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.3.1.tgz", + "integrity": "sha512-1RUMKa8jYQdNfmnK4jyzBK3/PS/tnjcZ1CW0v1vWDeYe5RBklc/nquw03MEoB66hVBm4BnlCfmOqDVxHyT1DpA==", "dev": true, "license": "MIT" }, @@ -5838,9 +5838,9 @@ } }, "node_modules/uglify-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", - "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "license": "BSD-2-Clause", "optional": true, @@ -5852,9 +5852,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.19.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz", + "integrity": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==", "dev": true, "license": "MIT" }, @@ -5916,14 +5916,14 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz", - "integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.39", + "postcss": "^8.4.41", "rollup": "^4.13.0" }, "bin": { @@ -5943,6 +5943,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -5960,6 +5961,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -6184,16 +6188,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.35.tgz", - "integrity": "sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", + "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.35", - "@vue/compiler-sfc": "3.4.35", - "@vue/runtime-dom": "3.4.35", - "@vue/server-renderer": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-sfc": "3.4.38", + "@vue/runtime-dom": "3.4.38", + "@vue/server-renderer": "3.4.38", + "@vue/shared": "3.4.38" }, "peerDependencies": { "typescript": "*" diff --git a/package.json b/package.json index c3fa11ef..2f693426 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "lint:fix": "eslint --fix --ext .js,.vue,.ts --ignore-path .gitignore .", "type-check": "vue-tsc --noEmit", "test:e2e": "rm -rf test-results/.auth && npx playwright test", - "zod:generate": "npx openapi-zod-client http://localhost:80/docs/api.json --output openapi.json.client.ts --base-url /api" + "zod:generate": "npx openapi-zod-client http://localhost:80/docs/api.json --output resources/js/packages/api/src/openapi.json.client.ts --base-url /api" }, "devDependencies": { "@inertiajs/vue3": "^1.0.0", diff --git a/resources/js/Components/Common/Client/ClientCreateModal.vue b/resources/js/Components/Common/Client/ClientCreateModal.vue index 7f353851..5f61bb3a 100644 --- a/resources/js/Components/Common/Client/ClientCreateModal.vue +++ b/resources/js/Components/Common/Client/ClientCreateModal.vue @@ -1,10 +1,10 @@