@bobfrankston/msger 0.1.54 → 0.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.
- package/README.md +162 -33
- package/clihandler.d.ts.map +1 -1
- package/clihandler.js +8 -2
- package/clihandler.js.map +1 -1
- package/clihandler.ts +9 -2
- package/msger-native/src/main.rs +32 -17
- package/msgernative-linux-x64 +0 -0
- package/msgernative-win32-x64.exe +0 -0
- package/package.json +1 -1
- package/shower.d.ts +1 -0
- package/shower.d.ts.map +1 -1
- package/shower.js.map +1 -1
- package/shower.ts +1 -0
package/README.md
CHANGED
|
@@ -50,20 +50,39 @@ if (result.value) {
|
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
# Simple message
|
|
53
|
-
msger -
|
|
53
|
+
msger -message "Hello, World!"
|
|
54
|
+
msger Hello World # shorthand - words become message
|
|
54
55
|
|
|
55
56
|
# With HTML content
|
|
56
|
-
msger -
|
|
57
|
+
msger -html "<h1>Welcome!</h1><p>This is <strong>HTML</strong></p>"
|
|
58
|
+
|
|
59
|
+
# Colored text with inline styles
|
|
60
|
+
msger -html "<span style='color:red;background-color:yellow'>Alert!</span>"
|
|
57
61
|
|
|
58
62
|
# Load a URL (web page or local file)
|
|
59
63
|
msger -url "https://example.com"
|
|
60
64
|
msger -url "file:///path/to/page.html"
|
|
61
65
|
|
|
62
|
-
# With
|
|
63
|
-
msger -
|
|
66
|
+
# With input field and placeholder
|
|
67
|
+
msger -message "Enter your name:" -input "Your name here" -default "John"
|
|
68
|
+
|
|
69
|
+
# Custom buttons
|
|
70
|
+
msger -message "Save changes?" -buttons Yes No Cancel
|
|
71
|
+
|
|
72
|
+
# With custom size and position
|
|
73
|
+
msger -message "Hello" -size 800,600 -pos 100,100
|
|
74
|
+
|
|
75
|
+
# Always on top with zoom
|
|
76
|
+
msger -message "Important!" -ontop -zoom 150
|
|
77
|
+
|
|
78
|
+
# Detached URL browser (stays open after script exits)
|
|
79
|
+
msger -url "https://example.com" -detach
|
|
80
|
+
|
|
81
|
+
# Multi-monitor (Windows only - show on second screen)
|
|
82
|
+
msger -message "Second screen" -pos 0,100 -screen 1
|
|
64
83
|
|
|
65
|
-
#
|
|
66
|
-
msger -
|
|
84
|
+
# Auto-close timeout
|
|
85
|
+
msger -message "Closing in 5 seconds..." -timeout 5
|
|
67
86
|
|
|
68
87
|
# See all options
|
|
69
88
|
msger --help
|
|
@@ -84,20 +103,23 @@ interface MessageBoxOptions {
|
|
|
84
103
|
html?: string; // HTML content to display
|
|
85
104
|
url?: string; // URL to load (web URL or file:// path)
|
|
86
105
|
size?: { // Window size in pixels
|
|
87
|
-
width: number; // Window width (default: 600)
|
|
88
|
-
height: number; // Window height (default: 400)
|
|
106
|
+
width: number; // Window width (default: 600, or 1024 for URLs)
|
|
107
|
+
height: number; // Window height (default: 400, or 768 for URLs)
|
|
108
|
+
};
|
|
109
|
+
pos?: { // Window position
|
|
110
|
+
x: number; // X coordinate in pixels
|
|
111
|
+
y: number; // Y coordinate in pixels
|
|
112
|
+
screen?: number; // [Windows only] Screen index (0=primary, 1=second, etc.)
|
|
89
113
|
};
|
|
90
114
|
buttons?: string[]; // Button labels (default: ["OK"])
|
|
91
115
|
defaultValue?: string; // Default input value
|
|
116
|
+
inputPlaceholder?: string; // Placeholder text (gray hint) for input field
|
|
92
117
|
allowInput?: boolean; // Show input field (default: false)
|
|
118
|
+
autoSize?: boolean; // Auto-resize window to fit content (default: true when no size specified)
|
|
119
|
+
alwaysOnTop?: boolean; // Keep window on top of other windows (default: false)
|
|
120
|
+
zoomPercent?: number; // Initial zoom level (100=100%, 150=150%, 50=50%)
|
|
93
121
|
timeout?: number; // Auto-close after N seconds
|
|
94
122
|
detach?: boolean; // Launch detached from parent process
|
|
95
|
-
|
|
96
|
-
// Not yet implemented:
|
|
97
|
-
// fullPage?: boolean; // Display HTML as complete page without wrapping
|
|
98
|
-
// pos?: { x: number; y: number; screen?: number }; // Window position
|
|
99
|
-
// zoomPercent?: number; // Initial zoom level (100=100%, 150=150%)
|
|
100
|
-
// devTools?: boolean; // Open DevTools for debugging
|
|
101
123
|
}
|
|
102
124
|
```
|
|
103
125
|
|
|
@@ -137,6 +159,7 @@ const result = await showMessageBox({
|
|
|
137
159
|
title: 'Enter Name',
|
|
138
160
|
message: 'Please enter your name:',
|
|
139
161
|
allowInput: true,
|
|
162
|
+
inputPlaceholder: 'Your name here',
|
|
140
163
|
defaultValue: 'John Doe',
|
|
141
164
|
buttons: ['Cancel', 'OK']
|
|
142
165
|
});
|
|
@@ -201,6 +224,79 @@ if (result.timeout) {
|
|
|
201
224
|
}
|
|
202
225
|
```
|
|
203
226
|
|
|
227
|
+
### HTML Forms
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
const result = await showMessageBox({
|
|
231
|
+
title: 'User Registration',
|
|
232
|
+
html: `
|
|
233
|
+
<form>
|
|
234
|
+
<label>Name: <input name="name" required /></label><br>
|
|
235
|
+
<label>Email: <input name="email" type="email" required /></label><br>
|
|
236
|
+
<label>Age: <input name="age" type="number" /></label>
|
|
237
|
+
</form>
|
|
238
|
+
`,
|
|
239
|
+
buttons: ['Cancel', 'Submit']
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
if (result.button === 'Submit' && result.form) {
|
|
243
|
+
console.log('Name:', result.form.name);
|
|
244
|
+
console.log('Email:', result.form.email);
|
|
245
|
+
console.log('Age:', result.form.age);
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Window Positioning
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
// Position at specific coordinates
|
|
253
|
+
await showMessageBox({
|
|
254
|
+
message: 'Positioned window',
|
|
255
|
+
pos: { x: 100, y: 100 }
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// Position on second monitor (Windows only)
|
|
259
|
+
await showMessageBox({
|
|
260
|
+
message: 'On second screen',
|
|
261
|
+
pos: { x: 0, y: 100, screen: 1 }
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Always On Top & Zoom
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
// Keep window on top with 150% zoom
|
|
269
|
+
await showMessageBox({
|
|
270
|
+
title: 'Important Alert',
|
|
271
|
+
message: 'This window stays on top!',
|
|
272
|
+
alwaysOnTop: true,
|
|
273
|
+
zoomPercent: 150
|
|
274
|
+
});
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Auto-Sizing Window
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
// Window automatically sizes to fit content
|
|
281
|
+
await showMessageBox({
|
|
282
|
+
message: 'Short message',
|
|
283
|
+
autoSize: true // default when size not specified
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Detached URL Browser
|
|
288
|
+
|
|
289
|
+
```typescript
|
|
290
|
+
// Launch URL window that stays open after script exits
|
|
291
|
+
await showMessageBox({
|
|
292
|
+
url: 'https://example.com',
|
|
293
|
+
size: { width: 1200, height: 800 },
|
|
294
|
+
detach: true,
|
|
295
|
+
alwaysOnTop: true
|
|
296
|
+
});
|
|
297
|
+
// Script continues/exits immediately, window stays open
|
|
298
|
+
```
|
|
299
|
+
|
|
204
300
|
## Architecture
|
|
205
301
|
|
|
206
302
|
```
|
|
@@ -276,18 +372,24 @@ All binaries are bundled with the npm package, and the correct one is selected a
|
|
|
276
372
|
## Features
|
|
277
373
|
|
|
278
374
|
- ✅ Cross-platform native webview (Windows, Linux x64, Linux ARM64)
|
|
279
|
-
- ✅ Full HTML/CSS support
|
|
375
|
+
- ✅ Full HTML/CSS support with inline styles
|
|
280
376
|
- ✅ Load external URLs or local files
|
|
281
|
-
- ✅ Customizable buttons
|
|
282
|
-
- ✅ Input field support
|
|
377
|
+
- ✅ Customizable buttons (OK button is green by default)
|
|
378
|
+
- ✅ Input field support with placeholder text
|
|
379
|
+
- ✅ HTML forms with automatic data collection
|
|
283
380
|
- ✅ Auto-close with timeout
|
|
381
|
+
- ✅ Window positioning (x, y coordinates)
|
|
382
|
+
- ✅ Multi-monitor support (Windows only - screen index)
|
|
383
|
+
- ✅ Always on top mode
|
|
384
|
+
- ✅ Zoom control (initial percent + runtime Ctrl+Wheel/+/-)
|
|
385
|
+
- ✅ Auto-sizing windows (fit content when size not specified)
|
|
284
386
|
- ✅ Keyboard shortcuts (Enter, Escape)
|
|
285
387
|
- ✅ Window close detection
|
|
388
|
+
- ✅ Detached process mode (independent window)
|
|
286
389
|
- ✅ TypeScript type definitions
|
|
287
|
-
- ✅ Small binary size (~
|
|
390
|
+
- ✅ Small binary size (~2-5MB per platform)
|
|
288
391
|
- ✅ Fast startup (~50-200ms)
|
|
289
|
-
- ✅
|
|
290
|
-
- ⏳ Coming soon: Window positioning, zoom control, DevTools
|
|
392
|
+
- ✅ Low memory usage (~20-50MB)
|
|
291
393
|
|
|
292
394
|
## Performance Comparison
|
|
293
395
|
|
|
@@ -303,21 +405,48 @@ All binaries are bundled with the npm package, and the correct one is selected a
|
|
|
303
405
|
## CLI Options
|
|
304
406
|
|
|
305
407
|
```
|
|
306
|
-
Usage: msger [options]
|
|
408
|
+
Usage: msger [options] [message words...]
|
|
307
409
|
|
|
308
410
|
Options:
|
|
309
|
-
-
|
|
310
|
-
-
|
|
311
|
-
-html, --html <html>
|
|
312
|
-
-url, --url <url>
|
|
313
|
-
-
|
|
314
|
-
-
|
|
315
|
-
-
|
|
316
|
-
-
|
|
317
|
-
-
|
|
318
|
-
-
|
|
319
|
-
--
|
|
320
|
-
--
|
|
411
|
+
-message, --message <text> Plain text message
|
|
412
|
+
-title, --title <text> Window title
|
|
413
|
+
-html, --html <html> HTML content
|
|
414
|
+
-url, --url <url> URL to load (web or file://)
|
|
415
|
+
-buttons, --buttons <labels> Button labels (e.g., -buttons Yes No Cancel)
|
|
416
|
+
-ok, --ok Add OK button
|
|
417
|
+
-cancel, --cancel Add Cancel button
|
|
418
|
+
-input, --input [placeholder] Include input field with optional placeholder text
|
|
419
|
+
-default, --default <text> Default value for input field
|
|
420
|
+
-size, --size <width,height> Window size (e.g., -size 800,600)
|
|
421
|
+
-pos, --pos <x,y> Window position (e.g., -pos 100,200)
|
|
422
|
+
-screen, --screen <number> [Windows only] Screen index (0=primary, 1=second, etc.)
|
|
423
|
+
-zoom, --zoom <percent> Zoom level as percentage (e.g., -zoom 150 for 150%)
|
|
424
|
+
-timeout, --timeout <seconds> Auto-close after specified seconds
|
|
425
|
+
-ontop, --ontop Keep window always on top
|
|
426
|
+
-detach, --detach Launch window independently (parent returns immediately)
|
|
427
|
+
-v, -version, --version Show version number
|
|
428
|
+
-help, -?, --help Show help message
|
|
429
|
+
|
|
430
|
+
Examples:
|
|
431
|
+
msger Hello World
|
|
432
|
+
msger -message "Save changes?" -buttons Yes No Cancel
|
|
433
|
+
msger -message "Enter your name:" -input "Your name" -default "John Doe"
|
|
434
|
+
msger -html "<h1>Title</h1><p>Formatted <b>content</b></p>"
|
|
435
|
+
msger -html "<span style='color:red;background-color:yellow'>Colored text</span>"
|
|
436
|
+
msger -url "https://example.com"
|
|
437
|
+
msger -url "https://example.com" -detach
|
|
438
|
+
msger -title "Alert" -message "Operation complete"
|
|
439
|
+
msger -message "Positioned" -pos 100,100 -screen 1
|
|
440
|
+
msger -message "Large text" -zoom 150 -ontop
|
|
441
|
+
|
|
442
|
+
Notes:
|
|
443
|
+
- If no options provided, all non-option arguments are concatenated as message
|
|
444
|
+
- Press ESC to dismiss (returns button: "dismissed")
|
|
445
|
+
- Press Enter to click last (default) button
|
|
446
|
+
- OK button is green by default
|
|
447
|
+
- URLs default to 1024x768 window size
|
|
448
|
+
- Windows auto-size to fit content when size not specified
|
|
449
|
+
- Runtime zoom: Ctrl+Wheel, Ctrl+Plus, Ctrl+Minus
|
|
321
450
|
```
|
|
322
451
|
|
|
323
452
|
## License
|
package/clihandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAuEhD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CA6JpH;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
package/clihandler.js
CHANGED
|
@@ -15,7 +15,7 @@ Options:
|
|
|
15
15
|
-buttons <label...> Specify button labels (e.g., -buttons Yes No Cancel)
|
|
16
16
|
-ok Add OK button
|
|
17
17
|
-cancel Add Cancel button
|
|
18
|
-
-input
|
|
18
|
+
-input [placeholder] Include an input field with optional placeholder text
|
|
19
19
|
-default <text> Default value for input field
|
|
20
20
|
-size <width,height> Set window size (e.g., -size 800,600)
|
|
21
21
|
-zoom <percent> Set zoom level as percentage (e.g., -zoom 150 for 150%)
|
|
@@ -30,9 +30,10 @@ Options:
|
|
|
30
30
|
Examples:
|
|
31
31
|
msger Hello World
|
|
32
32
|
msger -message "Save changes?" -buttons Yes No Cancel
|
|
33
|
-
msger -message "Enter your name:" -input -default "John Doe"
|
|
33
|
+
msger -message "Enter your name:" -input "Your name" -default "John Doe"
|
|
34
34
|
msger -html "<h1>Title</h1><p>Formatted content</p>"
|
|
35
35
|
msger -url "https://example.com"
|
|
36
|
+
msger -url "https://example.com" -detach
|
|
36
37
|
msger -title "Alert" -message "Operation complete"
|
|
37
38
|
echo '{"message":"Test","buttons":["OK"]}' | msger
|
|
38
39
|
|
|
@@ -102,6 +103,10 @@ export function parseCliArgs(args) {
|
|
|
102
103
|
}
|
|
103
104
|
else if (arg === '-input' || arg === '--input') {
|
|
104
105
|
cli.input = true;
|
|
106
|
+
// Check if next arg is a placeholder (not another flag)
|
|
107
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
108
|
+
cli.inputPlaceholder = args[++i];
|
|
109
|
+
}
|
|
105
110
|
i++;
|
|
106
111
|
}
|
|
107
112
|
else if (arg === '-default' || arg === '--default') {
|
|
@@ -198,6 +203,7 @@ export function parseCliArgs(args) {
|
|
|
198
203
|
buttons: cli.buttons,
|
|
199
204
|
allowInput: cli.input,
|
|
200
205
|
defaultValue: cli.defaultValue,
|
|
206
|
+
inputPlaceholder: cli.inputPlaceholder,
|
|
201
207
|
size: {
|
|
202
208
|
width: cli.width || defaultWidth,
|
|
203
209
|
height: cli.height || defaultHeight,
|
package/clihandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"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"}
|
package/clihandler.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface CliOptions {
|
|
|
11
11
|
width?: number;
|
|
12
12
|
height?: number;
|
|
13
13
|
defaultValue?: string;
|
|
14
|
+
inputPlaceholder?: string;
|
|
14
15
|
timeout?: number;
|
|
15
16
|
detach?: boolean;
|
|
16
17
|
alwaysOnTop?: boolean;
|
|
@@ -38,7 +39,7 @@ Options:
|
|
|
38
39
|
-buttons <label...> Specify button labels (e.g., -buttons Yes No Cancel)
|
|
39
40
|
-ok Add OK button
|
|
40
41
|
-cancel Add Cancel button
|
|
41
|
-
-input
|
|
42
|
+
-input [placeholder] Include an input field with optional placeholder text
|
|
42
43
|
-default <text> Default value for input field
|
|
43
44
|
-size <width,height> Set window size (e.g., -size 800,600)
|
|
44
45
|
-zoom <percent> Set zoom level as percentage (e.g., -zoom 150 for 150%)
|
|
@@ -53,9 +54,10 @@ Options:
|
|
|
53
54
|
Examples:
|
|
54
55
|
msger Hello World
|
|
55
56
|
msger -message "Save changes?" -buttons Yes No Cancel
|
|
56
|
-
msger -message "Enter your name:" -input -default "John Doe"
|
|
57
|
+
msger -message "Enter your name:" -input "Your name" -default "John Doe"
|
|
57
58
|
msger -html "<h1>Title</h1><p>Formatted content</p>"
|
|
58
59
|
msger -url "https://example.com"
|
|
60
|
+
msger -url "https://example.com" -detach
|
|
59
61
|
msger -title "Alert" -message "Operation complete"
|
|
60
62
|
echo '{"message":"Test","buttons":["OK"]}' | msger
|
|
61
63
|
|
|
@@ -120,6 +122,10 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
120
122
|
i++;
|
|
121
123
|
} else if (arg === '-input' || arg === '--input') {
|
|
122
124
|
cli.input = true;
|
|
125
|
+
// Check if next arg is a placeholder (not another flag)
|
|
126
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
127
|
+
cli.inputPlaceholder = args[++i];
|
|
128
|
+
}
|
|
123
129
|
i++;
|
|
124
130
|
} else if (arg === '-default' || arg === '--default') {
|
|
125
131
|
cli.defaultValue = args[++i];
|
|
@@ -203,6 +209,7 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
203
209
|
buttons: cli.buttons,
|
|
204
210
|
allowInput: cli.input,
|
|
205
211
|
defaultValue: cli.defaultValue,
|
|
212
|
+
inputPlaceholder: cli.inputPlaceholder,
|
|
206
213
|
size: {
|
|
207
214
|
width: cli.width || defaultWidth,
|
|
208
215
|
height: cli.height || defaultHeight,
|
package/msger-native/src/main.rs
CHANGED
|
@@ -39,6 +39,8 @@ struct MessageBoxOptions {
|
|
|
39
39
|
#[serde(default)]
|
|
40
40
|
default_value: Option<String>,
|
|
41
41
|
#[serde(default)]
|
|
42
|
+
input_placeholder: Option<String>,
|
|
43
|
+
#[serde(default)]
|
|
42
44
|
allow_input: bool,
|
|
43
45
|
#[serde(default)]
|
|
44
46
|
timeout: Option<u64>,
|
|
@@ -96,8 +98,15 @@ fn generate_html(options: &MessageBoxOptions) -> String {
|
|
|
96
98
|
.buttons
|
|
97
99
|
.iter()
|
|
98
100
|
.map(|btn| {
|
|
101
|
+
// Add a class for OK buttons to make them green
|
|
102
|
+
let class = if btn.eq_ignore_ascii_case("OK") {
|
|
103
|
+
r#" class="ok-button""#
|
|
104
|
+
} else {
|
|
105
|
+
""
|
|
106
|
+
};
|
|
99
107
|
format!(
|
|
100
|
-
r#"<button onclick="sendResult('{}')">{}</button>"#,
|
|
108
|
+
r#"<button{} onclick="sendResult('{}')">{}</button>"#,
|
|
109
|
+
class,
|
|
101
110
|
escape_html(btn),
|
|
102
111
|
escape_html(btn)
|
|
103
112
|
)
|
|
@@ -106,9 +115,11 @@ fn generate_html(options: &MessageBoxOptions) -> String {
|
|
|
106
115
|
.join("\n ");
|
|
107
116
|
|
|
108
117
|
let input_html = if options.allow_input {
|
|
118
|
+
let placeholder = options.input_placeholder.as_deref().unwrap_or("");
|
|
109
119
|
format!(
|
|
110
|
-
r#"<input type="text" id="inputField" value="{}" />"#,
|
|
111
|
-
escape_html(options.default_value.as_deref().unwrap_or(""))
|
|
120
|
+
r#"<input type="text" id="inputField" value="{}" placeholder="{}" />"#,
|
|
121
|
+
escape_html(options.default_value.as_deref().unwrap_or("")),
|
|
122
|
+
escape_html(placeholder)
|
|
112
123
|
)
|
|
113
124
|
} else {
|
|
114
125
|
String::new()
|
|
@@ -130,18 +141,28 @@ fn generate_html(options: &MessageBoxOptions) -> String {
|
|
|
130
141
|
box-sizing: border-box;
|
|
131
142
|
}}
|
|
132
143
|
#content {{
|
|
133
|
-
flex: 1;
|
|
144
|
+
flex: 0 1 auto;
|
|
134
145
|
overflow: auto;
|
|
135
|
-
margin-bottom:
|
|
146
|
+
margin-bottom: 10px;
|
|
136
147
|
}}
|
|
137
148
|
#inputField {{
|
|
138
149
|
width: 100%;
|
|
139
|
-
padding: 8px;
|
|
140
|
-
margin-bottom:
|
|
141
|
-
border:
|
|
150
|
+
padding: 8px 12px;
|
|
151
|
+
margin-bottom: 10px;
|
|
152
|
+
border: 2px solid #0066cc;
|
|
142
153
|
border-radius: 4px;
|
|
143
154
|
font-size: 14px;
|
|
144
155
|
box-sizing: border-box;
|
|
156
|
+
outline: none;
|
|
157
|
+
}}
|
|
158
|
+
#inputField:focus {{
|
|
159
|
+
border-color: #0052a3;
|
|
160
|
+
box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
|
|
161
|
+
}}
|
|
162
|
+
#inputField::placeholder {{
|
|
163
|
+
color: #999;
|
|
164
|
+
}}
|
|
165
|
+
box-sizing: border-box;
|
|
145
166
|
}}
|
|
146
167
|
#buttons {{
|
|
147
168
|
display: flex;
|
|
@@ -161,17 +182,11 @@ fn generate_html(options: &MessageBoxOptions) -> String {
|
|
|
161
182
|
button:hover {{
|
|
162
183
|
background-color: #0052a3;
|
|
163
184
|
}}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}}
|
|
167
|
-
button:first-child:hover {{
|
|
168
|
-
background-color: #5a6268;
|
|
169
|
-
}}
|
|
170
|
-
/* Make the last button (default/OK) green */
|
|
171
|
-
button:last-child {{
|
|
185
|
+
/* Make OK buttons green */
|
|
186
|
+
button.ok-button {{
|
|
172
187
|
background-color: #28a745;
|
|
173
188
|
}}
|
|
174
|
-
button
|
|
189
|
+
button.ok-button:hover {{
|
|
175
190
|
background-color: #218838;
|
|
176
191
|
}}
|
|
177
192
|
</style>
|
package/msgernative-linux-x64
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/shower.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface MessageBoxOptions {
|
|
|
17
17
|
alwaysOnTop?: boolean; /** Keep window on top of other windows (default: false) */
|
|
18
18
|
buttons?: string[]; /** Array of button labels to display (default: ['OK']) */
|
|
19
19
|
defaultValue?: string; /** Default value for input field when allowInput is true */
|
|
20
|
+
inputPlaceholder?: string; /** Placeholder text (gray hint) shown in input field */
|
|
20
21
|
allowInput?: boolean; /** Enable an input field in the message box (default: false) */
|
|
21
22
|
timeout?: number; /** Auto-close the message box after specified seconds */
|
|
22
23
|
detach?: boolean; /** Launch the message box detached from parent process */
|
package/shower.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;CACvF;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkH1F"}
|
|
1
|
+
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,wDAAwD;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;CACvF;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkH1F"}
|
package/shower.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"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"}
|
package/shower.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface MessageBoxOptions {
|
|
|
24
24
|
alwaysOnTop?: boolean; /** Keep window on top of other windows (default: false) */
|
|
25
25
|
buttons?: string[]; /** Array of button labels to display (default: ['OK']) */
|
|
26
26
|
defaultValue?: string; /** Default value for input field when allowInput is true */
|
|
27
|
+
inputPlaceholder?: string; /** Placeholder text (gray hint) shown in input field */
|
|
27
28
|
allowInput?: boolean; /** Enable an input field in the message box (default: false) */
|
|
28
29
|
// devTools?: boolean; /** Open DevTools for debugging (default: false) */
|
|
29
30
|
timeout?: number; /** Auto-close the message box after specified seconds */
|