@aotearoan/neon 28.0.1 → 28.0.3

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.
Files changed (56) hide show
  1. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.cjs.js +1 -1
  2. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.cjs.js.map +1 -1
  3. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.es.js +29 -27
  4. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.es.js.map +1 -1
  5. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.cjs.js +1 -1
  6. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.cjs.js.map +1 -1
  7. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.es.js +49 -48
  8. package/dist/components/navigation/dropdown-menu/NeonDropdownMenu.vue.es.js.map +1 -1
  9. package/dist/components/navigation/link/NeonLink.cjs.js +1 -1
  10. package/dist/components/navigation/link/NeonLink.cjs.js.map +1 -1
  11. package/dist/components/navigation/link/NeonLink.es.js +20 -20
  12. package/dist/components/navigation/link/NeonLink.es.js.map +1 -1
  13. package/dist/components/navigation/tree-menu/NeonTreeMenu.cjs.js +1 -1
  14. package/dist/components/navigation/tree-menu/NeonTreeMenu.cjs.js.map +1 -1
  15. package/dist/components/navigation/tree-menu/NeonTreeMenu.es.js +19 -15
  16. package/dist/components/navigation/tree-menu/NeonTreeMenu.es.js.map +1 -1
  17. package/dist/components/navigation/tree-menu/NeonTreeMenu.vue.cjs.js +1 -1
  18. package/dist/components/navigation/tree-menu/NeonTreeMenu.vue.cjs.js.map +1 -1
  19. package/dist/components/navigation/tree-menu/NeonTreeMenu.vue.es.js +44 -39
  20. package/dist/components/navigation/tree-menu/NeonTreeMenu.vue.es.js.map +1 -1
  21. package/dist/src/components/feedback/alert/NeonAlert.d.ts +2 -2
  22. package/dist/src/components/feedback/alert/container/NeonAlertContainer.d.ts +2 -2
  23. package/dist/src/components/feedback/banner/NeonBanner.d.ts +4 -4
  24. package/dist/src/components/feedback/dialog/NeonDialog.d.ts +4 -4
  25. package/dist/src/components/feedback/note/NeonNote.d.ts +2 -2
  26. package/dist/src/components/layout/card-list/NeonCardList.d.ts +9 -15
  27. package/dist/src/components/layout/modal/NeonModal.d.ts +2 -2
  28. package/dist/src/components/layout/page/NeonPage.d.ts +6 -6
  29. package/dist/src/components/navigation/action-menu/NeonActionMenu.d.ts +2 -2
  30. package/dist/src/components/navigation/breadcrumbs/NeonBreadcrumbs.d.ts +2 -2
  31. package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +226 -158
  32. package/dist/src/components/navigation/link/NeonLink.d.ts +2 -2
  33. package/dist/src/components/navigation/menu/NeonMenu.d.ts +17 -16
  34. package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.d.ts +17 -16
  35. package/dist/src/components/navigation/pagination/NeonPagination.d.ts +2 -2
  36. package/dist/src/components/navigation/tree-menu/NeonTreeMenu.d.ts +17 -2
  37. package/dist/src/components/presentation/badge/NeonBadge.d.ts +4 -8
  38. package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +4 -4
  39. package/dist/src/components/presentation/header/NeonHeader.d.ts +2 -2
  40. package/dist/src/components/presentation/image-carousel/NeonImageCarousel.d.ts +4 -4
  41. package/dist/src/components/presentation/tabs/NeonTabs.d.ts +6 -6
  42. package/dist/src/components/user-input/button/NeonButton.d.ts +3 -5
  43. package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +15 -9
  44. package/dist/src/components/user-input/file/NeonFile.d.ts +2 -2
  45. package/dist/src/components/user-input/filter-list/NeonFilterList.d.ts +2 -2
  46. package/dist/src/components/user-input/number/NeonNumber.d.ts +2 -2
  47. package/dist/src/components/user-input/search/NeonSearch.d.ts +30 -12
  48. package/dist/src/components/user-input/select/NeonSelect.d.ts +48 -24
  49. package/dist/src/model/navigation/tree-menu/NeonTreeMenuItemModel.d.ts +2 -0
  50. package/dist/src/model/presentation/dropdown/NeonDropdownMenuItem.d.ts +4 -1
  51. package/package.json +1 -1
  52. package/src/sass/components/_button.scss +3 -0
  53. package/src/sass/components/_dropdown-menu.scss +10 -5
  54. package/src/sass/components/_dropdown.scss +1 -1
  55. package/src/sass/components/_tree-menu.scss +39 -3
  56. package/src/sass/variables-global.scss +5 -0
@@ -1459,14 +1459,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1459
1459
  default: boolean;
1460
1460
  };
1461
1461
  }>, {
1462
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
1462
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
1463
+ * Allow multi-select.
1464
+ */
1463
1465
  routerUrl: import("vue").ComputedRef<string | undefined>;
1464
1466
  sanitizedAttributes: import("vue").ComputedRef<{
1465
1467
  [x: string]: unknown;
1466
1468
  }>;
1467
- activeRoute: import("vue").ComputedRef<boolean | "">;
1468
- exactRoute: import("vue").ComputedRef<boolean | "">;
1469
- onClick: () => void;
1469
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
1470
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
1471
+ onClick: () => void; /**
1472
+ * Placeholder when multiple values are selected.
1473
+ */
1470
1474
  onSpace: () => Promise<void>;
1471
1475
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1472
1476
  href: {
@@ -2302,14 +2306,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2302
2306
  default: boolean;
2303
2307
  };
2304
2308
  }>, {
2305
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
2309
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
2310
+ * Allow multi-select.
2311
+ */
2306
2312
  routerUrl: import("vue").ComputedRef<string | undefined>;
2307
2313
  sanitizedAttributes: import("vue").ComputedRef<{
2308
2314
  [x: string]: unknown;
2309
2315
  }>;
2310
- activeRoute: import("vue").ComputedRef<boolean | "">;
2311
- exactRoute: import("vue").ComputedRef<boolean | "">;
2312
- onClick: () => void;
2316
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
2317
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
2318
+ onClick: () => void; /**
2319
+ * Placeholder when multiple values are selected.
2320
+ */
2313
2321
  onSpace: () => Promise<void>;
2314
2322
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
2315
2323
  href: {
@@ -3894,14 +3902,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3894
3902
  default: boolean;
3895
3903
  };
3896
3904
  }>, {
3897
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
3905
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
3906
+ * Allow multi-select.
3907
+ */
3898
3908
  routerUrl: import("vue").ComputedRef<string | undefined>;
3899
3909
  sanitizedAttributes: import("vue").ComputedRef<{
3900
3910
  [x: string]: unknown;
3901
3911
  }>;
3902
- activeRoute: import("vue").ComputedRef<boolean | "">;
3903
- exactRoute: import("vue").ComputedRef<boolean | "">;
3904
- onClick: () => void;
3912
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
3913
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
3914
+ onClick: () => void; /**
3915
+ * Placeholder when multiple values are selected.
3916
+ */
3905
3917
  onSpace: () => Promise<void>;
3906
3918
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
3907
3919
  href: {
@@ -4737,14 +4749,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4737
4749
  default: boolean;
4738
4750
  };
4739
4751
  }>, {
4740
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
4752
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
4753
+ * Allow multi-select.
4754
+ */
4741
4755
  routerUrl: import("vue").ComputedRef<string | undefined>;
4742
4756
  sanitizedAttributes: import("vue").ComputedRef<{
4743
4757
  [x: string]: unknown;
4744
4758
  }>;
4745
- activeRoute: import("vue").ComputedRef<boolean | "">;
4746
- exactRoute: import("vue").ComputedRef<boolean | "">;
4747
- onClick: () => void;
4759
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
4760
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
4761
+ onClick: () => void; /**
4762
+ * Placeholder when multiple values are selected.
4763
+ */
4748
4764
  onSpace: () => Promise<void>;
4749
4765
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
4750
4766
  href: {
@@ -6518,14 +6534,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6518
6534
  default: boolean;
6519
6535
  };
6520
6536
  }>, {
6521
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
6537
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
6538
+ * Allow multi-select.
6539
+ */
6522
6540
  routerUrl: import("vue").ComputedRef<string | undefined>;
6523
6541
  sanitizedAttributes: import("vue").ComputedRef<{
6524
6542
  [x: string]: unknown;
6525
6543
  }>;
6526
- activeRoute: import("vue").ComputedRef<boolean | "">;
6527
- exactRoute: import("vue").ComputedRef<boolean | "">;
6528
- onClick: () => void;
6544
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
6545
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
6546
+ onClick: () => void; /**
6547
+ * Placeholder when multiple values are selected.
6548
+ */
6529
6549
  onSpace: () => Promise<void>;
6530
6550
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
6531
6551
  href: {
@@ -7361,14 +7381,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7361
7381
  default: boolean;
7362
7382
  };
7363
7383
  }>, {
7364
- neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>;
7384
+ neonLink: import("vue").Ref<HTMLAnchorElement | null, HTMLAnchorElement | null>; /**
7385
+ * Allow multi-select.
7386
+ */
7365
7387
  routerUrl: import("vue").ComputedRef<string | undefined>;
7366
7388
  sanitizedAttributes: import("vue").ComputedRef<{
7367
7389
  [x: string]: unknown;
7368
7390
  }>;
7369
- activeRoute: import("vue").ComputedRef<boolean | "">;
7370
- exactRoute: import("vue").ComputedRef<boolean | "">;
7371
- onClick: () => void;
7391
+ activeRoute: import("vue").ComputedRef<boolean | "" | undefined>;
7392
+ exactRoute: import("vue").ComputedRef<boolean | "" | undefined>;
7393
+ onClick: () => void; /**
7394
+ * Placeholder when multiple values are selected.
7395
+ */
7372
7396
  onSpace: () => Promise<void>;
7373
7397
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7374
7398
  href: {
@@ -11,6 +11,8 @@ export interface NeonTreeMenuItemModel {
11
11
  href?: string;
12
12
  /** Expanded state of the menu item. */
13
13
  expanded?: boolean;
14
+ /** Denotes the link is external (open in a new tab). */
15
+ external?: boolean;
14
16
  /** A list of page sub menu items */
15
17
  subMenu?: NeonTreeMenuSubMenuModel[];
16
18
  }
@@ -1,3 +1,4 @@
1
+ import type { NeonHorizontalPosition } from '@/model/common/position/NeonHorizontalPosition';
1
2
  /**
2
3
  * Model object for a dropdown menu item. See <a href="/navigation/dropdown-menu">NeonDropdownMenu</a>.
3
4
  */
@@ -8,8 +9,10 @@ export interface NeonDropdownMenuItem {
8
9
  label: string;
9
10
  /** The URL if this menu item links to another page or an external URL. */
10
11
  href?: string;
11
- /** The name of an optional icon to be displayed before the label. */
12
+ /** The name of an optional icon to be displayed with the label. */
12
13
  icon?: string;
14
+ /** The position of an icon to be displayed with the label. The default is to the left. */
15
+ iconPosition?: NeonHorizontalPosition;
13
16
  /** Boolean to indicate the display of a separator before this menu item in the dropdown list. */
14
17
  separatorBefore?: boolean;
15
18
  /** Boolean indicating if this menu item is disabled. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aotearoan/neon",
3
3
  "description": "Neon is a lightweight design library of Vue 3 components with minimal dependencies.",
4
- "version": "28.0.1",
4
+ "version": "28.0.3",
5
5
  "main": "./dist/neon.cjs.js",
6
6
  "module": "./dist/neon.es.js",
7
7
  "types": "./dist/src/neon.d.ts",
@@ -13,6 +13,7 @@
13
13
  var(--neon-gradient-button-c2) 100%
14
14
  );
15
15
  transition: all ease-in-out var(--neon-animation-speed-fast);
16
+ transition: background ease-in-out 0ms;
16
17
 
17
18
  &:active:not(:disabled),
18
19
  &:hover:not(:disabled) {
@@ -30,6 +31,7 @@
30
31
 
31
32
  @mixin solid-button($color) {
32
33
  transition: all ease-in-out var(--neon-animation-speed-fast);
34
+ transition: background ease-in-out 0ms;
33
35
  background: linear-gradient(
34
36
  var(--neon-background-solid-button-light-#{$color}),
35
37
  var(--neon-background-solid-button-dark-#{$color})
@@ -54,6 +56,7 @@
54
56
  @mixin outline-button($color) {
55
57
  transition: all ease-in-out var(--neon-animation-speed-fast);
56
58
  border: var(--neon-border-width-outline-button) var(--neon-border-style) var(--neon-border-color-outline-button-inactive-#{$color});
59
+
57
60
  &:not(.neon-button--disabled) {
58
61
  color: var(--neon-background-outline-button-active-#{$color});
59
62
  @include svg.svg-colors(var(--neon-background-outline-button-active-#{$color}));
@@ -7,7 +7,7 @@
7
7
  &--#{$color} {
8
8
  .neon-dropdown-menu__item {
9
9
  &--highlighted:not(.neon-dropdown-menu__item--disabled):not(.neon-dropdown-menu__item--selected):not(.neon-dropdown-menu__item--group-title) {
10
- background-color: rgba(var(--neon-rgb-#{$color}), 0.125);
10
+ background-color: rgba(var(--neon-rgb-low-contrast), 0.125);
11
11
  }
12
12
  }
13
13
  }
@@ -42,16 +42,13 @@
42
42
  flex-direction: row;
43
43
  flex-wrap: nowrap;
44
44
  align-items: center;
45
+ gap: var(--neon-space-12);
45
46
  }
46
47
 
47
48
  &-label {
48
49
  white-space: nowrap;
49
50
  }
50
51
 
51
- .neon-icon {
52
- margin-right: var(--neon-space-12);
53
- }
54
-
55
52
  .neon-link {
56
53
  text-decoration: none;
57
54
  color: var(--neon-color-text-secondary);
@@ -71,6 +68,14 @@
71
68
  height: var(--neon-font-size-s);
72
69
  }
73
70
 
71
+ &--icon-right {
72
+ .neon-dropdown-menu__item-container,
73
+ .neon-link {
74
+ flex-direction: row-reverse;
75
+ justify-content: flex-end;
76
+ }
77
+ }
78
+
74
79
  &--grouped {
75
80
  .neon-dropdown-menu__item-container,
76
81
  .neon-link {
@@ -48,7 +48,7 @@
48
48
  z-index: var(--neon-z-index-below-top);
49
49
  border-radius: var(--neon-border-radius);
50
50
  overflow: hidden;
51
- min-width: calc(100% - 2 * var(--neon-border-width));
51
+ min-width: var(--neon-min-width-dropdown);
52
52
  background-color: var(--neon-background-color-dropdown-content);
53
53
  box-shadow: var(--neon-box-shadow-dropdown);
54
54
 
@@ -20,9 +20,25 @@
20
20
  touch-action: none;
21
21
  outline: none;
22
22
  }
23
+ }
24
+
25
+ &--exact {
26
+ .neon-tree-menu__section-link,
27
+ .neon-tree-menu__item-link,
28
+ .neon-tree-menu__sub-menu-item-link {
29
+ &.neon-link--exact-active > span {
30
+ font-weight: var(--neon-font-weight-tree-menu-selected);
31
+ }
32
+ }
33
+ }
23
34
 
24
- &.neon-link--active > span {
25
- font-weight: var(--neon-font-weight-tree-menu-selected);
35
+ &--active {
36
+ .neon-tree-menu__section-link,
37
+ .neon-tree-menu__item-link,
38
+ .neon-tree-menu__sub-menu-item-link {
39
+ &.neon-link--active > span {
40
+ font-weight: var(--neon-font-weight-tree-menu-selected);
41
+ }
26
42
  }
27
43
  }
28
44
 
@@ -121,7 +137,7 @@
121
137
  .neon-tree-menu__section .neon-tree-menu__section-link,
122
138
  .neon-tree-menu__item .neon-tree-menu__item-link,
123
139
  .neon-tree-menu__sub-menu-item .neon-tree-menu__sub-menu-item-link {
124
- &.neon-link--active {
140
+ &.neon-link--exact-active {
125
141
  @include svg.color-with-svg(var(--neon-color-#{$color}));
126
142
  }
127
143
 
@@ -137,6 +153,26 @@
137
153
  @include outline.focus-text-outline(var(--neon-rgb-#{$color}));
138
154
  }
139
155
  }
156
+
157
+ &.neon-tree-menu--exact {
158
+ .neon-tree-menu__section .neon-tree-menu__section-link,
159
+ .neon-tree-menu__item .neon-tree-menu__item-link,
160
+ .neon-tree-menu__sub-menu-item .neon-tree-menu__sub-menu-item-link {
161
+ &.neon-link--exact-active {
162
+ @include svg.color-with-svg(var(--neon-color-#{$color}));
163
+ }
164
+ }
165
+ }
166
+
167
+ &.neon-tree-menu--active {
168
+ .neon-tree-menu__section .neon-tree-menu__section-link,
169
+ .neon-tree-menu__item .neon-tree-menu__item-link,
170
+ .neon-tree-menu__sub-menu-item .neon-tree-menu__sub-menu-item-link {
171
+ &.neon-link--active {
172
+ @include svg.color-with-svg(var(--neon-color-#{$color}));
173
+ }
174
+ }
175
+ }
140
176
  }
141
177
  }
142
178
 
@@ -799,6 +799,11 @@
799
799
  * Max height of the dropdown container when open.
800
800
  */
801
801
  --neon-max-height-dropdown: 280rem;
802
+ /**
803
+ * @component NeonDropdown,NeonSelect,NeonSearch,NeonDropdownMenu
804
+ * Min width of the dropdown container when open.
805
+ */
806
+ --neon-min-width-dropdown: 200rem;
802
807
 
803
808
  /* buttons */
804
809
  /**