@furystack/shades-common-components 10.0.32 → 10.0.35

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/CHANGELOG.md CHANGED
@@ -1,113 +1,27 @@
1
- # Change Log
1
+ # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
3
+ ## [10.0.35] - 2026-01-26
5
4
 
6
- ### [2.0.5](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@2.0.4...@furystack/shades-common-components@2.0.5) (2022-02-16)
5
+ ### 🔧 Chores
7
6
 
8
- **Note:** Version bump only for package @furystack/shades-common-components
7
+ - Standardized author format, improved keywords, removed obsolete `gitHead`, added `engines` (Node 22+) and `sideEffects: false`
9
8
 
10
- ### [2.0.4](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@2.0.3...@furystack/shades-common-components@2.0.4) (2022-02-02)
9
+ ## [10.0.34] - 2026-01-26
11
10
 
12
- **Note:** Version bump only for package @furystack/shades-common-components
11
+ ### ⬆️ Dependencies
13
12
 
14
- ### [2.0.3](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@2.0.1...@furystack/shades-common-components@2.0.3) (2022-01-10)
13
+ - Updated `@furystack/inject` with fix for singleton injector reference being overwritten by child injectors
15
14
 
16
- **Note:** Version bump only for package @furystack/shades-common-components
15
+ ## [10.0.33] - 2026-01-22
17
16
 
18
- ### [2.0.2](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@2.0.1...@furystack/shades-common-components@2.0.2) (2022-01-10)
17
+ ### ⬆️ Dependencies
19
18
 
20
- **Note:** Version bump only for package @furystack/shades-common-components
19
+ - Dependency updates
21
20
 
22
- ### [2.0.1](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@2.0.0...@furystack/shades-common-components@2.0.1) (2021-12-20)
21
+ ### 📚 Documentation
23
22
 
24
- **Note:** Version bump only for package @furystack/shades-common-components
23
+ - Added detailed README with component documentation and usage examples
25
24
 
26
- ## [2.0.0](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.8.3...@furystack/shades-common-components@2.0.0) (2021-12-08)
25
+ ### 🔧 Chores
27
26
 
28
- ### BREAKING CHANGES
29
-
30
- - **@furystack/shades:** Disposable resources on Shade Components (#165)
31
- - **@furystack/shades:** Routing based on pathname, add basic unit tests for component factory (#164)
32
-
33
- - **@furystack/shades:** Routing based on pathname, add basic unit tests for component factory ([#164](https://github.com/furystack/furystack/issues/164)) ([3221e0c](https://github.com/furystack/furystack/commit/3221e0ce60d3532b6e5f570db64d211e479673ec))
34
-
35
- ### 🚀 What's new
36
-
37
- - **@furystack/shades:** Disposable resources on Shade Components ([#165](https://github.com/furystack/furystack/issues/165)) ([8567e7e](https://github.com/furystack/furystack/commit/8567e7e2e01cec232a5f4448dfc0833c1f183229))
38
-
39
- ### [1.8.3](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.8.2...@furystack/shades-common-components@1.8.3) (2021-11-30)
40
-
41
- **Note:** Version bump only for package @furystack/shades-common-components
42
-
43
- ### [1.8.2](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.8.1...@furystack/shades-common-components@1.8.2) (2021-11-29)
44
-
45
- **Note:** Version bump only for package @furystack/shades-common-components
46
-
47
- ### [1.8.1](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.8.0...@furystack/shades-common-components@1.8.1) (2021-11-19)
48
-
49
- **Note:** Version bump only for package @furystack/shades-common-components
50
-
51
- ## [1.8.0](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.6...@furystack/shades-common-components@1.8.0) (2021-11-17)
52
-
53
- ### 🚀 What's new
54
-
55
- - **@furystack/shades-common-components:** improved button theme look and feel ([c117e5e](https://github.com/furystack/furystack/commit/c117e5eaf3fe2cd9553357e06ec6bd6a43cf0f50))
56
- - **@furystack/shades-common-components:** input theme from provider ([4cdc6bc](https://github.com/furystack/furystack/commit/4cdc6bc60525b04a1aefa4e4a3438db730e63b68))
57
-
58
- ### [1.7.6](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.5...@furystack/shades-common-components@1.7.6) (2021-11-09)
59
-
60
- **Note:** Version bump only for package @furystack/shades-common-components
61
-
62
- ### [1.7.5](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.4...@furystack/shades-common-components@1.7.5) (2021-10-15)
63
-
64
- **Note:** Version bump only for package @furystack/shades-common-components
65
-
66
- ### [1.7.4](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.3...@furystack/shades-common-components@1.7.4) (2021-10-05)
67
-
68
- **Note:** Version bump only for package @furystack/shades-common-components
69
-
70
- ### [1.7.3](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.2...@furystack/shades-common-components@1.7.3) (2021-09-16)
71
-
72
- **Note:** Version bump only for package @furystack/shades-common-components
73
-
74
- ### [1.7.2](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.1...@furystack/shades-common-components@1.7.2) (2021-08-27)
75
-
76
- **Note:** Version bump only for package @furystack/shades-common-components
77
-
78
- ### [1.7.1](https://github.com/furystack/furystack/compare/@furystack/shades-common-components@1.7.0...@furystack/shades-common-components@1.7.1) (2021-08-19)
79
-
80
- **Note:** Version bump only for package @furystack/shades-common-components
81
-
82
- ## 1.7.0 (2021-08-19)
83
-
84
- ### 🚀 What's new
85
-
86
- - **project:** re-added Shades ([#120](https://github.com/furystack/furystack/issues/120)) ([9f58174](https://github.com/furystack/furystack/commit/9f58174b3762fd4e4106f48215a72ec295cf2553))
87
- - **shades-common-components:** Optional full screen hit list for Command Palette ([0b48022](https://github.com/furystack/furystack/commit/0b48022c14b2d343722f5274010e2e5bc7a18e12))
88
-
89
- ### 🐛 Bug Fixes
90
-
91
- - **common-components:** DataGrid props ([4ce2b0d](https://github.com/furystack/furystack/commit/4ce2b0d15f3e37387ec955aadc51164ca85b7535))
92
-
93
- ## 1.6.0 (2021-07-31)
94
-
95
- ### 🚀 What's new
96
-
97
- - **project:** re-added Shades ([#120](https://github.com/furystack/furystack/issues/120)) ([9f58174](https://github.com/furystack/furystack/commit/9f58174b3762fd4e4106f48215a72ec295cf2553))
98
- - **shades-common-components:** Optional full screen hit list for Command Palette ([0b48022](https://github.com/furystack/furystack/commit/0b48022c14b2d343722f5274010e2e5bc7a18e12))
99
-
100
- ### 🐛 Bug Fixes
101
-
102
- - **common-components:** DataGrid props ([4ce2b0d](https://github.com/furystack/furystack/commit/4ce2b0d15f3e37387ec955aadc51164ca85b7535))
103
-
104
- ## 1.5.0 (2021-07-30)
105
-
106
- ### 🚀 What's new
107
-
108
- - **project:** re-added Shades ([#120](https://github.com/furystack/furystack/issues/120)) ([9f58174](https://github.com/furystack/furystack/commit/9f58174b3762fd4e4106f48215a72ec295cf2553))
109
- - **shades-common-components:** Optional full screen hit list for Command Palette ([0b48022](https://github.com/furystack/furystack/commit/0b48022c14b2d343722f5274010e2e5bc7a18e12))
110
-
111
- ### 🐛 Bug Fixes
112
-
113
- - **common-components:** DataGrid props ([4ce2b0d](https://github.com/furystack/furystack/commit/4ce2b0d15f3e37387ec955aadc51164ca85b7535))
27
+ - Migrated to centralized changelog management system
package/README.md ADDED
@@ -0,0 +1,227 @@
1
+ # @furystack/shades-common-components
2
+
3
+ Common and reusable UI components for FuryStack Shades.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @furystack/shades-common-components
9
+ # or
10
+ yarn add @furystack/shades-common-components
11
+ ```
12
+
13
+ ## Components
14
+
15
+ ### Button
16
+
17
+ A styled button component with contained and outlined variants.
18
+
19
+ ```tsx
20
+ import { Button } from '@furystack/shades-common-components'
21
+
22
+ // Contained button (default)
23
+ <Button onclick={() => console.log('Clicked!')}>Click me</Button>
24
+
25
+ // Outlined button
26
+ <Button variant="outlined" color="primary">Outlined</Button>
27
+
28
+ // Disabled button
29
+ <Button disabled>Disabled</Button>
30
+
31
+ // With color
32
+ <Button variant="contained" color="error">Delete</Button>
33
+ ```
34
+
35
+ ### Input
36
+
37
+ A styled text input with validation support.
38
+
39
+ ```tsx
40
+ import { Input } from '@furystack/shades-common-components'
41
+
42
+ // Basic input
43
+ <Input
44
+ labelTitle="Username"
45
+ placeholder="Enter your username"
46
+ onTextChange={(value) => console.log(value)}
47
+ />
48
+
49
+ // With validation
50
+ <Input
51
+ labelTitle="Email"
52
+ type="email"
53
+ required
54
+ variant="outlined"
55
+ getValidationResult={({ state }) => {
56
+ if (!state.value.includes('@')) {
57
+ return { isValid: false, message: 'Please enter a valid email' }
58
+ }
59
+ return { isValid: true }
60
+ }}
61
+ />
62
+
63
+ // Contained variant
64
+ <Input
65
+ labelTitle="Password"
66
+ type="password"
67
+ variant="contained"
68
+ defaultColor="primary"
69
+ />
70
+ ```
71
+
72
+ ### Modal
73
+
74
+ A modal dialog component.
75
+
76
+ ```tsx
77
+ import { Modal } from '@furystack/shades-common-components'
78
+ import { ObservableValue } from '@furystack/utils'
79
+
80
+ const isVisible = new ObservableValue(false)
81
+
82
+ <Button onclick={() => isVisible.setValue(true)}>Open Modal</Button>
83
+
84
+ <Modal
85
+ isVisible={isVisible}
86
+ onClose={() => isVisible.setValue(false)}
87
+ backdropStyle={{ background: 'rgba(0, 0, 0, 0.5)' }}
88
+ >
89
+ <div onclick={(e) => e.stopPropagation()}>
90
+ <h2>Modal Title</h2>
91
+ <p>Modal content goes here</p>
92
+ <Button onclick={() => isVisible.setValue(false)}>Close</Button>
93
+ </div>
94
+ </Modal>
95
+ ```
96
+
97
+ ### DataGrid
98
+
99
+ A data grid component for displaying tabular data.
100
+
101
+ ```tsx
102
+ import { DataGrid, CollectionService } from '@furystack/shades-common-components'
103
+ import { ObservableValue } from '@furystack/utils'
104
+
105
+ type User = { id: number; name: string; email: string }
106
+
107
+ const collectionService = new CollectionService<User>({ /* options */ })
108
+ const findOptions = new ObservableValue({ top: 10, skip: 0 })
109
+
110
+ <DataGrid<User, 'name' | 'email'>
111
+ columns={['name', 'email']}
112
+ collectionService={collectionService}
113
+ findOptions={findOptions}
114
+ headerComponents={{
115
+ name: () => <span>Name</span>,
116
+ email: () => <span>Email</span>,
117
+ }}
118
+ rowComponents={{
119
+ name: (user) => <span>{user.name}</span>,
120
+ email: (user) => <span>{user.email}</span>,
121
+ }}
122
+ styles={{ container: { minHeight: '400px' } }}
123
+ />
124
+ ```
125
+
126
+ ### AppBar
127
+
128
+ A top navigation bar component.
129
+
130
+ ```tsx
131
+ import { AppBar, AppBarLink } from '@furystack/shades-common-components'
132
+ ;<AppBar>
133
+ <h1>My App</h1>
134
+ <AppBarLink href="/">Home</AppBarLink>
135
+ <AppBarLink href="/about">About</AppBarLink>
136
+ </AppBar>
137
+ ```
138
+
139
+ ### Tabs
140
+
141
+ A tabbed interface component.
142
+
143
+ ```tsx
144
+ import { Tabs } from '@furystack/shades-common-components'
145
+ ;<Tabs
146
+ tabs={[
147
+ { header: <span>Tab 1</span>, component: <div>Content 1</div> },
148
+ { header: <span>Tab 2</span>, component: <div>Content 2</div> },
149
+ ]}
150
+ />
151
+ ```
152
+
153
+ ### Loader
154
+
155
+ A loading spinner component.
156
+
157
+ ```tsx
158
+ import { Loader } from '@furystack/shades-common-components'
159
+ ;<Loader />
160
+ ```
161
+
162
+ ### Paper
163
+
164
+ A container component with elevation.
165
+
166
+ ```tsx
167
+ import { Paper } from '@furystack/shades-common-components'
168
+ ;<Paper>
169
+ <p>Content with elevated background</p>
170
+ </Paper>
171
+ ```
172
+
173
+ ### Avatar
174
+
175
+ An avatar component for displaying user images or initials.
176
+
177
+ ```tsx
178
+ import { Avatar } from '@furystack/shades-common-components'
179
+ ;<Avatar userName="John Doe" />
180
+ ```
181
+
182
+ ### FAB (Floating Action Button)
183
+
184
+ A floating action button component.
185
+
186
+ ```tsx
187
+ import { Fab } from '@furystack/shades-common-components'
188
+ ;<Fab onclick={() => console.log('FAB clicked')}>+</Fab>
189
+ ```
190
+
191
+ ## Services
192
+
193
+ ### CollectionService
194
+
195
+ A service for managing collections of data with pagination, sorting, and filtering.
196
+
197
+ ```tsx
198
+ import { CollectionService } from '@furystack/shades-common-components'
199
+
200
+ const service = new CollectionService<MyModel>({
201
+ loader: async (options) => {
202
+ const response = await fetch('/api/items', {
203
+ /* ... */
204
+ })
205
+ return response.json()
206
+ },
207
+ })
208
+
209
+ // Subscribe to data changes
210
+ service.data.subscribe((items) => {
211
+ console.log('Items updated:', items)
212
+ })
213
+ ```
214
+
215
+ ### ThemeProviderService
216
+
217
+ Provides theming capabilities for all components.
218
+
219
+ ```tsx
220
+ import { ThemeProviderService } from '@furystack/shades-common-components'
221
+
222
+ // Get the theme provider instance from the injector
223
+ const themeProvider = injector.getInstance(ThemeProviderService)
224
+
225
+ // Access theme properties
226
+ const primaryColor = themeProvider.theme.palette.primary.main
227
+ ```
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/components/data-grid/body.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAkBhD,MAAM,CAAC,MAAM,YAAY,GAGD,KAAK,CAAiC;IAC5D,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,uBAAuB;IACpC,eAAe,EAAE,OAAO;IACxB,KAAK,EAAE;QACL,OAAO,EAAE,iBAAiB;KAC3B;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAExD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,cAAc,IAAI,6CAAwB,CAAA;QACzD,CAAC;QAED,OAAO,CACL,uCACG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,gBAAC,WAAW,IACV,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAC/B,CAChB,CAAC,CACD,CACJ,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/components/data-grid/body.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAkBhD,MAAM,CAAC,MAAM,YAAY,GAGD,KAAK,CAAC;IAC5B,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,uBAAuB;IACpC,eAAe,EAAE,OAAO;IACxB,KAAK,EAAE;QACL,OAAO,EAAE,iBAAiB;KAC3B;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAExD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,cAAc,IAAI,6CAAwB,CAAA;QACzD,CAAC;QAED,OAAO,CACL,uCACG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,gBAAC,WAAW,IACV,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAC/B,CAChB,CAAC,CACD,CACJ,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -3,7 +3,7 @@ import type { CollectionService } from '../../services/collection-service.js';
3
3
  import type { DataRowCells } from './data-grid.js';
4
4
  export interface DataGridRowProps<T, Column extends string> {
5
5
  entry: T;
6
- columns: Array<keyof T>;
6
+ columns: Column[];
7
7
  service: CollectionService<T>;
8
8
  rowComponents?: DataRowCells<T, Column>;
9
9
  onRowClick?: (row: T, event: MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"data-grid-row.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid-row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,gBAAgB,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM;IACxD,KAAK,EAAE,CAAC,CAAA;IACR,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACvB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACvC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAClD;AAED,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,EACjD,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,EAClC,QAAQ,EAAE,YAAY,KACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAgIlB,CAAA"}
1
+ {"version":3,"file":"data-grid-row.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid-row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,gBAAgB,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM;IACxD,KAAK,EAAE,CAAC,CAAA;IACR,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACvC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAClD;AAED,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,EACjD,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,EAClC,QAAQ,EAAE,YAAY,KACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAsIlB,CAAA"}
@@ -100,7 +100,9 @@ export const DataGridRow = Shade({
100
100
  fontSize: '0.875rem',
101
101
  lineHeight: '1.5',
102
102
  }, onclick: (ev) => props.onRowClick?.(entry, ev), ondblclick: (ev) => props.onRowDoubleClick?.(entry, ev) }, rowComponents?.[column]?.(entry, { selection, focus }) ||
103
- rowComponents?.default?.(entry, { selection, focus }) || createComponent("span", null, entry[column]))))));
103
+ rowComponents?.default?.(entry, { selection, focus }) || (createComponent("span", null, typeof entry === 'object' && entry && column in entry
104
+ ? entry[column]
105
+ : null)))))));
104
106
  },
105
107
  });
106
108
  //# sourceMappingURL=data-grid-row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-grid-row.js","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid-row.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-grid-row.js","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid-row.tsx"],"names":[],"mappings":"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"}
@@ -2,10 +2,8 @@ import type { FindOptions } from '@furystack/core';
2
2
  import type { ObservableValue } from '@furystack/utils';
3
3
  import type { CollectionService } from '../../services/collection-service.js';
4
4
  export declare const dataGridItemsPerPage: number[];
5
- export declare const DataGridFooter: (props: {
6
- service: CollectionService<any>;
7
- findOptions: ObservableValue<FindOptions<any, any[]>>;
8
- } & Omit<Partial<HTMLElement>, "style"> & {
9
- style?: Partial<CSSStyleDeclaration>;
10
- }, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
5
+ export declare const DataGridFooter: <T>(props: {
6
+ service: CollectionService<T>;
7
+ findOptions: ObservableValue<FindOptions<T, Array<keyof T>>>;
8
+ }) => JSX.Element;
11
9
  //# sourceMappingURL=footer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAG7E,eAAO,MAAM,oBAAoB,UAAkC,CAAA;AAEnE,eAAO,MAAM,cAAc;aAChB,iBAAiB,CAAC,GAAG,CAAC;iBAClB,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;;;sEA2ErD,CAAA"}
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAG7E,eAAO,MAAM,oBAAoB,UAAkC,CAAA;AAEnE,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE;IACtC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC7B,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;CAC7D,KAAK,GAAG,CAAC,OA8ER,CAAA"}
@@ -16,6 +16,9 @@ export const DataGridFooter = Shade({
16
16
  const skip = currentOptions.skip || 0;
17
17
  const currentPage = Math.ceil(skip) / (top || 1);
18
18
  const currentEntriesPerPage = top;
19
+ const pages = new Array(Math.ceil(currentData.count / (currentOptions.top || Infinity)))
20
+ .fill(0)
21
+ .map((_, index) => index);
19
22
  return (createComponent("div", { className: "pager", style: {
20
23
  backdropFilter: 'blur(10px)',
21
24
  color: theme.text.secondary,
@@ -31,7 +34,7 @@ export const DataGridFooter = Shade({
31
34
  createComponent("select", { style: { margin: '0 1em' }, onchange: (ev) => {
32
35
  const value = parseInt(ev.target.value, 10);
33
36
  setCurrentOptions({ ...currentOptions, skip: (currentOptions.top || 0) * value });
34
- } }, [...new Array(Math.ceil(currentData.count / (currentOptions.top || Infinity)))].map((_val, index) => (createComponent("option", { value: index.toString(), selected: currentPage === index }, (index + 1).toString())))))),
37
+ } }, pages.map((index) => (createComponent("option", { value: index.toString(), selected: currentPage === index }, (index + 1).toString())))))),
35
38
  createComponent("div", null,
36
39
  "Show",
37
40
  createComponent("select", { style: { margin: '0 1em' }, onchange: (ev) => {
@@ -1 +1 @@
1
- {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/components/data-grid/footer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/components/data-grid/footer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,46 +1,58 @@
1
1
  {
2
2
  "name": "@furystack/shades-common-components",
3
- "version": "10.0.32",
4
- "description": "",
3
+ "version": "10.0.35",
4
+ "description": "Common UI components for FuryStack Shades",
5
5
  "type": "module",
6
6
  "scripts": {
7
- "build:es6": "tsc --outDir ./esm"
7
+ "build": "tsc --outDir ./esm"
8
8
  },
9
9
  "exports": {
10
10
  ".": {
11
+ "types": "./esm/index.d.ts",
11
12
  "import": "./esm/index.js"
12
13
  }
13
14
  },
14
15
  "files": [
15
16
  "esm",
16
- "types",
17
17
  "src"
18
18
  ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/furystack/furystack.git"
22
+ },
19
23
  "keywords": [
20
24
  "FuryStack",
21
25
  "Shades",
26
+ "UI components",
22
27
  "Input",
23
28
  "Button",
24
- "Data Grid",
29
+ "DataGrid",
25
30
  "AppBar",
26
31
  "Autocomplete"
27
32
  ],
28
33
  "publishConfig": {
29
34
  "access": "public"
30
35
  },
31
- "author": "gallay.lajos@gmail.com",
36
+ "author": "Gallay Lajos <gallay.lajos@gmail.com>",
32
37
  "license": "GPL-2.0",
38
+ "bugs": {
39
+ "url": "https://github.com/furystack/furystack/issues"
40
+ },
41
+ "homepage": "https://github.com/furystack/furystack",
33
42
  "devDependencies": {
34
43
  "typescript": "^5.9.3",
35
- "vitest": "^4.0.16"
44
+ "vitest": "^4.0.17"
36
45
  },
37
46
  "dependencies": {
38
- "@furystack/core": "^15.0.31",
39
- "@furystack/inject": "^12.0.25",
40
- "@furystack/shades": "^11.0.32",
41
- "@furystack/utils": "^8.1.7",
47
+ "@furystack/core": "^15.0.34",
48
+ "@furystack/inject": "^12.0.28",
49
+ "@furystack/shades": "^11.0.35",
50
+ "@furystack/utils": "^8.1.9",
42
51
  "path-to-regexp": "^8.3.0",
43
52
  "semaphore-async-await": "^1.5.1"
44
53
  },
45
- "gitHead": "76e1d17a71b981984935c9a7a5791cf61ebf5213"
54
+ "engines": {
55
+ "node": ">=22.0.0"
56
+ },
57
+ "sideEffects": false
46
58
  }
@@ -22,7 +22,7 @@ export interface DataGridBodyProps<T, Column extends string> {
22
22
  export const DataGridBody: <T, Column extends string>(
23
23
  props: DataGridBodyProps<T, Column>,
24
24
  children: ChildrenList,
25
- ) => JSX.Element<any> = Shade<DataGridBodyProps<any, string>>({
25
+ ) => JSX.Element<any> = Shade({
26
26
  shadowDomName: 'shade-data-grid-body',
27
27
  elementBase: HTMLTableSectionElement,
28
28
  elementBaseName: 'tbody',
@@ -5,7 +5,7 @@ import type { DataRowCells } from './data-grid.js'
5
5
 
6
6
  export interface DataGridRowProps<T, Column extends string> {
7
7
  entry: T
8
- columns: Array<keyof T>
8
+ columns: Column[]
9
9
  service: CollectionService<T>
10
10
  rowComponents?: DataRowCells<T, Column>
11
11
  onRowClick?: (row: T, event: MouseEvent) => void
@@ -141,7 +141,13 @@ export const DataGridRow: <T, Column extends string>(
141
141
  ondblclick={(ev) => props.onRowDoubleClick?.(entry, ev)}
142
142
  >
143
143
  {rowComponents?.[column]?.(entry, { selection, focus }) ||
144
- rowComponents?.default?.(entry, { selection, focus }) || <span>{entry[column]}</span>}
144
+ rowComponents?.default?.(entry, { selection, focus }) || (
145
+ <span>
146
+ {typeof entry === 'object' && entry && column in entry
147
+ ? (entry as Record<typeof column, unknown>)[column]
148
+ : null}
149
+ </span>
150
+ )}
145
151
  </td>
146
152
  ))}
147
153
  </>
@@ -6,10 +6,10 @@ import { ThemeProviderService } from '../../services/theme-provider-service.js'
6
6
 
7
7
  export const dataGridItemsPerPage = [10, 20, 25, 50, 100, Infinity]
8
8
 
9
- export const DataGridFooter = Shade<{
10
- service: CollectionService<any>
11
- findOptions: ObservableValue<FindOptions<any, any[]>>
12
- }>({
9
+ export const DataGridFooter: <T>(props: {
10
+ service: CollectionService<T>
11
+ findOptions: ObservableValue<FindOptions<T, Array<keyof T>>>
12
+ }) => JSX.Element = Shade({
13
13
  shadowDomName: 'shade-data-grid-footer',
14
14
  render: ({ props, injector, useObservable }) => {
15
15
  const { theme } = injector.getInstance(ThemeProviderService)
@@ -27,6 +27,10 @@ export const DataGridFooter = Shade<{
27
27
  const currentPage = Math.ceil(skip) / (top || 1)
28
28
  const currentEntriesPerPage = top
29
29
 
30
+ const pages = new Array(Math.ceil(currentData.count / (currentOptions.top || Infinity)))
31
+ .fill(0)
32
+ .map((_, index) => index)
33
+
30
34
  return (
31
35
  <div
32
36
  className="pager"
@@ -51,7 +55,7 @@ export const DataGridFooter = Shade<{
51
55
  setCurrentOptions({ ...currentOptions, skip: (currentOptions.top || 0) * value })
52
56
  }}
53
57
  >
54
- {[...new Array(Math.ceil(currentData.count / (currentOptions.top || Infinity)))].map((_val, index) => (
58
+ {pages.map((index) => (
55
59
  <option value={index.toString()} selected={currentPage === index}>
56
60
  {(index + 1).toString()}
57
61
  </option>
package/readme.md DELETED
@@ -1,26 +0,0 @@
1
- ## @furystack/shades-common-components
2
-
3
- Some common and reusable components for FuryStack Shades
4
-
5
- ### Component list
6
-
7
- - Command Palette
8
- - Data Grid
9
- - Suggest
10
- - Suggestion
11
- - Animations
12
- - AppBar
13
- - AutoComplete
14
- - Avatar
15
- - Button
16
- - FAB
17
- - Grid
18
- - Input
19
- - Loader
20
- - Modal
21
- - Paper
22
- - Tabs
23
-
24
- ### Custom Services
25
-
26
- - CollectionService