ui-thing 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2329,39 +2329,39 @@ export const buttonStyles = tv({
2329
2329
 
2330
2330
  const props = defineProps<ContextMenuTriggerProps>();
2331
2331
  </script>
2332
- `}],utils:[],composables:[],plugins:[]},{name:"Currency Input",value:"currency-input",deps:["vue-currency-input"],files:[{fileName:"CurrencyInput.vue",dirPath:"components/UI",fileContent:`<template>
2333
- <input ref="inputRef" type="text" :class="styles({ class: props.class })" v-bind="props" />
2334
- </template>
2335
-
2336
- <script lang="ts" setup>
2337
- import { defu } from "defu";
2338
- import { useCurrencyInput } from "vue-currency-input";
2339
- import type { CurrencyInputOptions } from "vue-currency-input";
2340
-
2341
- const props = defineProps<{
2342
- class?: any;
2343
- id?: string;
2344
- name?: string;
2345
- placeholder?: string;
2346
- disabled?: boolean;
2347
- required?: boolean;
2348
- modelValue?: any;
2349
- options?: CurrencyInputOptions;
2350
- }>();
2351
-
2352
- const { inputRef } = useCurrencyInput(
2353
- defu({}, props.options, {
2354
- currency: "USD",
2355
- locale: "en-US",
2356
- hideCurrencySymbolOnFocus: false,
2357
- hideGroupingSeparatorOnFocus: false,
2358
- })
2359
- );
2360
-
2361
- const styles = tv({
2362
- base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",
2363
- });
2364
- </script>
2332
+ `}],utils:[],composables:[],plugins:[]},{name:"Currency Input",value:"currency-input",deps:["vue-currency-input"],files:[{fileName:"CurrencyInput.vue",dirPath:"components/UI",fileContent:`<template>\r
2333
+ <input ref="inputRef" type="text" :class="styles({ class: props.class })" v-bind="props" />\r
2334
+ </template>\r
2335
+ \r
2336
+ <script lang="ts" setup>\r
2337
+ import { defu } from "defu";\r
2338
+ import { useCurrencyInput } from "vue-currency-input";\r
2339
+ import type { CurrencyInputOptions } from "vue-currency-input";\r
2340
+ \r
2341
+ const props = defineProps<{\r
2342
+ class?: any;\r
2343
+ id?: string;\r
2344
+ name?: string;\r
2345
+ placeholder?: string;\r
2346
+ disabled?: boolean;\r
2347
+ required?: boolean;\r
2348
+ modelValue?: any;\r
2349
+ options?: CurrencyInputOptions;\r
2350
+ }>();\r
2351
+ \r
2352
+ const { inputRef } = useCurrencyInput(\r
2353
+ defu({}, props.options, {\r
2354
+ currency: "USD",\r
2355
+ locale: "en-US",\r
2356
+ hideCurrencySymbolOnFocus: false,\r
2357
+ hideGroupingSeparatorOnFocus: false,\r
2358
+ })\r
2359
+ );\r
2360
+ \r
2361
+ const styles = tv({\r
2362
+ base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",\r
2363
+ });\r
2364
+ </script>\r
2365
2365
  `}],utils:[],composables:[],plugins:[]},{name:"DataTables.net",value:"datatable",deps:["datatables.net-buttons-dt","datatables.net-responsive-dt","datatables.net-searchbuilder-dt","datatables.net-select-dt","datatables.net-vue3","jszip"],plugins:[{fileName:"datatables.client.ts",dirPath:"plugins",fileContent:`import DataTablesCore from "datatables.net";
2366
2366
  import DataTable from "datatables.net-vue3";
2367
2367
  import JSZip from "jszip";
@@ -2383,1121 +2383,1121 @@ DataTable.use(DataTablesCore);
2383
2383
  export default defineNuxtPlugin((nuxtApp) => {
2384
2384
  nuxtApp.vueApp.component("DataTable", DataTable);
2385
2385
  });
2386
- `}],files:[{fileName:"Datatable.client.vue",dirPath:"components/UI",fileContent:`<template>
2387
- <DataTable
2388
- :columns="columns"
2389
- :ajax="ajax"
2390
- ref="table"
2391
- :data="data"
2392
- :class="props.class"
2393
- :options="options"
2394
- >
2395
- <template v-for="(_, name) in $slots" v-slot:[name]="scope">
2396
- <slot :name="name" v-bind="scope"></slot>
2397
- </template>
2398
- </DataTable>
2399
- </template>
2400
-
2401
- <script lang="ts" setup generic="T extends Record<string, any>">
2402
- import type DataTableRef from "datatables.net";
2403
- import type { Config } from "datatables.net";
2404
-
2405
- export type DataTablesNamedSlotProps<T> = {
2406
- /** The data to show in the cell (from the \`columns.data\` configuration) */
2407
- cellData: keyof T | null;
2408
- /** The column index for the cell (0-based index) */
2409
- colIndex: number;
2410
- /** The data object for the whole row */
2411
- rowData: T | Record<string, any>;
2412
- /** Row index for the cell (data index, not the display index) */
2413
- rowIndex: number;
2414
- /** Orthogonal data type */
2415
- type: string;
2416
- };
2417
-
2418
- const table = shallowRef<{ dt: InstanceType<typeof DataTableRef<T[]>> } | null>(null);
2419
-
2420
- const props = withDefaults(
2421
- defineProps<{
2422
- data?: Config["data"];
2423
- class?: any;
2424
- columns?: Config["columns"];
2425
- ajax?: Config["ajax"];
2426
- options?: Config;
2427
- }>(),
2428
- {
2429
- data: () => [],
2430
- class: "nowrap hover order-column row-border stripe display",
2431
- options: () => ({}),
2432
- }
2433
- );
2434
-
2435
- const emits = defineEmits<{
2436
- ready: [any];
2437
- }>();
2438
-
2439
- onMounted(() => {
2440
- nextTick(() => {
2441
- emits("ready", table.value?.dt);
2442
- });
2443
- });
2444
- </script>
2445
-
2446
- <style>
2447
- :root {
2448
- --dt-row-selected: 262.1, 83.3%, 57.8%;
2449
- --dt-row-selected-text: 210, 20%, 98%;
2450
- --dt-row-selected-link: 262.1, 83.3%, 57.8%;
2451
- --dt-row-stripe: 0, 0%, 100%;
2452
- --dt-row-hover: 0, 0%, 100%;
2453
- --dt-column-ordering: 0, 0%, 100%;
2454
- --dt-border: 220, 13%, 91%;
2455
- --dt-foreground: 224, 71.4%, 4.1%;
2456
- }
2457
-
2458
- .dark {
2459
- --dt-row-selected: 263.4, 70%, 50.4%;
2460
- --dt-row-selected-text: 210, 20%, 98%;
2461
- --dt-row-selected-link: 263.4, 70%, 50.4%;
2462
- --dt-row-stripe: 224, 71.4%, 4.1%;
2463
- --dt-row-hover: 224, 71.4%, 4.1%;
2464
- --dt-column-ordering: 224, 71.4%, 4.1%;
2465
- --dt-border: 215, 27.9%, 16.9%;
2466
- --dt-foreground: 224, 71.4%, 4.1%;
2467
- }
2468
-
2469
- table.dataTable td.dt-control {
2470
- text-align: center;
2471
- cursor: pointer;
2472
- }
2473
- table.dataTable td.dt-control:before {
2474
- display: inline-block;
2475
- color: hsla(var(--dt-foreground), 0.5);
2476
- content: "\u25BA";
2477
- }
2478
- table.dataTable tr.dt-hasChild td.dt-control:before {
2479
- content: "\u25BC";
2480
- }
2481
-
2482
- table.dataTable thead > tr > th.sorting,
2483
- table.dataTable thead > tr > th.sorting_asc,
2484
- table.dataTable thead > tr > th.sorting_desc,
2485
- table.dataTable thead > tr > th.sorting_asc_disabled,
2486
- table.dataTable thead > tr > th.sorting_desc_disabled,
2487
- table.dataTable thead > tr > td.sorting,
2488
- table.dataTable thead > tr > td.sorting_asc,
2489
- table.dataTable thead > tr > td.sorting_desc,
2490
- table.dataTable thead > tr > td.sorting_asc_disabled,
2491
- table.dataTable thead > tr > td.sorting_desc_disabled,
2492
- /* V2 */
2493
- table.dataTable thead > tr > th.dt-orderable-asc,
2494
- table.dataTable thead > tr > th.dt-orderable-desc,
2495
- table.dataTable thead > tr > td.dt-orderable-asc,
2496
- table.dataTable thead > tr > td.dt-orderable-desc {
2497
- @apply relative cursor-pointer pr-7;
2498
- }
2499
- table.dataTable thead > tr > th.sorting:before,
2500
- table.dataTable thead > tr > th.sorting:after,
2501
- table.dataTable thead > tr > th.sorting_asc:before,
2502
- table.dataTable thead > tr > th.sorting_asc:after,
2503
- table.dataTable thead > tr > th.sorting_desc:before,
2504
- table.dataTable thead > tr > th.sorting_desc:after,
2505
- table.dataTable thead > tr > th.sorting_asc_disabled:before,
2506
- table.dataTable thead > tr > th.sorting_asc_disabled:after,
2507
- table.dataTable thead > tr > th.sorting_desc_disabled:before,
2508
- table.dataTable thead > tr > th.sorting_desc_disabled:after,
2509
- table.dataTable thead > tr > td.sorting:before,
2510
- table.dataTable thead > tr > td.sorting:after,
2511
- table.dataTable thead > tr > td.sorting_asc:before,
2512
- table.dataTable thead > tr > td.sorting_asc:after,
2513
- table.dataTable thead > tr > td.sorting_desc:before,
2514
- table.dataTable thead > tr > td.sorting_desc:after,
2515
- table.dataTable thead > tr > td.sorting_asc_disabled:before,
2516
- table.dataTable thead > tr > td.sorting_asc_disabled:after,
2517
- table.dataTable thead > tr > td.sorting_desc_disabled:before,
2518
- table.dataTable thead > tr > td.sorting_desc_disabled:after,
2519
- /* V2 */
2520
- table.dataTable thead > tr > th.dt-orderable-asc:before,
2521
- table.dataTable thead > tr > th.dt-orderable-asc:after,
2522
- table.dataTable thead > tr > th.dt-orderable-desc:before,
2523
- table.dataTable thead > tr > th.dt-orderable-desc:after,
2524
- table.dataTable thead > tr > td.dt-orderable-asc:before,
2525
- table.dataTable thead > tr > td.dt-orderable-asc:after,
2526
- table.dataTable thead > tr > td.dt-orderable-desc:before,
2527
- table.dataTable thead > tr > td.dt-orderable-desc:after {
2528
- @apply absolute right-2.5 block text-xs leading-3 opacity-25;
2529
- }
2530
- table.dataTable thead > tr > th.sorting:before,
2531
- table.dataTable thead > tr > th.sorting_asc:before,
2532
- table.dataTable thead > tr > th.sorting_desc:before,
2533
- table.dataTable thead > tr > th.sorting_asc_disabled:before,
2534
- table.dataTable thead > tr > th.sorting_desc_disabled:before,
2535
- table.dataTable thead > tr > td.sorting:before,
2536
- table.dataTable thead > tr > td.sorting_asc:before,
2537
- table.dataTable thead > tr > td.sorting_desc:before,
2538
- table.dataTable thead > tr > td.sorting_asc_disabled:before,
2539
- table.dataTable thead > tr > td.sorting_desc_disabled:before,
2540
- /* V2 */
2541
- table.dataTable thead > tr > th.dt-orderable-asc:before,
2542
- table.dataTable thead > tr > th.dt-orderable-desc:before,
2543
- table.dataTable thead > tr > td.dt-orderable-asc:before,
2544
- table.dataTable thead > tr > td.dt-orderable-desc:before {
2545
- @apply bottom-[43%] h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-up.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-up.svg?color=white')];
2546
- }
2547
- table.dataTable thead > tr > th.sorting:after,
2548
- table.dataTable thead > tr > th.sorting_asc:after,
2549
- table.dataTable thead > tr > th.sorting_desc:after,
2550
- table.dataTable thead > tr > th.sorting_asc_disabled:after,
2551
- table.dataTable thead > tr > th.sorting_desc_disabled:after,
2552
- table.dataTable thead > tr > td.sorting:after,
2553
- table.dataTable thead > tr > td.sorting_asc:after,
2554
- table.dataTable thead > tr > td.sorting_desc:after,
2555
- table.dataTable thead > tr > td.sorting_asc_disabled:after,
2556
- table.dataTable thead > tr > td.sorting_desc_disabled:after,
2557
- /* V2 */
2558
- table.dataTable thead > tr > th.dt-orderable-asc:after,
2559
- table.dataTable thead > tr > th.dt-orderable-desc:after,
2560
- table.dataTable thead > tr > td.dt-orderable-asc:after,
2561
- table.dataTable thead > tr > td.dt-orderable-desc:after {
2562
- @apply top-[43%] h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];
2563
- }
2564
- table.dataTable thead > tr > th.sorting_asc:before,
2565
- table.dataTable thead > tr > th.sorting_desc:after,
2566
- table.dataTable thead > tr > td.sorting_asc:before,
2567
- table.dataTable thead > tr > td.sorting_desc:after,
2568
- /* V2 */
2569
- table.dataTable thead > tr > th.dt-ordering-asc:before,
2570
- table.dataTable thead > tr > th.dt-ordering-desc:after {
2571
- @apply opacity-80;
2572
- }
2573
- table.dataTable thead > tr > th.sorting_desc_disabled:after,
2574
- table.dataTable thead > tr > th.sorting_asc_disabled:before,
2575
- table.dataTable thead > tr > td.sorting_desc_disabled:after,
2576
- table.dataTable thead > tr > td.sorting_asc_disabled:before {
2577
- @apply hidden;
2578
- }
2579
- table.dataTable thead > tr > th:active,
2580
- table.dataTable thead > tr > td:active {
2581
- @apply outline-none;
2582
- }
2583
-
2584
- div.dataTables_scrollBody > table.dataTable > thead > tr > th:before,
2585
- div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
2586
- div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
2587
- div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
2588
- @apply hidden;
2589
- }
2590
-
2591
- div.dataTables_processing {
2592
- @apply absolute left-[50%] top-[50%] ml-[-100px] mt-[-26px] w-[200px] p-0.5 text-center;
2593
- }
2594
- div.dataTables_processing > div:last-child {
2595
- @apply relative mx-auto my-4 h-4 w-20;
2596
- }
2597
- div.dataTables_processing > div:last-child > div {
2598
- @apply absolute top-0 h-3.5 w-3.5 rounded-full;
2599
- background: hsl(var(--dt-row-selected));
2600
- animation-timing-function: cubic-bezier(0, 1, 1, 0);
2601
- }
2602
- div.dataTables_processing > div:last-child > div:nth-child(1) {
2603
- left: 8px;
2604
- animation: datatables-loader-1 0.6s infinite;
2605
- }
2606
- div.dataTables_processing > div:last-child > div:nth-child(2) {
2607
- left: 8px;
2608
- animation: datatables-loader-2 0.6s infinite;
2609
- }
2610
- div.dataTables_processing > div:last-child > div:nth-child(3) {
2611
- left: 32px;
2612
- animation: datatables-loader-2 0.6s infinite;
2613
- }
2614
- div.dataTables_processing > div:last-child > div:nth-child(4) {
2615
- left: 56px;
2616
- animation: datatables-loader-3 0.6s infinite;
2617
- }
2618
-
2619
- @keyframes datatables-loader-1 {
2620
- 0% {
2621
- transform: scale(0);
2622
- }
2623
- 100% {
2624
- transform: scale(1);
2625
- }
2626
- }
2627
- @keyframes datatables-loader-3 {
2628
- 0% {
2629
- transform: scale(1);
2630
- }
2631
- 100% {
2632
- transform: scale(0);
2633
- }
2634
- }
2635
- @keyframes datatables-loader-2 {
2636
- 0% {
2637
- transform: translate(0, 0);
2638
- }
2639
- 100% {
2640
- transform: translate(24px, 0);
2641
- }
2642
- }
2643
- table.dataTable.nowrap th,
2644
- table.dataTable.nowrap td {
2645
- white-space: nowrap;
2646
- }
2647
- table.dataTable th.dt-left,
2648
- table.dataTable td.dt-left {
2649
- text-align: left;
2650
- }
2651
- table.dataTable th.dt-center,
2652
- table.dataTable td.dt-center,
2653
- table.dataTable td.dataTables_empty {
2654
- text-align: center;
2655
- }
2656
- table.dataTable th.dt-right,
2657
- table.dataTable td.dt-right {
2658
- text-align: right;
2659
- }
2660
- table.dataTable th.dt-justify,
2661
- table.dataTable td.dt-justify {
2662
- text-align: justify;
2663
- }
2664
- table.dataTable th.dt-nowrap,
2665
- table.dataTable td.dt-nowrap {
2666
- white-space: nowrap;
2667
- }
2668
- table.dataTable thead th,
2669
- table.dataTable thead td,
2670
- table.dataTable tfoot th,
2671
- table.dataTable tfoot td {
2672
- text-align: left;
2673
- }
2674
- table.dataTable thead th.dt-head-left,
2675
- table.dataTable thead td.dt-head-left,
2676
- table.dataTable tfoot th.dt-head-left,
2677
- table.dataTable tfoot td.dt-head-left {
2678
- text-align: left;
2679
- }
2680
- table.dataTable thead th.dt-head-center,
2681
- table.dataTable thead td.dt-head-center,
2682
- table.dataTable tfoot th.dt-head-center,
2683
- table.dataTable tfoot td.dt-head-center {
2684
- text-align: center;
2685
- }
2686
- table.dataTable thead th.dt-head-right,
2687
- table.dataTable thead td.dt-head-right,
2688
- table.dataTable tfoot th.dt-head-right,
2689
- table.dataTable tfoot td.dt-head-right {
2690
- text-align: right;
2691
- }
2692
- table.dataTable thead th.dt-head-justify,
2693
- table.dataTable thead td.dt-head-justify,
2694
- table.dataTable tfoot th.dt-head-justify,
2695
- table.dataTable tfoot td.dt-head-justify {
2696
- text-align: justify;
2697
- }
2698
- table.dataTable thead th.dt-head-nowrap,
2699
- table.dataTable thead td.dt-head-nowrap,
2700
- table.dataTable tfoot th.dt-head-nowrap,
2701
- table.dataTable tfoot td.dt-head-nowrap {
2702
- white-space: nowrap;
2703
- }
2704
- table.dataTable tbody th.dt-body-left,
2705
- table.dataTable tbody td.dt-body-left {
2706
- text-align: left;
2707
- }
2708
- table.dataTable tbody th.dt-body-center,
2709
- table.dataTable tbody td.dt-body-center {
2710
- text-align: center;
2711
- }
2712
- table.dataTable tbody th.dt-body-right,
2713
- table.dataTable tbody td.dt-body-right {
2714
- text-align: right;
2715
- }
2716
- table.dataTable tbody th.dt-body-justify,
2717
- table.dataTable tbody td.dt-body-justify {
2718
- text-align: justify;
2719
- }
2720
- table.dataTable tbody th.dt-body-nowrap,
2721
- table.dataTable tbody td.dt-body-nowrap {
2722
- white-space: nowrap;
2723
- }
2724
-
2725
- /* Table Styles */
2726
-
2727
- table.dataTable {
2728
- @apply w-full table-auto border-collapse;
2729
- }
2730
-
2731
- /* Table header styles */
2732
- table.dataTable thead th,
2733
- table.dataTable tfoot th {
2734
- @apply text-left text-sm font-medium text-muted-foreground;
2735
- }
2736
-
2737
- table.dataTable > thead > tr > th {
2738
- @apply border-b border-t-0 px-6 py-3;
2739
- }
2740
- table.dataTable > thead > tr > td {
2741
- @apply border-b px-6 py-3 text-sm;
2742
- }
2743
- table.dataTable > thead > tr > th:active,
2744
- table.dataTable > thead > tr > td:active {
2745
- @apply outline-none;
2746
- }
2747
- table.dataTable > tfoot > tr > th,
2748
- table.dataTable > tfoot > tr > td {
2749
- @apply border-t px-6 py-3;
2750
- }
2751
- table.dataTable tbody tr {
2752
- @apply bg-transparent;
2753
- }
2754
- table.dataTable tbody tr.selected > * {
2755
- @apply bg-primary/10;
2756
- }
2757
- table.dataTable tbody tr.selected a {
2758
- @apply text-primary;
2759
- }
2760
- table.dataTable tbody th,
2761
- table.dataTable tbody td {
2762
- @apply px-6 py-3 text-sm;
2763
- }
2764
- table.dataTable.row-border > tbody > tr > th,
2765
- table.dataTable.row-border > tbody > tr > td,
2766
- table.dataTable.display > tbody > tr > th,
2767
- table.dataTable.display > tbody > tr > td {
2768
- @apply border-t;
2769
- }
2770
- table.dataTable.row-border > tbody > tr:first-child > th,
2771
- table.dataTable.row-border > tbody > tr:first-child > td,
2772
- table.dataTable.display > tbody > tr:first-child > th,
2773
- table.dataTable.display > tbody > tr:first-child > td {
2774
- @apply border-t-0;
2775
- }
2776
- table.dataTable.row-border > tbody > tr.selected + tr.selected > td,
2777
- table.dataTable.display > tbody > tr.selected + tr.selected > td {
2778
- @apply border-t-primary/30;
2779
- }
2780
- table.dataTable.cell-border > tbody > tr > th,
2781
- table.dataTable.cell-border > tbody > tr > td {
2782
- @apply border-r border-t;
2783
- }
2784
- table.dataTable.cell-border > tbody > tr > th:first-child,
2785
- table.dataTable.cell-border > tbody > tr > td:first-child {
2786
- @apply border-l;
2787
- }
2788
- table.dataTable.cell-border > tbody > tr:first-child > th,
2789
- table.dataTable.cell-border > tbody > tr:first-child > td {
2790
- @apply border-t-0;
2791
- }
2792
- table.dataTable.stripe > tbody > tr.odd > *,
2793
- table.dataTable.display > tbody > tr.odd > * {
2794
- @apply bg-muted/50;
2795
- }
2796
- table.dataTable.stripe > tbody > tr.odd.selected > *,
2797
- table.dataTable.display > tbody > tr.odd.selected > * {
2798
- @apply bg-primary/10;
2799
- }
2800
- table.dataTable.hover > tbody > tr:hover > *,
2801
- table.dataTable.display > tbody > tr:hover > * {
2802
- @apply bg-muted;
2803
- }
2804
- table.dataTable.hover > tbody > tr.selected:hover > *,
2805
- table.dataTable.display > tbody > tr.selected:hover > * {
2806
- @apply !bg-primary/10;
2807
- }
2808
- table.dataTable.order-column > tbody tr > .sorting_1,
2809
- table.dataTable.order-column > tbody tr > .sorting_2,
2810
- table.dataTable.order-column > tbody tr > .sorting_3,
2811
- table.dataTable.display > tbody tr > .sorting_1,
2812
- table.dataTable.display > tbody tr > .sorting_2,
2813
- table.dataTable.display > tbody tr > .sorting_3 {
2814
- @apply bg-muted;
2815
- }
2816
- table.dataTable.order-column > tbody tr.selected > .sorting_1,
2817
- table.dataTable.order-column > tbody tr.selected > .sorting_2,
2818
- table.dataTable.order-column > tbody tr.selected > .sorting_3,
2819
- table.dataTable.display > tbody tr.selected > .sorting_1,
2820
- table.dataTable.display > tbody tr.selected > .sorting_2,
2821
- table.dataTable.display > tbody tr.selected > .sorting_3 {
2822
- @apply !bg-primary/10;
2823
- }
2824
- table.dataTable.display > tbody > tr.odd > .sorting_1,
2825
- table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1 {
2826
- @apply bg-muted/50;
2827
- }
2828
- table.dataTable.display > tbody > tr.odd > .sorting_2,
2829
- table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2 {
2830
- @apply bg-muted/30;
2831
- }
2832
- table.dataTable.display > tbody > tr.odd > .sorting_3,
2833
- table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3 {
2834
- @apply bg-muted/10;
2835
- }
2836
- table.dataTable.display > tbody > tr.odd.selected > .sorting_1,
2837
- table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_1 {
2838
- @apply bg-muted/50;
2839
- }
2840
- table.dataTable.display > tbody > tr.odd.selected > .sorting_2,
2841
- table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_2 {
2842
- @apply bg-muted/30;
2843
- }
2844
- table.dataTable.display > tbody > tr.odd.selected > .sorting_3,
2845
- table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_3 {
2846
- @apply bg-muted/10;
2847
- }
2848
- table.dataTable.display > tbody > tr.even > .sorting_1,
2849
- table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1 {
2850
- @apply bg-muted/50;
2851
- }
2852
- table.dataTable.display > tbody > tr.even > .sorting_2,
2853
- table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2 {
2854
- @apply bg-muted/30;
2855
- }
2856
- table.dataTable.display > tbody > tr.even > .sorting_3,
2857
- table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3 {
2858
- @apply bg-muted/10;
2859
- }
2860
- table.dataTable.display > tbody > tr.even.selected > .sorting_1,
2861
- table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1 {
2862
- @apply bg-primary/10;
2863
- }
2864
- table.dataTable.display > tbody > tr.even.selected > .sorting_2,
2865
- table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2 {
2866
- @apply bg-primary/10;
2867
- }
2868
- table.dataTable.display > tbody > tr.even.selected > .sorting_3,
2869
- table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3 {
2870
- @apply bg-primary/10;
2871
- }
2872
- table.dataTable.display tbody tr:hover > .sorting_1,
2873
- table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
2874
- @apply bg-muted;
2875
- }
2876
- table.dataTable.display tbody tr:hover > .sorting_2,
2877
- table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
2878
- @apply bg-muted;
2879
- }
2880
- table.dataTable.display tbody tr:hover > .sorting_3,
2881
- table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
2882
- @apply bg-muted;
2883
- }
2884
- table.dataTable.display tbody tr:hover.selected > .sorting_1,
2885
- table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
2886
- @apply bg-primary/10;
2887
- }
2888
- table.dataTable.display tbody tr:hover.selected > .sorting_2,
2889
- table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
2890
- @apply bg-primary/10;
2891
- }
2892
- table.dataTable.display tbody tr:hover.selected > .sorting_3,
2893
- table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
2894
- @apply bg-primary/10;
2895
- }
2896
- table.dataTable.no-footer {
2897
- @apply border-b-0;
2898
- }
2899
- table.dataTable.compact thead th,
2900
- table.dataTable.compact thead td,
2901
- table.dataTable.compact tfoot th,
2902
- table.dataTable.compact tfoot td,
2903
- table.dataTable.compact tbody th,
2904
- table.dataTable.compact tbody td {
2905
- @apply px-4 py-2;
2906
- }
2907
-
2908
- table.dataTable th,
2909
- table.dataTable td {
2910
- @apply box-content border-y;
2911
- }
2912
-
2913
- table.dataTable tr:last-child td {
2914
- @apply !border-b-0;
2915
- }
2916
-
2917
- /* Control feature layout */
2918
- .dataTables_wrapper {
2919
- @apply w-full overflow-x-auto;
2920
- }
2921
-
2922
- /* Export button styles - v1 of datatables */
2923
- .dataTables_wrapper .dt-buttons {
2924
- @apply inline-flex flex-wrap items-center gap-2;
2925
- button {
2926
- @apply inline-flex h-9 items-center gap-2 whitespace-nowrap rounded-md border bg-background px-3 text-sm text-muted-foreground hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
2927
- }
2928
- }
2929
- /* V2 of datatables button styles.
2930
- */
2931
- .dt-buttons {
2932
- @apply inline-flex flex-wrap items-center gap-2;
2933
- button {
2934
- @apply inline-flex h-9 items-center gap-2 whitespace-nowrap rounded-md border bg-background px-3 text-sm text-muted-foreground hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
2935
- }
2936
- }
2937
-
2938
- /* Copy modal */
2939
- .dt-button-info {
2940
- @apply fixed inset-0 z-50 flex flex-col items-center justify-center bg-background/50 backdrop-blur;
2941
- }
2942
-
2943
- /* Select box at bottom showing number of records being displayed - v1 of datatables */
2944
- .dataTables_wrapper .dataTables_length {
2945
- label {
2946
- @apply inline-flex items-center gap-2 text-sm font-normal text-muted-foreground;
2947
- select {
2948
- @apply h-9 w-[70px] cursor-pointer rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:text-sm;
2949
- }
2950
- }
2951
- }
2952
- /* Select box at the bottom showing how many items are being display - v2 */
2953
- .dt-length {
2954
- @apply inline-flex items-center gap-2;
2955
- label {
2956
- @apply text-sm font-normal text-muted-foreground;
2957
- }
2958
- select {
2959
- @apply h-9 w-[70px] cursor-pointer rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:text-sm;
2960
- }
2961
- }
2962
-
2963
- /* Search box at the top styles - v1 of datatables */
2964
- .dataTables_wrapper .dataTables_filter {
2965
- label {
2966
- @apply inline-flex w-full cursor-pointer items-center gap-2 text-sm font-normal text-muted-foreground;
2967
- input {
2968
- @apply h-9 w-full rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input sm:text-sm;
2969
- }
2970
- }
2971
- }
2972
-
2973
- /* Search box at the top styles -v2 */
2974
- .dt-search {
2975
- @apply flex items-center gap-3;
2976
- label {
2977
- @apply inline-flex cursor-pointer items-center gap-2 text-sm font-normal text-muted-foreground;
2978
- }
2979
- input {
2980
- @apply h-9 w-full rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input sm:text-sm md:w-[50%] lg:w-[250px];
2981
- }
2982
- }
2983
-
2984
- /* Info text that shows \`Showing X to XX of XXXX entries - v1 */
2985
- .dataTables_wrapper .dataTables_info,
2986
- .dt-info {
2987
- @apply flex items-center gap-3 text-sm !text-muted-foreground;
2988
- }
2989
-
2990
- /* Pagination button styles - v1 datatables */
2991
- .dataTables_wrapper .dataTables_paginate {
2992
- .paginate_button {
2993
- @apply ml-1 box-border inline-flex h-9 min-w-[36px] cursor-pointer items-center justify-center rounded bg-transparent px-3 py-2 text-center text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
2994
- }
2995
- }
2996
- /* Pagination button - v2 */
2997
- .dt-paging-button {
2998
- @apply ml-1 box-border inline-flex h-9 min-w-[36px] cursor-pointer items-center justify-center rounded bg-transparent px-3 py-2 text-center text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
2999
- &.current,
3000
- &:hover {
3001
- @apply bg-muted;
3002
- }
3003
- &.disabled,
3004
- &.disabled:hover,
3005
- &.disabled:active {
3006
- @apply pointer-events-none opacity-50;
3007
- }
3008
- }
3009
- .dataTables_wrapper .dataTables_paginate .paginate_button.current,
3010
- .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
3011
- @apply bg-muted;
3012
- }
3013
- .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
3014
- .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
3015
- .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
3016
- @apply pointer-events-none opacity-50;
3017
- }
3018
- .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
3019
- @apply bg-muted;
3020
- }
3021
- .dataTables_wrapper .dataTables_paginate .paginate_button:active {
3022
- @apply bg-muted;
3023
- }
3024
- .dataTables_wrapper .dataTables_paginate .ellipsis,
3025
- .dt-paging .ellipsis {
3026
- @apply inline-flex h-8 min-w-[32px] items-start justify-center text-sm;
3027
- }
3028
- .dataTables_wrapper .dataTables_scroll {
3029
- clear: both;
3030
- }
3031
- .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
3032
- -webkit-overflow-scrolling: touch;
3033
- }
3034
- .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th,
3035
- .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td,
3036
- .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th,
3037
- .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
3038
- vertical-align: middle;
3039
- }
3040
- .dataTables_wrapper
3041
- .dataTables_scroll
3042
- div.dataTables_scrollBody
3043
- > table
3044
- > thead
3045
- > tr
3046
- > th
3047
- > div.dataTables_sizing,
3048
- .dataTables_wrapper
3049
- .dataTables_scroll
3050
- div.dataTables_scrollBody
3051
- > table
3052
- > thead
3053
- > tr
3054
- > td
3055
- > div.dataTables_sizing,
3056
- .dataTables_wrapper
3057
- .dataTables_scroll
3058
- div.dataTables_scrollBody
3059
- > table
3060
- > tbody
3061
- > tr
3062
- > th
3063
- > div.dataTables_sizing,
3064
- .dataTables_wrapper
3065
- .dataTables_scroll
3066
- div.dataTables_scrollBody
3067
- > table
3068
- > tbody
3069
- > tr
3070
- > td
3071
- > div.dataTables_sizing {
3072
- height: 0;
3073
- overflow: hidden;
3074
- margin: 0 !important;
3075
- padding: 0 !important;
3076
- }
3077
- .dataTables_wrapper.no-footer .dataTables_scrollBody {
3078
- @apply border-b;
3079
- }
3080
- .dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
3081
- .dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
3082
- border-bottom: none;
3083
- }
3084
- .dataTables_wrapper:after {
3085
- visibility: hidden;
3086
- display: block;
3087
- content: "";
3088
- clear: both;
3089
- height: 0;
3090
- }
3091
-
3092
- /*
3093
- responsive styles
3094
- */
3095
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
3096
- table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
3097
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
3098
- cursor: default !important;
3099
- }
3100
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
3101
- table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
3102
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
3103
- display: none !important;
3104
- }
3105
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
3106
- table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
3107
- cursor: pointer;
3108
- }
3109
-
3110
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
3111
- table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
3112
- @apply mr-2 inline-flex h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-right.svg')] bg-contain bg-center bg-no-repeat pb-[3px] content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-right.svg?color=white')];
3113
- }
3114
- table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control.arrow-right::before,
3115
- table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control.arrow-right::before {
3116
- content: "\u25C4";
3117
- }
3118
- table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
3119
- table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,
3120
- table.dataTable.dtr-inline.collapsed > tbody > tr.dtr-expanded > td.dtr-control:before,
3121
- table.dataTable.dtr-inline.collapsed > tbody > tr.dtr-expanded > th.dtr-control:before {
3122
- @apply mr-2 inline-block h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];
3123
- }
3124
- table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
3125
- table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
3126
- padding-left: 0.333em;
3127
- }
3128
- table.dataTable.dtr-column > tbody > tr > td.dtr-control,
3129
- table.dataTable.dtr-column > tbody > tr > th.dtr-control,
3130
- table.dataTable.dtr-column > tbody > tr > td.control,
3131
- table.dataTable.dtr-column > tbody > tr > th.control {
3132
- cursor: pointer;
3133
- }
3134
- table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
3135
- table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
3136
- table.dataTable.dtr-column > tbody > tr > td.control:before,
3137
- table.dataTable.dtr-column > tbody > tr > th.control:before {
3138
- @apply mr-2 inline-flex h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-right.svg')] bg-contain bg-center bg-no-repeat pb-[3px] content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-right.svg?color=white')];
3139
- }
3140
- table.dataTable.dtr-column > tbody > tr > td.dtr-control.arrow-right::before,
3141
- table.dataTable.dtr-column > tbody > tr > th.dtr-control.arrow-right::before,
3142
- table.dataTable.dtr-column > tbody > tr > td.control.arrow-right::before,
3143
- table.dataTable.dtr-column > tbody > tr > th.control.arrow-right::before {
3144
- content: "\u25C4";
3145
- }
3146
- table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
3147
- table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
3148
- table.dataTable.dtr-column > tbody > tr.parent td.control:before,
3149
- table.dataTable.dtr-column > tbody > tr.parent th.control:before,
3150
- table.dataTable.dtr-column > tbody > tr.dtr-expanded td.dtr-control:before,
3151
- table.dataTable.dtr-column > tbody > tr.dtr-expanded th.dtr-control:before,
3152
- table.dataTable.dtr-column > tbody > tr.dtr-expanded td.control:before,
3153
- table.dataTable.dtr-column > tbody > tr.dtr-expanded th.control:before {
3154
- @apply mr-2 inline-block h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];
3155
- }
3156
-
3157
- table.dataTable > tbody td.child {
3158
- @apply p-0;
3159
- }
3160
- table.dataTable > tbody > tr.child:hover,
3161
- table.dataTable > tbody > tr.child:hover > td.child {
3162
- background: transparent !important;
3163
- }
3164
- table.dataTable > tbody > tr.child ul.dtr-details {
3165
- @apply m-0 block w-full list-none p-0;
3166
- }
3167
- table.dataTable > tbody > tr.child ul.dtr-details > li {
3168
- @apply border-b p-3 px-7 hover:bg-muted;
3169
- }
3170
-
3171
- table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
3172
- @apply border-b-0;
3173
- }
3174
- table.dataTable > tbody > tr.child span.dtr-title {
3175
- @apply inline-block min-w-[80px] font-bold;
3176
- }
3177
- /* Responsive modal */
3178
- div.dtr-modal {
3179
- @apply fixed left-0 top-0 z-[1000] box-border size-full;
3180
- }
3181
- div.dtr-modal div.dtr-modal-display {
3182
- @apply absolute left-1/2 top-1/2 z-[102] max-h-[80%] w-full max-w-screen-sm -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-md border bg-background p-4 pb-0 md:px-7 md:py-4 md:pb-0 lg:max-h-[90%];
3183
- }
3184
- div.dtr-modal div.dtr-modal-content {
3185
- @apply relative flex flex-col p-0 text-[15px];
3186
- h2 {
3187
- @apply text-lg font-semibold text-foreground;
3188
- }
3189
- table tr td {
3190
- @apply space-x-10 pb-2 first:font-semibold [&:nth-child(2)]:pl-2;
3191
- }
3192
- }
3193
- div.dtr-modal div.dtr-modal-close {
3194
- @apply absolute right-2 top-2 z-[10] inline-flex size-6 cursor-pointer items-center justify-center rounded-md bg-muted/10 hover:bg-muted;
3195
- }
3196
- div.dtr-modal div.dtr-modal-background {
3197
- @apply fixed inset-0 z-[101] bg-background/20 backdrop-blur;
3198
- }
3199
-
3200
- /* Search Builder Styles */
3201
- div.dt-button-collection {
3202
- overflow: visible !important;
3203
- z-index: 2002 !important;
3204
- }
3205
- div.dt-button-collection div.dtsb-searchBuilder {
3206
- padding-left: 1em !important;
3207
- padding-right: 1em !important;
3208
- }
3209
- div.dt-button-collection.dtb-collection-closeable div.dtsb-titleRow {
3210
- padding-right: 40px;
3211
- }
3212
- .dtsb-greyscale {
3213
- @apply !border;
3214
- }
3215
- div.dtsb-logicContainer .dtsb-greyscale {
3216
- border: none !important;
3217
- }
3218
- div.dtsb-searchBuilder {
3219
- @apply mb-4 cursor-default justify-evenly text-left;
3220
- }
3221
- div.dtsb-searchBuilder button.dtsb-button,
3222
- div.dtsb-searchBuilder select {
3223
- @apply text-sm;
3224
- }
3225
- div.dtsb-searchBuilder div.dtsb-titleRow {
3226
- @apply mb-3 flex items-center justify-between;
3227
- }
3228
- div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title {
3229
- @apply inline-block text-sm font-normal;
3230
- }
3231
- div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title:empty {
3232
- display: inline;
3233
- }
3234
- div.dtsb-searchBuilder div.dtsb-vertical .dtsb-value,
3235
- div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data,
3236
- div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition {
3237
- display: block;
3238
- }
3239
- div.dtsb-searchBuilder div.dtsb-group {
3240
- @apply relative clear-both mb-4;
3241
- }
3242
- div.dtsb-searchBuilder div.dtsb-group button.dtsb-search {
3243
- float: right;
3244
- }
3245
- div.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup {
3246
- margin: 2px;
3247
- text-align: center;
3248
- padding: 0;
3249
- }
3250
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {
3251
- -webkit-transform: rotate(90deg);
3252
- -moz-transform: rotate(90deg);
3253
- -o-transform: rotate(90deg);
3254
- -ms-transform: rotate(90deg);
3255
- transform: rotate(90deg);
3256
- position: absolute;
3257
- margin-top: 0.8em;
3258
- margin-right: 0.8em;
3259
- }
3260
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {
3261
- margin-bottom: 0.8em;
3262
- display: flex;
3263
- justify-content: flex-start;
3264
- flex-flow: row wrap;
3265
- }
3266
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
3267
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
3268
- padding: 0.4em;
3269
- margin-right: 0.8em;
3270
- min-width: 5em;
3271
- max-width: 20em;
3272
- color: inherit;
3273
- }
3274
- div.dtsb-searchBuilder
3275
- div.dtsb-group
3276
- div.dtsb-criteria
3277
- select.dtsb-dropDown
3278
- option.dtsb-notItalic,
3279
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic {
3280
- font-style: normal;
3281
- }
3282
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic {
3283
- font-style: italic;
3284
- }
3285
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {
3286
- flex: 1;
3287
- white-space: nowrap;
3288
- }
3289
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont span.dtsp-joiner {
3290
- margin-right: 0.8em;
3291
- }
3292
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input.dtsb-value {
3293
- width: 33%;
3294
- }
3295
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont select,
3296
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input {
3297
- height: 100%;
3298
- box-sizing: border-box;
3299
- }
3300
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {
3301
- margin-left: auto;
3302
- display: inline-block;
3303
- }
3304
- div.dtsb-searchBuilder
3305
- div.dtsb-group
3306
- div.dtsb-criteria
3307
- div.dtsb-buttonContainer
3308
- button.dtsb-delete,
3309
- div.dtsb-searchBuilder
3310
- div.dtsb-group
3311
- div.dtsb-criteria
3312
- div.dtsb-buttonContainer
3313
- button.dtsb-right,
3314
- div.dtsb-searchBuilder
3315
- div.dtsb-group
3316
- div.dtsb-criteria
3317
- div.dtsb-buttonContainer
3318
- button.dtsb-left {
3319
- margin-right: 0.8em;
3320
- }
3321
- div.dtsb-searchBuilder
3322
- div.dtsb-group
3323
- div.dtsb-criteria
3324
- div.dtsb-buttonContainer
3325
- button.dtsb-delete:last-child,
3326
- div.dtsb-searchBuilder
3327
- div.dtsb-group
3328
- div.dtsb-criteria
3329
- div.dtsb-buttonContainer
3330
- button.dtsb-right:last-child,
3331
- div.dtsb-searchBuilder
3332
- div.dtsb-group
3333
- div.dtsb-criteria
3334
- div.dtsb-buttonContainer
3335
- button.dtsb-left:last-child {
3336
- margin-right: 0;
3337
- }
3338
- @media screen and (max-width: 550px) {
3339
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {
3340
- display: flex;
3341
- flex-flow: none;
3342
- flex-direction: column;
3343
- justify-content: flex-start;
3344
- padding-right: calc(35px + 0.8em);
3345
- margin-bottom: 0px;
3346
- }
3347
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:first-child),
3348
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:nth-child(2)),
3349
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:last-child) {
3350
- padding-top: 0.8em;
3351
- }
3352
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:first-child,
3353
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:nth-child(2),
3354
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:last-child {
3355
- padding-top: 0em;
3356
- }
3357
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
3358
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
3359
- max-width: none;
3360
- width: 100%;
3361
- margin-bottom: 0.8em;
3362
- margin-right: 0.8em;
3363
- }
3364
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {
3365
- margin-right: 0.8em;
3366
- }
3367
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {
3368
- position: absolute;
3369
- width: 35px;
3370
- display: flex;
3371
- flex-wrap: wrap-reverse;
3372
- right: 0;
3373
- }
3374
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button {
3375
- margin-right: 0px !important;
3376
- }
3377
- }
3378
- div.dtsb-searchBuilder button,
3379
- div.dtsb-searchBuilder select.dtsb-dropDown,
3380
- div.dtsb-searchBuilder input {
3381
- @apply bg-background;
3382
- }
3383
- div.dtsb-searchBuilder button.dtsb-button {
3384
- @apply relative box-border inline-flex h-9 cursor-pointer select-none items-center justify-center overflow-hidden text-ellipsis whitespace-nowrap rounded-md border bg-background px-3 py-2 text-sm font-normal text-muted-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
3385
- }
3386
- div.dtsb-searchBuilder button.dtsb-button:hover {
3387
- @apply cursor-pointer bg-muted;
3388
- }
3389
- div.dtsb-searchBuilder div.dtsb-logicContainer {
3390
- @apply overflow-hidden rounded-none border;
3391
- }
3392
- div.dtsb-searchBuilder div.dtsb-logicContainer button {
3393
- @apply rounded-md border-transparent bg-transparent;
3394
- }
3395
- div.dtsb-searchBuilder button.dtsb-clearGroup {
3396
- min-width: 2em;
3397
- padding: 0;
3398
- }
3399
- div.dtsb-searchBuilder button.dtsb-iptbtn {
3400
- min-width: 100px;
3401
- text-align: left;
3402
- }
3403
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {
3404
- @apply flex flex-row content-start items-start justify-start rounded-md;
3405
- }
3406
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic {
3407
- @apply m-0 shrink-0 grow rounded-none border-0;
3408
- flex-basis: 3em;
3409
- }
3410
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup {
3411
- border: none;
3412
- border-radius: 0px;
3413
- width: 2em;
3414
- margin: 0px;
3415
- }
3416
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
3417
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
3418
- @apply rounded-md border;
3419
- }
3420
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition,
3421
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data,
3422
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value {
3423
- @apply rounded-md border border-input bg-background text-sm transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input;
3424
- }
3425
-
3426
- div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value {
3427
- @apply rounded-md border border-input bg-background text-sm transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input;
3428
- }
3429
-
3430
- /* Col vis styles */
3431
- .dt-button-background {
3432
- @apply fixed inset-0 z-50 flex flex-col items-center justify-center bg-background/50 backdrop-blur-sm;
3433
- }
3434
- .dt-button-down-arrow {
3435
- @apply text-[10px];
3436
- }
3437
- .dt-button-collection {
3438
- @apply relative;
3439
- [role="menu"] {
3440
- @apply absolute -left-20 top-7 flex min-w-[200px] flex-col rounded-md border bg-background py-2 shadow before:mx-2 before:mb-2 before:text-xs before:text-muted-foreground/70 before:content-['Select_columns'];
3441
- button {
3442
- @apply h-8 rounded-none border-none px-4 text-xs;
3443
- }
3444
- .dt-button.buttons-columnVisibility.dt-button-active {
3445
- @apply text-foreground after:ml-auto after:content-['\u2713'];
3446
- }
3447
- }
3448
- }
3449
- </style>
3450
- `}],utils:[],composables:[]},{name:"Date Field",value:"date-field",devDeps:["@internationalized/date"],files:[{fileName:"DateField.vue",dirPath:"components/UI",fileContent:`<template>
3451
- <DateFieldRoot
3452
- v-slot="{ segments, modelValue, isInvalid }"
3453
- :class="styles({ class: props.class })"
3454
- v-bind="props"
3455
- v-model="localModel"
3456
- >
3457
- <template v-for="item in segments" :key="item.part">
3458
- <DateFieldInput
3459
- v-if="item.part === 'literal'"
3460
- :part="item.part"
3461
- class="flex items-center justify-center text-muted-foreground"
3462
- >
3463
- <Icon :name="separatorIcon" class="text-muted-foreground" v-if="separatorIcon" />
3464
- <span class="mx-1 text-muted-foreground" v-else-if="separator">{{ separator }}</span>
3465
- </DateFieldInput>
3466
- <DateFieldInput
3467
- v-else
3468
- :part="item.part"
3469
- class="flex cursor-text items-center rounded px-1 transition focus:outline-none focus:ring-1 focus:ring-ring aria-[valuetext=Empty]:text-muted-foreground"
3470
- >
3471
- {{ item.value }}
3472
- </DateFieldInput>
3473
- </template>
3474
- </DateFieldRoot>
3475
- </template>
3476
-
3477
- <script lang="ts" setup>
3478
- import { type DateValue } from "@internationalized/date";
3479
- import { DateFieldInput, DateFieldRoot } from "radix-vue";
3480
- import type { DateFieldRootEmits, DateFieldRootProps } from "radix-vue";
3481
-
3482
- const props = withDefaults(
3483
- defineProps<
3484
- DateFieldRootProps & {
3485
- class?: any;
3486
- separator?: string;
3487
- separatorIcon?: string;
3488
- }
3489
- >(),
3490
- {
3491
- separator: "/",
3492
- }
3493
- );
3494
- const emits = defineEmits<DateFieldRootEmits>();
3495
- const localModel = defineModel<DateValue>();
3496
-
3497
- const styles = tv({
3498
- base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled]:cursor-not-allowed data-[invalid]:border-destructive data-[disabled]:opacity-50 sm:text-sm",
3499
- });
3500
- </script>
2386
+ `}],files:[{fileName:"Datatable.client.vue",dirPath:"components/UI",fileContent:`<template>\r
2387
+ <DataTable\r
2388
+ :columns="columns"\r
2389
+ :ajax="ajax"\r
2390
+ ref="table"\r
2391
+ :data="data"\r
2392
+ :class="props.class"\r
2393
+ :options="options"\r
2394
+ >\r
2395
+ <template v-for="(_, name) in $slots" v-slot:[name]="scope">\r
2396
+ <slot :name="name" v-bind="scope"></slot>\r
2397
+ </template>\r
2398
+ </DataTable>\r
2399
+ </template>\r
2400
+ \r
2401
+ <script lang="ts" setup generic="T extends Record<string, any>">\r
2402
+ import type DataTableRef from "datatables.net";\r
2403
+ import type { Config } from "datatables.net";\r
2404
+ \r
2405
+ export type DataTablesNamedSlotProps<T> = {\r
2406
+ /** The data to show in the cell (from the \`columns.data\` configuration) */\r
2407
+ cellData: keyof T | null;\r
2408
+ /** The column index for the cell (0-based index) */\r
2409
+ colIndex: number;\r
2410
+ /** The data object for the whole row */\r
2411
+ rowData: T | Record<string, any>;\r
2412
+ /** Row index for the cell (data index, not the display index) */\r
2413
+ rowIndex: number;\r
2414
+ /** Orthogonal data type */\r
2415
+ type: string;\r
2416
+ };\r
2417
+ \r
2418
+ const table = shallowRef<{ dt: InstanceType<typeof DataTableRef<T[]>> } | null>(null);\r
2419
+ \r
2420
+ const props = withDefaults(\r
2421
+ defineProps<{\r
2422
+ data?: Config["data"];\r
2423
+ class?: any;\r
2424
+ columns?: Config["columns"];\r
2425
+ ajax?: Config["ajax"];\r
2426
+ options?: Config;\r
2427
+ }>(),\r
2428
+ {\r
2429
+ data: () => [],\r
2430
+ class: "nowrap hover order-column row-border stripe display",\r
2431
+ options: () => ({}),\r
2432
+ }\r
2433
+ );\r
2434
+ \r
2435
+ const emits = defineEmits<{\r
2436
+ ready: [any];\r
2437
+ }>();\r
2438
+ \r
2439
+ onMounted(() => {\r
2440
+ nextTick(() => {\r
2441
+ emits("ready", table.value?.dt);\r
2442
+ });\r
2443
+ });\r
2444
+ </script>\r
2445
+ \r
2446
+ <style>\r
2447
+ :root {\r
2448
+ --dt-row-selected: 262.1, 83.3%, 57.8%;\r
2449
+ --dt-row-selected-text: 210, 20%, 98%;\r
2450
+ --dt-row-selected-link: 262.1, 83.3%, 57.8%;\r
2451
+ --dt-row-stripe: 0, 0%, 100%;\r
2452
+ --dt-row-hover: 0, 0%, 100%;\r
2453
+ --dt-column-ordering: 0, 0%, 100%;\r
2454
+ --dt-border: 220, 13%, 91%;\r
2455
+ --dt-foreground: 224, 71.4%, 4.1%;\r
2456
+ }\r
2457
+ \r
2458
+ .dark {\r
2459
+ --dt-row-selected: 263.4, 70%, 50.4%;\r
2460
+ --dt-row-selected-text: 210, 20%, 98%;\r
2461
+ --dt-row-selected-link: 263.4, 70%, 50.4%;\r
2462
+ --dt-row-stripe: 224, 71.4%, 4.1%;\r
2463
+ --dt-row-hover: 224, 71.4%, 4.1%;\r
2464
+ --dt-column-ordering: 224, 71.4%, 4.1%;\r
2465
+ --dt-border: 215, 27.9%, 16.9%;\r
2466
+ --dt-foreground: 224, 71.4%, 4.1%;\r
2467
+ }\r
2468
+ \r
2469
+ table.dataTable td.dt-control {\r
2470
+ text-align: center;\r
2471
+ cursor: pointer;\r
2472
+ }\r
2473
+ table.dataTable td.dt-control:before {\r
2474
+ display: inline-block;\r
2475
+ color: hsla(var(--dt-foreground), 0.5);\r
2476
+ content: "\u25BA";\r
2477
+ }\r
2478
+ table.dataTable tr.dt-hasChild td.dt-control:before {\r
2479
+ content: "\u25BC";\r
2480
+ }\r
2481
+ \r
2482
+ table.dataTable thead > tr > th.sorting,\r
2483
+ table.dataTable thead > tr > th.sorting_asc,\r
2484
+ table.dataTable thead > tr > th.sorting_desc,\r
2485
+ table.dataTable thead > tr > th.sorting_asc_disabled,\r
2486
+ table.dataTable thead > tr > th.sorting_desc_disabled,\r
2487
+ table.dataTable thead > tr > td.sorting,\r
2488
+ table.dataTable thead > tr > td.sorting_asc,\r
2489
+ table.dataTable thead > tr > td.sorting_desc,\r
2490
+ table.dataTable thead > tr > td.sorting_asc_disabled,\r
2491
+ table.dataTable thead > tr > td.sorting_desc_disabled,\r
2492
+ /* V2 */\r
2493
+ table.dataTable thead > tr > th.dt-orderable-asc,\r
2494
+ table.dataTable thead > tr > th.dt-orderable-desc,\r
2495
+ table.dataTable thead > tr > td.dt-orderable-asc,\r
2496
+ table.dataTable thead > tr > td.dt-orderable-desc {\r
2497
+ @apply relative cursor-pointer pr-7;\r
2498
+ }\r
2499
+ table.dataTable thead > tr > th.sorting:before,\r
2500
+ table.dataTable thead > tr > th.sorting:after,\r
2501
+ table.dataTable thead > tr > th.sorting_asc:before,\r
2502
+ table.dataTable thead > tr > th.sorting_asc:after,\r
2503
+ table.dataTable thead > tr > th.sorting_desc:before,\r
2504
+ table.dataTable thead > tr > th.sorting_desc:after,\r
2505
+ table.dataTable thead > tr > th.sorting_asc_disabled:before,\r
2506
+ table.dataTable thead > tr > th.sorting_asc_disabled:after,\r
2507
+ table.dataTable thead > tr > th.sorting_desc_disabled:before,\r
2508
+ table.dataTable thead > tr > th.sorting_desc_disabled:after,\r
2509
+ table.dataTable thead > tr > td.sorting:before,\r
2510
+ table.dataTable thead > tr > td.sorting:after,\r
2511
+ table.dataTable thead > tr > td.sorting_asc:before,\r
2512
+ table.dataTable thead > tr > td.sorting_asc:after,\r
2513
+ table.dataTable thead > tr > td.sorting_desc:before,\r
2514
+ table.dataTable thead > tr > td.sorting_desc:after,\r
2515
+ table.dataTable thead > tr > td.sorting_asc_disabled:before,\r
2516
+ table.dataTable thead > tr > td.sorting_asc_disabled:after,\r
2517
+ table.dataTable thead > tr > td.sorting_desc_disabled:before,\r
2518
+ table.dataTable thead > tr > td.sorting_desc_disabled:after,\r
2519
+ /* V2 */\r
2520
+ table.dataTable thead > tr > th.dt-orderable-asc:before,\r
2521
+ table.dataTable thead > tr > th.dt-orderable-asc:after,\r
2522
+ table.dataTable thead > tr > th.dt-orderable-desc:before,\r
2523
+ table.dataTable thead > tr > th.dt-orderable-desc:after,\r
2524
+ table.dataTable thead > tr > td.dt-orderable-asc:before,\r
2525
+ table.dataTable thead > tr > td.dt-orderable-asc:after,\r
2526
+ table.dataTable thead > tr > td.dt-orderable-desc:before,\r
2527
+ table.dataTable thead > tr > td.dt-orderable-desc:after {\r
2528
+ @apply absolute right-2.5 block text-xs leading-3 opacity-25;\r
2529
+ }\r
2530
+ table.dataTable thead > tr > th.sorting:before,\r
2531
+ table.dataTable thead > tr > th.sorting_asc:before,\r
2532
+ table.dataTable thead > tr > th.sorting_desc:before,\r
2533
+ table.dataTable thead > tr > th.sorting_asc_disabled:before,\r
2534
+ table.dataTable thead > tr > th.sorting_desc_disabled:before,\r
2535
+ table.dataTable thead > tr > td.sorting:before,\r
2536
+ table.dataTable thead > tr > td.sorting_asc:before,\r
2537
+ table.dataTable thead > tr > td.sorting_desc:before,\r
2538
+ table.dataTable thead > tr > td.sorting_asc_disabled:before,\r
2539
+ table.dataTable thead > tr > td.sorting_desc_disabled:before,\r
2540
+ /* V2 */\r
2541
+ table.dataTable thead > tr > th.dt-orderable-asc:before,\r
2542
+ table.dataTable thead > tr > th.dt-orderable-desc:before,\r
2543
+ table.dataTable thead > tr > td.dt-orderable-asc:before,\r
2544
+ table.dataTable thead > tr > td.dt-orderable-desc:before {\r
2545
+ @apply bottom-[43%] h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-up.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-up.svg?color=white')];\r
2546
+ }\r
2547
+ table.dataTable thead > tr > th.sorting:after,\r
2548
+ table.dataTable thead > tr > th.sorting_asc:after,\r
2549
+ table.dataTable thead > tr > th.sorting_desc:after,\r
2550
+ table.dataTable thead > tr > th.sorting_asc_disabled:after,\r
2551
+ table.dataTable thead > tr > th.sorting_desc_disabled:after,\r
2552
+ table.dataTable thead > tr > td.sorting:after,\r
2553
+ table.dataTable thead > tr > td.sorting_asc:after,\r
2554
+ table.dataTable thead > tr > td.sorting_desc:after,\r
2555
+ table.dataTable thead > tr > td.sorting_asc_disabled:after,\r
2556
+ table.dataTable thead > tr > td.sorting_desc_disabled:after,\r
2557
+ /* V2 */\r
2558
+ table.dataTable thead > tr > th.dt-orderable-asc:after,\r
2559
+ table.dataTable thead > tr > th.dt-orderable-desc:after,\r
2560
+ table.dataTable thead > tr > td.dt-orderable-asc:after,\r
2561
+ table.dataTable thead > tr > td.dt-orderable-desc:after {\r
2562
+ @apply top-[43%] h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];\r
2563
+ }\r
2564
+ table.dataTable thead > tr > th.sorting_asc:before,\r
2565
+ table.dataTable thead > tr > th.sorting_desc:after,\r
2566
+ table.dataTable thead > tr > td.sorting_asc:before,\r
2567
+ table.dataTable thead > tr > td.sorting_desc:after,\r
2568
+ /* V2 */\r
2569
+ table.dataTable thead > tr > th.dt-ordering-asc:before,\r
2570
+ table.dataTable thead > tr > th.dt-ordering-desc:after {\r
2571
+ @apply opacity-80;\r
2572
+ }\r
2573
+ table.dataTable thead > tr > th.sorting_desc_disabled:after,\r
2574
+ table.dataTable thead > tr > th.sorting_asc_disabled:before,\r
2575
+ table.dataTable thead > tr > td.sorting_desc_disabled:after,\r
2576
+ table.dataTable thead > tr > td.sorting_asc_disabled:before {\r
2577
+ @apply hidden;\r
2578
+ }\r
2579
+ table.dataTable thead > tr > th:active,\r
2580
+ table.dataTable thead > tr > td:active {\r
2581
+ @apply outline-none;\r
2582
+ }\r
2583
+ \r
2584
+ div.dataTables_scrollBody > table.dataTable > thead > tr > th:before,\r
2585
+ div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,\r
2586
+ div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,\r
2587
+ div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {\r
2588
+ @apply hidden;\r
2589
+ }\r
2590
+ \r
2591
+ div.dataTables_processing {\r
2592
+ @apply absolute left-[50%] top-[50%] ml-[-100px] mt-[-26px] w-[200px] p-0.5 text-center;\r
2593
+ }\r
2594
+ div.dataTables_processing > div:last-child {\r
2595
+ @apply relative mx-auto my-4 h-4 w-20;\r
2596
+ }\r
2597
+ div.dataTables_processing > div:last-child > div {\r
2598
+ @apply absolute top-0 h-3.5 w-3.5 rounded-full;\r
2599
+ background: hsl(var(--dt-row-selected));\r
2600
+ animation-timing-function: cubic-bezier(0, 1, 1, 0);\r
2601
+ }\r
2602
+ div.dataTables_processing > div:last-child > div:nth-child(1) {\r
2603
+ left: 8px;\r
2604
+ animation: datatables-loader-1 0.6s infinite;\r
2605
+ }\r
2606
+ div.dataTables_processing > div:last-child > div:nth-child(2) {\r
2607
+ left: 8px;\r
2608
+ animation: datatables-loader-2 0.6s infinite;\r
2609
+ }\r
2610
+ div.dataTables_processing > div:last-child > div:nth-child(3) {\r
2611
+ left: 32px;\r
2612
+ animation: datatables-loader-2 0.6s infinite;\r
2613
+ }\r
2614
+ div.dataTables_processing > div:last-child > div:nth-child(4) {\r
2615
+ left: 56px;\r
2616
+ animation: datatables-loader-3 0.6s infinite;\r
2617
+ }\r
2618
+ \r
2619
+ @keyframes datatables-loader-1 {\r
2620
+ 0% {\r
2621
+ transform: scale(0);\r
2622
+ }\r
2623
+ 100% {\r
2624
+ transform: scale(1);\r
2625
+ }\r
2626
+ }\r
2627
+ @keyframes datatables-loader-3 {\r
2628
+ 0% {\r
2629
+ transform: scale(1);\r
2630
+ }\r
2631
+ 100% {\r
2632
+ transform: scale(0);\r
2633
+ }\r
2634
+ }\r
2635
+ @keyframes datatables-loader-2 {\r
2636
+ 0% {\r
2637
+ transform: translate(0, 0);\r
2638
+ }\r
2639
+ 100% {\r
2640
+ transform: translate(24px, 0);\r
2641
+ }\r
2642
+ }\r
2643
+ table.dataTable.nowrap th,\r
2644
+ table.dataTable.nowrap td {\r
2645
+ white-space: nowrap;\r
2646
+ }\r
2647
+ table.dataTable th.dt-left,\r
2648
+ table.dataTable td.dt-left {\r
2649
+ text-align: left;\r
2650
+ }\r
2651
+ table.dataTable th.dt-center,\r
2652
+ table.dataTable td.dt-center,\r
2653
+ table.dataTable td.dataTables_empty {\r
2654
+ text-align: center;\r
2655
+ }\r
2656
+ table.dataTable th.dt-right,\r
2657
+ table.dataTable td.dt-right {\r
2658
+ text-align: right;\r
2659
+ }\r
2660
+ table.dataTable th.dt-justify,\r
2661
+ table.dataTable td.dt-justify {\r
2662
+ text-align: justify;\r
2663
+ }\r
2664
+ table.dataTable th.dt-nowrap,\r
2665
+ table.dataTable td.dt-nowrap {\r
2666
+ white-space: nowrap;\r
2667
+ }\r
2668
+ table.dataTable thead th,\r
2669
+ table.dataTable thead td,\r
2670
+ table.dataTable tfoot th,\r
2671
+ table.dataTable tfoot td {\r
2672
+ text-align: left;\r
2673
+ }\r
2674
+ table.dataTable thead th.dt-head-left,\r
2675
+ table.dataTable thead td.dt-head-left,\r
2676
+ table.dataTable tfoot th.dt-head-left,\r
2677
+ table.dataTable tfoot td.dt-head-left {\r
2678
+ text-align: left;\r
2679
+ }\r
2680
+ table.dataTable thead th.dt-head-center,\r
2681
+ table.dataTable thead td.dt-head-center,\r
2682
+ table.dataTable tfoot th.dt-head-center,\r
2683
+ table.dataTable tfoot td.dt-head-center {\r
2684
+ text-align: center;\r
2685
+ }\r
2686
+ table.dataTable thead th.dt-head-right,\r
2687
+ table.dataTable thead td.dt-head-right,\r
2688
+ table.dataTable tfoot th.dt-head-right,\r
2689
+ table.dataTable tfoot td.dt-head-right {\r
2690
+ text-align: right;\r
2691
+ }\r
2692
+ table.dataTable thead th.dt-head-justify,\r
2693
+ table.dataTable thead td.dt-head-justify,\r
2694
+ table.dataTable tfoot th.dt-head-justify,\r
2695
+ table.dataTable tfoot td.dt-head-justify {\r
2696
+ text-align: justify;\r
2697
+ }\r
2698
+ table.dataTable thead th.dt-head-nowrap,\r
2699
+ table.dataTable thead td.dt-head-nowrap,\r
2700
+ table.dataTable tfoot th.dt-head-nowrap,\r
2701
+ table.dataTable tfoot td.dt-head-nowrap {\r
2702
+ white-space: nowrap;\r
2703
+ }\r
2704
+ table.dataTable tbody th.dt-body-left,\r
2705
+ table.dataTable tbody td.dt-body-left {\r
2706
+ text-align: left;\r
2707
+ }\r
2708
+ table.dataTable tbody th.dt-body-center,\r
2709
+ table.dataTable tbody td.dt-body-center {\r
2710
+ text-align: center;\r
2711
+ }\r
2712
+ table.dataTable tbody th.dt-body-right,\r
2713
+ table.dataTable tbody td.dt-body-right {\r
2714
+ text-align: right;\r
2715
+ }\r
2716
+ table.dataTable tbody th.dt-body-justify,\r
2717
+ table.dataTable tbody td.dt-body-justify {\r
2718
+ text-align: justify;\r
2719
+ }\r
2720
+ table.dataTable tbody th.dt-body-nowrap,\r
2721
+ table.dataTable tbody td.dt-body-nowrap {\r
2722
+ white-space: nowrap;\r
2723
+ }\r
2724
+ \r
2725
+ /* Table Styles */\r
2726
+ \r
2727
+ table.dataTable {\r
2728
+ @apply w-full table-auto border-collapse;\r
2729
+ }\r
2730
+ \r
2731
+ /* Table header styles */\r
2732
+ table.dataTable thead th,\r
2733
+ table.dataTable tfoot th {\r
2734
+ @apply text-left text-sm font-medium text-muted-foreground;\r
2735
+ }\r
2736
+ \r
2737
+ table.dataTable > thead > tr > th {\r
2738
+ @apply border-b border-t-0 px-6 py-3;\r
2739
+ }\r
2740
+ table.dataTable > thead > tr > td {\r
2741
+ @apply border-b px-6 py-3 text-sm;\r
2742
+ }\r
2743
+ table.dataTable > thead > tr > th:active,\r
2744
+ table.dataTable > thead > tr > td:active {\r
2745
+ @apply outline-none;\r
2746
+ }\r
2747
+ table.dataTable > tfoot > tr > th,\r
2748
+ table.dataTable > tfoot > tr > td {\r
2749
+ @apply border-t px-6 py-3;\r
2750
+ }\r
2751
+ table.dataTable tbody tr {\r
2752
+ @apply bg-transparent;\r
2753
+ }\r
2754
+ table.dataTable tbody tr.selected > * {\r
2755
+ @apply bg-primary/10;\r
2756
+ }\r
2757
+ table.dataTable tbody tr.selected a {\r
2758
+ @apply text-primary;\r
2759
+ }\r
2760
+ table.dataTable tbody th,\r
2761
+ table.dataTable tbody td {\r
2762
+ @apply px-6 py-3 text-sm;\r
2763
+ }\r
2764
+ table.dataTable.row-border > tbody > tr > th,\r
2765
+ table.dataTable.row-border > tbody > tr > td,\r
2766
+ table.dataTable.display > tbody > tr > th,\r
2767
+ table.dataTable.display > tbody > tr > td {\r
2768
+ @apply border-t;\r
2769
+ }\r
2770
+ table.dataTable.row-border > tbody > tr:first-child > th,\r
2771
+ table.dataTable.row-border > tbody > tr:first-child > td,\r
2772
+ table.dataTable.display > tbody > tr:first-child > th,\r
2773
+ table.dataTable.display > tbody > tr:first-child > td {\r
2774
+ @apply border-t-0;\r
2775
+ }\r
2776
+ table.dataTable.row-border > tbody > tr.selected + tr.selected > td,\r
2777
+ table.dataTable.display > tbody > tr.selected + tr.selected > td {\r
2778
+ @apply border-t-primary/30;\r
2779
+ }\r
2780
+ table.dataTable.cell-border > tbody > tr > th,\r
2781
+ table.dataTable.cell-border > tbody > tr > td {\r
2782
+ @apply border-r border-t;\r
2783
+ }\r
2784
+ table.dataTable.cell-border > tbody > tr > th:first-child,\r
2785
+ table.dataTable.cell-border > tbody > tr > td:first-child {\r
2786
+ @apply border-l;\r
2787
+ }\r
2788
+ table.dataTable.cell-border > tbody > tr:first-child > th,\r
2789
+ table.dataTable.cell-border > tbody > tr:first-child > td {\r
2790
+ @apply border-t-0;\r
2791
+ }\r
2792
+ table.dataTable.stripe > tbody > tr.odd > *,\r
2793
+ table.dataTable.display > tbody > tr.odd > * {\r
2794
+ @apply bg-muted/50;\r
2795
+ }\r
2796
+ table.dataTable.stripe > tbody > tr.odd.selected > *,\r
2797
+ table.dataTable.display > tbody > tr.odd.selected > * {\r
2798
+ @apply bg-primary/10;\r
2799
+ }\r
2800
+ table.dataTable.hover > tbody > tr:hover > *,\r
2801
+ table.dataTable.display > tbody > tr:hover > * {\r
2802
+ @apply bg-muted;\r
2803
+ }\r
2804
+ table.dataTable.hover > tbody > tr.selected:hover > *,\r
2805
+ table.dataTable.display > tbody > tr.selected:hover > * {\r
2806
+ @apply !bg-primary/10;\r
2807
+ }\r
2808
+ table.dataTable.order-column > tbody tr > .sorting_1,\r
2809
+ table.dataTable.order-column > tbody tr > .sorting_2,\r
2810
+ table.dataTable.order-column > tbody tr > .sorting_3,\r
2811
+ table.dataTable.display > tbody tr > .sorting_1,\r
2812
+ table.dataTable.display > tbody tr > .sorting_2,\r
2813
+ table.dataTable.display > tbody tr > .sorting_3 {\r
2814
+ @apply bg-muted;\r
2815
+ }\r
2816
+ table.dataTable.order-column > tbody tr.selected > .sorting_1,\r
2817
+ table.dataTable.order-column > tbody tr.selected > .sorting_2,\r
2818
+ table.dataTable.order-column > tbody tr.selected > .sorting_3,\r
2819
+ table.dataTable.display > tbody tr.selected > .sorting_1,\r
2820
+ table.dataTable.display > tbody tr.selected > .sorting_2,\r
2821
+ table.dataTable.display > tbody tr.selected > .sorting_3 {\r
2822
+ @apply !bg-primary/10;\r
2823
+ }\r
2824
+ table.dataTable.display > tbody > tr.odd > .sorting_1,\r
2825
+ table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1 {\r
2826
+ @apply bg-muted/50;\r
2827
+ }\r
2828
+ table.dataTable.display > tbody > tr.odd > .sorting_2,\r
2829
+ table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2 {\r
2830
+ @apply bg-muted/30;\r
2831
+ }\r
2832
+ table.dataTable.display > tbody > tr.odd > .sorting_3,\r
2833
+ table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3 {\r
2834
+ @apply bg-muted/10;\r
2835
+ }\r
2836
+ table.dataTable.display > tbody > tr.odd.selected > .sorting_1,\r
2837
+ table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_1 {\r
2838
+ @apply bg-muted/50;\r
2839
+ }\r
2840
+ table.dataTable.display > tbody > tr.odd.selected > .sorting_2,\r
2841
+ table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_2 {\r
2842
+ @apply bg-muted/30;\r
2843
+ }\r
2844
+ table.dataTable.display > tbody > tr.odd.selected > .sorting_3,\r
2845
+ table.dataTable.order-column.stripe > tbody > tr.odd.selected > .sorting_3 {\r
2846
+ @apply bg-muted/10;\r
2847
+ }\r
2848
+ table.dataTable.display > tbody > tr.even > .sorting_1,\r
2849
+ table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1 {\r
2850
+ @apply bg-muted/50;\r
2851
+ }\r
2852
+ table.dataTable.display > tbody > tr.even > .sorting_2,\r
2853
+ table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2 {\r
2854
+ @apply bg-muted/30;\r
2855
+ }\r
2856
+ table.dataTable.display > tbody > tr.even > .sorting_3,\r
2857
+ table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3 {\r
2858
+ @apply bg-muted/10;\r
2859
+ }\r
2860
+ table.dataTable.display > tbody > tr.even.selected > .sorting_1,\r
2861
+ table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1 {\r
2862
+ @apply bg-primary/10;\r
2863
+ }\r
2864
+ table.dataTable.display > tbody > tr.even.selected > .sorting_2,\r
2865
+ table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2 {\r
2866
+ @apply bg-primary/10;\r
2867
+ }\r
2868
+ table.dataTable.display > tbody > tr.even.selected > .sorting_3,\r
2869
+ table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3 {\r
2870
+ @apply bg-primary/10;\r
2871
+ }\r
2872
+ table.dataTable.display tbody tr:hover > .sorting_1,\r
2873
+ table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {\r
2874
+ @apply bg-muted;\r
2875
+ }\r
2876
+ table.dataTable.display tbody tr:hover > .sorting_2,\r
2877
+ table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {\r
2878
+ @apply bg-muted;\r
2879
+ }\r
2880
+ table.dataTable.display tbody tr:hover > .sorting_3,\r
2881
+ table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {\r
2882
+ @apply bg-muted;\r
2883
+ }\r
2884
+ table.dataTable.display tbody tr:hover.selected > .sorting_1,\r
2885
+ table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {\r
2886
+ @apply bg-primary/10;\r
2887
+ }\r
2888
+ table.dataTable.display tbody tr:hover.selected > .sorting_2,\r
2889
+ table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {\r
2890
+ @apply bg-primary/10;\r
2891
+ }\r
2892
+ table.dataTable.display tbody tr:hover.selected > .sorting_3,\r
2893
+ table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {\r
2894
+ @apply bg-primary/10;\r
2895
+ }\r
2896
+ table.dataTable.no-footer {\r
2897
+ @apply border-b-0;\r
2898
+ }\r
2899
+ table.dataTable.compact thead th,\r
2900
+ table.dataTable.compact thead td,\r
2901
+ table.dataTable.compact tfoot th,\r
2902
+ table.dataTable.compact tfoot td,\r
2903
+ table.dataTable.compact tbody th,\r
2904
+ table.dataTable.compact tbody td {\r
2905
+ @apply px-4 py-2;\r
2906
+ }\r
2907
+ \r
2908
+ table.dataTable th,\r
2909
+ table.dataTable td {\r
2910
+ @apply box-content border-y;\r
2911
+ }\r
2912
+ \r
2913
+ table.dataTable tr:last-child td {\r
2914
+ @apply !border-b-0;\r
2915
+ }\r
2916
+ \r
2917
+ /* Control feature layout */\r
2918
+ .dataTables_wrapper {\r
2919
+ @apply w-full overflow-x-auto;\r
2920
+ }\r
2921
+ \r
2922
+ /* Export button styles - v1 of datatables */\r
2923
+ .dataTables_wrapper .dt-buttons {\r
2924
+ @apply inline-flex flex-wrap items-center gap-2;\r
2925
+ button {\r
2926
+ @apply inline-flex h-9 items-center gap-2 whitespace-nowrap rounded-md border bg-background px-3 text-sm text-muted-foreground hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;\r
2927
+ }\r
2928
+ }\r
2929
+ /* V2 of datatables button styles. \r
2930
+ */\r
2931
+ .dt-buttons {\r
2932
+ @apply inline-flex flex-wrap items-center gap-2;\r
2933
+ button {\r
2934
+ @apply inline-flex h-9 items-center gap-2 whitespace-nowrap rounded-md border bg-background px-3 text-sm text-muted-foreground hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;\r
2935
+ }\r
2936
+ }\r
2937
+ \r
2938
+ /* Copy modal */\r
2939
+ .dt-button-info {\r
2940
+ @apply fixed inset-0 z-50 flex flex-col items-center justify-center bg-background/50 backdrop-blur;\r
2941
+ }\r
2942
+ \r
2943
+ /* Select box at bottom showing number of records being displayed - v1 of datatables */\r
2944
+ .dataTables_wrapper .dataTables_length {\r
2945
+ label {\r
2946
+ @apply inline-flex items-center gap-2 text-sm font-normal text-muted-foreground;\r
2947
+ select {\r
2948
+ @apply h-9 w-[70px] cursor-pointer rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:text-sm;\r
2949
+ }\r
2950
+ }\r
2951
+ }\r
2952
+ /* Select box at the bottom showing how many items are being display - v2 */\r
2953
+ .dt-length {\r
2954
+ @apply inline-flex items-center gap-2;\r
2955
+ label {\r
2956
+ @apply text-sm font-normal text-muted-foreground;\r
2957
+ }\r
2958
+ select {\r
2959
+ @apply h-9 w-[70px] cursor-pointer rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:text-sm;\r
2960
+ }\r
2961
+ }\r
2962
+ \r
2963
+ /* Search box at the top styles - v1 of datatables */\r
2964
+ .dataTables_wrapper .dataTables_filter {\r
2965
+ label {\r
2966
+ @apply inline-flex w-full cursor-pointer items-center gap-2 text-sm font-normal text-muted-foreground;\r
2967
+ input {\r
2968
+ @apply h-9 w-full rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input sm:text-sm;\r
2969
+ }\r
2970
+ }\r
2971
+ }\r
2972
+ \r
2973
+ /* Search box at the top styles -v2 */\r
2974
+ .dt-search {\r
2975
+ @apply flex items-center gap-3;\r
2976
+ label {\r
2977
+ @apply inline-flex cursor-pointer items-center gap-2 text-sm font-normal text-muted-foreground;\r
2978
+ }\r
2979
+ input {\r
2980
+ @apply h-9 w-full rounded-md border border-border bg-background px-2 py-1 transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input sm:text-sm md:w-[50%] lg:w-[250px];\r
2981
+ }\r
2982
+ }\r
2983
+ \r
2984
+ /* Info text that shows \`Showing X to XX of XXXX entries - v1 */\r
2985
+ .dataTables_wrapper .dataTables_info,\r
2986
+ .dt-info {\r
2987
+ @apply flex items-center gap-3 text-sm !text-muted-foreground;\r
2988
+ }\r
2989
+ \r
2990
+ /* Pagination button styles - v1 datatables */\r
2991
+ .dataTables_wrapper .dataTables_paginate {\r
2992
+ .paginate_button {\r
2993
+ @apply ml-1 box-border inline-flex h-9 min-w-[36px] cursor-pointer items-center justify-center rounded bg-transparent px-3 py-2 text-center text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;\r
2994
+ }\r
2995
+ }\r
2996
+ /* Pagination button - v2 */\r
2997
+ .dt-paging-button {\r
2998
+ @apply ml-1 box-border inline-flex h-9 min-w-[36px] cursor-pointer items-center justify-center rounded bg-transparent px-3 py-2 text-center text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;\r
2999
+ &.current,\r
3000
+ &:hover {\r
3001
+ @apply bg-muted;\r
3002
+ }\r
3003
+ &.disabled,\r
3004
+ &.disabled:hover,\r
3005
+ &.disabled:active {\r
3006
+ @apply pointer-events-none opacity-50;\r
3007
+ }\r
3008
+ }\r
3009
+ .dataTables_wrapper .dataTables_paginate .paginate_button.current,\r
3010
+ .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {\r
3011
+ @apply bg-muted;\r
3012
+ }\r
3013
+ .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,\r
3014
+ .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,\r
3015
+ .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {\r
3016
+ @apply pointer-events-none opacity-50;\r
3017
+ }\r
3018
+ .dataTables_wrapper .dataTables_paginate .paginate_button:hover {\r
3019
+ @apply bg-muted;\r
3020
+ }\r
3021
+ .dataTables_wrapper .dataTables_paginate .paginate_button:active {\r
3022
+ @apply bg-muted;\r
3023
+ }\r
3024
+ .dataTables_wrapper .dataTables_paginate .ellipsis,\r
3025
+ .dt-paging .ellipsis {\r
3026
+ @apply inline-flex h-8 min-w-[32px] items-start justify-center text-sm;\r
3027
+ }\r
3028
+ .dataTables_wrapper .dataTables_scroll {\r
3029
+ clear: both;\r
3030
+ }\r
3031
+ .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {\r
3032
+ -webkit-overflow-scrolling: touch;\r
3033
+ }\r
3034
+ .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th,\r
3035
+ .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td,\r
3036
+ .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th,\r
3037
+ .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {\r
3038
+ vertical-align: middle;\r
3039
+ }\r
3040
+ .dataTables_wrapper\r
3041
+ .dataTables_scroll\r
3042
+ div.dataTables_scrollBody\r
3043
+ > table\r
3044
+ > thead\r
3045
+ > tr\r
3046
+ > th\r
3047
+ > div.dataTables_sizing,\r
3048
+ .dataTables_wrapper\r
3049
+ .dataTables_scroll\r
3050
+ div.dataTables_scrollBody\r
3051
+ > table\r
3052
+ > thead\r
3053
+ > tr\r
3054
+ > td\r
3055
+ > div.dataTables_sizing,\r
3056
+ .dataTables_wrapper\r
3057
+ .dataTables_scroll\r
3058
+ div.dataTables_scrollBody\r
3059
+ > table\r
3060
+ > tbody\r
3061
+ > tr\r
3062
+ > th\r
3063
+ > div.dataTables_sizing,\r
3064
+ .dataTables_wrapper\r
3065
+ .dataTables_scroll\r
3066
+ div.dataTables_scrollBody\r
3067
+ > table\r
3068
+ > tbody\r
3069
+ > tr\r
3070
+ > td\r
3071
+ > div.dataTables_sizing {\r
3072
+ height: 0;\r
3073
+ overflow: hidden;\r
3074
+ margin: 0 !important;\r
3075
+ padding: 0 !important;\r
3076
+ }\r
3077
+ .dataTables_wrapper.no-footer .dataTables_scrollBody {\r
3078
+ @apply border-b;\r
3079
+ }\r
3080
+ .dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,\r
3081
+ .dataTables_wrapper.no-footer div.dataTables_scrollBody > table {\r
3082
+ border-bottom: none;\r
3083
+ }\r
3084
+ .dataTables_wrapper:after {\r
3085
+ visibility: hidden;\r
3086
+ display: block;\r
3087
+ content: "";\r
3088
+ clear: both;\r
3089
+ height: 0;\r
3090
+ }\r
3091
+ \r
3092
+ /* \r
3093
+ responsive styles\r
3094
+ */\r
3095
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,\r
3096
+ table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,\r
3097
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {\r
3098
+ cursor: default !important;\r
3099
+ }\r
3100
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,\r
3101
+ table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,\r
3102
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {\r
3103
+ display: none !important;\r
3104
+ }\r
3105
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,\r
3106
+ table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {\r
3107
+ cursor: pointer;\r
3108
+ }\r
3109
+ \r
3110
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,\r
3111
+ table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {\r
3112
+ @apply mr-2 inline-flex h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-right.svg')] bg-contain bg-center bg-no-repeat pb-[3px] content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-right.svg?color=white')];\r
3113
+ }\r
3114
+ table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control.arrow-right::before,\r
3115
+ table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control.arrow-right::before {\r
3116
+ content: "\u25C4";\r
3117
+ }\r
3118
+ table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,\r
3119
+ table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before,\r
3120
+ table.dataTable.dtr-inline.collapsed > tbody > tr.dtr-expanded > td.dtr-control:before,\r
3121
+ table.dataTable.dtr-inline.collapsed > tbody > tr.dtr-expanded > th.dtr-control:before {\r
3122
+ @apply mr-2 inline-block h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];\r
3123
+ }\r
3124
+ table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,\r
3125
+ table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {\r
3126
+ padding-left: 0.333em;\r
3127
+ }\r
3128
+ table.dataTable.dtr-column > tbody > tr > td.dtr-control,\r
3129
+ table.dataTable.dtr-column > tbody > tr > th.dtr-control,\r
3130
+ table.dataTable.dtr-column > tbody > tr > td.control,\r
3131
+ table.dataTable.dtr-column > tbody > tr > th.control {\r
3132
+ cursor: pointer;\r
3133
+ }\r
3134
+ table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,\r
3135
+ table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,\r
3136
+ table.dataTable.dtr-column > tbody > tr > td.control:before,\r
3137
+ table.dataTable.dtr-column > tbody > tr > th.control:before {\r
3138
+ @apply mr-2 inline-flex h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-right.svg')] bg-contain bg-center bg-no-repeat pb-[3px] content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-right.svg?color=white')];\r
3139
+ }\r
3140
+ table.dataTable.dtr-column > tbody > tr > td.dtr-control.arrow-right::before,\r
3141
+ table.dataTable.dtr-column > tbody > tr > th.dtr-control.arrow-right::before,\r
3142
+ table.dataTable.dtr-column > tbody > tr > td.control.arrow-right::before,\r
3143
+ table.dataTable.dtr-column > tbody > tr > th.control.arrow-right::before {\r
3144
+ content: "\u25C4";\r
3145
+ }\r
3146
+ table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,\r
3147
+ table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,\r
3148
+ table.dataTable.dtr-column > tbody > tr.parent td.control:before,\r
3149
+ table.dataTable.dtr-column > tbody > tr.parent th.control:before,\r
3150
+ table.dataTable.dtr-column > tbody > tr.dtr-expanded td.dtr-control:before,\r
3151
+ table.dataTable.dtr-column > tbody > tr.dtr-expanded th.dtr-control:before,\r
3152
+ table.dataTable.dtr-column > tbody > tr.dtr-expanded td.control:before,\r
3153
+ table.dataTable.dtr-column > tbody > tr.dtr-expanded th.control:before {\r
3154
+ @apply mr-2 inline-block h-4 w-4 bg-[url('https://api.iconify.design/lucide:chevron-down.svg')] bg-contain bg-center bg-no-repeat content-[''] dark:bg-[url('https://api.iconify.design/lucide:chevron-down.svg?color=white')];\r
3155
+ }\r
3156
+ \r
3157
+ table.dataTable > tbody td.child {\r
3158
+ @apply p-0;\r
3159
+ }\r
3160
+ table.dataTable > tbody > tr.child:hover,\r
3161
+ table.dataTable > tbody > tr.child:hover > td.child {\r
3162
+ background: transparent !important;\r
3163
+ }\r
3164
+ table.dataTable > tbody > tr.child ul.dtr-details {\r
3165
+ @apply m-0 block w-full list-none p-0;\r
3166
+ }\r
3167
+ table.dataTable > tbody > tr.child ul.dtr-details > li {\r
3168
+ @apply border-b p-3 px-7 hover:bg-muted;\r
3169
+ }\r
3170
+ \r
3171
+ table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {\r
3172
+ @apply border-b-0;\r
3173
+ }\r
3174
+ table.dataTable > tbody > tr.child span.dtr-title {\r
3175
+ @apply inline-block min-w-[80px] font-bold;\r
3176
+ }\r
3177
+ /* Responsive modal */\r
3178
+ div.dtr-modal {\r
3179
+ @apply fixed left-0 top-0 z-[1000] box-border size-full;\r
3180
+ }\r
3181
+ div.dtr-modal div.dtr-modal-display {\r
3182
+ @apply absolute left-1/2 top-1/2 z-[102] max-h-[80%] w-full max-w-screen-sm -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-md border bg-background p-4 pb-0 md:px-7 md:py-4 md:pb-0 lg:max-h-[90%];\r
3183
+ }\r
3184
+ div.dtr-modal div.dtr-modal-content {\r
3185
+ @apply relative flex flex-col p-0 text-[15px];\r
3186
+ h2 {\r
3187
+ @apply text-lg font-semibold text-foreground;\r
3188
+ }\r
3189
+ table tr td {\r
3190
+ @apply space-x-10 pb-2 first:font-semibold [&:nth-child(2)]:pl-2;\r
3191
+ }\r
3192
+ }\r
3193
+ div.dtr-modal div.dtr-modal-close {\r
3194
+ @apply absolute right-2 top-2 z-[10] inline-flex size-6 cursor-pointer items-center justify-center rounded-md bg-muted/10 hover:bg-muted;\r
3195
+ }\r
3196
+ div.dtr-modal div.dtr-modal-background {\r
3197
+ @apply fixed inset-0 z-[101] bg-background/20 backdrop-blur;\r
3198
+ }\r
3199
+ \r
3200
+ /* Search Builder Styles */\r
3201
+ div.dt-button-collection {\r
3202
+ overflow: visible !important;\r
3203
+ z-index: 2002 !important;\r
3204
+ }\r
3205
+ div.dt-button-collection div.dtsb-searchBuilder {\r
3206
+ padding-left: 1em !important;\r
3207
+ padding-right: 1em !important;\r
3208
+ }\r
3209
+ div.dt-button-collection.dtb-collection-closeable div.dtsb-titleRow {\r
3210
+ padding-right: 40px;\r
3211
+ }\r
3212
+ .dtsb-greyscale {\r
3213
+ @apply !border;\r
3214
+ }\r
3215
+ div.dtsb-logicContainer .dtsb-greyscale {\r
3216
+ border: none !important;\r
3217
+ }\r
3218
+ div.dtsb-searchBuilder {\r
3219
+ @apply mb-4 cursor-default justify-evenly text-left;\r
3220
+ }\r
3221
+ div.dtsb-searchBuilder button.dtsb-button,\r
3222
+ div.dtsb-searchBuilder select {\r
3223
+ @apply text-sm;\r
3224
+ }\r
3225
+ div.dtsb-searchBuilder div.dtsb-titleRow {\r
3226
+ @apply mb-3 flex items-center justify-between;\r
3227
+ }\r
3228
+ div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title {\r
3229
+ @apply inline-block text-sm font-normal;\r
3230
+ }\r
3231
+ div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title:empty {\r
3232
+ display: inline;\r
3233
+ }\r
3234
+ div.dtsb-searchBuilder div.dtsb-vertical .dtsb-value,\r
3235
+ div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data,\r
3236
+ div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition {\r
3237
+ display: block;\r
3238
+ }\r
3239
+ div.dtsb-searchBuilder div.dtsb-group {\r
3240
+ @apply relative clear-both mb-4;\r
3241
+ }\r
3242
+ div.dtsb-searchBuilder div.dtsb-group button.dtsb-search {\r
3243
+ float: right;\r
3244
+ }\r
3245
+ div.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup {\r
3246
+ margin: 2px;\r
3247
+ text-align: center;\r
3248
+ padding: 0;\r
3249
+ }\r
3250
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {\r
3251
+ -webkit-transform: rotate(90deg);\r
3252
+ -moz-transform: rotate(90deg);\r
3253
+ -o-transform: rotate(90deg);\r
3254
+ -ms-transform: rotate(90deg);\r
3255
+ transform: rotate(90deg);\r
3256
+ position: absolute;\r
3257
+ margin-top: 0.8em;\r
3258
+ margin-right: 0.8em;\r
3259
+ }\r
3260
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {\r
3261
+ margin-bottom: 0.8em;\r
3262
+ display: flex;\r
3263
+ justify-content: flex-start;\r
3264
+ flex-flow: row wrap;\r
3265
+ }\r
3266
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,\r
3267
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {\r
3268
+ padding: 0.4em;\r
3269
+ margin-right: 0.8em;\r
3270
+ min-width: 5em;\r
3271
+ max-width: 20em;\r
3272
+ color: inherit;\r
3273
+ }\r
3274
+ div.dtsb-searchBuilder\r
3275
+ div.dtsb-group\r
3276
+ div.dtsb-criteria\r
3277
+ select.dtsb-dropDown\r
3278
+ option.dtsb-notItalic,\r
3279
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic {\r
3280
+ font-style: normal;\r
3281
+ }\r
3282
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic {\r
3283
+ font-style: italic;\r
3284
+ }\r
3285
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {\r
3286
+ flex: 1;\r
3287
+ white-space: nowrap;\r
3288
+ }\r
3289
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont span.dtsp-joiner {\r
3290
+ margin-right: 0.8em;\r
3291
+ }\r
3292
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input.dtsb-value {\r
3293
+ width: 33%;\r
3294
+ }\r
3295
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont select,\r
3296
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input {\r
3297
+ height: 100%;\r
3298
+ box-sizing: border-box;\r
3299
+ }\r
3300
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {\r
3301
+ margin-left: auto;\r
3302
+ display: inline-block;\r
3303
+ }\r
3304
+ div.dtsb-searchBuilder\r
3305
+ div.dtsb-group\r
3306
+ div.dtsb-criteria\r
3307
+ div.dtsb-buttonContainer\r
3308
+ button.dtsb-delete,\r
3309
+ div.dtsb-searchBuilder\r
3310
+ div.dtsb-group\r
3311
+ div.dtsb-criteria\r
3312
+ div.dtsb-buttonContainer\r
3313
+ button.dtsb-right,\r
3314
+ div.dtsb-searchBuilder\r
3315
+ div.dtsb-group\r
3316
+ div.dtsb-criteria\r
3317
+ div.dtsb-buttonContainer\r
3318
+ button.dtsb-left {\r
3319
+ margin-right: 0.8em;\r
3320
+ }\r
3321
+ div.dtsb-searchBuilder\r
3322
+ div.dtsb-group\r
3323
+ div.dtsb-criteria\r
3324
+ div.dtsb-buttonContainer\r
3325
+ button.dtsb-delete:last-child,\r
3326
+ div.dtsb-searchBuilder\r
3327
+ div.dtsb-group\r
3328
+ div.dtsb-criteria\r
3329
+ div.dtsb-buttonContainer\r
3330
+ button.dtsb-right:last-child,\r
3331
+ div.dtsb-searchBuilder\r
3332
+ div.dtsb-group\r
3333
+ div.dtsb-criteria\r
3334
+ div.dtsb-buttonContainer\r
3335
+ button.dtsb-left:last-child {\r
3336
+ margin-right: 0;\r
3337
+ }\r
3338
+ @media screen and (max-width: 550px) {\r
3339
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {\r
3340
+ display: flex;\r
3341
+ flex-flow: none;\r
3342
+ flex-direction: column;\r
3343
+ justify-content: flex-start;\r
3344
+ padding-right: calc(35px + 0.8em);\r
3345
+ margin-bottom: 0px;\r
3346
+ }\r
3347
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:first-child),\r
3348
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:nth-child(2)),\r
3349
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:last-child) {\r
3350
+ padding-top: 0.8em;\r
3351
+ }\r
3352
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:first-child,\r
3353
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:nth-child(2),\r
3354
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:last-child {\r
3355
+ padding-top: 0em;\r
3356
+ }\r
3357
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,\r
3358
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {\r
3359
+ max-width: none;\r
3360
+ width: 100%;\r
3361
+ margin-bottom: 0.8em;\r
3362
+ margin-right: 0.8em;\r
3363
+ }\r
3364
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {\r
3365
+ margin-right: 0.8em;\r
3366
+ }\r
3367
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {\r
3368
+ position: absolute;\r
3369
+ width: 35px;\r
3370
+ display: flex;\r
3371
+ flex-wrap: wrap-reverse;\r
3372
+ right: 0;\r
3373
+ }\r
3374
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button {\r
3375
+ margin-right: 0px !important;\r
3376
+ }\r
3377
+ }\r
3378
+ div.dtsb-searchBuilder button,\r
3379
+ div.dtsb-searchBuilder select.dtsb-dropDown,\r
3380
+ div.dtsb-searchBuilder input {\r
3381
+ @apply bg-background;\r
3382
+ }\r
3383
+ div.dtsb-searchBuilder button.dtsb-button {\r
3384
+ @apply relative box-border inline-flex h-9 cursor-pointer select-none items-center justify-center overflow-hidden text-ellipsis whitespace-nowrap rounded-md border bg-background px-3 py-2 text-sm font-normal text-muted-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;\r
3385
+ }\r
3386
+ div.dtsb-searchBuilder button.dtsb-button:hover {\r
3387
+ @apply cursor-pointer bg-muted;\r
3388
+ }\r
3389
+ div.dtsb-searchBuilder div.dtsb-logicContainer {\r
3390
+ @apply overflow-hidden rounded-none border;\r
3391
+ }\r
3392
+ div.dtsb-searchBuilder div.dtsb-logicContainer button {\r
3393
+ @apply rounded-md border-transparent bg-transparent;\r
3394
+ }\r
3395
+ div.dtsb-searchBuilder button.dtsb-clearGroup {\r
3396
+ min-width: 2em;\r
3397
+ padding: 0;\r
3398
+ }\r
3399
+ div.dtsb-searchBuilder button.dtsb-iptbtn {\r
3400
+ min-width: 100px;\r
3401
+ text-align: left;\r
3402
+ }\r
3403
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {\r
3404
+ @apply flex flex-row content-start items-start justify-start rounded-md;\r
3405
+ }\r
3406
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic {\r
3407
+ @apply m-0 shrink-0 grow rounded-none border-0;\r
3408
+ flex-basis: 3em;\r
3409
+ }\r
3410
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup {\r
3411
+ border: none;\r
3412
+ border-radius: 0px;\r
3413
+ width: 2em;\r
3414
+ margin: 0px;\r
3415
+ }\r
3416
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,\r
3417
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {\r
3418
+ @apply rounded-md border;\r
3419
+ }\r
3420
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition,\r
3421
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data,\r
3422
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value {\r
3423
+ @apply rounded-md border border-input bg-background text-sm transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input;\r
3424
+ }\r
3425
+ \r
3426
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value {\r
3427
+ @apply rounded-md border border-input bg-background text-sm transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background focus-visible:border-input;\r
3428
+ }\r
3429
+ \r
3430
+ /* Col vis styles */\r
3431
+ .dt-button-background {\r
3432
+ @apply fixed inset-0 z-50 flex flex-col items-center justify-center bg-background/50 backdrop-blur-sm;\r
3433
+ }\r
3434
+ .dt-button-down-arrow {\r
3435
+ @apply text-[10px];\r
3436
+ }\r
3437
+ .dt-button-collection {\r
3438
+ @apply relative;\r
3439
+ [role="menu"] {\r
3440
+ @apply absolute -left-20 top-7 flex min-w-[200px] flex-col rounded-md border bg-background py-2 shadow before:mx-2 before:mb-2 before:text-xs before:text-muted-foreground/70 before:content-['Select_columns'];\r
3441
+ button {\r
3442
+ @apply h-8 rounded-none border-none px-4 text-xs;\r
3443
+ }\r
3444
+ .dt-button.buttons-columnVisibility.dt-button-active {\r
3445
+ @apply text-foreground after:ml-auto after:content-['\u2713'];\r
3446
+ }\r
3447
+ }\r
3448
+ }\r
3449
+ </style>\r
3450
+ `}],utils:[],composables:[]},{name:"Date Field",value:"date-field",devDeps:["@internationalized/date"],files:[{fileName:"DateField.vue",dirPath:"components/UI",fileContent:`<template>\r
3451
+ <DateFieldRoot\r
3452
+ v-slot="{ segments, modelValue, isInvalid }"\r
3453
+ :class="styles({ class: props.class })"\r
3454
+ v-bind="props"\r
3455
+ v-model="localModel"\r
3456
+ >\r
3457
+ <template v-for="item in segments" :key="item.part">\r
3458
+ <DateFieldInput\r
3459
+ v-if="item.part === 'literal'"\r
3460
+ :part="item.part"\r
3461
+ class="flex items-center justify-center text-muted-foreground"\r
3462
+ >\r
3463
+ <Icon :name="separatorIcon" class="text-muted-foreground" v-if="separatorIcon" />\r
3464
+ <span class="mx-1 text-muted-foreground" v-else-if="separator">{{ separator }}</span>\r
3465
+ </DateFieldInput>\r
3466
+ <DateFieldInput\r
3467
+ v-else\r
3468
+ :part="item.part"\r
3469
+ class="flex cursor-text items-center rounded px-1 transition focus:outline-none focus:ring-1 focus:ring-ring aria-[valuetext=Empty]:text-muted-foreground"\r
3470
+ >\r
3471
+ {{ item.value }}\r
3472
+ </DateFieldInput>\r
3473
+ </template>\r
3474
+ </DateFieldRoot>\r
3475
+ </template>\r
3476
+ \r
3477
+ <script lang="ts" setup>\r
3478
+ import { type DateValue } from "@internationalized/date";\r
3479
+ import { DateFieldInput, DateFieldRoot } from "radix-vue";\r
3480
+ import type { DateFieldRootEmits, DateFieldRootProps } from "radix-vue";\r
3481
+ \r
3482
+ const props = withDefaults(\r
3483
+ defineProps<\r
3484
+ DateFieldRootProps & {\r
3485
+ class?: any;\r
3486
+ separator?: string;\r
3487
+ separatorIcon?: string;\r
3488
+ }\r
3489
+ >(),\r
3490
+ {\r
3491
+ separator: "/",\r
3492
+ }\r
3493
+ );\r
3494
+ const emits = defineEmits<DateFieldRootEmits>();\r
3495
+ const localModel = defineModel<DateValue>();\r
3496
+ \r
3497
+ const styles = tv({\r
3498
+ base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled]:cursor-not-allowed data-[invalid]:border-destructive data-[disabled]:opacity-50 sm:text-sm",\r
3499
+ });\r
3500
+ </script>\r
3501
3501
  `}],utils:[],composables:[],plugins:[]},{name:"Datepicker",value:"datepicker",devDeps:["@samk-dev/nuxt-vcalendar"],nuxtModules:["@samk-dev/nuxt-vcalendar"],instructions:["You can customize the datepicker by adding options to your nuxt.config.js file"],files:[{fileName:"Datepicker.vue",dirPath:"components/UI",fileContent:`<template>
3502
3502
  <ClientOnly>
3503
3503
  <VDatePicker
@@ -3900,202 +3900,202 @@ export default defineNuxtPlugin((nuxtApp) => {
3900
3900
  const props = defineProps<{
3901
3901
  class?: any;
3902
3902
  type?: VariantProps<typeof style>["type"];
3903
- orientation?: VariantProps<typeof style>["orientation"];
3904
- icon?: string;
3905
- label?: string;
3906
- avatar?: string;
3907
- }>();
3908
-
3909
- const style = tv({
3910
- slots: {
3911
- base: "flex w-full items-center text-center align-middle",
3912
- container: "flex font-medium",
3913
- border: "flex border-border",
3914
- icon: "h-5 w-5 shrink-0",
3915
- label: "text-sm",
3916
- },
3917
- variants: {
3918
- orientation: {
3919
- horizontal: {
3920
- base: "flex-row",
3921
- container: "mx-3 whitespace-nowrap",
3922
- border: "w-full border-t",
3923
- },
3924
- vertical: {
3925
- base: "h-full flex-col",
3926
- container: "my-3",
3927
- border: "h-full border-s",
3928
- },
3929
- },
3930
- type: {
3931
- solid: {
3932
- border: "border-solid",
3933
- },
3934
- dashed: {
3935
- border: "border-dashed",
3936
- },
3937
- dotted: {
3938
- border: "border-dotted",
3939
- },
3940
- },
3941
- },
3942
- defaultVariants: {
3943
- orientation: "horizontal",
3944
- type: "solid",
3945
- },
3946
- });
3947
-
3948
- const { base, border, container, icon: iconClass, label: labelClass } = style();
3949
- </script>
3950
- `}],utils:[],composables:[],plugins:[]},{name:"Drawer",value:"drawer",deps:["vaul-vue"],files:[{fileName:"Drawer/Close.vue",dirPath:"components/UI",fileContent:`<template>
3951
- <DrawerClose v-bind="props">
3952
- <slot />
3953
- </DrawerClose>
3954
- </template>
3955
-
3956
- <script lang="ts" setup>
3957
- import { DrawerClose } from "vaul-vue";
3958
-
3959
- interface Props
3960
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerClose>, "$props">> {}
3961
- const props = defineProps<Props>();
3962
- </script>
3963
- `},{fileName:"Drawer/Content.vue",dirPath:"components/UI",fileContent:`<template>
3964
- <UiDrawerPortal>
3965
- <slot name="overlay">
3966
- <UiDrawerOverlay />
3967
- </slot>
3968
- <slot name="content">
3969
- <DrawerContent v-bind="{ ...props, ...$attrs }" :class="styles({ class: props.class })">
3970
- <slot name="knob">
3971
- <div
3972
- className="mx-auto shrink-0 cursor-grab active:cursor-grabbing my-5 h-2 w-[60px] rounded-full bg-muted"
3973
- />
3974
- </slot>
3975
- <slot />
3976
- </DrawerContent>
3977
- </slot>
3978
- </UiDrawerPortal>
3979
- </template>
3980
-
3981
- <script lang="ts" setup>
3982
- import { DrawerContent } from "vaul-vue";
3983
-
3984
- defineOptions({ inheritAttrs: false });
3985
-
3986
- interface Props
3987
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerContent>, "$props">> {}
3988
-
3989
- const props = defineProps<Props & { class?: any }>();
3990
- const styles = tv({
3991
- base: "fixed bottom-0 left-0 right-0 z-50 mt-24 flex h-auto max-h-[95%] flex-col rounded-t-[10px] border bg-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40",
3992
- });
3993
- </script>
3994
- `},{fileName:"Drawer/Description.vue",dirPath:"components/UI",fileContent:`<template>
3995
- <DrawerDescription v-bind="props" :class="styles({ class: props.class })">
3996
- <slot>
3997
- {{ props.text }}
3998
- </slot>
3999
- </DrawerDescription>
4000
- </template>
4001
-
4002
- <script lang="ts" setup>
4003
- import { DrawerDescription } from "vaul-vue";
4004
-
4005
- interface Props
4006
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerDescription>, "$props">> {
4007
- class?: any;
4008
- text?: string;
4009
- }
4010
-
4011
- const props = defineProps<Props>();
4012
-
4013
- const styles = tv({
4014
- base: "text-sm text-muted-foreground",
4015
- });
4016
- </script>
4017
- `},{fileName:"Drawer/Drawer.vue",dirPath:"components/UI",fileContent:`<template>
4018
- <DrawerRoot v-bind="forwarded">
4019
- <slot />
4020
- </DrawerRoot>
4021
- </template>
4022
-
4023
- <script lang="ts" setup>
4024
- import { useForwardPropsEmits } from "radix-vue";
4025
- import { DrawerRoot } from "vaul-vue";
4026
- import type { DrawerRootEmits, DrawerRootProps } from "vaul-vue";
4027
-
4028
- const props = defineProps<DrawerRootProps>();
4029
- const emits = defineEmits<DrawerRootEmits>();
4030
- const forwarded = useForwardPropsEmits(props, emits);
4031
- </script>
4032
- `},{fileName:"Drawer/Overlay.vue",dirPath:"components/UI",fileContent:`<template>
4033
- <DrawerOverlay v-bind="props" :class="styles({ class: props.class })" />
4034
- </template>
4035
-
4036
- <script lang="ts" setup>
4037
- import { DrawerOverlay } from "vaul-vue";
4038
-
4039
- interface Props
4040
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerOverlay>, "$props">> {}
4041
-
4042
- const props = defineProps<Props & { class?: any }>();
4043
-
4044
- const styles = tv({
4045
- base: "fixed inset-0 z-50 bg-black/40 backdrop-blur",
4046
- });
4047
- </script>
4048
- `},{fileName:"Drawer/Portal.vue",dirPath:"components/UI",fileContent:`<template>
4049
- <DrawerPortal v-bind="props">
4050
- <slot />
4051
- </DrawerPortal>
4052
- </template>
4053
-
4054
- <script lang="ts" setup>
4055
- import { DrawerPortal } from "vaul-vue";
4056
-
4057
- interface Props
4058
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerPortal>, "$props">> {}
4059
-
4060
- const props = defineProps<Props>();
4061
- </script>
4062
- `},{fileName:"Drawer/Title.vue",dirPath:"components/UI",fileContent:`<template>
4063
- <DrawerTitle v-bind="props" :class="styles({ class: props.class })">
4064
- <slot>
4065
- {{ props.text }}
4066
- </slot>
4067
- </DrawerTitle>
4068
- </template>
4069
-
4070
- <script lang="ts" setup>
4071
- import { DrawerTitle } from "vaul-vue";
4072
-
4073
- interface Props
4074
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerTitle>, "$props">> {
4075
- class?: any;
4076
- text?: string;
4077
- }
4078
-
4079
- const props = defineProps<Props>();
4080
-
4081
- const styles = tv({
4082
- base: "text-lg font-semibold leading-none tracking-tight",
4083
- });
4084
- </script>
4085
- `},{fileName:"Drawer/Trigger.vue",dirPath:"components/UI",fileContent:`<template>
4086
- <DrawerTrigger v-bind="props">
4087
- <slot />
4088
- </DrawerTrigger>
4089
- </template>
4090
-
4091
- <script lang="ts" setup>
4092
- import { DrawerTrigger } from "vaul-vue";
3903
+ orientation?: VariantProps<typeof style>["orientation"];
3904
+ icon?: string;
3905
+ label?: string;
3906
+ avatar?: string;
3907
+ }>();
4093
3908
 
4094
- interface Props
4095
- extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerTrigger>, "$props">> {}
3909
+ const style = tv({
3910
+ slots: {
3911
+ base: "flex w-full items-center text-center align-middle",
3912
+ container: "flex font-medium",
3913
+ border: "flex border-border",
3914
+ icon: "h-5 w-5 shrink-0",
3915
+ label: "text-sm",
3916
+ },
3917
+ variants: {
3918
+ orientation: {
3919
+ horizontal: {
3920
+ base: "flex-row",
3921
+ container: "mx-3 whitespace-nowrap",
3922
+ border: "w-full border-t",
3923
+ },
3924
+ vertical: {
3925
+ base: "h-full flex-col",
3926
+ container: "my-3",
3927
+ border: "h-full border-s",
3928
+ },
3929
+ },
3930
+ type: {
3931
+ solid: {
3932
+ border: "border-solid",
3933
+ },
3934
+ dashed: {
3935
+ border: "border-dashed",
3936
+ },
3937
+ dotted: {
3938
+ border: "border-dotted",
3939
+ },
3940
+ },
3941
+ },
3942
+ defaultVariants: {
3943
+ orientation: "horizontal",
3944
+ type: "solid",
3945
+ },
3946
+ });
4096
3947
 
4097
- const props = defineProps<Props>();
3948
+ const { base, border, container, icon: iconClass, label: labelClass } = style();
4098
3949
  </script>
3950
+ `}],utils:[],composables:[],plugins:[]},{name:"Drawer",value:"drawer",deps:["vaul-vue"],files:[{fileName:"Drawer/Close.vue",dirPath:"components/UI",fileContent:`<template>\r
3951
+ <DrawerClose v-bind="props">\r
3952
+ <slot />\r
3953
+ </DrawerClose>\r
3954
+ </template>\r
3955
+ \r
3956
+ <script lang="ts" setup>\r
3957
+ import { DrawerClose } from "vaul-vue";\r
3958
+ \r
3959
+ interface Props\r
3960
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerClose>, "$props">> {}\r
3961
+ const props = defineProps<Props>();\r
3962
+ </script>\r
3963
+ `},{fileName:"Drawer/Content.vue",dirPath:"components/UI",fileContent:`<template>\r
3964
+ <UiDrawerPortal>\r
3965
+ <slot name="overlay">\r
3966
+ <UiDrawerOverlay />\r
3967
+ </slot>\r
3968
+ <slot name="content">\r
3969
+ <DrawerContent v-bind="{ ...props, ...$attrs }" :class="styles({ class: props.class })">\r
3970
+ <slot name="knob">\r
3971
+ <div\r
3972
+ className="mx-auto shrink-0 cursor-grab active:cursor-grabbing my-5 h-2 w-[60px] rounded-full bg-muted"\r
3973
+ />\r
3974
+ </slot>\r
3975
+ <slot />\r
3976
+ </DrawerContent>\r
3977
+ </slot>\r
3978
+ </UiDrawerPortal>\r
3979
+ </template>\r
3980
+ \r
3981
+ <script lang="ts" setup>\r
3982
+ import { DrawerContent } from "vaul-vue";\r
3983
+ \r
3984
+ defineOptions({ inheritAttrs: false });\r
3985
+ \r
3986
+ interface Props\r
3987
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerContent>, "$props">> {}\r
3988
+ \r
3989
+ const props = defineProps<Props & { class?: any }>();\r
3990
+ const styles = tv({\r
3991
+ base: "fixed bottom-0 left-0 right-0 z-50 mt-24 flex h-auto max-h-[95%] flex-col rounded-t-[10px] border bg-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary/40",\r
3992
+ });\r
3993
+ </script>\r
3994
+ `},{fileName:"Drawer/Description.vue",dirPath:"components/UI",fileContent:`<template>\r
3995
+ <DrawerDescription v-bind="props" :class="styles({ class: props.class })">\r
3996
+ <slot>\r
3997
+ {{ props.text }}\r
3998
+ </slot>\r
3999
+ </DrawerDescription>\r
4000
+ </template>\r
4001
+ \r
4002
+ <script lang="ts" setup>\r
4003
+ import { DrawerDescription } from "vaul-vue";\r
4004
+ \r
4005
+ interface Props\r
4006
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerDescription>, "$props">> {\r
4007
+ class?: any;\r
4008
+ text?: string;\r
4009
+ }\r
4010
+ \r
4011
+ const props = defineProps<Props>();\r
4012
+ \r
4013
+ const styles = tv({\r
4014
+ base: "text-sm text-muted-foreground",\r
4015
+ });\r
4016
+ </script>\r
4017
+ `},{fileName:"Drawer/Drawer.vue",dirPath:"components/UI",fileContent:`<template>\r
4018
+ <DrawerRoot v-bind="forwarded">\r
4019
+ <slot />\r
4020
+ </DrawerRoot>\r
4021
+ </template>\r
4022
+ \r
4023
+ <script lang="ts" setup>\r
4024
+ import { useForwardPropsEmits } from "radix-vue";\r
4025
+ import { DrawerRoot } from "vaul-vue";\r
4026
+ import type { DrawerRootEmits, DrawerRootProps } from "vaul-vue";\r
4027
+ \r
4028
+ const props = defineProps<DrawerRootProps>();\r
4029
+ const emits = defineEmits<DrawerRootEmits>();\r
4030
+ const forwarded = useForwardPropsEmits(props, emits);\r
4031
+ </script>\r
4032
+ `},{fileName:"Drawer/Overlay.vue",dirPath:"components/UI",fileContent:`<template>\r
4033
+ <DrawerOverlay v-bind="props" :class="styles({ class: props.class })" />\r
4034
+ </template>\r
4035
+ \r
4036
+ <script lang="ts" setup>\r
4037
+ import { DrawerOverlay } from "vaul-vue";\r
4038
+ \r
4039
+ interface Props\r
4040
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerOverlay>, "$props">> {}\r
4041
+ \r
4042
+ const props = defineProps<Props & { class?: any }>();\r
4043
+ \r
4044
+ const styles = tv({\r
4045
+ base: "fixed inset-0 z-50 bg-black/40 backdrop-blur",\r
4046
+ });\r
4047
+ </script>\r
4048
+ `},{fileName:"Drawer/Portal.vue",dirPath:"components/UI",fileContent:`<template>\r
4049
+ <DrawerPortal v-bind="props">\r
4050
+ <slot />\r
4051
+ </DrawerPortal>\r
4052
+ </template>\r
4053
+ \r
4054
+ <script lang="ts" setup>\r
4055
+ import { DrawerPortal } from "vaul-vue";\r
4056
+ \r
4057
+ interface Props\r
4058
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerPortal>, "$props">> {}\r
4059
+ \r
4060
+ const props = defineProps<Props>();\r
4061
+ </script>\r
4062
+ `},{fileName:"Drawer/Title.vue",dirPath:"components/UI",fileContent:`<template>\r
4063
+ <DrawerTitle v-bind="props" :class="styles({ class: props.class })">\r
4064
+ <slot>\r
4065
+ {{ props.text }}\r
4066
+ </slot>\r
4067
+ </DrawerTitle>\r
4068
+ </template>\r
4069
+ \r
4070
+ <script lang="ts" setup>\r
4071
+ import { DrawerTitle } from "vaul-vue";\r
4072
+ \r
4073
+ interface Props\r
4074
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerTitle>, "$props">> {\r
4075
+ class?: any;\r
4076
+ text?: string;\r
4077
+ }\r
4078
+ \r
4079
+ const props = defineProps<Props>();\r
4080
+ \r
4081
+ const styles = tv({\r
4082
+ base: "text-lg font-semibold leading-none tracking-tight",\r
4083
+ });\r
4084
+ </script>\r
4085
+ `},{fileName:"Drawer/Trigger.vue",dirPath:"components/UI",fileContent:`<template>\r
4086
+ <DrawerTrigger v-bind="props">\r
4087
+ <slot />\r
4088
+ </DrawerTrigger>\r
4089
+ </template>\r
4090
+ \r
4091
+ <script lang="ts" setup>\r
4092
+ import { DrawerTrigger } from "vaul-vue";\r
4093
+ \r
4094
+ interface Props\r
4095
+ extends /* @vue-ignore */ Partial<Pick<InstanceType<typeof DrawerTrigger>, "$props">> {}\r
4096
+ \r
4097
+ const props = defineProps<Props>();\r
4098
+ </script>\r
4099
4099
  `}],utils:[],composables:[],plugins:[]},{name:"Dropdown Menu",value:"dropdown-menu",files:[{fileName:"DropdownMenu/Arrow.vue",dirPath:"components/UI",fileContent:`<template>
4100
4100
  <DropdownMenuArrow
4101
4101
  v-bind="reactiveOmit(props, 'class')"
@@ -4545,104 +4545,104 @@ export default defineNuxtPlugin((nuxtApp) => {
4545
4545
 
4546
4546
  const props = defineProps<DropdownMenuTriggerProps>();
4547
4547
  </script>
4548
- `}],utils:[],composables:[],plugins:[]},{name:"Dropfile",value:"dropfile",files:[{fileName:"Dropfile.vue",dirPath:"components/UI",fileContent:`<template>
4549
- <div @click="open()" ref="dropZoneRef" :class="styles({ isOverDropZone, class: props.class })">
4550
- <slot name="message">
4551
- <div class="py-10 text-center">
4552
- <slot name="icon">
4553
- <div
4554
- v-if="icon"
4555
- class="inline-flex items-center justify-center rounded-md border p-2 transition"
4556
- :class="[isOverDropZone && 'animate-bounce border-primary']"
4557
- >
4558
- <Icon
4559
- :name="icon"
4560
- class="h-7 w-7 opacity-70"
4561
- :class="[isOverDropZone && 'text-primary']"
4562
- />
4563
- </div>
4564
- </slot>
4565
- <slot name="title">
4566
- <p class="mt-5 text-sm font-medium" v-html="title"></p>
4567
- </slot>
4568
- <slot name="subtext">
4569
- <p class="mt-1 text-sm text-muted-foreground/60" v-html="subtext"></p>
4570
- </slot>
4571
- </div>
4572
- </slot>
4573
- </div>
4574
- </template>
4575
-
4576
- <script setup lang="ts">
4577
- const props = withDefaults(
4578
- defineProps<{
4579
- /**
4580
- * The text to display as the title of the dropzone.
4581
- */
4582
- title?: string;
4583
- /**
4584
- * The text to display as the subtext of the dropzone.
4585
- */
4586
- subtext?: string;
4587
- /**
4588
- * The icon to display in the dropzone.
4589
- */
4590
- icon?: string;
4591
- /**
4592
- * The function to call when files are dropped.
4593
- */
4594
- onDrop?: Function;
4595
- /**
4596
- * Whether or not to allow multiple files to be picked. Does not affect drag and drop.
4597
- */
4598
- multiple?: boolean;
4599
- /**
4600
- * The file types to accept. Does not affect drag and drop.
4601
- */
4602
- accept?: string;
4603
- class?: any;
4604
- }>(),
4605
- {
4606
- title: "Click to upload or drag & drop files.",
4607
- subtext: "All file types accepted",
4608
- icon: "heroicons:cloud-arrow-up",
4609
- multiple: true,
4610
- accept: "*",
4611
- }
4612
- );
4613
-
4614
- const { open, reset, onChange } = useFileDialog({
4615
- multiple: props.multiple,
4616
- accept: props.accept,
4617
- });
4618
-
4619
- onChange((files: FileList | null) => {
4620
- if (files?.length) {
4621
- handleDrop(Array.from(files || []))
4622
- reset()
4623
- }
4624
- })
4625
-
4626
- const dropZoneRef = ref<HTMLDivElement>();
4627
- const emits = defineEmits<{
4628
- dropped: [any];
4629
- }>();
4630
-
4631
- const handleDrop = (files: File[] | null) => {
4632
- if (!files) return;
4633
- if (props.onDrop) props.onDrop(files);
4634
- emits("dropped", files);
4635
- };
4636
-
4637
- const { isOverDropZone } = useDropZone(dropZoneRef, handleDrop);
4638
-
4639
- const styles = tv({
4640
- base: "flex w-full cursor-pointer items-center justify-center rounded-md border border-dashed transition hover:border-primary",
4641
- variants: {
4642
- isOverDropZone: { true: "border-primary bg-primary/10" },
4643
- },
4644
- });
4645
- </script>
4548
+ `}],utils:[],composables:[],plugins:[]},{name:"Dropfile",value:"dropfile",files:[{fileName:"Dropfile.vue",dirPath:"components/UI",fileContent:`<template>\r
4549
+ <div @click="open()" ref="dropZoneRef" :class="styles({ isOverDropZone, class: props.class })">\r
4550
+ <slot name="message">\r
4551
+ <div class="py-10 text-center">\r
4552
+ <slot name="icon">\r
4553
+ <div\r
4554
+ v-if="icon"\r
4555
+ class="inline-flex items-center justify-center rounded-md border p-2 transition"\r
4556
+ :class="[isOverDropZone && 'animate-bounce border-primary']"\r
4557
+ >\r
4558
+ <Icon\r
4559
+ :name="icon"\r
4560
+ class="h-7 w-7 opacity-70"\r
4561
+ :class="[isOverDropZone && 'text-primary']"\r
4562
+ />\r
4563
+ </div>\r
4564
+ </slot>\r
4565
+ <slot name="title">\r
4566
+ <p class="mt-5 text-sm font-medium" v-html="title"></p>\r
4567
+ </slot>\r
4568
+ <slot name="subtext">\r
4569
+ <p class="mt-1 text-sm text-muted-foreground/60" v-html="subtext"></p>\r
4570
+ </slot>\r
4571
+ </div>\r
4572
+ </slot>\r
4573
+ </div>\r
4574
+ </template>\r
4575
+ \r
4576
+ <script setup lang="ts">\r
4577
+ const props = withDefaults(\r
4578
+ defineProps<{\r
4579
+ /**\r
4580
+ * The text to display as the title of the dropzone.\r
4581
+ */\r
4582
+ title?: string;\r
4583
+ /**\r
4584
+ * The text to display as the subtext of the dropzone.\r
4585
+ */\r
4586
+ subtext?: string;\r
4587
+ /**\r
4588
+ * The icon to display in the dropzone.\r
4589
+ */\r
4590
+ icon?: string;\r
4591
+ /**\r
4592
+ * The function to call when files are dropped.\r
4593
+ */\r
4594
+ onDrop?: Function;\r
4595
+ /**\r
4596
+ * Whether or not to allow multiple files to be picked. Does not affect drag and drop.\r
4597
+ */\r
4598
+ multiple?: boolean;\r
4599
+ /**\r
4600
+ * The file types to accept. Does not affect drag and drop.\r
4601
+ */\r
4602
+ accept?: string;\r
4603
+ class?: any;\r
4604
+ }>(),\r
4605
+ {\r
4606
+ title: "Click to upload or drag & drop files.",\r
4607
+ subtext: "All file types accepted",\r
4608
+ icon: "heroicons:cloud-arrow-up",\r
4609
+ multiple: true,\r
4610
+ accept: "*",\r
4611
+ }\r
4612
+ );\r
4613
+ \r
4614
+ const { open, reset, onChange } = useFileDialog({\r
4615
+ multiple: props.multiple,\r
4616
+ accept: props.accept,\r
4617
+ });\r
4618
+ \r
4619
+ onChange((files: FileList | null) => {\r
4620
+ if (files?.length) {\r
4621
+ handleDrop(Array.from(files || []))\r
4622
+ reset()\r
4623
+ }\r
4624
+ })\r
4625
+ \r
4626
+ const dropZoneRef = ref<HTMLDivElement>();\r
4627
+ const emits = defineEmits<{\r
4628
+ dropped: [any];\r
4629
+ }>();\r
4630
+ \r
4631
+ const handleDrop = (files: File[] | null) => {\r
4632
+ if (!files) return;\r
4633
+ if (props.onDrop) props.onDrop(files);\r
4634
+ emits("dropped", files);\r
4635
+ };\r
4636
+ \r
4637
+ const { isOverDropZone } = useDropZone(dropZoneRef, handleDrop);\r
4638
+ \r
4639
+ const styles = tv({\r
4640
+ base: "flex w-full cursor-pointer items-center justify-center rounded-md border border-dashed transition hover:border-primary",\r
4641
+ variants: {\r
4642
+ isOverDropZone: { true: "border-primary bg-primary/10" },\r
4643
+ },\r
4644
+ });\r
4645
+ </script>\r
4646
4646
  `}],utils:[],composables:[],plugins:[]},{name:"Form",value:"form",deps:["@vee-validate/nuxt"],nuxtModules:["@vee-validate/nuxt"],composables:[{fileName:"useFormField.ts",dirPath:"composables",fileContent:`import { FORM_ITEM_INJECTION_KEY } from "@/components/Ui/Form/Item.vue";
4647
4647
  import {
4648
4648
  FieldContextKey,
@@ -4924,33 +4924,33 @@ export function useFormField() {
4924
4924
  defineOptions({ inheritAttrs: false });
4925
4925
  const props = defineProps<HoverCardTriggerProps>();
4926
4926
  </script>
4927
- `}],utils:[],composables:[],plugins:[]},{name:"Input",value:"input",devDeps:["@vueuse/core"],files:[{fileName:"Input.vue",dirPath:"components/UI",fileContent:`<template>
4928
- <input :class="styles({ class: props.class })" v-bind="props" v-model="localModel" />
4929
- </template>
4930
-
4931
- <script lang="ts" setup>
4932
- const props = withDefaults(
4933
- defineProps<{
4934
- class?: any;
4935
- id?: string;
4936
- name?: string;
4937
- placeholder?: string;
4938
- disabled?: boolean;
4939
- required?: boolean;
4940
- type?: string;
4941
- modelValue?: any;
4942
- }>(),
4943
- { type: "text" }
4944
- );
4945
- const emits = defineEmits<{
4946
- "update:modelValue": [value: any];
4947
- }>();
4948
- const localModel = useVModel(props, "modelValue", emits);
4949
-
4950
- const styles = tv({
4951
- base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",
4952
- });
4953
- </script>
4927
+ `}],utils:[],composables:[],plugins:[]},{name:"Input",value:"input",devDeps:["@vueuse/core"],files:[{fileName:"Input.vue",dirPath:"components/UI",fileContent:`<template>\r
4928
+ <input :class="styles({ class: props.class })" v-bind="props" v-model="localModel" />\r
4929
+ </template>\r
4930
+ \r
4931
+ <script lang="ts" setup>\r
4932
+ const props = withDefaults(\r
4933
+ defineProps<{\r
4934
+ class?: any;\r
4935
+ id?: string;\r
4936
+ name?: string;\r
4937
+ placeholder?: string;\r
4938
+ disabled?: boolean;\r
4939
+ required?: boolean;\r
4940
+ type?: string;\r
4941
+ modelValue?: any;\r
4942
+ }>(),\r
4943
+ { type: "text" }\r
4944
+ );\r
4945
+ const emits = defineEmits<{\r
4946
+ "update:modelValue": [value: any];\r
4947
+ }>();\r
4948
+ const localModel = useVModel(props, "modelValue", emits);\r
4949
+ \r
4950
+ const styles = tv({\r
4951
+ base: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-[16px] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground file:hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",\r
4952
+ });\r
4953
+ </script>\r
4954
4954
  `}],utils:[],composables:[],plugins:[]},{name:"Keyboard Key",value:"kbd",files:[{fileName:"Kbd.vue",dirPath:"components/UI",fileContent:`<template>
4955
4955
  <Primitive
4956
4956
  :class="styles({ size, class: props.class })"
@@ -5624,64 +5624,64 @@ export function useFormField() {
5624
5624
  base: "flex cursor-pointer select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:text-accent-foreground",
5625
5625
  });
5626
5626
  </script>
5627
- `}],utils:[],composables:[],plugins:[]},{name:"Native Select",value:"native-select",devDeps:["@vueuse/core"],files:[{fileName:"NativeSelect.vue",dirPath:"components/UI",fileContent:`<template>
5628
- <div class="relative">
5629
- <select
5630
- ref="select"
5631
- :multiple="multiple"
5632
- :name="name"
5633
- :size="size"
5634
- :id="id"
5635
- :placeholder="placeholder"
5636
- :disabled="disabled"
5637
- :required="required"
5638
- v-model="localModel"
5639
- :class="styles({ class: props.class })"
5640
- >
5641
- <slot></slot>
5642
- </select>
5643
- <span class="pointer-events-none absolute inset-y-0 right-3 flex items-center justify-center">
5644
- <slot name="trailingIcon">
5645
- <Icon
5646
- :name="trailingIcon || 'lucide:chevrons-up-down'"
5647
- class="h-4 w-4 text-muted-foreground"
5648
- />
5649
- </slot>
5650
- </span>
5651
- </div>
5652
- </template>
5653
-
5654
- <script lang="ts" setup>
5655
- const props = defineProps<{
5656
- class?: any;
5657
- id?: string;
5658
- name?: string;
5659
- placeholder?: string;
5660
- disabled?: boolean;
5661
- required?: boolean;
5662
- modelValue?: any;
5663
- multiple?: boolean;
5664
- size?: number;
5665
- autofocus?: boolean;
5666
- trailingIcon?: string;
5667
- }>();
5668
- const styles = tv({
5669
- base: "h-10 w-full appearance-none rounded-md border border-input bg-background px-3 py-2 pr-10 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",
5670
- });
5671
-
5672
- const select = ref<HTMLSelectElement | null>(null);
5673
- const emits = defineEmits<{
5674
- "update:modelValue": [value: any];
5675
- }>();
5676
-
5677
- const localModel = useVModel(props, "modelValue", emits);
5678
-
5679
- onMounted(() => {
5680
- if (props.autofocus) {
5681
- select.value?.focus();
5682
- }
5683
- });
5684
- </script>
5627
+ `}],utils:[],composables:[],plugins:[]},{name:"Native Select",value:"native-select",devDeps:["@vueuse/core"],files:[{fileName:"NativeSelect.vue",dirPath:"components/UI",fileContent:`<template>\r
5628
+ <div class="relative">\r
5629
+ <select\r
5630
+ ref="select"\r
5631
+ :multiple="multiple"\r
5632
+ :name="name"\r
5633
+ :size="size"\r
5634
+ :id="id"\r
5635
+ :placeholder="placeholder"\r
5636
+ :disabled="disabled"\r
5637
+ :required="required"\r
5638
+ v-model="localModel"\r
5639
+ :class="styles({ class: props.class })"\r
5640
+ >\r
5641
+ <slot></slot>\r
5642
+ </select>\r
5643
+ <span class="pointer-events-none absolute inset-y-0 right-3 flex items-center justify-center">\r
5644
+ <slot name="trailingIcon">\r
5645
+ <Icon\r
5646
+ :name="trailingIcon || 'lucide:chevrons-up-down'"\r
5647
+ class="h-4 w-4 text-muted-foreground"\r
5648
+ />\r
5649
+ </slot>\r
5650
+ </span>\r
5651
+ </div>\r
5652
+ </template>\r
5653
+ \r
5654
+ <script lang="ts" setup>\r
5655
+ const props = defineProps<{\r
5656
+ class?: any;\r
5657
+ id?: string;\r
5658
+ name?: string;\r
5659
+ placeholder?: string;\r
5660
+ disabled?: boolean;\r
5661
+ required?: boolean;\r
5662
+ modelValue?: any;\r
5663
+ multiple?: boolean;\r
5664
+ size?: number;\r
5665
+ autofocus?: boolean;\r
5666
+ trailingIcon?: string;\r
5667
+ }>();\r
5668
+ const styles = tv({\r
5669
+ base: "h-10 w-full appearance-none rounded-md border border-input bg-background px-3 py-2 pr-10 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",\r
5670
+ });\r
5671
+ \r
5672
+ const select = ref<HTMLSelectElement | null>(null);\r
5673
+ const emits = defineEmits<{\r
5674
+ "update:modelValue": [value: any];\r
5675
+ }>();\r
5676
+ \r
5677
+ const localModel = useVModel(props, "modelValue", emits);\r
5678
+ \r
5679
+ onMounted(() => {\r
5680
+ if (props.autofocus) {\r
5681
+ select.value?.focus();\r
5682
+ }\r
5683
+ });\r
5684
+ </script>\r
5685
5685
  `}],utils:[],composables:[],plugins:[]},{name:"Navbar",value:"navbar",files:[{fileName:"Navbar.vue",dirPath:"components/UI",fileContent:`<template>
5686
5686
  <Primitive :class="styles({ sticky, class: props.class })" v-bind="reactiveOmit(props, 'class')">
5687
5687
  <slot> </slot>
@@ -5809,32 +5809,32 @@ export function useFormField() {
5809
5809
  base: "group flex flex-1 list-none items-center justify-center space-x-1",
5810
5810
  });
5811
5811
  </script>
5812
- `},{fileName:"NavigationMenu/NavigationMenu.vue",dirPath:"components/UI",fileContent:`<template>
5813
- <NavigationMenuRoot :class="styles({ class: props.class })" v-bind="forwarded">
5814
- <slot></slot>
5815
- <slot name="viewport">
5816
- <UiNavigationMenuViewport />
5817
- </slot>
5818
- </NavigationMenuRoot>
5819
- </template>
5820
-
5821
- <script lang="ts" setup>
5822
- import { NavigationMenuRoot, useForwardPropsEmits } from "radix-vue";
5823
- import type { NavigationMenuRootEmits, NavigationMenuRootProps } from "radix-vue";
5824
-
5825
- const props = defineProps<
5826
- NavigationMenuRootProps & {
5827
- /** Custom class(es) to add to the parent */
5828
- class?: any;
5829
- }
5830
- >();
5831
- const emits = defineEmits<NavigationMenuRootEmits>();
5832
- const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);
5833
-
5834
- const styles = tv({
5835
- base: "relative flex max-w-max flex-1 items-center justify-center",
5836
- });
5837
- </script>
5812
+ `},{fileName:"NavigationMenu/NavigationMenu.vue",dirPath:"components/UI",fileContent:`<template>\r
5813
+ <NavigationMenuRoot :class="styles({ class: props.class })" v-bind="forwarded">\r
5814
+ <slot></slot>\r
5815
+ <slot name="viewport">\r
5816
+ <UiNavigationMenuViewport />\r
5817
+ </slot>\r
5818
+ </NavigationMenuRoot>\r
5819
+ </template>\r
5820
+ \r
5821
+ <script lang="ts" setup>\r
5822
+ import { NavigationMenuRoot, useForwardPropsEmits } from "radix-vue";\r
5823
+ import type { NavigationMenuRootEmits, NavigationMenuRootProps } from "radix-vue";\r
5824
+ \r
5825
+ const props = defineProps<\r
5826
+ NavigationMenuRootProps & {\r
5827
+ /** Custom class(es) to add to the parent */\r
5828
+ class?: any;\r
5829
+ }\r
5830
+ >();\r
5831
+ const emits = defineEmits<NavigationMenuRootEmits>();\r
5832
+ const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);\r
5833
+ \r
5834
+ const styles = tv({\r
5835
+ base: "relative flex max-w-max flex-1 items-center justify-center",\r
5836
+ });\r
5837
+ </script>\r
5838
5838
  `},{fileName:"NavigationMenu/Sub.vue",dirPath:"components/UI",fileContent:`<template>
5839
5839
  <NavigationMenuSub v-bind="forwarded">
5840
5840
  <slot></slot>
@@ -5849,41 +5849,41 @@ export function useFormField() {
5849
5849
  const emits = defineEmits<NavigationMenuSubEmits>();
5850
5850
  const forwarded = useForwardPropsEmits(props, emits);
5851
5851
  </script>
5852
- `},{fileName:"NavigationMenu/Trigger.vue",dirPath:"components/UI",fileContent:`<template>
5853
- <NavigationMenuTrigger
5854
- v-bind="reactiveOmit(props, 'class', 'icon', 'title')"
5855
- :class="styles({ class: props.class })"
5856
- >
5857
- <slot>{{ title }}</slot>
5858
- <slot name="icon">
5859
- <Icon
5860
- :name="icon || 'lucide:chevron-down'"
5861
- class="relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180"
5862
- aria-hidden="true"
5863
- />
5864
- </slot>
5865
- </NavigationMenuTrigger>
5866
- </template>
5867
-
5868
- <script lang="ts" setup>
5869
- import { NavigationMenuTrigger } from "radix-vue";
5870
- import type { NavigationMenuTriggerProps } from "radix-vue";
5871
-
5872
- const props = defineProps<
5873
- NavigationMenuTriggerProps & {
5874
- /** Custom class(es) to add to the parent */
5875
- class?: any;
5876
- /** Icon to show */
5877
- icon?: string;
5878
- /** Title to show */
5879
- title?: string;
5880
- }
5881
- >();
5882
-
5883
- const styles = tv({
5884
- base: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50",
5885
- });
5886
- </script>
5852
+ `},{fileName:"NavigationMenu/Trigger.vue",dirPath:"components/UI",fileContent:`<template>\r
5853
+ <NavigationMenuTrigger\r
5854
+ v-bind="reactiveOmit(props, 'class', 'icon', 'title')"\r
5855
+ :class="styles({ class: props.class })"\r
5856
+ >\r
5857
+ <slot>{{ title }}</slot>\r
5858
+ <slot name="icon">\r
5859
+ <Icon\r
5860
+ :name="icon || 'lucide:chevron-down'"\r
5861
+ class="relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180"\r
5862
+ aria-hidden="true"\r
5863
+ />\r
5864
+ </slot>\r
5865
+ </NavigationMenuTrigger>\r
5866
+ </template>\r
5867
+ \r
5868
+ <script lang="ts" setup>\r
5869
+ import { NavigationMenuTrigger } from "radix-vue";\r
5870
+ import type { NavigationMenuTriggerProps } from "radix-vue";\r
5871
+ \r
5872
+ const props = defineProps<\r
5873
+ NavigationMenuTriggerProps & {\r
5874
+ /** Custom class(es) to add to the parent */\r
5875
+ class?: any;\r
5876
+ /** Icon to show */\r
5877
+ icon?: string;\r
5878
+ /** Title to show */\r
5879
+ title?: string;\r
5880
+ }\r
5881
+ >();\r
5882
+ \r
5883
+ const styles = tv({\r
5884
+ base: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50",\r
5885
+ });\r
5886
+ </script>\r
5887
5887
  `},{fileName:"NavigationMenu/Viewport.vue",dirPath:"components/UI",fileContent:`<template>
5888
5888
  <div class="absolute left-0 top-full flex justify-center">
5889
5889
  <NavigationMenuViewport
@@ -8950,75 +8950,75 @@ export { toast, useToast };
8950
8950
  }
8951
8951
  );
8952
8952
  </script>
8953
- `}],utils:[],composables:[],plugins:[]},{name:"VeeCurrencyInput",value:"vee-currencyinput",deps:["@vee-validate/nuxt","@morev/vue-transitions"],askValidator:!0,nuxtModules:["@vee-validate/nuxt","@morev/vue-transitions/nuxt"],components:["currencyinput","label"],files:[{fileName:"Vee/CurrencyInput.vue",dirPath:"components/UI",fileContent:`<template>
8954
- <div class="w-full">
8955
- <UiLabel
8956
- :for="inputId"
8957
- v-if="label"
8958
- :hint="labelHint"
8959
- :class="[disabled && 'text-muted-foreground', errorMessage && 'text-destructive', 'mb-2']"
8960
- >{{ label }}</UiLabel
8961
- >
8962
- <div class="relative">
8963
- <slot name="icon">
8964
- <span v-if="hasIcon" class="absolute inset-y-0 left-3 flex items-center justify-center">
8965
- <Icon :name="icon" v-if="icon" class="h-4 w-4 text-muted-foreground/70" />
8966
- </span>
8967
- </slot>
8968
- <UiCurrencyInput
8969
- type="text"
8970
- v-model="value"
8971
- :id="inputId"
8972
- :name="name"
8973
- :disabled="disabled"
8974
- v-bind="$attrs"
8975
- :class="[hasIcon && 'pl-9']"
8976
- :placeholder="placeholder"
8977
- :options="options"
8978
- />
8979
- </div>
8980
- <TransitionSlide group tag="div">
8981
- <p key="hint" class="mt-1.5 text-sm text-muted-foreground" v-if="hint && !errorMessage">
8982
- {{ hint }}
8983
- </p>
8984
-
8985
- <p key="errorMessage" class="mt-1.5 text-sm text-destructive" v-if="errorMessage">
8986
- {{ errorMessage }}
8987
- </p>
8988
- </TransitionSlide>
8989
- </div>
8990
- </template>
8991
-
8992
- <script lang="ts" setup>
8993
- import type { CurrencyInputOptions } from "vue-currency-input";
8994
-
8995
- const props = defineProps<{
8996
- label?: string;
8997
- labelHint?: string;
8998
- icon?: string;
8999
- hint?: string;
9000
- disabled?: boolean;
9001
- modelValue?: string;
9002
- name?: string;
9003
- id?: string;
9004
- rules?: any;
9005
- validateOnMount?: boolean;
9006
- type?: string;
9007
- placeholder?: string;
9008
- options?: CurrencyInputOptions;
9009
- }>();
9010
-
9011
- const inputId = useId();
9012
-
9013
- const hasIcon = computed(() => Boolean(props.icon) || Boolean(useSlots().icon));
9014
-
9015
- const { errorMessage, value } = useField(() => props.name || inputId, props.rules, {
9016
- initialValue: props.modelValue,
9017
- label: props.label,
9018
- validateOnMount: props.validateOnMount,
9019
- syncVModel: true,
9020
- });
9021
- </script>
8953
+ `}],utils:[],composables:[],plugins:[]},{name:"VeeCurrencyInput",value:"vee-currency-input",deps:["@vee-validate/nuxt","@morev/vue-transitions"],askValidator:!0,nuxtModules:["@vee-validate/nuxt","@morev/vue-transitions/nuxt"],components:["currency-input","label"],files:[{fileName:"Vee/CurrencyInput.vue",dirPath:"components/UI",fileContent:`<template>\r
8954
+ <div class="w-full">\r
8955
+ <UiLabel\r
8956
+ :for="inputId"\r
8957
+ v-if="label"\r
8958
+ :hint="labelHint"\r
8959
+ :class="[disabled && 'text-muted-foreground', errorMessage && 'text-destructive', 'mb-2']"\r
8960
+ >{{ label }}</UiLabel\r
8961
+ >\r
8962
+ <div class="relative">\r
8963
+ <slot name="icon">\r
8964
+ <span v-if="hasIcon" class="absolute inset-y-0 left-3 flex items-center justify-center">\r
8965
+ <Icon :name="icon" v-if="icon" class="h-4 w-4 text-muted-foreground/70" />\r
8966
+ </span>\r
8967
+ </slot>\r
8968
+ <UiCurrencyInput\r
8969
+ type="text"\r
8970
+ v-model="value"\r
8971
+ :id="inputId"\r
8972
+ :name="name"\r
8973
+ :disabled="disabled"\r
8974
+ v-bind="$attrs"\r
8975
+ :class="[hasIcon && 'pl-9']"\r
8976
+ :placeholder="placeholder"\r
8977
+ :options="options"\r
8978
+ />\r
8979
+ </div>\r
8980
+ <TransitionSlide group tag="div">\r
8981
+ <p key="hint" class="mt-1.5 text-sm text-muted-foreground" v-if="hint && !errorMessage">\r
8982
+ {{ hint }}\r
8983
+ </p>\r
8984
+ \r
8985
+ <p key="errorMessage" class="mt-1.5 text-sm text-destructive" v-if="errorMessage">\r
8986
+ {{ errorMessage }}\r
8987
+ </p>\r
8988
+ </TransitionSlide>\r
8989
+ </div>\r
8990
+ </template>\r
8991
+ \r
8992
+ <script lang="ts" setup>\r
8993
+ import type { CurrencyInputOptions } from "vue-currency-input";\r
8994
+ \r
8995
+ const props = defineProps<{\r
8996
+ label?: string;\r
8997
+ labelHint?: string;\r
8998
+ icon?: string;\r
8999
+ hint?: string;\r
9000
+ disabled?: boolean;\r
9001
+ modelValue?: string;\r
9002
+ name?: string;\r
9003
+ id?: string;\r
9004
+ rules?: any;\r
9005
+ validateOnMount?: boolean;\r
9006
+ type?: string;\r
9007
+ placeholder?: string;\r
9008
+ options?: CurrencyInputOptions;\r
9009
+ }>();\r
9010
+ \r
9011
+ const inputId = useId();\r
9012
+ \r
9013
+ const hasIcon = computed(() => Boolean(props.icon) || Boolean(useSlots().icon));\r
9014
+ \r
9015
+ const { errorMessage, value } = useField(() => props.name || inputId, props.rules, {\r
9016
+ initialValue: props.modelValue,\r
9017
+ label: props.label,\r
9018
+ validateOnMount: props.validateOnMount,\r
9019
+ syncVModel: true,\r
9020
+ });\r
9021
+ </script>\r
9022
9022
  `}],utils:[],composables:[],plugins:[]},{name:"VeeDatepicker",value:"vee-datepicker",deps:["@vee-validate/nuxt","@morev/vue-transitions"],askValidator:!0,nuxtModules:["@vee-validate/nuxt","@morev/vue-transitions/nuxt"],components:["datepicker","label","input"],files:[{fileName:"Vee/Datepicker.vue",dirPath:"components/UI",fileContent:`<template>
9023
9023
  <div class="w-full">
9024
9024
  <UiLabel