@stack-spot/citric-react 0.7.2 → 0.9.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/citric.css +5 -0
- 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 +4 -4
- package/dist/components/IconBox.d.ts.map +1 -1
- package/dist/components/IconBox.js +6 -6
- package/dist/components/IconBox.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Favorite.tsx +9 -3
- package/src/components/IconBox.tsx +24 -11
- package/src/index.ts +1 -1
package/dist/citric.css
CHANGED
|
@@ -1760,6 +1760,7 @@ nav[data-citric="menu"].rounded-items, [data-citric="menu"].rounded-items nav {
|
|
|
1760
1760
|
width: var(--size);
|
|
1761
1761
|
height: var(--size);
|
|
1762
1762
|
color: var(--fg);
|
|
1763
|
+
overflow: hidden;
|
|
1763
1764
|
|
|
1764
1765
|
/* Sizes */
|
|
1765
1766
|
|
|
@@ -1781,6 +1782,10 @@ nav[data-citric="menu"].rounded-items, [data-citric="menu"].rounded-items nav {
|
|
|
1781
1782
|
border-radius: var(--radius-xs);
|
|
1782
1783
|
}
|
|
1783
1784
|
|
|
1785
|
+
&.text {
|
|
1786
|
+
background-color: transparent;
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1784
1789
|
/* Colors */
|
|
1785
1790
|
|
|
1786
1791
|
&[data-color-scheme] {
|
|
@@ -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,11 +1,11 @@
|
|
|
1
1
|
import { IconGroup, IconOwnProps } from '@stack-spot/citric-icons';
|
|
2
2
|
import { HTMLTag, WithColorPalette, WithColorScheme } from '../types.js';
|
|
3
3
|
type IconBoxTag = 'a' | 'button' | 'i' | 'span' | 'div';
|
|
4
|
-
export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> extends IconOwnProps<G
|
|
4
|
+
export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> extends Partial<IconOwnProps<G>>, WithColorScheme, WithColorPalette {
|
|
5
5
|
/**
|
|
6
6
|
* The HTML element to render.
|
|
7
7
|
*
|
|
8
|
-
* @default 'i'
|
|
8
|
+
* @default "'i' if the icon is provided, 'span' otherwise"
|
|
9
9
|
*/
|
|
10
10
|
tag?: T;
|
|
11
11
|
/**
|
|
@@ -13,7 +13,7 @@ export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> ext
|
|
|
13
13
|
*
|
|
14
14
|
* @default 'circle'
|
|
15
15
|
*/
|
|
16
|
-
appearance?: 'circle' | 'square';
|
|
16
|
+
appearance?: 'circle' | 'square' | 'text';
|
|
17
17
|
/**
|
|
18
18
|
* Size of the box.
|
|
19
19
|
*
|
|
@@ -37,7 +37,7 @@ export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> ext
|
|
|
37
37
|
analytics?: boolean;
|
|
38
38
|
}
|
|
39
39
|
export type IconBoxProps<T extends IconBoxTag, G extends IconGroup> = HTMLTag[T] & BaseIconBoxProps<T, G>;
|
|
40
|
-
export declare function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outline'>({ group, icon, tag, colorScheme, colorPalette, appearance, size, className, analytics, onClick, feedback, ...props }: IconBoxProps<T, G>): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outline'>({ group, icon, tag, colorScheme, colorPalette, appearance, size, className, analytics, onClick, feedback, children, ...props }: IconBoxProps<T, G>): import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
/**
|
|
42
42
|
* Shortcut to <IconBox tag="button" />
|
|
43
43
|
*/
|
|
@@ -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,
|
|
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,SAC3E,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB;IAC3D;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C;;;;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,EAAE,EACnF,KAAK,EACL,IAAI,EACJ,GAAG,EACH,WAAW,EACX,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,2CAsBpB;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"}
|
|
@@ -3,7 +3,7 @@ import { listToClass } from '@stack-spot/portal-theme';
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { useCitricController } from '../context/hooks.js';
|
|
5
5
|
import { asCitricProps, CitricComponent } from './CitricComponent.js';
|
|
6
|
-
export function IconBox({ group, icon, tag, colorScheme, colorPalette, appearance, size, className, analytics, onClick, feedback, ...props }) {
|
|
6
|
+
export function IconBox({ group, icon, tag, colorScheme, colorPalette, appearance, size, className, analytics, onClick, feedback, children, ...props }) {
|
|
7
7
|
const citric = useCitricController();
|
|
8
8
|
const handleClick = useCallback((e) => {
|
|
9
9
|
onClick?.(e);
|
|
@@ -12,18 +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
|
-
const
|
|
15
|
+
const allProps = {
|
|
16
16
|
component: 'icon-box',
|
|
17
|
-
className: listToClass(['citric-icon', group || 'outline', icon, appearance, size, className]),
|
|
17
|
+
className: listToClass([icon && 'citric-icon', icon && (group || 'outline'), icon, appearance, size, className]),
|
|
18
18
|
colorScheme: colorScheme,
|
|
19
19
|
colorPalette: colorPalette,
|
|
20
20
|
'data-feedback': feedback || undefined,
|
|
21
21
|
onClick: ['button', 'a'].includes(tag ?? '') ? handleClick : onClick,
|
|
22
22
|
...props,
|
|
23
|
-
}
|
|
23
|
+
};
|
|
24
24
|
if (tag === 'a' && citric?.renderLink)
|
|
25
|
-
return citric.renderLink(
|
|
26
|
-
return _jsx(CitricComponent, { tag: (tag || 'i'), ...
|
|
25
|
+
return citric.renderLink(asCitricProps(allProps));
|
|
26
|
+
return _jsx(CitricComponent, { tag: (tag || (icon ? 'i' : 'span')), ...allProps, children: children });
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
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,aAAa,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;AA2ClE,MAAM,UAAU,OAAO,CAA8D,EACnF,KAAK,EACL,IAAI,EACJ,GAAG,EACH,WAAW,EACX,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACW;IACnB,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,QAAQ,GAAG;QACf,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,IAAI,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAChH,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;KACA,CAAA;IAEV,IAAI,GAAG,KAAK,GAAG,IAAI,MAAM,EAAE,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IAExF,OAAO,KAAC,eAAe,IAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAQ,KAAM,QAAQ,YAAG,QAAQ,GAAmB,CAAA;AAChH,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/dist/index.d.ts
CHANGED
|
@@ -47,6 +47,6 @@ export * from './components/Text.js';
|
|
|
47
47
|
export * from './components/Textarea.js';
|
|
48
48
|
export * from './components/Tooltip.js';
|
|
49
49
|
export * from './context/CitricProvider.js';
|
|
50
|
-
export { CitricController } from './types.js';
|
|
50
|
+
export type { CitricController } from './types.js';
|
|
51
51
|
export * from './utils/ValueController.js';
|
|
52
52
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,cAAc,yBAAyB,CAAA"}
|
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
|
/>
|
|
@@ -7,11 +7,12 @@ import { asCitricProps, CitricComponent } from './CitricComponent'
|
|
|
7
7
|
|
|
8
8
|
type IconBoxTag = 'a' | 'button' | 'i' | 'span' | 'div'
|
|
9
9
|
|
|
10
|
-
export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> extends
|
|
10
|
+
export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> extends
|
|
11
|
+
Partial<IconOwnProps<G>>, WithColorScheme, WithColorPalette {
|
|
11
12
|
/**
|
|
12
13
|
* The HTML element to render.
|
|
13
14
|
*
|
|
14
|
-
* @default 'i'
|
|
15
|
+
* @default "'i' if the icon is provided, 'span' otherwise"
|
|
15
16
|
*/
|
|
16
17
|
tag?: T,
|
|
17
18
|
/**
|
|
@@ -19,7 +20,7 @@ export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> ext
|
|
|
19
20
|
*
|
|
20
21
|
* @default 'circle'
|
|
21
22
|
*/
|
|
22
|
-
appearance?: 'circle' | 'square',
|
|
23
|
+
appearance?: 'circle' | 'square' | 'text',
|
|
23
24
|
/**
|
|
24
25
|
* Size of the box.
|
|
25
26
|
*
|
|
@@ -45,9 +46,21 @@ export interface BaseIconBoxProps<T extends IconBoxTag, G extends IconGroup> ext
|
|
|
45
46
|
|
|
46
47
|
export type IconBoxProps<T extends IconBoxTag, G extends IconGroup> = HTMLTag[T] & BaseIconBoxProps<T, G>
|
|
47
48
|
|
|
48
|
-
export function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outline'>(
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
export function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outline'>({
|
|
50
|
+
group,
|
|
51
|
+
icon,
|
|
52
|
+
tag,
|
|
53
|
+
colorScheme,
|
|
54
|
+
colorPalette,
|
|
55
|
+
appearance,
|
|
56
|
+
size,
|
|
57
|
+
className,
|
|
58
|
+
analytics,
|
|
59
|
+
onClick,
|
|
60
|
+
feedback,
|
|
61
|
+
children,
|
|
62
|
+
...props
|
|
63
|
+
}: IconBoxProps<T, G>) {
|
|
51
64
|
const citric = useCitricController()
|
|
52
65
|
|
|
53
66
|
const handleClick = useCallback((e: React.MouseEvent<any>) => {
|
|
@@ -56,19 +69,19 @@ export function IconBox<T extends IconBoxTag = 'i', G extends IconGroup = 'outli
|
|
|
56
69
|
else if (tag === 'a') citric?.onClickLink?.(e, analytics ?? false)
|
|
57
70
|
}, [tag])
|
|
58
71
|
|
|
59
|
-
const
|
|
72
|
+
const allProps = {
|
|
60
73
|
component: 'icon-box',
|
|
61
|
-
className: listToClass(['citric-icon', group || 'outline', icon, appearance, size, className]),
|
|
74
|
+
className: listToClass([icon && 'citric-icon', icon && (group || 'outline'), icon, appearance, size, className]),
|
|
62
75
|
colorScheme: colorScheme,
|
|
63
76
|
colorPalette: colorPalette,
|
|
64
77
|
'data-feedback': feedback || undefined,
|
|
65
78
|
onClick: ['button', 'a'].includes(tag ?? '') ? handleClick : onClick,
|
|
66
79
|
...props,
|
|
67
|
-
}
|
|
80
|
+
} as const
|
|
68
81
|
|
|
69
|
-
if (tag === 'a' && citric?.renderLink) return citric.renderLink(
|
|
82
|
+
if (tag === 'a' && citric?.renderLink) return citric.renderLink(asCitricProps(allProps))
|
|
70
83
|
|
|
71
|
-
return <CitricComponent tag={(tag || 'i') as any} {...
|
|
84
|
+
return <CitricComponent tag={(tag || (icon ? 'i' : 'span')) as any} {...allProps}>{children}</CitricComponent>
|
|
72
85
|
}
|
|
73
86
|
|
|
74
87
|
/**
|
package/src/index.ts
CHANGED
|
@@ -47,5 +47,5 @@ export * from './components/Text'
|
|
|
47
47
|
export * from './components/Textarea'
|
|
48
48
|
export * from './components/Tooltip'
|
|
49
49
|
export * from './context/CitricProvider'
|
|
50
|
-
export { CitricController } from './types'
|
|
50
|
+
export type { CitricController } from './types'
|
|
51
51
|
export * from './utils/ValueController'
|