lupine.components 1.1.55 → 1.1.56

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 (136) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +1 -1
  3. package/src/component-pool/aspect-ratio/aspect-ratio-demo.tsx +103 -103
  4. package/src/component-pool/avatar/avatar-demo.tsx +127 -127
  5. package/src/component-pool/badge/badge-demo.tsx +152 -152
  6. package/src/component-pool/breadcrumbs/breadcrumbs-demo.tsx +105 -105
  7. package/src/component-pool/card/card-demo.tsx +179 -179
  8. package/src/component-pool/carousel/carousel-demo.tsx +191 -191
  9. package/src/component-pool/cascader/cascader-demo.tsx +127 -127
  10. package/src/component-pool/charts/area-chart-demo.tsx +106 -106
  11. package/src/component-pool/charts/area-chart.tsx +254 -254
  12. package/src/component-pool/charts/bar-chart-demo.tsx +107 -107
  13. package/src/component-pool/charts/bar-chart.tsx +223 -223
  14. package/src/component-pool/charts/chart-utils.ts +182 -182
  15. package/src/component-pool/charts/column-chart-demo.tsx +111 -111
  16. package/src/component-pool/charts/column-chart.tsx +230 -230
  17. package/src/component-pool/charts/donut-chart-demo.tsx +112 -112
  18. package/src/component-pool/charts/donut-chart.tsx +6 -6
  19. package/src/component-pool/charts/gauge-chart-demo.tsx +101 -101
  20. package/src/component-pool/charts/gauge-chart.tsx +117 -117
  21. package/src/component-pool/charts/index.ts +19 -19
  22. package/src/component-pool/charts/line-chart-demo.tsx +109 -109
  23. package/src/component-pool/charts/line-chart.tsx +233 -233
  24. package/src/component-pool/charts/pie-chart-demo.tsx +133 -133
  25. package/src/component-pool/charts/pie-chart.tsx +142 -142
  26. package/src/component-pool/charts/radar-chart-demo.tsx +88 -88
  27. package/src/component-pool/charts/radar-chart.tsx +231 -231
  28. package/src/component-pool/charts/scatter-chart-demo.tsx +88 -88
  29. package/src/component-pool/charts/scatter-chart.tsx +237 -237
  30. package/src/component-pool/copy-button/copy-button-demo.tsx +71 -71
  31. package/src/component-pool/date-picker/date-picker-demo.tsx +84 -84
  32. package/src/component-pool/date-picker/date-picker.tsx +437 -437
  33. package/src/component-pool/date-picker/index.ts +2 -2
  34. package/src/component-pool/floating-icon-menu/floating-icon-menu-demo.tsx +94 -94
  35. package/src/component-pool/floating-icon-menu/floating-icon-menu.tsx +241 -241
  36. package/src/component-pool/floating-icon-menu/index.ts +2 -2
  37. package/src/component-pool/h-editor/h-editor-demo.tsx +112 -112
  38. package/src/component-pool/h-editor/h-editor.ts +862 -862
  39. package/src/component-pool/h-editor/index.ts +2 -2
  40. package/src/component-pool/i-editor/i-editor-demo.tsx +72 -72
  41. package/src/component-pool/i-editor/i-editor-frames.ts +42 -42
  42. package/src/component-pool/i-editor/i-editor-styles.ts +22 -22
  43. package/src/component-pool/i-editor/i-editor.ts +3869 -3869
  44. package/src/component-pool/i-editor/index.ts +2 -2
  45. package/src/component-pool/map-wrapper/map-wrapper-demo.tsx +55 -55
  46. package/src/component-pool/p-editor/index.ts +4 -4
  47. package/src/component-pool/p-editor/p-editor-demo.tsx +51 -51
  48. package/src/component-pool/p-editor/p-editor-styles.ts +44 -44
  49. package/src/component-pool/p-editor/p-editor-types.ts +4 -4
  50. package/src/component-pool/p-editor/p-editor-utils.ts +38 -38
  51. package/src/component-pool/p-editor/p-editor.ts +2477 -2477
  52. package/src/component-pool/pdf-viewer/index.ts +2 -2
  53. package/src/component-pool/pdf-viewer/pdf-viewer-demo.tsx +116 -116
  54. package/src/component-pool/pdf-viewer/pdf-viewer.tsx +56 -56
  55. package/src/component-pool/picker-helper.tsx +222 -222
  56. package/src/component-pool/pull-to-refresh/pull-to-refresh-demo.tsx +99 -99
  57. package/src/component-pool/qrcode/index.ts +3 -3
  58. package/src/component-pool/qrcode/qrcode-demo.tsx +102 -102
  59. package/src/component-pool/qrcode/qrcode.tsx +169 -169
  60. package/src/component-pool/radial-progress/index.ts +2 -2
  61. package/src/component-pool/radial-progress/radial-progress-demo.tsx +84 -84
  62. package/src/component-pool/radial-progress/radial-progress.tsx +118 -118
  63. package/src/component-pool/range/gauge-demo.tsx +113 -113
  64. package/src/component-pool/range/gauge.tsx +392 -392
  65. package/src/component-pool/range/range-demo.tsx +97 -97
  66. package/src/component-pool/search-input/index.ts +2 -2
  67. package/src/component-pool/search-input/search-input-demo.tsx +50 -50
  68. package/src/component-pool/search-input/search-input.tsx +125 -125
  69. package/src/component-pool/skeleton/skeleton-card.tsx +114 -114
  70. package/src/component-pool/skeleton/skeleton-demo.tsx +55 -55
  71. package/src/component-pool/svg-icons.ts +95 -95
  72. package/src/component-pool/svg-props.tsx +144 -144
  73. package/src/component-pool/tag-input/index.ts +2 -2
  74. package/src/component-pool/tag-input/tag-input-demo.tsx +47 -47
  75. package/src/component-pool/tag-input/tag-input.tsx +166 -166
  76. package/src/component-pool/time-picker/index.ts +2 -2
  77. package/src/component-pool/time-picker/time-picker-demo.tsx +80 -80
  78. package/src/component-pool/time-picker/time-picker.tsx +311 -311
  79. package/src/component-pool/timeline/timeline-demo.tsx +75 -75
  80. package/src/component-pool/tooltip/tooltip-demo.tsx +144 -144
  81. package/src/component-pool/tour/tour-demo.tsx +92 -92
  82. package/src/component-pool/youtube-player/index.ts +2 -2
  83. package/src/component-pool/youtube-player/youtube-player-demo.tsx +57 -57
  84. package/src/component-pool/youtube-player/youtube-player.tsx +116 -116
  85. package/src/components/action-sheet-color.tsx +269 -269
  86. package/src/components/action-sheet-date.tsx +299 -299
  87. package/src/components/action-sheet-demo.tsx +216 -216
  88. package/src/components/action-sheet-theme.tsx +150 -150
  89. package/src/components/action-sheet-time.tsx +157 -157
  90. package/src/components/input-number.tsx +206 -206
  91. package/src/components/input-with-title-demo.tsx +42 -42
  92. package/src/components/loading-spin.tsx +74 -74
  93. package/src/components/message-box-demo.tsx +107 -107
  94. package/src/components/mobile-components/mobile-side-menu-demo.tsx +47 -47
  95. package/src/components/modal-demo.tsx +56 -56
  96. package/src/components/notice-message-demo.tsx +57 -57
  97. package/src/components/paging-link-demo.tsx +430 -430
  98. package/src/components/popup-menu-demo.tsx +172 -172
  99. package/src/components/progress-demo.tsx +53 -53
  100. package/src/components/radio-label-demo.tsx +41 -41
  101. package/src/components/redirect-demo.tsx +36 -36
  102. package/src/components/resizable-splitter-demo.tsx +104 -104
  103. package/src/components/select-angle-demo.tsx +32 -32
  104. package/src/components/select-with-title-demo.tsx +53 -53
  105. package/src/components/slide-tab-component-demo.tsx +86 -86
  106. package/src/components/spinner-demo.tsx +52 -52
  107. package/src/components/stars-component-demo.tsx +36 -36
  108. package/src/components/switch-option-component.tsx +74 -74
  109. package/src/components/switch-option-demo.tsx +36 -36
  110. package/src/components/tabs-demo.tsx +42 -42
  111. package/src/components/text-glow-demo.tsx +46 -46
  112. package/src/components/text-scale-demo.tsx +41 -41
  113. package/src/components/text-wave-demo.tsx +48 -48
  114. package/src/components/toggle-button-demo.tsx +230 -230
  115. package/src/demo/demo-page.tsx +271 -271
  116. package/src/demo/demo-registry.ts +143 -143
  117. package/src/demo/demo-render-page.tsx +94 -94
  118. package/src/demo/demo-types.ts +22 -22
  119. package/src/demo/mock/demo-icons.ts +72 -72
  120. package/src/demo/mock/responsive-demo-mock-pages.tsx +197 -197
  121. package/src/demo/mock/side-menu-mock.tsx +113 -113
  122. package/src/demo/mock/user-settings-mock.tsx +310 -310
  123. package/src/frames/responsive-frame-demo.tsx +120 -120
  124. package/src/frames/slider-frame-demo.tsx +111 -111
  125. package/src/frames/slider-helper.tsx +194 -194
  126. package/src/lib/button-async-lock.tsx +43 -43
  127. package/src/lib/canvas/canvas-drawing.ts +503 -503
  128. package/src/lib/canvas/canvas-geometry.ts +255 -255
  129. package/src/lib/canvas/canvas-helper.tsx +176 -176
  130. package/src/lib/canvas/canvas-image.ts +110 -110
  131. package/src/lib/canvas/canvas-types.ts +93 -93
  132. package/src/lib/canvas/index.ts +5 -5
  133. package/src/lib/disable-console.ts +11 -11
  134. package/src/lib/disable-debug.ts +8 -8
  135. package/src/lib/support-safe-area.ts +25 -25
  136. package/tsconfig.json +113 -113
@@ -1,179 +1,179 @@
1
- import { Card } from './card';
2
- import { Avatar } from '../avatar';
3
- import { DemoStory } from '../../demo/demo-types';
4
- import { MediaQueryRange } from 'lupine.components';
5
-
6
- export const cardDemo: DemoStory<any> = {
7
- id: 'cardDemo',
8
- text: 'Card',
9
- args: {
10
- hoverable: true,
11
- },
12
- argTypes: {
13
- hoverable: {
14
- control: 'boolean',
15
- description: 'Whether the card shows a hover effect',
16
- },
17
- },
18
- render: (args: any) => {
19
- const css = {
20
- display: 'flex',
21
- flexDirection: 'column',
22
- gap: '32px',
23
- padding: '24px',
24
- '.section-title': {
25
- fontSize: '20px',
26
- fontWeight: 'bold',
27
- marginBottom: '16px',
28
- color: 'var(--primary-color)',
29
- borderBottom: '2px solid var(--secondary-border-color)',
30
- paddingBottom: '8px',
31
- },
32
- '.card-grid': {
33
- display: 'grid',
34
- gap: '16px',
35
- gridTemplateColumns: 'repeat(4, 1fr)',
36
- [MediaQueryRange.DesktopBelow]: {
37
- gridTemplateColumns: 'repeat(3, 1fr)',
38
- },
39
- [MediaQueryRange.MobileBelow]: {
40
- gridTemplateColumns: 'repeat(2, 1fr)',
41
- },
42
- [MediaQueryRange.ExtraSmallBelow]: {
43
- gridTemplateColumns: '1fr',
44
- },
45
- },
46
- '.demo-row': {
47
- display: 'flex',
48
- flexWrap: 'wrap',
49
- gap: '24px',
50
- },
51
- };
52
-
53
- const productItems = [
54
- { id: 1, title: 'Premium Violin Stand', price: '$49.99', img: 'https://picsum.photos/seed/v1/400/300' },
55
- { id: 2, title: 'Professional Bow', price: '$129.00', img: 'https://picsum.photos/seed/v2/400/500' },
56
- { id: 3, title: 'Silk String Set', price: '$25.00', img: 'https://picsum.photos/seed/v3/400/300' },
57
- { id: 4, title: 'Rosin High Grade', price: '$12.50', img: 'https://picsum.photos/seed/v4/400/300' },
58
- { id: 5, title: 'Violin Case Carbon', price: '$299.00', img: 'https://picsum.photos/seed/v5/400/200' },
59
- { id: 6, title: 'Shoulder Rest', price: '$35.00', img: 'https://picsum.photos/seed/v6/400/300' },
60
- ];
61
-
62
- return (
63
- <div css={css}>
64
- {/* Responsive Grid Section */}
65
- <section>
66
- <div class='section-title'>Responsive Product Grid (4 &rarr; 3 &rarr; 2 &rarr; 1)</div>
67
- <div class='card-grid'>
68
- {productItems.map((item) => (
69
- <Card
70
- hoverable={args.hoverable}
71
- cover={<img src={item.img} alt={item.title} />}
72
- title={item.title}
73
- description='High-quality accessory for professional musicians.'
74
- footer={
75
- <div
76
- style={{ display: 'flex', justifyContent: 'space-between', width: '100%', alignItems: 'center' }}
77
- >
78
- <span style={{ fontWeight: 'bold', color: 'var(--success-color, #2ecc71)' }}>{item.price}</span>
79
- <button
80
- style={{
81
- padding: '4px 12px',
82
- borderRadius: '4px',
83
- border: 'none',
84
- backgroundColor: 'var(--primary-accent-color, #1890ff)',
85
- color: 'var(--primary-bg-color, #fff)',
86
- cursor: 'pointer',
87
- }}
88
- >
89
- Buy
90
- </button>
91
- </div>
92
- }
93
- />
94
- ))}
95
- </div>
96
- </section>
97
-
98
- {/* Profile Layouts */}
99
- <section>
100
- <div class='section-title'>Profile Layouts</div>
101
- <div class='demo-row'>
102
- <Card
103
- style={{ width: '300px' }}
104
- hoverable={args.hoverable}
105
- avatar={<Avatar src='https://picsum.photos/seed/p1/150' size='lg' online />}
106
- title='John Doe'
107
- description='Senior Violin Instructor at Lupine Academy. 15+ years of experience in classical music.'
108
- extra={
109
- <button
110
- style={{ background: 'none', border: 'none', color: 'var(--primary-color)', cursor: 'pointer' }}
111
- >
112
- Follow
113
- </button>
114
- }
115
- />
116
-
117
- <Card
118
- style={{ width: '300px' }}
119
- hoverable={args.hoverable}
120
- horizontal
121
- avatar={<Avatar src='https://picsum.photos/seed/p2/150' size='md' status='away' />}
122
- title='Jane Smith'
123
- description='Orchestra Conductor'
124
- />
125
- </div>
126
- </section>
127
-
128
- {/* Horizontal Card */}
129
- <section>
130
- <div class='section-title'>Horizontal Product (Responsive)</div>
131
- <Card
132
- hoverable={args.hoverable}
133
- horizontal
134
- cover={<img src='https://picsum.photos/seed/b1/400/300' />}
135
- title='Lupine Master Collection Book'
136
- description='The ultimate guide to mastering Lupine.js framework. Includes deep dives into reactive state, SSR, and component design patterns. Essential for modern web developers.'
137
- footer={
138
- <div style={{ gap: '12px', display: 'flex' }}>
139
- <button
140
- style={{
141
- padding: '8px 16px',
142
- borderRadius: '6px',
143
- border: '1px solid var(--primary-accent-color, #1890ff)',
144
- color: 'var(--primary-accent-color, #1890ff)',
145
- background: 'transparent',
146
- }}
147
- >
148
- Preview
149
- </button>
150
- <button
151
- style={{
152
- padding: '8px 16px',
153
- borderRadius: '6px',
154
- border: 'none',
155
- background: 'var(--primary-accent-color, #1890ff)',
156
- color: 'var(--primary-bg-color, #fff)',
157
- }}
158
- >
159
- Add to Cart
160
- </button>
161
- </div>
162
- }
163
- />
164
- </section>
165
- </div>
166
- );
167
- },
168
- code: `import { Card } from 'lupine.components/component-pool';
169
-
170
- <Card
171
- title="Card Title"
172
- description="Card description goes here."
173
- cover={<img src="..." />}
174
- footer={<button>Action</button>}
175
- />
176
-
177
- <Card horizontal title="Row Item" avatar={<Avatar src="..." />} />
178
- `,
179
- };
1
+ import { Card } from './card';
2
+ import { Avatar } from '../avatar';
3
+ import { DemoStory } from '../../demo/demo-types';
4
+ import { MediaQueryRange } from 'lupine.components';
5
+
6
+ export const cardDemo: DemoStory<any> = {
7
+ id: 'cardDemo',
8
+ text: 'Card',
9
+ args: {
10
+ hoverable: true,
11
+ },
12
+ argTypes: {
13
+ hoverable: {
14
+ control: 'boolean',
15
+ description: 'Whether the card shows a hover effect',
16
+ },
17
+ },
18
+ render: (args: any) => {
19
+ const css = {
20
+ display: 'flex',
21
+ flexDirection: 'column',
22
+ gap: '32px',
23
+ padding: '24px',
24
+ '.section-title': {
25
+ fontSize: '20px',
26
+ fontWeight: 'bold',
27
+ marginBottom: '16px',
28
+ color: 'var(--primary-color)',
29
+ borderBottom: '2px solid var(--secondary-border-color)',
30
+ paddingBottom: '8px',
31
+ },
32
+ '.card-grid': {
33
+ display: 'grid',
34
+ gap: '16px',
35
+ gridTemplateColumns: 'repeat(4, 1fr)',
36
+ [MediaQueryRange.DesktopBelow]: {
37
+ gridTemplateColumns: 'repeat(3, 1fr)',
38
+ },
39
+ [MediaQueryRange.MobileBelow]: {
40
+ gridTemplateColumns: 'repeat(2, 1fr)',
41
+ },
42
+ [MediaQueryRange.ExtraSmallBelow]: {
43
+ gridTemplateColumns: '1fr',
44
+ },
45
+ },
46
+ '.demo-row': {
47
+ display: 'flex',
48
+ flexWrap: 'wrap',
49
+ gap: '24px',
50
+ },
51
+ };
52
+
53
+ const productItems = [
54
+ { id: 1, title: 'Premium Violin Stand', price: '$49.99', img: 'https://picsum.photos/seed/v1/400/300' },
55
+ { id: 2, title: 'Professional Bow', price: '$129.00', img: 'https://picsum.photos/seed/v2/400/500' },
56
+ { id: 3, title: 'Silk String Set', price: '$25.00', img: 'https://picsum.photos/seed/v3/400/300' },
57
+ { id: 4, title: 'Rosin High Grade', price: '$12.50', img: 'https://picsum.photos/seed/v4/400/300' },
58
+ { id: 5, title: 'Violin Case Carbon', price: '$299.00', img: 'https://picsum.photos/seed/v5/400/200' },
59
+ { id: 6, title: 'Shoulder Rest', price: '$35.00', img: 'https://picsum.photos/seed/v6/400/300' },
60
+ ];
61
+
62
+ return (
63
+ <div css={css}>
64
+ {/* Responsive Grid Section */}
65
+ <section>
66
+ <div class='section-title'>Responsive Product Grid (4 &rarr; 3 &rarr; 2 &rarr; 1)</div>
67
+ <div class='card-grid'>
68
+ {productItems.map((item) => (
69
+ <Card
70
+ hoverable={args.hoverable}
71
+ cover={<img src={item.img} alt={item.title} />}
72
+ title={item.title}
73
+ description='High-quality accessory for professional musicians.'
74
+ footer={
75
+ <div
76
+ style={{ display: 'flex', justifyContent: 'space-between', width: '100%', alignItems: 'center' }}
77
+ >
78
+ <span style={{ fontWeight: 'bold', color: 'var(--success-color, #2ecc71)' }}>{item.price}</span>
79
+ <button
80
+ style={{
81
+ padding: '4px 12px',
82
+ borderRadius: '4px',
83
+ border: 'none',
84
+ backgroundColor: 'var(--primary-accent-color, #1890ff)',
85
+ color: 'var(--primary-bg-color, #fff)',
86
+ cursor: 'pointer',
87
+ }}
88
+ >
89
+ Buy
90
+ </button>
91
+ </div>
92
+ }
93
+ />
94
+ ))}
95
+ </div>
96
+ </section>
97
+
98
+ {/* Profile Layouts */}
99
+ <section>
100
+ <div class='section-title'>Profile Layouts</div>
101
+ <div class='demo-row'>
102
+ <Card
103
+ style={{ width: '300px' }}
104
+ hoverable={args.hoverable}
105
+ avatar={<Avatar src='https://picsum.photos/seed/p1/150' size='lg' online />}
106
+ title='John Doe'
107
+ description='Senior Violin Instructor at Lupine Academy. 15+ years of experience in classical music.'
108
+ extra={
109
+ <button
110
+ style={{ background: 'none', border: 'none', color: 'var(--primary-color)', cursor: 'pointer' }}
111
+ >
112
+ Follow
113
+ </button>
114
+ }
115
+ />
116
+
117
+ <Card
118
+ style={{ width: '300px' }}
119
+ hoverable={args.hoverable}
120
+ horizontal
121
+ avatar={<Avatar src='https://picsum.photos/seed/p2/150' size='md' status='away' />}
122
+ title='Jane Smith'
123
+ description='Orchestra Conductor'
124
+ />
125
+ </div>
126
+ </section>
127
+
128
+ {/* Horizontal Card */}
129
+ <section>
130
+ <div class='section-title'>Horizontal Product (Responsive)</div>
131
+ <Card
132
+ hoverable={args.hoverable}
133
+ horizontal
134
+ cover={<img src='https://picsum.photos/seed/b1/400/300' />}
135
+ title='Lupine Master Collection Book'
136
+ description='The ultimate guide to mastering Lupine.js framework. Includes deep dives into reactive state, SSR, and component design patterns. Essential for modern web developers.'
137
+ footer={
138
+ <div style={{ gap: '12px', display: 'flex' }}>
139
+ <button
140
+ style={{
141
+ padding: '8px 16px',
142
+ borderRadius: '6px',
143
+ border: '1px solid var(--primary-accent-color, #1890ff)',
144
+ color: 'var(--primary-accent-color, #1890ff)',
145
+ background: 'transparent',
146
+ }}
147
+ >
148
+ Preview
149
+ </button>
150
+ <button
151
+ style={{
152
+ padding: '8px 16px',
153
+ borderRadius: '6px',
154
+ border: 'none',
155
+ background: 'var(--primary-accent-color, #1890ff)',
156
+ color: 'var(--primary-bg-color, #fff)',
157
+ }}
158
+ >
159
+ Add to Cart
160
+ </button>
161
+ </div>
162
+ }
163
+ />
164
+ </section>
165
+ </div>
166
+ );
167
+ },
168
+ code: `import { Card } from 'lupine.components/component-pool';
169
+
170
+ <Card
171
+ title="Card Title"
172
+ description="Card description goes here."
173
+ cover={<img src="..." />}
174
+ footer={<button>Action</button>}
175
+ />
176
+
177
+ <Card horizontal title="Row Item" avatar={<Avatar src="..." />} />
178
+ `,
179
+ };