@xyo-network/react-shared 2.38.16 → 2.38.17
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/cjs/components/Ellipsize.js +3 -3
- package/dist/cjs/components/Ellipsize.js.map +1 -1
- package/dist/cjs/contexts/diviner/Context.d.ts +3 -0
- package/dist/cjs/contexts/diviner/Context.d.ts.map +1 -0
- package/dist/cjs/contexts/diviner/Context.js +7 -0
- package/dist/cjs/contexts/diviner/Context.js.map +1 -0
- package/dist/cjs/contexts/diviner/Provider.d.ts +11 -0
- package/dist/cjs/contexts/diviner/Provider.d.ts.map +1 -0
- package/dist/cjs/contexts/diviner/Provider.js +29 -0
- package/dist/cjs/contexts/diviner/Provider.js.map +1 -0
- package/dist/cjs/contexts/diviner/State.d.ts +7 -0
- package/dist/cjs/contexts/diviner/State.d.ts.map +1 -0
- package/dist/cjs/contexts/diviner/State.js +3 -0
- package/dist/cjs/contexts/diviner/State.js.map +1 -0
- package/dist/cjs/contexts/diviner/index.d.ts +4 -0
- package/dist/cjs/contexts/diviner/index.d.ts.map +1 -0
- package/dist/cjs/contexts/diviner/index.js +7 -0
- package/dist/cjs/contexts/diviner/index.js.map +1 -0
- package/dist/cjs/contexts/index.d.ts +1 -0
- package/dist/cjs/contexts/index.d.ts.map +1 -1
- package/dist/cjs/contexts/index.js +1 -0
- package/dist/cjs/contexts/index.js.map +1 -1
- package/dist/docs.json +896 -489
- package/dist/esm/components/Ellipsize.js +3 -3
- package/dist/esm/components/Ellipsize.js.map +1 -1
- package/dist/esm/contexts/diviner/Context.d.ts +3 -0
- package/dist/esm/contexts/diviner/Context.d.ts.map +1 -0
- package/dist/esm/contexts/diviner/Context.js +3 -0
- package/dist/esm/contexts/diviner/Context.js.map +1 -0
- package/dist/esm/contexts/diviner/Provider.d.ts +11 -0
- package/dist/esm/contexts/diviner/Provider.d.ts.map +1 -0
- package/dist/esm/contexts/diviner/Provider.js +25 -0
- package/dist/esm/contexts/diviner/Provider.js.map +1 -0
- package/dist/esm/contexts/diviner/State.d.ts +7 -0
- package/dist/esm/contexts/diviner/State.d.ts.map +1 -0
- package/dist/esm/contexts/diviner/State.js +2 -0
- package/dist/esm/contexts/diviner/State.js.map +1 -0
- package/dist/esm/contexts/diviner/index.d.ts +4 -0
- package/dist/esm/contexts/diviner/index.d.ts.map +1 -0
- package/dist/esm/contexts/diviner/index.js +4 -0
- package/dist/esm/contexts/diviner/index.js.map +1 -0
- package/dist/esm/contexts/index.d.ts +1 -0
- package/dist/esm/contexts/index.d.ts.map +1 -1
- package/dist/esm/contexts/index.js +1 -0
- package/dist/esm/contexts/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Ellipsize.tsx +3 -3
- package/src/contexts/diviner/Context.tsx +3 -0
- package/src/contexts/diviner/Provider.tsx +41 -0
- package/src/contexts/diviner/State.ts +8 -0
- package/src/contexts/diviner/index.ts +3 -0
- package/src/contexts/index.ts +1 -0
|
@@ -43,7 +43,7 @@ const EllipsizeContentWrap = styled(Typography, {
|
|
|
43
43
|
right: 0,
|
|
44
44
|
textOverflow: 'ellipsis',
|
|
45
45
|
whiteSpace: 'nowrap',
|
|
46
|
-
...(ellipsisPosition === '
|
|
46
|
+
...(ellipsisPosition === 'start'
|
|
47
47
|
? {
|
|
48
48
|
direction: 'rtl',
|
|
49
49
|
textAlign: 'left',
|
|
@@ -60,10 +60,10 @@ const useClientHeight = () => {
|
|
|
60
60
|
}, []);
|
|
61
61
|
return { contentWrapHeight, contentWrapRef };
|
|
62
62
|
};
|
|
63
|
-
export const EllipsizeBoxInner = forwardRef(({ children, ellipsisPosition = '
|
|
63
|
+
export const EllipsizeBoxInner = forwardRef(({ children, ellipsisPosition = 'start', typographyProps, ...props }, ref) => {
|
|
64
64
|
// Allow syncing of :before pseudo element height with contentWrapHeight
|
|
65
65
|
const { contentWrapRef, contentWrapHeight } = useClientHeight();
|
|
66
|
-
return (_jsx(EllipsizeRoot, { beforeLineHeight: contentWrapHeight, ref: ref, ...props, children: _jsx(EllipsizeInnerWrap, { children: _jsx(EllipsizeContentWrap, { ref: contentWrapRef, component: 'span', ellipsisPosition: ellipsisPosition, ...typographyProps, children: children }) }) }));
|
|
66
|
+
return (_jsx(EllipsizeRoot, { beforeLineHeight: ref ? contentWrapHeight : undefined, ref: ref, ...props, children: _jsx(EllipsizeInnerWrap, { children: _jsx(EllipsizeContentWrap, { ref: contentWrapRef, component: 'span', ellipsisPosition: ellipsisPosition, ...typographyProps, children: children }) }) }));
|
|
67
67
|
});
|
|
68
68
|
EllipsizeBoxInner.displayName = 'EllipsizeBox';
|
|
69
69
|
export const EllipsizeBox = EllipsizeBoxInner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsize.js","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAA;AAElF,OAAc,EAAe,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7E;;GAEG;AAEH,MAAM,aAAa,GAAG,WAAW,CAAA;AAMjC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,EAAE;IAChC,IAAI,EAAE,aAAa;IACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,kBAAkB;IACxD,IAAI,EAAE,MAAM;CACb,CAAC,CAAqB,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,GAAG,EAAE;QACH,oGAAoG;QACpG,uGAAuG;QACvG,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,OAAO;YAChB,uGAAuG;YACvG,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,QAAQ;YACpB,0DAA0D;YAC1D,GAAG,CAAC,gBAAgB,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;SAC1D;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,EAAE;IACrC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,WAAW;CAClB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE;IAC9C,IAAI,EAAE,aAAa;IACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,kBAAkB;IACxD,IAAI,EAAE,aAAa;CACpB,CAAC,CAA+B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACxD,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,QAAQ;QACpB,GAAG,CAAC,gBAAgB,KAAK,
|
|
1
|
+
{"version":3,"file":"Ellipsize.js","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAA;AAElF,OAAc,EAAe,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7E;;GAEG;AAEH,MAAM,aAAa,GAAG,WAAW,CAAA;AAMjC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,EAAE;IAChC,IAAI,EAAE,aAAa;IACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,kBAAkB;IACxD,IAAI,EAAE,MAAM;CACb,CAAC,CAAqB,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,GAAG,EAAE;QACH,oGAAoG;QACpG,uGAAuG;QACvG,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,OAAO;YAChB,uGAAuG;YACvG,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,QAAQ;YACpB,0DAA0D;YAC1D,GAAG,CAAC,gBAAgB,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;SAC1D;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,EAAE;IACrC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,WAAW;CAClB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE;IAC9C,IAAI,EAAE,aAAa;IACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,kBAAkB;IACxD,IAAI,EAAE,aAAa;CACpB,CAAC,CAA+B,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACxD,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,QAAQ;QACpB,GAAG,CAAC,gBAAgB,KAAK,OAAO;YAC9B,CAAC,CAAC;gBACE,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,MAAM;aAClB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,EAAU,CAAA;IAEpE,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,IAAiB,EAAE,EAAE;QACvD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,oBAAoB,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;SAC/C;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAA;AAC9C,CAAC,CAAA;AAaD,MAAM,CAAC,MAAM,iBAAiB,GAA8C,UAAU,CACpF,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3E,wEAAwE;IACxE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,eAAe,EAAE,CAAA;IAE/D,OAAO,CACL,KAAC,aAAa,IAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,KAAM,KAAK,YACvF,KAAC,kBAAkB,cACjB,KAAC,oBAAoB,IAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,KAAM,eAAe,YAClH,QAAQ,GACY,GACJ,GACP,CACjB,CAAA;AACH,CAAC,CACF,CAAA;AAED,iBAAiB,CAAC,WAAW,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/diviner/Context.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,sBAAsB,6EAAiC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/diviner/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAO,EAAE,CAAC,eAAe,EAAK,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WithChildren } from '@xylabs/react-shared';
|
|
2
|
+
import { Context } from 'react';
|
|
3
|
+
import { ContextExProviderProps } from '../contextEx';
|
|
4
|
+
import { ResolvedDivinerState } from './State';
|
|
5
|
+
export interface DivinerProviderProps<D> extends ContextExProviderProps, WithChildren {
|
|
6
|
+
diviner?: D;
|
|
7
|
+
context: Context<ResolvedDivinerState<D>>;
|
|
8
|
+
}
|
|
9
|
+
/** Exposes a resolved diviner */
|
|
10
|
+
export declare const ResolvedDivinerProvider: <D>({ diviner: divinerProp, required, children, context }: DivinerProviderProps<D>) => JSX.Element;
|
|
11
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/diviner/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAuB,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SAAQ,sBAAsB,EAAE,YAAY;IACnF,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;CAC1C;AAED,iCAAiC;AACjC,eAAO,MAAM,uBAAuB,oGA4BnC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
/** Exposes a resolved diviner */
|
|
4
|
+
export const ResolvedDivinerProvider = ({ diviner: divinerProp, required = false, children, context }) => {
|
|
5
|
+
const [diviner, setDiviner] = useState(divinerProp);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (divinerProp) {
|
|
8
|
+
setDiviner(divinerProp);
|
|
9
|
+
}
|
|
10
|
+
}, [divinerProp, setDiviner]);
|
|
11
|
+
const resolveDiviner = () => {
|
|
12
|
+
if (divinerProp) {
|
|
13
|
+
return diviner === divinerProp ? diviner : undefined;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return diviner;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
return (_jsx(context.Provider, { value: {
|
|
20
|
+
diviner: resolveDiviner(),
|
|
21
|
+
provided: true,
|
|
22
|
+
setDiviner,
|
|
23
|
+
}, children: diviner ? children : required ? null : children }));
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/diviner/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAW,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAUpD,iCAAiC;AACjC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAA2B,EAAE,EAAE;IACpI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,WAAW,CAAC,CAAA;IAElE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,UAAU,CAAC,WAAW,CAAC,CAAA;SACxB;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;IAE7B,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,WAAW,EAAE;YACf,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;SACrD;aAAM;YACL,OAAO,OAAO,CAAA;SACf;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,OAAO,CAAC,QAAQ,IACf,KAAK,EAAE;YACL,OAAO,EAAE,cAAc,EAAE;YACzB,QAAQ,EAAE,IAAI;YACd,UAAU;SACX,YAEA,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAC/B,CACpB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import { ContextExState } from '../contextEx';
|
|
3
|
+
export interface ResolvedDivinerState<T> extends ContextExState {
|
|
4
|
+
diviner?: T;
|
|
5
|
+
setDiviner?: Dispatch<SetStateAction<T | undefined>>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=State.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/diviner/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SAAQ,cAAc;IAC7D,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,UAAU,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAA;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../../src/contexts/diviner/State.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/package.json
CHANGED
|
@@ -52,7 +52,7 @@ const EllipsizeContentWrap = styled(Typography, {
|
|
|
52
52
|
right: 0,
|
|
53
53
|
textOverflow: 'ellipsis',
|
|
54
54
|
whiteSpace: 'nowrap',
|
|
55
|
-
...(ellipsisPosition === '
|
|
55
|
+
...(ellipsisPosition === 'start'
|
|
56
56
|
? {
|
|
57
57
|
direction: 'rtl',
|
|
58
58
|
textAlign: 'left',
|
|
@@ -85,12 +85,12 @@ export interface EllipsizeBoxProps extends BoxProps {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
export const EllipsizeBoxInner: React.FC<WithChildren<EllipsizeBoxProps>> = forwardRef(
|
|
88
|
-
({ children, ellipsisPosition = '
|
|
88
|
+
({ children, ellipsisPosition = 'start', typographyProps, ...props }, ref) => {
|
|
89
89
|
// Allow syncing of :before pseudo element height with contentWrapHeight
|
|
90
90
|
const { contentWrapRef, contentWrapHeight } = useClientHeight()
|
|
91
91
|
|
|
92
92
|
return (
|
|
93
|
-
<EllipsizeRoot beforeLineHeight={contentWrapHeight} ref={ref} {...props}>
|
|
93
|
+
<EllipsizeRoot beforeLineHeight={ref ? contentWrapHeight : undefined} ref={ref} {...props}>
|
|
94
94
|
<EllipsizeInnerWrap>
|
|
95
95
|
<EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} {...typographyProps}>
|
|
96
96
|
{children}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { WithChildren } from '@xylabs/react-shared'
|
|
2
|
+
import { Context, useEffect, useState } from 'react'
|
|
3
|
+
|
|
4
|
+
import { ContextExProviderProps } from '../contextEx'
|
|
5
|
+
import { ResolvedDivinerState } from './State'
|
|
6
|
+
|
|
7
|
+
export interface DivinerProviderProps<D> extends ContextExProviderProps, WithChildren {
|
|
8
|
+
diviner?: D
|
|
9
|
+
context: Context<ResolvedDivinerState<D>>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Exposes a resolved diviner */
|
|
13
|
+
export const ResolvedDivinerProvider = <D,>({ diviner: divinerProp, required = false, children, context }: DivinerProviderProps<D>) => {
|
|
14
|
+
const [diviner, setDiviner] = useState<D | undefined>(divinerProp)
|
|
15
|
+
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (divinerProp) {
|
|
18
|
+
setDiviner(divinerProp)
|
|
19
|
+
}
|
|
20
|
+
}, [divinerProp, setDiviner])
|
|
21
|
+
|
|
22
|
+
const resolveDiviner = () => {
|
|
23
|
+
if (divinerProp) {
|
|
24
|
+
return diviner === divinerProp ? diviner : undefined
|
|
25
|
+
} else {
|
|
26
|
+
return diviner
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<context.Provider
|
|
32
|
+
value={{
|
|
33
|
+
diviner: resolveDiviner(),
|
|
34
|
+
provided: true,
|
|
35
|
+
setDiviner,
|
|
36
|
+
}}
|
|
37
|
+
>
|
|
38
|
+
{diviner ? children : required ? null : children}
|
|
39
|
+
</context.Provider>
|
|
40
|
+
)
|
|
41
|
+
}
|
package/src/contexts/index.ts
CHANGED