@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.
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.cjs.js +2 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.cjs.js.map +1 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.es.js +16 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.es.js.map +1 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.cjs.js +2 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.cjs.js.map +1 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.es.js +48 -0
- package/dist/components/feedback/loading-state-card/NeonLoadingStateCard.vue.es.js.map +1 -0
- package/dist/components/feedback/skeleton-loader/NeonSkeletonLoader.cjs.js.map +1 -1
- package/dist/components/feedback/skeleton-loader/NeonSkeletonLoader.es.js.map +1 -1
- package/dist/components/feedback/splash-loader/NeonSplashLoader.cjs.js.map +1 -1
- package/dist/components/feedback/splash-loader/NeonSplashLoader.es.js.map +1 -1
- package/dist/components/layout/basic-layout/NeonBasicLayout.cjs.js +2 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.cjs.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.es.js +40 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.es.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js +2 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js +41 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js.map +1 -0
- package/dist/components/layout/card-list/NeonCardList.cjs.js +1 -1
- package/dist/components/layout/card-list/NeonCardList.cjs.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.es.js +60 -49
- package/dist/components/layout/card-list/NeonCardList.es.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.cjs.js +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.cjs.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.es.js +98 -74
- package/dist/components/layout/card-list/NeonCardList.vue.es.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.cjs.js +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.cjs.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.es.js +34 -23
- package/dist/components/layout/list-layout/NeonListLayout.es.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.es.js +56 -52
- package/dist/components/layout/list-layout/NeonListLayout.vue.es.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.cjs.js +1 -1
- package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.cjs.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.es.js +11 -10
- package/dist/components/navigation/breadcrumbs/NeonBreadcrumbs.es.js.map +1 -1
- package/dist/components/presentation/avatar/NeonAvatar.cjs.js +2 -0
- package/dist/components/presentation/avatar/NeonAvatar.cjs.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.es.js +66 -0
- package/dist/components/presentation/avatar/NeonAvatar.es.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js +2 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.es.js +25 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.es.js.map +1 -0
- package/dist/components/presentation/header/NeonHeader.vue.cjs.js +1 -1
- package/dist/components/presentation/header/NeonHeader.vue.cjs.js.map +1 -1
- package/dist/components/presentation/header/NeonHeader.vue.es.js +31 -29
- package/dist/components/presentation/header/NeonHeader.vue.es.js.map +1 -1
- package/dist/model/layout/card-list/NeonCardListStyle.cjs.js +2 -0
- package/dist/model/layout/card-list/NeonCardListStyle.cjs.js.map +1 -0
- package/dist/model/layout/card-list/NeonCardListStyle.es.js +5 -0
- package/dist/model/layout/card-list/NeonCardListStyle.es.js.map +1 -0
- package/dist/model/presentation/badge/NeonBadgeSize.cjs.js +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.cjs.js.map +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.es.js +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.es.js.map +1 -1
- package/dist/neon.cjs.js +1 -1
- package/dist/neon.es.js +267 -259
- package/dist/neon.es.js.map +1 -1
- package/dist/src/components/feedback/loading-state-card/NeonLoadingStateCard.d.ts +48 -0
- package/dist/src/components/feedback/loading-state-card/NeonLoadingStateCard.vue.d.ts +2 -0
- package/dist/src/components/feedback/skeleton-loader/NeonSkeletonLoader.d.ts +2 -2
- package/dist/src/components/feedback/splash-loader/NeonSplashLoader.d.ts +1 -2
- package/dist/src/components/layout/basic-layout/NeonBasicLayout.d.ts +427 -0
- package/dist/src/components/layout/basic-layout/NeonBasicLayout.vue.d.ts +2 -0
- package/dist/src/components/layout/card-list/NeonCardList.d.ts +81 -28
- package/dist/src/components/layout/list-layout/NeonListLayout.d.ts +374 -265
- package/dist/src/components/presentation/avatar/NeonAvatar.d.ts +1806 -0
- package/dist/src/components/presentation/avatar/NeonAvatar.vue.d.ts +2 -0
- package/dist/src/model/layout/card-list/NeonCardListStyle.d.ts +13 -0
- package/dist/src/model/layout/card-list/NeonLoadOnDemandModel.d.ts +4 -8
- package/dist/src/model/presentation/badge/NeonBadgeSize.d.ts +3 -1
- package/dist/src/neon.d.ts +5 -1
- package/dist/src/utils/common/http/NeonHttpUtils.d.ts +23 -0
- package/dist/utils/common/http/NeonHttpUtils.cjs.js +2 -0
- package/dist/utils/common/http/NeonHttpUtils.cjs.js.map +1 -0
- package/dist/utils/common/http/NeonHttpUtils.es.js +31 -0
- package/dist/utils/common/http/NeonHttpUtils.es.js.map +1 -0
- package/package.json +1 -1
- package/src/sass/components/_badge.scss +2 -2
- package/src/sass/components/{_page-container.scss → _basic-layout.scss} +12 -33
- package/src/sass/components/_card-list.scss +33 -16
- package/src/sass/components/_date-picker.scss +2 -0
- package/src/sass/components/_drawer.scss +1 -0
- package/src/sass/components/_field-group.scss +5 -1
- package/src/sass/components/_header.scss +2 -1
- package/src/sass/components/_input.scss +6 -0
- package/src/sass/components/_link.scss +1 -0
- package/src/sass/components/_loading-state-card.scss +48 -0
- package/src/sass/components/_modal.scss +1 -0
- package/src/sass/components/_page.scss +1 -0
- package/src/sass/components/_range-slider.scss +4 -0
- package/src/sass/components/_skeleton-loader.scss +1 -0
- package/src/sass/components/_sticky-buttons.scss +1 -1
- package/src/sass/components/components.scss +2 -1
- package/src/sass/core/_transitions.scss +3 -3
- package/src/sass/includes/_dependencies.scss +4 -3
- package/src/sass/palette.scss +2 -2
- package/src/sass/theme.scss +8 -4
- package/src/sass/variables-dark.scss +10 -3
- package/src/sass/variables-global.scss +30 -9
- package/src/sass/variables-light.scss +10 -3
- package/dist/components/layout/page-container/NeonPageContainer.cjs.js +0 -2
- package/dist/components/layout/page-container/NeonPageContainer.cjs.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.es.js +0 -26
- package/dist/components/layout/page-container/NeonPageContainer.es.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js +0 -2
- package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.vue.es.js +0 -31
- package/dist/components/layout/page-container/NeonPageContainer.vue.es.js.map +0 -1
- package/dist/src/components/layout/page-container/NeonPageContainer.d.ts +0 -98
- package/dist/src/components/layout/page-container/NeonPageContainer.vue.d.ts +0 -2
|
@@ -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
|
|
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
|
-
|
|
13
|
+
resultCountLabel?: string;
|
|
14
14
|
/**
|
|
15
|
-
* override the '
|
|
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
|
}
|
package/dist/src/neon.d.ts
CHANGED
|
@@ -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
|
+
"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
|
|
6
|
-
.neon-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
33
|
+
.neon-basic-layout {
|
|
49
34
|
max-width: 100%;
|
|
50
35
|
}
|
|
51
36
|
}
|
|
52
37
|
|
|
53
38
|
@include responsive.responsive(mobile-large) {
|
|
54
|
-
.neon-
|
|
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-
|
|
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
|
-
&
|
|
7
|
+
&__result-count-label {
|
|
7
8
|
align-self: center;
|
|
8
9
|
user-select: none;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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-
|
|
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;
|
|
@@ -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
|
+
}
|
|
@@ -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;
|
|
@@ -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,
|
|
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: [];
|
package/src/sass/palette.scss
CHANGED
|
@@ -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:
|
|
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:
|
|
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;
|
package/src/sass/theme.scss
CHANGED
|
@@ -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
|
}
|