@ledgerhq/lumen-ui-rnative 0.1.4 → 0.1.6

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 (147) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  3. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.js +5 -1
  4. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.d.ts +1 -1
  5. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  6. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.js +34 -61
  7. package/dist/src/lib/Components/SegmentedControl/SegmentedControlContext.d.ts +1 -0
  8. package/dist/src/lib/Components/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  9. package/dist/src/lib/Components/SegmentedControl/types.d.ts +12 -2
  10. package/dist/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
  11. package/dist/src/lib/Components/SegmentedControl/usePillLayout.d.ts +19 -0
  12. package/dist/src/lib/Components/SegmentedControl/usePillLayout.d.ts.map +1 -0
  13. package/dist/src/lib/Components/SegmentedControl/usePillLayout.js +46 -0
  14. package/dist/src/lib/Components/TileButton/TileButton.js +2 -2
  15. package/jest.config.ts +0 -1
  16. package/package.json +1 -1
  17. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +8 -1
  18. package/src/lib/Components/SegmentedControl/SegmentedControl.mdx +1 -38
  19. package/src/lib/Components/SegmentedControl/SegmentedControl.stories.tsx +35 -19
  20. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +61 -77
  21. package/src/lib/Components/SegmentedControl/SegmentedControlContext.tsx +1 -0
  22. package/src/lib/Components/SegmentedControl/types.ts +12 -2
  23. package/src/lib/Components/SegmentedControl/usePillLayout.ts +76 -0
  24. package/src/lib/Components/TileButton/TileButton.tsx +2 -2
  25. package/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.stories.tsx +1 -1
  26. package/tsconfig.json +3 -16
  27. package/tsconfig.lib.json +5 -0
  28. package/dist/src/lib/Animations/Pulse/Pulse.stories.d.ts +0 -9
  29. package/dist/src/lib/Animations/Pulse/Pulse.stories.d.ts.map +0 -1
  30. package/dist/src/lib/Animations/Pulse/Pulse.stories.js +0 -38
  31. package/dist/src/lib/Animations/Spin/Spin.stories.d.ts +0 -9
  32. package/dist/src/lib/Animations/Spin/Spin.stories.d.ts.map +0 -1
  33. package/dist/src/lib/Animations/Spin/Spin.stories.js +0 -27
  34. package/dist/src/lib/Components/AddressInput/AddressInput.stories.d.ts +0 -13
  35. package/dist/src/lib/Components/AddressInput/AddressInput.stories.d.ts.map +0 -1
  36. package/dist/src/lib/Components/AddressInput/AddressInput.stories.js +0 -128
  37. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.d.ts +0 -10
  38. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.d.ts.map +0 -1
  39. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.js +0 -127
  40. package/dist/src/lib/Components/AmountInput/AmountInput.stories.d.ts +0 -16
  41. package/dist/src/lib/Components/AmountInput/AmountInput.stories.d.ts.map +0 -1
  42. package/dist/src/lib/Components/AmountInput/AmountInput.stories.js +0 -186
  43. package/dist/src/lib/Components/Avatar/Avatar.stories.d.ts +0 -22
  44. package/dist/src/lib/Components/Avatar/Avatar.stories.d.ts.map +0 -1
  45. package/dist/src/lib/Components/Avatar/Avatar.stories.js +0 -72
  46. package/dist/src/lib/Components/Banner/Banner.stories.d.ts +0 -16
  47. package/dist/src/lib/Components/Banner/Banner.stories.d.ts.map +0 -1
  48. package/dist/src/lib/Components/Banner/Banner.stories.js +0 -268
  49. package/dist/src/lib/Components/BottomSheet/BottomSheet.stories.d.ts +0 -87
  50. package/dist/src/lib/Components/BottomSheet/BottomSheet.stories.d.ts.map +0 -1
  51. package/dist/src/lib/Components/BottomSheet/BottomSheet.stories.js +0 -266
  52. package/dist/src/lib/Components/Button/Button.stories.d.ts +0 -16
  53. package/dist/src/lib/Components/Button/Button.stories.d.ts.map +0 -1
  54. package/dist/src/lib/Components/Button/Button.stories.js +0 -143
  55. package/dist/src/lib/Components/CardButton/CardButton.stories.d.ts +0 -16
  56. package/dist/src/lib/Components/CardButton/CardButton.stories.d.ts.map +0 -1
  57. package/dist/src/lib/Components/CardButton/CardButton.stories.js +0 -208
  58. package/dist/src/lib/Components/Checkbox/Checkbox.stories.d.ts +0 -14
  59. package/dist/src/lib/Components/Checkbox/Checkbox.stories.d.ts.map +0 -1
  60. package/dist/src/lib/Components/Checkbox/Checkbox.stories.js +0 -72
  61. package/dist/src/lib/Components/ContentBanner/ContentBanner.stories.d.ts +0 -11
  62. package/dist/src/lib/Components/ContentBanner/ContentBanner.stories.d.ts.map +0 -1
  63. package/dist/src/lib/Components/ContentBanner/ContentBanner.stories.js +0 -91
  64. package/dist/src/lib/Components/Divider/Divider.stories.d.ts +0 -9
  65. package/dist/src/lib/Components/Divider/Divider.stories.d.ts.map +0 -1
  66. package/dist/src/lib/Components/Divider/Divider.stories.js +0 -51
  67. package/dist/src/lib/Components/Icon/Icon.stories.d.ts +0 -15
  68. package/dist/src/lib/Components/Icon/Icon.stories.d.ts.map +0 -1
  69. package/dist/src/lib/Components/Icon/Icon.stories.js +0 -137
  70. package/dist/src/lib/Components/IconButton/IconButton.stories.d.ts +0 -10
  71. package/dist/src/lib/Components/IconButton/IconButton.stories.d.ts.map +0 -1
  72. package/dist/src/lib/Components/IconButton/IconButton.stories.js +0 -74
  73. package/dist/src/lib/Components/InteractiveIcon/InteractiveIcon.stories.d.ts +0 -11
  74. package/dist/src/lib/Components/InteractiveIcon/InteractiveIcon.stories.d.ts.map +0 -1
  75. package/dist/src/lib/Components/InteractiveIcon/InteractiveIcon.stories.js +0 -90
  76. package/dist/src/lib/Components/Link/Link.stories.d.ts +0 -17
  77. package/dist/src/lib/Components/Link/Link.stories.d.ts.map +0 -1
  78. package/dist/src/lib/Components/Link/Link.stories.js +0 -275
  79. package/dist/src/lib/Components/ListItem/ListItem.stories.d.ts +0 -10
  80. package/dist/src/lib/Components/ListItem/ListItem.stories.d.ts.map +0 -1
  81. package/dist/src/lib/Components/ListItem/ListItem.stories.js +0 -106
  82. package/dist/src/lib/Components/NavBar/NavBar.stories.d.ts +0 -10
  83. package/dist/src/lib/Components/NavBar/NavBar.stories.d.ts.map +0 -1
  84. package/dist/src/lib/Components/NavBar/NavBar.stories.js +0 -72
  85. package/dist/src/lib/Components/PageIndicator/PageIndicator.stories.d.ts +0 -27
  86. package/dist/src/lib/Components/PageIndicator/PageIndicator.stories.d.ts.map +0 -1
  87. package/dist/src/lib/Components/PageIndicator/PageIndicator.stories.js +0 -42
  88. package/dist/src/lib/Components/SearchInput/SearchInput.stories.d.ts +0 -12
  89. package/dist/src/lib/Components/SearchInput/SearchInput.stories.d.ts.map +0 -1
  90. package/dist/src/lib/Components/SearchInput/SearchInput.stories.js +0 -98
  91. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.stories.d.ts +0 -58
  92. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.stories.d.ts.map +0 -1
  93. package/dist/src/lib/Components/SegmentedControl/SegmentedControl.stories.js +0 -61
  94. package/dist/src/lib/Components/Select/Select.stories.d.ts +0 -11
  95. package/dist/src/lib/Components/Select/Select.stories.d.ts.map +0 -1
  96. package/dist/src/lib/Components/Select/Select.stories.js +0 -83
  97. package/dist/src/lib/Components/Skeleton/Skeleton.stories.d.ts +0 -11
  98. package/dist/src/lib/Components/Skeleton/Skeleton.stories.d.ts.map +0 -1
  99. package/dist/src/lib/Components/Skeleton/Skeleton.stories.js +0 -49
  100. package/dist/src/lib/Components/Spinner/Spinner.stories.d.ts +0 -9
  101. package/dist/src/lib/Components/Spinner/Spinner.stories.d.ts.map +0 -1
  102. package/dist/src/lib/Components/Spinner/Spinner.stories.js +0 -50
  103. package/dist/src/lib/Components/Spot/Spot.stories.d.ts +0 -12
  104. package/dist/src/lib/Components/Spot/Spot.stories.d.ts.map +0 -1
  105. package/dist/src/lib/Components/Spot/Spot.stories.js +0 -156
  106. package/dist/src/lib/Components/Stepper/Stepper.stories.d.ts +0 -9
  107. package/dist/src/lib/Components/Stepper/Stepper.stories.d.ts.map +0 -1
  108. package/dist/src/lib/Components/Stepper/Stepper.stories.js +0 -35
  109. package/dist/src/lib/Components/Subheader/Subheader.stories.d.ts +0 -10
  110. package/dist/src/lib/Components/Subheader/Subheader.stories.d.ts.map +0 -1
  111. package/dist/src/lib/Components/Subheader/Subheader.stories.js +0 -34
  112. package/dist/src/lib/Components/Switch/Switch.stories.d.ts +0 -14
  113. package/dist/src/lib/Components/Switch/Switch.stories.d.ts.map +0 -1
  114. package/dist/src/lib/Components/Switch/Switch.stories.js +0 -65
  115. package/dist/src/lib/Components/TabBar/TabBar.stories.d.ts +0 -50
  116. package/dist/src/lib/Components/TabBar/TabBar.stories.d.ts.map +0 -1
  117. package/dist/src/lib/Components/TabBar/TabBar.stories.js +0 -60
  118. package/dist/src/lib/Components/Tag/Tag.stories.d.ts +0 -10
  119. package/dist/src/lib/Components/Tag/Tag.stories.d.ts.map +0 -1
  120. package/dist/src/lib/Components/Tag/Tag.stories.js +0 -45
  121. package/dist/src/lib/Components/TextInput/TextInput.stories.d.ts +0 -14
  122. package/dist/src/lib/Components/TextInput/TextInput.stories.d.ts.map +0 -1
  123. package/dist/src/lib/Components/TextInput/TextInput.stories.js +0 -128
  124. package/dist/src/lib/Components/Tile/Tile.stories.d.ts +0 -14
  125. package/dist/src/lib/Components/Tile/Tile.stories.d.ts.map +0 -1
  126. package/dist/src/lib/Components/Tile/Tile.stories.js +0 -117
  127. package/dist/src/lib/Components/TileButton/TileButton.stories.d.ts +0 -12
  128. package/dist/src/lib/Components/TileButton/TileButton.stories.d.ts.map +0 -1
  129. package/dist/src/lib/Components/TileButton/TileButton.stories.js +0 -63
  130. package/dist/src/lib/Components/Tooltip/Tooltip.stories.d.ts +0 -10
  131. package/dist/src/lib/Components/Tooltip/Tooltip.stories.d.ts.map +0 -1
  132. package/dist/src/lib/Components/Tooltip/Tooltip.stories.js +0 -50
  133. package/dist/src/lib/Components/Utility/Box/Box.stories.d.ts +0 -7
  134. package/dist/src/lib/Components/Utility/Box/Box.stories.d.ts.map +0 -1
  135. package/dist/src/lib/Components/Utility/Box/Box.stories.js +0 -42
  136. package/dist/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.stories.d.ts +0 -11
  137. package/dist/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.stories.d.ts.map +0 -1
  138. package/dist/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.stories.js +0 -105
  139. package/dist/src/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.stories.d.ts +0 -10
  140. package/dist/src/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.stories.d.ts.map +0 -1
  141. package/dist/src/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.stories.js +0 -101
  142. package/dist/src/lib/Components/Utility/Pressable/Pressable.stories.d.ts +0 -7
  143. package/dist/src/lib/Components/Utility/Pressable/Pressable.stories.d.ts.map +0 -1
  144. package/dist/src/lib/Components/Utility/Pressable/Pressable.stories.js +0 -47
  145. package/dist/src/lib/Components/Utility/Text/Text.stories.d.ts +0 -7
  146. package/dist/src/lib/Components/Utility/Text/Text.stories.d.ts.map +0 -1
  147. package/dist/src/lib/Components/Utility/Text/Text.stories.js +0 -33
@@ -1,143 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { Plus, Settings } from '../../Symbols';
4
- import { Box, Text } from '../Utility';
5
- import { Button } from './Button';
6
- const meta = {
7
- component: Button,
8
- title: 'Action/Button',
9
- parameters: {
10
- docs: {
11
- source: {
12
- language: 'tsx',
13
- format: true,
14
- type: 'code',
15
- },
16
- },
17
- },
18
- argTypes: {
19
- appearance: {
20
- control: 'select',
21
- icon: {
22
- control: 'select',
23
- description: 'Optional icon component to display',
24
- options: ['None', 'Plus', 'Settings'],
25
- mapping: {
26
- None: undefined,
27
- Plus: Plus,
28
- Settings: Settings,
29
- },
30
- },
31
- },
32
- },
33
- };
34
- export default meta;
35
- export const Base = {
36
- args: {
37
- appearance: 'base',
38
- children: 'Base Button',
39
- },
40
- render: (args) => _jsx(Button, { ...args }),
41
- parameters: {
42
- docs: {
43
- source: {
44
- code: `
45
- <Button appearance="base">
46
- Base Button
47
- </Button>
48
- `,
49
- },
50
- },
51
- },
52
- };
53
- export const IconText = {
54
- args: {
55
- appearance: 'base',
56
- children: 'Add Item',
57
- icon: Plus,
58
- },
59
- parameters: {
60
- docs: {
61
- source: {
62
- code: `
63
- <Button
64
- appearance="base"
65
- icon={Plus}
66
- >
67
- Add Item
68
- </Button>
69
- `,
70
- },
71
- },
72
- },
73
- };
74
- export const Loading = {
75
- args: {
76
- appearance: 'base',
77
- children: 'Loading...',
78
- loading: true,
79
- },
80
- parameters: {
81
- docs: {
82
- source: {
83
- code: `
84
- <Button
85
- appearance="base"
86
- loading
87
- >
88
- Loading...
89
- </Button>
90
- `,
91
- },
92
- },
93
- },
94
- };
95
- export const AppearanceShowcase = {
96
- render: () => {
97
- const appearances = [
98
- { name: 'Accent', appearance: 'accent' },
99
- { name: 'Base', appearance: 'base' },
100
- { name: 'Gray', appearance: 'gray' },
101
- { name: 'Transparent', appearance: 'transparent' },
102
- { name: 'No Background', appearance: 'no-background' },
103
- { name: 'Red', appearance: 'red' },
104
- ];
105
- return (_jsx(Box, { lx: { flexDirection: 'row', gap: 's16', padding: 's8' }, children: appearances.map(({ name, appearance }) => (_jsx(Button, { appearance: appearance, children: name }, appearance))) }));
106
- },
107
- };
108
- export const ContentTypesShowcase = {
109
- render: () => (_jsxs(Box, { lx: { flexDirection: 'row', alignItems: 'center', gap: 's4' }, children: [_jsx(Button, { appearance: 'base', children: "Text Only" }), _jsx(Button, { appearance: 'base', icon: Plus, children: "With Icon" })] })),
110
- };
111
- export const SizesShowcase = {
112
- render: () => (_jsxs(Box, { lx: { flexDirection: 'row', alignItems: 'center', gap: 's4' }, children: [_jsx(Button, { appearance: 'base', size: 'sm', children: "Small" }), _jsx(Button, { appearance: 'base', size: 'md', children: "Medium" }), _jsx(Button, { appearance: 'base', size: 'lg', icon: Settings, children: "Large" })] })),
113
- };
114
- export const StatesShowcase = {
115
- render: () => (_jsxs(Box, { lx: { flexDirection: 'row', alignItems: 'center', gap: 's4' }, children: [_jsx(Button, { appearance: 'base', children: "Default" }), _jsx(Button, { appearance: 'base', disabled: true, children: "Disabled" }), _jsx(Button, { appearance: 'base', loading: true, children: "Loading" }), _jsx(Button, { appearance: 'base', loading: true, disabled: true, children: "Loading" })] })),
116
- };
117
- export const ResponsiveLayout = {
118
- render: () => (_jsxs(Box, { lx: {
119
- flexDirection: 'column',
120
- gap: 's8',
121
- padding: 's8',
122
- alignItems: 'flex-start',
123
- }, children: [_jsx(Button, { appearance: 'base', children: "Short" }), _jsx(Button, { appearance: 'base', children: "Medium length button" }), _jsx(Button, { appearance: 'base', icon: Plus, children: "This is a longer button text to show dynamic width" })] })),
124
- };
125
- export const LabelTruncate = {
126
- render: () => (_jsxs(Box, { children: [_jsx(Text, { typography: 'body4SemiBold', lx: { color: 'muted' }, children: "This container has a fixed width." }), _jsx(Box, { lx: { width: 's400', padding: 's16' }, children: _jsx(Button, { icon: Plus, children: "This Base button has a fixed width container that should fit the content width." }) })] })),
127
- };
128
- export const InteractiveLoadingStates = {
129
- render: () => {
130
- const [states, setStates] = React.useState({
131
- text: 'idle',
132
- withIcon: 'idle',
133
- iconOnly: 'idle',
134
- });
135
- const handleClick = async (key) => {
136
- setStates((prev) => ({ ...prev, [key]: 'loading' }));
137
- await new Promise((resolve) => setTimeout(resolve, 2000));
138
- setStates((prev) => ({ ...prev, [key]: 'red' }));
139
- setTimeout(() => setStates((prev) => ({ ...prev, [key]: 'idle' })), 2000);
140
- };
141
- return (_jsxs(Box, { lx: { flexDirection: 'row', alignItems: 'center', gap: 's4' }, children: [_jsx(Button, { appearance: 'red', loading: states.text === 'loading', onPress: () => handleClick('text'), children: states.text === 'red' ? 'Error!' : 'Text Only' }), _jsx(Button, { appearance: 'base', loading: states.withIcon === 'loading', onPress: () => handleClick('withIcon'), icon: Settings, children: states.withIcon === 'red' ? 'Settings Error!' : 'With Icon' })] }));
142
- },
143
- };
@@ -1,16 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
- import { CardButton } from './CardButton';
3
- declare const meta: Meta<typeof CardButton>;
4
- export default meta;
5
- type Story = StoryObj<typeof CardButton>;
6
- export declare const Base: Story;
7
- export declare const WithIcon: Story;
8
- export declare const WithDescription: Story;
9
- export declare const WithoutChevron: Story;
10
- export declare const FullFeatures: Story;
11
- export declare const NaturalWidth: Story;
12
- export declare const AppearanceShowcase: Story;
13
- export declare const ContentVariations: Story;
14
- export declare const StatesShowcase: Story;
15
- export declare const ResponsiveLayout: Story;
16
- //# sourceMappingURL=CardButton.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CardButton.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/CardButton/CardButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CA6CjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAGzC,eAAO,MAAM,IAAI,EAAE,KAkBlB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmBtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAmB7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAmB5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAqB1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KA+B1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA+BhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAsC/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsC5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAkC9B,CAAC"}
@@ -1,208 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Settings, Plus, Coins, CreditCard, Bank } from '../../Symbols';
3
- import { Box, Text } from '../Utility';
4
- import { CardButton } from './CardButton';
5
- const meta = {
6
- component: CardButton,
7
- title: 'Action/CardButton',
8
- parameters: {
9
- docs: {
10
- source: {
11
- language: 'tsx',
12
- format: true,
13
- type: 'code',
14
- },
15
- },
16
- },
17
- argTypes: {
18
- appearance: {
19
- control: 'select',
20
- options: ['base', 'outline'],
21
- description: 'The visual style appearance of the card button',
22
- },
23
- title: {
24
- control: 'text',
25
- description: 'The main title text for the card button',
26
- },
27
- description: {
28
- control: 'text',
29
- description: 'Optional description text displayed below the title',
30
- },
31
- icon: {
32
- control: 'select',
33
- description: 'Optional icon component to display',
34
- options: ['None', 'Plus', 'Settings'],
35
- mapping: {
36
- None: undefined,
37
- Plus: Plus,
38
- Settings: Settings,
39
- },
40
- },
41
- hideChevron: {
42
- control: 'boolean',
43
- description: 'Whether to hide the chevron right icon on the right side',
44
- },
45
- disabled: {
46
- control: 'boolean',
47
- description: 'Whether the card button is disabled',
48
- },
49
- },
50
- };
51
- export default meta;
52
- export const Base = {
53
- args: {
54
- appearance: 'base',
55
- title: 'Basic Card Button',
56
- },
57
- render: (args) => _jsx(CardButton, { ...args }),
58
- parameters: {
59
- docs: {
60
- source: {
61
- code: `
62
- <CardButton
63
- appearance="base"
64
- title="Basic Card Button"
65
- />
66
- `,
67
- },
68
- },
69
- },
70
- };
71
- export const WithIcon = {
72
- args: {
73
- appearance: 'base',
74
- title: 'Settings',
75
- icon: Settings,
76
- },
77
- parameters: {
78
- docs: {
79
- source: {
80
- code: `
81
- <CardButton
82
- appearance="base"
83
- title="Settings"
84
- icon={Settings}
85
- />
86
- `,
87
- },
88
- },
89
- },
90
- };
91
- export const WithDescription = {
92
- args: {
93
- appearance: 'base',
94
- title: 'Payment Method',
95
- description: 'Add or manage your payment options',
96
- },
97
- parameters: {
98
- docs: {
99
- source: {
100
- code: `
101
- <CardButton
102
- appearance="base"
103
- title="Payment Method"
104
- description="Add or manage your payment options"
105
- />
106
- `,
107
- },
108
- },
109
- },
110
- };
111
- export const WithoutChevron = {
112
- args: {
113
- appearance: 'base',
114
- title: 'Navigate Forward',
115
- hideChevron: true,
116
- },
117
- parameters: {
118
- docs: {
119
- source: {
120
- code: `
121
- <CardButton
122
- appearance="base"
123
- title="Navigate Forward"
124
- hideChevron
125
- />
126
- `,
127
- },
128
- },
129
- },
130
- };
131
- export const FullFeatures = {
132
- args: {
133
- appearance: 'base',
134
- title: 'Account Settings',
135
- description: 'Manage your account preferences and security',
136
- icon: Settings,
137
- },
138
- parameters: {
139
- docs: {
140
- source: {
141
- code: `
142
- <CardButton
143
- appearance="base"
144
- title="Account Settings"
145
- description="Manage your account preferences and security"
146
- icon={Settings}
147
- />
148
- `,
149
- },
150
- },
151
- },
152
- };
153
- export const NaturalWidth = {
154
- render: () => (_jsxs(Box, { lx: { backgroundColor: 'mutedPressed', padding: 's16' }, children: [_jsx(Text, { typography: 'body4SemiBold', lx: { color: 'muted', marginBottom: 's16' }, children: "CardButton naturally flows to fill parent container width" }), _jsx(CardButton, { appearance: 'base', title: 'Natural Width Example', description: 'This card button demonstrates how it flows naturally to fill the full width of its parent container without any max-width constraints', icon: CreditCard })] })),
155
- parameters: {
156
- docs: {
157
- source: {
158
- code: `
159
- <CardButton
160
- appearance="base"
161
- title="Natural Width Example"
162
- description="This card button demonstrates how it flows naturally to fill the full width of its parent container without any max-width constraints"
163
- icon={CreditCard}
164
- />
165
- `,
166
- },
167
- },
168
- },
169
- };
170
- export const AppearanceShowcase = {
171
- render: () => {
172
- const appearances = [
173
- { name: 'Base', appearance: 'base' },
174
- { name: 'Outline', appearance: 'outline' },
175
- ];
176
- return (_jsx(Box, { lx: {
177
- flexDirection: 'column',
178
- gap: 's16',
179
- padding: 's8',
180
- maxWidth: 's400',
181
- }, children: appearances.map(({ name, appearance }) => (_jsx(CardButton, { appearance: appearance, title: `${name} Appearance`, description: 'This demonstrates the appearance variation', icon: Coins }, appearance))) }));
182
- },
183
- };
184
- export const ContentVariations = {
185
- render: () => (_jsxs(Box, { lx: {
186
- flexDirection: 'column',
187
- gap: 's16',
188
- padding: 's8',
189
- maxWidth: 's400',
190
- }, children: [_jsx(CardButton, { appearance: 'base', title: 'With Description', description: 'This card has a description below the title', hideChevron: true }), _jsx(CardButton, { appearance: 'base', title: 'Icon and Description', description: 'This card has both an icon and description', icon: Settings, hideChevron: true }), _jsx(CardButton, { appearance: 'base', title: 'Description and Chevron', description: 'This card has description and chevron' }), _jsx(CardButton, { appearance: 'base', title: 'Complete Card', description: 'This card has all optional features', icon: CreditCard }), _jsx(CardButton, { appearance: 'base', title: 'With Icon', icon: Plus, hideChevron: true }), _jsx(CardButton, { appearance: 'base', title: 'With Chevron' })] })),
191
- };
192
- export const StatesShowcase = {
193
- render: () => (_jsxs(Box, { lx: {
194
- flexDirection: 'column',
195
- gap: 's16',
196
- padding: 's8',
197
- maxWidth: 's400',
198
- }, children: [_jsx(CardButton, { appearance: 'base', title: 'Base Default', description: 'This is the normal interactive state', icon: Settings }), _jsx(CardButton, { appearance: 'base', title: 'Base Disabled', description: 'This card button is disabled', icon: Settings, disabled: true }), _jsx(CardButton, { appearance: 'outline', title: 'Outline Default', description: 'This is the outline appearance', icon: Bank }), _jsx(CardButton, { appearance: 'outline', title: 'Outline Disabled', description: 'This is the disabled outline appearance', icon: Bank, disabled: true })] })),
199
- };
200
- export const ResponsiveLayout = {
201
- render: () => (_jsxs(Box, { lx: {
202
- width: 's320',
203
- flexDirection: 'column',
204
- gap: 's16',
205
- backgroundColor: 'mutedPressed',
206
- padding: 's16',
207
- }, children: [_jsx(Text, { typography: 'body4SemiBold', lx: { color: 'muted' }, children: "Container: 320px wide" }), _jsx(CardButton, { appearance: 'base', title: 'Short Title', description: 'Short description', icon: Plus }), _jsx(CardButton, { appearance: 'base', title: 'Full Width', description: 'Short description', icon: Plus }), _jsx(CardButton, { appearance: 'base', title: 'Longer Title That Might Overflow When Container is Smaller', description: 'This is a longer description that demonstrates how the card handles longer content within its constraints', icon: Settings })] })),
208
- };
@@ -1,14 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
- import { Checkbox } from './Checkbox';
3
- declare const meta: Meta<typeof Checkbox>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- /**
7
- * The base checkbox in its normal state.
8
- */
9
- export declare const Base: Story;
10
- /**
11
- * Interactive example showing all states.
12
- */
13
- export declare const AllStates: Story;
14
- //# sourceMappingURL=Checkbox.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Checkbox.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/Checkbox/Checkbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAsC/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAkBlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAwCvB,CAAC"}
@@ -1,72 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from '../Utility';
3
- import { Checkbox } from './Checkbox';
4
- const meta = {
5
- title: 'Selection/Checkbox',
6
- component: Checkbox,
7
- parameters: {
8
- layout: 'fullscreen',
9
- docs: {
10
- source: {
11
- language: 'tsx',
12
- format: true,
13
- type: 'code',
14
- },
15
- },
16
- },
17
- args: {
18
- label: 'Checkbox',
19
- },
20
- argTypes: {
21
- checked: {
22
- control: 'boolean',
23
- description: 'The controlled checked state of the checkbox',
24
- },
25
- defaultChecked: {
26
- control: 'boolean',
27
- description: 'The default checked state (uncontrolled)',
28
- },
29
- disabled: {
30
- control: 'boolean',
31
- description: 'If true, the checkbox is disabled',
32
- },
33
- onCheckedChange: {
34
- action: 'checked changed',
35
- description: 'Callback function called when the checked state changes',
36
- },
37
- label: {
38
- control: 'text',
39
- description: 'The label text of the checkbox',
40
- },
41
- },
42
- };
43
- export default meta;
44
- /**
45
- * The base checkbox in its normal state.
46
- */
47
- export const Base = {
48
- render: (args) => {
49
- return (_jsx(Box, { style: {
50
- flex: 1,
51
- minHeight: 96,
52
- alignItems: 'center',
53
- justifyContent: 'center',
54
- padding: 24,
55
- }, children: _jsx(Box, { style: { width: '100%', maxWidth: 400 }, children: _jsx(Checkbox, { ...args }) }) }));
56
- },
57
- };
58
- /**
59
- * Interactive example showing all states.
60
- */
61
- export const AllStates = {
62
- render: () => (_jsx(Box, { style: {
63
- flex: 1,
64
- minHeight: 96,
65
- alignItems: 'center',
66
- justifyContent: 'center',
67
- padding: 24,
68
- }, children: _jsx(Box, { style: { width: '100%', maxWidth: 400 }, children: _jsxs(Box, { style: {
69
- flexDirection: 'row',
70
- gap: 48,
71
- }, children: [_jsxs(Box, { style: { gap: 16 }, children: [_jsx(Text, { typography: 'heading5', children: "Enabled" }), _jsxs(Box, { style: { gap: 8 }, children: [_jsx(Checkbox, { label: 'Unchecked', accessibilityLabel: 'Unchecked', defaultChecked: false }), _jsx(Checkbox, { label: 'Checked', defaultChecked: true })] })] }), _jsxs(Box, { style: { gap: 16 }, children: [_jsx(Text, { typography: 'heading5', children: "Disabled" }), _jsxs(Box, { style: { gap: 8 }, children: [_jsx(Checkbox, { label: 'Unchecked', disabled: true, defaultChecked: false }), _jsx(Checkbox, { label: 'Checked', disabled: true, defaultChecked: true })] })] })] }) }) })),
72
- };
@@ -1,11 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
- import { ContentBanner } from './ContentBanner';
3
- declare const meta: Meta<typeof ContentBanner>;
4
- export default meta;
5
- type Story = StoryObj<typeof ContentBanner>;
6
- export declare const Base: Story;
7
- export declare const WithClose: Story;
8
- export declare const ContentVariationsShowcase: Story;
9
- export declare const WithStepper: Story;
10
- export declare const ResponsiveLayout: Story;
11
- //# sourceMappingURL=ContentBanner.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentBanner.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/ContentBanner/ContentBanner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOvE,OAAO,EACL,aAAa,EAId,MAAM,iBAAiB,CAAC;AAEzB,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CA6BpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5C,eAAO,MAAM,IAAI,EAAE,KAkClB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAiCvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAoDvC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAoC9B,CAAC"}
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { Settings, Wallet } from '../../Symbols';
4
- import { Button } from '../Button';
5
- import { Spot } from '../Spot';
6
- import { Stepper } from '../Stepper';
7
- import { Box, Text } from '../Utility';
8
- import { ContentBanner, ContentBannerContent, ContentBannerDescription, ContentBannerTitle, } from './ContentBanner';
9
- const meta = {
10
- component: ContentBanner,
11
- title: 'Communication/ContentBanner',
12
- parameters: {
13
- docs: {
14
- source: {
15
- language: 'tsx',
16
- format: true,
17
- type: 'code',
18
- },
19
- },
20
- },
21
- argTypes: {
22
- onClose: {
23
- control: 'select',
24
- description: 'Close action callback',
25
- options: ['With Close', 'None'],
26
- mapping: {
27
- 'With Close': () => {
28
- console.log('Close clicked');
29
- },
30
- None: undefined,
31
- },
32
- },
33
- closeAccessibilityLabel: {
34
- control: 'text',
35
- description: 'Accessibility label for the close button',
36
- },
37
- },
38
- };
39
- export default meta;
40
- export const Base = {
41
- args: {
42
- closeAccessibilityLabel: 'Close content banner',
43
- },
44
- render: (args) => (_jsx(Box, { lx: { maxWidth: 's400' }, children: _jsxs(ContentBanner, { ...args, children: [_jsx(Spot, { appearance: 'icon', icon: Settings, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Content Banner" }), _jsx(ContentBannerDescription, { children: "This is a description for the content banner." })] })] }) })),
45
- parameters: {
46
- docs: {
47
- source: {
48
- code: `
49
- <ContentBanner>
50
- <Spot appearance="icon" icon={Settings} size={48} />
51
- <ContentBannerContent>
52
- <ContentBannerTitle>Content Banner</ContentBannerTitle>
53
- <ContentBannerDescription>
54
- This is a description for the content banner.
55
- </ContentBannerDescription>
56
- </ContentBannerContent>
57
- </ContentBanner>
58
- `,
59
- },
60
- },
61
- },
62
- };
63
- export const WithClose = {
64
- render: () => {
65
- const [visible, setVisible] = React.useState(true);
66
- if (!visible) {
67
- return (_jsx(Button, { appearance: 'transparent', size: 'sm', onPress: () => setVisible(true), children: "Show banner again" }));
68
- }
69
- return (_jsx(Box, { lx: { maxWidth: 's400' }, children: _jsxs(ContentBanner, { onClose: () => setVisible(false), closeAccessibilityLabel: 'Close content banner', children: [_jsx(Spot, { appearance: 'icon', icon: Settings, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Dismissible Banner" }), _jsx(ContentBannerDescription, { children: "Press the close button to dismiss this banner." })] })] }) }));
70
- },
71
- };
72
- export const ContentVariationsShowcase = {
73
- render: () => (_jsxs(Box, { lx: {
74
- flexDirection: 'column',
75
- maxWidth: 's400',
76
- gap: 's16',
77
- padding: 's8',
78
- }, children: [_jsxs(ContentBanner, { children: [_jsx(Spot, { appearance: 'icon', icon: Settings, size: 48 }), _jsx(ContentBannerContent, { children: _jsx(ContentBannerTitle, { children: "Title Only" }) })] }), _jsxs(ContentBanner, { children: [_jsx(Spot, { appearance: 'icon', icon: Wallet, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Title with Description" }), _jsx(ContentBannerDescription, { children: "This is a description for the content banner." })] })] }), _jsxs(ContentBanner, { onClose: () => console.log('close'), children: [_jsx(Spot, { appearance: 'icon', icon: Wallet, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "With Close Button" }), _jsx(ContentBannerDescription, { children: "A content banner with a leading icon and close button." })] })] }), _jsxs(ContentBanner, { onClose: () => console.log('close'), children: [_jsx(Spot, { appearance: 'icon', icon: Settings, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Longer Title That Demonstrates Clamping Behavior With a Long Description" }), _jsx(ContentBannerDescription, { children: "This is a longer description that demonstrates how the content banner handles overflow. It should be clamped at two lines." })] })] })] })),
79
- };
80
- export const WithStepper = {
81
- render: () => (_jsx(Box, { lx: { maxWidth: 's400' }, children: _jsxs(ContentBanner, { onClose: () => console.log('close'), children: [_jsx(Stepper, { currentStep: 2, totalSteps: 4 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Setup your wallet" }), _jsx(ContentBannerDescription, { children: "Complete all steps to secure your wallet." })] })] }) })),
82
- };
83
- export const ResponsiveLayout = {
84
- render: () => (_jsxs(Box, { lx: {
85
- width: 's400',
86
- flexDirection: 'column',
87
- gap: 's16',
88
- backgroundColor: 'mutedPressed',
89
- padding: 's16',
90
- }, children: [_jsx(Text, { typography: 'body4SemiBold', lx: { color: 'muted' }, children: "Container with a fixed width" }), _jsxs(ContentBanner, { children: [_jsx(Spot, { appearance: 'icon', icon: Settings, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Short Title" }), _jsx(ContentBannerDescription, { children: "Short description" })] })] }), _jsxs(ContentBanner, { onClose: () => console.log('close'), children: [_jsx(Spot, { appearance: 'icon', icon: Wallet, size: 48 }), _jsxs(ContentBannerContent, { children: [_jsx(ContentBannerTitle, { children: "Longer Title That Might Overflow When Container is Smaller" }), _jsx(ContentBannerDescription, { children: "This is a longer description that demonstrates how the content banner handles longer content within its constraints. It should be clamped at two lines with an ellipsis." })] })] })] })),
91
- };
@@ -1,9 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
- import { Divider } from './Divider';
3
- declare const meta: Meta<typeof Divider>;
4
- export default meta;
5
- type Story = StoryObj<typeof Divider>;
6
- export declare const Base: Story;
7
- export declare const OrientationShowcase: Story;
8
- export declare const InList: Story;
9
- //# sourceMappingURL=Divider.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Divider.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/Divider/Divider.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAM9B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,IAAI,EAAE,KAwBlB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAkCjC,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KA6DpB,CAAC"}
@@ -1,51 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box } from '../Utility/Box';
3
- import { Text } from '../Utility/Text';
4
- import { Divider } from './Divider';
5
- const meta = {
6
- component: Divider,
7
- title: 'Layout/Divider',
8
- parameters: {
9
- actions: { disable: true },
10
- },
11
- };
12
- export default meta;
13
- export const Base = {
14
- args: {
15
- orientation: 'horizontal',
16
- },
17
- render: (args) => {
18
- const isVertical = args.orientation === 'vertical';
19
- return (_jsxs(Box, { lx: isVertical
20
- ? { flexDirection: 'row', alignItems: 'center', gap: 's16' }
21
- : { width: 'full', gap: 's16' }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: isVertical ? 'Left content' : 'Content above' }), _jsx(Divider, { ...args, lx: isVertical ? { height: 's48' } : undefined }), _jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: isVertical ? 'Right content' : 'Content below' })] }));
22
- },
23
- };
24
- export const OrientationShowcase = {
25
- render: () => (_jsxs(Box, { lx: { gap: 's32' }, children: [_jsxs(Box, { lx: { gap: 's8' }, children: [_jsx(Text, { typography: 'body3', lx: { color: 'muted' }, children: "Horizontal (default)" }), _jsxs(Box, { lx: { width: 'full', gap: 's16' }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Content above" }), _jsx(Divider, { orientation: 'horizontal' }), _jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Content below" })] })] }), _jsxs(Box, { lx: { gap: 's8' }, children: [_jsx(Text, { typography: 'body3', lx: { color: 'muted' }, children: "Vertical" }), _jsxs(Box, { lx: { flexDirection: 'row', alignItems: 'center', gap: 's16' }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Left content" }), _jsx(Divider, { orientation: 'vertical', lx: { height: 's48' } }), _jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Right content" })] })] })] })),
26
- };
27
- export const InList = {
28
- render: () => (_jsxs(Box, { lx: {
29
- width: 'full',
30
- maxWidth: 's400',
31
- backgroundColor: 'canvas',
32
- borderRadius: 'lg',
33
- borderWidth: 's1',
34
- borderColor: 'muted',
35
- }, children: [_jsxs(Box, { lx: {
36
- flexDirection: 'row',
37
- justifyContent: 'space-between',
38
- alignItems: 'center',
39
- padding: 's16',
40
- }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Item 1" }), _jsx(Text, { typography: 'body3', lx: { color: 'muted' }, children: "$100" })] }), _jsx(Divider, {}), _jsxs(Box, { lx: {
41
- flexDirection: 'row',
42
- justifyContent: 'space-between',
43
- alignItems: 'center',
44
- padding: 's16',
45
- }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Item 2" }), _jsx(Text, { typography: 'body3', lx: { color: 'muted' }, children: "$200" })] }), _jsx(Divider, {}), _jsxs(Box, { lx: {
46
- flexDirection: 'row',
47
- justifyContent: 'space-between',
48
- alignItems: 'center',
49
- padding: 's16',
50
- }, children: [_jsx(Text, { typography: 'body2', lx: { color: 'base' }, children: "Item 3" }), _jsx(Text, { typography: 'body3', lx: { color: 'muted' }, children: "$300" })] })] })),
51
- };
@@ -1,15 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
- import * as Icons from '../../Symbols';
3
- import type { IconSize } from './types';
4
- declare const meta: Meta;
5
- export default meta;
6
- type IconName = keyof typeof Icons;
7
- type IconStoryProps = {
8
- size: IconSize;
9
- name: IconName;
10
- color?: string;
11
- };
12
- export declare const Icon: StoryObj<IconStoryProps>;
13
- export declare const IconSizes: StoryObj;
14
- export declare const Gallery: StoryObj;
15
- //# sourceMappingURL=Icon.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/Icon/Icon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAGvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAEX,CAAC;AAEF,eAAe,IAAI,CAAC;AAIpB,KAAK,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC;AAGnC,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoEF,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,cAAc,CA4CzC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QA0CvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QA+ErB,CAAC"}