@cdx-ui/primitives 0.0.1-beta.44 → 0.0.1-beta.46

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 (51) hide show
  1. package/lib/commonjs/index.js +9 -1
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/link/context.js +11 -0
  4. package/lib/commonjs/link/context.js.map +1 -0
  5. package/lib/commonjs/link/createLink.js +28 -14
  6. package/lib/commonjs/link/createLink.js.map +1 -1
  7. package/lib/commonjs/link/index.js +13 -0
  8. package/lib/commonjs/link/index.js.map +1 -1
  9. package/lib/commonjs/select/createSelectIcon.js +3 -1
  10. package/lib/commonjs/select/createSelectIcon.js.map +1 -1
  11. package/lib/commonjs/utils/dataAttributes.js +6 -25
  12. package/lib/commonjs/utils/dataAttributes.js.map +1 -1
  13. package/lib/commonjs/utils/domDataAttributes.js +34 -0
  14. package/lib/commonjs/utils/domDataAttributes.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/link/context.js +5 -0
  18. package/lib/module/link/context.js.map +1 -0
  19. package/lib/module/link/createLink.js +29 -15
  20. package/lib/module/link/createLink.js.map +1 -1
  21. package/lib/module/link/index.js +1 -0
  22. package/lib/module/link/index.js.map +1 -1
  23. package/lib/module/select/createSelectIcon.js +3 -1
  24. package/lib/module/select/createSelectIcon.js.map +1 -1
  25. package/lib/module/utils/dataAttributes.js +4 -22
  26. package/lib/module/utils/dataAttributes.js.map +1 -1
  27. package/lib/module/utils/domDataAttributes.js +30 -0
  28. package/lib/module/utils/domDataAttributes.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/link/context.d.ts +10 -0
  32. package/lib/typescript/link/context.d.ts.map +1 -0
  33. package/lib/typescript/link/createLink.d.ts.map +1 -1
  34. package/lib/typescript/link/index.d.ts +2 -0
  35. package/lib/typescript/link/index.d.ts.map +1 -1
  36. package/lib/typescript/link/types.d.ts +1 -0
  37. package/lib/typescript/link/types.d.ts.map +1 -1
  38. package/lib/typescript/select/createSelectIcon.d.ts.map +1 -1
  39. package/lib/typescript/utils/dataAttributes.d.ts +4 -10
  40. package/lib/typescript/utils/dataAttributes.d.ts.map +1 -1
  41. package/lib/typescript/utils/domDataAttributes.d.ts +15 -0
  42. package/lib/typescript/utils/domDataAttributes.d.ts.map +1 -0
  43. package/package.json +2 -2
  44. package/src/index.ts +1 -0
  45. package/src/link/context.tsx +10 -0
  46. package/src/link/createLink.tsx +41 -23
  47. package/src/link/index.tsx +2 -0
  48. package/src/link/types.ts +1 -0
  49. package/src/select/createSelectIcon.tsx +2 -1
  50. package/src/utils/dataAttributes.ts +4 -25
  51. package/src/utils/domDataAttributes.ts +32 -0
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  OverlayInsetsProvider: true,
8
- dataAttributes: true
8
+ dataAttributes: true,
9
+ domDataAttributes: true
9
10
  };
10
11
  Object.defineProperty(exports, "OverlayInsetsProvider", {
11
12
  enumerable: true,
@@ -19,6 +20,12 @@ Object.defineProperty(exports, "dataAttributes", {
19
20
  return _dataAttributes.dataAttributes;
20
21
  }
21
22
  });
23
+ Object.defineProperty(exports, "domDataAttributes", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _domDataAttributes.domDataAttributes;
27
+ }
28
+ });
22
29
  var _avatar = require("./avatar");
23
30
  Object.keys(_avatar).forEach(function (key) {
24
31
  if (key === "default" || key === "__esModule") return;
@@ -213,4 +220,5 @@ Object.keys(_radio).forEach(function (key) {
213
220
  });
214
221
  });
215
222
  var _dataAttributes = require("./utils/dataAttributes");
223
+ var _domDataAttributes = require("./utils/domDataAttributes");
216
224
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_button","_chip","_checkbox","_dialog","_field","_form","_input","_otpInput","_link","_listItem","_overlay","_select","_switch","_tile","_progress","_radio","_dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,KAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,KAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,KAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,KAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,SAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,SAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,SAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,SAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,OAAA,GAAAhB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAc,OAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,OAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,OAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,MAAA,GAAAjB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAe,MAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAa,MAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,MAAA,CAAAb,GAAA;IAAA;EAAA;AAAA;AACA,IAAAc,KAAA,GAAAlB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAgB,KAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAc,KAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,KAAA,CAAAd,GAAA;IAAA;EAAA;AAAA;AACA,IAAAe,MAAA,GAAAnB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAiB,MAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,MAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,MAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AACA,IAAAgB,SAAA,GAAApB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAkB,SAAA,EAAAjB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAgB,SAAA,CAAAhB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,SAAA,CAAAhB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAiB,KAAA,GAAArB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAmB,KAAA,EAAAlB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAiB,KAAA,CAAAjB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAS,KAAA,CAAAjB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAkB,SAAA,GAAAtB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAoB,SAAA,EAAAnB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAkB,SAAA,CAAAlB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAU,SAAA,CAAAlB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAmB,QAAA,GAAAvB,OAAA;AACA,IAAAwB,OAAA,GAAAxB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAsB,OAAA,EAAArB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAoB,OAAA,CAAApB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAY,OAAA,CAAApB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAqB,OAAA,GAAAzB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAuB,OAAA,EAAAtB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAqB,OAAA,CAAArB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAa,OAAA,CAAArB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAsB,KAAA,GAAA1B,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAwB,KAAA,EAAAvB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAsB,KAAA,CAAAtB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAc,KAAA,CAAAtB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAuB,SAAA,GAAA3B,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAyB,SAAA,EAAAxB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAuB,SAAA,CAAAvB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAe,SAAA,CAAAvB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAwB,MAAA,GAAA5B,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAA0B,MAAA,EAAAzB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAwB,MAAA,CAAAxB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAgB,MAAA,CAAAxB,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAyB,eAAA,GAAA7B,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_button","_chip","_checkbox","_dialog","_field","_form","_input","_otpInput","_link","_listItem","_overlay","_select","_switch","_tile","_progress","_radio","_dataAttributes","_domDataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useLinkInteractionContext = exports.LinkInteractionProvider = void 0;
7
+ var _utils = require("@cdx-ui/utils");
8
+ const [LinkInteractionProvider, useLinkInteractionContext] = (0, _utils.createContext)('LinkInteractionContext');
9
+ exports.useLinkInteractionContext = useLinkInteractionContext;
10
+ exports.LinkInteractionProvider = LinkInteractionProvider;
11
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","LinkInteractionProvider","useLinkInteractionContext","createContext","exports"],"sourceRoot":"../../../src","sources":["link/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQO,MAAM,CAACC,uBAAuB,EAAEC,yBAAyB,CAAC,GAC/D,IAAAC,oBAAa,EAAuB,wBAAwB,CAAC;AAACC,OAAA,CAAAF,yBAAA,GAAAA,yBAAA;AAAAE,OAAA,CAAAH,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -9,6 +9,7 @@ var _utils = require("@cdx-ui/utils");
9
9
  var _focus = require("@react-native-aria/focus");
10
10
  var _interactions = require("@react-native-aria/interactions");
11
11
  var _dataAttributes = require("../utils/dataAttributes");
12
+ var _context = require("./context");
12
13
  var _useLink = require("./useLink");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -20,6 +21,7 @@ const createLink = ({
20
21
  isPressed: isPressedProp,
21
22
  isFocused: isFocusedProp,
22
23
  isFocusVisible: isFocusVisibleProp,
24
+ isVisited: isVisitedProp,
23
25
  href,
24
26
  onPress,
25
27
  action,
@@ -50,24 +52,36 @@ const createLink = ({
50
52
  action,
51
53
  webProps
52
54
  });
55
+ const hover = isHoveredProp || isHovered;
56
+ const visited = isVisitedProp ?? false;
57
+ const focusVisible = isFocusVisibleProp || isFocusVisible;
58
+ const interactionState = (0, _react.useMemo)(() => ({
59
+ hover,
60
+ visited,
61
+ focusVisible
62
+ }), [hover, visited, focusVisible]);
53
63
  const interactionAttrs = (0, _dataAttributes.dataAttributes)({
54
- hover: isHoveredProp || isHovered,
64
+ hover,
55
65
  focus: isFocusedProp || isFocused,
56
66
  active: isPressedProp || isPressed,
57
- focusVisible: isFocusVisibleProp || isFocusVisible
67
+ focusVisible,
68
+ visited
58
69
  });
59
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
60
- ref: ref,
61
- ...interactionAttrs,
62
- ...linkProps,
63
- ...props,
64
- onPressIn: (0, _utils.composeEventHandlers)(props?.onPressIn, pressProps.onPressIn),
65
- onPressOut: (0, _utils.composeEventHandlers)(props?.onPressOut, pressProps.onPressOut),
66
- onHoverIn: (0, _utils.composeEventHandlers)(props?.onHoverIn, hoverProps.onHoverIn),
67
- onHoverOut: (0, _utils.composeEventHandlers)(props?.onHoverOut, hoverProps.onHoverOut),
68
- onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
69
- onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
70
- children: children
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.LinkInteractionProvider, {
71
+ value: interactionState,
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
73
+ ref: ref,
74
+ ...interactionAttrs,
75
+ ...linkProps,
76
+ ...props,
77
+ onPressIn: (0, _utils.composeEventHandlers)(props?.onPressIn, pressProps.onPressIn),
78
+ onPressOut: (0, _utils.composeEventHandlers)(props?.onPressOut, pressProps.onPressOut),
79
+ onHoverIn: (0, _utils.composeEventHandlers)(props?.onHoverIn, hoverProps.onHoverIn),
80
+ onHoverOut: (0, _utils.composeEventHandlers)(props?.onHoverOut, hoverProps.onHoverOut),
81
+ onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
82
+ onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
83
+ children: children
84
+ })
71
85
  });
72
86
  });
73
87
  exports.createLink = createLink;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_useLink","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createLink","Root","forwardRef","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","href","onPress","action","webProps","props","ref","focusProps","useFocus","focusRingProps","useFocusRing","pressProps","usePress","hoverProps","useHover","linkProps","useLink","interactionAttrs","dataAttributes","hover","focus","active","focusVisible","jsx","onPressIn","composeEventHandlers","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_context","_useLink","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createLink","Root","forwardRef","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isVisited","isVisitedProp","href","onPress","action","webProps","props","ref","focusProps","useFocus","focusRingProps","useFocusRing","pressProps","usePress","hoverProps","useHover","linkProps","useLink","hover","visited","focusVisible","interactionState","useMemo","interactionAttrs","dataAttributes","focus","active","jsx","LinkInteractionProvider","value","onPressIn","composeEventHandlers","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "LinkInteractionProvider", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _context.LinkInteractionProvider;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "LinkProvider", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -21,7 +27,14 @@ Object.defineProperty(exports, "useLink", {
21
27
  return _useLink.useLink;
22
28
  }
23
29
  });
30
+ Object.defineProperty(exports, "useLinkInteractionContext", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _context.useLinkInteractionContext;
34
+ }
35
+ });
24
36
  var _createLink = require("./createLink");
37
+ var _context = require("./context");
25
38
  var _LinkProvider = require("./LinkProvider");
26
39
  var _useLink = require("./useLink");
27
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_createLink","require","_LinkProvider","_useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_createLink","require","_context","_LinkProvider","_useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA","ignoreList":[]}
@@ -19,7 +19,8 @@ const createSelectIcon = BaseIcon => /*#__PURE__*/(0, _react.forwardRef)((props,
19
19
  const {
20
20
  required,
21
21
  invalid,
22
- readOnly
22
+ readOnly,
23
+ open
23
24
  } = (0, _context.useSelectContext)();
24
25
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseIcon, {
25
26
  ref: ref,
@@ -32,6 +33,7 @@ const createSelectIcon = BaseIcon => /*#__PURE__*/(0, _react.forwardRef)((props,
32
33
  required,
33
34
  invalid,
34
35
  readonly: readOnly,
36
+ state: open ? 'open' : 'closed',
35
37
  slot: 'select-icon'
36
38
  }),
37
39
  ...props
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_dataAttributes","_context","_jsxRuntime","createSelectIcon","BaseIcon","forwardRef","props","ref","hover","focus","active","disabled","focusVisible","useSelectTriggerContext","required","invalid","readOnly","useSelectContext","jsx","dataAttributes","readonly","slot","exports"],"sourceRoot":"../../../src","sources":["select/createSelectIcon.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAsE,IAAAG,WAAA,GAAAH,OAAA;AAE/D,MAAMI,gBAAgB,GAAQC,QAAgC,iBACnE,IAAAC,iBAAU,EAAC,CAACC,KAAU,EAAEC,GAAS,KAAK;EACpC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAG,IAAAC,gCAAuB,EAAC,CAAC;EAClF,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAE1D,oBACE,IAAAf,WAAA,CAAAgB,GAAA,EAACd,QAAQ;IACPG,GAAG,EAAEA,GAAI;IAAA,GACL,IAAAY,8BAAc,EAAC;MACjBX,KAAK;MACLC,KAAK;MACLC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZE,QAAQ;MACRC,OAAO;MACPK,QAAQ,EAAEJ,QAAQ;MAClBK,IAAI,EAAE;IACR,CAAC,CAAC;IAAA,GACGf;EAAK,CACX,CAAC;AAEN,CAAC,CAAC;AAACgB,OAAA,CAAAnB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_dataAttributes","_context","_jsxRuntime","createSelectIcon","BaseIcon","forwardRef","props","ref","hover","focus","active","disabled","focusVisible","useSelectTriggerContext","required","invalid","readOnly","open","useSelectContext","jsx","dataAttributes","readonly","state","slot","exports"],"sourceRoot":"../../../src","sources":["select/createSelectIcon.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAsE,IAAAG,WAAA,GAAAH,OAAA;AAE/D,MAAMI,gBAAgB,GAAQC,QAAgC,iBACnE,IAAAC,iBAAU,EAAC,CAACC,KAAU,EAAEC,GAAS,KAAK;EACpC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAG,IAAAC,gCAAuB,EAAC,CAAC;EAClF,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAEhE,oBACE,IAAAhB,WAAA,CAAAiB,GAAA,EAACf,QAAQ;IACPG,GAAG,EAAEA,GAAI;IAAA,GACL,IAAAa,8BAAc,EAAC;MACjBZ,KAAK;MACLC,KAAK;MACLC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZE,QAAQ;MACRC,OAAO;MACPM,QAAQ,EAAEL,QAAQ;MAClBM,KAAK,EAAEL,IAAI,GAAG,MAAM,GAAG,QAAQ;MAC/BM,IAAI,EAAE;IACR,CAAC,CAAC;IAAA,GACGjB;EAAK,CACX,CAAC;AAEN,CAAC,CAAC;AAACkB,OAAA,CAAArB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -3,30 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.dataAttributes = dataAttributes;
7
- /**
8
- * Produces platform-specific props for data attributes.
9
- *
10
- * Native: individual `data-*` props consumed by Uniwind.
11
- * Web (.web.ts): a `dataSet` object consumed by React Native Web.
12
- *
13
- * Boolean values serialize to `"true"` / `"false"` strings.
14
- * String values pass through as-is.
15
- * Undefined values are omitted.
16
- */
17
-
18
- function camelToKebab(str) {
19
- return str.replaceAll(/[A-Z]/g, ch => `-${ch.toLowerCase()}`);
20
- }
21
- function dataAttributes(attrs) {
22
- const result = {};
23
- for (const key in attrs) {
24
- const value = attrs[key];
25
- if (value === undefined) {
26
- continue;
27
- }
28
- result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
6
+ Object.defineProperty(exports, "dataAttributes", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _domDataAttributes.domDataAttributes;
29
10
  }
30
- return result;
31
- }
11
+ });
12
+ var _domDataAttributes = require("./domDataAttributes");
32
13
  //# sourceMappingURL=dataAttributes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["camelToKebab","str","replaceAll","ch","toLowerCase","dataAttributes","attrs","result","key","value","undefined","String"],"sourceRoot":"../../../src","sources":["utils/dataAttributes.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAYA,CAACC,GAAW,EAAU;EACzC,OAAOA,GAAG,CAACC,UAAU,CAAC,QAAQ,EAAGC,EAAE,IAAK,IAAIA,EAAE,CAACC,WAAW,CAAC,CAAC,EAAE,CAAC;AACjE;AAEO,SAASC,cAAcA,CAACC,KAAyC,EAA0B;EAChG,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAMC,GAAG,IAAIF,KAAK,EAAE;IACvB,MAAMG,KAAK,GAAGH,KAAK,CAACE,GAAG,CAAC;IACxB,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvB;IACF;IACAH,MAAM,CAAC,QAAQP,YAAY,CAACQ,GAAG,CAAC,EAAE,CAAC,GAAG,OAAOC,KAAK,KAAK,SAAS,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAC1F;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["_domDataAttributes","require"],"sourceRoot":"../../../src","sources":["utils/dataAttributes.ts"],"mappings":";;;;;;;;;;;AAMA,IAAAA,kBAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.domDataAttributes = domDataAttributes;
7
+ /**
8
+ * Produces `data-*` DOM attribute props for use on raw HTML elements (e.g. `<button>`).
9
+ *
10
+ * Unlike `dataAttributes`, which has a platform-specific `.web.ts` sibling that returns a
11
+ * `dataSet` object for React Native Web components, this file has no platform variant.
12
+ * The bundler therefore always resolves to this single implementation, making it safe to
13
+ * import from `.web.tsx` host components that render native DOM elements directly.
14
+ *
15
+ * Boolean values serialize to `"true"` / `"false"` strings.
16
+ * String values pass through as-is.
17
+ * Undefined values are omitted.
18
+ */
19
+
20
+ function camelToKebab(str) {
21
+ return str.replaceAll(/[A-Z]/g, ch => `-${ch.toLowerCase()}`);
22
+ }
23
+ function domDataAttributes(attrs) {
24
+ const result = {};
25
+ for (const key in attrs) {
26
+ const value = attrs[key];
27
+ if (value === undefined) {
28
+ continue;
29
+ }
30
+ result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
31
+ }
32
+ return result;
33
+ }
34
+ //# sourceMappingURL=domDataAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["camelToKebab","str","replaceAll","ch","toLowerCase","domDataAttributes","attrs","result","key","value","undefined","String"],"sourceRoot":"../../../src","sources":["utils/domDataAttributes.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAYA,CAACC,GAAW,EAAU;EACzC,OAAOA,GAAG,CAACC,UAAU,CAAC,QAAQ,EAAGC,EAAE,IAAK,IAAIA,EAAE,CAACC,WAAW,CAAC,CAAC,EAAE,CAAC;AACjE;AAEO,SAASC,iBAAiBA,CAC/BC,KAA4C,EACpB;EACxB,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAMC,GAAG,IAAIF,KAAK,EAAE;IACvB,MAAMG,KAAK,GAAGH,KAAK,CAACE,GAAG,CAAC;IACxB,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvB;IACF;IACAH,MAAM,CAAC,QAAQP,YAAY,CAACQ,GAAG,CAAC,EAAE,CAAC,GAAG,OAAOC,KAAK,KAAK,SAAS,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAC1F;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -18,4 +18,5 @@ export * from './tile';
18
18
  export * from './progress';
19
19
  export * from './radio';
20
20
  export { dataAttributes } from './utils/dataAttributes';
21
+ export { domDataAttributes } from './utils/domDataAttributes';
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OverlayInsetsProvider","dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AAEvB,SAASC,cAAc,QAAQ,wBAAwB","ignoreList":[]}
1
+ {"version":3,"names":["OverlayInsetsProvider","dataAttributes","domDataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AAEvB,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,iBAAiB,QAAoC,2BAA2B","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { createContext } from '@cdx-ui/utils';
4
+ export const [LinkInteractionProvider, useLinkInteractionContext] = createContext('LinkInteractionContext');
5
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","LinkInteractionProvider","useLinkInteractionContext"],"sourceRoot":"../../../src","sources":["link/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAQ7C,OAAO,MAAM,CAACC,uBAAuB,EAAEC,yBAAyB,CAAC,GAC/DF,aAAa,CAAuB,wBAAwB,CAAC","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import React, { forwardRef } from 'react';
3
+ import React, { forwardRef, useMemo } from 'react';
4
4
  import { composeEventHandlers } from '@cdx-ui/utils';
5
5
  import { useFocusRing, useFocus } from '@react-native-aria/focus';
6
6
  import { useHover, usePress } from '@react-native-aria/interactions';
7
7
  import { dataAttributes } from '../utils/dataAttributes';
8
+ import { LinkInteractionProvider } from './context';
8
9
  import { useLink } from './useLink';
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
11
  export const createLink = ({
@@ -15,6 +16,7 @@ export const createLink = ({
15
16
  isPressed: isPressedProp,
16
17
  isFocused: isFocusedProp,
17
18
  isFocusVisible: isFocusVisibleProp,
19
+ isVisited: isVisitedProp,
18
20
  href,
19
21
  onPress,
20
22
  action,
@@ -45,24 +47,36 @@ export const createLink = ({
45
47
  action,
46
48
  webProps
47
49
  });
50
+ const hover = isHoveredProp || isHovered;
51
+ const visited = isVisitedProp ?? false;
52
+ const focusVisible = isFocusVisibleProp || isFocusVisible;
53
+ const interactionState = useMemo(() => ({
54
+ hover,
55
+ visited,
56
+ focusVisible
57
+ }), [hover, visited, focusVisible]);
48
58
  const interactionAttrs = dataAttributes({
49
- hover: isHoveredProp || isHovered,
59
+ hover,
50
60
  focus: isFocusedProp || isFocused,
51
61
  active: isPressedProp || isPressed,
52
- focusVisible: isFocusVisibleProp || isFocusVisible
62
+ focusVisible,
63
+ visited
53
64
  });
54
- return /*#__PURE__*/_jsx(Root, {
55
- ref: ref,
56
- ...interactionAttrs,
57
- ...linkProps,
58
- ...props,
59
- onPressIn: composeEventHandlers(props?.onPressIn, pressProps.onPressIn),
60
- onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
61
- onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
62
- onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
63
- onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
64
- onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
65
- children: children
65
+ return /*#__PURE__*/_jsx(LinkInteractionProvider, {
66
+ value: interactionState,
67
+ children: /*#__PURE__*/_jsx(Root, {
68
+ ref: ref,
69
+ ...interactionAttrs,
70
+ ...linkProps,
71
+ ...props,
72
+ onPressIn: composeEventHandlers(props?.onPressIn, pressProps.onPressIn),
73
+ onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
74
+ onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
75
+ onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
76
+ onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
77
+ onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
78
+ children: children
79
+ })
66
80
  });
67
81
  });
68
82
  //# sourceMappingURL=createLink.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","composeEventHandlers","useFocusRing","useFocus","useHover","usePress","dataAttributes","useLink","jsx","_jsx","createLink","Root","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","href","onPress","action","webProps","props","ref","focusProps","focusRingProps","pressProps","hoverProps","linkProps","interactionAttrs","hover","focus","active","focusVisible","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,YAAY,EAAEC,QAAQ,QAAQ,0BAA0B;AACjE,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,iCAAiC;AACpE,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,OAAO,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGpC,OAAO,MAAMC,UAAU,GAAGA,CAAqB;EAAEC;AAA2C,CAAC,kBAC3FX,UAAU,CACR,CACE;EACEY,QAAQ;EACRC,SAAS,EAAEC,aAAa;EACxBC,SAAS,EAAEC,aAAa;EACxBC,SAAS,EAAEC,aAAa;EACxBC,cAAc,EAAEC,kBAAkB;EAClCC,IAAI;EACJC,OAAO;EACPC,MAAM;EACNC,QAAQ;EACR,GAAGC;AACO,CAAC,EACbC,GAA0B,KACvB;EACH,MAAM;IAAET,SAAS;IAAEU;EAAW,CAAC,GAAGxB,QAAQ,CAAC,CAAC;EAC5C,MAAM;IAAEgB,cAAc;IAAEQ,UAAU,EAAEC;EAAe,CAAC,GAAG1B,YAAY,CAAC,CAGnE;EACD,MAAM;IAAE2B,UAAU;IAAEd;EAAU,CAAC,GAAGV,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC9C,MAAM;IAAEQ,SAAS;IAAEiB;EAAW,CAAC,GAAG1B,QAAQ,CAAC,CAAC;EAE5C,MAAM;IAAE2B;EAAU,CAAC,GAAGxB,OAAO,CAAC;IAC5Bc,IAAI;IACJC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,CAAC;EAEF,MAAMQ,gBAAgB,GAAG1B,cAAc,CAAC;IACtC2B,KAAK,EAAEnB,aAAa,IAAID,SAAS;IACjCqB,KAAK,EAAEhB,aAAa,IAAID,SAAS;IACjCkB,MAAM,EAAEnB,aAAa,IAAID,SAAS;IAClCqB,YAAY,EAAEhB,kBAAkB,IAAID;EACtC,CAAC,CAAC;EAEF,oBACEV,IAAA,CAACE,IAAI;IACHe,GAAG,EAAEA,GAAI;IAAA,GACLM,gBAAgB;IAAA,GAChBD,SAAS;IAAA,GACRN,KAAK;IACVY,SAAS,EAAEpC,oBAAoB,CAACwB,KAAK,EAAEY,SAAS,EAAER,UAAU,CAACQ,SAAS,CAAE;IACxEC,UAAU,EAAErC,oBAAoB,CAACwB,KAAK,EAAEa,UAAU,EAAET,UAAU,CAACS,UAAU,CAAE;IAC3EC,SAAS,EAAEtC,oBAAoB,CAACwB,KAAK,EAAEc,SAAS,EAAET,UAAU,CAACS,SAAS,CAAE;IACxEC,UAAU,EAAEvC,oBAAoB,CAACwB,KAAK,EAAEe,UAAU,EAAEV,UAAU,CAACU,UAAU,CAAE;IAC3EC,OAAO,EAAExC,oBAAoB,CAC3BA,oBAAoB,CAACwB,KAAK,EAAEgB,OAAO,EAAEd,UAAU,CAACc,OAAO,CAAC,EACxDb,cAAc,CAACa,OACjB,CAAE;IACFC,MAAM,EAAEzC,oBAAoB,CAC1BA,oBAAoB,CAACwB,KAAK,EAAEiB,MAAM,EAAEf,UAAU,CAACe,MAAM,CAAC,EACtDd,cAAc,CAACc,MACjB,CAAE;IAAA9B,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useMemo","composeEventHandlers","useFocusRing","useFocus","useHover","usePress","dataAttributes","LinkInteractionProvider","useLink","jsx","_jsx","createLink","Root","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isVisited","isVisitedProp","href","onPress","action","webProps","props","ref","focusProps","focusRingProps","pressProps","hoverProps","linkProps","hover","visited","focusVisible","interactionState","interactionAttrs","focus","active","value","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export { createLink } from './createLink';
4
+ export { LinkInteractionProvider, useLinkInteractionContext } from './context';
4
5
  export { LinkProvider } from './LinkProvider';
5
6
  export { useLink } from './useLink';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createLink","LinkProvider","useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["createLink","LinkInteractionProvider","useLinkInteractionContext","LinkProvider","useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,uBAAuB,EAAEC,yBAAyB,QAAQ,WAAW;AAE9E,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
@@ -15,7 +15,8 @@ export const createSelectIcon = BaseIcon => /*#__PURE__*/forwardRef((props, ref)
15
15
  const {
16
16
  required,
17
17
  invalid,
18
- readOnly
18
+ readOnly,
19
+ open
19
20
  } = useSelectContext();
20
21
  return /*#__PURE__*/_jsx(BaseIcon, {
21
22
  ref: ref,
@@ -28,6 +29,7 @@ export const createSelectIcon = BaseIcon => /*#__PURE__*/forwardRef((props, ref)
28
29
  required,
29
30
  invalid,
30
31
  readonly: readOnly,
32
+ state: open ? 'open' : 'closed',
31
33
  slot: 'select-icon'
32
34
  }),
33
35
  ...props
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","dataAttributes","useSelectContext","useSelectTriggerContext","jsx","_jsx","createSelectIcon","BaseIcon","props","ref","hover","focus","active","disabled","focusVisible","required","invalid","readOnly","readonly","slot"],"sourceRoot":"../../../src","sources":["select/createSelectIcon.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtE,OAAO,MAAMC,gBAAgB,GAAQC,QAAgC,iBACnEP,UAAU,CAAC,CAACQ,KAAU,EAAEC,GAAS,KAAK;EACpC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAGX,uBAAuB,CAAC,CAAC;EAClF,MAAM;IAAEY,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGf,gBAAgB,CAAC,CAAC;EAE1D,oBACEG,IAAA,CAACE,QAAQ;IACPE,GAAG,EAAEA,GAAI;IAAA,GACLR,cAAc,CAAC;MACjBS,KAAK;MACLC,KAAK;MACLC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,OAAO;MACPE,QAAQ,EAAED,QAAQ;MAClBE,IAAI,EAAE;IACR,CAAC,CAAC;IAAA,GACGX;EAAK,CACX,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","dataAttributes","useSelectContext","useSelectTriggerContext","jsx","_jsx","createSelectIcon","BaseIcon","props","ref","hover","focus","active","disabled","focusVisible","required","invalid","readOnly","open","readonly","state","slot"],"sourceRoot":"../../../src","sources":["select/createSelectIcon.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtE,OAAO,MAAMC,gBAAgB,GAAQC,QAAgC,iBACnEP,UAAU,CAAC,CAACQ,KAAU,EAAEC,GAAS,KAAK;EACpC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAGX,uBAAuB,CAAC,CAAC;EAClF,MAAM;IAAEY,QAAQ;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGhB,gBAAgB,CAAC,CAAC;EAEhE,oBACEG,IAAA,CAACE,QAAQ;IACPE,GAAG,EAAEA,GAAI;IAAA,GACLR,cAAc,CAAC;MACjBS,KAAK;MACLC,KAAK;MACLC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,OAAO;MACPG,QAAQ,EAAEF,QAAQ;MAClBG,KAAK,EAAEF,IAAI,GAAG,MAAM,GAAG,QAAQ;MAC/BG,IAAI,EAAE;IACR,CAAC,CAAC;IAAA,GACGb;EAAK,CACX,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1,28 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Produces platform-specific props for data attributes.
4
+ * Produces `data-*` props for native platforms (consumed by Uniwind).
5
+ * Web (.web.ts): returns a `dataSet` object consumed by React Native Web instead.
5
6
  *
6
- * Native: individual `data-*` props consumed by Uniwind.
7
- * Web (.web.ts): a `dataSet` object consumed by React Native Web.
8
- *
9
- * Boolean values serialize to `"true"` / `"false"` strings.
10
- * String values pass through as-is.
11
- * Undefined values are omitted.
7
+ * Delegates to `domDataAttributes` so the conversion logic has a single source of truth.
12
8
  */
13
-
14
- function camelToKebab(str) {
15
- return str.replaceAll(/[A-Z]/g, ch => `-${ch.toLowerCase()}`);
16
- }
17
- export function dataAttributes(attrs) {
18
- const result = {};
19
- for (const key in attrs) {
20
- const value = attrs[key];
21
- if (value === undefined) {
22
- continue;
23
- }
24
- result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
25
- }
26
- return result;
27
- }
9
+ export { domDataAttributes as dataAttributes } from './domDataAttributes';
28
10
  //# sourceMappingURL=dataAttributes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["camelToKebab","str","replaceAll","ch","toLowerCase","dataAttributes","attrs","result","key","value","undefined","String"],"sourceRoot":"../../../src","sources":["utils/dataAttributes.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAYA,CAACC,GAAW,EAAU;EACzC,OAAOA,GAAG,CAACC,UAAU,CAAC,QAAQ,EAAGC,EAAE,IAAK,IAAIA,EAAE,CAACC,WAAW,CAAC,CAAC,EAAE,CAAC;AACjE;AAEA,OAAO,SAASC,cAAcA,CAACC,KAAyC,EAA0B;EAChG,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAMC,GAAG,IAAIF,KAAK,EAAE;IACvB,MAAMG,KAAK,GAAGH,KAAK,CAACE,GAAG,CAAC;IACxB,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvB;IACF;IACAH,MAAM,CAAC,QAAQP,YAAY,CAACQ,GAAG,CAAC,EAAE,CAAC,GAAG,OAAOC,KAAK,KAAK,SAAS,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAC1F;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["domDataAttributes","dataAttributes"],"sourceRoot":"../../../src","sources":["utils/dataAttributes.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,iBAAiB,IAAIC,cAAc,QAAQ,qBAAqB","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Produces `data-*` DOM attribute props for use on raw HTML elements (e.g. `<button>`).
5
+ *
6
+ * Unlike `dataAttributes`, which has a platform-specific `.web.ts` sibling that returns a
7
+ * `dataSet` object for React Native Web components, this file has no platform variant.
8
+ * The bundler therefore always resolves to this single implementation, making it safe to
9
+ * import from `.web.tsx` host components that render native DOM elements directly.
10
+ *
11
+ * Boolean values serialize to `"true"` / `"false"` strings.
12
+ * String values pass through as-is.
13
+ * Undefined values are omitted.
14
+ */
15
+
16
+ function camelToKebab(str) {
17
+ return str.replaceAll(/[A-Z]/g, ch => `-${ch.toLowerCase()}`);
18
+ }
19
+ export function domDataAttributes(attrs) {
20
+ const result = {};
21
+ for (const key in attrs) {
22
+ const value = attrs[key];
23
+ if (value === undefined) {
24
+ continue;
25
+ }
26
+ result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
27
+ }
28
+ return result;
29
+ }
30
+ //# sourceMappingURL=domDataAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["camelToKebab","str","replaceAll","ch","toLowerCase","domDataAttributes","attrs","result","key","value","undefined","String"],"sourceRoot":"../../../src","sources":["utils/domDataAttributes.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAYA,CAACC,GAAW,EAAU;EACzC,OAAOA,GAAG,CAACC,UAAU,CAAC,QAAQ,EAAGC,EAAE,IAAK,IAAIA,EAAE,CAACC,WAAW,CAAC,CAAC,EAAE,CAAC;AACjE;AAEA,OAAO,SAASC,iBAAiBA,CAC/BC,KAA4C,EACpB;EACxB,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAMC,GAAG,IAAIF,KAAK,EAAE;IACvB,MAAMG,KAAK,GAAGH,KAAK,CAACE,GAAG,CAAC;IACxB,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvB;IACF;IACAH,MAAM,CAAC,QAAQP,YAAY,CAACQ,GAAG,CAAC,EAAE,CAAC,GAAG,OAAOC,KAAK,KAAK,SAAS,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAC1F;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -17,4 +17,5 @@ export * from './progress';
17
17
  export * from './radio';
18
18
  export type { InteractionState } from './types';
19
19
  export { dataAttributes } from './utils/dataAttributes';
20
+ export { domDataAttributes, type DomDataAttributeValue } from './utils/domDataAttributes';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,UAAU,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnE,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,UAAU,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnE,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface LinkInteractionState {
2
+ hover: boolean;
3
+ visited: boolean;
4
+ focusVisible: boolean;
5
+ }
6
+ export declare const LinkInteractionProvider: import("react").FunctionComponent<{
7
+ children: import("react").ReactNode;
8
+ value: LinkInteractionState;
9
+ }>, useLinkInteractionContext: () => LinkInteractionState;
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/link/context.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAO,uBAAuB;;;IAAE,yBAAyB,4BACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createLink.d.ts","sourceRoot":"","sources":["../../../src/link/createLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,UAAU,GAAI,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU;IAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;CAAE,yEA8D1F,CAAC"}
1
+ {"version":3,"file":"createLink.d.ts","sourceRoot":"","sources":["../../../src/link/createLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,UAAU,GAAI,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU;IAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;CAAE,yEA+E1F,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { createLink } from './createLink';
2
+ export { LinkInteractionProvider, useLinkInteractionContext } from './context';
3
+ export type { LinkInteractionState } from './context';
2
4
  export { LinkProvider } from './LinkProvider';
3
5
  export type { LinkConfig } from './LinkProvider';
4
6
  export { useLink } from './useLink';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -30,6 +30,7 @@ export interface ILinkProps extends PressableProps {
30
30
  isHovered?: boolean;
31
31
  isFocused?: boolean;
32
32
  isFocusVisible?: boolean;
33
+ isVisited?: boolean;
33
34
  /**
34
35
  * HTML anchor attributes applied only on web. Ignored on native platforms.
35
36
  * `target`, `rel`, and `download` are forwarded via react-native-web's `hrefAttrs`.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvE;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvE;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSelectIcon.d.ts","sourceRoot":"","sources":["../../../src/select/createSelectIcon.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,UAAU,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,yGAsBjE,CAAC"}
1
+ {"version":3,"file":"createSelectIcon.d.ts","sourceRoot":"","sources":["../../../src/select/createSelectIcon.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,UAAU,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,yGAuBjE,CAAC"}
@@ -1,14 +1,8 @@
1
1
  /**
2
- * Produces platform-specific props for data attributes.
2
+ * Produces `data-*` props for native platforms (consumed by Uniwind).
3
+ * Web (.web.ts): returns a `dataSet` object consumed by React Native Web instead.
3
4
  *
4
- * Native: individual `data-*` props consumed by Uniwind.
5
- * Web (.web.ts): a `dataSet` object consumed by React Native Web.
6
- *
7
- * Boolean values serialize to `"true"` / `"false"` strings.
8
- * String values pass through as-is.
9
- * Undefined values are omitted.
5
+ * Delegates to `domDataAttributes` so the conversion logic has a single source of truth.
10
6
  */
11
- type DataAttributeValue = boolean | string | undefined;
12
- export declare function dataAttributes(attrs: Record<string, DataAttributeValue>): Record<string, string>;
13
- export {};
7
+ export { domDataAttributes as dataAttributes } from './domDataAttributes';
14
8
  //# sourceMappingURL=dataAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/dataAttributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,KAAK,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAMvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUhG"}
1
+ {"version":3,"file":"dataAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/dataAttributes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Produces `data-*` DOM attribute props for use on raw HTML elements (e.g. `<button>`).
3
+ *
4
+ * Unlike `dataAttributes`, which has a platform-specific `.web.ts` sibling that returns a
5
+ * `dataSet` object for React Native Web components, this file has no platform variant.
6
+ * The bundler therefore always resolves to this single implementation, making it safe to
7
+ * import from `.web.tsx` host components that render native DOM elements directly.
8
+ *
9
+ * Boolean values serialize to `"true"` / `"false"` strings.
10
+ * String values pass through as-is.
11
+ * Undefined values are omitted.
12
+ */
13
+ export type DomDataAttributeValue = boolean | string | undefined;
14
+ export declare function domDataAttributes(attrs: Record<string, DomDataAttributeValue>): Record<string, string>;
15
+ //# sourceMappingURL=domDataAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domDataAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/domDataAttributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAMjE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/primitives",
3
- "version": "0.0.1-beta.44",
3
+ "version": "0.0.1-beta.46",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "module": "lib/module/index.js",
6
6
  "react-native": "src/index.ts",
@@ -60,7 +60,7 @@
60
60
  "@react-stately/checkbox": "3.7.4",
61
61
  "@react-stately/radio": "3.12.0",
62
62
  "@react-stately/toggle": "3.9.4",
63
- "@cdx-ui/utils": "0.0.1-beta.44"
63
+ "@cdx-ui/utils": "0.0.1-beta.46"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/react": "*",
package/src/index.ts CHANGED
@@ -17,3 +17,4 @@ export * from './progress';
17
17
  export * from './radio';
18
18
  export type { InteractionState } from './types';
19
19
  export { dataAttributes } from './utils/dataAttributes';
20
+ export { domDataAttributes, type DomDataAttributeValue } from './utils/domDataAttributes';
@@ -0,0 +1,10 @@
1
+ import { createContext } from '@cdx-ui/utils';
2
+
3
+ export interface LinkInteractionState {
4
+ hover: boolean;
5
+ visited: boolean;
6
+ focusVisible: boolean;
7
+ }
8
+
9
+ export const [LinkInteractionProvider, useLinkInteractionContext] =
10
+ createContext<LinkInteractionState>('LinkInteractionContext');
@@ -1,8 +1,9 @@
1
- import React, { forwardRef } from 'react';
1
+ import React, { forwardRef, useMemo } from 'react';
2
2
  import { composeEventHandlers } from '@cdx-ui/utils';
3
3
  import { useFocusRing, useFocus } from '@react-native-aria/focus';
4
4
  import { useHover, usePress } from '@react-native-aria/interactions';
5
5
  import { dataAttributes } from '../utils/dataAttributes';
6
+ import { LinkInteractionProvider } from './context';
6
7
  import { useLink } from './useLink';
7
8
  import type { ILinkProps } from './types';
8
9
 
@@ -15,6 +16,7 @@ export const createLink = <RootT, R = unknown>({ Root }: { Root: React.Component
15
16
  isPressed: isPressedProp,
16
17
  isFocused: isFocusedProp,
17
18
  isFocusVisible: isFocusVisibleProp,
19
+ isVisited: isVisitedProp,
18
20
  href,
19
21
  onPress,
20
22
  action,
@@ -38,34 +40,50 @@ export const createLink = <RootT, R = unknown>({ Root }: { Root: React.Component
38
40
  webProps,
39
41
  });
40
42
 
43
+ const hover = isHoveredProp || isHovered;
44
+ const visited = isVisitedProp ?? false;
45
+ const focusVisible = isFocusVisibleProp || isFocusVisible;
46
+
47
+ const interactionState = useMemo(
48
+ () => ({
49
+ hover,
50
+ visited,
51
+ focusVisible,
52
+ }),
53
+ [hover, visited, focusVisible],
54
+ );
55
+
41
56
  const interactionAttrs = dataAttributes({
42
- hover: isHoveredProp || isHovered,
57
+ hover,
43
58
  focus: isFocusedProp || isFocused,
44
59
  active: isPressedProp || isPressed,
45
- focusVisible: isFocusVisibleProp || isFocusVisible,
60
+ focusVisible,
61
+ visited,
46
62
  });
47
63
 
48
64
  return (
49
- <Root
50
- ref={ref}
51
- {...interactionAttrs}
52
- {...linkProps}
53
- {...(props as RootT)}
54
- onPressIn={composeEventHandlers(props?.onPressIn, pressProps.onPressIn)}
55
- onPressOut={composeEventHandlers(props?.onPressOut, pressProps.onPressOut)}
56
- onHoverIn={composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn)}
57
- onHoverOut={composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut)}
58
- onFocus={composeEventHandlers(
59
- composeEventHandlers(props?.onFocus, focusProps.onFocus),
60
- focusRingProps.onFocus,
61
- )}
62
- onBlur={composeEventHandlers(
63
- composeEventHandlers(props?.onBlur, focusProps.onBlur),
64
- focusRingProps.onBlur,
65
- )}
66
- >
67
- {children}
68
- </Root>
65
+ <LinkInteractionProvider value={interactionState}>
66
+ <Root
67
+ ref={ref}
68
+ {...interactionAttrs}
69
+ {...linkProps}
70
+ {...(props as RootT)}
71
+ onPressIn={composeEventHandlers(props?.onPressIn, pressProps.onPressIn)}
72
+ onPressOut={composeEventHandlers(props?.onPressOut, pressProps.onPressOut)}
73
+ onHoverIn={composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn)}
74
+ onHoverOut={composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut)}
75
+ onFocus={composeEventHandlers(
76
+ composeEventHandlers(props?.onFocus, focusProps.onFocus),
77
+ focusRingProps.onFocus,
78
+ )}
79
+ onBlur={composeEventHandlers(
80
+ composeEventHandlers(props?.onBlur, focusProps.onBlur),
81
+ focusRingProps.onBlur,
82
+ )}
83
+ >
84
+ {children}
85
+ </Root>
86
+ </LinkInteractionProvider>
69
87
  );
70
88
  },
71
89
  );
@@ -1,4 +1,6 @@
1
1
  export { createLink } from './createLink';
2
+ export { LinkInteractionProvider, useLinkInteractionContext } from './context';
3
+ export type { LinkInteractionState } from './context';
2
4
  export { LinkProvider } from './LinkProvider';
3
5
  export type { LinkConfig } from './LinkProvider';
4
6
  export { useLink } from './useLink';
package/src/link/types.ts CHANGED
@@ -32,6 +32,7 @@ export interface ILinkProps extends PressableProps {
32
32
  isHovered?: boolean;
33
33
  isFocused?: boolean;
34
34
  isFocusVisible?: boolean;
35
+ isVisited?: boolean;
35
36
  /**
36
37
  * HTML anchor attributes applied only on web. Ignored on native platforms.
37
38
  * `target`, `rel`, and `download` are forwarded via react-native-web's `hrefAttrs`.
@@ -5,7 +5,7 @@ import { useSelectContext, useSelectTriggerContext } from './context';
5
5
  export const createSelectIcon = <T,>(BaseIcon: React.ComponentType<T>) =>
6
6
  forwardRef((props: any, ref?: any) => {
7
7
  const { hover, focus, active, disabled, focusVisible } = useSelectTriggerContext();
8
- const { required, invalid, readOnly } = useSelectContext();
8
+ const { required, invalid, readOnly, open } = useSelectContext();
9
9
 
10
10
  return (
11
11
  <BaseIcon
@@ -19,6 +19,7 @@ export const createSelectIcon = <T,>(BaseIcon: React.ComponentType<T>) =>
19
19
  required,
20
20
  invalid,
21
21
  readonly: readOnly,
22
+ state: open ? 'open' : 'closed',
22
23
  slot: 'select-icon',
23
24
  })}
24
25
  {...(props as T)}
@@ -1,28 +1,7 @@
1
1
  /**
2
- * Produces platform-specific props for data attributes.
2
+ * Produces `data-*` props for native platforms (consumed by Uniwind).
3
+ * Web (.web.ts): returns a `dataSet` object consumed by React Native Web instead.
3
4
  *
4
- * Native: individual `data-*` props consumed by Uniwind.
5
- * Web (.web.ts): a `dataSet` object consumed by React Native Web.
6
- *
7
- * Boolean values serialize to `"true"` / `"false"` strings.
8
- * String values pass through as-is.
9
- * Undefined values are omitted.
5
+ * Delegates to `domDataAttributes` so the conversion logic has a single source of truth.
10
6
  */
11
-
12
- type DataAttributeValue = boolean | string | undefined;
13
-
14
- function camelToKebab(str: string): string {
15
- return str.replaceAll(/[A-Z]/g, (ch) => `-${ch.toLowerCase()}`);
16
- }
17
-
18
- export function dataAttributes(attrs: Record<string, DataAttributeValue>): Record<string, string> {
19
- const result: Record<string, string> = {};
20
- for (const key in attrs) {
21
- const value = attrs[key];
22
- if (value === undefined) {
23
- continue;
24
- }
25
- result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
26
- }
27
- return result;
28
- }
7
+ export { domDataAttributes as dataAttributes } from './domDataAttributes';
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Produces `data-*` DOM attribute props for use on raw HTML elements (e.g. `<button>`).
3
+ *
4
+ * Unlike `dataAttributes`, which has a platform-specific `.web.ts` sibling that returns a
5
+ * `dataSet` object for React Native Web components, this file has no platform variant.
6
+ * The bundler therefore always resolves to this single implementation, making it safe to
7
+ * import from `.web.tsx` host components that render native DOM elements directly.
8
+ *
9
+ * Boolean values serialize to `"true"` / `"false"` strings.
10
+ * String values pass through as-is.
11
+ * Undefined values are omitted.
12
+ */
13
+
14
+ export type DomDataAttributeValue = boolean | string | undefined;
15
+
16
+ function camelToKebab(str: string): string {
17
+ return str.replaceAll(/[A-Z]/g, (ch) => `-${ch.toLowerCase()}`);
18
+ }
19
+
20
+ export function domDataAttributes(
21
+ attrs: Record<string, DomDataAttributeValue>,
22
+ ): Record<string, string> {
23
+ const result: Record<string, string> = {};
24
+ for (const key in attrs) {
25
+ const value = attrs[key];
26
+ if (value === undefined) {
27
+ continue;
28
+ }
29
+ result[`data-${camelToKebab(key)}`] = typeof value === 'boolean' ? String(value) : value;
30
+ }
31
+ return result;
32
+ }