@aotearoan/neon 28.4.1 → 28.6.0

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 (116) hide show
  1. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.cjs.js +2 -0
  2. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.cjs.js.map +1 -0
  3. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.es.js +16 -0
  4. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.es.js.map +1 -0
  5. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.cjs.js +2 -0
  6. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.cjs.js.map +1 -0
  7. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.es.js +48 -0
  8. package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.es.js.map +1 -0
  9. package/dist/components/feedback/skeleton-loader/NeonSkeletonLoader.cjs.js.map +1 -1
  10. package/dist/components/feedback/skeleton-loader/NeonSkeletonLoader.es.js.map +1 -1
  11. package/dist/components/feedback/splash-loader/NeonSplashLoader.cjs.js.map +1 -1
  12. package/dist/components/feedback/splash-loader/NeonSplashLoader.es.js.map +1 -1
  13. package/dist/components/layout/basic-layout/NeonBasicLayout.cjs.js +2 -0
  14. package/dist/components/layout/basic-layout/NeonBasicLayout.cjs.js.map +1 -0
  15. package/dist/components/layout/basic-layout/NeonBasicLayout.es.js +40 -0
  16. package/dist/components/layout/basic-layout/NeonBasicLayout.es.js.map +1 -0
  17. package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js +2 -0
  18. package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js.map +1 -0
  19. package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js +41 -0
  20. package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js.map +1 -0
  21. package/dist/components/layout/card-list/NeonCardList.cjs.js +1 -1
  22. package/dist/components/layout/card-list/NeonCardList.cjs.js.map +1 -1
  23. package/dist/components/layout/card-list/NeonCardList.es.js +60 -49
  24. package/dist/components/layout/card-list/NeonCardList.es.js.map +1 -1
  25. package/dist/components/layout/card-list/NeonCardList.vue.cjs.js +1 -1
  26. package/dist/components/layout/card-list/NeonCardList.vue.cjs.js.map +1 -1
  27. package/dist/components/layout/card-list/NeonCardList.vue.es.js +98 -74
  28. package/dist/components/layout/card-list/NeonCardList.vue.es.js.map +1 -1
  29. package/dist/components/layout/list-layout/NeonListLayout.cjs.js +1 -1
  30. package/dist/components/layout/list-layout/NeonListLayout.cjs.js.map +1 -1
  31. package/dist/components/layout/list-layout/NeonListLayout.es.js +34 -23
  32. package/dist/components/layout/list-layout/NeonListLayout.es.js.map +1 -1
  33. package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js +1 -1
  34. package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js.map +1 -1
  35. package/dist/components/layout/list-layout/NeonListLayout.vue.es.js +56 -52
  36. package/dist/components/layout/list-layout/NeonListLayout.vue.es.js.map +1 -1
  37. package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.cjs.js +1 -1
  38. package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.cjs.js.map +1 -1
  39. package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.es.js +11 -10
  40. package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.es.js.map +1 -1
  41. package/dist/components/presentation/avatar/NeonAvatar.cjs.js +2 -0
  42. package/dist/components/presentation/avatar/NeonAvatar.cjs.js.map +1 -0
  43. package/dist/components/presentation/avatar/NeonAvatar.es.js +66 -0
  44. package/dist/components/presentation/avatar/NeonAvatar.es.js.map +1 -0
  45. package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js +2 -0
  46. package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js.map +1 -0
  47. package/dist/components/presentation/avatar/NeonAvatar.vue.es.js +25 -0
  48. package/dist/components/presentation/avatar/NeonAvatar.vue.es.js.map +1 -0
  49. package/dist/components/presentation/header/NeonHeader.vue.cjs.js +1 -1
  50. package/dist/components/presentation/header/NeonHeader.vue.cjs.js.map +1 -1
  51. package/dist/components/presentation/header/NeonHeader.vue.es.js +31 -29
  52. package/dist/components/presentation/header/NeonHeader.vue.es.js.map +1 -1
  53. package/dist/model/layout/card-list/NeonCardListStyle.cjs.js +2 -0
  54. package/dist/model/layout/card-list/NeonCardListStyle.cjs.js.map +1 -0
  55. package/dist/model/layout/card-list/NeonCardListStyle.es.js +5 -0
  56. package/dist/model/layout/card-list/NeonCardListStyle.es.js.map +1 -0
  57. package/dist/model/presentation/badge/NeonBadgeSize.cjs.js +1 -1
  58. package/dist/model/presentation/badge/NeonBadgeSize.cjs.js.map +1 -1
  59. package/dist/model/presentation/badge/NeonBadgeSize.es.js +1 -1
  60. package/dist/model/presentation/badge/NeonBadgeSize.es.js.map +1 -1
  61. package/dist/neon.cjs.js +1 -1
  62. package/dist/neon.es.js +267 -259
  63. package/dist/neon.es.js.map +1 -1
  64. package/dist/src/components/feedback/loading-state-card/NeonLoadingStateCard.d.ts +48 -0
  65. package/dist/src/components/feedback/loading-state-card/NeonLoadingStateCard.vue.d.ts +2 -0
  66. package/dist/src/components/feedback/skeleton-loader/NeonSkeletonLoader.d.ts +2 -2
  67. package/dist/src/components/feedback/splash-loader/NeonSplashLoader.d.ts +1 -2
  68. package/dist/src/components/layout/basic-layout/NeonBasicLayout.d.ts +427 -0
  69. package/dist/src/components/layout/basic-layout/NeonBasicLayout.vue.d.ts +2 -0
  70. package/dist/src/components/layout/card-list/NeonCardList.d.ts +81 -28
  71. package/dist/src/components/layout/list-layout/NeonListLayout.d.ts +374 -265
  72. package/dist/src/components/presentation/avatar/NeonAvatar.d.ts +1806 -0
  73. package/dist/src/components/presentation/avatar/NeonAvatar.vue.d.ts +2 -0
  74. package/dist/src/model/layout/card-list/NeonCardListStyle.d.ts +13 -0
  75. package/dist/src/model/layout/card-list/NeonLoadOnDemandModel.d.ts +4 -8
  76. package/dist/src/model/presentation/badge/NeonBadgeSize.d.ts +3 -1
  77. package/dist/src/neon.d.ts +5 -1
  78. package/dist/src/utils/common/http/NeonHttpUtils.d.ts +23 -0
  79. package/dist/utils/common/http/NeonHttpUtils.cjs.js +2 -0
  80. package/dist/utils/common/http/NeonHttpUtils.cjs.js.map +1 -0
  81. package/dist/utils/common/http/NeonHttpUtils.es.js +31 -0
  82. package/dist/utils/common/http/NeonHttpUtils.es.js.map +1 -0
  83. package/package.json +1 -1
  84. package/src/sass/components/_badge.scss +2 -2
  85. package/src/sass/components/{_page-container.scss → _basic-layout.scss} +12 -33
  86. package/src/sass/components/_card-list.scss +33 -16
  87. package/src/sass/components/_date-picker.scss +2 -0
  88. package/src/sass/components/_drawer.scss +1 -0
  89. package/src/sass/components/_field-group.scss +5 -1
  90. package/src/sass/components/_header.scss +2 -1
  91. package/src/sass/components/_input.scss +6 -0
  92. package/src/sass/components/_link.scss +1 -0
  93. package/src/sass/components/_loading-state-card.scss +48 -0
  94. package/src/sass/components/_modal.scss +1 -0
  95. package/src/sass/components/_page.scss +1 -0
  96. package/src/sass/components/_range-slider.scss +4 -0
  97. package/src/sass/components/_skeleton-loader.scss +1 -0
  98. package/src/sass/components/_sticky-buttons.scss +1 -1
  99. package/src/sass/components/components.scss +2 -1
  100. package/src/sass/core/_transitions.scss +3 -3
  101. package/src/sass/includes/_dependencies.scss +4 -3
  102. package/src/sass/palette.scss +2 -2
  103. package/src/sass/theme.scss +8 -4
  104. package/src/sass/variables-dark.scss +10 -3
  105. package/src/sass/variables-global.scss +30 -9
  106. package/src/sass/variables-light.scss +10 -3
  107. package/dist/components/layout/page-container/NeonPageContainer.cjs.js +0 -2
  108. package/dist/components/layout/page-container/NeonPageContainer.cjs.js.map +0 -1
  109. package/dist/components/layout/page-container/NeonPageContainer.es.js +0 -26
  110. package/dist/components/layout/page-container/NeonPageContainer.es.js.map +0 -1
  111. package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js +0 -2
  112. package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js.map +0 -1
  113. package/dist/components/layout/page-container/NeonPageContainer.vue.es.js +0 -31
  114. package/dist/components/layout/page-container/NeonPageContainer.vue.es.js.map +0 -1
  115. package/dist/src/components/layout/page-container/NeonPageContainer.d.ts +0 -98
  116. package/dist/src/components/layout/page-container/NeonPageContainer.vue.d.ts +0 -2
@@ -0,0 +1,2 @@
1
+ export * from './NeonAvatar.js';
2
+ export { default } from './NeonAvatar.js';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Defines the style of card list to render
3
+ */
4
+ export declare enum NeonCardListStyle {
5
+ /**
6
+ * Render the card list as a list of rows
7
+ */
8
+ List = "list",
9
+ /**
10
+ * Render the card list as a grid of items with a number of responsive columns.
11
+ */
12
+ Grid = "grid"
13
+ }
@@ -3,20 +3,16 @@
3
3
  */
4
4
  export interface NeonLoadOnDemandModel {
5
5
  /**
6
- * The total item count of records including those not displayed. This is used to display the 'x' of 'y'
6
+ * The total item count of records including those not displayed. This is used to display the 'Showing x of y'
7
7
  * text.
8
8
  */
9
9
  total: number;
10
10
  /**
11
- * override the default 'x of y' text.
11
+ * override the default 'Showing x of y' text.
12
12
  */
13
- ofLabel?: string;
13
+ resultCountLabel?: string;
14
14
  /**
15
- * override the 'Show more' text.
15
+ * override the 'Load more' text.
16
16
  */
17
17
  showMoreLabel?: string;
18
- /**
19
- * override the 'End of results' text.
20
- */
21
- endOfResultsLabel?: string;
22
18
  }
@@ -12,5 +12,7 @@ export declare enum NeonBadgeSize {
12
12
  /** An extra large badge size, typically has a default of 64 rem. */
13
13
  ExtraLarge = "xl",
14
14
  /** An extra, extra large badge size, typically has a default of 80 rem. */
15
- ExtraExtraLarge = "xxl"
15
+ ExtraExtraLarge = "xxl",
16
+ /** An extra, extra, extra large badge size, typically has a default of 288 rem. */
17
+ ExtraExtraExtraLarge = "xxxl"
16
18
  }
@@ -2,8 +2,10 @@ export { default as NeonActionMenu } from './components/navigation/action-menu/N
2
2
  export { default as NeonAlert } from './components/feedback/alert/NeonAlert.vue';
3
3
  export { default as NeonAlertContainer } from './components/feedback/alert/container/NeonAlertContainer.vue';
4
4
  export { default as NeonAnchor } from './components/navigation/anchor/NeonAnchor.vue';
5
+ export { default as NeonAvatar } from './components/presentation/avatar/NeonAvatar.vue';
5
6
  export { default as NeonBadge } from './components/presentation/badge/NeonBadge.vue';
6
7
  export { default as NeonBanner } from './components/feedback/banner/NeonBanner.vue';
8
+ export { default as NeonBasicLayout } from './components/layout/basic-layout/NeonBasicLayout.vue';
7
9
  export { default as NeonBreadcrumbs } from './components/navigation/breadcrumbs/NeonBreadcrumbs.vue';
8
10
  export { default as NeonButton } from './components/user-input/button/NeonButton.vue';
9
11
  export { default as NeonCard } from './components/layout/card/NeonCard.vue';
@@ -44,6 +46,7 @@ export { default as NeonLinearProgress } from './components/feedback/linear-prog
44
46
  export { default as NeonLink } from './components/navigation/link/NeonLink.vue';
45
47
  export { default as NeonList } from './components/user-input/list/NeonList.vue';
46
48
  export { default as NeonListLayout } from './components/layout/list-layout/NeonListLayout.vue';
49
+ export { default as NeonLoadingStateCard } from './components/feedback/loading-state-card/NeonLoadingStateCard.vue';
47
50
  export { default as NeonMenu } from './components/navigation/menu/NeonMenu.vue';
48
51
  export { default as NeonMobileMenu } from './components/navigation/mobile-menu/NeonMobileMenu.vue';
49
52
  export { default as NeonModal } from './components/layout/modal/NeonModal.vue';
@@ -51,7 +54,6 @@ export { default as NeonNote } from './components/feedback/note/NeonNote.vue';
51
54
  export { default as NeonNotificationCounter } from './components/feedback/notification-counter/NeonNotificationCounter.vue';
52
55
  export { default as NeonNumber } from './components/user-input/number/NeonNumber.vue';
53
56
  export { default as NeonPage } from './components/layout/page/NeonPage.vue';
54
- export { default as NeonPageContainer } from './components/layout/page-container/NeonPageContainer.vue';
55
57
  export { default as NeonPagination } from './components/navigation/pagination/NeonPagination.vue';
56
58
  export { default as NeonPassword } from './components/user-input/password/NeonPassword.vue';
57
59
  export { default as NeonRangeSlider } from './components/user-input/range-slider/NeonRangeSlider.vue';
@@ -93,6 +95,7 @@ export { NeonButtonSize } from '@/model/user-input/button/NeonButtonSize';
93
95
  export { NeonButtonStyle } from '@/model/user-input/button/NeonButtonStyle';
94
96
  export { NeonButtonType } from '@/model/user-input/button/NeonButtonType';
95
97
  export type { NeonCardListModel } from '@/model/layout/card-list/NeonCardListModel';
98
+ export { NeonCardListStyle } from './model/layout/card-list/NeonCardListStyle';
96
99
  export type { NeonCarouselImage } from '@/model/presentation/image-carousel/NeonCarouselImage';
97
100
  export { NeonChipAction } from '@/model/user-input/chip/NeonChipAction';
98
101
  export type { NeonContrastAccessibility } from '@/model/common/color/NeonContrastAccessibility';
@@ -158,6 +161,7 @@ export { NeonDialogService } from './utils/feedback/dialog/NeonDialogService';
158
161
  export { NeonDropdownPlacementUtils } from '@/utils/presentation/dropdown/NeonDropdownPlacementUtils';
159
162
  export { NeonEventBus } from '@/utils/common/event/NeonEventBus';
160
163
  export { fileToDataURL } from '@/utils/user-input/file/NeonFileUtils';
164
+ export { NeonHttpUtils } from './utils/common/http/NeonHttpUtils';
161
165
  export { NeonIconRegistry } from '@/utils/common/icons/NeonIconRegistry';
162
166
  export { NeonJazziconUtils } from '@/utils/presentation/badge/NeonJazziconUtils';
163
167
  export { NeonModeUtils } from '@/utils/common/color/NeonModeUtils';
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Utilities for handling HTTP operations such as URL construction and parameter encoding.
3
+ */
4
+ export declare class NeonHttpUtils {
5
+ /**
6
+ * Constructs a URL with query parameters by appending encoded query parameters to a base URL.
7
+ *
8
+ * @param baseUrl The base URL to which query parameters will be appended.
9
+ * @param params Object containing key-value pairs to be encoded as query parameters.
10
+ * Values can be primitives or arrays of primitives which will be joined by commas.
11
+ *
12
+ * @returns A URL with encoded query parameters appended. If there are no parameters, returns the base URL.
13
+ */
14
+ static urlWithQueryParams(baseUrl: string, params?: object): string;
15
+ /**
16
+ * Encodes an object of key value pairs to a query string
17
+ * @param params - object of key value pairs where the values must either be primitives or a list of primitives which
18
+ * will be joined by commas
19
+ *
20
+ * @returns An encoded query string without the leading '?'
21
+ */
22
+ static encodeObjectToHttpQueryParams(params?: object): string;
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class n{static urlWithQueryParams(r,t={}){const e=n.encodeObjectToHttpQueryParams(t);return e.length>0?`${r}?${e}`:r}static encodeObjectToHttpQueryParams(r={}){return Object.entries(r).filter(([,t])=>t!=null&&t!==""&&!(Array.isArray(t)&&t.length===0)).map(([t,e])=>Array.isArray(e)?`${encodeURIComponent(t)}=${e.map(o=>encodeURIComponent(o)).join(",")}`:`${encodeURIComponent(t)}=${encodeURIComponent(e)}`).join("&")}}exports.NeonHttpUtils=n;
2
+ //# sourceMappingURL=NeonHttpUtils.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeonHttpUtils.cjs.js","sources":["../../../../src/utils/common/http/NeonHttpUtils.ts"],"sourcesContent":["/**\n * Utilities for handling HTTP operations such as URL construction and parameter encoding.\n */\nexport class NeonHttpUtils {\n /**\n * Constructs a URL with query parameters by appending encoded query parameters to a base URL.\n *\n * @param baseUrl The base URL to which query parameters will be appended.\n * @param params Object containing key-value pairs to be encoded as query parameters.\n * Values can be primitives or arrays of primitives which will be joined by commas.\n *\n * @returns A URL with encoded query parameters appended. If there are no parameters, returns the base URL.\n */\n public static urlWithQueryParams(baseUrl: string, params: object = {}) {\n const queryString = NeonHttpUtils.encodeObjectToHttpQueryParams(params);\n return queryString.length > 0 ? `${baseUrl}?${queryString}` : baseUrl;\n }\n\n /**\n * Encodes an object of key value pairs to a query string\n * @param params - object of key value pairs where the values must either be primitives or a list of primitives which\n * will be joined by commas\n *\n * @returns An encoded query string without the leading '?'\n */\n public static encodeObjectToHttpQueryParams(params: object = {}) {\n return Object.entries(params)\n .filter(\n ([, value]) =>\n value !== undefined && value !== null && value !== '' && !(Array.isArray(value) && value.length === 0),\n )\n .map(([key, value]) => {\n if (Array.isArray(value)) {\n return `${encodeURIComponent(key)}=${value.map((v) => encodeURIComponent(v)).join(',')}`;\n }\n\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n })\n .join('&');\n }\n}\n"],"names":["NeonHttpUtils","baseUrl","params","queryString","value","key","v"],"mappings":"gFAGO,MAAMA,CAAc,CAUzB,OAAc,mBAAmBC,EAAiBC,EAAiB,GAAI,CACrE,MAAMC,EAAcH,EAAc,8BAA8BE,CAAM,EACtE,OAAOC,EAAY,OAAS,EAAI,GAAGF,CAAO,IAAIE,CAAW,GAAKF,CAChE,CASA,OAAc,8BAA8BC,EAAiB,GAAI,CAC/D,OAAO,OAAO,QAAQA,CAAM,EACzB,OACC,CAAC,CAAA,CAAGE,CAAK,IACgBA,GAAU,MAAQA,IAAU,IAAM,EAAE,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,EAAA,EAEvG,IAAI,CAAC,CAACC,EAAKD,CAAK,IACX,MAAM,QAAQA,CAAK,EACd,GAAG,mBAAmBC,CAAG,CAAC,IAAID,EAAM,IAAKE,GAAM,mBAAmBA,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAGjF,GAAG,mBAAmBD,CAAG,CAAC,IAAI,mBAAmBD,CAAK,CAAC,EAC/D,EACA,KAAK,GAAG,CACb,CACF"}
@@ -0,0 +1,31 @@
1
+ class e {
2
+ /**
3
+ * Constructs a URL with query parameters by appending encoded query parameters to a base URL.
4
+ *
5
+ * @param baseUrl The base URL to which query parameters will be appended.
6
+ * @param params Object containing key-value pairs to be encoded as query parameters.
7
+ * Values can be primitives or arrays of primitives which will be joined by commas.
8
+ *
9
+ * @returns A URL with encoded query parameters appended. If there are no parameters, returns the base URL.
10
+ */
11
+ static urlWithQueryParams(n, r = {}) {
12
+ const t = e.encodeObjectToHttpQueryParams(r);
13
+ return t.length > 0 ? `${n}?${t}` : n;
14
+ }
15
+ /**
16
+ * Encodes an object of key value pairs to a query string
17
+ * @param params - object of key value pairs where the values must either be primitives or a list of primitives which
18
+ * will be joined by commas
19
+ *
20
+ * @returns An encoded query string without the leading '?'
21
+ */
22
+ static encodeObjectToHttpQueryParams(n = {}) {
23
+ return Object.entries(n).filter(
24
+ ([, r]) => r != null && r !== "" && !(Array.isArray(r) && r.length === 0)
25
+ ).map(([r, t]) => Array.isArray(t) ? `${encodeURIComponent(r)}=${t.map((o) => encodeURIComponent(o)).join(",")}` : `${encodeURIComponent(r)}=${encodeURIComponent(t)}`).join("&");
26
+ }
27
+ }
28
+ export {
29
+ e as NeonHttpUtils
30
+ };
31
+ //# sourceMappingURL=NeonHttpUtils.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeonHttpUtils.es.js","sources":["../../../../src/utils/common/http/NeonHttpUtils.ts"],"sourcesContent":["/**\n * Utilities for handling HTTP operations such as URL construction and parameter encoding.\n */\nexport class NeonHttpUtils {\n /**\n * Constructs a URL with query parameters by appending encoded query parameters to a base URL.\n *\n * @param baseUrl The base URL to which query parameters will be appended.\n * @param params Object containing key-value pairs to be encoded as query parameters.\n * Values can be primitives or arrays of primitives which will be joined by commas.\n *\n * @returns A URL with encoded query parameters appended. If there are no parameters, returns the base URL.\n */\n public static urlWithQueryParams(baseUrl: string, params: object = {}) {\n const queryString = NeonHttpUtils.encodeObjectToHttpQueryParams(params);\n return queryString.length > 0 ? `${baseUrl}?${queryString}` : baseUrl;\n }\n\n /**\n * Encodes an object of key value pairs to a query string\n * @param params - object of key value pairs where the values must either be primitives or a list of primitives which\n * will be joined by commas\n *\n * @returns An encoded query string without the leading '?'\n */\n public static encodeObjectToHttpQueryParams(params: object = {}) {\n return Object.entries(params)\n .filter(\n ([, value]) =>\n value !== undefined && value !== null && value !== '' && !(Array.isArray(value) && value.length === 0),\n )\n .map(([key, value]) => {\n if (Array.isArray(value)) {\n return `${encodeURIComponent(key)}=${value.map((v) => encodeURIComponent(v)).join(',')}`;\n }\n\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n })\n .join('&');\n }\n}\n"],"names":["NeonHttpUtils","baseUrl","params","queryString","value","key","v"],"mappings":"AAGO,MAAMA,EAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUzB,OAAc,mBAAmBC,GAAiBC,IAAiB,IAAI;AACrE,UAAMC,IAAcH,EAAc,8BAA8BE,CAAM;AACtE,WAAOC,EAAY,SAAS,IAAI,GAAGF,CAAO,IAAIE,CAAW,KAAKF;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,8BAA8BC,IAAiB,IAAI;AAC/D,WAAO,OAAO,QAAQA,CAAM,EACzB;AAAA,MACC,CAAC,CAAA,EAAGE,CAAK,MACgBA,KAAU,QAAQA,MAAU,MAAM,EAAE,MAAM,QAAQA,CAAK,KAAKA,EAAM,WAAW;AAAA,IAAA,EAEvG,IAAI,CAAC,CAACC,GAAKD,CAAK,MACX,MAAM,QAAQA,CAAK,IACd,GAAG,mBAAmBC,CAAG,CAAC,IAAID,EAAM,IAAI,CAACE,MAAM,mBAAmBA,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAGjF,GAAG,mBAAmBD,CAAG,CAAC,IAAI,mBAAmBD,CAAK,CAAC,EAC/D,EACA,KAAK,GAAG;AAAA,EACb;AACF;"}
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.4.1",
4
+ "version": "28.6.0",
5
5
  "main": "./dist/neon.cjs.js",
6
6
  "module": "./dist/neon.es.js",
7
7
  "types": "./dist/src/neon.d.ts",
@@ -112,7 +112,7 @@
112
112
  }
113
113
  }
114
114
 
115
- $neon-badge-sizes: (s, m, l, xl, xxl);
115
+ $neon-badge-sizes: (s, m, l, xl, xxl, xxxl);
116
116
 
117
117
  @each $badge-size in $neon-badge-sizes {
118
118
  &--#{$badge-size} {
@@ -152,7 +152,7 @@
152
152
  &--square {
153
153
  &,
154
154
  .neon-badge__image {
155
- border-radius: var(--neon-border-radius);
155
+ border-radius: var(--neon-border-radius-badge);
156
156
  }
157
157
  }
158
158
 
@@ -1,70 +1,49 @@
1
- @use '../includes/layout';
2
1
  @use '../includes/responsive';
3
- @use '../includes/svg';
4
2
 
5
- @mixin page-container {
6
- .neon-page-container {
3
+ @mixin basic-layout {
4
+ .neon-basic-layout {
7
5
  position: relative;
8
6
  padding-bottom: calc(var(--neon-space-20) + var(--neon-height-mobile-menu) + var(--neon-border-width));
9
- gap: var(--neon-gutter);
10
7
  width: 100%;
11
8
  max-width: 100%;
12
9
  flex: 1 0 auto;
13
10
 
14
- &.neon-page-container--with-sticky-buttons {
11
+ .neon-basic-layout__container {
12
+ gap: var(--neon-gutter);
13
+ }
14
+
15
+ &.neon-basic-layout--with-sticky-buttons {
15
16
  padding-bottom: calc(
16
- var(--neon-height-page-container-sticky-buttons) + var(--neon-space-20) + var(--neon-height-mobile-menu) +
17
+ var(--neon-height-basic-layout-sticky-buttons) + var(--neon-space-20) + var(--neon-height-mobile-menu) +
17
18
  var(--neon-height-mobile-menu-indicator)
18
19
  );
19
20
  }
20
-
21
- &__header {
22
- display: flex;
23
- flex-direction: row;
24
- align-items: center;
25
- justify-content: space-between;
26
- padding-top: calc(1.25 * var(--neon-gutter));
27
- }
28
-
29
- h1 {
30
- margin-bottom: 0;
31
- }
32
-
33
- @include responsive.responsive(larger-than-mobile-large) {
34
- padding-bottom: var(--neon-space-96);
35
- }
36
21
  }
37
22
 
38
23
  /* All min-height logic */
39
24
  @include responsive.responsive(larger-than-mobile-large) {
40
25
  .neon-page--with-footer {
41
- .neon-page-container {
26
+ .neon-basic-layout {
42
27
  min-height: calc(100% - (var(--neon-footer-height) + var(--neon-border-width-footer) + var(--neon-top-nav-height)));
43
28
  }
44
29
  }
45
30
  }
46
31
 
47
32
  @include responsive.responsive(tablet) {
48
- .neon-page-container {
33
+ .neon-basic-layout {
49
34
  max-width: 100%;
50
35
  }
51
36
  }
52
37
 
53
38
  @include responsive.responsive(mobile-large) {
54
- .neon-page-container {
39
+ .neon-basic-layout {
55
40
  min-height: 100%;
56
-
57
- &--hide-nav {
58
- min-height: 100%;
59
- --neon-height-mobile-menu: 0rem;
60
- --neon-height-mobile-menu-indicator: 0rem;
61
- }
62
41
  }
63
42
  }
64
43
 
65
44
  .neon-page--left.neon-page--with-side-nav {
66
45
  @include responsive.responsive(larger-than-tablet) {
67
- .neon-page-container {
46
+ .neon-basic-layout {
68
47
  max-width: calc(100% - 2 * var(--neon-gutter));
69
48
  margin-left: var(--neon-gutter);
70
49
  margin-right: var(--neon-gutter);
@@ -1,14 +1,15 @@
1
1
  @use '../includes/palettes';
2
2
  @use '../includes/responsive';
3
+ @use '../includes/scrollbars';
3
4
 
4
5
  @mixin card-list {
5
6
  .neon-card-list {
6
- &__results-end {
7
+ &__result-count-label {
7
8
  align-self: center;
8
9
  user-select: none;
9
- margin-top: 16rem;
10
- font-size: var(--neon-font-size-s);
11
- color: var(--neon-color-low-contrast);
10
+ font-size: var(--neon-font-size-xs);
11
+ color: var(--neon-color-text-secondary);
12
+ margin-top: var(--neon-space-32);
12
13
  }
13
14
 
14
15
  &__show-more {
@@ -22,7 +23,7 @@
22
23
  &__header {
23
24
  align-items: center;
24
25
  user-select: none;
25
- margin-bottom: var(--neon-space-16);
26
+ margin-bottom: var(--neon-space-8);
26
27
  font-size: var(--neon-font-size-xs);
27
28
  color: var(--neon-color-text-primary);
28
29
 
@@ -42,19 +43,10 @@
42
43
  }
43
44
 
44
45
  &__cards {
46
+ @include scrollbars.scrollbars;
47
+ overflow-y: auto;
45
48
  border-top: var(--neon-border);
46
49
  position: relative;
47
-
48
- .neon-splash-loader {
49
- position: absolute;
50
- width: 100%;
51
- height: 100%;
52
- top: 0;
53
- left: 0;
54
- right: 0;
55
- bottom: 0;
56
- z-index: var(--neon-z-index-above);
57
- }
58
50
  }
59
51
 
60
52
  .neon-card-list__card {
@@ -101,5 +93,30 @@
101
93
  }
102
94
  }
103
95
  }
96
+
97
+ &.neon-card-list--grid {
98
+ .neon-card-list__link {
99
+ width: fit-content;
100
+ min-width: fit-content;
101
+ max-width: fit-content;
102
+ display: inline-flex;
103
+ flex: 0 1 auto;
104
+ }
105
+
106
+ .neon-card-list__cards {
107
+ gap: var(--neon-space-32);
108
+ margin-top: var(--neon-space-32);
109
+ border-top: none;
110
+ flex-direction: row;
111
+ flex-wrap: wrap;
112
+ }
113
+
114
+ .neon-card-list__card {
115
+ width: fit-content;
116
+ max-width: fit-content;
117
+ flex: 0 1 auto;
118
+ padding: 0 0 var(--neon-space-24) 0;
119
+ }
120
+ }
104
121
  }
105
122
  }
@@ -36,6 +36,7 @@
36
36
 
37
37
  input {
38
38
  pointer-events: none;
39
+ touch-action: none;
39
40
  user-select: none;
40
41
  font-variant: tabular-nums;
41
42
  }
@@ -61,6 +62,7 @@
61
62
 
62
63
  .neon-date-picker__native-input {
63
64
  pointer-events: none;
65
+ touch-action: none;
64
66
  width: 100%;
65
67
  min-width: 100%;
66
68
  display: flex;
@@ -97,6 +97,7 @@
97
97
  z-index: var(--neon-z-index-below);
98
98
  position: fixed;
99
99
  pointer-events: none;
100
+ touch-action: none;
100
101
  top: 0;
101
102
  left: 0;
102
103
  @include layout.width(100);
@@ -61,8 +61,12 @@
61
61
  }
62
62
  }
63
63
 
64
+ .neon-button:hover {
65
+ z-index: var(--neon-z-index-above-2);
66
+ }
67
+
64
68
  .neon-button + .neon-button {
65
- border-left: var(--neon-border-width) var(--neon-border-style) var(--neon-color-inverse);
69
+ border-left: none;
66
70
  }
67
71
  }
68
72
 
@@ -29,7 +29,8 @@
29
29
  }
30
30
 
31
31
  &__subtitle {
32
- font-size: var(--neon-font-size-m);
32
+ font-size: var(--neon-font-size-header-subtitle);
33
+ color: var(--neon-color-header-subtitle);
33
34
  white-space: nowrap;
34
35
  }
35
36
 
@@ -11,6 +11,12 @@
11
11
  padding-right: var(--neon-size-#{$size});
12
12
  }
13
13
 
14
+ &.neon-input--state-loading {
15
+ input {
16
+ cursor: progress;
17
+ }
18
+ }
19
+
14
20
  &.neon-input--state-loading,
15
21
  &.neon-input--state-success,
16
22
  &.neon-input--state-error,
@@ -39,6 +39,7 @@
39
39
  color: var(--neon-color-disabled-text);
40
40
  cursor: not-allowed;
41
41
  pointer-events: none;
42
+ touch-action: none;
42
43
  }
43
44
  }
44
45
 
@@ -0,0 +1,48 @@
1
+ @use '../includes/responsive';
2
+
3
+ @mixin loading-state-card {
4
+ .neon-loading-state-card {
5
+ .neon-loading-state-card__thumbnail {
6
+ --neon-border-radius-skeleton-loader: var(--neon-border-radius-loading-state-card-thumbnail);
7
+ --neon-height-skeleton-loader: 48rem;
8
+ min-width: 48rem;
9
+ width: 48rem;
10
+ }
11
+
12
+ .neon-loading-state-card__main-content {
13
+ gap: var(--neon-space-8);
14
+ width: 50%;
15
+ height: 48rem;
16
+ }
17
+
18
+ .neon-loading-state-card__main-content-item {
19
+ --neon-height-skeleton-loader: 22rem;
20
+ width: 50%;
21
+ }
22
+
23
+ .neon-loading-state-card__additional-content {
24
+ --neon-height-skeleton-loader: 20rem;
25
+ width: 25%;
26
+ height: 20rem;
27
+ justify-content: center;
28
+ margin-left: auto;
29
+ }
30
+
31
+ @include responsive.responsive(mobile-large) {
32
+ gap: var(--neon-space-16);
33
+
34
+ .neon-loading-state-card__main-content {
35
+ width: 50%;
36
+ }
37
+
38
+ .neon-loading-state-card__main-content-item {
39
+ width: 100%;
40
+ }
41
+
42
+ .neon-loading-state-card__additional-content {
43
+ margin-left: 0;
44
+ width: 50%;
45
+ }
46
+ }
47
+ }
48
+ }
@@ -79,6 +79,7 @@
79
79
  opacity: 0;
80
80
  z-index: var(--neon-z-index-below);
81
81
  pointer-events: none;
82
+ touch-action: none;
82
83
  transition: opacity ease-in-out var(--neon-animation-speed-fast);
83
84
  }
84
85
 
@@ -14,6 +14,7 @@
14
14
 
15
15
  .neon-page__container {
16
16
  @include layout.min-height(100);
17
+ overflow-x: hidden;
17
18
 
18
19
  @include responsive.responsive(larger-than-tablet) {
19
20
  padding-left: var(--neon-gutter-desktop);
@@ -118,6 +118,7 @@
118
118
  .neon-slider__input,
119
119
  .neon-slider {
120
120
  pointer-events: none;
121
+ touch-action: none;
121
122
  }
122
123
 
123
124
  .neon-range-slider__lower,
@@ -132,14 +133,17 @@
132
133
  .neon-slider__input {
133
134
  &::-webkit-slider-thumb {
134
135
  pointer-events: none;
136
+ touch-action: none;
135
137
  }
136
138
 
137
139
  &::-moz-range-thumb {
138
140
  pointer-events: none;
141
+ touch-action: none;
139
142
  }
140
143
 
141
144
  &::-ms-thumb {
142
145
  pointer-events: none;
146
+ touch-action: none;
143
147
  }
144
148
  }
145
149
  }
@@ -17,6 +17,7 @@
17
17
  flex: 1 1 auto;
18
18
  width: var(--neon-width-skeleton-loader);
19
19
  max-width: var(--neon-width-skeleton-loader);
20
+ height: var(--neon-height-skeleton-loader);
20
21
  min-height: var(--neon-height-skeleton-loader);
21
22
  border-radius: var(--neon-border-radius-skeleton-loader);
22
23
  position: relative;
@@ -30,8 +30,8 @@
30
30
  background: linear-gradient(to bottom, transparent, var(--neon-background-color));
31
31
  width: 100%;
32
32
  height: var(--neon-space-16);
33
- touch-action: none;
34
33
  pointer-events: none;
34
+ touch-action: none;
35
35
  }
36
36
 
37
37
  .neon-button {
@@ -56,7 +56,6 @@
56
56
  @forward './image-carousel';
57
57
  @forward './swiper';
58
58
  @forward './mobile-menu';
59
- @forward './page-container';
60
59
  @forward './banner';
61
60
  @forward './pagination';
62
61
  @forward './labelled-content';
@@ -68,3 +67,5 @@
68
67
  @forward './filter-bar';
69
68
  @forward './empty-state';
70
69
  @forward './list-layout';
70
+ @forward './loading-state-card';
71
+ @forward './basic-layout';
@@ -2,7 +2,7 @@
2
2
  .neon-fade-transition {
3
3
  &-enter-active,
4
4
  &-leave-active {
5
- transition: opacity ease-in-out var(--neon-animation-speed-fast);
5
+ transition: opacity ease-in-out var(--neon-animation-speed-fast) var(--neon-animation-speed-fast) allow-discrete;
6
6
  }
7
7
 
8
8
  &-enter-from,
@@ -13,11 +13,11 @@
13
13
 
14
14
  .neon-splash-transition {
15
15
  &-enter-active {
16
- transition: opacity ease-in-out var(--neon-animation-speed-fast);
16
+ transition: opacity ease-in-out var(--neon-animation-speed-fast) var(--neon-animation-speed-fast) allow-discrete;
17
17
  }
18
18
 
19
19
  &-leave-active {
20
- transition: opacity ease-in-out var(--neon-animation-speed-slowest);
20
+ transition: opacity ease-in-out var(--neon-animation-speed-slowest) var(--neon-animation-speed-fast) allow-discrete;
21
21
  }
22
22
 
23
23
  &-enter-from,
@@ -127,11 +127,10 @@
127
127
  NeonField: [],
128
128
  NeonStack: [],
129
129
  NeonInline: [],
130
- NeonCardList: [NeonSelectableCard, NeonSwitch, NeonIcon, NeonButton, NeonExpansionIndicator, NeonIcon, NeonLink, NeonCard, NeonCardHeader, NeonCardBody, NeonInline, NeonStack, NeonPagination],
130
+ NeonCardList: [NeonSelectableCard, NeonSwitch, NeonIcon, NeonButton, NeonExpansionIndicator, NeonIcon, NeonLink, NeonCard, NeonCardHeader, NeonCardBody, NeonInline, NeonStack, NeonPagination, NeonLoadingStateCard, NeonSkeletonLoader],
131
131
  NeonImageCarousel: [NeonButton, NeonLink],
132
132
  NeonSwiper: [],
133
133
  NeonMobileMenu: [NeonIcon, NeonLink],
134
- NeonPageContainer: [NeonIcon],
135
134
  NeonBanner: [NeonButton, NeonNote, NeonIcon, NeonLink, NeonExpansionIndicator],
136
135
  NeonPagination: [NeonButton, NeonLink, NeonIcon],
137
136
  NeonLabelledContent: [],
@@ -142,7 +141,9 @@
142
141
  NeonSearchFilter: [NeonButton, NeonInput, NeonLink, NeonStack, NeonSwitch, NeonExpansionIndicator, NeonIcon, NeonLink, NeonFieldGroup, NeonDropdown, NeonBadge],
143
142
  NeonFilterBar: [NeonInline, NeonSwiper],
144
143
  NeonEmptyState: [NeonButton, NeonIcon, NeonInline, NeonStack, NeonExpansionIndicator, NeonLink],
145
- NeonListLayout: [NeonBreadcrumbs, NeonButton, NeonCard, NeonCardBody, NeonCardHeader, NeonCardList, NeonEmptyState, NeonExpansionIndicator, NeonHeader, NeonIcon, NeonInline, NeonLink, NeonNote, NeonPagination, NeonSelectableCard, NeonStack, NeonSwiper, NeonSwitch],
144
+ NeonListLayout: [NeonBreadcrumbs, NeonButton, NeonCard, NeonCardBody, NeonCardHeader, NeonCardList, NeonEmptyState, NeonExpansionIndicator, NeonHeader, NeonIcon, NeonInline, NeonLink, NeonNote, NeonPagination, NeonSelectableCard, NeonSwiper, NeonSwitch],
145
+ NeonLoadingStateCard: [NeonInline, NeonStack, NeonSkeletonLoader],
146
+ NeonBasicLayout: [NeonHeader, NeonBreadcrumbs, NeonButton, NeonExpansionIndicator, NeonIcon, NeonInline, NeonLink, NeonNote, NeonSwiper, NeonStack],
146
147
  );
147
148
 
148
149
  $neon-flattened-components: [];
@@ -9,10 +9,10 @@
9
9
  --neon-rgb-text-primary-dark: 248, 248, 248;
10
10
  --neon-rgb-text-secondary-dark: 221, 221, 221;
11
11
  --neon-rgb-text-tertiary-dark: 166, 166, 166;
12
- --neon-rgb-disabled-background-dark: 55, 55, 55;
12
+ --neon-rgb-disabled-background-dark: 16, 16, 16;
13
13
  --neon-rgb-disabled-border-dark: 65, 65, 65;
14
14
  --neon-rgb-disabled-text-dark: 80, 80, 80;
15
- --neon-rgb-disabled-background-light: 240, 240, 240;
15
+ --neon-rgb-disabled-background-light: 248, 248, 248;
16
16
  --neon-rgb-disabled-border-light: 220, 220, 220;
17
17
  --neon-rgb-disabled-text-light: 200, 200, 200;
18
18
  --neon-rgb-low-contrast-l5: 221, 221, 221;
@@ -273,10 +273,6 @@ $neon-components: null !default;
273
273
  @include components.mobile-menu;
274
274
  }
275
275
 
276
- @if index($neon-flattened-components, NeonPageContainer) {
277
- @include components.page-container;
278
- }
279
-
280
276
  @if index($neon-flattened-components, NeonBanner) {
281
277
  @include components.banner;
282
278
  }
@@ -320,4 +316,12 @@ $neon-components: null !default;
320
316
  @if index($neon-flattened-components, NeonListLayout) {
321
317
  @include components.list-layout;
322
318
  }
319
+
320
+ @if index($neon-flattened-components, NeonLoadingStateCard) {
321
+ @include components.loading-state-card;
322
+ }
323
+
324
+ @if index($neon-flattened-components, NeonBasicLayout) {
325
+ @include components.basic-layout;
326
+ }
323
327
  }