@teleporthq/teleport-uidl-resolver 0.42.13 → 0.42.21

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.
@@ -4,6 +4,8 @@ import {
4
4
  UIDLMailLinkNode,
5
5
  UIDLPhoneLinkNode,
6
6
  UIDLSectionLinkNode,
7
+ UIDLDynamicReference,
8
+ UIDLPropDefinition,
7
9
  } from '@teleporthq/teleport-types'
8
10
  import { staticNode } from '@teleporthq/teleport-uidl-builders'
9
11
 
@@ -50,3 +52,18 @@ export const mailMockedDefinition = (): UIDLMailLinkNode => ({
50
52
  body: "Is it me you're looking for?",
51
53
  },
52
54
  })
55
+
56
+ export const linkTypePropDefinitions = (): Record<string, UIDLPropDefinition> => ({
57
+ cardLink: {
58
+ type: 'link',
59
+ defaultValue: { url: '/', newTab: false },
60
+ },
61
+ })
62
+
63
+ export const linkTypePropDynamicReference = (): UIDLDynamicReference => ({
64
+ type: 'dynamic',
65
+ content: {
66
+ referenceType: 'prop',
67
+ id: 'cardLink',
68
+ },
69
+ })
@@ -6,8 +6,10 @@ import {
6
6
  phoneMockedDefinition,
7
7
  mailMockedDefinition,
8
8
  sectionMockedDefinition,
9
+ linkTypePropDefinitions,
10
+ linkTypePropDynamicReference,
9
11
  } from './mocks'
10
- import { UIDLElementNode, UIDLURLLinkNode } from '@teleporthq/teleport-types'
12
+ import { UIDLDynamicReference, UIDLElementNode, UIDLURLLinkNode } from '@teleporthq/teleport-types'
11
13
 
12
14
  describe('insertLink', () => {
13
15
  it('wraps a simple element', () => {
@@ -97,6 +99,90 @@ describe('insertLink', () => {
97
99
  })
98
100
  })
99
101
 
102
+ describe('insertLink with link-type prop', () => {
103
+ it('wraps a container element with a link when link ability references a link-type prop', () => {
104
+ const node = elementNode('container')
105
+ node.content.abilities = { link: linkTypePropDynamicReference() }
106
+
107
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
108
+
109
+ // The wrapper should be a link (maps to <a> by default, <Link> in Next.js via project mapping)
110
+ expect(result.content.elementType).toBe('prop-link')
111
+
112
+ // url should reference the prop's url field via refPath
113
+ const url = result.content.attrs.url as UIDLDynamicReference
114
+ expect(url.type).toBe('dynamic')
115
+ expect(url.content.referenceType).toBe('prop')
116
+ expect(url.content.id).toBe('cardLink')
117
+ expect(url.content.refPath).toEqual(['url'])
118
+
119
+ // target and rel should be expr ternaries for newTab
120
+ expect(result.content.attrs.target.type).toBe('expr')
121
+ expect(result.content.attrs.target.content).toContain('newTab')
122
+ expect(result.content.attrs.rel.type).toBe('expr')
123
+ expect(result.content.attrs.rel.content).toContain('noreferrer noopener')
124
+
125
+ // The original container should be a child of the link wrapper
126
+ const child = result.content.children[0] as UIDLElementNode
127
+ expect(child.content.elementType).toBe('container')
128
+ })
129
+
130
+ it('replaces a button element inline with link for link-type prop', () => {
131
+ const node = elementNode('button')
132
+ node.content.abilities = { link: linkTypePropDynamicReference() }
133
+
134
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
135
+
136
+ // Button should be replaced inline (not wrapped)
137
+ expect(result.content.elementType).toBe('prop-link')
138
+ expect(result.content.semanticType).toBe('')
139
+
140
+ const url = result.content.attrs.url as UIDLDynamicReference
141
+ expect(url.content.id).toBe('cardLink')
142
+ expect(url.content.refPath).toEqual(['url'])
143
+ })
144
+
145
+ it('replaces a text span element inline with link for link-type prop', () => {
146
+ const node = elementNode('text')
147
+ node.content.semanticType = 'span'
148
+ node.content.abilities = { link: linkTypePropDynamicReference() }
149
+
150
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
151
+
152
+ expect(result.content.elementType).toBe('prop-link')
153
+ expect(result.content.semanticType).toBe('')
154
+
155
+ const url = result.content.attrs.url as UIDLDynamicReference
156
+ expect(url.content.id).toBe('cardLink')
157
+ expect(url.content.refPath).toEqual(['url'])
158
+ })
159
+
160
+ it('falls back to existing dynamic link behavior when prop is not link-type', () => {
161
+ const node = elementNode('container')
162
+ const dynamicLink: UIDLDynamicReference = {
163
+ type: 'dynamic',
164
+ content: {
165
+ referenceType: 'prop',
166
+ id: 'someStringProp',
167
+ },
168
+ }
169
+ node.content.abilities = { link: dynamicLink }
170
+
171
+ // Pass prop definitions where the referenced prop is type 'string', not 'link'
172
+ const result = insertLinks(node, {}, false, undefined, {
173
+ someStringProp: { type: 'string', defaultValue: '/about' },
174
+ })
175
+
176
+ // Should fall through to existing dynamic link handling (navlink with transitionTo)
177
+ expect(result.content.elementType).toBe('navlink')
178
+ expect(result.content.attrs.transitionTo.type).toBe('dynamic')
179
+ // Should NOT have refPath since it's the old behavior
180
+ expect(
181
+ (result.content.attrs.transitionTo as UIDLDynamicReference).content.refPath
182
+ ).toBeUndefined()
183
+ })
184
+ })
185
+
100
186
  describe('createLink', () => {
101
187
  it('creates a phone link', () => {
102
188
  const link = phoneMockedDefinition()
@@ -1 +1 @@
1
- {"version":3,"file":"html-mapping.d.ts","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,eAAO,MAAM,WAAW,EAAE,OAsNzB,CAAA"}
1
+ {"version":3,"file":"html-mapping.d.ts","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,eAAO,MAAM,WAAW,EAAE,OA+NzB,CAAA"}
@@ -104,6 +104,15 @@ exports.HTMLMapping = {
104
104
  navlink: {
105
105
  elementType: 'a',
106
106
  },
107
+ 'prop-link': {
108
+ elementType: 'a',
109
+ attrs: {
110
+ href: {
111
+ type: 'dynamic',
112
+ content: { referenceType: 'attr', id: 'url' },
113
+ },
114
+ },
115
+ },
107
116
  button: {
108
117
  elementType: 'button',
109
118
  },
@@ -1 +1 @@
1
- {"version":3,"file":"html-mapping.js","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-mapping.js","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAmB,MAAM,4BAA4B,CAAA;AAG7F,eAAO,MAAM,gBAAgB,SAAU,aAAa,WAAW,gBAAgB,SAc9E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAmB,MAAM,4BAA4B,CAAA;AAG7F,eAAO,MAAM,gBAAgB,SAAU,aAAa,WAAW,gBAAgB,SAmB9E,CAAA"}
@@ -3,16 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveAbilities = void 0;
4
4
  var utils_1 = require("./utils");
5
5
  var resolveAbilities = function (uidl, options) {
6
+ var propDefinitions = uidl.propDefinitions || {};
6
7
  if (uidl.propDefinitions) {
7
8
  for (var _i = 0, _a = Object.keys(uidl.propDefinitions); _i < _a.length; _i++) {
8
9
  var propKey = _a[_i];
9
10
  var prop = uidl.propDefinitions[propKey];
10
11
  if (prop.type === 'element' && typeof prop.defaultValue === 'object') {
11
- uidl.propDefinitions[propKey].defaultValue = (0, utils_1.insertLinks)(prop.defaultValue, options);
12
+ uidl.propDefinitions[propKey].defaultValue = (0, utils_1.insertLinks)(prop.defaultValue, options, false, undefined, propDefinitions);
12
13
  }
13
14
  }
14
15
  }
15
- uidl.node = (0, utils_1.insertLinks)(uidl.node, options);
16
+ uidl.node = (0, utils_1.insertLinks)(uidl.node, options, false, undefined, propDefinitions);
16
17
  };
17
18
  exports.resolveAbilities = resolveAbilities;
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":";;;AACA,iCAAqC;AAE9B,IAAM,gBAAgB,GAAG,UAAC,IAAmB,EAAE,OAAyB;IAC7E,IAAI,IAAI,CAAC,eAAe,EAAE;QACxB,KAAsB,UAAiC,EAAjC,KAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;YAApD,IAAM,OAAO,SAAA;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACpE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAA,mBAAW,EACtD,IAAI,CAAC,YAA+B,EACpC,OAAO,CACR,CAAA;aACF;SACF;KACF;IAED,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC,CAAA;AAdY,QAAA,gBAAgB,oBAc5B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":";;;AACA,iCAAqC;AAE9B,IAAM,gBAAgB,GAAG,UAAC,IAAmB,EAAE,OAAyB;IAC7E,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAA;IAElD,IAAI,IAAI,CAAC,eAAe,EAAE;QACxB,KAAsB,UAAiC,EAAjC,KAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;YAApD,IAAM,OAAO,SAAA;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACpE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAA,mBAAW,EACtD,IAAI,CAAC,YAA+B,EACpC,OAAO,EACP,KAAK,EACL,SAAS,EACT,eAAe,CAChB,CAAA;aACF;SACF;KACF;IAED,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;AAChF,CAAC,CAAA;AAnBY,QAAA,gBAAgB,oBAmB5B"}
@@ -1,4 +1,4 @@
1
- import { GeneratorOptions, UIDLLinkNode, UIDLElementNode } from '@teleporthq/teleport-types';
2
- export declare const insertLinks: (node: UIDLElementNode, options: GeneratorOptions, linkInParent?: boolean, parentNode?: UIDLElementNode) => UIDLElementNode;
1
+ import { GeneratorOptions, UIDLLinkNode, UIDLElementNode, UIDLPropDefinition } from '@teleporthq/teleport-types';
2
+ export declare const insertLinks: (node: UIDLElementNode, options: GeneratorOptions, linkInParent?: boolean, parentNode?: UIDLElementNode, propDefinitions?: Record<string, UIDLPropDefinition>) => UIDLElementNode;
3
3
  export declare const createLinkNode: (link: UIDLLinkNode, options: GeneratorOptions) => UIDLElementNode;
4
4
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAsCnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,KAC3B,eAuMF,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAEf,kBAAkB,EAEnB,MAAM,4BAA4B,CAAA;AAsCnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,oBACV,OAAO,MAAM,EAAE,kBAAkB,CAAC,KACnD,eA2OF,CAAA;AAsFD,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
@@ -44,94 +44,94 @@ var isAttributeSafeForAnchor = function (attrName) {
44
44
  attrName.startsWith('data-') ||
45
45
  ANCHOR_SAFE_ARIA_ATTRIBUTES.has(attrName));
46
46
  };
47
- var insertLinks = function (node, options, linkInParent, parentNode) {
48
- var _a, _b, _c, _d;
47
+ var insertLinks = function (node, options, linkInParent, parentNode, propDefinitions) {
48
+ var _a, _b, _c, _d, _e;
49
49
  if (linkInParent === void 0) { linkInParent = false; }
50
- var _e = node.content, abilities = _e.abilities, children = _e.children, elementType = _e.elementType, semanticType = _e.semanticType, _f = _e.attrs, attrs = _f === void 0 ? {} : _f;
50
+ var _f = node.content, abilities = _f.abilities, children = _f.children, elementType = _f.elementType, semanticType = _f.semanticType, _g = _f.attrs, attrs = _g === void 0 ? {} : _g;
51
51
  var linkInNode = linkInParent || !!(abilities === null || abilities === void 0 ? void 0 : abilities.link);
52
52
  node.content.children = children === null || children === void 0 ? void 0 : children.map(function (child) {
53
53
  var _a;
54
54
  if (child.type === 'element') {
55
- return (0, exports.insertLinks)(child, options, linkInNode, node);
55
+ return (0, exports.insertLinks)(child, options, linkInNode, node, propDefinitions);
56
56
  }
57
57
  if (child.type === 'repeat') {
58
- child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node);
58
+ child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node, propDefinitions);
59
59
  }
60
60
  if (child.type === 'conditional' && child.content.node.type === 'element') {
61
- child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node);
61
+ child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node, propDefinitions);
62
62
  }
63
63
  if (child.type === 'slot' && ((_a = child.content.fallback) === null || _a === void 0 ? void 0 : _a.type) === 'element') {
64
- child.content.fallback = (0, exports.insertLinks)(child.content.fallback, options, linkInNode, node);
64
+ child.content.fallback = (0, exports.insertLinks)(child.content.fallback, options, linkInNode, node, propDefinitions);
65
65
  }
66
66
  if (child.type === 'cms-list') {
67
67
  var _b = child.content.nodes, success = _b.success, error = _b.error, loading = _b.loading;
68
68
  if (success) {
69
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node);
69
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
70
70
  }
71
71
  if (error) {
72
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node);
72
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
73
73
  }
74
74
  if (loading) {
75
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node);
75
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
76
76
  }
77
77
  }
78
78
  if (child.type === 'cms-list-repeater') {
79
79
  var _c = child.content.nodes, list = _c.list, empty = _c.empty, loading = _c.loading;
80
80
  if (list) {
81
- child.content.nodes.list = (0, exports.insertLinks)(list, options, false, node);
81
+ child.content.nodes.list = (0, exports.insertLinks)(list, options, false, node, propDefinitions);
82
82
  }
83
83
  if (empty) {
84
- child.content.nodes.empty = (0, exports.insertLinks)(empty, options, false, node);
84
+ child.content.nodes.empty = (0, exports.insertLinks)(empty, options, false, node, propDefinitions);
85
85
  }
86
86
  if (loading) {
87
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node);
87
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
88
88
  }
89
89
  }
90
90
  if (child.type === 'cms-mixed-type') {
91
91
  if (child.content.mappings) {
92
92
  Object.keys(child.content.mappings).forEach(function (key) {
93
- child.content.mappings[key] = (0, exports.insertLinks)(child.content.mappings[key], options, false, node);
93
+ child.content.mappings[key] = (0, exports.insertLinks)(child.content.mappings[key], options, false, node, propDefinitions);
94
94
  });
95
95
  }
96
96
  var _d = child.content.nodes, fallback = _d.fallback, error = _d.error;
97
97
  if (fallback) {
98
- child.content.nodes.fallback = (0, exports.insertLinks)(fallback, options, false, node);
98
+ child.content.nodes.fallback = (0, exports.insertLinks)(fallback, options, false, node, propDefinitions);
99
99
  }
100
100
  if (error) {
101
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node);
101
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
102
102
  }
103
103
  }
104
104
  if (child.type === 'cms-item') {
105
105
  var _e = child.content.nodes, success = _e.success, error = _e.error, loading = _e.loading;
106
106
  if (success) {
107
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node);
107
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
108
108
  }
109
109
  if (error) {
110
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node);
110
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
111
111
  }
112
112
  if (loading) {
113
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node);
113
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
114
114
  }
115
115
  }
116
116
  if (child.type === 'data-source-list' || child.type === 'data-source-item') {
117
117
  var _f = child.content.nodes, success = _f.success, error = _f.error, loading = _f.loading;
118
118
  if (success) {
119
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node);
119
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
120
120
  }
121
121
  if (error) {
122
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node);
122
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
123
123
  }
124
124
  if (loading) {
125
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node);
125
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
126
126
  }
127
127
  }
128
128
  return child;
129
129
  });
130
- for (var _i = 0, _g = Object.keys(attrs); _i < _g.length; _i++) {
131
- var attrKey = _g[_i];
130
+ for (var _i = 0, _h = Object.keys(attrs); _i < _h.length; _i++) {
131
+ var attrKey = _h[_i];
132
132
  var attr = attrs[attrKey];
133
133
  if (attr.type === 'element') {
134
- node.content.attrs[attrKey] = (0, exports.insertLinks)(attr, options, false, node);
134
+ node.content.attrs[attrKey] = (0, exports.insertLinks)(attr, options, false, node, propDefinitions);
135
135
  }
136
136
  }
137
137
  if (abilities === null || abilities === void 0 ? void 0 : abilities.link) {
@@ -143,6 +143,14 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
143
143
  if ((_b = (_a = node.content) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) {
144
144
  delete node.content.attrs.type;
145
145
  }
146
+ /* Handle link-type prop references: when the link ability is a dynamic reference
147
+ to a prop with type 'link', route it through the navlink path so frameworks
148
+ can map it to their link component (e.g. Next.js <Link>) */
149
+ if (abilities.link.type === 'dynamic' &&
150
+ abilities.link.content.referenceType === 'prop' &&
151
+ ((_c = propDefinitions === null || propDefinitions === void 0 ? void 0 : propDefinitions[abilities.link.content.id]) === null || _c === void 0 ? void 0 : _c.type) === 'link') {
152
+ return handleLinkTypeProp(node, abilities.link, parentNode);
153
+ }
146
154
  /* We repalce buttons with link to use <a> tag's, to make the generated
147
155
  code to be semantically correct. */
148
156
  if (elementType === 'button') {
@@ -175,7 +183,7 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
175
183
  });
176
184
  }
177
185
  linkNode.content.children.push(node);
178
- if (parentNode === undefined || ((_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.content.style) === null || _c === void 0 ? void 0 : _c.display) === null || _d === void 0 ? void 0 : _d.content) === 'flex') {
186
+ if (parentNode === undefined || ((_e = (_d = parentNode === null || parentNode === void 0 ? void 0 : parentNode.content.style) === null || _d === void 0 ? void 0 : _d.display) === null || _e === void 0 ? void 0 : _e.content) === 'flex') {
179
187
  linkNode.content.style = __assign(__assign({}, linkNode.content.style), { display: { type: 'static', content: 'contents' } });
180
188
  }
181
189
  return linkNode;
@@ -183,6 +191,70 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
183
191
  return node;
184
192
  };
185
193
  exports.insertLinks = insertLinks;
194
+ var handleLinkTypeProp = function (node, linkRef, parentNode) {
195
+ var _a, _b;
196
+ var _c = node.content, elementType = _c.elementType, semanticType = _c.semanticType;
197
+ var propId = linkRef.content.id;
198
+ var linkAttrs = {
199
+ url: {
200
+ type: 'dynamic',
201
+ content: {
202
+ referenceType: 'prop',
203
+ id: propId,
204
+ refPath: ['url'],
205
+ },
206
+ },
207
+ target: {
208
+ type: 'expr',
209
+ content: "props.".concat(propId, "?.['newTab'] ? '_blank' : undefined"),
210
+ },
211
+ rel: {
212
+ type: 'expr',
213
+ content: "props.".concat(propId, "?.['newTab'] ? 'noreferrer noopener' : undefined"),
214
+ },
215
+ };
216
+ // For buttons: replace element type directly
217
+ if (elementType === 'button') {
218
+ node.content.elementType = 'prop-link';
219
+ node.content.semanticType = '';
220
+ node.content.attrs = __assign(__assign({}, node.content.attrs), linkAttrs);
221
+ return node;
222
+ }
223
+ // For text spans: replace element type directly
224
+ if (elementType === 'text' && semanticType === 'span') {
225
+ node.content.elementType = 'prop-link';
226
+ node.content.semanticType = '';
227
+ node.content.attrs = __assign(__assign({}, node.content.attrs), linkAttrs);
228
+ return node;
229
+ }
230
+ // For other elements: wrap with a link node
231
+ var linkNode = {
232
+ type: 'element',
233
+ content: {
234
+ elementType: 'prop-link',
235
+ attrs: __assign({}, linkAttrs),
236
+ children: [],
237
+ },
238
+ };
239
+ // Transfer safe attributes to the wrapper
240
+ if (node.type === 'element' && node.content.attrs) {
241
+ var safeAttrs_2 = {};
242
+ Object.keys(node.content.attrs).forEach(function (attrName) {
243
+ if (isAttributeSafeForAnchor(attrName)) {
244
+ safeAttrs_2[attrName] = __assign({}, node.content.attrs[attrName]);
245
+ }
246
+ });
247
+ linkNode.content.attrs = __assign(__assign({}, linkNode.content.attrs), safeAttrs_2);
248
+ Object.keys(safeAttrs_2).forEach(function (attrName) {
249
+ delete node.content.attrs[attrName];
250
+ });
251
+ }
252
+ linkNode.content.children.push(node);
253
+ if (parentNode === undefined || ((_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.content.style) === null || _a === void 0 ? void 0 : _a.display) === null || _b === void 0 ? void 0 : _b.content) === 'flex') {
254
+ linkNode.content.style = __assign(__assign({}, linkNode.content.style), { display: { type: 'static', content: 'contents' } });
255
+ }
256
+ return linkNode;
257
+ };
186
258
  var createLinkNode = function (link, options) {
187
259
  return {
188
260
  type: 'element',
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"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"}