@unbxd-ui/unbxd-react-components 0.3.0 → 0.3.2-beta.1

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 (42) hide show
  1. package/assets/desktop.svg +6 -0
  2. package/assets/map-pin.svg +6 -0
  3. package/assets/p1.svg +20 -0
  4. package/assets/p2.svg +22 -0
  5. package/assets/p3.svg +19 -0
  6. package/assets/p4.svg +22 -0
  7. package/assets/p5.svg +23 -0
  8. package/components/Button/Button.js +4 -2
  9. package/components/Button/Button.stories.js +16 -3
  10. package/components/Button/buttonTheme.css +1 -1
  11. package/components/Form/Dropdown.js +77 -10
  12. package/components/Form/SearchableDropdown.js +22 -15
  13. package/components/Form/SelectedPills.js +126 -0
  14. package/components/Form/SummarySelection.js +46 -0
  15. package/components/Form/formCore.css +1 -1
  16. package/components/Form/stories/Dropdown.stories.js +160 -2
  17. package/components/Form/stories/SearchableDropdown.stories.js +173 -3
  18. package/components/Form/stories/ServerPaginatedDropdown.stories.js +166 -94
  19. package/components/Form/summarySelection.css +1 -0
  20. package/components/Link/Link.js +139 -0
  21. package/components/Link/Link.stories.js +489 -0
  22. package/components/Link/index.js +28 -0
  23. package/components/Link/linkCore.css +1 -0
  24. package/components/Link/linkTheme.css +1 -0
  25. package/components/PIDItemComponent/PIDItemComponent.js +72 -0
  26. package/components/PIDItemComponent/PIDItemComponent.stories.js +175 -0
  27. package/components/PIDItemComponent/PIDItemComponentCore.css +1 -0
  28. package/components/PIDItemComponent/index.js +9 -0
  29. package/components/UIDItemComponent/UIDItemComponent.js +138 -0
  30. package/components/UIDItemComponent/UIDItemComponent.stories.js +51 -0
  31. package/components/UIDItemComponent/UIDItemComponentCore.css +1 -0
  32. package/components/UIDItemComponent/index.js +9 -0
  33. package/components/core.css +2 -2
  34. package/components/core.scss +13 -10
  35. package/components/index.js +49 -10
  36. package/components/theme.css +2 -2
  37. package/components/theme.scss +3 -1
  38. package/core/index.js +7 -0
  39. package/core/lazyLoadImage.js +56 -0
  40. package/core/utils.js +6 -1
  41. package/index.js +48 -0
  42. package/package.json +5 -4
@@ -0,0 +1,489 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.WithUnderlineOnHover = exports.WithTextDecoration = exports.Success = exports.Sizes = exports.Secondary = exports.PropValidationTests = exports.Primary = exports.Interactive = exports.ExternalLinks = exports.Disabled = exports.Danger = exports.ButtonLinks = exports.AllVariations = exports.AllAppearances = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Link = _interopRequireWildcard(require("./Link"));
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ // Styles are loaded globally in .storybook/preview.js
13
+ var _default = exports["default"] = {
14
+ title: 'Components/Link',
15
+ component: _Link["default"],
16
+ parameters: {
17
+ layout: 'centered',
18
+ docs: {
19
+ story: {
20
+ inline: true
21
+ }
22
+ },
23
+ backgrounds: {
24
+ "default": 'light',
25
+ values: [{
26
+ name: 'light',
27
+ value: '#ffffff'
28
+ }, {
29
+ name: 'dark',
30
+ value: '#333333'
31
+ }]
32
+ }
33
+ },
34
+ tags: ['autodocs'],
35
+ argTypes: {
36
+ appearance: {
37
+ control: 'select',
38
+ options: Object.values(_Link.LinkAppearance),
39
+ description: 'The visual style of the link'
40
+ },
41
+ size: {
42
+ control: 'select',
43
+ options: Object.values(_Link.LinkSize),
44
+ description: 'The size of the link'
45
+ },
46
+ target: {
47
+ control: 'select',
48
+ options: Object.values(_Link.LinkTarget),
49
+ description: 'The target attribute for anchor links'
50
+ },
51
+ disabled: {
52
+ control: 'boolean',
53
+ description: 'Whether the link is disabled'
54
+ },
55
+ textDecoration: {
56
+ control: 'select',
57
+ options: ['underline', 'none', 'overline', 'line-through'],
58
+ description: 'Text decoration style for the link'
59
+ },
60
+ underlineOnHover: {
61
+ control: 'boolean',
62
+ description: 'Whether to show underline on hover (only if not already underlined)'
63
+ },
64
+ external: {
65
+ control: 'boolean',
66
+ description: 'Whether this is an external link (shows external icon)'
67
+ },
68
+ href: {
69
+ control: 'text',
70
+ description: 'URL for the link (renders as anchor tag when provided)'
71
+ },
72
+ onClick: {
73
+ action: 'clicked',
74
+ description: 'Link click handler'
75
+ },
76
+ 'data-qa-id': {
77
+ control: 'text',
78
+ description: 'QA automation identifier for testing'
79
+ },
80
+ children: {
81
+ control: 'text',
82
+ description: 'Link content'
83
+ },
84
+ className: {
85
+ control: 'text',
86
+ description: 'Additional CSS classes'
87
+ }
88
+ }
89
+ }; // Template for stories
90
+ var Template = function Template(args) {
91
+ return /*#__PURE__*/_react["default"].createElement(_Link["default"], args);
92
+ };
93
+
94
+ // Primary link
95
+ var Primary = exports.Primary = Template.bind({});
96
+ Primary.args = {
97
+ children: 'Primary Link',
98
+ appearance: _Link.LinkAppearance.primary,
99
+ size: _Link.LinkSize.MEDIUM,
100
+ textDecoration: 'none',
101
+ onClick: undefined // Remove interactive behavior for display
102
+ };
103
+
104
+ // Secondary link
105
+ var Secondary = exports.Secondary = Template.bind({});
106
+ Secondary.args = {
107
+ children: 'Secondary Link',
108
+ appearance: _Link.LinkAppearance.secondary,
109
+ size: _Link.LinkSize.MEDIUM,
110
+ textDecoration: 'none',
111
+ onClick: undefined // Remove interactive behavior for display
112
+ };
113
+
114
+ // Danger link
115
+ var Danger = exports.Danger = Template.bind({});
116
+ Danger.args = {
117
+ children: 'Danger Link',
118
+ appearance: _Link.LinkAppearance.danger,
119
+ size: _Link.LinkSize.MEDIUM,
120
+ textDecoration: 'none',
121
+ onClick: undefined // Remove interactive behavior for display
122
+ };
123
+
124
+ // Success link
125
+ var Success = exports.Success = Template.bind({});
126
+ Success.args = {
127
+ children: 'Success Link',
128
+ appearance: _Link.LinkAppearance.success,
129
+ size: _Link.LinkSize.MEDIUM,
130
+ textDecoration: 'none',
131
+ onClick: undefined // Remove interactive behavior for display
132
+ };
133
+
134
+ // Link with text decoration
135
+ var WithTextDecoration = exports.WithTextDecoration = Template.bind({});
136
+ WithTextDecoration.args = {
137
+ children: 'Link with custom decoration',
138
+ textDecoration: 'underline',
139
+ appearance: _Link.LinkAppearance.primary,
140
+ onClick: undefined // Remove interactive behavior for display
141
+ };
142
+
143
+ // Link with underline on hover
144
+ var WithUnderlineOnHover = exports.WithUnderlineOnHover = Template.bind({});
145
+ WithUnderlineOnHover.args = {
146
+ children: 'Hover me to see underline',
147
+ appearance: _Link.LinkAppearance.primary,
148
+ underlineOnHover: true,
149
+ onClick: undefined // Remove interactive behavior for display
150
+ };
151
+
152
+ // Link sizes
153
+ var Sizes = exports.Sizes = function Sizes() {
154
+ return /*#__PURE__*/_react["default"].createElement("div", {
155
+ style: {
156
+ display: 'flex',
157
+ flexDirection: 'column',
158
+ gap: '1rem',
159
+ alignItems: 'flex-start'
160
+ }
161
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
162
+ size: _Link.LinkSize.SMALL,
163
+ appearance: _Link.LinkAppearance.primary
164
+ }, "Small Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
165
+ size: _Link.LinkSize.MEDIUM,
166
+ appearance: _Link.LinkAppearance.primary
167
+ }, "Medium Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
168
+ size: _Link.LinkSize.LARGE,
169
+ appearance: _Link.LinkAppearance.primary
170
+ }, "Large Link"));
171
+ };
172
+
173
+ // Disabled state
174
+ var Disabled = exports.Disabled = Template.bind({});
175
+ Disabled.args = {
176
+ children: 'Disabled Link',
177
+ disabled: true,
178
+ appearance: _Link.LinkAppearance.primary,
179
+ size: _Link.LinkSize.MEDIUM,
180
+ textDecoration: 'none',
181
+ onClick: undefined // Remove interactive behavior for display
182
+ };
183
+
184
+ // External links
185
+ var ExternalLinks = exports.ExternalLinks = function ExternalLinks() {
186
+ return /*#__PURE__*/_react["default"].createElement("div", {
187
+ style: {
188
+ display: 'flex',
189
+ flexDirection: 'column',
190
+ gap: '1rem',
191
+ alignItems: 'flex-start'
192
+ }
193
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
194
+ href: "https://google.com",
195
+ target: _Link.LinkTarget.BLANK,
196
+ external: true,
197
+ appearance: _Link.LinkAppearance.primary
198
+ }, "External Link with Icon"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
199
+ href: "https://github.com",
200
+ target: _Link.LinkTarget.BLANK,
201
+ external: true,
202
+ appearance: _Link.LinkAppearance.secondary
203
+ }, "GitHub Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
204
+ href: "/internal-page",
205
+ appearance: _Link.LinkAppearance.primary
206
+ }, "Internal Link"));
207
+ };
208
+
209
+ // All appearances
210
+ var AllAppearances = exports.AllAppearances = function AllAppearances() {
211
+ return /*#__PURE__*/_react["default"].createElement("div", {
212
+ style: {
213
+ display: 'flex',
214
+ flexDirection: 'column',
215
+ gap: '1rem',
216
+ alignItems: 'flex-start'
217
+ }
218
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
219
+ appearance: _Link.LinkAppearance.primary
220
+ }, "Primary Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
221
+ appearance: _Link.LinkAppearance.secondary
222
+ }, "Secondary Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
223
+ appearance: _Link.LinkAppearance.danger
224
+ }, "Danger Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
225
+ appearance: _Link.LinkAppearance.success
226
+ }, "Success Link"));
227
+ };
228
+
229
+ // Button-style links (no href)
230
+ var ButtonLinks = exports.ButtonLinks = function ButtonLinks() {
231
+ return /*#__PURE__*/_react["default"].createElement("div", {
232
+ style: {
233
+ display: 'flex',
234
+ gap: '1rem',
235
+ alignItems: 'center'
236
+ }
237
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
238
+ appearance: _Link.LinkAppearance.primary,
239
+ onClick: function onClick() {
240
+ return alert('Button link clicked!');
241
+ }
242
+ }, "Button Link"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
243
+ appearance: _Link.LinkAppearance.secondary,
244
+ onClick: function onClick() {
245
+ return alert('Router link clicked!');
246
+ }
247
+ }, "Router Link"));
248
+ };
249
+
250
+ // Mixed states and variations
251
+ var AllVariations = exports.AllVariations = function AllVariations() {
252
+ return /*#__PURE__*/_react["default"].createElement("div", {
253
+ style: {
254
+ display: 'flex',
255
+ flexDirection: 'column',
256
+ gap: '2rem'
257
+ }
258
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
259
+ style: {
260
+ margin: '0 0 1rem 0'
261
+ }
262
+ }, "Regular Links"), /*#__PURE__*/_react["default"].createElement("div", {
263
+ style: {
264
+ display: 'flex',
265
+ gap: '1rem',
266
+ flexWrap: 'wrap'
267
+ }
268
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
269
+ appearance: _Link.LinkAppearance.primary
270
+ }, "Primary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
271
+ appearance: _Link.LinkAppearance.secondary
272
+ }, "Secondary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
273
+ appearance: _Link.LinkAppearance.danger
274
+ }, "Danger"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
275
+ appearance: _Link.LinkAppearance.success
276
+ }, "Success"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
277
+ style: {
278
+ margin: '0 0 1rem 0'
279
+ }
280
+ }, "Links with Text Decoration"), /*#__PURE__*/_react["default"].createElement("div", {
281
+ style: {
282
+ display: 'flex',
283
+ gap: '1rem',
284
+ flexWrap: 'wrap'
285
+ }
286
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
287
+ appearance: _Link.LinkAppearance.primary,
288
+ textDecoration: "underline"
289
+ }, "Underlined"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
290
+ appearance: _Link.LinkAppearance.primary,
291
+ textDecoration: "none"
292
+ }, "No decoration"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
293
+ appearance: _Link.LinkAppearance.primary,
294
+ textDecoration: "overline"
295
+ }, "Overlined"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
296
+ appearance: _Link.LinkAppearance.primary,
297
+ textDecoration: "line-through"
298
+ }, "Line-through"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
299
+ appearance: _Link.LinkAppearance.primary,
300
+ underlineOnHover: true
301
+ }, "Underline on hover"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
302
+ style: {
303
+ margin: '0 0 1rem 0'
304
+ }
305
+ }, "Disabled Links"), /*#__PURE__*/_react["default"].createElement("div", {
306
+ style: {
307
+ display: 'flex',
308
+ gap: '1rem',
309
+ flexWrap: 'wrap'
310
+ }
311
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
312
+ appearance: _Link.LinkAppearance.primary,
313
+ disabled: true
314
+ }, "Primary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
315
+ appearance: _Link.LinkAppearance.secondary,
316
+ disabled: true
317
+ }, "Secondary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
318
+ appearance: _Link.LinkAppearance.danger,
319
+ disabled: true
320
+ }, "Danger"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
321
+ appearance: _Link.LinkAppearance.success,
322
+ disabled: true
323
+ }, "Success"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
324
+ style: {
325
+ margin: '0 0 1rem 0'
326
+ }
327
+ }, "External Links"), /*#__PURE__*/_react["default"].createElement("div", {
328
+ style: {
329
+ display: 'flex',
330
+ gap: '1rem',
331
+ flexWrap: 'wrap'
332
+ }
333
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
334
+ href: "https://example.com",
335
+ target: _Link.LinkTarget.BLANK,
336
+ external: true,
337
+ appearance: _Link.LinkAppearance.primary
338
+ }, "Example.com"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
339
+ href: "https://github.com",
340
+ target: _Link.LinkTarget.BLANK,
341
+ external: true,
342
+ appearance: _Link.LinkAppearance.secondary
343
+ }, "GitHub"))));
344
+ };
345
+
346
+ // Prop validation tests
347
+ var PropValidationTests = exports.PropValidationTests = function PropValidationTests() {
348
+ return /*#__PURE__*/_react["default"].createElement("div", {
349
+ style: {
350
+ display: 'flex',
351
+ flexDirection: 'column',
352
+ gap: '2rem'
353
+ }
354
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
355
+ style: {
356
+ margin: '0 0 1rem 0'
357
+ }
358
+ }, "Text Decoration Validation"), /*#__PURE__*/_react["default"].createElement("div", {
359
+ style: {
360
+ display: 'flex',
361
+ gap: '1rem',
362
+ flexWrap: 'wrap'
363
+ }
364
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
365
+ textDecoration: "none"
366
+ }, "None (default)"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
367
+ textDecoration: "underline"
368
+ }, "Underline"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
369
+ textDecoration: "overline"
370
+ }, "Overline"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
371
+ textDecoration: "line-through"
372
+ }, "Line-through"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
373
+ style: {
374
+ margin: '0 0 1rem 0'
375
+ }
376
+ }, "Appearance Validation"), /*#__PURE__*/_react["default"].createElement("div", {
377
+ style: {
378
+ display: 'flex',
379
+ gap: '1rem',
380
+ flexWrap: 'wrap'
381
+ }
382
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
383
+ appearance: _Link.LinkAppearance.primary
384
+ }, "Primary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
385
+ appearance: _Link.LinkAppearance.secondary
386
+ }, "Secondary"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
387
+ appearance: _Link.LinkAppearance.danger
388
+ }, "Danger"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
389
+ appearance: _Link.LinkAppearance.success
390
+ }, "Success"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
391
+ style: {
392
+ margin: '0 0 1rem 0'
393
+ }
394
+ }, "Size Validation"), /*#__PURE__*/_react["default"].createElement("div", {
395
+ style: {
396
+ display: 'flex',
397
+ gap: '1rem',
398
+ alignItems: 'baseline'
399
+ }
400
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
401
+ size: _Link.LinkSize.SMALL
402
+ }, "Small"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
403
+ size: _Link.LinkSize.MEDIUM
404
+ }, "Medium"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
405
+ size: _Link.LinkSize.LARGE
406
+ }, "Large"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
407
+ style: {
408
+ margin: '0 0 1rem 0'
409
+ }
410
+ }, "Target Validation"), /*#__PURE__*/_react["default"].createElement("div", {
411
+ style: {
412
+ display: 'flex',
413
+ gap: '1rem',
414
+ flexWrap: 'wrap'
415
+ }
416
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
417
+ target: _Link.LinkTarget.SELF,
418
+ onClick: undefined,
419
+ tabIndex: -1
420
+ }, "Self"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
421
+ target: _Link.LinkTarget.BLANK,
422
+ external: true,
423
+ onClick: undefined,
424
+ tabIndex: -1
425
+ }, "Blank"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
426
+ target: _Link.LinkTarget.PARENT,
427
+ onClick: undefined,
428
+ tabIndex: -1
429
+ }, "Parent"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
430
+ target: _Link.LinkTarget.TOP,
431
+ onClick: undefined,
432
+ tabIndex: -1
433
+ }, "Top"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
434
+ style: {
435
+ margin: '0 0 1rem 0'
436
+ }
437
+ }, "Boolean Props Validation"), /*#__PURE__*/_react["default"].createElement("div", {
438
+ style: {
439
+ display: 'flex',
440
+ gap: '1rem',
441
+ flexWrap: 'wrap'
442
+ }
443
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
444
+ disabled: true
445
+ }, "Disabled"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
446
+ external: true,
447
+ href: "javascript:void(0)",
448
+ target: _Link.LinkTarget.BLANK
449
+ }, "External"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
450
+ className: "custom-class"
451
+ }, "Custom Class"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
452
+ style: {
453
+ margin: '0 0 1rem 0'
454
+ }
455
+ }, "Combined Props Test"), /*#__PURE__*/_react["default"].createElement("div", {
456
+ style: {
457
+ display: 'flex',
458
+ gap: '1rem',
459
+ flexWrap: 'wrap'
460
+ }
461
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
462
+ appearance: _Link.LinkAppearance.primary,
463
+ size: _Link.LinkSize.LARGE,
464
+ textDecoration: "underline",
465
+ href: "https://example.com",
466
+ target: _Link.LinkTarget.BLANK,
467
+ external: true
468
+ }, "All Props Combined"), /*#__PURE__*/_react["default"].createElement(_Link["default"], {
469
+ appearance: _Link.LinkAppearance.danger,
470
+ size: _Link.LinkSize.SMALL,
471
+ textDecoration: "line-through",
472
+ disabled: true
473
+ }, "Disabled with Decoration"))));
474
+ };
475
+
476
+ // Interactive example with all controls
477
+ var Interactive = exports.Interactive = Template.bind({});
478
+ Interactive.args = {
479
+ children: 'Interactive Link',
480
+ appearance: _Link.LinkAppearance.primary,
481
+ size: _Link.LinkSize.MEDIUM,
482
+ disabled: false,
483
+ textDecoration: 'none',
484
+ underlineOnHover: false,
485
+ external: false,
486
+ href: '',
487
+ target: _Link.LinkTarget.SELF,
488
+ 'data-qa-id': 'interactive-link'
489
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "LinkAppearance", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _Link.LinkAppearance;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "LinkSize", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _Link.LinkSize;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "LinkTarget", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _Link.LinkTarget;
23
+ }
24
+ });
25
+ exports["default"] = void 0;
26
+ var _Link = _interopRequireWildcard(require("./Link"));
27
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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); }
28
+ var _default = exports["default"] = _Link["default"];
@@ -0,0 +1 @@
1
+ .RCB-link{display:inline;cursor:pointer;font-family:inherit;transition:color 0.2s ease, text-decoration 0.2s ease;background:none;border:none;padding:0;margin:0;font-weight:600}.RCB-link-disabled{cursor:not-allowed;opacity:0.6}.RCB-link-underline{text-decoration:underline}.RCB-link-none{text-decoration:none}.RCB-link-overline{text-decoration:overline}.RCB-link-line-through{text-decoration:line-through}.RCB-link-underline-on-hover:hover{text-decoration:underline}.RCB-link-external-icon{margin-left:4px;font-size:0.8em;line-height:1;display:inline}.RCB-link-small{font-size:12px;line-height:1.4}.RCB-link-medium{font-size:14px;line-height:1.5}.RCB-link-large{font-size:16px;line-height:1.6}
@@ -0,0 +1 @@
1
+ .RCB-link-primary{color:#3e71f2}.RCB-link-primary:hover{color:#3865d9}.RCB-link-primary:active{color:#3e71f2}.RCB-link-primary:visited{color:#6f42c1}.RCB-link-secondary{color:#6c757d;text-decoration:none}.RCB-link-secondary:hover{color:#495057;text-decoration:underline}.RCB-link-secondary:active{color:#343a40}.RCB-link-danger{color:#dc3545;text-decoration:none}.RCB-link-danger:hover{color:#c82333;text-decoration:underline}.RCB-link-danger:active{color:#bd2130}.RCB-link-success{color:#28a745;text-decoration:none}.RCB-link-success:hover{color:#218838;text-decoration:underline}.RCB-link-success:active{color:#1e7e34}.RCB-link-external .RCB-link-external-icon{color:currentColor;opacity:0.7}.RCB-link-external:hover .RCB-link-external-icon{opacity:1}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = PIDItemComponent;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _lazyLoadImage = _interopRequireDefault(require("../../core/lazyLoadImage"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ function PIDItemComponent(props) {
11
+ var DEFAULT_IMAGE = "https://libraries.unbxdapi.com/sdk-assets/defaultImage.svg";
12
+
13
+ // Desrructure props that are needed for client as well as server pagination types.
14
+ var _props$itemData = props.itemData,
15
+ itemData = _props$itemData === void 0 ? {} : _props$itemData,
16
+ _props$paginationType = props.paginationType,
17
+ clientPaginationType = _props$paginationType === void 0 ? "" : _props$paginationType,
18
+ _props$selectItem = props.selectItem,
19
+ clientSelectItem = _props$selectItem === void 0 ? function () {} : _props$selectItem,
20
+ _props$keysMap = props.keysMap,
21
+ clientKeysMap = _props$keysMap === void 0 ? {} : _props$keysMap,
22
+ _props$data = props.data,
23
+ data = _props$data === void 0 ? {} : _props$data,
24
+ _props$index = props.index,
25
+ index = _props$index === void 0 ? 0 : _props$index,
26
+ _props$style = props.style,
27
+ style = _props$style === void 0 ? {} : _props$style;
28
+ var _data$items = data.items,
29
+ items = _data$items === void 0 ? [] : _data$items,
30
+ _data$paginationType = data.paginationType,
31
+ serverPaginationType = _data$paginationType === void 0 ? "" : _data$paginationType,
32
+ _data$selectItem = data.selectItem,
33
+ serverSelectItem = _data$selectItem === void 0 ? function () {} : _data$selectItem,
34
+ _data$keysMap = data.keysMap,
35
+ serverKeysMap = _data$keysMap === void 0 ? {} : _data$keysMap;
36
+
37
+ // Determine the pagination type
38
+ var paginationType = clientPaginationType ? "CLIENT" : serverPaginationType;
39
+
40
+ // Update the item data and select item function based on the pagination type
41
+ var updatedItemData = paginationType !== 'SERVER' ? itemData : items[index] || {};
42
+ var updatedSelectItem = paginationType !== 'SERVER' ? clientSelectItem : serverSelectItem;
43
+ var updatedKeysMap = paginationType !== 'SERVER' ? clientKeysMap : serverKeysMap || {};
44
+
45
+ // Destructue the items value with its respective keys map provided in the props
46
+ var _updatedKeysMap$uniqu = updatedKeysMap.uniqueIdMap,
47
+ uniqueIdMap = _updatedKeysMap$uniqu === void 0 ? "uniqueId" : _updatedKeysMap$uniqu,
48
+ _updatedKeysMap$image = updatedKeysMap.imageUrlMap,
49
+ imageUrlMap = _updatedKeysMap$image === void 0 ? "imageUrl" : _updatedKeysMap$image,
50
+ _updatedKeysMap$title = updatedKeysMap.titleMap,
51
+ titleMap = _updatedKeysMap$title === void 0 ? "title" : _updatedKeysMap$title;
52
+ var title = updatedItemData[titleMap];
53
+ var imageUrl = Array.isArray(updatedItemData[imageUrlMap]) ? updatedItemData[imageUrlMap][0] : updatedItemData[imageUrlMap] ? updatedItemData[imageUrlMap] : DEFAULT_IMAGE;
54
+ var uniqueId = updatedItemData[uniqueIdMap];
55
+ return /*#__PURE__*/_react["default"].createElement("div", {
56
+ className: "RCB-list-item RCB-pid-dd-item",
57
+ style: style,
58
+ onClick: function onClick() {
59
+ return updatedSelectItem(updatedItemData);
60
+ }
61
+ }, /*#__PURE__*/_react["default"].createElement(_lazyLoadImage["default"], {
62
+ id: uniqueId,
63
+ key: uniqueId,
64
+ className: "RCB-pid-product-image",
65
+ src: imageUrl
66
+ }), /*#__PURE__*/_react["default"].createElement("div", null, title && /*#__PURE__*/_react["default"].createElement("span", {
67
+ className: "RCB-title",
68
+ title: title
69
+ }, title), /*#__PURE__*/_react["default"].createElement("span", {
70
+ className: "RCB-pid-id show small-text text-transform-none clip-content"
71
+ }, " ID: ", uniqueId, " ")));
72
+ }