@simplysm/solid 13.0.82 → 13.0.83
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/README.md +18 -18
- package/docs/disclosure.md +17 -10
- package/docs/display.md +5 -5
- package/docs/feedback.md +26 -6
- package/docs/form-controls.md +10 -10
- package/docs/helpers.md +10 -9
- package/docs/providers.md +17 -16
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -5,26 +5,26 @@
|
|
|
5
5
|
A comprehensive, enterprise-grade UI component library built on SolidJS and Tailwind CSS. Provides a full suite of form controls, data display components, layout primitives, feedback systems, and high-level CRUD abstractions for building business applications.
|
|
6
6
|
|
|
7
7
|
Key features:
|
|
8
|
-
- **Controlled component pattern**
|
|
9
|
-
- **Compound component API**
|
|
10
|
-
- **Built-in validation**
|
|
11
|
-
- **5-level sizing**
|
|
12
|
-
- **Semantic theming**
|
|
13
|
-
- **Light/Dark mode**
|
|
14
|
-
- **i18n**
|
|
15
|
-
- **CRUD abstractions**
|
|
8
|
+
- **Controlled component pattern** -- `value`/`onValueChange` across all form controls
|
|
9
|
+
- **Compound component API** -- `Select.Item`, `DataSheet.Column`, `Tabs.Tab`, etc.
|
|
10
|
+
- **Built-in validation** -- `required`, `validate`, `lazyValidation` on every form control
|
|
11
|
+
- **5-level sizing** -- `"xs" | "sm" | "md" | "lg" | "xl"` on all interactive components
|
|
12
|
+
- **Semantic theming** -- `"base" | "primary" | "info" | "success" | "warning" | "danger"` color system
|
|
13
|
+
- **Light/Dark mode** -- via `ThemeProvider` with system preference detection
|
|
14
|
+
- **i18n** -- built-in internationalization via `I18nProvider`
|
|
15
|
+
- **CRUD abstractions** -- `CrudSheet` and `CrudDetail` for rapid data management UIs
|
|
16
16
|
|
|
17
17
|
## Documentation
|
|
18
18
|
|
|
19
19
|
| Category | Description |
|
|
20
20
|
|----------|-------------|
|
|
21
|
-
| [Form Controls](docs/form-controls.md) | Input components
|
|
22
|
-
| [Layout](docs/layout.md) | Layout primitives
|
|
23
|
-
| [Data](docs/data.md) | Data display
|
|
24
|
-
| [Display](docs/display.md) | Display components
|
|
25
|
-
| [Disclosure](docs/disclosure.md) | Disclosure components
|
|
26
|
-
| [Feedback](docs/feedback.md) | Feedback systems
|
|
27
|
-
| [Providers](docs/providers.md) | Context providers
|
|
28
|
-
| [Hooks](docs/hooks.md) | Hooks and primitives
|
|
29
|
-
| [Helpers](docs/helpers.md) | Utilities
|
|
30
|
-
| [Features](docs/features.md) | High-level components
|
|
21
|
+
| [Form Controls](docs/form-controls.md) | Input components -- Button, TextInput, NumberInput, DatePicker, TimePicker, Textarea, Select, Combobox, Checkbox, Radio, ColorPicker, DateRangePicker, RichTextEditor, Numpad, StatePreset, ThemeToggle |
|
|
22
|
+
| [Layout](docs/layout.md) | Layout primitives -- FormGroup, FormTable, Sidebar, Topbar |
|
|
23
|
+
| [Data](docs/data.md) | Data display -- Table, List, Pagination, DataSheet, Calendar, Kanban |
|
|
24
|
+
| [Display](docs/display.md) | Display components -- Card, Icon, Tag, Link, Alert, Barcode, Echarts, Progress |
|
|
25
|
+
| [Disclosure](docs/disclosure.md) | Disclosure components -- Collapse, Dropdown, Dialog, Tabs |
|
|
26
|
+
| [Feedback](docs/feedback.md) | Feedback systems -- Notification, Busy overlay, Print |
|
|
27
|
+
| [Providers](docs/providers.md) | Context providers -- Config, Theme, I18n, SyncStorage, Logger, ServiceClient, SharedData, System |
|
|
28
|
+
| [Hooks](docs/hooks.md) | Hooks and primitives -- useLocalStorage, useSyncConfig, useLogger, createControllableSignal, createMountTransition, etc. |
|
|
29
|
+
| [Helpers](docs/helpers.md) | Utilities -- mergeStyles, createAppStructure, createSlot, createSlots, ripple directive, style constants |
|
|
30
|
+
| [Features](docs/features.md) | High-level components -- CrudSheet, CrudDetail, SharedDataSelect, DataSelectButton, AddressSearch, PermissionTable |
|
package/docs/disclosure.md
CHANGED
|
@@ -31,8 +31,8 @@ interface DropdownProps {
|
|
|
31
31
|
Dropdown popup anchored to a trigger element. When `position` is provided instead of a trigger, the popup appears at the given absolute coordinates (useful for context menus). `keyboardNav` enables ArrowUp/Down navigation. Default `maxHeight` is 300px.
|
|
32
32
|
|
|
33
33
|
**Sub-components:**
|
|
34
|
-
- `Dropdown.Trigger`
|
|
35
|
-
- `Dropdown.Content`
|
|
34
|
+
- `Dropdown.Trigger` -- the element that opens the dropdown on click
|
|
35
|
+
- `Dropdown.Content` -- the popup content
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -62,14 +62,16 @@ interface DialogProps {
|
|
|
62
62
|
|
|
63
63
|
Modal dialog with overlay. Supports both declarative (template) and programmatic usage.
|
|
64
64
|
|
|
65
|
-
- `mode="float"`
|
|
66
|
-
- `mode="fill"`
|
|
67
|
-
- `beforeClose`
|
|
68
|
-
- `resizable` / `draggable`
|
|
65
|
+
- `mode="float"` -- centered floating dialog (default)
|
|
66
|
+
- `mode="fill"` -- full-screen dialog
|
|
67
|
+
- `beforeClose` -- return `false` to prevent closing
|
|
68
|
+
- `resizable` / `draggable` -- enable resize handles / drag-to-move (draggable defaults to `true`)
|
|
69
|
+
- `withCloseButton` -- show close button (defaults to `true`)
|
|
70
|
+
- `closeOnEscape` -- close on Escape key (defaults to `true`)
|
|
69
71
|
|
|
70
72
|
**Sub-components:**
|
|
71
|
-
- `Dialog.Header`
|
|
72
|
-
- `Dialog.Action`
|
|
73
|
+
- `Dialog.Header` -- dialog title bar
|
|
74
|
+
- `Dialog.Action` -- dialog action buttons area
|
|
73
75
|
|
|
74
76
|
### Programmatic API
|
|
75
77
|
|
|
@@ -81,9 +83,14 @@ interface DialogContextValue {
|
|
|
81
83
|
options?: DialogShowOptions,
|
|
82
84
|
): Promise<ExtractCloseResult<P> | undefined>;
|
|
83
85
|
}
|
|
86
|
+
|
|
87
|
+
interface DialogProviderProps {
|
|
88
|
+
closeOnEscape?: boolean;
|
|
89
|
+
closeOnInteractOutside?: boolean;
|
|
90
|
+
}
|
|
84
91
|
```
|
|
85
92
|
|
|
86
|
-
Use `DialogProvider` and `useDialog()` for programmatic dialog management. The shown component receives a `close(result?)` prop to close the dialog and return a value.
|
|
93
|
+
Use `DialogProvider` and `useDialog()` for programmatic dialog management. The shown component receives a `close(result?)` prop to close the dialog and return a value. `DialogProvider` accepts default options for `closeOnEscape` and `closeOnInteractOutside`.
|
|
87
94
|
|
|
88
95
|
```typescript
|
|
89
96
|
const dialog = useDialog();
|
|
@@ -110,7 +117,7 @@ interface TabsProps {
|
|
|
110
117
|
|
|
111
118
|
Tab navigation. Content rendering is managed externally based on the selected `value`.
|
|
112
119
|
|
|
113
|
-
**Sub-component:** `Tabs.Tab`
|
|
120
|
+
**Sub-component:** `Tabs.Tab` -- `{ value: string; disabled?: boolean; class?: string; children?: JSX.Element }`
|
|
114
121
|
|
|
115
122
|
---
|
|
116
123
|
|
package/docs/display.md
CHANGED
|
@@ -34,7 +34,7 @@ import { IconUser } from "@tabler/icons-solidjs";
|
|
|
34
34
|
|
|
35
35
|
```typescript
|
|
36
36
|
interface TagProps extends JSX.HTMLAttributes<HTMLSpanElement> {
|
|
37
|
-
theme?: "base" | "primary" | "
|
|
37
|
+
theme?: "base" | "primary" | "info" | "success" | "warning" | "danger";
|
|
38
38
|
}
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -46,7 +46,7 @@ Inline badge/tag with semantic theming.
|
|
|
46
46
|
|
|
47
47
|
```typescript
|
|
48
48
|
interface LinkProps extends JSX.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
49
|
-
theme?: "base" | "primary" | "
|
|
49
|
+
theme?: "base" | "primary" | "info" | "success" | "warning" | "danger";
|
|
50
50
|
disabled?: boolean;
|
|
51
51
|
}
|
|
52
52
|
```
|
|
@@ -59,7 +59,7 @@ Styled anchor link with theme and disabled state.
|
|
|
59
59
|
|
|
60
60
|
```typescript
|
|
61
61
|
interface AlertProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
62
|
-
theme?: "base" | "primary" | "
|
|
62
|
+
theme?: "base" | "primary" | "info" | "success" | "warning" | "danger";
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
@@ -98,13 +98,13 @@ Apache ECharts wrapper. Requires `echarts` as a peer dependency. Set `busy` to s
|
|
|
98
98
|
```typescript
|
|
99
99
|
interface ProgressProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
100
100
|
value: number;
|
|
101
|
-
theme?: "base" | "primary" | "
|
|
101
|
+
theme?: "base" | "primary" | "info" | "success" | "warning" | "danger";
|
|
102
102
|
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
103
103
|
inset?: boolean;
|
|
104
104
|
}
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
Progress bar. `value` is in the range 0
|
|
107
|
+
Progress bar. `value` is in the range 0--100 (0 = 0%, 100 = 100%). Pass `children` to display custom content instead of the default percentage text.
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
package/docs/feedback.md
CHANGED
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
```typescript
|
|
8
8
|
type NotificationTheme = "info" | "success" | "warning" | "danger";
|
|
9
9
|
|
|
10
|
+
interface NotificationAction {
|
|
11
|
+
label: string;
|
|
12
|
+
onClick: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface NotificationOptions {
|
|
16
|
+
action?: NotificationAction;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface NotificationUpdateOptions {
|
|
20
|
+
renotify?: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
10
23
|
interface NotificationContextValue {
|
|
11
24
|
items: Accessor<NotificationItem[]>;
|
|
12
25
|
unreadCount: Accessor<number>;
|
|
@@ -27,7 +40,9 @@ interface NotificationContextValue {
|
|
|
27
40
|
}
|
|
28
41
|
```
|
|
29
42
|
|
|
30
|
-
Centralized notification management. Each `info`/`success`/`warning`/`danger` call creates a notification and returns its `id`. Use `error(err)` to display an error object as a danger notification.
|
|
43
|
+
Centralized notification management. Each `info`/`success`/`warning`/`danger` call creates a notification and returns its `id`. Use `error(err)` to display an error object as a danger notification. Maintains up to 50 notifications; older items are removed when exceeded.
|
|
44
|
+
|
|
45
|
+
Notifications can include an `action` button via the `options` parameter.
|
|
31
46
|
|
|
32
47
|
### NotificationBell
|
|
33
48
|
|
|
@@ -66,9 +81,9 @@ interface BusyProviderProps {
|
|
|
66
81
|
|
|
67
82
|
Full-screen loading overlay with nestable `show`/`hide` calls (managed with an internal counter). Each `show` must have a matching `hide`.
|
|
68
83
|
|
|
69
|
-
- `variant="spinner"`
|
|
70
|
-
- `variant="bar"`
|
|
71
|
-
- `setProgress(percent)`
|
|
84
|
+
- `variant="spinner"` -- centered spinner (default)
|
|
85
|
+
- `variant="bar"` -- top progress bar animation
|
|
86
|
+
- `setProgress(percent)` -- display a determinate progress bar (0--100, `undefined` for indeterminate)
|
|
72
87
|
|
|
73
88
|
### BusyContainer
|
|
74
89
|
|
|
@@ -84,8 +99,8 @@ interface BusyContainerProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "c
|
|
|
84
99
|
```
|
|
85
100
|
|
|
86
101
|
Local loading overlay for a specific container. Two modes:
|
|
87
|
-
- `busy`
|
|
88
|
-
- `ready={false}`
|
|
102
|
+
- `busy` -- shows overlay while preserving children
|
|
103
|
+
- `ready={false}` -- hides children entirely until data is loaded
|
|
89
104
|
|
|
90
105
|
---
|
|
91
106
|
|
|
@@ -123,6 +138,11 @@ const notification = useNotification();
|
|
|
123
138
|
notification.success("Saved", "Record updated successfully");
|
|
124
139
|
notification.error(new Error("Connection failed"));
|
|
125
140
|
|
|
141
|
+
// Notification with action button
|
|
142
|
+
notification.info("Update available", "A new version is ready", {
|
|
143
|
+
action: { label: "Refresh", onClick: () => location.reload() },
|
|
144
|
+
});
|
|
145
|
+
|
|
126
146
|
// Global loading
|
|
127
147
|
const busy = useBusy();
|
|
128
148
|
busy.show("Loading data...");
|
package/docs/form-controls.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
6
|
interface ButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
7
|
-
theme?: "base" | "primary" | "
|
|
7
|
+
theme?: "base" | "primary" | "info" | "success" | "warning" | "danger";
|
|
8
8
|
variant?: "solid" | "outline" | "ghost";
|
|
9
9
|
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
10
10
|
inset?: boolean;
|
|
@@ -44,7 +44,7 @@ interface TextInputProps {
|
|
|
44
44
|
|
|
45
45
|
Single-line text input with format masking and validation. Use `format` for input masks (e.g. `"XXX-XXXX-XXXX"`).
|
|
46
46
|
|
|
47
|
-
**Sub-component:** `TextInput.Prefix`
|
|
47
|
+
**Sub-component:** `TextInput.Prefix` -- renders content before the input.
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
@@ -75,7 +75,7 @@ interface NumberInputProps {
|
|
|
75
75
|
|
|
76
76
|
Numeric input with locale-aware formatting. `useGrouping` enables thousands separators (default: `true`).
|
|
77
77
|
|
|
78
|
-
**Sub-component:** `NumberInput.Prefix`
|
|
78
|
+
**Sub-component:** `NumberInput.Prefix` -- renders content before the input.
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
@@ -231,10 +231,10 @@ Dropdown select with single or multiple selection modes. Supports two usage patt
|
|
|
231
231
|
Providing `itemSearchText` enables a built-in search input. `itemChildren` enables tree-structured items.
|
|
232
232
|
|
|
233
233
|
**Sub-components:**
|
|
234
|
-
- `Select.Item`
|
|
235
|
-
- `Select.Header`
|
|
236
|
-
- `Select.Action`
|
|
237
|
-
- `Select.ItemTemplate`
|
|
234
|
+
- `Select.Item` -- selectable option (`{ value: TValue; disabled?: boolean }`)
|
|
235
|
+
- `Select.Header` -- non-selectable header row
|
|
236
|
+
- `Select.Action` -- non-selectable action row
|
|
237
|
+
- `Select.ItemTemplate` -- custom item renderer
|
|
238
238
|
|
|
239
239
|
---
|
|
240
240
|
|
|
@@ -335,7 +335,7 @@ interface CheckboxGroupProps<TValue> {
|
|
|
335
335
|
|
|
336
336
|
Group of checkboxes with multi-value binding.
|
|
337
337
|
|
|
338
|
-
**Sub-component:** `CheckboxGroup.Item`
|
|
338
|
+
**Sub-component:** `CheckboxGroup.Item` -- `{ value: TValue; disabled?: boolean; children?: JSX.Element }`
|
|
339
339
|
|
|
340
340
|
---
|
|
341
341
|
|
|
@@ -360,7 +360,7 @@ interface RadioGroupProps<TValue> {
|
|
|
360
360
|
|
|
361
361
|
Group of radio buttons with single-value binding.
|
|
362
362
|
|
|
363
|
-
**Sub-component:** `RadioGroup.Item`
|
|
363
|
+
**Sub-component:** `RadioGroup.Item` -- `{ value: TValue; disabled?: boolean; children?: JSX.Element }`
|
|
364
364
|
|
|
365
365
|
---
|
|
366
366
|
|
|
@@ -474,7 +474,7 @@ interface ThemeToggleProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonEleme
|
|
|
474
474
|
}
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
-
Button that cycles through light,
|
|
477
|
+
Button that cycles through light, system, and dark theme modes.
|
|
478
478
|
|
|
479
479
|
---
|
|
480
480
|
|
package/docs/helpers.md
CHANGED
|
@@ -127,24 +127,25 @@ void ripple;
|
|
|
127
127
|
|
|
128
128
|
Background, border, and text color utilities mapped to the theme system:
|
|
129
129
|
|
|
130
|
-
- `bg.
|
|
131
|
-
- `border.default`, `border.subtle`
|
|
132
|
-
- `text.default`, `text.muted`, `text.
|
|
130
|
+
- `bg.surface`, `bg.muted`, `bg.subtle` -- background colors
|
|
131
|
+
- `border.default`, `border.subtle` -- border colors
|
|
132
|
+
- `text.default`, `text.muted`, `text.placeholder` -- text colors
|
|
133
133
|
|
|
134
134
|
### control.styles
|
|
135
135
|
|
|
136
|
-
Component sizing utilities:
|
|
136
|
+
Component sizing and state utilities:
|
|
137
137
|
|
|
138
|
-
- `pad.xs`, `pad.sm`, `pad.md`, `pad.lg`, `pad.xl`
|
|
139
|
-
- `gap.xs` ... `gap.xl`
|
|
140
|
-
- `
|
|
138
|
+
- `pad.xs`, `pad.sm`, `pad.md`, `pad.lg`, `pad.xl` -- padding by size
|
|
139
|
+
- `gap.xs` ... `gap.xl` -- gap by size
|
|
140
|
+
- `state.disabled` -- disabled state styling
|
|
141
|
+
- `ComponentSize` -- `"xs" | "sm" | "md" | "lg" | "xl"`
|
|
141
142
|
|
|
142
143
|
### theme.styles
|
|
143
144
|
|
|
144
145
|
Semantic theme tokens:
|
|
145
146
|
|
|
146
|
-
- `SemanticTheme`
|
|
147
|
-
- `themeTokens`
|
|
147
|
+
- `SemanticTheme` -- `"base" | "primary" | "info" | "success" | "warning" | "danger"`
|
|
148
|
+
- `themeTokens` -- maps each theme to `{ solid, solidHover, light, text, hoverBg, border }` Tailwind class sets
|
|
148
149
|
|
|
149
150
|
---
|
|
150
151
|
|
package/docs/providers.md
CHANGED
|
@@ -7,7 +7,7 @@ export const ConfigProvider: ParentComponent<{ clientName: string }>;
|
|
|
7
7
|
export function useConfig(): { clientName: string };
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
Application-level configuration. `clientName` identifies the client app.
|
|
10
|
+
Application-level configuration. `clientName` identifies the client app and is used as a storage key prefix.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -28,7 +28,7 @@ export const ThemeProvider: ParentComponent;
|
|
|
28
28
|
export function useTheme(): ThemeContextValue;
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Light/Dark mode management with system preference detection. `cycleMode()` rotates through light
|
|
31
|
+
Light/Dark mode management with system preference detection. `cycleMode()` rotates through light -> system -> dark -> light. The selected mode is persisted via `SyncStorageProvider`.
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -51,7 +51,7 @@ export const I18nProvider: ParentComponent;
|
|
|
51
51
|
export function useI18n(): I18nContextValue;
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Internationalization provider. Supports nested dictionary keys and parameter interpolation via `t("key", { name: "John" })`.
|
|
54
|
+
Internationalization provider. Built-in dictionaries for `"en"` and `"ko"`. Supports nested dictionary keys and parameter interpolation via `t("key", { name: "John" })`. The locale is auto-detected from `navigator.language` and persisted via `SyncStorageProvider`. Use `configure()` to add or override dictionaries.
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
@@ -92,7 +92,7 @@ interface LoggerContextValue {
|
|
|
92
92
|
export const LoggerProvider: ParentComponent;
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Configurable logging provider. Middleware pattern via `configure()`.
|
|
95
|
+
Configurable logging provider. Defaults to a `consola`-based adapter. Middleware pattern via `configure()`.
|
|
96
96
|
|
|
97
97
|
---
|
|
98
98
|
|
|
@@ -110,7 +110,7 @@ export const ServiceClientProvider: ParentComponent;
|
|
|
110
110
|
export function useServiceClient(): ServiceClientContextValue;
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
Service communication provider. Manages WebSocket connections to backend services. Multiple named connections supported via `key
|
|
113
|
+
Service communication provider. Manages WebSocket connections to backend services. Multiple named connections supported via `key` (defaults to `"default"`). Auto-infers host, port, and SSL from `window.location` when not specified.
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
@@ -142,7 +142,12 @@ export const SharedDataProvider: (props: { children: JSX.Element }) => JSX.Eleme
|
|
|
142
142
|
export function useSharedData<TSharedData>(): SharedDataValue<TSharedData>;
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
Centralized data management for shared lookup data (e.g. code tables). Data is fetched once and shared across all consumers. `emit()` triggers a re-fetch.
|
|
145
|
+
Centralized data management for shared lookup data (e.g. code tables). Data is fetched once and shared across all consumers. `emit()` triggers a re-fetch. Must be used inside `ServiceClientProvider`.
|
|
146
|
+
|
|
147
|
+
The returned `SharedDataValue` also provides:
|
|
148
|
+
- `wait()` -- wait until all initial fetches complete
|
|
149
|
+
- `busy` -- whether a fetch is in progress
|
|
150
|
+
- `configure()` -- set definitions to start data subscriptions (can only be called once)
|
|
146
151
|
|
|
147
152
|
---
|
|
148
153
|
|
|
@@ -155,7 +160,7 @@ export const SystemProvider: ParentComponent<{
|
|
|
155
160
|
}>;
|
|
156
161
|
```
|
|
157
162
|
|
|
158
|
-
Convenience provider that composes `ConfigProvider`, `SyncStorageProvider`, `LoggerProvider`, `ThemeProvider`, `
|
|
163
|
+
Convenience provider that composes `ConfigProvider`, `I18nProvider`, `SyncStorageProvider`, `LoggerProvider`, `NotificationProvider`, `ErrorLoggerProvider`, `PwaUpdateProvider`, `ClipboardProvider`, `ThemeProvider`, `ServiceClientProvider`, `SharedDataProvider`, and `BusyProvider` into a single wrapper.
|
|
159
164
|
|
|
160
165
|
---
|
|
161
166
|
|
|
@@ -166,14 +171,10 @@ import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
|
|
|
166
171
|
|
|
167
172
|
// Typical app provider tree
|
|
168
173
|
<SystemProvider clientName="my-app">
|
|
169
|
-
<
|
|
170
|
-
<
|
|
171
|
-
<
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
</PrintProvider>
|
|
175
|
-
</DialogProvider>
|
|
176
|
-
</SharedDataProvider>
|
|
177
|
-
</ServiceClientProvider>
|
|
174
|
+
<DialogProvider>
|
|
175
|
+
<PrintProvider>
|
|
176
|
+
<App />
|
|
177
|
+
</PrintProvider>
|
|
178
|
+
</DialogProvider>
|
|
178
179
|
</SystemProvider>
|
|
179
180
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/solid",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.83",
|
|
4
4
|
"description": "Simplysm package - SolidJS library",
|
|
5
5
|
"author": "simplysm",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"tabbable": "^6.4.0",
|
|
53
53
|
"tailwind-merge": "^3.5.0",
|
|
54
54
|
"tailwindcss": "^3.4.19",
|
|
55
|
-
"@simplysm/core-browser": "13.0.
|
|
56
|
-
"@simplysm/
|
|
57
|
-
"@simplysm/
|
|
58
|
-
"@simplysm/service-common": "13.0.
|
|
55
|
+
"@simplysm/core-browser": "13.0.83",
|
|
56
|
+
"@simplysm/service-client": "13.0.83",
|
|
57
|
+
"@simplysm/core-common": "13.0.83",
|
|
58
|
+
"@simplysm/service-common": "13.0.83"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@solidjs/testing-library": "^0.8.10"
|