-
+
diff --git a/resources/js/Components/PersonInfo/AddressCreateForm.vue b/resources/js/Components/PersonInfo/AddressCreateForm.vue
new file mode 100644
index 0000000..604e428
--- /dev/null
+++ b/resources/js/Components/PersonInfo/AddressCreateForm.vue
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/AddressUpdateForm.vue b/resources/js/Components/PersonInfo/AddressUpdateForm.vue
new file mode 100644
index 0000000..71166b8
--- /dev/null
+++ b/resources/js/Components/PersonInfo/AddressUpdateForm.vue
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/EmailCreateForm.vue b/resources/js/Components/PersonInfo/EmailCreateForm.vue
new file mode 100644
index 0000000..d5b0e5c
--- /dev/null
+++ b/resources/js/Components/PersonInfo/EmailCreateForm.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/EmailUpdateForm.vue b/resources/js/Components/PersonInfo/EmailUpdateForm.vue
similarity index 100%
rename from resources/js/Components/EmailUpdateForm.vue
rename to resources/js/Components/PersonInfo/EmailUpdateForm.vue
diff --git a/resources/js/Components/PersonInfo/PersonInfoAddressesTab.vue b/resources/js/Components/PersonInfo/PersonInfoAddressesTab.vue
new file mode 100644
index 0000000..1d64af3
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoAddressesTab.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+ {{ address.country }}
+
+
+ {{ address.type.name }}
+
+
+
+
+
+
+
+
+
+
+ Uredi
+
+
+
+ Izbriši
+
+
+
+
+
+
+ {{
+ address.post_code && address.city
+ ? `${address.address}, ${address.post_code} ${address.city}`
+ : address.address
+ }}
+
+
+ {{ address.description }}
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoEmailsTab.vue b/resources/js/Components/PersonInfo/PersonInfoEmailsTab.vue
new file mode 100644
index 0000000..87a97db
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoEmailsTab.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+ {{ email.label }}
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+ Uredi
+
+
+
+ Izbriši
+
+
+
+
+
+
+
+ {{ email?.value || email?.email || email?.address || "-" }}
+
+
+ {{ email.note }}
+
+
+
+
+
+
+ Ni e-poštnih naslovov.
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoGrid.vue b/resources/js/Components/PersonInfo/PersonInfoGrid.vue
new file mode 100644
index 0000000..b5ca32a
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoGrid.vue
@@ -0,0 +1,537 @@
+
+
+
+
+
+
+
+
+ Oseba
+
+
+
+
+
+
+ Naslovi
+
+
+ {{ formatBadgeCount(addressesCount) }}
+
+
+
+
+
+
+
+ Telefonske
+
+
+ {{ formatBadgeCount(phonesCount) }}
+
+
+
+
+
+
+
+ Email
+
+
+ {{ formatBadgeCount(emailsCount) }}
+
+
+
+
+
+
+
+ TRR
+
+
+ {{ formatBadgeCount(trrsCount) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoPersonTab.vue b/resources/js/Components/PersonInfo/PersonInfoPersonTab.vue
new file mode 100644
index 0000000..aab3cab
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoPersonTab.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+ Primer ref.
+
+
{{ person.nu }}
+
+
+
Naziv
+
+ {{ person.full_name }}
+
+
+
+
+ Davčna
+
+
+ {{ person.tax_number }}
+
+
+
+
Emšo
+
+ {{ person.social_security_number }}
+
+
+
+
+
+
+ Naslov
+
+
+ {{ getMainAddress(person.addresses) }}
+
+
+
+
+ Telefon
+
+
+ {{ getMainPhone(person.phones) }}
+
+
+
+
+ Dat. rojstva
+
+
+ {{ fmtDateDMY(person.birthday) }}
+
+
+
+
+
+
+
+ Naslov
+
+
+ {{ getMainAddress(person.addresses) }}
+
+
+
+
+ Telefon
+
+
+ {{ getMainPhone(person.phones) }}
+
+
+
+
+
+
+ Delodajalec
+
+
+ {{ person.employer }}
+
+
+
+
+
Opis
+
+ {{ person.description }}
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoPhonesTab.vue b/resources/js/Components/PersonInfo/PersonInfoPhonesTab.vue
new file mode 100644
index 0000000..25e7d59
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoPhonesTab.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+ +{{ phone.country_code }}
+
+
+ {{ phone && phone.type && phone.type.name ? phone.type.name : "—" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Uredi
+
+
+
+ Izbriši
+
+
+
+
+
+
+ {{ phone.nu }}
+
+
+ {{ phone.description }}
+
+
+
+
+
+ Ni telefonov.
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoSmsDialog.vue b/resources/js/Components/PersonInfo/PersonInfoSmsDialog.vue
new file mode 100644
index 0000000..bbc6df5
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoSmsDialog.vue
@@ -0,0 +1,631 @@
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonInfoTrrTab.vue b/resources/js/Components/PersonInfo/PersonInfoTrrTab.vue
new file mode 100644
index 0000000..c19b064
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonInfoTrrTab.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+ {{ acc.bank_name }}
+
+
+ {{ acc.holder_name }}
+
+
+ {{ acc.currency }}
+
+
+
+
+
+
+
+
+
+
+ Uredi
+
+
+
+ Izbriši
+
+
+
+
+
+
+ {{
+ acc?.iban ||
+ acc?.account_number ||
+ acc?.account ||
+ acc?.nu ||
+ acc?.number ||
+ "-"
+ }}
+
+
+ {{ acc.notes }}
+
+
+
+
+
+ Ni TRR računov.
+
+
+
diff --git a/resources/js/Components/PersonInfo/PersonUpdateForm.vue b/resources/js/Components/PersonInfo/PersonUpdateForm.vue
new file mode 100644
index 0000000..da0dce3
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PersonUpdateForm.vue
@@ -0,0 +1,205 @@
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PhoneCreateForm.vue b/resources/js/Components/PersonInfo/PhoneCreateForm.vue
new file mode 100644
index 0000000..47295ce
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PhoneCreateForm.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/PhoneUpdateForm.vue b/resources/js/Components/PersonInfo/PhoneUpdateForm.vue
new file mode 100644
index 0000000..c30be34
--- /dev/null
+++ b/resources/js/Components/PersonInfo/PhoneUpdateForm.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/PersonInfo/TrrCreateForm.vue b/resources/js/Components/PersonInfo/TrrCreateForm.vue
new file mode 100644
index 0000000..07f9698
--- /dev/null
+++ b/resources/js/Components/PersonInfo/TrrCreateForm.vue
@@ -0,0 +1,335 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/TrrUpdateForm.vue b/resources/js/Components/PersonInfo/TrrUpdateForm.vue
similarity index 100%
rename from resources/js/Components/TrrUpdateForm.vue
rename to resources/js/Components/PersonInfo/TrrUpdateForm.vue
diff --git a/resources/js/Components/PersonInfoGrid.vue b/resources/js/Components/PersonInfoGrid.vue
index 647f88b..6a5ae98 100644
--- a/resources/js/Components/PersonInfoGrid.vue
+++ b/resources/js/Components/PersonInfoGrid.vue
@@ -1,21 +1,25 @@
-
-
-
-
-
-
-
-
-
-
Primer ref.
-
{{ person.nu }}
+
+
+ Oseba
+
+
+ Naslovi
+
+ {{ formatBadgeCount(addressesCount) }}
+
-
-
Naziv
-
- {{ person.full_name }}
-
+
+
+
+ Telefonske
+
+ {{ formatBadgeCount(phonesCount) }}
+
-
-
Davčna
-
- {{ person.tax_number }}
-
+
+
+
+ Email
+
+ {{ formatBadgeCount(emailsCount) }}
+
-
-
Emšo
-
- {{ person.social_security_number }}
-
+
+
+
+ TRR
+
+ {{ formatBadgeCount(trrsCount) }}
+
-
-
-
-
Naslov
-
- {{ getMainAddress(person.addresses) }}
-
-
-
-
Telefon
-
- {{ getMainPhone(person.phones) }}
-
-
-
-
Datum rojstva
-
- {{ formatDate(person.birthday) }}
-
-
-
+
+
-
-
-
Naslov
-
- {{ getMainAddress(person.addresses) }}
-
-
-
-
Telefon
-
- {{ getMainPhone(person.phones) }}
-
-
-
-
-
-
Delodajalec
-
- {{ person.employer }}
-
-
-
-
Opis
-
- {{ person.description }}
-
-
-
-
-
-
Opis
-
- {{ person.description }}
-
-
-
-
-
-
-
-
-
-
- {{ address.country }}
- {{ address.type.name }}
-
-
-
-
-
-
-
- {{
- address.post_code && address.city
- ? `${address.address}, ${address.post_code} ${address.city}`
- : address.address
- }}
-
-
-
-
-
-
-
-
-
-
- +{{ phone.country_code }}
- {{
- phone && phone.type && phone.type.name ? phone.type.name : "—"
- }}
-
-
-
-
-
-
-
-
-
{{ phone.nu }}
-
-
-
-
-
-
-
-
-
-
- {{ email.label }}
- Email
-
-
-
-
-
-
-
- {{ email?.value || email?.email || email?.address || "-" }}
-
-
- {{ email.note }}
-
-
-
-
Ni e-poštnih naslovov.
-
-
-
-
-
-
-
-
-
- {{ acc.bank_name }}
- {{
- acc.holder_name
- }}
- {{ acc.currency }}
-
-
-
-
-
-
-
- {{
- acc?.iban ||
- acc?.account_number ||
- acc?.account ||
- acc?.nu ||
- acc?.number ||
- "-"
- }}
-
-
- {{ acc.notes }}
-
-
-
-
Ni TRR računov.
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
/>
+
+
-
+
+
{
:is-client-context="!!person?.client"
/>
-
+
{
:id="editTrrId"
/>
-
+
{
@confirm="onConfirmDelete"
/>
-
-
- Pošlji SMS
-
-
-
- Prejemnik: {{ smsTargetPhone?.nu }}
- CC +{{ smsTargetPhone.country_code }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Uporabi podatke pogodbe (in računa) za zapolnitev {contract.*} in {account.*}
- mest.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Znakov:
- {{ charCount }}
- |
- Kodiranje:
- {{ smsEncoding }}
- |
- Deli SMS:
- {{ segments }}
- |
- Krediti:
- {{ creditsNeeded }}
-
-
- Omejitev:
- {{ maxAllowed }}
- |
- Preostanek:
- {{
- remaining
- }}
-
-
- Dolžina 160 znakov velja samo pri pošiljanju sporočil, ki vsebujejo znake, ki
- ne zahtevajo enkodiranja. Če npr. želite pošiljati šumnike, ki niso del
- 7-bitne abecede GSM, morate uporabiti Unicode enkodiranje (UCS‑2). V tem
- primeru je največja dolžina enega SMS sporočila 70 znakov (pri daljših
- sporočilih 67 znakov na del), medtem ko je pri GSM‑7 160 znakov (pri daljših
- sporočilih 153 znakov na del). Razširjeni znaki (^{{ "{" }}}}\\[]~| in €)
- štejejo dvojno. Največja dovoljena dolžina po ponudniku: 640 (GSM‑7) oziroma
- 320 (UCS‑2) znakov.
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/resources/js/Components/PersonUpdateForm.vue b/resources/js/Components/PersonUpdateForm.vue
deleted file mode 100644
index 1705db0..0000000
--- a/resources/js/Components/PersonUpdateForm.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
- Posodobi {{ person.full_name }}
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/js/Components/PhoneCreateForm.vue b/resources/js/Components/PhoneCreateForm.vue
index cda7bae..673a251 100644
--- a/resources/js/Components/PhoneCreateForm.vue
+++ b/resources/js/Components/PhoneCreateForm.vue
@@ -1,11 +1,9 @@
-
-
- Spremeni telefon
- Dodaj novi telefon
-
-
-
+
diff --git a/resources/js/Components/PhoneUpdateForm.vue b/resources/js/Components/PhoneUpdateForm.vue
deleted file mode 100644
index 741c7c7..0000000
--- a/resources/js/Components/PhoneUpdateForm.vue
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/js/Components/Skeleton/SkeletonCard.vue b/resources/js/Components/Skeleton/SkeletonCard.vue
new file mode 100644
index 0000000..b870bda
--- /dev/null
+++ b/resources/js/Components/Skeleton/SkeletonCard.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Skeleton/SkeletonInline.vue b/resources/js/Components/Skeleton/SkeletonInline.vue
new file mode 100644
index 0000000..c16fec2
--- /dev/null
+++ b/resources/js/Components/Skeleton/SkeletonInline.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Skeleton/SkeletonList.vue b/resources/js/Components/Skeleton/SkeletonList.vue
new file mode 100644
index 0000000..c128270
--- /dev/null
+++ b/resources/js/Components/Skeleton/SkeletonList.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Skeleton/SkeletonTable.vue b/resources/js/Components/Skeleton/SkeletonTable.vue
new file mode 100644
index 0000000..94de988
--- /dev/null
+++ b/resources/js/Components/Skeleton/SkeletonTable.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Toast/ToastContainer.vue b/resources/js/Components/Toast/ToastContainer.vue
new file mode 100644
index 0000000..f0e340f
--- /dev/null
+++ b/resources/js/Components/Toast/ToastContainer.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
diff --git a/resources/js/Components/TrrCreateForm.vue b/resources/js/Components/TrrCreateForm.vue
deleted file mode 100644
index 8a89376..0000000
--- a/resources/js/Components/TrrCreateForm.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
- Spremeni TRR
- Dodaj TRR
-
-
-
-
- TRR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/js/Components/app/ui/AppCheckboxArray.vue b/resources/js/Components/app/ui/AppCheckboxArray.vue
new file mode 100644
index 0000000..c822403
--- /dev/null
+++ b/resources/js/Components/app/ui/AppCheckboxArray.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/AppCombobox.vue b/resources/js/Components/app/ui/AppCombobox.vue
new file mode 100644
index 0000000..064335c
--- /dev/null
+++ b/resources/js/Components/app/ui/AppCombobox.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ emptyText }}
+
+ {
+ selectItem(ev.detail.value);
+ }
+ "
+ >
+ {{ item.label }}
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/AppMultiSelect.vue b/resources/js/Components/app/ui/AppMultiSelect.vue
new file mode 100644
index 0000000..06b5f75
--- /dev/null
+++ b/resources/js/Components/app/ui/AppMultiSelect.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ emptyText
+ }}
+
+ toggle(item.value)"
+ class="flex items-center gap-2 px-2 py-1.5 rounded-sm cursor-pointer hover:bg-accent hover:text-accent-foreground"
+ >
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+ {{ items.find((i) => String(i.value) === String(val))?.label || val }}
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/AppPopover.vue b/resources/js/Components/app/ui/AppPopover.vue
new file mode 100644
index 0000000..6b424e8
--- /dev/null
+++ b/resources/js/Components/app/ui/AppPopover.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/card/AppCard.vue b/resources/js/Components/app/ui/card/AppCard.vue
new file mode 100644
index 0000000..c620b93
--- /dev/null
+++ b/resources/js/Components/app/ui/card/AppCard.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/charts/AppChartContainer.vue b/resources/js/Components/app/ui/charts/AppChartContainer.vue
new file mode 100644
index 0000000..9216489
--- /dev/null
+++ b/resources/js/Components/app/ui/charts/AppChartContainer.vue
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/charts/AppChartDisplay.vue b/resources/js/Components/app/ui/charts/AppChartDisplay.vue
new file mode 100644
index 0000000..581aa2b
--- /dev/null
+++ b/resources/js/Components/app/ui/charts/AppChartDisplay.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/app/ui/charts/AppChartToolbar.vue b/resources/js/Components/app/ui/charts/AppChartToolbar.vue
new file mode 100644
index 0000000..4ab8b01
--- /dev/null
+++ b/resources/js/Components/app/ui/charts/AppChartToolbar.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ Line Chart
+
+
+ Bar Chart
+
+
+ Pie Chart
+
+
+ Area Chart
+
+
+ Radar Chart
+
+
+ Radial Chart
+
+
+ Tooltip
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/accordion/Accordion.vue b/resources/js/Components/ui/accordion/Accordion.vue
new file mode 100644
index 0000000..f9452bf
--- /dev/null
+++ b/resources/js/Components/ui/accordion/Accordion.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/accordion/AccordionContent.vue b/resources/js/Components/ui/accordion/AccordionContent.vue
new file mode 100644
index 0000000..f6656ba
--- /dev/null
+++ b/resources/js/Components/ui/accordion/AccordionContent.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/accordion/AccordionItem.vue b/resources/js/Components/ui/accordion/AccordionItem.vue
new file mode 100644
index 0000000..a2181e1
--- /dev/null
+++ b/resources/js/Components/ui/accordion/AccordionItem.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/accordion/AccordionTrigger.vue b/resources/js/Components/ui/accordion/AccordionTrigger.vue
new file mode 100644
index 0000000..029e57b
--- /dev/null
+++ b/resources/js/Components/ui/accordion/AccordionTrigger.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/accordion/index.js b/resources/js/Components/ui/accordion/index.js
new file mode 100644
index 0000000..92efaba
--- /dev/null
+++ b/resources/js/Components/ui/accordion/index.js
@@ -0,0 +1,4 @@
+export { default as Accordion } from "./Accordion.vue";
+export { default as AccordionContent } from "./AccordionContent.vue";
+export { default as AccordionItem } from "./AccordionItem.vue";
+export { default as AccordionTrigger } from "./AccordionTrigger.vue";
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialog.vue b/resources/js/Components/ui/alert-dialog/AlertDialog.vue
new file mode 100644
index 0000000..ba98864
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialog.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogAction.vue b/resources/js/Components/ui/alert-dialog/AlertDialogAction.vue
new file mode 100644
index 0000000..864b376
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogAction.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogCancel.vue b/resources/js/Components/ui/alert-dialog/AlertDialogCancel.vue
new file mode 100644
index 0000000..3e5c6ab
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogCancel.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogContent.vue b/resources/js/Components/ui/alert-dialog/AlertDialogContent.vue
new file mode 100644
index 0000000..6b83fc1
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogContent.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogDescription.vue b/resources/js/Components/ui/alert-dialog/AlertDialogDescription.vue
new file mode 100644
index 0000000..abc930e
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogDescription.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogFooter.vue b/resources/js/Components/ui/alert-dialog/AlertDialogFooter.vue
new file mode 100644
index 0000000..f623c10
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogFooter.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogHeader.vue b/resources/js/Components/ui/alert-dialog/AlertDialogHeader.vue
new file mode 100644
index 0000000..b9bd423
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogHeader.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogTitle.vue b/resources/js/Components/ui/alert-dialog/AlertDialogTitle.vue
new file mode 100644
index 0000000..c39a909
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogTitle.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/AlertDialogTrigger.vue b/resources/js/Components/ui/alert-dialog/AlertDialogTrigger.vue
new file mode 100644
index 0000000..ac4c853
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/AlertDialogTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert-dialog/index.js b/resources/js/Components/ui/alert-dialog/index.js
new file mode 100644
index 0000000..c48e47b
--- /dev/null
+++ b/resources/js/Components/ui/alert-dialog/index.js
@@ -0,0 +1,9 @@
+export { default as AlertDialog } from "./AlertDialog.vue";
+export { default as AlertDialogAction } from "./AlertDialogAction.vue";
+export { default as AlertDialogCancel } from "./AlertDialogCancel.vue";
+export { default as AlertDialogContent } from "./AlertDialogContent.vue";
+export { default as AlertDialogDescription } from "./AlertDialogDescription.vue";
+export { default as AlertDialogFooter } from "./AlertDialogFooter.vue";
+export { default as AlertDialogHeader } from "./AlertDialogHeader.vue";
+export { default as AlertDialogTitle } from "./AlertDialogTitle.vue";
+export { default as AlertDialogTrigger } from "./AlertDialogTrigger.vue";
diff --git a/resources/js/Components/ui/alert/Alert.vue b/resources/js/Components/ui/alert/Alert.vue
new file mode 100644
index 0000000..7e94223
--- /dev/null
+++ b/resources/js/Components/ui/alert/Alert.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert/AlertDescription.vue b/resources/js/Components/ui/alert/AlertDescription.vue
new file mode 100644
index 0000000..2254a20
--- /dev/null
+++ b/resources/js/Components/ui/alert/AlertDescription.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert/AlertTitle.vue b/resources/js/Components/ui/alert/AlertTitle.vue
new file mode 100644
index 0000000..cc6effb
--- /dev/null
+++ b/resources/js/Components/ui/alert/AlertTitle.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/alert/index.js b/resources/js/Components/ui/alert/index.js
new file mode 100644
index 0000000..41ad929
--- /dev/null
+++ b/resources/js/Components/ui/alert/index.js
@@ -0,0 +1,3 @@
+export { default as Alert } from "./Alert.vue";
+export { default as AlertTitle } from "./AlertTitle.vue";
+export { default as AlertDescription } from "./AlertDescription.vue";
diff --git a/resources/js/Components/ui/avatar/Avatar.vue b/resources/js/Components/ui/avatar/Avatar.vue
new file mode 100644
index 0000000..cf99fb5
--- /dev/null
+++ b/resources/js/Components/ui/avatar/Avatar.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/avatar/AvatarFallback.vue b/resources/js/Components/ui/avatar/AvatarFallback.vue
new file mode 100644
index 0000000..c00c6a0
--- /dev/null
+++ b/resources/js/Components/ui/avatar/AvatarFallback.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/avatar/AvatarImage.vue b/resources/js/Components/ui/avatar/AvatarImage.vue
new file mode 100644
index 0000000..390f224
--- /dev/null
+++ b/resources/js/Components/ui/avatar/AvatarImage.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/avatar/index.ts b/resources/js/Components/ui/avatar/index.ts
new file mode 100644
index 0000000..da44253
--- /dev/null
+++ b/resources/js/Components/ui/avatar/index.ts
@@ -0,0 +1,25 @@
+import type { VariantProps } from "class-variance-authority"
+import { cva } from "class-variance-authority"
+
+export { default as Avatar } from "./Avatar.vue"
+export { default as AvatarFallback } from "./AvatarFallback.vue"
+export { default as AvatarImage } from "./AvatarImage.vue"
+
+export const avatarVariant = cva(
+ "inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary overflow-hidden",
+ {
+ variants: {
+ size: {
+ sm: "h-10 w-10 text-xs",
+ base: "h-16 w-16 text-2xl",
+ lg: "h-32 w-32 text-5xl",
+ },
+ shape: {
+ circle: "rounded-full",
+ square: "rounded-md",
+ },
+ },
+ },
+)
+
+export type AvatarVariants = VariantProps
diff --git a/resources/js/Components/ui/badge/Badge.vue b/resources/js/Components/ui/badge/Badge.vue
new file mode 100644
index 0000000..b439355
--- /dev/null
+++ b/resources/js/Components/ui/badge/Badge.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/badge/index.js b/resources/js/Components/ui/badge/index.js
new file mode 100644
index 0000000..4c549e6
--- /dev/null
+++ b/resources/js/Components/ui/badge/index.js
@@ -0,0 +1,23 @@
+import { cva } from "class-variance-authority";
+
+export { default as Badge } from "./Badge.vue";
+
+export const badgeVariants = cva(
+ "inline-flex gap-1 items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
+ {
+ variants: {
+ variant: {
+ default:
+ "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
+ secondary:
+ "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
+ destructive:
+ "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
+ outline: "text-foreground",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ },
+);
diff --git a/resources/js/Components/ui/breadcrumb/Breadcrumb.vue b/resources/js/Components/ui/breadcrumb/Breadcrumb.vue
new file mode 100644
index 0000000..b4fc008
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/Breadcrumb.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbEllipsis.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbEllipsis.vue
new file mode 100644
index 0000000..5bb8fa7
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbEllipsis.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ More
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbItem.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbItem.vue
new file mode 100644
index 0000000..dcdd26e
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbItem.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbLink.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbLink.vue
new file mode 100644
index 0000000..d61232f
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbLink.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbList.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbList.vue
new file mode 100644
index 0000000..06ba68f
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbList.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbPage.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbPage.vue
new file mode 100644
index 0000000..64e61b9
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbPage.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/BreadcrumbSeparator.vue b/resources/js/Components/ui/breadcrumb/BreadcrumbSeparator.vue
new file mode 100644
index 0000000..6357760
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/BreadcrumbSeparator.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/breadcrumb/index.ts b/resources/js/Components/ui/breadcrumb/index.ts
new file mode 100644
index 0000000..f4eafdc
--- /dev/null
+++ b/resources/js/Components/ui/breadcrumb/index.ts
@@ -0,0 +1,7 @@
+export { default as Breadcrumb } from "./Breadcrumb.vue"
+export { default as BreadcrumbEllipsis } from "./BreadcrumbEllipsis.vue"
+export { default as BreadcrumbItem } from "./BreadcrumbItem.vue"
+export { default as BreadcrumbLink } from "./BreadcrumbLink.vue"
+export { default as BreadcrumbList } from "./BreadcrumbList.vue"
+export { default as BreadcrumbPage } from "./BreadcrumbPage.vue"
+export { default as BreadcrumbSeparator } from "./BreadcrumbSeparator.vue"
diff --git a/resources/js/Components/ui/button-group/ButtonGroup.vue b/resources/js/Components/ui/button-group/ButtonGroup.vue
new file mode 100644
index 0000000..21b93d3
--- /dev/null
+++ b/resources/js/Components/ui/button-group/ButtonGroup.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/button-group/ButtonGroupSeparator.vue b/resources/js/Components/ui/button-group/ButtonGroupSeparator.vue
new file mode 100644
index 0000000..17759be
--- /dev/null
+++ b/resources/js/Components/ui/button-group/ButtonGroupSeparator.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/button-group/ButtonGroupText.vue b/resources/js/Components/ui/button-group/ButtonGroupText.vue
new file mode 100644
index 0000000..489cfe7
--- /dev/null
+++ b/resources/js/Components/ui/button-group/ButtonGroupText.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/button-group/index.js b/resources/js/Components/ui/button-group/index.js
new file mode 100644
index 0000000..eb73e31
--- /dev/null
+++ b/resources/js/Components/ui/button-group/index.js
@@ -0,0 +1,22 @@
+import { cva } from "class-variance-authority";
+
+export { default as ButtonGroup } from "./ButtonGroup.vue";
+export { default as ButtonGroupSeparator } from "./ButtonGroupSeparator.vue";
+export { default as ButtonGroupText } from "./ButtonGroupText.vue";
+
+export const buttonGroupVariants = cva(
+ "flex w-fit items-stretch [&>*:focus-visible]:z-10 [&>*:focus-visible]:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2",
+ {
+ variants: {
+ orientation: {
+ horizontal:
+ "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
+ vertical:
+ "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none",
+ },
+ },
+ defaultVariants: {
+ orientation: "horizontal",
+ },
+ },
+);
diff --git a/resources/js/Components/ui/button/Button.vue b/resources/js/Components/ui/button/Button.vue
new file mode 100644
index 0000000..8abe477
--- /dev/null
+++ b/resources/js/Components/ui/button/Button.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/button/index.js b/resources/js/Components/ui/button/index.js
new file mode 100644
index 0000000..bbb3f1f
--- /dev/null
+++ b/resources/js/Components/ui/button/index.js
@@ -0,0 +1,35 @@
+import { cva } from "class-variance-authority";
+
+export { default as Button } from "./Button.vue";
+
+export const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ {
+ variants: {
+ variant: {
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
+ outline:
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
+ secondary:
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
+ ghost:
+ "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
+ icon: "size-9",
+ "icon-sm": "size-8",
+ "icon-lg": "size-10",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ },
+);
diff --git a/resources/js/Components/ui/button/index.ts b/resources/js/Components/ui/button/index.ts
new file mode 100644
index 0000000..26e2c55
--- /dev/null
+++ b/resources/js/Components/ui/button/index.ts
@@ -0,0 +1,38 @@
+import type { VariantProps } from "class-variance-authority"
+import { cva } from "class-variance-authority"
+
+export { default as Button } from "./Button.vue"
+
+export const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ {
+ variants: {
+ variant: {
+ default:
+ "bg-primary text-primary-foreground hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
+ outline:
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
+ secondary:
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
+ ghost:
+ "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ "default": "h-9 px-4 py-2 has-[>svg]:px-3",
+ "sm": "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
+ "lg": "h-10 rounded-md px-6 has-[>svg]:px-4",
+ "icon": "size-9",
+ "icon-sm": "size-8",
+ "icon-lg": "size-10",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ },
+)
+export type ButtonVariants = VariantProps
diff --git a/resources/js/Components/ui/calendar/Calendar.vue b/resources/js/Components/ui/calendar/Calendar.vue
new file mode 100644
index 0000000..f3a7d82
--- /dev/null
+++ b/resources/js/Components/ui/calendar/Calendar.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ day }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarCell.vue b/resources/js/Components/ui/calendar/CalendarCell.vue
new file mode 100644
index 0000000..939a3e6
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarCell.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarCellTrigger.vue b/resources/js/Components/ui/calendar/CalendarCellTrigger.vue
new file mode 100644
index 0000000..e52d8f6
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarCellTrigger.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarGrid.vue b/resources/js/Components/ui/calendar/CalendarGrid.vue
new file mode 100644
index 0000000..7765028
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarGrid.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarGridBody.vue b/resources/js/Components/ui/calendar/CalendarGridBody.vue
new file mode 100644
index 0000000..ee55203
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarGridBody.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarGridHead.vue b/resources/js/Components/ui/calendar/CalendarGridHead.vue
new file mode 100644
index 0000000..c16093c
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarGridHead.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarGridRow.vue b/resources/js/Components/ui/calendar/CalendarGridRow.vue
new file mode 100644
index 0000000..07af044
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarGridRow.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarHeadCell.vue b/resources/js/Components/ui/calendar/CalendarHeadCell.vue
new file mode 100644
index 0000000..fade3e0
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarHeadCell.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarHeader.vue b/resources/js/Components/ui/calendar/CalendarHeader.vue
new file mode 100644
index 0000000..3d7b286
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarHeader.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarHeading.vue b/resources/js/Components/ui/calendar/CalendarHeading.vue
new file mode 100644
index 0000000..581a1c6
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarHeading.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ {{ headingValue }}
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarNextButton.vue b/resources/js/Components/ui/calendar/CalendarNextButton.vue
new file mode 100644
index 0000000..d26a634
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarNextButton.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/CalendarPrevButton.vue b/resources/js/Components/ui/calendar/CalendarPrevButton.vue
new file mode 100644
index 0000000..5853186
--- /dev/null
+++ b/resources/js/Components/ui/calendar/CalendarPrevButton.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/calendar/index.js b/resources/js/Components/ui/calendar/index.js
new file mode 100644
index 0000000..f5e9b7e
--- /dev/null
+++ b/resources/js/Components/ui/calendar/index.js
@@ -0,0 +1,12 @@
+export { default as Calendar } from "./Calendar.vue";
+export { default as CalendarCell } from "./CalendarCell.vue";
+export { default as CalendarCellTrigger } from "./CalendarCellTrigger.vue";
+export { default as CalendarGrid } from "./CalendarGrid.vue";
+export { default as CalendarGridBody } from "./CalendarGridBody.vue";
+export { default as CalendarGridHead } from "./CalendarGridHead.vue";
+export { default as CalendarGridRow } from "./CalendarGridRow.vue";
+export { default as CalendarHeadCell } from "./CalendarHeadCell.vue";
+export { default as CalendarHeader } from "./CalendarHeader.vue";
+export { default as CalendarHeading } from "./CalendarHeading.vue";
+export { default as CalendarNextButton } from "./CalendarNextButton.vue";
+export { default as CalendarPrevButton } from "./CalendarPrevButton.vue";
diff --git a/resources/js/Components/ui/card/Card.vue b/resources/js/Components/ui/card/Card.vue
new file mode 100644
index 0000000..16920e4
--- /dev/null
+++ b/resources/js/Components/ui/card/Card.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardAction.vue b/resources/js/Components/ui/card/CardAction.vue
new file mode 100644
index 0000000..4c13362
--- /dev/null
+++ b/resources/js/Components/ui/card/CardAction.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardContent.vue b/resources/js/Components/ui/card/CardContent.vue
new file mode 100644
index 0000000..f54f541
--- /dev/null
+++ b/resources/js/Components/ui/card/CardContent.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardDescription.vue b/resources/js/Components/ui/card/CardDescription.vue
new file mode 100644
index 0000000..199875d
--- /dev/null
+++ b/resources/js/Components/ui/card/CardDescription.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardFooter.vue b/resources/js/Components/ui/card/CardFooter.vue
new file mode 100644
index 0000000..a28c159
--- /dev/null
+++ b/resources/js/Components/ui/card/CardFooter.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardHeader.vue b/resources/js/Components/ui/card/CardHeader.vue
new file mode 100644
index 0000000..cc387d1
--- /dev/null
+++ b/resources/js/Components/ui/card/CardHeader.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/CardTitle.vue b/resources/js/Components/ui/card/CardTitle.vue
new file mode 100644
index 0000000..bb88bf0
--- /dev/null
+++ b/resources/js/Components/ui/card/CardTitle.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/card/index.js b/resources/js/Components/ui/card/index.js
new file mode 100644
index 0000000..409685b
--- /dev/null
+++ b/resources/js/Components/ui/card/index.js
@@ -0,0 +1,7 @@
+export { default as Card } from "./Card.vue";
+export { default as CardAction } from "./CardAction.vue";
+export { default as CardContent } from "./CardContent.vue";
+export { default as CardDescription } from "./CardDescription.vue";
+export { default as CardFooter } from "./CardFooter.vue";
+export { default as CardHeader } from "./CardHeader.vue";
+export { default as CardTitle } from "./CardTitle.vue";
diff --git a/resources/js/Components/ui/chart/ChartAutoLegend.vue b/resources/js/Components/ui/chart/ChartAutoLegend.vue
new file mode 100644
index 0000000..57b7f2d
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartAutoLegend.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartContainer.vue b/resources/js/Components/ui/chart/ChartContainer.vue
new file mode 100644
index 0000000..ac9689d
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartContainer.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartCrosshair.vue b/resources/js/Components/ui/chart/ChartCrosshair.vue
new file mode 100644
index 0000000..c7430c0
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartCrosshair.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartLegend.vue b/resources/js/Components/ui/chart/ChartLegend.vue
new file mode 100644
index 0000000..3580edb
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartLegend.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartSingleTooltip.vue b/resources/js/Components/ui/chart/ChartSingleTooltip.vue
new file mode 100644
index 0000000..ad29bc3
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartSingleTooltip.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartTooltip.vue b/resources/js/Components/ui/chart/ChartTooltip.vue
new file mode 100644
index 0000000..ad6ae05
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartTooltip.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+
{{ item.value }}
+
+
+
+
diff --git a/resources/js/Components/ui/chart/ChartTooltipContent.vue b/resources/js/Components/ui/chart/ChartTooltipContent.vue
new file mode 100644
index 0000000..df34eb4
--- /dev/null
+++ b/resources/js/Components/ui/chart/ChartTooltipContent.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
{{ formattedLabel }}
+
+
+
+
+
+
+
+
+
+
{{ formattedLabel }}
+
{{ itemConfig.label || formatValue(value) }}
+
+
{{ formatValue(value) }}
+
+
+
+
+
diff --git a/resources/js/Components/ui/chart/componentToString.js b/resources/js/Components/ui/chart/componentToString.js
new file mode 100644
index 0000000..c5644fe
--- /dev/null
+++ b/resources/js/Components/ui/chart/componentToString.js
@@ -0,0 +1,38 @@
+import { createApp, h } from 'vue'
+
+// Simple cache map to avoid re-rendering identical payloads.
+const _cache = new Map()
+
+function serializeKey(obj) {
+ try {
+ return JSON.stringify(obj, Object.keys(obj).sort())
+ } catch (e) {
+ return Math.random().toString(36)
+ }
+}
+
+// Factory returning template function for Unovis Crosshair.
+// config: chart series configuration
+// Component: Vue component to render
+// extraProps: static props (e.g. labelKey, labelFormatter)
+export function componentToString(config, Component, extraProps = {}) {
+ return function (_data, x) {
+ const row = _data && _data.data ? _data.data : _data
+ // Build series-only payload (exclude non-config fields like date/dateLabel)
+ const seriesPayload = {}
+ Object.keys(config).forEach(k => {
+ if (row && row[k] !== undefined) seriesPayload[k] = row[k]
+ })
+ const cacheKeyBase = { ...seriesPayload, __x: x }
+ const key = serializeKey(cacheKeyBase)
+ if (_cache.has(key)) return _cache.get(key)
+
+ const el = document.createElement('div')
+ const app = createApp(Component, { ...extraProps, payload: seriesPayload, config, x: row?.date ?? x })
+ app.mount(el)
+ const html = el.innerHTML
+ app.unmount()
+ _cache.set(key, html)
+ return html
+ }
+}
diff --git a/resources/js/Components/ui/chart/index.js b/resources/js/Components/ui/chart/index.js
new file mode 100644
index 0000000..4c1febc
--- /dev/null
+++ b/resources/js/Components/ui/chart/index.js
@@ -0,0 +1,28 @@
+export { default as ChartCrosshair } from "./ChartCrosshair.vue";
+export { default as ChartLegend } from "./ChartLegend.vue";
+export { default as ChartSingleTooltip } from "./ChartSingleTooltip.vue";
+export { default as ChartTooltip } from "./ChartTooltip.vue";
+export { default as ChartContainer } from "./ChartContainer.vue";
+export { default as ChartTooltipContent } from "./ChartTooltipContent.vue";
+export { componentToString } from "./componentToString";
+export { provideChartContext, useChartContext } from "./interface";
+export { default as ChartAutoLegend } from "./ChartAutoLegend.vue";
+
+export function defaultColors(count = 3) {
+ const quotient = Math.floor(count / 2);
+ const remainder = count % 2;
+
+ const primaryCount = quotient + remainder;
+ const secondaryCount = quotient;
+ return [
+ ...Array.from(new Array(primaryCount).keys()).map(
+ (i) => `hsl(var(--vis-primary-color) / ${1 - (1 / primaryCount) * i})`,
+ ),
+ ...Array.from(new Array(secondaryCount).keys()).map(
+ (i) =>
+ `hsl(var(--vis-secondary-color) / ${1 - (1 / secondaryCount) * i})`,
+ ),
+ ];
+}
+
+export * from "./interface";
diff --git a/resources/js/Components/ui/chart/interface.js b/resources/js/Components/ui/chart/interface.js
new file mode 100644
index 0000000..c9ad8e5
--- /dev/null
+++ b/resources/js/Components/ui/chart/interface.js
@@ -0,0 +1,49 @@
+// Chart interface and context helpers
+// This is a fresh, original implementation inspired conceptually by patterns
+// observed in external registries. No code copied.
+
+import { inject, provide, reactive } from 'vue';
+
+/**
+ * @typedef {Object} ChartSeriesConfig
+ * @property {string|import('vue').Component} [label] Display label or component
+ * @property {import('vue').Component} [icon] Optional icon component
+ * @property {string} [color] Static CSS color value (e.g. 'var(--chart-1)')
+ * @property {Object} [theme] Optional theme map: { light: string, dark: string }
+ */
+
+/**
+ * @typedef {Object.} ChartConfig
+ * Keys are series identifiers. Each value declares label/icon and either a
+ * static color or a theme object with light/dark variants.
+ */
+
+const ChartContextSymbol = Symbol('ChartContext');
+let _idCounter = 0;
+
+/**
+ * Provide chart context for descendants.
+ * @param {ChartConfig} config Reactive or plain config object.
+ * @param {string} [explicitId] Optional id override.
+ * @returns {{ id: string, config: ChartConfig }}
+ */
+export function provideChartContext(config, explicitId) {
+ const id = explicitId || `c${Date.now().toString(36)}${(++_idCounter).toString(36)}`;
+ const ctx = { id, config: reactive(config) };
+ provide(ChartContextSymbol, ctx);
+ return ctx;
+}
+
+/**
+ * Inject previously provided chart context.
+ * @returns {{ id: string, config: ChartConfig }}
+ */
+export function useChartContext() {
+ const ctx = inject(ChartContextSymbol, null);
+ if (!ctx) {
+ throw new Error('useChartContext() called without a provider. Wrap in .');
+ }
+ return ctx;
+}
+
+export {}; // preserve module boundaries
diff --git a/resources/js/Components/ui/checkbox/Checkbox.vue b/resources/js/Components/ui/checkbox/Checkbox.vue
new file mode 100644
index 0000000..0d9a1a3
--- /dev/null
+++ b/resources/js/Components/ui/checkbox/Checkbox.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/checkbox/CheckboxArray.vue b/resources/js/Components/ui/checkbox/CheckboxArray.vue
new file mode 100644
index 0000000..c822403
--- /dev/null
+++ b/resources/js/Components/ui/checkbox/CheckboxArray.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/checkbox/index.js b/resources/js/Components/ui/checkbox/index.js
new file mode 100644
index 0000000..75be342
--- /dev/null
+++ b/resources/js/Components/ui/checkbox/index.js
@@ -0,0 +1 @@
+export { default as Checkbox } from "./Checkbox.vue";
diff --git a/resources/js/Components/ui/collapsible/Collapsible.vue b/resources/js/Components/ui/collapsible/Collapsible.vue
new file mode 100644
index 0000000..77d575e
--- /dev/null
+++ b/resources/js/Components/ui/collapsible/Collapsible.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/collapsible/CollapsibleContent.vue b/resources/js/Components/ui/collapsible/CollapsibleContent.vue
new file mode 100644
index 0000000..56fab10
--- /dev/null
+++ b/resources/js/Components/ui/collapsible/CollapsibleContent.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/collapsible/CollapsibleTrigger.vue b/resources/js/Components/ui/collapsible/CollapsibleTrigger.vue
new file mode 100644
index 0000000..05bc3f1
--- /dev/null
+++ b/resources/js/Components/ui/collapsible/CollapsibleTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/collapsible/index.js b/resources/js/Components/ui/collapsible/index.js
new file mode 100644
index 0000000..289bdbb
--- /dev/null
+++ b/resources/js/Components/ui/collapsible/index.js
@@ -0,0 +1,3 @@
+export { default as Collapsible } from "./Collapsible.vue";
+export { default as CollapsibleContent } from "./CollapsibleContent.vue";
+export { default as CollapsibleTrigger } from "./CollapsibleTrigger.vue";
diff --git a/resources/js/Components/ui/collapsible/index.ts b/resources/js/Components/ui/collapsible/index.ts
new file mode 100644
index 0000000..86a031d
--- /dev/null
+++ b/resources/js/Components/ui/collapsible/index.ts
@@ -0,0 +1,3 @@
+export { default as Collapsible } from "./Collapsible.vue"
+export { default as CollapsibleContent } from "./CollapsibleContent.vue"
+export { default as CollapsibleTrigger } from "./CollapsibleTrigger.vue"
diff --git a/resources/js/Components/ui/command/Command.vue b/resources/js/Components/ui/command/Command.vue
new file mode 100644
index 0000000..01e49d9
--- /dev/null
+++ b/resources/js/Components/ui/command/Command.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandDialog.vue b/resources/js/Components/ui/command/CommandDialog.vue
new file mode 100644
index 0000000..89e84c4
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandDialog.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandEmpty.vue b/resources/js/Components/ui/command/CommandEmpty.vue
new file mode 100644
index 0000000..7211b50
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandEmpty.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandGroup.vue b/resources/js/Components/ui/command/CommandGroup.vue
new file mode 100644
index 0000000..961eb68
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandGroup.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+ {{ heading }}
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandInput.vue b/resources/js/Components/ui/command/CommandInput.vue
new file mode 100644
index 0000000..cdec7d1
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandInput.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandItem.vue b/resources/js/Components/ui/command/CommandItem.vue
new file mode 100644
index 0000000..513717c
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandItem.vue
@@ -0,0 +1,86 @@
+
+
+
+ {
+ filterState.search = '';
+ }
+ "
+ >
+
+
+
diff --git a/resources/js/Components/ui/command/CommandList.vue b/resources/js/Components/ui/command/CommandList.vue
new file mode 100644
index 0000000..82058d2
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandList.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandSeparator.vue b/resources/js/Components/ui/command/CommandSeparator.vue
new file mode 100644
index 0000000..2fb978e
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandSeparator.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/CommandShortcut.vue b/resources/js/Components/ui/command/CommandShortcut.vue
new file mode 100644
index 0000000..6301f1a
--- /dev/null
+++ b/resources/js/Components/ui/command/CommandShortcut.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/command/index.js b/resources/js/Components/ui/command/index.js
new file mode 100644
index 0000000..641cf56
--- /dev/null
+++ b/resources/js/Components/ui/command/index.js
@@ -0,0 +1,16 @@
+import { createContext } from "reka-ui";
+
+export { default as Command } from "./Command.vue";
+export { default as CommandDialog } from "./CommandDialog.vue";
+export { default as CommandEmpty } from "./CommandEmpty.vue";
+export { default as CommandGroup } from "./CommandGroup.vue";
+export { default as CommandInput } from "./CommandInput.vue";
+export { default as CommandItem } from "./CommandItem.vue";
+export { default as CommandList } from "./CommandList.vue";
+export { default as CommandSeparator } from "./CommandSeparator.vue";
+export { default as CommandShortcut } from "./CommandShortcut.vue";
+
+export const [useCommand, provideCommandContext] = createContext("Command");
+
+export const [useCommandGroup, provideCommandGroupContext] =
+ createContext("CommandGroup");
diff --git a/resources/js/Components/ui/dialog/Dialog.vue b/resources/js/Components/ui/dialog/Dialog.vue
new file mode 100644
index 0000000..0a4c8b2
--- /dev/null
+++ b/resources/js/Components/ui/dialog/Dialog.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogClose.vue b/resources/js/Components/ui/dialog/DialogClose.vue
new file mode 100644
index 0000000..c90b9bb
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogClose.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogContent.vue b/resources/js/Components/ui/dialog/DialogContent.vue
new file mode 100644
index 0000000..9c54b7e
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogContent.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogDescription.vue b/resources/js/Components/ui/dialog/DialogDescription.vue
new file mode 100644
index 0000000..544211e
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogDescription.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogFooter.vue b/resources/js/Components/ui/dialog/DialogFooter.vue
new file mode 100644
index 0000000..f623c10
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogFooter.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogHeader.vue b/resources/js/Components/ui/dialog/DialogHeader.vue
new file mode 100644
index 0000000..e745386
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogHeader.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogOverlay.vue b/resources/js/Components/ui/dialog/DialogOverlay.vue
new file mode 100644
index 0000000..e47c602
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogOverlay.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogScrollContent.vue b/resources/js/Components/ui/dialog/DialogScrollContent.vue
new file mode 100644
index 0000000..95cbf42
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogScrollContent.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+ {
+ const originalEvent = event.detail.originalEvent;
+ const target = originalEvent.target;
+ if (
+ originalEvent.offsetX > target.clientWidth ||
+ originalEvent.offsetY > target.clientHeight
+ ) {
+ event.preventDefault();
+ }
+ }
+ "
+ >
+
+
+
+
+ Close
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogTitle.vue b/resources/js/Components/ui/dialog/DialogTitle.vue
new file mode 100644
index 0000000..6093ccf
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogTitle.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/DialogTrigger.vue b/resources/js/Components/ui/dialog/DialogTrigger.vue
new file mode 100644
index 0000000..ce69288
--- /dev/null
+++ b/resources/js/Components/ui/dialog/DialogTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dialog/index.js b/resources/js/Components/ui/dialog/index.js
new file mode 100644
index 0000000..e2b3a15
--- /dev/null
+++ b/resources/js/Components/ui/dialog/index.js
@@ -0,0 +1,9 @@
+export { default as Dialog } from "./Dialog.vue";
+export { default as DialogClose } from "./DialogClose.vue";
+export { default as DialogContent } from "./DialogContent.vue";
+export { default as DialogDescription } from "./DialogDescription.vue";
+export { default as DialogFooter } from "./DialogFooter.vue";
+export { default as DialogHeader } from "./DialogHeader.vue";
+export { default as DialogScrollContent } from "./DialogScrollContent.vue";
+export { default as DialogTitle } from "./DialogTitle.vue";
+export { default as DialogTrigger } from "./DialogTrigger.vue";
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenu.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenu.vue
new file mode 100644
index 0000000..bf38258
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenu.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
new file mode 100644
index 0000000..fcbad83
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuContent.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuContent.vue
new file mode 100644
index 0000000..99f35fa
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuContent.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuGroup.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuGroup.vue
new file mode 100644
index 0000000..80c581a
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuGroup.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuItem.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuItem.vue
new file mode 100644
index 0000000..98d1aa9
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuItem.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuLabel.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuLabel.vue
new file mode 100644
index 0000000..f86fbdd
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuLabel.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioGroup.vue
new file mode 100644
index 0000000..1c31a65
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioGroup.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioItem.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioItem.vue
new file mode 100644
index 0000000..9a454dd
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuRadioItem.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuSeparator.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuSeparator.vue
new file mode 100644
index 0000000..15864fa
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuSeparator.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuShortcut.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuShortcut.vue
new file mode 100644
index 0000000..9367641
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuSub.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuSub.vue
new file mode 100644
index 0000000..2a31a10
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuSub.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuSubContent.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuSubContent.vue
new file mode 100644
index 0000000..d6d0ced
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuSubContent.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuSubTrigger.vue
new file mode 100644
index 0000000..c3764f5
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/DropdownMenuTrigger.vue b/resources/js/Components/ui/dropdown-menu/DropdownMenuTrigger.vue
new file mode 100644
index 0000000..ada9a0a
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/DropdownMenuTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/dropdown-menu/index.js b/resources/js/Components/ui/dropdown-menu/index.js
new file mode 100644
index 0000000..9e57848
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/index.js
@@ -0,0 +1,16 @@
+export { default as DropdownMenu } from "./DropdownMenu.vue";
+
+export { default as DropdownMenuCheckboxItem } from "./DropdownMenuCheckboxItem.vue";
+export { default as DropdownMenuContent } from "./DropdownMenuContent.vue";
+export { default as DropdownMenuGroup } from "./DropdownMenuGroup.vue";
+export { default as DropdownMenuItem } from "./DropdownMenuItem.vue";
+export { default as DropdownMenuLabel } from "./DropdownMenuLabel.vue";
+export { default as DropdownMenuRadioGroup } from "./DropdownMenuRadioGroup.vue";
+export { default as DropdownMenuRadioItem } from "./DropdownMenuRadioItem.vue";
+export { default as DropdownMenuSeparator } from "./DropdownMenuSeparator.vue";
+export { default as DropdownMenuShortcut } from "./DropdownMenuShortcut.vue";
+export { default as DropdownMenuSub } from "./DropdownMenuSub.vue";
+export { default as DropdownMenuSubContent } from "./DropdownMenuSubContent.vue";
+export { default as DropdownMenuSubTrigger } from "./DropdownMenuSubTrigger.vue";
+export { default as DropdownMenuTrigger } from "./DropdownMenuTrigger.vue";
+export { DropdownMenuPortal } from "reka-ui";
diff --git a/resources/js/Components/ui/dropdown-menu/index.ts b/resources/js/Components/ui/dropdown-menu/index.ts
new file mode 100644
index 0000000..955fe3a
--- /dev/null
+++ b/resources/js/Components/ui/dropdown-menu/index.ts
@@ -0,0 +1,16 @@
+export { default as DropdownMenu } from "./DropdownMenu.vue"
+
+export { default as DropdownMenuCheckboxItem } from "./DropdownMenuCheckboxItem.vue"
+export { default as DropdownMenuContent } from "./DropdownMenuContent.vue"
+export { default as DropdownMenuGroup } from "./DropdownMenuGroup.vue"
+export { default as DropdownMenuItem } from "./DropdownMenuItem.vue"
+export { default as DropdownMenuLabel } from "./DropdownMenuLabel.vue"
+export { default as DropdownMenuRadioGroup } from "./DropdownMenuRadioGroup.vue"
+export { default as DropdownMenuRadioItem } from "./DropdownMenuRadioItem.vue"
+export { default as DropdownMenuSeparator } from "./DropdownMenuSeparator.vue"
+export { default as DropdownMenuShortcut } from "./DropdownMenuShortcut.vue"
+export { default as DropdownMenuSub } from "./DropdownMenuSub.vue"
+export { default as DropdownMenuSubContent } from "./DropdownMenuSubContent.vue"
+export { default as DropdownMenuSubTrigger } from "./DropdownMenuSubTrigger.vue"
+export { default as DropdownMenuTrigger } from "./DropdownMenuTrigger.vue"
+export { DropdownMenuPortal } from "reka-ui"
diff --git a/resources/js/Components/ui/field/Field.vue b/resources/js/Components/ui/field/Field.vue
new file mode 100644
index 0000000..f1eb945
--- /dev/null
+++ b/resources/js/Components/ui/field/Field.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldContent.vue b/resources/js/Components/ui/field/FieldContent.vue
new file mode 100644
index 0000000..23af8c5
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldContent.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldDescription.vue b/resources/js/Components/ui/field/FieldDescription.vue
new file mode 100644
index 0000000..e10c129
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldDescription.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldError.vue b/resources/js/Components/ui/field/FieldError.vue
new file mode 100644
index 0000000..92b3b00
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldError.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ {{ content }}
+
+
+
+ -
+ {{ error?.message }}
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldGroup.vue b/resources/js/Components/ui/field/FieldGroup.vue
new file mode 100644
index 0000000..f471d40
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldGroup.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldLabel.vue b/resources/js/Components/ui/field/FieldLabel.vue
new file mode 100644
index 0000000..74f0469
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldLabel.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldLegend.vue b/resources/js/Components/ui/field/FieldLegend.vue
new file mode 100644
index 0000000..3ef8750
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldLegend.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldSeparator.vue b/resources/js/Components/ui/field/FieldSeparator.vue
new file mode 100644
index 0000000..064e0ff
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldSeparator.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldSet.vue b/resources/js/Components/ui/field/FieldSet.vue
new file mode 100644
index 0000000..f7d81d5
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldSet.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/FieldTitle.vue b/resources/js/Components/ui/field/FieldTitle.vue
new file mode 100644
index 0000000..0ec8c8f
--- /dev/null
+++ b/resources/js/Components/ui/field/FieldTitle.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/field/index.js b/resources/js/Components/ui/field/index.js
new file mode 100644
index 0000000..ed28078
--- /dev/null
+++ b/resources/js/Components/ui/field/index.js
@@ -0,0 +1,36 @@
+import { cva } from "class-variance-authority";
+
+export const fieldVariants = cva(
+ "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
+ {
+ variants: {
+ orientation: {
+ vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
+ horizontal: [
+ "flex-row items-center",
+ "[&>[data-slot=field-label]]:flex-auto",
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
+ ],
+ responsive: [
+ "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto",
+ "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
+ ],
+ },
+ },
+ defaultVariants: {
+ orientation: "vertical",
+ },
+ },
+);
+
+export { default as Field } from "./Field.vue";
+export { default as FieldContent } from "./FieldContent.vue";
+export { default as FieldDescription } from "./FieldDescription.vue";
+export { default as FieldError } from "./FieldError.vue";
+export { default as FieldGroup } from "./FieldGroup.vue";
+export { default as FieldLabel } from "./FieldLabel.vue";
+export { default as FieldLegend } from "./FieldLegend.vue";
+export { default as FieldSeparator } from "./FieldSeparator.vue";
+export { default as FieldSet } from "./FieldSet.vue";
+export { default as FieldTitle } from "./FieldTitle.vue";
diff --git a/resources/js/Components/ui/form/FormControl.vue b/resources/js/Components/ui/form/FormControl.vue
new file mode 100644
index 0000000..ca8c783
--- /dev/null
+++ b/resources/js/Components/ui/form/FormControl.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/form/FormDescription.vue b/resources/js/Components/ui/form/FormDescription.vue
new file mode 100644
index 0000000..7dd1ace
--- /dev/null
+++ b/resources/js/Components/ui/form/FormDescription.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/form/FormItem.vue b/resources/js/Components/ui/form/FormItem.vue
new file mode 100644
index 0000000..54fe9f0
--- /dev/null
+++ b/resources/js/Components/ui/form/FormItem.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/form/FormLabel.vue b/resources/js/Components/ui/form/FormLabel.vue
new file mode 100644
index 0000000..8f98472
--- /dev/null
+++ b/resources/js/Components/ui/form/FormLabel.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/form/FormMessage.vue b/resources/js/Components/ui/form/FormMessage.vue
new file mode 100644
index 0000000..4294cf0
--- /dev/null
+++ b/resources/js/Components/ui/form/FormMessage.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/form/index.js b/resources/js/Components/ui/form/index.js
new file mode 100644
index 0000000..7749894
--- /dev/null
+++ b/resources/js/Components/ui/form/index.js
@@ -0,0 +1,11 @@
+export { default as FormControl } from "./FormControl.vue";
+export { default as FormDescription } from "./FormDescription.vue";
+export { default as FormItem } from "./FormItem.vue";
+export { default as FormLabel } from "./FormLabel.vue";
+export { default as FormMessage } from "./FormMessage.vue";
+export { FORM_ITEM_INJECTION_KEY } from "./injectionKeys";
+export {
+ Form,
+ Field as FormField,
+ FieldArray as FormFieldArray,
+} from "vee-validate";
diff --git a/resources/js/Components/ui/form/injectionKeys.js b/resources/js/Components/ui/form/injectionKeys.js
new file mode 100644
index 0000000..533eabd
--- /dev/null
+++ b/resources/js/Components/ui/form/injectionKeys.js
@@ -0,0 +1 @@
+export const FORM_ITEM_INJECTION_KEY = Symbol();
diff --git a/resources/js/Components/ui/form/useFormField.js b/resources/js/Components/ui/form/useFormField.js
new file mode 100644
index 0000000..9c5a764
--- /dev/null
+++ b/resources/js/Components/ui/form/useFormField.js
@@ -0,0 +1,30 @@
+import { FieldContextKey } from "vee-validate";
+import { computed, inject } from "vue";
+import { FORM_ITEM_INJECTION_KEY } from "./injectionKeys";
+
+export function useFormField() {
+ const fieldContext = inject(FieldContextKey);
+ const fieldItemContext = inject(FORM_ITEM_INJECTION_KEY);
+
+ if (!fieldContext)
+ throw new Error("useFormField should be used within ");
+
+ const { name, errorMessage: error, meta } = fieldContext;
+ const id = fieldItemContext;
+
+ const fieldState = {
+ valid: computed(() => meta.valid),
+ isDirty: computed(() => meta.dirty),
+ isTouched: computed(() => meta.touched),
+ error,
+ };
+
+ return {
+ id,
+ name,
+ formItemId: `${id}-form-item`,
+ formDescriptionId: `${id}-form-item-description`,
+ formMessageId: `${id}-form-item-message`,
+ ...fieldState,
+ };
+}
diff --git a/resources/js/Components/ui/input-group/InputGroup.vue b/resources/js/Components/ui/input-group/InputGroup.vue
new file mode 100644
index 0000000..fb0ce2b
--- /dev/null
+++ b/resources/js/Components/ui/input-group/InputGroup.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/input-group/InputGroupAddon.vue b/resources/js/Components/ui/input-group/InputGroupAddon.vue
new file mode 100644
index 0000000..d2510fd
--- /dev/null
+++ b/resources/js/Components/ui/input-group/InputGroupAddon.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/input/Input.vue b/resources/js/Components/ui/input/Input.vue
new file mode 100644
index 0000000..e5135c1
--- /dev/null
+++ b/resources/js/Components/ui/input/Input.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/input/index.js b/resources/js/Components/ui/input/index.js
new file mode 100644
index 0000000..110f046
--- /dev/null
+++ b/resources/js/Components/ui/input/index.js
@@ -0,0 +1 @@
+export { default as Input } from "./Input.vue";
diff --git a/resources/js/Components/ui/input/index.ts b/resources/js/Components/ui/input/index.ts
new file mode 100644
index 0000000..9976b86
--- /dev/null
+++ b/resources/js/Components/ui/input/index.ts
@@ -0,0 +1 @@
+export { default as Input } from "./Input.vue"
diff --git a/resources/js/Components/ui/item/Item.vue b/resources/js/Components/ui/item/Item.vue
new file mode 100644
index 0000000..0a863ce
--- /dev/null
+++ b/resources/js/Components/ui/item/Item.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemActions.vue b/resources/js/Components/ui/item/ItemActions.vue
new file mode 100644
index 0000000..42620a8
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemActions.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemContent.vue b/resources/js/Components/ui/item/ItemContent.vue
new file mode 100644
index 0000000..385c799
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemContent.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemDescription.vue b/resources/js/Components/ui/item/ItemDescription.vue
new file mode 100644
index 0000000..91951e6
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemDescription.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemFooter.vue b/resources/js/Components/ui/item/ItemFooter.vue
new file mode 100644
index 0000000..fe5a5ef
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemFooter.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemGroup.vue b/resources/js/Components/ui/item/ItemGroup.vue
new file mode 100644
index 0000000..4655d3c
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemGroup.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemHeader.vue b/resources/js/Components/ui/item/ItemHeader.vue
new file mode 100644
index 0000000..04848e3
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemHeader.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemMedia.vue b/resources/js/Components/ui/item/ItemMedia.vue
new file mode 100644
index 0000000..36f69ff
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemMedia.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemSeparator.vue b/resources/js/Components/ui/item/ItemSeparator.vue
new file mode 100644
index 0000000..5cb0291
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemSeparator.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/ItemTitle.vue b/resources/js/Components/ui/item/ItemTitle.vue
new file mode 100644
index 0000000..b9c042f
--- /dev/null
+++ b/resources/js/Components/ui/item/ItemTitle.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/item/index.js b/resources/js/Components/ui/item/index.js
new file mode 100644
index 0000000..0a70557
--- /dev/null
+++ b/resources/js/Components/ui/item/index.js
@@ -0,0 +1,50 @@
+import { cva } from "class-variance-authority";
+
+export { default as Item } from "./Item.vue";
+export { default as ItemActions } from "./ItemActions.vue";
+export { default as ItemContent } from "./ItemContent.vue";
+export { default as ItemDescription } from "./ItemDescription.vue";
+export { default as ItemFooter } from "./ItemFooter.vue";
+export { default as ItemGroup } from "./ItemGroup.vue";
+export { default as ItemHeader } from "./ItemHeader.vue";
+export { default as ItemMedia } from "./ItemMedia.vue";
+export { default as ItemSeparator } from "./ItemSeparator.vue";
+export { default as ItemTitle } from "./ItemTitle.vue";
+
+export const itemVariants = cva(
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-1",
+ {
+ variants: {
+ variant: {
+ default: "bg-transparent",
+ outline: "border-border",
+ muted: "bg-muted/50",
+ },
+ size: {
+ default: "p-4 gap-4 ",
+ sm: "py-3 px-4 gap-2.5",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ },
+);
+
+export const itemMediaVariants = cva(
+ "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",
+ {
+ variants: {
+ variant: {
+ default: "bg-transparent",
+ icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",
+ image:
+ "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ },
+);
diff --git a/resources/js/Components/ui/label/Label.vue b/resources/js/Components/ui/label/Label.vue
new file mode 100644
index 0000000..b20aec0
--- /dev/null
+++ b/resources/js/Components/ui/label/Label.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/label/index.js b/resources/js/Components/ui/label/index.js
new file mode 100644
index 0000000..38eaa35
--- /dev/null
+++ b/resources/js/Components/ui/label/index.js
@@ -0,0 +1 @@
+export { default as Label } from "./Label.vue";
diff --git a/resources/js/Components/ui/pagination/Pagination.vue b/resources/js/Components/ui/pagination/Pagination.vue
new file mode 100644
index 0000000..7ac2a36
--- /dev/null
+++ b/resources/js/Components/ui/pagination/Pagination.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationContent.vue b/resources/js/Components/ui/pagination/PaginationContent.vue
new file mode 100644
index 0000000..61f7809
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationContent.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationEllipsis.vue b/resources/js/Components/ui/pagination/PaginationEllipsis.vue
new file mode 100644
index 0000000..48e04a6
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationEllipsis.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ More pages
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationFirst.vue b/resources/js/Components/ui/pagination/PaginationFirst.vue
new file mode 100644
index 0000000..2d9576a
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationFirst.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ First
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationItem.vue b/resources/js/Components/ui/pagination/PaginationItem.vue
new file mode 100644
index 0000000..c999a2e
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationItem.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationLast.vue b/resources/js/Components/ui/pagination/PaginationLast.vue
new file mode 100644
index 0000000..997ddd3
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationLast.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Last
+
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationNext.vue b/resources/js/Components/ui/pagination/PaginationNext.vue
new file mode 100644
index 0000000..bf817e9
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationNext.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Next
+
+
+
+
diff --git a/resources/js/Components/ui/pagination/PaginationPrevious.vue b/resources/js/Components/ui/pagination/PaginationPrevious.vue
new file mode 100644
index 0000000..548b732
--- /dev/null
+++ b/resources/js/Components/ui/pagination/PaginationPrevious.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ Previous
+
+
+
diff --git a/resources/js/Components/ui/pagination/index.js b/resources/js/Components/ui/pagination/index.js
new file mode 100644
index 0000000..349edff
--- /dev/null
+++ b/resources/js/Components/ui/pagination/index.js
@@ -0,0 +1,8 @@
+export { default as Pagination } from "./Pagination.vue";
+export { default as PaginationContent } from "./PaginationContent.vue";
+export { default as PaginationEllipsis } from "./PaginationEllipsis.vue";
+export { default as PaginationFirst } from "./PaginationFirst.vue";
+export { default as PaginationItem } from "./PaginationItem.vue";
+export { default as PaginationLast } from "./PaginationLast.vue";
+export { default as PaginationNext } from "./PaginationNext.vue";
+export { default as PaginationPrevious } from "./PaginationPrevious.vue";
diff --git a/resources/js/Components/ui/popover/Popover.vue b/resources/js/Components/ui/popover/Popover.vue
new file mode 100644
index 0000000..a5210da
--- /dev/null
+++ b/resources/js/Components/ui/popover/Popover.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/popover/PopoverContent.vue b/resources/js/Components/ui/popover/PopoverContent.vue
new file mode 100644
index 0000000..789014f
--- /dev/null
+++ b/resources/js/Components/ui/popover/PopoverContent.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/popover/PopoverTrigger.vue b/resources/js/Components/ui/popover/PopoverTrigger.vue
new file mode 100644
index 0000000..ed1cdee
--- /dev/null
+++ b/resources/js/Components/ui/popover/PopoverTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/popover/index.js b/resources/js/Components/ui/popover/index.js
new file mode 100644
index 0000000..ce5130a
--- /dev/null
+++ b/resources/js/Components/ui/popover/index.js
@@ -0,0 +1,4 @@
+export { default as Popover } from "./Popover.vue";
+export { default as PopoverContent } from "./PopoverContent.vue";
+export { default as PopoverTrigger } from "./PopoverTrigger.vue";
+export { PopoverAnchor } from "reka-ui";
diff --git a/resources/js/Components/ui/progress/Progress.vue b/resources/js/Components/ui/progress/Progress.vue
new file mode 100644
index 0000000..fa41c95
--- /dev/null
+++ b/resources/js/Components/ui/progress/Progress.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/progress/index.js b/resources/js/Components/ui/progress/index.js
new file mode 100644
index 0000000..e934a9b
--- /dev/null
+++ b/resources/js/Components/ui/progress/index.js
@@ -0,0 +1 @@
+export { default as Progress } from "./Progress.vue";
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendar.vue b/resources/js/Components/ui/range-calendar/RangeCalendar.vue
new file mode 100644
index 0000000..b18bd9a
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendar.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ day }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarCell.vue b/resources/js/Components/ui/range-calendar/RangeCalendarCell.vue
new file mode 100644
index 0000000..e284d49
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarCell.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarCellTrigger.vue b/resources/js/Components/ui/range-calendar/RangeCalendarCellTrigger.vue
new file mode 100644
index 0000000..b3d2cd0
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarCellTrigger.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarGrid.vue b/resources/js/Components/ui/range-calendar/RangeCalendarGrid.vue
new file mode 100644
index 0000000..e85b8ef
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarGrid.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarGridBody.vue b/resources/js/Components/ui/range-calendar/RangeCalendarGridBody.vue
new file mode 100644
index 0000000..a660623
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarGridBody.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarGridHead.vue b/resources/js/Components/ui/range-calendar/RangeCalendarGridHead.vue
new file mode 100644
index 0000000..44ceea4
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarGridHead.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarGridRow.vue b/resources/js/Components/ui/range-calendar/RangeCalendarGridRow.vue
new file mode 100644
index 0000000..d2e3425
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarGridRow.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarHeadCell.vue b/resources/js/Components/ui/range-calendar/RangeCalendarHeadCell.vue
new file mode 100644
index 0000000..b2cfeb7
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarHeadCell.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarHeader.vue b/resources/js/Components/ui/range-calendar/RangeCalendarHeader.vue
new file mode 100644
index 0000000..8312ee2
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarHeader.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarHeading.vue b/resources/js/Components/ui/range-calendar/RangeCalendarHeading.vue
new file mode 100644
index 0000000..b80ef45
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarHeading.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ {{ headingValue }}
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarNextButton.vue b/resources/js/Components/ui/range-calendar/RangeCalendarNextButton.vue
new file mode 100644
index 0000000..243d5ea
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarNextButton.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/RangeCalendarPrevButton.vue b/resources/js/Components/ui/range-calendar/RangeCalendarPrevButton.vue
new file mode 100644
index 0000000..9b89962
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/RangeCalendarPrevButton.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/range-calendar/index.js b/resources/js/Components/ui/range-calendar/index.js
new file mode 100644
index 0000000..c7b3c6c
--- /dev/null
+++ b/resources/js/Components/ui/range-calendar/index.js
@@ -0,0 +1,12 @@
+export { default as RangeCalendar } from "./RangeCalendar.vue";
+export { default as RangeCalendarCell } from "./RangeCalendarCell.vue";
+export { default as RangeCalendarCellTrigger } from "./RangeCalendarCellTrigger.vue";
+export { default as RangeCalendarGrid } from "./RangeCalendarGrid.vue";
+export { default as RangeCalendarGridBody } from "./RangeCalendarGridBody.vue";
+export { default as RangeCalendarGridHead } from "./RangeCalendarGridHead.vue";
+export { default as RangeCalendarGridRow } from "./RangeCalendarGridRow.vue";
+export { default as RangeCalendarHeadCell } from "./RangeCalendarHeadCell.vue";
+export { default as RangeCalendarHeader } from "./RangeCalendarHeader.vue";
+export { default as RangeCalendarHeading } from "./RangeCalendarHeading.vue";
+export { default as RangeCalendarNextButton } from "./RangeCalendarNextButton.vue";
+export { default as RangeCalendarPrevButton } from "./RangeCalendarPrevButton.vue";
diff --git a/resources/js/Components/ui/scroll-area/ScrollArea.vue b/resources/js/Components/ui/scroll-area/ScrollArea.vue
new file mode 100644
index 0000000..193427c
--- /dev/null
+++ b/resources/js/Components/ui/scroll-area/ScrollArea.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/scroll-area/ScrollBar.vue b/resources/js/Components/ui/scroll-area/ScrollBar.vue
new file mode 100644
index 0000000..9ff5bbe
--- /dev/null
+++ b/resources/js/Components/ui/scroll-area/ScrollBar.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/scroll-area/index.js b/resources/js/Components/ui/scroll-area/index.js
new file mode 100644
index 0000000..cd655e0
--- /dev/null
+++ b/resources/js/Components/ui/scroll-area/index.js
@@ -0,0 +1,2 @@
+export { default as ScrollArea } from "./ScrollArea.vue";
+export { default as ScrollBar } from "./ScrollBar.vue";
diff --git a/resources/js/Components/ui/select/Select.vue b/resources/js/Components/ui/select/Select.vue
new file mode 100644
index 0000000..3980c72
--- /dev/null
+++ b/resources/js/Components/ui/select/Select.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectContent.vue b/resources/js/Components/ui/select/SelectContent.vue
new file mode 100644
index 0000000..2d54dd7
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectContent.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectGroup.vue b/resources/js/Components/ui/select/SelectGroup.vue
new file mode 100644
index 0000000..f1f2d8a
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectGroup.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectItem.vue b/resources/js/Components/ui/select/SelectItem.vue
new file mode 100644
index 0000000..ec569d1
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectItem.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectItemText.vue b/resources/js/Components/ui/select/SelectItemText.vue
new file mode 100644
index 0000000..fa595bf
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectItemText.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectLabel.vue b/resources/js/Components/ui/select/SelectLabel.vue
new file mode 100644
index 0000000..0a77b37
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectLabel.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectScrollDownButton.vue b/resources/js/Components/ui/select/SelectScrollDownButton.vue
new file mode 100644
index 0000000..e21948b
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectScrollDownButton.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectScrollUpButton.vue b/resources/js/Components/ui/select/SelectScrollUpButton.vue
new file mode 100644
index 0000000..63f5868
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectScrollUpButton.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectSeparator.vue b/resources/js/Components/ui/select/SelectSeparator.vue
new file mode 100644
index 0000000..c7f1bf7
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectSeparator.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectTrigger.vue b/resources/js/Components/ui/select/SelectTrigger.vue
new file mode 100644
index 0000000..35127a9
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectTrigger.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/SelectValue.vue b/resources/js/Components/ui/select/SelectValue.vue
new file mode 100644
index 0000000..d890e8a
--- /dev/null
+++ b/resources/js/Components/ui/select/SelectValue.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/select/index.js b/resources/js/Components/ui/select/index.js
new file mode 100644
index 0000000..d911c4e
--- /dev/null
+++ b/resources/js/Components/ui/select/index.js
@@ -0,0 +1,11 @@
+export { default as Select } from "./Select.vue";
+export { default as SelectContent } from "./SelectContent.vue";
+export { default as SelectGroup } from "./SelectGroup.vue";
+export { default as SelectItem } from "./SelectItem.vue";
+export { default as SelectItemText } from "./SelectItemText.vue";
+export { default as SelectLabel } from "./SelectLabel.vue";
+export { default as SelectScrollDownButton } from "./SelectScrollDownButton.vue";
+export { default as SelectScrollUpButton } from "./SelectScrollUpButton.vue";
+export { default as SelectSeparator } from "./SelectSeparator.vue";
+export { default as SelectTrigger } from "./SelectTrigger.vue";
+export { default as SelectValue } from "./SelectValue.vue";
diff --git a/resources/js/Components/ui/separator/Separator.vue b/resources/js/Components/ui/separator/Separator.vue
new file mode 100644
index 0000000..78d60ec
--- /dev/null
+++ b/resources/js/Components/ui/separator/Separator.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/separator/index.js b/resources/js/Components/ui/separator/index.js
new file mode 100644
index 0000000..aae7f1a
--- /dev/null
+++ b/resources/js/Components/ui/separator/index.js
@@ -0,0 +1 @@
+export { default as Separator } from "./Separator.vue";
diff --git a/resources/js/Components/ui/separator/index.ts b/resources/js/Components/ui/separator/index.ts
new file mode 100644
index 0000000..4407287
--- /dev/null
+++ b/resources/js/Components/ui/separator/index.ts
@@ -0,0 +1 @@
+export { default as Separator } from "./Separator.vue"
diff --git a/resources/js/Components/ui/sheet/Sheet.vue b/resources/js/Components/ui/sheet/Sheet.vue
new file mode 100644
index 0000000..8522f84
--- /dev/null
+++ b/resources/js/Components/ui/sheet/Sheet.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetClose.vue b/resources/js/Components/ui/sheet/SheetClose.vue
new file mode 100644
index 0000000..39a942c
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetClose.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetContent.vue b/resources/js/Components/ui/sheet/SheetContent.vue
new file mode 100644
index 0000000..e0c4b8f
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetContent.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetDescription.vue b/resources/js/Components/ui/sheet/SheetDescription.vue
new file mode 100644
index 0000000..6c8ba0a
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetDescription.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetFooter.vue b/resources/js/Components/ui/sheet/SheetFooter.vue
new file mode 100644
index 0000000..5fcf751
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetFooter.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetHeader.vue b/resources/js/Components/ui/sheet/SheetHeader.vue
new file mode 100644
index 0000000..b6305ab
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetHeader.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetOverlay.vue b/resources/js/Components/ui/sheet/SheetOverlay.vue
new file mode 100644
index 0000000..220452a
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetOverlay.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetTitle.vue b/resources/js/Components/ui/sheet/SheetTitle.vue
new file mode 100644
index 0000000..889ae54
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetTitle.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/SheetTrigger.vue b/resources/js/Components/ui/sheet/SheetTrigger.vue
new file mode 100644
index 0000000..41b121d
--- /dev/null
+++ b/resources/js/Components/ui/sheet/SheetTrigger.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/sheet/index.js b/resources/js/Components/ui/sheet/index.js
new file mode 100644
index 0000000..b94a071
--- /dev/null
+++ b/resources/js/Components/ui/sheet/index.js
@@ -0,0 +1,8 @@
+export { default as Sheet } from "./Sheet.vue";
+export { default as SheetClose } from "./SheetClose.vue";
+export { default as SheetContent } from "./SheetContent.vue";
+export { default as SheetDescription } from "./SheetDescription.vue";
+export { default as SheetFooter } from "./SheetFooter.vue";
+export { default as SheetHeader } from "./SheetHeader.vue";
+export { default as SheetTitle } from "./SheetTitle.vue";
+export { default as SheetTrigger } from "./SheetTrigger.vue";
diff --git a/resources/js/Components/ui/sheet/index.ts b/resources/js/Components/ui/sheet/index.ts
new file mode 100644
index 0000000..7c70e5d
--- /dev/null
+++ b/resources/js/Components/ui/sheet/index.ts
@@ -0,0 +1,8 @@
+export { default as Sheet } from "./Sheet.vue"
+export { default as SheetClose } from "./SheetClose.vue"
+export { default as SheetContent } from "./SheetContent.vue"
+export { default as SheetDescription } from "./SheetDescription.vue"
+export { default as SheetFooter } from "./SheetFooter.vue"
+export { default as SheetHeader } from "./SheetHeader.vue"
+export { default as SheetTitle } from "./SheetTitle.vue"
+export { default as SheetTrigger } from "./SheetTrigger.vue"
diff --git a/resources/js/Components/ui/skeleton/Skeleton.vue b/resources/js/Components/ui/skeleton/Skeleton.vue
new file mode 100644
index 0000000..0dadcef
--- /dev/null
+++ b/resources/js/Components/ui/skeleton/Skeleton.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/skeleton/index.js b/resources/js/Components/ui/skeleton/index.js
new file mode 100644
index 0000000..72cb1d9
--- /dev/null
+++ b/resources/js/Components/ui/skeleton/index.js
@@ -0,0 +1 @@
+export { default as Skeleton } from "./Skeleton.vue";
diff --git a/resources/js/Components/ui/skeleton/index.ts b/resources/js/Components/ui/skeleton/index.ts
new file mode 100644
index 0000000..e5ce72c
--- /dev/null
+++ b/resources/js/Components/ui/skeleton/index.ts
@@ -0,0 +1 @@
+export { default as Skeleton } from "./Skeleton.vue"
diff --git a/resources/js/Components/ui/sonner/Sonner.vue b/resources/js/Components/ui/sonner/Sonner.vue
new file mode 100644
index 0000000..9bb1384
--- /dev/null
+++ b/resources/js/Components/ui/sonner/Sonner.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/sonner/index.js b/resources/js/Components/ui/sonner/index.js
new file mode 100644
index 0000000..39a59dd
--- /dev/null
+++ b/resources/js/Components/ui/sonner/index.js
@@ -0,0 +1 @@
+export { default as Toaster } from "./Sonner.vue";
diff --git a/resources/js/Components/ui/switch/Switch.vue b/resources/js/Components/ui/switch/Switch.vue
new file mode 100644
index 0000000..5114da7
--- /dev/null
+++ b/resources/js/Components/ui/switch/Switch.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/switch/index.js b/resources/js/Components/ui/switch/index.js
new file mode 100644
index 0000000..c986f8a
--- /dev/null
+++ b/resources/js/Components/ui/switch/index.js
@@ -0,0 +1 @@
+export { default as Switch } from "./Switch.vue";
diff --git a/resources/js/Components/ui/table/Table.vue b/resources/js/Components/ui/table/Table.vue
new file mode 100644
index 0000000..7b7540f
--- /dev/null
+++ b/resources/js/Components/ui/table/Table.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableBody.vue b/resources/js/Components/ui/table/TableBody.vue
new file mode 100644
index 0000000..fa451e1
--- /dev/null
+++ b/resources/js/Components/ui/table/TableBody.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableCaption.vue b/resources/js/Components/ui/table/TableCaption.vue
new file mode 100644
index 0000000..f6d4028
--- /dev/null
+++ b/resources/js/Components/ui/table/TableCaption.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableCell.vue b/resources/js/Components/ui/table/TableCell.vue
new file mode 100644
index 0000000..e9dab9c
--- /dev/null
+++ b/resources/js/Components/ui/table/TableCell.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+ |
+
diff --git a/resources/js/Components/ui/table/TableEmpty.vue b/resources/js/Components/ui/table/TableEmpty.vue
new file mode 100644
index 0000000..0a94d54
--- /dev/null
+++ b/resources/js/Components/ui/table/TableEmpty.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableFooter.vue b/resources/js/Components/ui/table/TableFooter.vue
new file mode 100644
index 0000000..45bc82a
--- /dev/null
+++ b/resources/js/Components/ui/table/TableFooter.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableHead.vue b/resources/js/Components/ui/table/TableHead.vue
new file mode 100644
index 0000000..96d8dcc
--- /dev/null
+++ b/resources/js/Components/ui/table/TableHead.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+ |
+
diff --git a/resources/js/Components/ui/table/TableHeader.vue b/resources/js/Components/ui/table/TableHeader.vue
new file mode 100644
index 0000000..86901ef
--- /dev/null
+++ b/resources/js/Components/ui/table/TableHeader.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/TableRow.vue b/resources/js/Components/ui/table/TableRow.vue
new file mode 100644
index 0000000..ef64daf
--- /dev/null
+++ b/resources/js/Components/ui/table/TableRow.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/table/index.js b/resources/js/Components/ui/table/index.js
new file mode 100644
index 0000000..0afab4c
--- /dev/null
+++ b/resources/js/Components/ui/table/index.js
@@ -0,0 +1,9 @@
+export { default as Table } from "./Table.vue";
+export { default as TableBody } from "./TableBody.vue";
+export { default as TableCaption } from "./TableCaption.vue";
+export { default as TableCell } from "./TableCell.vue";
+export { default as TableEmpty } from "./TableEmpty.vue";
+export { default as TableFooter } from "./TableFooter.vue";
+export { default as TableHead } from "./TableHead.vue";
+export { default as TableHeader } from "./TableHeader.vue";
+export { default as TableRow } from "./TableRow.vue";
diff --git a/resources/js/Components/ui/tabs/Tabs.vue b/resources/js/Components/ui/tabs/Tabs.vue
new file mode 100644
index 0000000..c17213b
--- /dev/null
+++ b/resources/js/Components/ui/tabs/Tabs.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tabs/TabsContent.vue b/resources/js/Components/ui/tabs/TabsContent.vue
new file mode 100644
index 0000000..e733e8c
--- /dev/null
+++ b/resources/js/Components/ui/tabs/TabsContent.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tabs/TabsList.vue b/resources/js/Components/ui/tabs/TabsList.vue
new file mode 100644
index 0000000..4c26e0e
--- /dev/null
+++ b/resources/js/Components/ui/tabs/TabsList.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tabs/TabsTrigger.vue b/resources/js/Components/ui/tabs/TabsTrigger.vue
new file mode 100644
index 0000000..6533644
--- /dev/null
+++ b/resources/js/Components/ui/tabs/TabsTrigger.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tabs/index.js b/resources/js/Components/ui/tabs/index.js
new file mode 100644
index 0000000..3b3741b
--- /dev/null
+++ b/resources/js/Components/ui/tabs/index.js
@@ -0,0 +1,4 @@
+export { default as Tabs } from "./Tabs.vue";
+export { default as TabsContent } from "./TabsContent.vue";
+export { default as TabsList } from "./TabsList.vue";
+export { default as TabsTrigger } from "./TabsTrigger.vue";
diff --git a/resources/js/Components/ui/textarea/Textarea.vue b/resources/js/Components/ui/textarea/Textarea.vue
new file mode 100644
index 0000000..415a4d4
--- /dev/null
+++ b/resources/js/Components/ui/textarea/Textarea.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/resources/js/Components/ui/textarea/index.js b/resources/js/Components/ui/textarea/index.js
new file mode 100644
index 0000000..178d08c
--- /dev/null
+++ b/resources/js/Components/ui/textarea/index.js
@@ -0,0 +1 @@
+export { default as Textarea } from "./Textarea.vue";
diff --git a/resources/js/Components/ui/tooltip/Tooltip.vue b/resources/js/Components/ui/tooltip/Tooltip.vue
new file mode 100644
index 0000000..2a393d6
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/Tooltip.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tooltip/TooltipContent.vue b/resources/js/Components/ui/tooltip/TooltipContent.vue
new file mode 100644
index 0000000..c5d2df9
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/TooltipContent.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tooltip/TooltipProvider.vue b/resources/js/Components/ui/tooltip/TooltipProvider.vue
new file mode 100644
index 0000000..395927d
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/TooltipProvider.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tooltip/TooltipTrigger.vue b/resources/js/Components/ui/tooltip/TooltipTrigger.vue
new file mode 100644
index 0000000..3332950
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/TooltipTrigger.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/ui/tooltip/index.js b/resources/js/Components/ui/tooltip/index.js
new file mode 100644
index 0000000..0a8a878
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/index.js
@@ -0,0 +1,4 @@
+export { default as Tooltip } from "./Tooltip.vue";
+export { default as TooltipContent } from "./TooltipContent.vue";
+export { default as TooltipProvider } from "./TooltipProvider.vue";
+export { default as TooltipTrigger } from "./TooltipTrigger.vue";
diff --git a/resources/js/Components/ui/tooltip/index.ts b/resources/js/Components/ui/tooltip/index.ts
new file mode 100644
index 0000000..8f8d514
--- /dev/null
+++ b/resources/js/Components/ui/tooltip/index.ts
@@ -0,0 +1,4 @@
+export { default as Tooltip } from "./Tooltip.vue"
+export { default as TooltipContent } from "./TooltipContent.vue"
+export { default as TooltipProvider } from "./TooltipProvider.vue"
+export { default as TooltipTrigger } from "./TooltipTrigger.vue"
diff --git a/resources/js/Layouts/AdminLayout.vue b/resources/js/Layouts/AdminLayout.vue
index eace7bf..e7e70ca 100644
--- a/resources/js/Layouts/AdminLayout.vue
+++ b/resources/js/Layouts/AdminLayout.vue
@@ -1,50 +1,89 @@
-
-
-
-
-
-
(isOpen = v)">
+
+
+
+
+
Začni tipkati za iskanje.
+
+ Namig: uporabi Ctrl +
+ K
+
+
+
+
+
-
-
-
-
-
-
-
-
+
Naročniki
+
{{ result.clients.length }}
-
+
+
+
+
+
+
+ Primeri
+ {{ result.client_cases.length }}
+
+
+
+
+
+
+ {{ clientcase.full_name }}
+
+
+ Naročnik: {{ clientcase.client_full_name }}
+
+
+
+
+ {{ clientcase.contract_reference }}
+
+
+
+
+
+ {{ seg.name || seg }}
+
+
+
+
+
+
+ {{ seg.name }}
+
+
+
+
+
+
+
+
+
+
+ Ni rezultatov.
+
-
-
+
+
-
-
diff --git a/resources/js/Layouts/Partials/NotificationsBell.vue b/resources/js/Layouts/Partials/NotificationsBell.vue
index 0146b3c..8a0e745 100644
--- a/resources/js/Layouts/Partials/NotificationsBell.vue
+++ b/resources/js/Layouts/Partials/NotificationsBell.vue
@@ -1,9 +1,12 @@
-
-
-
-
+
+
+