@cdx-ui/primitives 0.3.2 → 0.3.3

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.
Files changed (49) hide show
  1. package/lib/commonjs/index.js +12 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/insight/InsightRoot.js +159 -0
  4. package/lib/commonjs/insight/InsightRoot.js.map +1 -0
  5. package/lib/commonjs/insight/context.js +11 -0
  6. package/lib/commonjs/insight/context.js.map +1 -0
  7. package/lib/commonjs/insight/index.js +26 -0
  8. package/lib/commonjs/insight/index.js.map +1 -0
  9. package/lib/commonjs/insight/types.js +6 -0
  10. package/lib/commonjs/insight/types.js.map +1 -0
  11. package/lib/commonjs/list-item/ListItemRoot.js +2 -18
  12. package/lib/commonjs/list-item/ListItemRoot.js.map +1 -1
  13. package/lib/commonjs/utils/splitContainerProps.js +26 -0
  14. package/lib/commonjs/utils/splitContainerProps.js.map +1 -0
  15. package/lib/module/index.js +1 -0
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/insight/InsightRoot.js +154 -0
  18. package/lib/module/insight/InsightRoot.js.map +1 -0
  19. package/lib/module/insight/context.js +5 -0
  20. package/lib/module/insight/context.js.map +1 -0
  21. package/lib/module/insight/index.js +5 -0
  22. package/lib/module/insight/index.js.map +1 -0
  23. package/lib/module/insight/types.js +4 -0
  24. package/lib/module/insight/types.js.map +1 -0
  25. package/lib/module/list-item/ListItemRoot.js +1 -17
  26. package/lib/module/list-item/ListItemRoot.js.map +1 -1
  27. package/lib/module/utils/splitContainerProps.js +22 -0
  28. package/lib/module/utils/splitContainerProps.js.map +1 -0
  29. package/lib/typescript/index.d.ts +1 -0
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/lib/typescript/insight/InsightRoot.d.ts +6 -0
  32. package/lib/typescript/insight/InsightRoot.d.ts.map +1 -0
  33. package/lib/typescript/insight/context.d.ts +6 -0
  34. package/lib/typescript/insight/context.d.ts.map +1 -0
  35. package/lib/typescript/insight/index.d.ts +4 -0
  36. package/lib/typescript/insight/index.d.ts.map +1 -0
  37. package/lib/typescript/insight/types.d.ts +44 -0
  38. package/lib/typescript/insight/types.d.ts.map +1 -0
  39. package/lib/typescript/list-item/ListItemRoot.d.ts.map +1 -1
  40. package/lib/typescript/utils/splitContainerProps.d.ts +9 -0
  41. package/lib/typescript/utils/splitContainerProps.d.ts.map +1 -0
  42. package/package.json +3 -3
  43. package/src/index.ts +1 -0
  44. package/src/insight/InsightRoot.tsx +162 -0
  45. package/src/insight/context.tsx +5 -0
  46. package/src/insight/index.ts +11 -0
  47. package/src/insight/types.ts +51 -0
  48. package/src/list-item/ListItemRoot.tsx +1 -14
  49. package/src/utils/splitContainerProps.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useMemo","Pressable","View","composeEventHandlers","useFocus","useFocusRing","useHover","usePress","Slot","dataAttributes","mergeDataAttributes","splitContainerProps","InsightProvider","jsx","_jsx","jsxs","_jsxs","InsightRoot","props","ref","layout","asChild","children","onPress","isDisabled","accessory","pressableClassName","style","role","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","restProps","isPressable","asChildElement","isValidElement","isSplit","pressState","isPressed","pressProps","hoverProps","isHovered","isFocused","focusProps","isFocusVisible","focusRingProps","contextValue","interactionAttributes","active","hover","focus","focusVisible","disabled","undefined","onFocus","onFocusProp","onBlur","onBlurProp","accessibilityState","accessibilityStateProp","pressRegionProps","container","region","regionProps","className","RegionComp","value","Comp","displayName"],"sourceRoot":"../../../src","sources":["insight/InsightRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { createContext } from '@cdx-ui/utils';
4
+ export const [InsightProvider, useInsightContext] = createContext('InsightContext');
5
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","InsightProvider","useInsightContext"],"sourceRoot":"../../../src","sources":["insight/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAG7C,OAAO,MAAM,CAACC,eAAe,EAAEC,iBAAiB,CAAC,GAC/CF,aAAa,CAAuB,gBAAgB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { InsightProvider, useInsightContext } from './context';
4
+ export { InsightRoot } from './InsightRoot';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InsightProvider","useInsightContext","InsightRoot"],"sourceRoot":"../../../src","sources":["insight/index.ts"],"mappings":";;AASA,SAASA,eAAe,EAAEC,iBAAiB,QAAQ,WAAW;AAC9D,SAASC,WAAW,QAA+B,eAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["insight/types.ts"],"mappings":"","ignoreList":[]}
@@ -7,6 +7,7 @@ import { useFocus, useFocusRing } from '@react-native-aria/focus';
7
7
  import { useHover, usePress } from '@react-native-aria/interactions';
8
8
  import { Slot } from '../slot';
9
9
  import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
10
+ import { splitContainerProps } from '../utils/splitContainerProps';
10
11
  import { ListItemProvider } from './context';
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
13
  function rowStyleForCrossAlign(crossAlign) {
@@ -16,23 +17,6 @@ function rowStyleForCrossAlign(crossAlign) {
16
17
  alignItems: crossAlign === 'start' ? 'flex-start' : 'center'
17
18
  };
18
19
  }
19
-
20
- /** Splits the props a split row's container keeps (`className`, data attributes) from the rest. */
21
- function splitContainerProps(props) {
22
- const container = {};
23
- const region = {};
24
- for (const key in props) {
25
- if (key === 'className' || key === 'dataSet' || key.startsWith('data-')) {
26
- container[key] = props[key];
27
- } else {
28
- region[key] = props[key];
29
- }
30
- }
31
- return {
32
- container,
33
- region
34
- };
35
- }
36
20
  export const ListItemRoot = /*#__PURE__*/forwardRef(({
37
21
  asChild = false,
38
22
  children,
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useMemo","Pressable","View","composeEventHandlers","useFocus","useFocusRing","useHover","usePress","Slot","dataAttributes","mergeDataAttributes","ListItemProvider","jsx","_jsx","jsxs","_jsxs","rowStyleForCrossAlign","crossAlign","flexDirection","alignSelf","alignItems","splitContainerProps","props","container","region","key","startsWith","ListItemRoot","asChild","children","onPress","isDisabled","style","accessory","accessoryPosition","pressableClassName","pressableStyle","restProps","ref","asChildInteractive","isValidElement","isPressableRoot","isSplit","tracksState","childDisabled","disabled","resolvedDisabled","pressState","isPressed","pressProps","hoverProps","isHovered","isFocused","focusProps","isFocusVisible","focusRingProps","contextValue","hover","focus","active","focusVisible","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp","otherProps","regionProps","accessibilityState","className","pressable","value","slotMergeProps","undefined","displayName"],"sourceRoot":"../../../src","sources":["list-item/ListItemRoot.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useMemo","Pressable","View","composeEventHandlers","useFocus","useFocusRing","useHover","usePress","Slot","dataAttributes","mergeDataAttributes","splitContainerProps","ListItemProvider","jsx","_jsx","jsxs","_jsxs","rowStyleForCrossAlign","crossAlign","flexDirection","alignSelf","alignItems","ListItemRoot","asChild","children","onPress","isDisabled","style","accessory","accessoryPosition","pressableClassName","pressableStyle","restProps","ref","asChildInteractive","isValidElement","isPressableRoot","isSplit","tracksState","childDisabled","props","disabled","resolvedDisabled","pressState","isPressed","pressProps","hoverProps","isHovered","isFocused","focusProps","isFocusVisible","focusRingProps","contextValue","hover","focus","active","focusVisible","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp","otherProps","container","region","regionProps","accessibilityState","className","pressable","value","slotMergeProps","undefined","displayName"],"sourceRoot":"../../../src","sources":["list-item/ListItemRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Splits the props a split root's container keeps (`className`, data attributes) from the ones
5
+ * its press region receives.
6
+ */
7
+ export function splitContainerProps(props) {
8
+ const container = {};
9
+ const region = {};
10
+ for (const key in props) {
11
+ if (key === 'className' || key === 'dataSet' || key.startsWith('data-')) {
12
+ container[key] = props[key];
13
+ } else {
14
+ region[key] = props[key];
15
+ }
16
+ }
17
+ return {
18
+ container,
19
+ region
20
+ };
21
+ }
22
+ //# sourceMappingURL=splitContainerProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["splitContainerProps","props","container","region","key","startsWith"],"sourceRoot":"../../../src","sources":["utils/splitContainerProps.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAACC,KAA8B,EAAE;EAClE,MAAMC,SAAkC,GAAG,CAAC,CAAC;EAC7C,MAAMC,MAA+B,GAAG,CAAC,CAAC;EAC1C,KAAK,MAAMC,GAAG,IAAIH,KAAK,EAAE;IACvB,IAAIG,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,SAAS,IAAIA,GAAG,CAACC,UAAU,CAAC,OAAO,CAAC,EAAE;MACvEH,SAAS,CAACE,GAAG,CAAC,GAAGH,KAAK,CAACG,GAAG,CAAC;IAC7B,CAAC,MAAM;MACLD,MAAM,CAACC,GAAG,CAAC,GAAGH,KAAK,CAACG,GAAG,CAAC;IAC1B;EACF;EACA,OAAO;IAAEF,SAAS;IAAEC;EAAO,CAAC;AAC9B","ignoreList":[]}
@@ -15,6 +15,7 @@ export * from './field';
15
15
  export * from './form';
16
16
  export * from './full-window-overlay';
17
17
  export * from './input';
18
+ export * from './insight';
18
19
  export * from './otp-input';
19
20
  export * from './date-field';
20
21
  export * from './calendar';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,KAAK,UAAU,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC;AACnB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,KAAK,UAAU,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC;AACnB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import type { IInsightProps } from './types';
4
+ export type InsightRootProps = IInsightProps;
5
+ export declare const InsightRoot: React.ForwardRefExoticComponent<IInsightProps & React.RefAttributes<View>>;
6
+ //# sourceMappingURL=InsightRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightRoot.d.ts","sourceRoot":"","sources":["../../../src/insight/InsightRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAa,IAAI,EAAuC,MAAM,cAAc,CAAC;AAQpF,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAM7C,eAAO,MAAM,WAAW,4EAyItB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IInsightContextValue } from './types';
2
+ export declare const InsightProvider: import("react").FunctionComponent<{
3
+ children: import("react").ReactNode;
4
+ value: IInsightContextValue;
5
+ }>, useInsightContext: () => IInsightContextValue;
6
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/insight/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAO,eAAe;;;IAAE,iBAAiB,4BACO,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { IInsightContextValue, IInsightDetailProps, IInsightPressablePassthrough, IInsightProps, IInsightSummaryProps, InsightLayout, } from './types';
2
+ export { InsightProvider, useInsightContext } from './context';
3
+ export { InsightRoot, type InsightRootProps } from './InsightRoot';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/insight/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,EACpB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { PressableProps, ViewProps } from 'react-native';
3
+ export type InsightLayout = 'summary' | 'detail';
4
+ export type IInsightPressablePassthrough = Partial<Pick<PressableProps, 'onPressIn' | 'onPressOut' | 'onHoverIn' | 'onHoverOut'>>;
5
+ interface IInsightBaseProps extends ViewProps {
6
+ /** Merge props onto a single child instead of rendering `View` or `Pressable`. */
7
+ asChild?: boolean;
8
+ /**
9
+ * Interactive control that must sit beside the press region, never inside it (the styled
10
+ * layer's close button). On a pressable summary the root renders a non-interactive container
11
+ * holding the press region and the accessory as siblings. The container receives
12
+ * `className`, `style`, and data attributes, and mirrors the region's interaction state as
13
+ * `data-*`; the region receives `ref` and every other prop, so `ref` always targets the
14
+ * focusable press region of a pressable root. A static root renders the accessory after
15
+ * `children` and keeps `ref` on its `View`.
16
+ */
17
+ accessory?: ReactNode;
18
+ /** Class names for the press region when `accessory` splits the root. */
19
+ pressableClassName?: string;
20
+ }
21
+ export interface IInsightSummaryProps extends IInsightBaseProps, IInsightPressablePassthrough {
22
+ /**
23
+ * Inline card that navigates elsewhere when pressed.
24
+ * @default 'summary'
25
+ */
26
+ layout?: 'summary';
27
+ /** When set, the root renders a press region with `role="button"`. */
28
+ onPress?: PressableProps['onPress'];
29
+ /** Suppresses `onPress` and marks the press region disabled. */
30
+ isDisabled?: boolean;
31
+ }
32
+ export interface IInsightDetailProps extends IInsightBaseProps {
33
+ /** Static container. It holds its own actions, so it is never pressable. */
34
+ layout: 'detail';
35
+ }
36
+ /** Discriminated union: `layout` narrows the press props to the summary layout. */
37
+ export type IInsightProps = IInsightSummaryProps | IInsightDetailProps;
38
+ export interface IInsightContextValue {
39
+ layout: InsightLayout;
40
+ isPressed: boolean;
41
+ isPressable: boolean;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/insight/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,CAC9E,CAAC;AAEF,UAAU,iBAAkB,SAAQ,SAAS;IAC3C,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB,EAAE,4BAA4B;IAC3F;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemRoot.d.ts","sourceRoot":"","sources":["../../../src/list-item/ListItemRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAa,IAAI,EAAuC,MAAM,cAAc,CAAC;AAQpF,OAAO,KAAK,EAAiC,cAAc,EAAsB,MAAM,SAAS,CAAC;AAwBjG,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CAAG;AAE5D,eAAO,MAAM,YAAY,gFA6OxB,CAAC"}
1
+ {"version":3,"file":"ListItemRoot.d.ts","sourceRoot":"","sources":["../../../src/list-item/ListItemRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAa,IAAI,EAAuC,MAAM,cAAc,CAAC;AASpF,OAAO,KAAK,EAAiC,cAAc,EAAsB,MAAM,SAAS,CAAC;AAUjG,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CAAG;AAE5D,eAAO,MAAM,YAAY,gFA6OxB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Splits the props a split root's container keeps (`className`, data attributes) from the ones
3
+ * its press region receives.
4
+ */
5
+ export declare function splitContainerProps(props: Record<string, unknown>): {
6
+ container: Record<string, unknown>;
7
+ region: Record<string, unknown>;
8
+ };
9
+ //# sourceMappingURL=splitContainerProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitContainerProps.d.ts","sourceRoot":"","sources":["../../../src/utils/splitContainerProps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;EAWjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/primitives",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -69,8 +69,8 @@
69
69
  "@react-stately/disclosure": "3.1.1",
70
70
  "@react-stately/radio": "3.12.0",
71
71
  "@react-stately/toggle": "3.9.4",
72
- "@cdx-ui/formatters": "0.3.2",
73
- "@cdx-ui/utils": "0.3.2"
72
+ "@cdx-ui/formatters": "0.3.3",
73
+ "@cdx-ui/utils": "0.3.3"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/react": "19.2.14",
package/src/index.ts CHANGED
@@ -15,6 +15,7 @@ export * from './field';
15
15
  export * from './form';
16
16
  export * from './full-window-overlay';
17
17
  export * from './input';
18
+ export * from './insight';
18
19
  export * from './otp-input';
19
20
  export * from './date-field';
20
21
  export * from './calendar';
@@ -0,0 +1,162 @@
1
+ import React, { forwardRef, useMemo, type ComponentRef } from 'react';
2
+ import { Pressable, View, type PressableProps, type ViewProps } from 'react-native';
3
+ import { composeEventHandlers } from '@cdx-ui/utils';
4
+ import { useFocus, useFocusRing } from '@react-native-aria/focus';
5
+ import { useHover, usePress } from '@react-native-aria/interactions';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { splitContainerProps } from '../utils/splitContainerProps';
9
+ import { InsightProvider } from './context';
10
+ import type {
11
+ IInsightContextValue,
12
+ IInsightProps,
13
+ IInsightSummaryProps,
14
+ InsightLayout,
15
+ } from './types';
16
+
17
+ export type InsightRootProps = IInsightProps;
18
+
19
+ type InsightRootRuntimeProps = Omit<IInsightSummaryProps, 'layout'> & {
20
+ layout?: InsightLayout;
21
+ };
22
+
23
+ export const InsightRoot = forwardRef<ComponentRef<typeof View>, InsightRootProps>((props, ref) => {
24
+ const {
25
+ layout = 'summary',
26
+ asChild = false,
27
+ children,
28
+ onPress,
29
+ isDisabled = false,
30
+ accessory,
31
+ pressableClassName,
32
+ style,
33
+ role,
34
+ onPressIn: onPressInProp,
35
+ onPressOut: onPressOutProp,
36
+ onHoverIn: onHoverInProp,
37
+ onHoverOut: onHoverOutProp,
38
+ ...restProps
39
+ } = props as InsightRootRuntimeProps;
40
+
41
+ const isPressable = layout === 'summary' && !!onPress;
42
+ const asChildElement = asChild && React.isValidElement(children);
43
+ const isSplit = accessory != null && (isPressable || asChildElement);
44
+
45
+ const pressState = usePress({ isDisabled: !isPressable || isDisabled });
46
+ const isPressed = isPressable && pressState.isPressed;
47
+ const pressProps = pressState.pressProps as Pick<PressableProps, 'onPressIn' | 'onPressOut'>;
48
+ const { hoverProps, isHovered } = useHover();
49
+ const { isFocused, focusProps } = useFocus();
50
+ const { isFocusVisible, focusProps: focusRingProps } = useFocusRing() as {
51
+ isFocusVisible: boolean;
52
+ focusProps: typeof focusProps;
53
+ };
54
+
55
+ const contextValue = useMemo<IInsightContextValue>(
56
+ () => ({ layout, isPressed, isPressable }),
57
+ [layout, isPressed, isPressable],
58
+ );
59
+
60
+ const interactionAttributes = isPressable
61
+ ? dataAttributes({
62
+ active: isPressed,
63
+ hover: isHovered,
64
+ focus: isFocused,
65
+ focusVisible: isFocusVisible,
66
+ disabled: isDisabled,
67
+ })
68
+ : undefined;
69
+
70
+ const {
71
+ onFocus: onFocusProp,
72
+ onBlur: onBlurProp,
73
+ accessibilityState: accessibilityStateProp,
74
+ } = restProps as Pick<PressableProps, 'onFocus' | 'onBlur' | 'accessibilityState'>;
75
+
76
+ const pressRegionProps = (): Record<string, unknown> => ({
77
+ role: role ?? 'button',
78
+ ...(isDisabled && { accessibilityState: { ...accessibilityStateProp, disabled: true } }),
79
+ disabled: isDisabled,
80
+ onPress: isDisabled ? undefined : onPress,
81
+ onPressIn: composeEventHandlers(onPressInProp, pressProps.onPressIn),
82
+ onPressOut: composeEventHandlers(onPressOutProp, pressProps.onPressOut),
83
+ onHoverIn: composeEventHandlers(onHoverInProp, hoverProps.onHoverIn),
84
+ onHoverOut: composeEventHandlers(onHoverOutProp, hoverProps.onHoverOut),
85
+ onFocus: composeEventHandlers(
86
+ composeEventHandlers(onFocusProp, focusProps.onFocus),
87
+ focusRingProps.onFocus,
88
+ ),
89
+ onBlur: composeEventHandlers(
90
+ composeEventHandlers(onBlurProp, focusProps.onBlur),
91
+ focusRingProps.onBlur,
92
+ ),
93
+ });
94
+
95
+ if (isSplit) {
96
+ const { container, region } = splitContainerProps(restProps);
97
+ const regionProps: Record<string, unknown> = {
98
+ ...region,
99
+ ...(role != null && { role }),
100
+ className: pressableClassName,
101
+ ...(isPressable && { ...pressRegionProps(), ...interactionAttributes }),
102
+ };
103
+ const RegionComp = asChildElement ? Slot : isPressable ? Pressable : View;
104
+
105
+ return (
106
+ <InsightProvider value={contextValue}>
107
+ <View
108
+ {...(container as ViewProps)}
109
+ ref={isPressable ? undefined : ref}
110
+ style={style}
111
+ {...mergeDataAttributes(container, interactionAttributes)}
112
+ >
113
+ <RegionComp
114
+ {...(regionProps as PressableProps)}
115
+ ref={isPressable ? (ref as React.Ref<View>) : undefined}
116
+ >
117
+ {children}
118
+ </RegionComp>
119
+ {accessory}
120
+ </View>
121
+ </InsightProvider>
122
+ );
123
+ }
124
+
125
+ if (isPressable) {
126
+ const Comp = asChildElement ? Slot : Pressable;
127
+ return (
128
+ <InsightProvider value={contextValue}>
129
+ <Comp
130
+ {...(restProps as PressableProps)}
131
+ {...(pressRegionProps() as PressableProps)}
132
+ ref={ref as React.Ref<View>}
133
+ style={style}
134
+ {...mergeDataAttributes(restProps, interactionAttributes)}
135
+ >
136
+ {children}
137
+ </Comp>
138
+ </InsightProvider>
139
+ );
140
+ }
141
+
142
+ if (asChildElement) {
143
+ return (
144
+ <InsightProvider value={contextValue}>
145
+ <Slot {...(restProps as ViewProps)} ref={ref as React.Ref<View>} style={style} role={role}>
146
+ {children}
147
+ </Slot>
148
+ </InsightProvider>
149
+ );
150
+ }
151
+
152
+ return (
153
+ <InsightProvider value={contextValue}>
154
+ <View {...(restProps as ViewProps)} ref={ref} style={style} role={role}>
155
+ {children}
156
+ {accessory}
157
+ </View>
158
+ </InsightProvider>
159
+ );
160
+ });
161
+
162
+ InsightRoot.displayName = 'InsightRoot';
@@ -0,0 +1,5 @@
1
+ import { createContext } from '@cdx-ui/utils';
2
+ import type { IInsightContextValue } from './types';
3
+
4
+ export const [InsightProvider, useInsightContext] =
5
+ createContext<IInsightContextValue>('InsightContext');
@@ -0,0 +1,11 @@
1
+ export type {
2
+ IInsightContextValue,
3
+ IInsightDetailProps,
4
+ IInsightPressablePassthrough,
5
+ IInsightProps,
6
+ IInsightSummaryProps,
7
+ InsightLayout,
8
+ } from './types';
9
+
10
+ export { InsightProvider, useInsightContext } from './context';
11
+ export { InsightRoot, type InsightRootProps } from './InsightRoot';
@@ -0,0 +1,51 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { PressableProps, ViewProps } from 'react-native';
3
+
4
+ export type InsightLayout = 'summary' | 'detail';
5
+
6
+ export type IInsightPressablePassthrough = Partial<
7
+ Pick<PressableProps, 'onPressIn' | 'onPressOut' | 'onHoverIn' | 'onHoverOut'>
8
+ >;
9
+
10
+ interface IInsightBaseProps extends ViewProps {
11
+ /** Merge props onto a single child instead of rendering `View` or `Pressable`. */
12
+ asChild?: boolean;
13
+ /**
14
+ * Interactive control that must sit beside the press region, never inside it (the styled
15
+ * layer's close button). On a pressable summary the root renders a non-interactive container
16
+ * holding the press region and the accessory as siblings. The container receives
17
+ * `className`, `style`, and data attributes, and mirrors the region's interaction state as
18
+ * `data-*`; the region receives `ref` and every other prop, so `ref` always targets the
19
+ * focusable press region of a pressable root. A static root renders the accessory after
20
+ * `children` and keeps `ref` on its `View`.
21
+ */
22
+ accessory?: ReactNode;
23
+ /** Class names for the press region when `accessory` splits the root. */
24
+ pressableClassName?: string;
25
+ }
26
+
27
+ export interface IInsightSummaryProps extends IInsightBaseProps, IInsightPressablePassthrough {
28
+ /**
29
+ * Inline card that navigates elsewhere when pressed.
30
+ * @default 'summary'
31
+ */
32
+ layout?: 'summary';
33
+ /** When set, the root renders a press region with `role="button"`. */
34
+ onPress?: PressableProps['onPress'];
35
+ /** Suppresses `onPress` and marks the press region disabled. */
36
+ isDisabled?: boolean;
37
+ }
38
+
39
+ export interface IInsightDetailProps extends IInsightBaseProps {
40
+ /** Static container. It holds its own actions, so it is never pressable. */
41
+ layout: 'detail';
42
+ }
43
+
44
+ /** Discriminated union: `layout` narrows the press props to the summary layout. */
45
+ export type IInsightProps = IInsightSummaryProps | IInsightDetailProps;
46
+
47
+ export interface IInsightContextValue {
48
+ layout: InsightLayout;
49
+ isPressed: boolean;
50
+ isPressable: boolean;
51
+ }
@@ -6,6 +6,7 @@ import { useHover, usePress } from '@react-native-aria/interactions';
6
6
  import type { InteractionState } from '../types';
7
7
  import { Slot } from '../slot';
8
8
  import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
9
+ import { splitContainerProps } from '../utils/splitContainerProps';
9
10
  import { ListItemProvider } from './context';
10
11
  import type { IListItemPressablePassthrough, IListItemProps, ListItemCrossAlign } from './types';
11
12
 
@@ -17,20 +18,6 @@ function rowStyleForCrossAlign(crossAlign: ListItemCrossAlign) {
17
18
  };
18
19
  }
19
20
 
20
- /** Splits the props a split row's container keeps (`className`, data attributes) from the rest. */
21
- function splitContainerProps(props: Record<string, unknown>) {
22
- const container: Record<string, unknown> = {};
23
- const region: Record<string, unknown> = {};
24
- for (const key in props) {
25
- if (key === 'className' || key === 'dataSet' || key.startsWith('data-')) {
26
- container[key] = props[key];
27
- } else {
28
- region[key] = props[key];
29
- }
30
- }
31
- return { container, region };
32
- }
33
-
34
21
  export interface ListItemRootProps extends IListItemProps {}
35
22
 
36
23
  export const ListItemRoot = forwardRef<ComponentRef<typeof View>, ListItemRootProps>(
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Splits the props a split root's container keeps (`className`, data attributes) from the ones
3
+ * its press region receives.
4
+ */
5
+ export function splitContainerProps(props: Record<string, unknown>) {
6
+ const container: Record<string, unknown> = {};
7
+ const region: Record<string, unknown> = {};
8
+ for (const key in props) {
9
+ if (key === 'className' || key === 'dataSet' || key.startsWith('data-')) {
10
+ container[key] = props[key];
11
+ } else {
12
+ region[key] = props[key];
13
+ }
14
+ }
15
+ return { container, region };
16
+ }