@tamagui/collection 2.0.0-rc.8 → 2.0.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/cjs/Collection.cjs +93 -82
- package/dist/cjs/Collection.native.js +101 -95
- package/dist/cjs/Collection.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/Collection.mjs +64 -55
- package/dist/esm/Collection.mjs.map +1 -1
- package/dist/esm/Collection.native.js +72 -68
- package/dist/esm/Collection.native.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -6
- package/dist/jsx/Collection.mjs +64 -55
- package/dist/jsx/Collection.mjs.map +1 -1
- package/dist/jsx/Collection.native.js +101 -95
- package/dist/jsx/Collection.native.js.map +1 -1
- package/dist/jsx/index.js +1 -1
- package/dist/jsx/index.js.map +1 -6
- package/dist/jsx/index.native.js +7 -5
- package/package.json +12 -15
- package/dist/cjs/Collection.js +0 -73
- package/dist/cjs/Collection.js.map +0 -6
- package/dist/cjs/index.js +0 -15
- package/dist/cjs/index.js.map +0 -6
- package/dist/esm/Collection.js +0 -53
- package/dist/esm/Collection.js.map +0 -6
- package/dist/jsx/Collection.js +0 -53
- package/dist/jsx/Collection.js.map +0 -6
package/dist/esm/Collection.mjs
CHANGED
|
@@ -5,75 +5,84 @@ import React from "react";
|
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
function createCollection(name) {
|
|
7
7
|
const {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
Provider: CollectionProviderImpl,
|
|
9
|
+
useStyledContext: useCollectionContext
|
|
10
|
+
} = createStyledContext({
|
|
11
|
+
collectionRef: {
|
|
12
|
+
current: void 0
|
|
13
|
+
},
|
|
14
|
+
itemMap: /* @__PURE__ */new Map()
|
|
15
|
+
}, "Toast");
|
|
16
|
+
const CollectionProvider = props => {
|
|
17
|
+
const {
|
|
18
|
+
scope,
|
|
19
|
+
children
|
|
20
|
+
} = props;
|
|
21
|
+
const ref = React.useRef(void 0);
|
|
22
|
+
const itemMap = React.useRef(/* @__PURE__ */new Map()).current;
|
|
23
|
+
return /* @__PURE__ */jsx(CollectionProviderImpl, {
|
|
24
|
+
scope,
|
|
25
|
+
itemMap,
|
|
26
|
+
collectionRef: ref,
|
|
27
|
+
children
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
30
|
CollectionProvider.displayName = "CollectionProvider";
|
|
31
|
-
const COLLECTION_SLOT_NAME = name + "CollectionSlot"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
31
|
+
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
32
|
+
const CollectionSlot = React.forwardRef((props, forwardedRef) => {
|
|
33
|
+
const {
|
|
34
|
+
scope,
|
|
35
|
+
children
|
|
36
|
+
} = props;
|
|
37
|
+
const context = useCollectionContext(scope);
|
|
38
|
+
const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
39
|
+
return /* @__PURE__ */jsx(Slot, {
|
|
40
|
+
ref: composedRefs,
|
|
41
|
+
children
|
|
43
42
|
});
|
|
43
|
+
});
|
|
44
44
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
45
|
-
const ITEM_SLOT_NAME = name + "CollectionItemSlot"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
46
|
+
const ITEM_DATA_ATTR = "data-collection-item";
|
|
47
|
+
const CollectionItemSlot = React.forwardRef((props, forwardedRef) => {
|
|
48
|
+
const {
|
|
49
|
+
scope,
|
|
50
|
+
children,
|
|
51
|
+
...itemData
|
|
52
|
+
} = props;
|
|
53
|
+
const ref = React.useRef(void 0);
|
|
54
|
+
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
55
|
+
const context = useCollectionContext(scope);
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
context.itemMap.set(ref, {
|
|
57
58
|
ref,
|
|
58
59
|
...itemData
|
|
59
|
-
}), () => {
|
|
60
|
-
context.itemMap.delete(ref);
|
|
61
|
-
})), /* @__PURE__ */jsx(Slot, {
|
|
62
|
-
[ITEM_DATA_ATTR]: "",
|
|
63
|
-
ref: composedRefs,
|
|
64
|
-
children
|
|
65
60
|
});
|
|
61
|
+
return () => void context.itemMap.delete(ref);
|
|
62
|
+
});
|
|
63
|
+
return /* @__PURE__ */jsx(Slot, {
|
|
64
|
+
...{
|
|
65
|
+
[ITEM_DATA_ATTR]: ""
|
|
66
|
+
},
|
|
67
|
+
ref: composedRefs,
|
|
68
|
+
children
|
|
66
69
|
});
|
|
70
|
+
});
|
|
67
71
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
68
72
|
function useCollection(scope) {
|
|
69
73
|
const context = useCollectionContext(scope);
|
|
70
|
-
|
|
71
|
-
if (!isWeb)
|
|
74
|
+
const getItems = React.useCallback(() => {
|
|
75
|
+
if (!isWeb) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
72
78
|
const collectionNode = context.collectionRef.current;
|
|
73
79
|
if (!collectionNode) return [];
|
|
74
80
|
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
75
|
-
|
|
81
|
+
const items = Array.from(context.itemMap.values());
|
|
82
|
+
const orderedItems = items.sort((a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));
|
|
83
|
+
return orderedItems;
|
|
76
84
|
}, [context.collectionRef, context.itemMap]);
|
|
85
|
+
return getItems;
|
|
77
86
|
}
|
|
78
87
|
return [{
|
|
79
88
|
Provider: CollectionProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useComposedRefs","isWeb","Slot","createStyledContext","React","jsx","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","useCallback","collectionNode","orderedNodes","Array","from","querySelectorAll","values","sort","a","b","indexOf","ItemSlot"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,KAAA,QAAa;AAEtB,SAASC,IAAA,EAAMC,mBAAA,QAA2B;AAC1C,OAAOC,KAAA,MAAW;AAkDZ,SAAAC,GAAA;AAvCN,SAASC,iBACPC,IAAA,EACA;EAmBA,MAAM;
|
|
1
|
+
{"version":3,"names":["useComposedRefs","isWeb","Slot","createStyledContext","React","jsx","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","getItems","useCallback","collectionNode","orderedNodes","Array","from","querySelectorAll","items","values","orderedItems","sort","a","b","indexOf","ItemSlot"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -5,81 +5,85 @@ import { Slot, createStyledContext } from "@tamagui/core";
|
|
|
5
5
|
import React from "react";
|
|
6
6
|
function createCollection(name) {
|
|
7
7
|
var {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
Provider: CollectionProviderImpl,
|
|
9
|
+
useStyledContext: useCollectionContext
|
|
10
|
+
} = createStyledContext({
|
|
11
|
+
collectionRef: {
|
|
12
|
+
current: void 0
|
|
13
|
+
},
|
|
14
|
+
itemMap: /* @__PURE__ */new Map()
|
|
15
|
+
}, "Toast");
|
|
16
|
+
var CollectionProvider = function (props) {
|
|
17
|
+
var {
|
|
18
|
+
scope,
|
|
19
|
+
children
|
|
20
|
+
} = props;
|
|
21
|
+
var ref = React.useRef(void 0);
|
|
22
|
+
var itemMap = React.useRef(/* @__PURE__ */new Map()).current;
|
|
23
|
+
return /* @__PURE__ */_jsx(CollectionProviderImpl, {
|
|
24
|
+
scope,
|
|
25
|
+
itemMap,
|
|
26
|
+
collectionRef: ref,
|
|
27
|
+
children
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
30
|
CollectionProvider.displayName = "CollectionProvider";
|
|
31
|
-
var COLLECTION_SLOT_NAME = name + "CollectionSlot"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
31
|
+
var COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
32
|
+
var CollectionSlot = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
|
|
33
|
+
var {
|
|
34
|
+
scope,
|
|
35
|
+
children
|
|
36
|
+
} = props;
|
|
37
|
+
var context = useCollectionContext(scope);
|
|
38
|
+
var composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
39
|
+
return /* @__PURE__ */_jsx(Slot, {
|
|
40
|
+
ref: composedRefs,
|
|
41
|
+
children
|
|
43
42
|
});
|
|
43
|
+
});
|
|
44
44
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
45
|
-
var ITEM_SLOT_NAME = name + "CollectionItemSlot"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}), function () {
|
|
61
|
-
context.itemMap.delete(ref);
|
|
62
|
-
};
|
|
63
|
-
}), /* @__PURE__ */_jsx(Slot, {
|
|
64
|
-
[ITEM_DATA_ATTR]: "",
|
|
65
|
-
ref: composedRefs,
|
|
66
|
-
children
|
|
45
|
+
var ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
46
|
+
var ITEM_DATA_ATTR = "data-collection-item";
|
|
47
|
+
var CollectionItemSlot = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
|
|
48
|
+
var {
|
|
49
|
+
scope,
|
|
50
|
+
children,
|
|
51
|
+
...itemData
|
|
52
|
+
} = props;
|
|
53
|
+
var ref = React.useRef(void 0);
|
|
54
|
+
var composedRefs = useComposedRefs(forwardedRef, ref);
|
|
55
|
+
var context = useCollectionContext(scope);
|
|
56
|
+
React.useEffect(function () {
|
|
57
|
+
context.itemMap.set(ref, {
|
|
58
|
+
ref,
|
|
59
|
+
...itemData
|
|
67
60
|
});
|
|
61
|
+
return function () {
|
|
62
|
+
return void context.itemMap.delete(ref);
|
|
63
|
+
};
|
|
68
64
|
});
|
|
65
|
+
return /* @__PURE__ */_jsx(Slot, {
|
|
66
|
+
[ITEM_DATA_ATTR]: "",
|
|
67
|
+
ref: composedRefs,
|
|
68
|
+
children
|
|
69
|
+
});
|
|
70
|
+
});
|
|
69
71
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
70
72
|
function useCollection(scope) {
|
|
71
|
-
var context = useCollectionContext(scope)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return
|
|
82
|
-
}
|
|
73
|
+
var context = useCollectionContext(scope);
|
|
74
|
+
var getItems = React.useCallback(function () {
|
|
75
|
+
if (!isWeb) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
var collectionNode = context.collectionRef.current;
|
|
79
|
+
if (!collectionNode) return [];
|
|
80
|
+
var orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
81
|
+
var items = Array.from(context.itemMap.values());
|
|
82
|
+
var orderedItems = items.sort(function (a, b) {
|
|
83
|
+
return orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current);
|
|
84
|
+
});
|
|
85
|
+
return orderedItems;
|
|
86
|
+
}, [context.collectionRef, context.itemMap]);
|
|
83
87
|
return getItems;
|
|
84
88
|
}
|
|
85
89
|
return [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","useComposedRefs","isWeb","Slot","createStyledContext","React","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","getItems","useCallback"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAChC,SAASC,eAAa;AAEtB,SAASC,KAAA,QAAM,oBAA2B;AAC1C,SAAOC,IAAA,EAAAC,mBAAW;AAkDZ,OAAAC,KAAA;AAvCN,SAASC,iBACPC,IAAA,EACA;EAmBA;
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","useComposedRefs","isWeb","Slot","createStyledContext","React","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","getItems","useCallback","collectionNode"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAChC,SAASC,eAAa;AAEtB,SAASC,KAAA,QAAM,oBAA2B;AAC1C,SAAOC,IAAA,EAAAC,mBAAW;AAkDZ,OAAAC,KAAA;AAvCN,SAASC,iBACPC,IAAA,EACA;EAmBA;IAAMC,QAAE,EAAAC,sBAAU;IAAAC,gBAAwB,EAAAC;EAAkB,IAAqBP,mBAC/E;IACEQ,aAAA;MACEC,OAAA;IAAoC;IAEtCC,OAAA,qBAAAC,GAAA;EAAA,GACA;EACF,IAAAC,kBAAA,YAAAA,CAAAC,KAAA;IAEF,IAAM;MAAAC,KAAA;MAAAC;IAAA,IAIDF,KAAA;IACH,IAAAG,GAAM,GAAEf,KAAO,CAAAgB,MAAA,MAAa;IAC5B,IAAAP,OAAM,GAAMT,KAAM,CAAAgB,MAA0B,gBAAS,IAAAN,GAAA,IAAAF,OAAA;IACrD,OAAM,eAAgBb,IAAA,CAAAS,sBAAoC;MAC1DS,KACE;MAIJJ,OAAA;MAEAF,aAAA,EAAmBQ,GAAA;MAMnBD;IAEA;EAIE;EACAH,kBAAgB,CAAAM,WAAA,uBAA0B;EAC1C,IAAAC,oBAAqB,GAAAhB,IAAA,mBAAgB;EACrC,IAAAiB,cAAO,kBAAMnB,KAAK,CAAAoB,UAAA,WAAeR,KAAS,EAAAS,YAAA;IAC3C;MAAAR,KAAA;MAAAC;IAAA,IAAAF,KAAA;IAED,IAAAU,OAAA,GAAehB,oBAAc,CAAAO,KAAA;IAM7B,IAAMU,YAAA,GAAA3B,eAAwB,CAAAyB,YAAA,EAAAC,OAAA,CAAAf,aAAA;IAC9B,OAAM,eAAiBZ,IAAA,CAAAG,IAAA;MAMvBiB,GAAM,EAAAQ,YAAA;MAIJT;IACA;EACA;EACAK,cAAM,CAAAF,WAAU,GAAAC,oBAA0B;EAE1C,IAAAM,cAAgB,GAAAtB,IAAM;EACpB,IAAAuB,cAAQ,GAAQ,sBAAoB;EACpC,IAAAC,kBAAkB,kBAAgB1B,KAAO,CAAAoB,UAAG,WAAAR,KAAA,EAAAS,YAAA;IAC9C,IAAC;MAAAR,KAAA;MAAAC,QAAA;MAAA,GAAAa;IAAA,IAAAf,KAAA;IAED,IAAAG,GACE,GAAAf,KAAA,CAAAgB,MAAA,MAAC;IAIJ,IAAAO,YAAA,GAAA3B,eAAA,CAAAyB,YAAA,EAAAN,GAAA;IAED,IAAAO,OAAA,GAAAhB,oBAAiC,CAAAO,KAAA;IAMjCb,KAAA,CAAA4B,SAAS,aAAc;MACrBN,OAAM,CAAAb,OAAU,CAAAoB,GAAA,CAAAd,GAAA;QAEhBA,GAAM;QACJ,GAAKY;MACH;MACF;QAEA,OAAM,KAAAL,OAAA,CAAAb,OAAiB,CAAAqB,MAAQ,CAAAf,GAAA;MAC/B;IACA;IAA2B,OACzB,eAAepB,IAAA,CAAAG,IAAA;MACjB,CAAA2B,cAAA;MACAV,GAAA,EAAAQ,YAAc;MACdT;IAA2B;EAG2B;EAEtDY,kBAAO,CAAAT,WAAA,GAAAO,cAAA;EAAA,SACLO,aAAQA,CAAAlB,KAAA,EAAe;IAE3B,IAAAS,OAAO,GAAAhB,oBAAA,CAAAO,KAAA;IACT,IAAAmB,QAAA,GAAAhC,KAAA,CAAAiC,WAAA;MAEA,IAAO,CAAApC,KAAA;QACH,SAAU;MACZ;MACF,IAAAqC,cAAA,GAAAZ,OAAA,CAAAf,aAAA,CAAAC,OAAA;MACF,KAAA0B,cAAA","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./Collection";
|
|
1
|
+
export * from "./Collection.mjs";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
package/dist/jsx/Collection.mjs
CHANGED
|
@@ -5,75 +5,84 @@ import React from "react";
|
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
function createCollection(name) {
|
|
7
7
|
const {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
Provider: CollectionProviderImpl,
|
|
9
|
+
useStyledContext: useCollectionContext
|
|
10
|
+
} = createStyledContext({
|
|
11
|
+
collectionRef: {
|
|
12
|
+
current: void 0
|
|
13
|
+
},
|
|
14
|
+
itemMap: /* @__PURE__ */new Map()
|
|
15
|
+
}, "Toast");
|
|
16
|
+
const CollectionProvider = props => {
|
|
17
|
+
const {
|
|
18
|
+
scope,
|
|
19
|
+
children
|
|
20
|
+
} = props;
|
|
21
|
+
const ref = React.useRef(void 0);
|
|
22
|
+
const itemMap = React.useRef(/* @__PURE__ */new Map()).current;
|
|
23
|
+
return /* @__PURE__ */jsx(CollectionProviderImpl, {
|
|
24
|
+
scope,
|
|
25
|
+
itemMap,
|
|
26
|
+
collectionRef: ref,
|
|
27
|
+
children
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
30
|
CollectionProvider.displayName = "CollectionProvider";
|
|
31
|
-
const COLLECTION_SLOT_NAME = name + "CollectionSlot"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
31
|
+
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
32
|
+
const CollectionSlot = React.forwardRef((props, forwardedRef) => {
|
|
33
|
+
const {
|
|
34
|
+
scope,
|
|
35
|
+
children
|
|
36
|
+
} = props;
|
|
37
|
+
const context = useCollectionContext(scope);
|
|
38
|
+
const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
39
|
+
return /* @__PURE__ */jsx(Slot, {
|
|
40
|
+
ref: composedRefs,
|
|
41
|
+
children
|
|
43
42
|
});
|
|
43
|
+
});
|
|
44
44
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
45
|
-
const ITEM_SLOT_NAME = name + "CollectionItemSlot"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
46
|
+
const ITEM_DATA_ATTR = "data-collection-item";
|
|
47
|
+
const CollectionItemSlot = React.forwardRef((props, forwardedRef) => {
|
|
48
|
+
const {
|
|
49
|
+
scope,
|
|
50
|
+
children,
|
|
51
|
+
...itemData
|
|
52
|
+
} = props;
|
|
53
|
+
const ref = React.useRef(void 0);
|
|
54
|
+
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
55
|
+
const context = useCollectionContext(scope);
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
context.itemMap.set(ref, {
|
|
57
58
|
ref,
|
|
58
59
|
...itemData
|
|
59
|
-
}), () => {
|
|
60
|
-
context.itemMap.delete(ref);
|
|
61
|
-
})), /* @__PURE__ */jsx(Slot, {
|
|
62
|
-
[ITEM_DATA_ATTR]: "",
|
|
63
|
-
ref: composedRefs,
|
|
64
|
-
children
|
|
65
60
|
});
|
|
61
|
+
return () => void context.itemMap.delete(ref);
|
|
62
|
+
});
|
|
63
|
+
return /* @__PURE__ */jsx(Slot, {
|
|
64
|
+
...{
|
|
65
|
+
[ITEM_DATA_ATTR]: ""
|
|
66
|
+
},
|
|
67
|
+
ref: composedRefs,
|
|
68
|
+
children
|
|
66
69
|
});
|
|
70
|
+
});
|
|
67
71
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
68
72
|
function useCollection(scope) {
|
|
69
73
|
const context = useCollectionContext(scope);
|
|
70
|
-
|
|
71
|
-
if (!isWeb)
|
|
74
|
+
const getItems = React.useCallback(() => {
|
|
75
|
+
if (!isWeb) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
72
78
|
const collectionNode = context.collectionRef.current;
|
|
73
79
|
if (!collectionNode) return [];
|
|
74
80
|
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
75
|
-
|
|
81
|
+
const items = Array.from(context.itemMap.values());
|
|
82
|
+
const orderedItems = items.sort((a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));
|
|
83
|
+
return orderedItems;
|
|
76
84
|
}, [context.collectionRef, context.itemMap]);
|
|
85
|
+
return getItems;
|
|
77
86
|
}
|
|
78
87
|
return [{
|
|
79
88
|
Provider: CollectionProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useComposedRefs","isWeb","Slot","createStyledContext","React","jsx","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","useCallback","collectionNode","orderedNodes","Array","from","querySelectorAll","values","sort","a","b","indexOf","ItemSlot"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,KAAA,QAAa;AAEtB,SAASC,IAAA,EAAMC,mBAAA,QAA2B;AAC1C,OAAOC,KAAA,MAAW;AAkDZ,SAAAC,GAAA;AAvCN,SAASC,iBACPC,IAAA,EACA;EAmBA,MAAM;
|
|
1
|
+
{"version":3,"names":["useComposedRefs","isWeb","Slot","createStyledContext","React","jsx","createCollection","name","Provider","CollectionProviderImpl","useStyledContext","useCollectionContext","collectionRef","current","itemMap","Map","CollectionProvider","props","scope","children","ref","useRef","displayName","COLLECTION_SLOT_NAME","CollectionSlot","forwardRef","forwardedRef","context","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useEffect","set","delete","useCollection","getItems","useCallback","collectionNode","orderedNodes","Array","from","querySelectorAll","items","values","orderedItems","sort","a","b","indexOf","ItemSlot"],"sources":["../../src/Collection.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|