@ledgerhq/lumen-ui-react 0.0.78 → 0.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ai-rules/RULES.md
CHANGED
|
@@ -357,83 +357,3 @@ Use ONLY the unique part after the last hyphen of the CSS variable name.
|
|
|
357
357
|
- Transform: replace `/` with `-`
|
|
358
358
|
- Result: `body-3` (transform `body/3` → `body-3`)
|
|
359
359
|
- Example: `/* heading/2-semi-bold */` → `heading-3-semi-bold`
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## React Native Components
|
|
364
|
-
|
|
365
|
-
Lumen also provides a comprehensive set of React Native components via `@ledgerhq/lumen-ui-rnative`.
|
|
366
|
-
|
|
367
|
-
### Available React Native Components
|
|
368
|
-
|
|
369
|
-
Below is a complete list of all available Lumen React Native components. Click any component name to view its documentation and interactive examples in Storybook.
|
|
370
|
-
|
|
371
|
-
**Components:**
|
|
372
|
-
|
|
373
|
-
- [Button](https://ldls.vercel.app/?path=/docs/action-button--docs) - Primary action button component
|
|
374
|
-
- [CardButton](https://ldls.vercel.app/?path=/docs/action-cardbutton--docs) - Card-style interactive button
|
|
375
|
-
- [IconButton](https://ldls.vercel.app/?path=/docs/action-iconbutton--docs) - Button with icon only
|
|
376
|
-
- [InteractiveIcon](https://ldls.vercel.app/?path=/docs/action-interactiveicon--docs) - Interactive icon with states
|
|
377
|
-
- [Link](https://ldls.vercel.app/?path=/docs/action-link--docs) - Hyperlink component
|
|
378
|
-
- [TileButton](https://ldls.vercel.app/?path=/docs/action-tilebutton--docs) - Interactive tile button
|
|
379
|
-
- [AmountDisplay](https://ldls.vercel.app/?path=/docs/communication-amountdisplay--docs) - Display formatted amounts with currency
|
|
380
|
-
- [Banner](https://ldls.vercel.app/?path=/docs/communication-banner--docs) - Alert and notification banners
|
|
381
|
-
- [Spinner](https://ldls.vercel.app/?path=/docs/communication-spinner--docs) - Loading spinner indicator
|
|
382
|
-
- [Spot](https://ldls.vercel.app/?path=/docs/communication-spot--docs) - Icon container with background
|
|
383
|
-
- [Subheader](https://ldls.vercel.app/?path=/docs/communication-subheader--docs) - Section subheader component
|
|
384
|
-
- [Tag](https://ldls.vercel.app/?path=/docs/communication-tag--docs) - Label and tag component
|
|
385
|
-
- [Tooltip](https://ldls.vercel.app/?path=/docs/communication-tooltip--docs) - Tooltip overlay component
|
|
386
|
-
- [BottomSheet](https://ldls.vercel.app/?path=/docs/containment-bottomsheet--docs) - Bottom sheet modal component
|
|
387
|
-
- [ListItem](https://ldls.vercel.app/?path=/docs/containment-listitem--docs) - List item with flexible composition
|
|
388
|
-
- [Tile](https://ldls.vercel.app/?path=/docs/containment-tile--docs) - Content container tile
|
|
389
|
-
- [AddressInput](https://ldls.vercel.app/?path=/docs/input-addressinput--docs) - Input field for cryptocurrency addresses
|
|
390
|
-
- [AmountInput](https://ldls.vercel.app/?path=/docs/input-amountinput--docs) - Input field for amount values
|
|
391
|
-
- [SearchInput](https://ldls.vercel.app/?path=/docs/input-searchinput--docs) - Search input field
|
|
392
|
-
- [TextInput](https://ldls.vercel.app/?path=/docs/input-textinput--docs) - Text input field
|
|
393
|
-
- [Divider](https://ldls.vercel.app/?path=/docs/layout-divider--docs) - Visual separator line
|
|
394
|
-
- [TabBar](https://ldls.vercel.app/?path=/docs/navigation-tabbar--docs) - Bottom tab navigation bar
|
|
395
|
-
- [Checkbox](https://ldls.vercel.app/?path=/docs/selection-checkbox--docs) - Checkbox input for selections
|
|
396
|
-
- [Select](https://ldls.vercel.app/?path=/docs/selection-select--docs) - Dropdown select component
|
|
397
|
-
- [Switch](https://ldls.vercel.app/?path=/docs/selection-switch--docs) - Toggle switch component
|
|
398
|
-
|
|
399
|
-
**Symbols:**
|
|
400
|
-
|
|
401
|
-
- [Icon](https://ldls.vercel.app/?path=/docs/symbols-interface-icons--docs) - Interface icon components
|
|
402
|
-
|
|
403
|
-
**Utility Components:**
|
|
404
|
-
|
|
405
|
-
- [Box](https://ldls.vercel.app/?path=/docs/utility-box--docs) - Layout container with style props
|
|
406
|
-
- [LinearGradient](https://ldls.vercel.app/?path=/docs/utility-lineargradient--docs) - Linear gradient component
|
|
407
|
-
- [Pressable](https://ldls.vercel.app/?path=/docs/utility-pressable--docs) - Pressable wrapper with visual feedback
|
|
408
|
-
- [RadialGradient](https://ldls.vercel.app/?path=/docs/utility-radialgradient--docs) - Radial gradient component
|
|
409
|
-
- [Text](https://ldls.vercel.app/?path=/docs/utility-text--docs) - Text component with style props
|
|
410
|
-
|
|
411
|
-
### React Native Style System
|
|
412
|
-
|
|
413
|
-
Lumen React Native uses a custom style system called `lx` that provides type-safe access to design tokens. Explore the style system documentation:
|
|
414
|
-
|
|
415
|
-
- [Colors](https://ldls.vercel.app/?path=/docs/style-system-theme-colors--docs) - Semantic color tokens for background, text, and borders
|
|
416
|
-
- [Spacings](https://ldls.vercel.app/?path=/docs/style-system-theme-spacings--docs) - Spacing scale for padding, margin, and gaps
|
|
417
|
-
- [Sizes](https://ldls.vercel.app/?path=/docs/style-system-theme-sizes--docs) - Size tokens for width and height
|
|
418
|
-
- [Shadows](https://ldls.vercel.app/?path=/docs/style-system-theme-shadows--docs) - Elevation shadow styles
|
|
419
|
-
- [Border Width](https://ldls.vercel.app/?path=/docs/style-system-theme-border-width--docs) - Border width tokens
|
|
420
|
-
- [Border Radius](https://ldls.vercel.app/?path=/docs/style-system-theme-border-radius--docs) - Border radius tokens
|
|
421
|
-
|
|
422
|
-
#### Style System Usage
|
|
423
|
-
|
|
424
|
-
```tsx
|
|
425
|
-
import { Box, Text } from '@ledgerhq/lumen-ui-rnative';
|
|
426
|
-
|
|
427
|
-
// Using lx prop for type-safe styling
|
|
428
|
-
<Box
|
|
429
|
-
lx={{
|
|
430
|
-
backgroundColor: 'base',
|
|
431
|
-
padding: 16,
|
|
432
|
-
borderRadius: 'md',
|
|
433
|
-
borderWidth: 1,
|
|
434
|
-
borderColor: 'muted',
|
|
435
|
-
}}
|
|
436
|
-
>
|
|
437
|
-
<Text lx={{ color: 'base', fontSize: 'body-2' }}>Styled with design tokens</Text>
|
|
438
|
-
</Box>;
|
|
439
|
-
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subheader.d.ts","sourceRoot":"","sources":["../../../../src/lib/Components/Subheader/Subheader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAEzB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,qDAKxB,mBAAmB,4CAYrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,+CAKtB,iBAAiB,4CAgBnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,2CAKxB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"Subheader.d.ts","sourceRoot":"","sources":["../../../../src/lib/Components/Subheader/Subheader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAEzB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,qDAKxB,mBAAmB,4CAYrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,+CAKtB,iBAAiB,4CAgBnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,2CAKxB,mBAAmB,4CAUrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;;2CAiBxB,CAAC;AAGH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,4BAG3B,sBAAsB,4CAMxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,sCAI9B,yBAAyB,4CAM3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,+CAKzB,oBAAoB,4CActB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,SAAS,sCAInB,cAAc,4CAMhB,CAAC"}
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cn as
|
|
3
|
-
import
|
|
4
|
-
import { Information as
|
|
5
|
-
import { ChevronRight as
|
|
6
|
-
import { InteractiveIcon as
|
|
7
|
-
const
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { cn as a } from "../../../libs/utils-shared/dist/index.js";
|
|
3
|
+
import c from "react";
|
|
4
|
+
import { Information as m } from "../../Symbols/Icons/Information.js";
|
|
5
|
+
import { ChevronRight as d } from "../../Symbols/Icons/ChevronRight.js";
|
|
6
|
+
import { InteractiveIcon as i } from "../InteractiveIcon/InteractiveIcon.js";
|
|
7
|
+
const N = ({
|
|
8
8
|
children: t,
|
|
9
9
|
as: e = "h2",
|
|
10
10
|
className: r,
|
|
11
|
-
...
|
|
12
|
-
}) => /* @__PURE__ */
|
|
11
|
+
...n
|
|
12
|
+
}) => /* @__PURE__ */ o(
|
|
13
13
|
e,
|
|
14
14
|
{
|
|
15
|
-
className:
|
|
15
|
+
className: a(
|
|
16
16
|
"min-w-0 truncate heading-4-semi-bold text-base",
|
|
17
17
|
r
|
|
18
18
|
),
|
|
19
|
-
...
|
|
19
|
+
...n,
|
|
20
20
|
children: t
|
|
21
21
|
}
|
|
22
|
-
),
|
|
22
|
+
), S = ({
|
|
23
23
|
children: t,
|
|
24
24
|
onClick: e,
|
|
25
25
|
className: r,
|
|
26
|
-
...
|
|
27
|
-
}) => /* @__PURE__ */
|
|
26
|
+
...n
|
|
27
|
+
}) => /* @__PURE__ */ o(
|
|
28
28
|
e ? "button" : "div",
|
|
29
29
|
{
|
|
30
|
-
className:
|
|
30
|
+
className: a(
|
|
31
31
|
"flex items-center gap-4",
|
|
32
32
|
e && "cursor-pointer",
|
|
33
33
|
r
|
|
34
34
|
),
|
|
35
35
|
onClick: e,
|
|
36
|
-
...
|
|
36
|
+
...n,
|
|
37
37
|
children: t
|
|
38
38
|
}
|
|
39
39
|
), y = ({
|
|
40
40
|
value: t,
|
|
41
41
|
format: e,
|
|
42
42
|
className: r,
|
|
43
|
-
...
|
|
43
|
+
...n
|
|
44
44
|
}) => {
|
|
45
|
-
const
|
|
46
|
-
return /* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
const s = e ? e(t) : `(${t})`;
|
|
46
|
+
return /* @__PURE__ */ o(
|
|
47
|
+
"span",
|
|
48
|
+
{
|
|
49
|
+
className: a("shrink-0 pl-2 body-2 text-muted", r),
|
|
50
|
+
...n,
|
|
51
|
+
children: s
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}, u = c.forwardRef(({ iconType: t = "stroked", className: e, ...r }, n) => /* @__PURE__ */ o("span", { className: "flex shrink-0 items-center", children: /* @__PURE__ */ o(
|
|
55
|
+
i,
|
|
49
56
|
{
|
|
50
|
-
ref:
|
|
57
|
+
ref: n,
|
|
51
58
|
iconType: t,
|
|
52
59
|
className: e,
|
|
53
60
|
"aria-label": "More information",
|
|
54
61
|
...r,
|
|
55
|
-
children: /* @__PURE__ */
|
|
62
|
+
children: /* @__PURE__ */ o(m, { size: 16 })
|
|
56
63
|
}
|
|
57
64
|
) }));
|
|
58
65
|
u.displayName = "SubheaderInfo";
|
|
59
66
|
const I = ({
|
|
60
67
|
className: t,
|
|
61
68
|
...e
|
|
62
|
-
}) => /* @__PURE__ */
|
|
63
|
-
"span",
|
|
64
|
-
{
|
|
65
|
-
className: s("shrink-0 self-center text-muted", t),
|
|
66
|
-
...e,
|
|
67
|
-
children: /* @__PURE__ */ n(m, { size: 16 })
|
|
68
|
-
}
|
|
69
|
-
), g = ({
|
|
69
|
+
}) => /* @__PURE__ */ o(i, { className: "-ml-2", iconType: "stroked", ...e, children: /* @__PURE__ */ o(d, { size: 20 }) }), g = ({
|
|
70
70
|
children: t,
|
|
71
71
|
className: e,
|
|
72
72
|
...r
|
|
73
|
-
}) => /* @__PURE__ */
|
|
73
|
+
}) => /* @__PURE__ */ o("p", { className: a("body-3 text-muted", e), ...r, children: t }), v = ({
|
|
74
74
|
children: t,
|
|
75
75
|
onClick: e,
|
|
76
76
|
className: r,
|
|
77
|
-
...
|
|
78
|
-
}) => /* @__PURE__ */
|
|
77
|
+
...n
|
|
78
|
+
}) => /* @__PURE__ */ o(
|
|
79
79
|
"button",
|
|
80
80
|
{
|
|
81
81
|
type: "button",
|
|
82
82
|
onClick: e,
|
|
83
|
-
className:
|
|
83
|
+
className: a(
|
|
84
84
|
"ml-auto shrink-0 cursor-pointer pl-8 body-2 text-interactive",
|
|
85
85
|
r
|
|
86
86
|
),
|
|
87
|
-
...
|
|
87
|
+
...n,
|
|
88
88
|
children: t
|
|
89
89
|
}
|
|
90
90
|
), w = ({
|
|
91
91
|
className: t,
|
|
92
92
|
children: e,
|
|
93
93
|
...r
|
|
94
|
-
}) => /* @__PURE__ */
|
|
94
|
+
}) => /* @__PURE__ */ o("div", { className: a("flex flex-col gap-4", t), ...r, children: e });
|
|
95
95
|
export {
|
|
96
96
|
w as Subheader,
|
|
97
97
|
v as SubheaderAction,
|
|
98
98
|
y as SubheaderCount,
|
|
99
99
|
g as SubheaderDescription,
|
|
100
100
|
u as SubheaderInfo,
|
|
101
|
-
|
|
101
|
+
S as SubheaderRow,
|
|
102
102
|
I as SubheaderShowMore,
|
|
103
|
-
|
|
103
|
+
N as SubheaderTitle
|
|
104
104
|
};
|
package/dist/package.json
CHANGED