ice-web-components 1.2.0 → 1.3.0
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 +24 -4
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/components/ICELabel.d.ts +8 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model/ICEBiosModel.d.ts +124 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,11 +27,11 @@ rings and shadows) is drawn by the engine.
|
|
|
27
27
|
- **Bootstrap 5 token theme** (plus a dark theme) — swap with one call.
|
|
28
28
|
- **No name collisions with the engine** — the package’s runtime exports are
|
|
29
29
|
disjoint from `ice-render`’s (there is a regression test for it).
|
|
30
|
-
- **Actually tested** —
|
|
30
|
+
- **Actually tested** — 769 unit tests (103 suites: form validation, overlay
|
|
31
31
|
positioning, keyboard navigation, sort/hover/focus edge cases, the Minesweeper,
|
|
32
32
|
Tetris, Snake, 2048 and CHIP-8 rule/machine models, the pixel canvas and the undo
|
|
33
|
-
stack) plus six browser QA suites (`qa:admin`, `qa:gallery`,
|
|
34
|
-
`qa:arcade`, `qa:pixel` —
|
|
33
|
+
stack, and the console BIOS) plus six browser QA suites (`qa:admin`, `qa:gallery`,
|
|
34
|
+
`qa:workbench`, `qa:xp`, `qa:arcade`, `qa:pixel` — 246 assertions) that drive the demo pages with
|
|
35
35
|
real mouse and keyboard events and fail on any console error.
|
|
36
36
|
|
|
37
37
|
## Quick start
|
|
@@ -220,6 +220,26 @@ the buttons and the sound switch are all ICE components, and there is not a sing
|
|
|
220
220
|
bitmap asset in the picture. Four cartridges are plugged in, and the cartridge row at
|
|
221
221
|
the top switches between them (a fifth slot, Chinese chess, is disabled for now).
|
|
222
222
|
|
|
223
|
+
Before any cartridge runs, the console boots through its own **BIOS**: a power-on
|
|
224
|
+
self-test (CPU / RAM / VRAM / SOUND / CART, each line going grey → amber → green with a
|
|
225
|
+
beep) followed by a classic boot menu, exactly like the real thing.
|
|
226
|
+
|
|
227
|
+
| POST (power-on self-test) | BIOS boot menu |
|
|
228
|
+
|---|---|
|
|
229
|
+
|  |  |
|
|
230
|
+
|
|
231
|
+
`ICEBiosModel` is the state machine behind it (pure logic, 17 unit tests): the self-test
|
|
232
|
+
is a **timed sequence** the page advances with `tick(dt)` — each step owns its duration and
|
|
233
|
+
reports `pending` / `running` / `ok`; the menu is a cursor + confirm console UI with a
|
|
234
|
+
**wrapping** cursor; `confirm()` returns an *action* (`boot` / `settings` / `menu`) instead
|
|
235
|
+
of executing it, so the whole flow is testable in node. Settings (quick boot + default
|
|
236
|
+
cartridge) persist through an injected storage that degrades gracefully on corrupt JSON
|
|
237
|
+
or a full quota.
|
|
238
|
+
|
|
239
|
+
F2 (or the BIOS button) returns to the menu at any time — on a game page that *is* the
|
|
240
|
+
reset button. Any key during POST skips the rest of the self-test, and with quick boot on
|
|
241
|
+
(the factory default) the console goes straight back to the last cartridge after POST.
|
|
242
|
+
|
|
223
243
|
| | |
|
|
224
244
|
|---|---|
|
|
225
245
|
|  |  |
|
|
@@ -365,7 +385,7 @@ The three decisions worth stealing:
|
|
|
365
385
|
| Feedback & status | `ICEAlert` `ICEModal` `ICEDrawer` `ICEMessage` `ICENotification` `ICETooltip` `ICEPopover` `ICEPopconfirm` `ICETour` `ICEFloatButton` `ICEEmpty` `ICESkeleton` `ICESpin` `ICEResult` `ICESteps` `ICEOverlayManager` |
|
|
366
386
|
| Navigation | `ICEMenu` `ICEBreadcrumb` `ICEAnchor` `ICEBackTop` `ICEDropdown` `ICEPagination` `ICETabs` |
|
|
367
387
|
| Layout & core | `ICEWidget` `ICEContainer` `ICEHoverManager` `ICEFocusManager` `ICEMessageManager` `ICEManager` (`ICEPainter` / `ICELayoutManager` are types) |
|
|
368
|
-
| Models | `ICEButtonModel` `ICEToggleModel` `ICEBoundedRangeModel` `ICESelectionModel` `ICEFormModel` `ICEHistoryModel` `ICEPixelModel` `ICETetrisModel` `ICESnakeModel` `ICE2048Model` `ICEChip8Model` `ICEMinesweeperModel` `ICEHighScoreModel` |
|
|
388
|
+
| Models | `ICEButtonModel` `ICEToggleModel` `ICEBoundedRangeModel` `ICESelectionModel` `ICEFormModel` `ICEBiosModel` `ICEHistoryModel` `ICEPixelModel` `ICETetrisModel` `ICESnakeModel` `ICE2048Model` `ICEChip8Model` `ICEMinesweeperModel` `ICEHighScoreModel` |
|
|
369
389
|
|
|
370
390
|
Helper functions: `attachTooltip` `attachPopover` `attachPopconfirm` `attachDropdown`
|
|
371
391
|
`openModal` `openDrawer` `getICEOverlayManager` `getICEFocusManager` `getICEMessageManager`
|