@lion-npm/ui 1.0.2 → 1.0.4

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 (106) hide show
  1. package/dist/components/buttons/AndroidButton.d.ts +16 -0
  2. package/dist/components/buttons/BootstrapButton.d.ts +16 -0
  3. package/dist/components/buttons/IOSButton.d.ts +16 -0
  4. package/dist/components/buttons/LionButton.d.ts +18 -0
  5. package/dist/components/inputs/AndroidInput.d.ts +20 -0
  6. package/dist/components/inputs/BootstrapInput.d.ts +16 -0
  7. package/dist/components/inputs/IOSInput.d.ts +21 -0
  8. package/dist/components/inputs/LionInput.d.ts +27 -0
  9. package/dist/components/loadings/LoadingBar.d.ts +5 -0
  10. package/dist/components/modals/LionModal.d.ts +17 -0
  11. package/dist/context/LionUIComponentsContext.d.ts +5 -0
  12. package/{src/index.ts → dist/index.d.ts} +1 -3
  13. package/dist/index.js +2564 -0
  14. package/{src/interfaces/LionUIComponentsProviderProps.tsx → dist/interfaces/LionUIComponentsProviderProps.d.ts} +1 -2
  15. package/{src/interfaces/LionUIContextProps.tsx → dist/interfaces/LionUIContextProps.d.ts} +1 -2
  16. package/{src/interfaces/LionUIState.tsx → dist/interfaces/LionUIState.d.ts} +2 -3
  17. package/dist/style.css +2 -0
  18. package/dist/types/Android/AndroidInputShapeTypes.d.ts +5 -0
  19. package/dist/types/Android/AndroidInputStyleTypes.d.ts +5 -0
  20. package/dist/types/Android/AndroidShapeTypes.d.ts +5 -0
  21. package/dist/types/Android/AndroidStyleTypes.d.ts +8 -0
  22. package/dist/types/ButtonTypes.d.ts +7 -0
  23. package/dist/types/IOS/IOSInputShapeTypes.d.ts +6 -0
  24. package/dist/types/IOS/IOSInputStyleTypes.d.ts +8 -0
  25. package/dist/types/IOS/IOSShapeTypes.d.ts +5 -0
  26. package/dist/types/IOS/IOSStyleTypes.d.ts +7 -0
  27. package/dist/types/InputTypes.d.ts +11 -0
  28. package/dist/types/PlatformTypes.d.ts +7 -0
  29. package/dist/types/SizeTypes.d.ts +9 -0
  30. package/dist/types/VariantTypes.d.ts +17 -0
  31. package/dist/types/Web/BootstrapInputShapeTypes.d.ts +6 -0
  32. package/dist/types/Web/BootstrapInputStyleTypes.d.ts +5 -0
  33. package/dist/types/Web/BootstrapShapeTypes.d.ts +6 -0
  34. package/dist/types/Web/BootstrapStyleTypes.d.ts +5 -0
  35. package/package.json +19 -2
  36. package/.oxlintrc.json +0 -8
  37. package/AGENTS.md +0 -0
  38. package/Dockerfile +0 -7
  39. package/compose.yml +0 -14
  40. package/index.html +0 -15
  41. package/src/App.tsx +0 -84
  42. package/src/assets/css/buttons/buttons-android.css +0 -251
  43. package/src/assets/css/buttons/buttons-ios.css +0 -213
  44. package/src/assets/css/buttons/buttons-web.css +0 -138
  45. package/src/assets/css/custom.css +0 -8
  46. package/src/assets/css/index.css +0 -60
  47. package/src/assets/css/inputs/inputs-android.css +0 -259
  48. package/src/assets/css/inputs/inputs-bootstrap.css +0 -74
  49. package/src/assets/css/inputs/inputs-ios.css +0 -268
  50. package/src/assets/css/loadings/loading-bar.css +0 -86
  51. package/src/assets/css/modals/modals.css +0 -236
  52. package/src/components/buttons/AndroidButton.tsx +0 -43
  53. package/src/components/buttons/BootstrapButton.tsx +0 -50
  54. package/src/components/buttons/IOSButton.tsx +0 -42
  55. package/src/components/buttons/LionButton.tsx +0 -73
  56. package/src/components/inputs/AndroidInput.tsx +0 -158
  57. package/src/components/inputs/BootstrapInput.tsx +0 -106
  58. package/src/components/inputs/IOSInput.tsx +0 -163
  59. package/src/components/inputs/LionInput.tsx +0 -81
  60. package/src/components/loadings/LoadingBar.tsx +0 -21
  61. package/src/components/modals/LionModal.tsx +0 -155
  62. package/src/context/LionUIComponentsContext.tsx +0 -73
  63. package/src/features/Header.tsx +0 -83
  64. package/src/features/VariantList.tsx +0 -19
  65. package/src/features/buttons/ButtonsSection.tsx +0 -7
  66. package/src/features/buttons/components/ButtonsAndroidSection.tsx +0 -79
  67. package/src/features/buttons/components/ButtonsBootstrapSection.tsx +0 -77
  68. package/src/features/buttons/components/ButtonsCustomSection.tsx +0 -234
  69. package/src/features/buttons/components/ButtonsIOSSection.tsx +0 -78
  70. package/src/features/inputs/InputsSection.tsx +0 -7
  71. package/src/features/inputs/components/InputsAndroidSection.tsx +0 -155
  72. package/src/features/inputs/components/InputsBootstrapSection.tsx +0 -154
  73. package/src/features/inputs/components/InputsCustomSection.tsx +0 -234
  74. package/src/features/inputs/components/InputsIOSSection.tsx +0 -156
  75. package/src/features/loadings/LoadingSection.tsx +0 -5
  76. package/src/features/loadings/components/LoadingBarSection.tsx +0 -74
  77. package/src/features/modals/ModalsSection.tsx +0 -5
  78. package/src/features/modals/components/ModalsAndroidSection.tsx +0 -108
  79. package/src/features/modals/components/ModalsDefaultForm.tsx +0 -31
  80. package/src/features/modals/components/ModalsDefaultInput.tsx +0 -22
  81. package/src/features/modals/components/ModalsIOSSection.tsx +0 -106
  82. package/src/features/modals/components/ModalsWebSection.tsx +0 -104
  83. package/src/main.tsx +0 -9
  84. package/src/types/Android/AndroidInputShapeTypes.tsx +0 -7
  85. package/src/types/Android/AndroidInputStyleTypes.tsx +0 -7
  86. package/src/types/Android/AndroidShapeTypes.tsx +0 -6
  87. package/src/types/Android/AndroidStyleTypes.tsx +0 -9
  88. package/src/types/ButtonTypes.tsx +0 -9
  89. package/src/types/IOS/IOSInputShapeTypes.tsx +0 -9
  90. package/src/types/IOS/IOSInputStyleTypes.tsx +0 -11
  91. package/src/types/IOS/IOSShapeTypes.tsx +0 -7
  92. package/src/types/IOS/IOSStyleTypes.tsx +0 -9
  93. package/src/types/InputTypes.tsx +0 -13
  94. package/src/types/PlatformTypes.tsx +0 -9
  95. package/src/types/SizeTypes.tsx +0 -11
  96. package/src/types/VariantTypes.tsx +0 -19
  97. package/src/types/Web/BootstrapInputShapeTypes.tsx +0 -9
  98. package/src/types/Web/BootstrapInputStyleTypes.tsx +0 -8
  99. package/src/types/Web/BootstrapShapeTypes.tsx +0 -8
  100. package/src/types/Web/BootstrapStyleTypes.tsx +0 -7
  101. package/tsconfig.app.json +0 -26
  102. package/tsconfig.json +0 -7
  103. package/tsconfig.node.json +0 -23
  104. package/vite.config.ts +0 -30
  105. /package/{public → dist}/favicon.svg +0 -0
  106. /package/{public → dist}/icons.svg +0 -0
@@ -1,19 +0,0 @@
1
- import {VariantTypes} from "../types/VariantTypes.tsx";
2
-
3
- const VariantList: Array<VariantTypes> = [
4
- VariantTypes.SECONDARY,
5
- VariantTypes.PRIMARY,
6
- VariantTypes.SUCCESS,
7
- VariantTypes.DANGER,
8
- VariantTypes.WARNING,
9
- VariantTypes.INFO,
10
- VariantTypes.LIGHT,
11
- VariantTypes.LINK,
12
- VariantTypes.DARK,
13
- VariantTypes.LION_PACKAGES,
14
- VariantTypes.LION_PARKING,
15
- VariantTypes.LION_TECH,
16
- VariantTypes.LION_GLAM,
17
- ];
18
-
19
- export default VariantList;
@@ -1,7 +0,0 @@
1
- import {Outlet} from "react-router-dom";
2
-
3
- export default function ButtonsSection() {
4
- return (
5
- <Outlet />
6
- );
7
- }
@@ -1,79 +0,0 @@
1
- import { AndroidStyleTypes } from "../../../types/Android/AndroidStyleTypes.tsx";
2
- import { AndroidShapeTypes } from "../../../types/Android/AndroidShapeTypes.tsx";
3
- import { ButtonTypes } from "../../../types/ButtonTypes.tsx";
4
- import VariantList from "../../VariantList.tsx";
5
-
6
- import { Fragment } from "react";
7
- import AndroidButton from "../../../components/buttons/AndroidButton.tsx";
8
-
9
- // List of Material Design 3 styles
10
- const StyleTypeList: Array<{ label: string; styleType: AndroidStyleTypes }> = [
11
- { label: "Filled", styleType: AndroidStyleTypes.FILLED },
12
- { label: "Elevated", styleType: AndroidStyleTypes.ELEVATED },
13
- { label: "Tonal", styleType: AndroidStyleTypes.TONAL },
14
- { label: "Outlined", styleType: AndroidStyleTypes.OUTLINED },
15
- { label: "Text", styleType: AndroidStyleTypes.TEXT },
16
- ];
17
-
18
- // List of supported button shapes
19
- const ShapeList: Array<{ label: string; shape: AndroidShapeTypes }> = [
20
- { label: "Pill Shape", shape: AndroidShapeTypes.PILL },
21
- { label: "Rounded Shape", shape: AndroidShapeTypes.ROUNDED },
22
- ];
23
-
24
- export default function ButtonsAndroidSection() {
25
- return (
26
- <Fragment>
27
- <h2>Buttons (Android MD3)</h2>
28
-
29
- {StyleTypeList.map(({ label: styleLabel, styleType }) => (
30
- <div key={styleType} className="my-4">
31
- <h4 className="text-primary mb-3">{styleLabel} Buttons</h4>
32
-
33
- {ShapeList.map(({ label: shapeLabel, shape }) => (
34
- <div key={`${styleType}-${shape}`} className="ms-3 mb-4">
35
- <h6 className="text-secondary mb-2">{shapeLabel}</h6>
36
-
37
- {/* Enabled State */}
38
- <div className="mb-3">
39
- <span className="text-muted d-block mb-1 small">Enabled</span>
40
- <div className="d-flex flex-wrap gap-2 py-1">
41
- {VariantList.map((variant) => (
42
- <AndroidButton
43
- key={`${styleType}-${shape}-${variant}-enabled`}
44
- type={ButtonTypes.BUTTON}
45
- styleType={styleType}
46
- shape={shape}
47
- variant={variant}
48
- >
49
- {variant}
50
- </AndroidButton>
51
- ))}
52
- </div>
53
- </div>
54
-
55
- {/* Disabled State */}
56
- <div>
57
- <span className="text-muted d-block mb-1 small">Disabled</span>
58
- <div className="d-flex flex-wrap gap-2 py-1">
59
- {VariantList.map((variant) => (
60
- <AndroidButton
61
- key={`${styleType}-${shape}-${variant}-disabled`}
62
- type={ButtonTypes.BUTTON}
63
- styleType={styleType}
64
- shape={shape}
65
- variant={variant}
66
- disabled={true}
67
- >
68
- {variant}
69
- </AndroidButton>
70
- ))}
71
- </div>
72
- </div>
73
- </div>
74
- ))}
75
- </div>
76
- ))}
77
- </Fragment>
78
- );
79
- }
@@ -1,77 +0,0 @@
1
- import { ButtonTypes } from "../../../types/ButtonTypes.tsx";
2
- import VariantList from "../../VariantList.tsx";
3
- import { BootstrapStyleTypes } from "../../../types/Web/BootstrapStyleTypes.tsx";
4
- import { BootstrapShapeTypes } from "../../../types/Web/BootstrapShapeTypes.tsx";
5
-
6
- import { Fragment } from "react";
7
- import BootstrapButton from "../../../components/buttons/BootstrapButton.tsx";
8
-
9
- // List of Bootstrap styles
10
- const StyleTypeList: Array<{ label: string; styleType: BootstrapStyleTypes }> = [
11
- { label: "Filled", styleType: BootstrapStyleTypes.FILLED },
12
- { label: "Outlined", styleType: BootstrapStyleTypes.OUTLINED },
13
- ];
14
-
15
- // List of supported Bootstrap shapes
16
- const ShapeList: Array<{ label: string; shape: BootstrapShapeTypes }> = [
17
- { label: "Default Shape", shape: BootstrapShapeTypes.STANDARD },
18
- { label: "Pill Shape", shape: BootstrapShapeTypes.PILL },
19
- { label: "Square Shape", shape: BootstrapShapeTypes.SQUARE },
20
- ];
21
-
22
- export default function ButtonsBootstrapSection() {
23
- return (
24
- <Fragment>
25
- <h2>Buttons (Bootstrap Web / Desktop)</h2>
26
-
27
- {StyleTypeList.map(({ label: styleLabel, styleType }) => (
28
- <div key={styleType} className="my-4">
29
- <h4 className="text-primary mb-3">{styleLabel} Buttons</h4>
30
-
31
- {ShapeList.map(({ label: shapeLabel, shape }) => (
32
- <div key={`${styleType}-${shape}`} className="ms-3 mb-4">
33
- <h6 className="text-secondary mb-2">{shapeLabel}</h6>
34
-
35
- {/* Enabled State */}
36
- <div className="mb-3">
37
- <span className="text-muted d-block mb-1 small">Enabled</span>
38
- <div className="d-flex flex-wrap gap-2 py-1">
39
- {VariantList.map((variant) => (
40
- <BootstrapButton
41
- key={`${styleType}-${shape}-${variant}-enabled`}
42
- type={ButtonTypes.BUTTON}
43
- styleType={styleType}
44
- shape={shape}
45
- variant={variant}
46
- >
47
- {variant}
48
- </BootstrapButton>
49
- ))}
50
- </div>
51
- </div>
52
-
53
- {/* Disabled State */}
54
- <div>
55
- <span className="text-muted d-block mb-1 small">Disabled</span>
56
- <div className="d-flex flex-wrap gap-2 py-1">
57
- {VariantList.map((variant) => (
58
- <BootstrapButton
59
- key={`${styleType}-${shape}-${variant}-disabled`}
60
- type={ButtonTypes.BUTTON}
61
- styleType={styleType}
62
- shape={shape}
63
- variant={variant}
64
- disabled={true}
65
- >
66
- {variant}
67
- </BootstrapButton>
68
- ))}
69
- </div>
70
- </div>
71
- </div>
72
- ))}
73
- </div>
74
- ))}
75
- </Fragment>
76
- );
77
- }
@@ -1,234 +0,0 @@
1
- import VariantList from "../../VariantList.tsx";
2
- import { PlatformTypes } from "../../../types/PlatformTypes.tsx";
3
- import { ButtonTypes } from "../../../types/ButtonTypes.tsx";
4
- import { AndroidStyleTypes } from "../../../types/Android/AndroidStyleTypes.tsx";
5
- import { IOSStyleTypes } from "../../../types/IOS/IOSStyleTypes.tsx";
6
- import { BootstrapStyleTypes } from "../../../types/Web/BootstrapStyleTypes.tsx";
7
- import { AndroidShapeTypes } from "../../../types/Android/AndroidShapeTypes.tsx";
8
- import { IOSShapeTypes } from "../../../types/IOS/IOSShapeTypes.tsx";
9
- import { BootstrapShapeTypes } from "../../../types/Web/BootstrapShapeTypes.tsx";
10
-
11
- import { Fragment, useState } from "react";
12
- import LionButton from "../../../components/buttons/LionButton.tsx";
13
-
14
- const shapesByPlatform = {
15
- [PlatformTypes.ANDROID]: [
16
- { label: "Pill", value: AndroidShapeTypes.PILL },
17
- { label: "Rounded", value: AndroidShapeTypes.ROUNDED },
18
- ],
19
- [PlatformTypes.IOS]: [
20
- { label: "Capsule", value: IOSShapeTypes.CAPSULE },
21
- { label: "Rounded", value: IOSShapeTypes.ROUNDED },
22
- ],
23
- [PlatformTypes.WEB]: [
24
- { label: "Standard", value: BootstrapShapeTypes.STANDARD },
25
- { label: "Pill", value: BootstrapShapeTypes.PILL },
26
- { label: "Square", value: BootstrapShapeTypes.SQUARE },
27
- ],
28
- };
29
-
30
- const stylesByPlatform = {
31
- [PlatformTypes.ANDROID]: [
32
- { label: "Tonal", value: AndroidStyleTypes.TONAL },
33
- { label: "Filled", value: AndroidStyleTypes.FILLED },
34
- { label: "Elevated", value: AndroidStyleTypes.ELEVATED },
35
- { label: "Outlined", value: AndroidStyleTypes.OUTLINED },
36
- { label: "Text", value: AndroidStyleTypes.TEXT },
37
- ],
38
- [PlatformTypes.IOS]: [
39
- { label: "Tinted", value: IOSStyleTypes.TINTED },
40
- { label: "Filled", value: IOSStyleTypes.FILLED },
41
- { label: "Gray", value: IOSStyleTypes.GRAY },
42
- { label: "Plain", value: IOSStyleTypes.PLAIN },
43
- ],
44
- [PlatformTypes.WEB]: [
45
- { label: "Filled", value: BootstrapStyleTypes.FILLED },
46
- { label: "Outlined", value: BootstrapStyleTypes.OUTLINED },
47
- ],
48
- };
49
-
50
- export default function ButtonsCustomSection() {
51
- const [selectedPlatform, setSelectedPlatform] = useState<PlatformTypes>(PlatformTypes.ANDROID);
52
- const [selectedAndroidShape, setSelectedAndroidShape] = useState<AndroidShapeTypes>(AndroidShapeTypes.PILL);
53
- const [selectedIOSShape, setSelectedIOSShape] = useState<IOSShapeTypes>(IOSShapeTypes.CAPSULE);
54
- const [selectedWebShape, setSelectedWebShape] = useState<BootstrapShapeTypes>(BootstrapShapeTypes.STANDARD);
55
-
56
- const [selectedAndroidStyle, setSelectedAndroidStyle] = useState<AndroidStyleTypes>(AndroidStyleTypes.TONAL);
57
- const [selectedIOSStyle, setSelectedIOSStyle] = useState<IOSStyleTypes>(IOSStyleTypes.TINTED);
58
- const [selectedWebStyle, setSelectedWebStyle] = useState<BootstrapStyleTypes>(BootstrapStyleTypes.FILLED);
59
-
60
- return (
61
- <Fragment>
62
- <h2>Buttons (Custom Cross-Platform Test)</h2>
63
-
64
- <div className="card p-3 mb-4 bg-light">
65
- <div className="row g-3">
66
- <div className="col-md-4">
67
- <label className="form-label fw-bold">Platform:</label>
68
- <div className="btn-group w-100" role="group">
69
- <button
70
- type="button"
71
- className={`btn ${selectedPlatform === PlatformTypes.ANDROID ? "btn-primary" : "btn-outline-primary"}`}
72
- onClick={() => setSelectedPlatform(PlatformTypes.ANDROID)}
73
- >
74
- Android
75
- </button>
76
- <button
77
- type="button"
78
- className={`btn ${selectedPlatform === PlatformTypes.IOS ? "btn-primary" : "btn-outline-primary"}`}
79
- onClick={() => setSelectedPlatform(PlatformTypes.IOS)}
80
- >
81
- iOS
82
- </button>
83
- <button
84
- type="button"
85
- className={`btn ${selectedPlatform === PlatformTypes.WEB ? "btn-primary" : "btn-outline-primary"}`}
86
- onClick={() => setSelectedPlatform(PlatformTypes.WEB)}
87
- >
88
- Web
89
- </button>
90
- </div>
91
- </div>
92
-
93
- <div className="col-md-4">
94
- <label className="form-label fw-bold">Shape:</label>
95
-
96
- {selectedPlatform === PlatformTypes.ANDROID && (
97
- <select
98
- className="form-select"
99
- value={selectedAndroidShape}
100
- onChange={(e) => setSelectedAndroidShape(e.target.value as AndroidShapeTypes)}
101
- >
102
- {shapesByPlatform[PlatformTypes.ANDROID].map((s) => (
103
- <option key={s.value} value={s.value}>{s.label}</option>
104
- ))}
105
- </select>
106
- )}
107
-
108
- {selectedPlatform === PlatformTypes.IOS && (
109
- <select
110
- className="form-select"
111
- value={selectedIOSShape}
112
- onChange={(e) => setSelectedIOSShape(e.target.value as IOSShapeTypes)}
113
- >
114
- {shapesByPlatform[PlatformTypes.IOS].map((s) => (
115
- <option key={s.value} value={s.value}>{s.label}</option>
116
- ))}
117
- </select>
118
- )}
119
-
120
- {selectedPlatform === PlatformTypes.WEB && (
121
- <select
122
- className="form-select"
123
- value={selectedWebShape}
124
- onChange={(e) => setSelectedWebShape(e.target.value as BootstrapShapeTypes)}
125
- >
126
- {shapesByPlatform[PlatformTypes.WEB].map((s) => (
127
- <option key={s.value} value={s.value}>{s.label}</option>
128
- ))}
129
- </select>
130
- )}
131
- </div>
132
-
133
- <div className="col-md-4">
134
- <label className="form-label fw-bold">StyleType:</label>
135
- {selectedPlatform === PlatformTypes.ANDROID && (
136
- <select
137
- className="form-select"
138
- value={selectedAndroidStyle}
139
- onChange={(e) => setSelectedAndroidStyle(e.target.value as AndroidStyleTypes)}
140
- >
141
- {stylesByPlatform[PlatformTypes.ANDROID].map((s) => (
142
- <option key={s.value} value={s.value}>{s.label}</option>
143
- ))}
144
- </select>
145
- )}
146
-
147
- {selectedPlatform === PlatformTypes.IOS && (
148
- <select
149
- className="form-select"
150
- value={selectedIOSStyle}
151
- onChange={(e) => setSelectedIOSStyle(e.target.value as IOSStyleTypes)}
152
- >
153
- {stylesByPlatform[PlatformTypes.IOS].map((s) => (
154
- <option key={s.value} value={s.value}>{s.label}</option>
155
- ))}
156
- </select>
157
- )}
158
-
159
- {selectedPlatform === PlatformTypes.WEB && (
160
- <select
161
- className="form-select"
162
- value={selectedWebStyle}
163
- onChange={(e) => setSelectedWebStyle(e.target.value as BootstrapStyleTypes)}
164
- >
165
- {stylesByPlatform[PlatformTypes.WEB].map((s) => (
166
- <option key={s.value} value={s.value}>{s.label}</option>
167
- ))}
168
- </select>
169
- )}
170
- </div>
171
- </div>
172
- </div>
173
-
174
- <div className="my-4">
175
- <div className="ms-3 mb-4">
176
- {/* Enabled State */}
177
- <div className="mb-3">
178
- <span className="text-muted d-block mb-1 small">Enabled</span>
179
- <div className="d-flex flex-wrap gap-2 py-1">
180
- {VariantList.map((variant) => (
181
- <LionButton
182
- key={`custom-${variant}-enabled`}
183
- type={ButtonTypes.BUTTON}
184
- platform={selectedPlatform}
185
- variant={variant}
186
- styleType={{
187
- android: selectedAndroidStyle,
188
- ios: selectedIOSStyle,
189
- web: selectedWebStyle,
190
- }}
191
- shape={{
192
- android: selectedAndroidShape,
193
- ios: selectedIOSShape,
194
- web: selectedWebShape,
195
- }}
196
- >
197
- {variant}
198
- </LionButton>
199
- ))}
200
- </div>
201
- </div>
202
-
203
- {/* Disabled State */}
204
- <div>
205
- <span className="text-muted d-block mb-1 small">Disabled</span>
206
- <div className="d-flex flex-wrap gap-2 py-1">
207
- {VariantList.map((variant) => (
208
- <LionButton
209
- key={`custom-${variant}-disabled`}
210
- type={ButtonTypes.BUTTON}
211
- platform={selectedPlatform}
212
- variant={variant}
213
- disabled={true}
214
- styleType={{
215
- android: selectedAndroidStyle,
216
- ios: selectedIOSStyle,
217
- web: selectedWebStyle,
218
- }}
219
- shape={{
220
- android: selectedAndroidShape,
221
- ios: selectedIOSShape,
222
- web: selectedWebShape,
223
- }}
224
- >
225
- {variant}
226
- </LionButton>
227
- ))}
228
- </div>
229
- </div>
230
- </div>
231
- </div>
232
- </Fragment>
233
- );
234
- }
@@ -1,78 +0,0 @@
1
- import { IOSStyleTypes } from "../../../types/IOS/IOSStyleTypes.tsx";
2
- import { IOSShapeTypes } from "../../../types/IOS/IOSShapeTypes.tsx";
3
- import { ButtonTypes } from "../../../types/ButtonTypes.tsx";
4
- import VariantList from "../../VariantList.tsx";
5
-
6
- import { Fragment } from "react";
7
- import IOSButton from "../../../components/buttons/IOSButton.tsx";
8
-
9
- // List of iOS Human Interface Guidelines styles
10
- const StyleTypeList: Array<{ label: string; styleType: IOSStyleTypes }> = [
11
- { label: "Filled", styleType: IOSStyleTypes.FILLED },
12
- { label: "Tinted", styleType: IOSStyleTypes.TINTED },
13
- { label: "Gray", styleType: IOSStyleTypes.GRAY },
14
- { label: "Plain", styleType: IOSStyleTypes.PLAIN },
15
- ];
16
-
17
- // List of supported iOS button shapes
18
- const ShapeList: Array<{ label: string; shape: IOSShapeTypes }> = [
19
- { label: "Rounded Shape", shape: IOSShapeTypes.ROUNDED },
20
- { label: "Capsule Shape", shape: IOSShapeTypes.CAPSULE },
21
- ];
22
-
23
- export default function ButtonsIOSSection() {
24
- return (
25
- <Fragment>
26
- <h2>Buttons (iOS HIG)</h2>
27
-
28
- {StyleTypeList.map(({ label: styleLabel, styleType }) => (
29
- <div key={styleType} className="my-4">
30
- <h4 className="text-primary mb-3">{styleLabel} Buttons</h4>
31
-
32
- {ShapeList.map(({ label: shapeLabel, shape }) => (
33
- <div key={`${styleType}-${shape}`} className="ms-3 mb-4">
34
- <h6 className="text-secondary mb-2">{shapeLabel}</h6>
35
-
36
- {/* Enabled State */}
37
- <div className="mb-3">
38
- <span className="text-muted d-block mb-1 small">Enabled</span>
39
- <div className="d-flex flex-wrap gap-2 py-1">
40
- {VariantList.map((variant) => (
41
- <IOSButton
42
- key={`${styleType}-${shape}-${variant}-enabled`}
43
- type={ButtonTypes.BUTTON}
44
- styleType={styleType}
45
- shape={shape}
46
- variant={variant}
47
- >
48
- {variant}
49
- </IOSButton>
50
- ))}
51
- </div>
52
- </div>
53
-
54
- {/* Disabled State */}
55
- <div>
56
- <span className="text-muted d-block mb-1 small">Disabled</span>
57
- <div className="d-flex flex-wrap gap-2 py-1">
58
- {VariantList.map((variant) => (
59
- <IOSButton
60
- key={`${styleType}-${shape}-${variant}-disabled`}
61
- type={ButtonTypes.BUTTON}
62
- styleType={styleType}
63
- shape={shape}
64
- variant={variant}
65
- disabled={true}
66
- >
67
- {variant}
68
- </IOSButton>
69
- ))}
70
- </div>
71
- </div>
72
- </div>
73
- ))}
74
- </div>
75
- ))}
76
- </Fragment>
77
- );
78
- }
@@ -1,7 +0,0 @@
1
- import {Outlet} from "react-router-dom";
2
-
3
- export default function InputsSection() {
4
- return (
5
- <Outlet />
6
- );
7
- }
@@ -1,155 +0,0 @@
1
- import { AndroidInputStyleTypes } from "../../../types/Android/AndroidInputStyleTypes.tsx";
2
- import { AndroidInputShapeTypes } from "../../../types/Android/AndroidInputShapeTypes.tsx";
3
- import { InputTypes } from "../../../types/InputTypes.tsx";
4
- import VariantList from "../../VariantList.tsx";
5
-
6
- import { Fragment, useState } from "react";
7
- import AndroidInput from "../../../components/inputs/AndroidInput.tsx";
8
-
9
- const StyleTypeList: Array<{ label: string; styleType: AndroidInputStyleTypes }> = [
10
- { label: "Outlined", styleType: AndroidInputStyleTypes.OUTLINED },
11
- { label: "Filled", styleType: AndroidInputStyleTypes.FILLED },
12
- ];
13
-
14
- const ShapeList: Array<{ label: string; shape: AndroidInputShapeTypes }> = [
15
- { label: "Normal Shape", shape: AndroidInputShapeTypes.NORMAL },
16
- { label: "Small Shape", shape: AndroidInputShapeTypes.SMALL },
17
- ];
18
-
19
- export default function InputsAndroidSection() {
20
- const [inputValue, setInputValue] = useState<string>("");
21
-
22
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
23
- setInputValue(e.target.value);
24
- };
25
-
26
- return (
27
- <Fragment>
28
- <h2>Inputs (Android MD3)</h2>
29
-
30
- {StyleTypeList.map(({ label: styleLabel, styleType }) => (
31
- <div key={styleType} className="my-4">
32
- <h4 className="text-primary mb-3">{styleLabel} Inputs</h4>
33
-
34
- {ShapeList.map(({ label: shapeLabel, shape }) => (
35
- <div key={`${styleType}-${shape}`} className="mb-5">
36
- <div className={"ms-3"}>
37
- <h6 className="text-secondary mb-3">{shapeLabel}</h6>
38
- </div>
39
-
40
- {/* Enabled State */}
41
- <div className="mb-4">
42
- <span className="text-muted d-block mb-2 small font-monospace">Enabled</span>
43
- <div className="row g-3">
44
- {VariantList.map((variant) => (
45
- <div key={`${styleType}-${shape}-${variant}-enabled`} className="col-12 col-md-6 col-lg-4">
46
- <AndroidInput
47
- type={InputTypes.TEXT}
48
- styleType={styleType}
49
- shape={shape}
50
- variant={variant}
51
- label={`Label (${variant})`}
52
- helperText="Optional helper text"
53
- required={true}
54
- placeholder="Custom Placeholder..."
55
- value={inputValue}
56
- onChange={handleChange}
57
- />
58
- </div>
59
- ))}
60
- </div>
61
- </div>
62
-
63
- {/* With Value / Floating State */}
64
- <div className="mb-4">
65
- <span className="text-muted d-block mb-2 small font-monospace">With Value / Floating</span>
66
- <div className="row g-3">
67
- {VariantList.map((variant) => (
68
- <div key={`${styleType}-${shape}-${variant}-value`} className="col-12 col-md-6 col-lg-4">
69
- <AndroidInput
70
- type={InputTypes.TEXT}
71
- styleType={styleType}
72
- shape={shape}
73
- variant={variant}
74
- label="Username"
75
- defaultValue="lion.developer"
76
- helperText="Completed field"
77
- placeholder="Custom Placeholder..."
78
- autoComplete="off"
79
- />
80
- </div>
81
- ))}
82
- </div>
83
- </div>
84
-
85
- {/* Error State */}
86
- <div className="mb-4">
87
- <span className="text-muted d-block mb-2 small font-monospace">Error State</span>
88
- <div className="row g-3">
89
- {VariantList.map((variant) => (
90
- <div key={`${styleType}-${shape}-${variant}-error`} className="col-12 col-md-6 col-lg-4">
91
- <AndroidInput
92
- type={InputTypes.TEXT}
93
- styleType={styleType}
94
- shape={shape}
95
- variant={variant}
96
- label="Email Address"
97
- defaultValue="invalid-email"
98
- error="The email format is invalid"
99
- placeholder="Custom Placeholder..."
100
- />
101
- </div>
102
- ))}
103
- </div>
104
- </div>
105
-
106
- {/* Disabled State */}
107
- <div className="mb-4">
108
- <span className="text-muted d-block mb-2 small font-monospace">Disabled</span>
109
- <div className="row g-3">
110
- {VariantList.map((variant) => (
111
- <div key={`${styleType}-${shape}-${variant}-disabled`} className="col-12 col-md-6 col-lg-4">
112
- <AndroidInput
113
- type={InputTypes.TEXT}
114
- styleType={styleType}
115
- shape={shape}
116
- variant={variant}
117
- label="Disabled"
118
- defaultValue="Locked value"
119
- disabled={true}
120
- helperText="Non-editable"
121
- placeholder="Custom Placeholder..."
122
- />
123
- </div>
124
- ))}
125
- </div>
126
- </div>
127
-
128
- {/* Readonly State */}
129
- <div>
130
- <span className="text-muted d-block mb-2 small font-monospace">ReadOnly</span>
131
- <div className="row g-3">
132
- {VariantList.map((variant) => (
133
- <div key={`${styleType}-${shape}-${variant}-readonly`} className="col-12 col-md-6 col-lg-4">
134
- <AndroidInput
135
- type={InputTypes.TEXT}
136
- styleType={styleType}
137
- shape={shape}
138
- variant={variant}
139
- label="ReadOnly"
140
- defaultValue="Locked value"
141
- readOnly={true}
142
- helperText="Non-editable"
143
- placeholder="Custom Placeholder..."
144
- />
145
- </div>
146
- ))}
147
- </div>
148
- </div>
149
- </div>
150
- ))}
151
- </div>
152
- ))}
153
- </Fragment>
154
- );
155
- }