@stack-spot/citric-react 0.7.1 → 0.8.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/Favorite.d.ts +7 -2
- package/dist/components/Favorite.d.ts.map +1 -1
- package/dist/components/Favorite.js +1 -1
- package/dist/components/Favorite.js.map +1 -1
- package/dist/components/IconBox.d.ts.map +1 -1
- package/dist/components/IconBox.js +13 -2
- package/dist/components/IconBox.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Favorite.tsx +9 -3
- package/src/components/IconBox.tsx +14 -11
|
@@ -15,9 +15,14 @@ export interface BaseFavoriteProps {
|
|
|
15
15
|
*/
|
|
16
16
|
appearance?: FavoriteAppearance;
|
|
17
17
|
onChange: (value: boolean) => void;
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Whether or not to show the loading feedback.
|
|
20
|
+
*
|
|
21
|
+
* If `loading` is true, this button becomes disabled.
|
|
22
|
+
*/
|
|
23
|
+
loading?: boolean;
|
|
19
24
|
}
|
|
20
25
|
export type FavoriteProps = ControlledInput & BaseFavoriteProps;
|
|
21
|
-
export declare const Favorite: ({ value, size, appearance, onChange,
|
|
26
|
+
export declare const Favorite: ({ value, size, appearance, onChange, loading, disabled, className, ...props }: FavoriteProps) => import("react/jsx-runtime").JSX.Element;
|
|
22
27
|
export {};
|
|
23
28
|
//# sourceMappingURL=Favorite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Favorite.d.ts","sourceRoot":"","sources":["../../src/components/Favorite.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,KAAK,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEtD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"Favorite.d.ts","sourceRoot":"","sources":["../../src/components/Favorite.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,KAAK,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEtD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAE/D,eAAO,MAAM,QAAQ,GAAI,+EAA+E,aAAa,4CAWjH,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
3
3
|
import { CitricComponent } from './CitricComponent.js';
|
|
4
|
-
export const Favorite = ({ value, size, appearance, onChange,
|
|
4
|
+
export const Favorite = ({ value, size, appearance, onChange, loading, disabled, className, ...props }) => _jsx(CitricComponent, { tag: "input", type: "checkbox", component: "favorite", className: listToClass([appearance, size, className]), checked: !!value, onChange: () => onChange(!value), "aria-busy": loading, disabled: loading || disabled, ...props });
|
|
5
5
|
//# sourceMappingURL=Favorite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Favorite.js","sourceRoot":"","sources":["../../src/components/Favorite.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Favorite.js","sourceRoot":"","sources":["../../src/components/Favorite.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA6BnD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE,CACvH,KAAC,eAAe,IACd,GAAG,EAAC,OAAO,EACX,IAAI,EAAC,UAAU,EACf,SAAS,EAAC,UAAU,EACpB,SAAS,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EACrD,OAAO,EAAE,CAAC,CAAC,KAAK,EAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,eACrB,OAAO,EAClB,QAAQ,EAAE,OAAO,IAAI,QAAQ,KACzB,KAAK,GACT,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconBox.d.ts","sourceRoot":"","sources":["../../src/components/IconBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGrE,KAAK,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB;IACrI;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEzG,wBAAgB,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,EACjF,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"IconBox.d.ts","sourceRoot":"","sources":["../../src/components/IconBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGrE,KAAK,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB;IACrI;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEzG,wBAAgB,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,EACjF,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,2CAuBzI;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,2CAExG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,2CAEjG"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { useCitricController } from '../context/hooks.js';
|
|
5
|
-
import { CitricComponent } from './CitricComponent.js';
|
|
5
|
+
import { asCitricProps, CitricComponent } from './CitricComponent.js';
|
|
6
6
|
export function IconBox({ group, icon, tag, colorScheme, colorPalette, appearance, size, className, analytics, onClick, feedback, ...props }) {
|
|
7
7
|
const citric = useCitricController();
|
|
8
8
|
const handleClick = useCallback((e) => {
|
|
@@ -12,7 +12,18 @@ export function IconBox({ group, icon, tag, colorScheme, colorPalette, appearanc
|
|
|
12
12
|
else if (tag === 'a')
|
|
13
13
|
citric?.onClickLink?.(e, analytics ?? false);
|
|
14
14
|
}, [tag]);
|
|
15
|
-
|
|
15
|
+
const citricProps = asCitricProps({
|
|
16
|
+
component: 'icon-box',
|
|
17
|
+
className: listToClass(['citric-icon', group || 'outline', icon, appearance, size, className]),
|
|
18
|
+
colorScheme: colorScheme,
|
|
19
|
+
colorPalette: colorPalette,
|
|
20
|
+
'data-feedback': feedback || undefined,
|
|
21
|
+
onClick: ['button', 'a'].includes(tag ?? '') ? handleClick : onClick,
|
|
22
|
+
...props,
|
|
23
|
+
});
|
|
24
|
+
if (tag === 'a' && citric?.renderLink)
|
|
25
|
+
return citric.renderLink(citricProps);
|
|
26
|
+
return _jsx(CitricComponent, { tag: (tag || 'i'), ...citricProps });
|
|
16
27
|
}
|
|
17
28
|
/**
|
|
18
29
|
* Shortcut to <IconBox tag="button" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconBox.js","sourceRoot":"","sources":["../../src/components/IconBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"IconBox.js","sourceRoot":"","sources":["../../src/components/IconBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA0ClE,MAAM,UAAU,OAAO,CACrB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAsB;IAExI,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAA;IAEpC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAwB,EAAE,EAAE;QAC3D,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QACZ,IAAI,GAAG,KAAK,QAAQ;YAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;aAC/D,IAAI,GAAG,KAAK,GAAG;YAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;IACpE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,MAAM,WAAW,GAAG,aAAa,CAAC;QAChC,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,WAAW,CAAC,CAAC,aAAa,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9F,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;QAC1B,eAAe,EAAE,QAAQ,IAAI,SAAS;QACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;QACpE,GAAG,KAAK;KACT,CAAC,CAAA;IAEF,IAAI,GAAG,KAAK,GAAG,IAAI,MAAM,EAAE,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAE5E,OAAO,KAAC,eAAe,IAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAQ,KAAM,WAAW,GAAI,CAAA;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAkC,KAA6C;IACvG,OAAO,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAkC,KAAwC;IAChG,OAAO,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -19,12 +19,17 @@ export interface BaseFavoriteProps {
|
|
|
19
19
|
*/
|
|
20
20
|
appearance?: FavoriteAppearance,
|
|
21
21
|
onChange: (value: boolean) => void,
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Whether or not to show the loading feedback.
|
|
24
|
+
*
|
|
25
|
+
* If `loading` is true, this button becomes disabled.
|
|
26
|
+
*/
|
|
27
|
+
loading?: boolean,
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
export type FavoriteProps = ControlledInput & BaseFavoriteProps
|
|
26
31
|
|
|
27
|
-
export const Favorite = ({ value, size, appearance, onChange,
|
|
32
|
+
export const Favorite = ({ value, size, appearance, onChange, loading, disabled, className, ...props }: FavoriteProps) =>
|
|
28
33
|
<CitricComponent
|
|
29
34
|
tag="input"
|
|
30
35
|
type="checkbox"
|
|
@@ -32,6 +37,7 @@ export const Favorite = ({ value, size, appearance, onChange, isLoading, classNa
|
|
|
32
37
|
className={listToClass([appearance, size, className])}
|
|
33
38
|
checked={!!value}
|
|
34
39
|
onChange={() => onChange(!value)}
|
|
35
|
-
aria-busy={
|
|
40
|
+
aria-busy={loading}
|
|
41
|
+
disabled={loading || disabled}
|
|
36
42
|
{...props}
|
|
37
43
|
/>
|
|
@@ -3,7 +3,7 @@ import { listToClass } from '@stack-spot/portal-theme'
|
|
|
3
3
|
import { useCallback } from 'react'
|
|
4
4
|
import { useCitricController } from '../context/hooks'
|
|
5
5
|
import { HTMLTag, WithColorPalette, WithColorScheme } from '../types'
|
|
6
|
-
import { CitricComponent } from './CitricComponent'
|
|
6
|
+
import { asCitricProps, CitricComponent } from './CitricComponent'
|
|
7
7
|
|
|
8
8
|
type IconBoxTag = 'a' | 'button' | 'i' | 'span' | 'div'
|
|
9
9
|
|
|
@@ -56,16 +56,19 @@ export function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outli
|
|
|
56
56
|
else if (tag === 'a') citric?.onClickLink?.(e, analytics ?? false)
|
|
57
57
|
}, [tag])
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
const citricProps = asCitricProps({
|
|
60
|
+
component: 'icon-box',
|
|
61
|
+
className: listToClass(['citric-icon', group || 'outline', icon, appearance, size, className]),
|
|
62
|
+
colorScheme: colorScheme,
|
|
63
|
+
colorPalette: colorPalette,
|
|
64
|
+
'data-feedback': feedback || undefined,
|
|
65
|
+
onClick: ['button', 'a'].includes(tag ?? '') ? handleClick : onClick,
|
|
66
|
+
...props,
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
if (tag === 'a' && citric?.renderLink) return citric.renderLink(citricProps)
|
|
70
|
+
|
|
71
|
+
return <CitricComponent tag={(tag || 'i') as any} {...citricProps} />
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
/**
|