@fastkit/vui 0.6.16 → 0.6.20

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/vui.css CHANGED
@@ -512,6 +512,15 @@ template {
512
512
  --toolbar-dense-height: calc(var(--toolbar-height) * 0.8);
513
513
  --card-content-padding: 1rem;
514
514
  --card-actions-padding: 0.5rem;
515
+ --pagination-item-radius: 2px;
516
+ --pagination-item-font-size: var(--root-em);
517
+ --pagination-item-size: calc(var(--root-em) * 2);
518
+ --pagination-item-margin: calc(var(--root-em) * 0.5);
519
+ --pagination-item-font-size-dense: calc(
520
+ var(--pagination-item-font-size) * 0.625
521
+ );
522
+ --pagination-item-size-dense: calc(var(--pagination-item-size) * 0.8125);
523
+ --pagination-item-margin-dense: calc(var(--pagination-item-margin) * 0.75);
515
524
  }
516
525
 
517
526
  :root,
@@ -922,6 +931,108 @@ h6,
922
931
  z-index: 1;
923
932
  transform: translate(-50%, -50%);
924
933
  }
934
+ .v-pagination {
935
+ --pagination-size: var(--pagination-item-size);
936
+ --pagination-margin: var(--pagination-item-margin);
937
+ --pagination-font-size: var(--pagination-item-font-size);
938
+ --pagination-radius: var(--pagination-item-radius);
939
+ display: flex;
940
+ align-items: center;
941
+ overflow: hidden;
942
+ font-weight: bold;
943
+ line-height: 1;
944
+ }
945
+ .v-pagination::before {
946
+ width: var(--pagination-size);
947
+ margin: var(--pagination-margin);
948
+ content: none;
949
+ }
950
+ .v-pagination--left {
951
+ justify-content: flex-start;
952
+ }
953
+ .v-pagination--center {
954
+ justify-content: center;
955
+ }
956
+ .v-pagination--right {
957
+ justify-content: flex-end;
958
+ }
959
+ .v-pagination__item,
960
+ .v-pagination a.v-pagination__item {
961
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
962
+ padding: 0;
963
+ touch-action: manipulation;
964
+ cursor: pointer;
965
+ user-select: none;
966
+ background-color: transparent;
967
+ border: 0;
968
+ outline: 0;
969
+ appearance: none;
970
+ display: flex;
971
+ align-items: center;
972
+ justify-content: center;
973
+ min-width: var(--pagination-size);
974
+ height: var(--pagination-size);
975
+ margin: calc(var(--pagination-margin) * 0.5);
976
+ font-size: var(--pagination-font-size);
977
+ color: inherit;
978
+ border-radius: var(--pagination-radius);
979
+ transition: 0.1s;
980
+ }
981
+ .v-pagination__item::-moz-focus-inner,
982
+ .v-pagination a.v-pagination__item::-moz-focus-inner {
983
+ border: 0;
984
+ }
985
+ .v-pagination__item, .v-pagination__item:hover, .v-pagination__item:focus,
986
+ .v-pagination a.v-pagination__item,
987
+ .v-pagination a.v-pagination__item:hover,
988
+ .v-pagination a.v-pagination__item:focus {
989
+ text-decoration: none;
990
+ }
991
+ .v-pagination__item:hover, .v-pagination__item:focus,
992
+ .v-pagination a.v-pagination__item:hover,
993
+ .v-pagination a.v-pagination__item:focus {
994
+ background: rgba(0, 0, 0, 0.1);
995
+ }
996
+ .v-pagination__item--active, .v-pagination__item--active:hover, .v-pagination__item--active:focus, .v-pagination__item--active:active,
997
+ .v-pagination a.v-pagination__item--active,
998
+ .v-pagination a.v-pagination__item--active:hover,
999
+ .v-pagination a.v-pagination__item--active:focus,
1000
+ .v-pagination a.v-pagination__item--active:active {
1001
+ color: var(--text-color);
1002
+ pointer-events: none;
1003
+ background-color: var(--main-color);
1004
+ }
1005
+ .v-pagination__item--disabled,
1006
+ .v-pagination a.v-pagination__item--disabled {
1007
+ color: var(--palette-muted) !important;
1008
+ pointer-events: none !important;
1009
+ background: transparent !important;
1010
+ }
1011
+ .v-pagination__item--truncate,
1012
+ .v-pagination a.v-pagination__item--truncate {
1013
+ color: var(--palette-muted) !important;
1014
+ pointer-events: none !important;
1015
+ background: transparent !important;
1016
+ }
1017
+ .v-pagination__item .v-icon,
1018
+ .v-pagination a.v-pagination__item .v-icon {
1019
+ font-size: 150%;
1020
+ }
1021
+ .v-pagination--dense .v-pagination__item {
1022
+ --pagination-size: var(--pagination-item-size-dense);
1023
+ --pagination-margin: var(--pagination-item-margin-dense);
1024
+ --pagination-font-size: var(--pagination-item-font-size-dense);
1025
+ }
1026
+ .v-pagination--disabled .v-pagination__item {
1027
+ color: var(--palette-muted);
1028
+ pointer-events: none;
1029
+ }
1030
+ .v-pagination--disabled .v-pagination__item:hover, .v-pagination--disabled .v-pagination__item:focus {
1031
+ background: transparent;
1032
+ }
1033
+ .v-pagination--disabled .v-pagination__item--active {
1034
+ background: var(--palette-muted);
1035
+ }
925
1036
  .v-list-tile {
926
1037
  --tile-background: var(--main-color, transparent);
927
1038
  --tile-active-background: var(--deep-color, transparent);
@@ -994,8 +1105,24 @@ h6,
994
1105
  flex: 0 0 auto;
995
1106
  margin-top: auto;
996
1107
  }
1108
+ .v-hero {
1109
+ --hero-background-color: var(--main-color);
1110
+ --hero-text-color: var(--text-color);
1111
+ padding: 20px 30px;
1112
+ margin: 0;
1113
+ color: var(--hero-text-color);
1114
+ background-color: var(--hero-background-color);
1115
+ }
1116
+ .v-hero__title {
1117
+ margin: 0;
1118
+ font-size: 1.75rem;
1119
+ font-weight: 300;
1120
+ line-height: 1;
1121
+ color: inherit;
1122
+ }
997
1123
  .v-navigation-item--opened {
998
1124
  --tile-background: var(--tile-active-background);
1125
+ --tile-text-color: var(--tile-text-active-color);
999
1126
  }
1000
1127
  .v-navigation-item__expand {
1001
1128
  transition: height 0.2s;
@@ -1522,20 +1649,27 @@ h6,
1522
1649
  --height: var(--toolbar-dense-height);
1523
1650
  }
1524
1651
  .v-toolbar-menu {
1652
+ height: 100%;
1653
+ margin: 0;
1654
+ box-shadow: none;
1655
+ }
1656
+ .v-toolbar-edge {
1525
1657
  display: flex;
1658
+ flex: 0 0;
1526
1659
  align-items: center;
1527
1660
  align-self: stretch;
1528
1661
  }
1529
- .v-toolbar-menu:empty, .v-toolbar-menu--empty {
1662
+ .v-toolbar-edge:empty, .v-toolbar-edge--empty {
1530
1663
  display: none;
1531
1664
  }
1532
- .v-toolbar-menu--start {
1665
+ .v-toolbar-edge--start {
1533
1666
  margin-right: calc(var(--root-em) * 0.75);
1534
1667
  margin-left: calc(-1 * var(--root-em) * 0.75);
1535
1668
  }
1536
- .v-toolbar-menu--end {
1669
+ .v-toolbar-edge--end {
1670
+ padding-left: calc(var(--root-em) * 0.75);
1537
1671
  margin-right: calc(-1 * var(--root-em) * 0.75);
1538
- margin-left: calc(var(--root-em) * 0.75);
1672
+ margin-left: auto;
1539
1673
  }
1540
1674
  .v-toolbar-title {
1541
1675
  display: flex;
package/dist/vui.d.ts CHANGED
@@ -123,6 +123,7 @@ export declare function createListTileProps(): {
123
123
  };
124
124
  startIconEmptySpace: BooleanConstructor;
125
125
  color: PropType<ScopeName>;
126
+ exactMatch: BooleanConstructor;
126
127
  tag: StringConstructor;
127
128
  to: PropType<RouteLocationRaw>;
128
129
  replace: BooleanConstructor;
@@ -157,6 +158,7 @@ export declare function createNavigationItemProps(): {
157
158
  };
158
159
  startIconEmptySpace: BooleanConstructor;
159
160
  color: PropType<ScopeName>;
161
+ exactMatch: BooleanConstructor;
160
162
  tag: StringConstructor;
161
163
  to: PropType<RouteLocationRaw>;
162
164
  replace: BooleanConstructor;
@@ -482,6 +484,44 @@ export declare interface NavigationItemInput extends ExtractPropInput<ReturnType
482
484
  children?: NavigationItemInput[];
483
485
  }
484
486
 
487
+ export declare const PAGINATION_ALIGNS: readonly ["left", "center", "right"];
488
+
489
+ export declare function paginationProps(): {
490
+ /**
491
+ * Active Pages
492
+ */
493
+ modelValue: {
494
+ type: PropType<string | number>;
495
+ default: number;
496
+ };
497
+ /**
498
+ * Total number of pages
499
+ */
500
+ length: {
501
+ type: PropType<string | number>;
502
+ default: number;
503
+ };
504
+ /**
505
+ * Maximum number of links to display.
506
+ */
507
+ totalVisible: PropType<string | number>;
508
+ /**
509
+ * true when narrowing
510
+ */
511
+ dense: BooleanConstructor;
512
+ disabled: BooleanConstructor;
513
+ align: {
514
+ type: PropType<"left" | "center" | "right">;
515
+ default: string;
516
+ };
517
+ /**
518
+ * To synchronize with a query, use the query name
519
+ */
520
+ routeQuery: StringConstructor;
521
+ beforeChange: PropType<VPaginationGuard>;
522
+ color: PropType<ScopeName>;
523
+ };
524
+
485
525
  export declare type RawIconProp = IconName | EmptyIconSymbol | ToggleableIconHook;
486
526
 
487
527
  export declare function rawIconProp(): PropType<RawIconProp>;
@@ -1311,6 +1351,33 @@ export declare interface VFormSlots {
1311
1351
  default: VueForm;
1312
1352
  }
1313
1353
 
1354
+ export declare const VHero: DefineComponent<{
1355
+ color: {
1356
+ type: PropType<ScopeName>;
1357
+ default: string;
1358
+ };
1359
+ tag: {
1360
+ type: StringConstructor;
1361
+ default: string;
1362
+ };
1363
+ hTag: {
1364
+ type: StringConstructor;
1365
+ default: string;
1366
+ };
1367
+ }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
1368
+ color?: unknown;
1369
+ tag?: unknown;
1370
+ hTag?: unknown;
1371
+ } & {
1372
+ color: ScopeName;
1373
+ tag: string;
1374
+ hTag: string;
1375
+ } & {}>, {
1376
+ color: ScopeName;
1377
+ tag: string;
1378
+ hTag: string;
1379
+ }>;
1380
+
1314
1381
  export declare const VIcon: DefineComponent<{
1315
1382
  name: {
1316
1383
  type: PropType<IconName | "$empty">;
@@ -1341,6 +1408,7 @@ export declare const VListTile: DefineComponent<{
1341
1408
  };
1342
1409
  startIconEmptySpace: BooleanConstructor;
1343
1410
  color: PropType<ScopeName>;
1411
+ exactMatch: BooleanConstructor;
1344
1412
  tag: StringConstructor;
1345
1413
  to: PropType<RouteLocationRaw>;
1346
1414
  replace: BooleanConstructor;
@@ -1372,6 +1440,7 @@ export declare const VListTile: DefineComponent<{
1372
1440
  fallbackTag?: unknown;
1373
1441
  startIconEmptySpace?: unknown;
1374
1442
  color?: unknown;
1443
+ exactMatch?: unknown;
1375
1444
  tag?: unknown;
1376
1445
  to?: unknown;
1377
1446
  replace?: unknown;
@@ -1395,6 +1464,7 @@ export declare const VListTile: DefineComponent<{
1395
1464
  replace: boolean;
1396
1465
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
1397
1466
  startIconEmptySpace: boolean;
1467
+ exactMatch: boolean;
1398
1468
  fallbackTag: string;
1399
1469
  custom: boolean;
1400
1470
  disabled: boolean;
@@ -1424,6 +1494,7 @@ export declare const VListTile: DefineComponent<{
1424
1494
  replace: boolean;
1425
1495
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
1426
1496
  startIconEmptySpace: boolean;
1497
+ exactMatch: boolean;
1427
1498
  fallbackTag: string;
1428
1499
  custom: boolean;
1429
1500
  disabled: boolean;
@@ -1468,6 +1539,7 @@ export declare const VNavigationItem: DefineComponent<{
1468
1539
  };
1469
1540
  startIconEmptySpace: BooleanConstructor;
1470
1541
  color: PropType<ScopeName>;
1542
+ exactMatch: BooleanConstructor;
1471
1543
  tag: StringConstructor;
1472
1544
  to: PropType<RouteLocationRaw>;
1473
1545
  replace: BooleanConstructor;
@@ -1501,6 +1573,7 @@ export declare const VNavigationItem: DefineComponent<{
1501
1573
  fallbackTag?: unknown;
1502
1574
  startIconEmptySpace?: unknown;
1503
1575
  color?: unknown;
1576
+ exactMatch?: unknown;
1504
1577
  tag?: unknown;
1505
1578
  to?: unknown;
1506
1579
  replace?: unknown;
@@ -1524,6 +1597,7 @@ export declare const VNavigationItem: DefineComponent<{
1524
1597
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
1525
1598
  replace: boolean;
1526
1599
  startIconEmptySpace: boolean;
1600
+ exactMatch: boolean;
1527
1601
  fallbackTag: string;
1528
1602
  custom: boolean;
1529
1603
  disabled: boolean;
@@ -1555,6 +1629,7 @@ export declare const VNavigationItem: DefineComponent<{
1555
1629
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
1556
1630
  replace: boolean;
1557
1631
  startIconEmptySpace: boolean;
1632
+ exactMatch: boolean;
1558
1633
  fallbackTag: string;
1559
1634
  custom: boolean;
1560
1635
  disabled: boolean;
@@ -1726,6 +1801,77 @@ export declare const VOptionGroup: DefineComponent<{
1726
1801
  disabled: boolean;
1727
1802
  }>;
1728
1803
 
1804
+ export declare const VPagination: DefineComponent<{
1805
+ /**
1806
+ * Active Pages
1807
+ */
1808
+ modelValue: {
1809
+ type: PropType<string | number>;
1810
+ default: number;
1811
+ };
1812
+ /**
1813
+ * Total number of pages
1814
+ */
1815
+ length: {
1816
+ type: PropType<string | number>;
1817
+ default: number;
1818
+ };
1819
+ /**
1820
+ * Maximum number of links to display.
1821
+ */
1822
+ totalVisible: PropType<string | number>;
1823
+ /**
1824
+ * true when narrowing
1825
+ */
1826
+ dense: BooleanConstructor;
1827
+ disabled: BooleanConstructor;
1828
+ align: {
1829
+ type: PropType<"left" | "center" | "right">;
1830
+ default: string;
1831
+ };
1832
+ /**
1833
+ * To synchronize with a query, use the query name
1834
+ */
1835
+ routeQuery: StringConstructor;
1836
+ beforeChange: PropType<VPaginationGuard>;
1837
+ color: PropType<ScopeName>;
1838
+ }, () => JSX.Element | undefined, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1839
+ change: (page: number) => true;
1840
+ }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
1841
+ modelValue?: unknown;
1842
+ length?: unknown;
1843
+ totalVisible?: unknown;
1844
+ dense?: unknown;
1845
+ disabled?: unknown;
1846
+ align?: unknown;
1847
+ routeQuery?: unknown;
1848
+ beforeChange?: unknown;
1849
+ color?: unknown;
1850
+ } & {
1851
+ dense: boolean;
1852
+ disabled: boolean;
1853
+ length: string | number;
1854
+ modelValue: string | number;
1855
+ align: "left" | "center" | "right";
1856
+ } & {
1857
+ totalVisible?: string | number | undefined;
1858
+ routeQuery?: string | undefined;
1859
+ beforeChange?: VPaginationGuard | undefined;
1860
+ color?: ScopeName | undefined;
1861
+ }> & {
1862
+ onChange?: ((page: number) => any) | undefined;
1863
+ }, {
1864
+ dense: boolean;
1865
+ disabled: boolean;
1866
+ length: string | number;
1867
+ modelValue: string | number;
1868
+ align: "left" | "center" | "right";
1869
+ }>;
1870
+
1871
+ export declare type VPaginationAlign = typeof PAGINATION_ALIGNS[number];
1872
+
1873
+ export declare type VPaginationGuard = (page: number) => boolean | void | Promise<boolean | void>;
1874
+
1729
1875
  export declare const VPaper: DefineComponent<{
1730
1876
  square: BooleanConstructor;
1731
1877
  headerProps: PropType<ARGS>;
@@ -3226,17 +3372,131 @@ export declare const VToolbar: DefineComponent<{
3226
3372
  dense: boolean;
3227
3373
  }>;
3228
3374
 
3229
- export declare const VToolbarMenu: DefineComponent<{
3375
+ export declare const VToolbarEdge: DefineComponent<{
3230
3376
  edge: {
3231
- type: PropType<VToolbarMenuEdge>;
3377
+ type: PropType<VToolbarEdgeEdge>;
3232
3378
  required: true;
3233
3379
  };
3234
3380
  }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
3235
3381
  edge?: unknown;
3236
3382
  } & {
3237
- edge: VToolbarMenuEdge;
3383
+ edge: VToolbarEdgeEdge;
3238
3384
  } & {}>, {}>;
3239
3385
 
3386
+ export declare type VToolbarEdgeEdge = 'start' | 'end';
3387
+
3388
+ export declare const VToolbarMenu: DefineComponent<{
3389
+ size: {
3390
+ type: PropType<"sm" | "md" | "lg">;
3391
+ validator: (value: any) => boolean;
3392
+ };
3393
+ spacer: PropType<RawVButtonSpacer>;
3394
+ loading: BooleanConstructor;
3395
+ rounded: BooleanConstructor;
3396
+ icon: PropType<RawVButtonIcon>;
3397
+ startIcon: PropType<RawVButtonIcon>;
3398
+ endIcon: PropType<RawVButtonIcon>;
3399
+ tag: StringConstructor;
3400
+ to: PropType<RouteLocationRaw>;
3401
+ replace: BooleanConstructor;
3402
+ activeClass: StringConstructor;
3403
+ exactActiveClass: StringConstructor;
3404
+ custom: BooleanConstructor;
3405
+ ariaCurrentValue: {
3406
+ readonly type: PropType<"page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined>;
3407
+ readonly default: "page";
3408
+ };
3409
+ disabled: BooleanConstructor;
3410
+ href: StringConstructor;
3411
+ target: StringConstructor;
3412
+ rel: StringConstructor;
3413
+ name: StringConstructor;
3414
+ charset: StringConstructor;
3415
+ hreflang: StringConstructor;
3416
+ download: PropType<string | boolean>;
3417
+ media: StringConstructor;
3418
+ ping: StringConstructor;
3419
+ referrerpolicy: StringConstructor;
3420
+ type: PropType<"submit" | "reset" | "button" | undefined>;
3421
+ variant: PropType<ColorVariant>;
3422
+ theme: PropType<ThemeName>;
3423
+ color: PropType<ScopeName>;
3424
+ textColor: PropType<PaletteName>;
3425
+ borderColor: PropType<PaletteName>;
3426
+ }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
3427
+ size?: unknown;
3428
+ spacer?: unknown;
3429
+ loading?: unknown;
3430
+ rounded?: unknown;
3431
+ icon?: unknown;
3432
+ startIcon?: unknown;
3433
+ endIcon?: unknown;
3434
+ tag?: unknown;
3435
+ to?: unknown;
3436
+ replace?: unknown;
3437
+ activeClass?: unknown;
3438
+ exactActiveClass?: unknown;
3439
+ custom?: unknown;
3440
+ ariaCurrentValue?: unknown;
3441
+ disabled?: unknown;
3442
+ href?: unknown;
3443
+ target?: unknown;
3444
+ rel?: unknown;
3445
+ name?: unknown;
3446
+ charset?: unknown;
3447
+ hreflang?: unknown;
3448
+ download?: unknown;
3449
+ media?: unknown;
3450
+ ping?: unknown;
3451
+ referrerpolicy?: unknown;
3452
+ type?: unknown;
3453
+ variant?: unknown;
3454
+ theme?: unknown;
3455
+ color?: unknown;
3456
+ textColor?: unknown;
3457
+ borderColor?: unknown;
3458
+ } & {
3459
+ loading: boolean;
3460
+ rounded: boolean;
3461
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
3462
+ replace: boolean;
3463
+ custom: boolean;
3464
+ disabled: boolean;
3465
+ } & {
3466
+ theme?: ThemeName | undefined;
3467
+ color?: ScopeName | undefined;
3468
+ textColor?: PaletteName | undefined;
3469
+ borderColor?: PaletteName | undefined;
3470
+ type?: "submit" | "reset" | "button" | undefined;
3471
+ size?: "sm" | "md" | "lg" | undefined;
3472
+ spacer?: RawVButtonSpacer | undefined;
3473
+ icon?: RawVButtonIcon | undefined;
3474
+ startIcon?: RawVButtonIcon | undefined;
3475
+ endIcon?: RawVButtonIcon | undefined;
3476
+ tag?: string | undefined;
3477
+ to?: RouteLocationRaw | undefined;
3478
+ activeClass?: string | undefined;
3479
+ exactActiveClass?: string | undefined;
3480
+ href?: string | undefined;
3481
+ target?: string | undefined;
3482
+ rel?: string | undefined;
3483
+ name?: string | undefined;
3484
+ charset?: string | undefined;
3485
+ hreflang?: string | undefined;
3486
+ download?: string | boolean | undefined;
3487
+ media?: string | undefined;
3488
+ ping?: string | undefined;
3489
+ referrerpolicy?: string | undefined;
3490
+ variant?: ColorVariant | undefined;
3491
+ }>, {
3492
+ loading: boolean;
3493
+ rounded: boolean;
3494
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
3495
+ replace: boolean;
3496
+ custom: boolean;
3497
+ disabled: boolean;
3498
+ }>;
3499
+
3240
3500
  export declare type VToolbarMenuEdge = 'start' | 'end';
3241
3501
 
3242
3502
  export declare const VToolbarTitle: DefineComponent<{