@simplysm/solid 13.0.84 → 13.0.86
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 +143 -28
- package/dist/components/data/list/ListItem.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.js +11 -4
- package/dist/components/data/list/ListItem.js.map +2 -2
- package/dist/components/data/list/ListItem.styles.d.ts +2 -0
- package/dist/components/data/list/ListItem.styles.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.styles.js +11 -1
- package/dist/components/data/list/ListItem.styles.js.map +1 -1
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +6 -9
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/hooks/createDataSheetExpansion.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/createDataSheetExpansion.js +15 -17
- package/dist/components/data/sheet/hooks/createDataSheetExpansion.js.map +1 -1
- package/dist/components/data/sheet/hooks/createDataSheetReorder.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/createDataSheetReorder.js +12 -12
- package/dist/components/data/sheet/hooks/createDataSheetReorder.js.map +1 -1
- package/dist/components/data/sheet/hooks/createDataSheetSelection.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/createDataSheetSelection.js +9 -3
- package/dist/components/data/sheet/hooks/createDataSheetSelection.js.map +1 -1
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +3 -21
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js +1 -11
- package/dist/components/disclosure/Dropdown.js.map +2 -2
- package/dist/components/disclosure/Tabs.d.ts.map +1 -1
- package/dist/components/disclosure/Tabs.js +1 -3
- package/dist/components/disclosure/Tabs.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetail.js +103 -102
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +10 -5
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +30 -26
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/permission-table/PermissionTable.js +5 -1
- package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
- package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContainer.js +1 -6
- package/dist/components/feedback/busy/BusyContainer.js.map +2 -2
- package/dist/components/form-control/DropdownTrigger.styles.js +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.js +2 -4
- package/dist/components/form-control/checkbox/SelectableBase.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +19 -5
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +2 -4
- package/dist/components/form-control/combobox/Combobox.js.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts +2 -2
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +11 -3
- package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
- package/dist/components/form-control/editor/RichTextEditor.d.ts +2 -2
- package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/form-control/editor/RichTextEditor.js +2 -4
- package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.d.ts +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
- package/dist/components/form-control/field/Field.styles.d.ts +6 -7
- package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
- package/dist/components/form-control/field/Field.styles.js.map +1 -1
- package/dist/components/form-control/field/NumberInput.d.ts +2 -2
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +7 -7
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +2 -2
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js.map +1 -1
- package/dist/components/form-control/field/Textarea.d.ts +2 -2
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +1 -3
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js.map +1 -1
- package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
- package/dist/components/form-control/numpad/Numpad.js +4 -17
- package/dist/components/form-control/numpad/Numpad.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +2 -0
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +29 -15
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/state-preset/StatePreset.d.ts +1 -3
- package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
- package/dist/components/form-control/state-preset/StatePreset.js +69 -95
- package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
- package/dist/components/layout/FormGroup.js +1 -1
- package/dist/components/layout/FormGroup.js.map +1 -1
- package/dist/components/layout/FormTable.js +3 -3
- package/dist/components/layout/FormTable.js.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.js +3 -6
- package/dist/components/layout/sidebar/Sidebar.js.map +2 -2
- package/dist/components/layout/topbar/Topbar.js +1 -3
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/hooks/createControllableStore.d.ts.map +1 -1
- package/dist/hooks/createControllableStore.js +8 -5
- package/dist/hooks/createControllableStore.js.map +1 -1
- package/dist/hooks/useLocalStorage.d.ts.map +1 -1
- package/dist/hooks/useLocalStorage.js +3 -2
- package/dist/hooks/useLocalStorage.js.map +1 -1
- package/dist/hooks/useSyncConfig.d.ts.map +1 -1
- package/dist/hooks/useSyncConfig.js +5 -4
- package/dist/hooks/useSyncConfig.js.map +1 -1
- package/dist/providers/i18n/locales/en.d.ts +2 -3
- package/dist/providers/i18n/locales/en.d.ts.map +1 -1
- package/dist/providers/i18n/locales/en.js +3 -4
- package/dist/providers/i18n/locales/en.js.map +1 -1
- package/dist/providers/i18n/locales/ko.d.ts +2 -3
- package/dist/providers/i18n/locales/ko.d.ts.map +1 -1
- package/dist/providers/i18n/locales/ko.js +3 -4
- package/dist/providers/i18n/locales/ko.js.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +0 -1
- package/dist/providers/shared-data/SharedDataProvider.js.map +1 -1
- package/docs/display-feedback.md +279 -0
- package/docs/features.md +357 -213
- package/docs/form-controls.md +261 -403
- package/docs/layout-data.md +386 -0
- package/docs/providers-hooks.md +411 -0
- package/package.json +5 -5
- package/src/components/data/list/ListItem.styles.ts +14 -2
- package/src/components/data/list/ListItem.tsx +13 -4
- package/src/components/data/sheet/DataSheet.tsx +6 -10
- package/src/components/data/sheet/hooks/createDataSheetExpansion.ts +17 -18
- package/src/components/data/sheet/hooks/createDataSheetReorder.ts +12 -13
- package/src/components/data/sheet/hooks/createDataSheetSelection.ts +9 -3
- package/src/components/disclosure/Dialog.tsx +45 -59
- package/src/components/disclosure/Dropdown.tsx +4 -14
- package/src/components/disclosure/Tabs.tsx +12 -17
- package/src/components/features/crud-detail/CrudDetail.tsx +4 -4
- package/src/components/features/crud-sheet/CrudSheet.tsx +12 -5
- package/src/components/features/data-select-button/DataSelectButton.tsx +39 -32
- package/src/components/features/permission-table/PermissionTable.tsx +1 -1
- package/src/components/feedback/busy/BusyContainer.tsx +12 -18
- package/src/components/form-control/DropdownTrigger.styles.ts +1 -1
- package/src/components/form-control/checkbox/SelectableBase.tsx +10 -16
- package/src/components/form-control/combobox/Combobox.tsx +42 -16
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +7 -8
- package/src/components/form-control/editor/RichTextEditor.tsx +14 -16
- package/src/components/form-control/field/DatePicker.tsx +3 -2
- package/src/components/form-control/field/DateTimePicker.tsx +3 -2
- package/src/components/form-control/field/Field.styles.ts +6 -8
- package/src/components/form-control/field/NumberInput.tsx +9 -10
- package/src/components/form-control/field/TextInput.tsx +3 -2
- package/src/components/form-control/field/Textarea.tsx +14 -12
- package/src/components/form-control/field/TimePicker.tsx +3 -2
- package/src/components/form-control/numpad/Numpad.tsx +16 -18
- package/src/components/form-control/select/Select.tsx +41 -13
- package/src/components/form-control/state-preset/StatePreset.tsx +39 -71
- package/src/components/layout/FormGroup.tsx +1 -1
- package/src/components/layout/FormTable.tsx +3 -3
- package/src/components/layout/sidebar/Sidebar.tsx +2 -3
- package/src/components/layout/topbar/Topbar.tsx +2 -2
- package/src/hooks/createControllableStore.ts +8 -4
- package/src/hooks/useLocalStorage.ts +3 -2
- package/src/hooks/useSyncConfig.ts +5 -4
- package/src/providers/i18n/locales/en.ts +2 -3
- package/src/providers/i18n/locales/ko.ts +2 -3
- package/src/providers/shared-data/SharedDataProvider.tsx +0 -1
- package/tests/components/features/crud-detail/CrudDetail.spec.tsx +49 -0
- package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +62 -7
- package/tests/components/form-control/combobox/Combobox.spec.tsx +3 -3
- package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +56 -0
- package/tests/components/form-control/select/SelectItem.spec.tsx +5 -0
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +0 -104
- package/docs/data.md +0 -204
- package/docs/disclosure.md +0 -146
- package/docs/display.md +0 -125
- package/docs/feedback.md +0 -156
- package/docs/helpers.md +0 -173
- package/docs/hooks.md +0 -146
- package/docs/layout.md +0 -94
- package/docs/providers.md +0 -180
package/docs/providers.md
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
# Providers
|
|
2
|
-
|
|
3
|
-
## ConfigProvider
|
|
4
|
-
|
|
5
|
-
```typescript
|
|
6
|
-
export const ConfigProvider: ParentComponent<{ clientName: string }>;
|
|
7
|
-
export function useConfig(): { clientName: string };
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Application-level configuration. `clientName` identifies the client app and is used as a storage key prefix.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## ThemeProvider
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
type ThemeMode = "light" | "dark" | "system";
|
|
18
|
-
type ResolvedTheme = "light" | "dark";
|
|
19
|
-
|
|
20
|
-
interface ThemeContextValue {
|
|
21
|
-
mode(): ThemeMode;
|
|
22
|
-
setMode(mode: ThemeMode): void;
|
|
23
|
-
resolvedTheme(): ResolvedTheme;
|
|
24
|
-
cycleMode(): void;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const ThemeProvider: ParentComponent;
|
|
28
|
-
export function useTheme(): ThemeContextValue;
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Light/Dark mode management with system preference detection. `cycleMode()` rotates through light -> system -> dark -> light. The selected mode is persisted via `SyncStorageProvider`.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## I18nProvider
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
interface I18nContextValue {
|
|
39
|
-
t(key: string, params?: Record<string, string>): string;
|
|
40
|
-
locale: Accessor<string>;
|
|
41
|
-
setLocale(locale: string): void;
|
|
42
|
-
configure(options: I18nConfigureOptions): void;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
interface I18nConfigureOptions {
|
|
46
|
-
locale?: string;
|
|
47
|
-
dict?: Record<string, Record<string, unknown>>;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export const I18nProvider: ParentComponent;
|
|
51
|
-
export function useI18n(): I18nContextValue;
|
|
52
|
-
```
|
|
53
|
-
|
|
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
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## SyncStorageProvider
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
interface StorageAdapter {
|
|
62
|
-
getItem(key: string): string | null | Promise<string | null>;
|
|
63
|
-
setItem(key: string, value: string): void | Promise<unknown>;
|
|
64
|
-
removeItem(key: string): void | Promise<void>;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
interface SyncStorageContextValue {
|
|
68
|
-
adapter: Accessor<StorageAdapter>;
|
|
69
|
-
configure(fn: (origin: StorageAdapter) => StorageAdapter): void;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export const SyncStorageProvider: ParentComponent;
|
|
73
|
-
export function useSyncStorage(): SyncStorageContextValue | undefined;
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Pluggable storage adapter used by components like `StatePreset`, `DataSheet` (column config), and `useSyncConfig`. Defaults to `localStorage`. Override with `configure()` for server-backed storage.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## LoggerProvider
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
interface LogAdapter {
|
|
84
|
-
write(severity: "error" | "warn" | "info" | "log", ...data: any[]): Promise<void> | void;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
interface LoggerContextValue {
|
|
88
|
-
adapter: Accessor<LogAdapter>;
|
|
89
|
-
configure(fn: (origin: LogAdapter) => LogAdapter): void;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export const LoggerProvider: ParentComponent;
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Configurable logging provider. Defaults to a `consola`-based adapter. Middleware pattern via `configure()`.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## ServiceClientProvider
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
interface ServiceClientContextValue {
|
|
103
|
-
connect(key?: string, options?: Partial<ServiceConnectionOptions>): Promise<void>;
|
|
104
|
-
close(key?: string): Promise<void>;
|
|
105
|
-
get(key?: string): ServiceClient;
|
|
106
|
-
isConnected(key?: string): boolean;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export const ServiceClientProvider: ParentComponent;
|
|
110
|
-
export function useServiceClient(): ServiceClientContextValue;
|
|
111
|
-
```
|
|
112
|
-
|
|
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
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## SharedDataProvider
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
interface SharedDataDefinition<TData> {
|
|
121
|
-
serviceKey?: string;
|
|
122
|
-
fetch(changeKeys?: (string | number)[]): Promise<TData[]>;
|
|
123
|
-
getKey(item: TData): string | number;
|
|
124
|
-
orderBy: [(item: TData) => unknown, "asc" | "desc"][];
|
|
125
|
-
filter?: unknown;
|
|
126
|
-
itemSearchText?: (item: TData) => string;
|
|
127
|
-
isItemHidden?: (item: TData) => boolean;
|
|
128
|
-
getParentKey?: (item: TData) => string | number | undefined;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
interface SharedDataAccessor<TData> {
|
|
132
|
-
items: Accessor<TData[]>;
|
|
133
|
-
get(key: string | number | undefined): TData | undefined;
|
|
134
|
-
emit(changeKeys?: (string | number)[]): Promise<void>;
|
|
135
|
-
getKey(item: TData): string | number;
|
|
136
|
-
itemSearchText?: (item: TData) => string;
|
|
137
|
-
isItemHidden?: (item: TData) => boolean;
|
|
138
|
-
getParentKey?: (item: TData) => string | number | undefined;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export const SharedDataProvider: (props: { children: JSX.Element }) => JSX.Element;
|
|
142
|
-
export function useSharedData<TSharedData>(): SharedDataValue<TSharedData>;
|
|
143
|
-
```
|
|
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. 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)
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
## SystemProvider
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
export const SystemProvider: ParentComponent<{
|
|
158
|
-
clientName: string;
|
|
159
|
-
busyVariant?: BusyVariant;
|
|
160
|
-
}>;
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Convenience provider that composes `ConfigProvider`, `I18nProvider`, `SyncStorageProvider`, `LoggerProvider`, `NotificationProvider`, `ErrorLoggerProvider`, `PwaUpdateProvider`, `ClipboardProvider`, `ThemeProvider`, `ServiceClientProvider`, `SharedDataProvider`, and `BusyProvider` into a single wrapper.
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Usage Examples
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
|
|
171
|
-
|
|
172
|
-
// Typical app provider tree
|
|
173
|
-
<SystemProvider clientName="my-app">
|
|
174
|
-
<DialogProvider>
|
|
175
|
-
<PrintProvider>
|
|
176
|
-
<App />
|
|
177
|
-
</PrintProvider>
|
|
178
|
-
</DialogProvider>
|
|
179
|
-
</SystemProvider>
|
|
180
|
-
```
|