@nxgt/material-core 0.15.0-next-20261013091433 → 0.15.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/CHANGELOG.md +5 -7
- package/README.md +11 -280
- package/dist/backgrounds/build.d.ts +8 -0
- package/dist/backgrounds/build.d.ts.map +1 -1
- package/dist/backgrounds/index.d.ts +4 -3
- package/dist/backgrounds/index.d.ts.map +1 -1
- package/dist/backgrounds/index.js +1354 -119
- package/dist/backgrounds/index.js.map +37 -10
- package/dist/backgrounds/layers.d.ts +11 -0
- package/dist/backgrounds/layers.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/blueprint.d.ts +9 -0
- package/dist/backgrounds/presets/geometry/blueprint.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/index.d.ts +4 -0
- package/dist/backgrounds/presets/geometry/index.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/isometric.d.ts +10 -0
- package/dist/backgrounds/presets/geometry/isometric.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/low-poly.d.ts +10 -0
- package/dist/backgrounds/presets/geometry/low-poly.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/marching-squares.d.ts +17 -0
- package/dist/backgrounds/presets/geometry/marching-squares.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/svg.d.ts +7 -0
- package/dist/backgrounds/presets/geometry/svg.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/topography.d.ts +9 -0
- package/dist/backgrounds/presets/geometry/topography.d.ts.map +1 -0
- package/dist/backgrounds/presets/geometry/waves.d.ts +10 -0
- package/dist/backgrounds/presets/geometry/waves.d.ts.map +1 -0
- package/dist/backgrounds/presets/light/aurora.d.ts +10 -0
- package/dist/backgrounds/presets/light/aurora.d.ts.map +1 -0
- package/dist/backgrounds/presets/light/bokeh.d.ts +10 -0
- package/dist/backgrounds/presets/light/bokeh.d.ts.map +1 -0
- package/dist/backgrounds/presets/light/grain.d.ts +12 -0
- package/dist/backgrounds/presets/light/grain.d.ts.map +1 -0
- package/dist/backgrounds/presets/light/index.d.ts +4 -0
- package/dist/backgrounds/presets/light/index.d.ts.map +1 -0
- package/dist/backgrounds/presets/light/spotlight.d.ts +10 -0
- package/dist/backgrounds/presets/light/spotlight.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/blob-path.d.ts +9 -0
- package/dist/backgrounds/presets/motif/blob-path.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/common.d.ts +27 -0
- package/dist/backgrounds/presets/motif/common.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/confetti-grid.d.ts +9 -0
- package/dist/backgrounds/presets/motif/confetti-grid.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/constellation-grid.d.ts +23 -0
- package/dist/backgrounds/presets/motif/constellation-grid.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/constellation.d.ts +10 -0
- package/dist/backgrounds/presets/motif/constellation.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/drift.d.ts +17 -0
- package/dist/backgrounds/presets/motif/drift.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/floating.d.ts +11 -0
- package/dist/backgrounds/presets/motif/floating.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/glyphs.d.ts +7 -0
- package/dist/backgrounds/presets/motif/glyphs.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/halftone.d.ts +10 -0
- package/dist/backgrounds/presets/motif/halftone.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/index.d.ts +4 -0
- package/dist/backgrounds/presets/motif/index.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/scatter-icons.d.ts +11 -0
- package/dist/backgrounds/presets/motif/scatter-icons.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/shapes.d.ts +10 -0
- package/dist/backgrounds/presets/motif/shapes.d.ts.map +1 -0
- package/dist/backgrounds/presets/motif/truchet.d.ts +10 -0
- package/dist/backgrounds/presets/motif/truchet.d.ts.map +1 -0
- package/dist/backgrounds/presets.d.ts +13 -8
- package/dist/backgrounds/presets.d.ts.map +1 -1
- package/dist/backgrounds/scene.d.ts.map +1 -1
- package/dist/backgrounds/types.d.ts +11 -2
- package/dist/backgrounds/types.d.ts.map +1 -1
- package/dist/lib/escape-forward.d.ts +0 -6
- package/dist/lib/escape-forward.d.ts.map +1 -1
- package/dist/lib/escape-forward.js +1 -9
- package/dist/lib/escape-forward.js.map +3 -3
- package/dist/lib/text-match.js +21 -7
- package/dist/lib/text-match.js.map +4 -3
- package/docs/backgrounds.md +80 -8
- package/docs/roadmap.md +3 -16
- package/docs/troubleshooting.md +9 -8
- package/package.json +3 -15
- package/dist/backgrounds/presets/grain.d.ts +0 -9
- package/dist/backgrounds/presets/grain.d.ts.map +0 -1
- package/dist/chunks/index-54gkyr43.js +0 -23
- package/dist/chunks/index-54gkyr43.js.map +0 -10
- package/dist/chunks/index-zpm2cke7.js +0 -50
- package/dist/chunks/index-zpm2cke7.js.map +0 -10
- package/dist/data-grid/aggregates.d.ts +0 -16
- package/dist/data-grid/aggregates.d.ts.map +0 -1
- package/dist/data-grid/announce.d.ts +0 -41
- package/dist/data-grid/announce.d.ts.map +0 -1
- package/dist/data-grid/change-ops.d.ts +0 -29
- package/dist/data-grid/change-ops.d.ts.map +0 -1
- package/dist/data-grid/change-select.d.ts +0 -25
- package/dist/data-grid/change-select.d.ts.map +0 -1
- package/dist/data-grid/change-types.d.ts +0 -72
- package/dist/data-grid/change-types.d.ts.map +0 -1
- package/dist/data-grid/changes.d.ts +0 -46
- package/dist/data-grid/changes.d.ts.map +0 -1
- package/dist/data-grid/conflict-text.d.ts +0 -20
- package/dist/data-grid/conflict-text.d.ts.map +0 -1
- package/dist/data-grid/date-cell.d.ts +0 -53
- package/dist/data-grid/date-cell.d.ts.map +0 -1
- package/dist/data-grid/discard.d.ts +0 -15
- package/dist/data-grid/discard.d.ts.map +0 -1
- package/dist/data-grid/edit-messages.d.ts +0 -6
- package/dist/data-grid/edit-messages.d.ts.map +0 -1
- package/dist/data-grid/edit-session.d.ts +0 -107
- package/dist/data-grid/edit-session.d.ts.map +0 -1
- package/dist/data-grid/exports-announce.d.ts +0 -7
- package/dist/data-grid/exports-announce.d.ts.map +0 -1
- package/dist/data-grid/exports-clipboard.d.ts +0 -7
- package/dist/data-grid/exports-clipboard.d.ts.map +0 -1
- package/dist/data-grid/exports-editing.d.ts +0 -14
- package/dist/data-grid/exports-editing.d.ts.map +0 -1
- package/dist/data-grid/exports-model.d.ts +0 -10
- package/dist/data-grid/exports-model.d.ts.map +0 -1
- package/dist/data-grid/exports-navigation.d.ts +0 -8
- package/dist/data-grid/exports-navigation.d.ts.map +0 -1
- package/dist/data-grid/exports-rows.d.ts +0 -7
- package/dist/data-grid/exports-rows.d.ts.map +0 -1
- package/dist/data-grid/exports-saving.d.ts +0 -16
- package/dist/data-grid/exports-saving.d.ts.map +0 -1
- package/dist/data-grid/history.d.ts +0 -46
- package/dist/data-grid/history.d.ts.map +0 -1
- package/dist/data-grid/index.d.ts +0 -16
- package/dist/data-grid/index.d.ts.map +0 -1
- package/dist/data-grid/index.js +0 -1831
- package/dist/data-grid/index.js.map +0 -40
- package/dist/data-grid/key-types.d.ts +0 -82
- package/dist/data-grid/key-types.d.ts.map +0 -1
- package/dist/data-grid/keys.d.ts +0 -16
- package/dist/data-grid/keys.d.ts.map +0 -1
- package/dist/data-grid/model.d.ts +0 -52
- package/dist/data-grid/model.d.ts.map +0 -1
- package/dist/data-grid/msg.d.ts +0 -22
- package/dist/data-grid/msg.d.ts.map +0 -1
- package/dist/data-grid/navigation.d.ts +0 -33
- package/dist/data-grid/navigation.d.ts.map +0 -1
- package/dist/data-grid/number-codes.d.ts +0 -62
- package/dist/data-grid/number-codes.d.ts.map +0 -1
- package/dist/data-grid/number-messages.d.ts +0 -21
- package/dist/data-grid/number-messages.d.ts.map +0 -1
- package/dist/data-grid/paste-plan.d.ts +0 -43
- package/dist/data-grid/paste-plan.d.ts.map +0 -1
- package/dist/data-grid/range.d.ts +0 -52
- package/dist/data-grid/range.d.ts.map +0 -1
- package/dist/data-grid/rebase.d.ts +0 -10
- package/dist/data-grid/rebase.d.ts.map +0 -1
- package/dist/data-grid/same-value.d.ts +0 -7
- package/dist/data-grid/same-value.d.ts.map +0 -1
- package/dist/data-grid/save-answer.d.ts +0 -26
- package/dist/data-grid/save-answer.d.ts.map +0 -1
- package/dist/data-grid/save-failure.d.ts +0 -32
- package/dist/data-grid/save-failure.d.ts.map +0 -1
- package/dist/data-grid/save-queue.d.ts +0 -79
- package/dist/data-grid/save-queue.d.ts.map +0 -1
- package/dist/data-grid/save-versions.d.ts +0 -11
- package/dist/data-grid/save-versions.d.ts.map +0 -1
- package/dist/data-grid/select-options.d.ts +0 -34
- package/dist/data-grid/select-options.d.ts.map +0 -1
- package/dist/data-grid/sort-snapshot.d.ts +0 -22
- package/dist/data-grid/sort-snapshot.d.ts.map +0 -1
- package/dist/data-grid/standard-schema.d.ts +0 -38
- package/dist/data-grid/standard-schema.d.ts.map +0 -1
- package/dist/data-grid/tsv.d.ts +0 -29
- package/dist/data-grid/tsv.d.ts.map +0 -1
- package/dist/data-grid/types.d.ts +0 -89
- package/dist/data-grid/types.d.ts.map +0 -1
- package/dist/data-grid/validate.d.ts +0 -66
- package/dist/data-grid/validate.d.ts.map +0 -1
- package/dist/data-grid/version.d.ts +0 -22
- package/dist/data-grid/version.d.ts.map +0 -1
- package/dist/lib/parse-number.d.ts +0 -27
- package/dist/lib/parse-number.d.ts.map +0 -1
- package/dist/lib/parse-number.js +0 -15
- package/dist/lib/parse-number.js.map +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
# @nxgt/material-core
|
|
2
2
|
|
|
3
|
-
## 0.15.0
|
|
3
|
+
## 0.15.0
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
7
|
-
- [#
|
|
7
|
+
- [#803](https://github.com/softistx/nxgt-material/pull/803) [`51244b0`](https://github.com/softistx/nxgt-material/commit/51244b06a7036d5f4e8d5d237cd27dc662bcb447) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Backgrounds: all twenty presets are drawn. `buildBackgroundScene` now draws the light presets (`mesh`, `aurora`, `spotlight`, `bokeh`), the geometry presets (`isometric`, `blueprint`, `dots`, `stripes`, `low-poly`, `topography`, `waves`) and the motif presets (`shapes`, `confetti-grid`, `constellation`, `halftone`, `truchet`, `floating`, `scatter-icons`), each seeded where it has geometry. `buildBackgroundScene` is the one public way to draw them: the per-preset builders stay internal (`buildGrain`, already published, stays exported). `presetLayers(preset)` gives a preset's `data-layer` names in paint order, with `SCENE_LAYER` marking where its SVG goes, from a table that holds no builder. `resolveBackgroundPreset(id, available)` resolves an id against a library's own list (`resolveShippedPreset` stays, over `SHIPPED_BACKGROUND_PRESETS`). A scene may use `stop-opacity` on a gradient stop, and a motif's drift is classes (`fl`, `v1..v8`, `d1..d6`, `l1..l4`), never an inline `style`. The grain scene is final: black specks from an alpha noise, sized in screen pixels.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
- [#769](https://github.com/softistx/nxgt-material/pull/769) [`8e4cdfa`](https://github.com/softistx/nxgt-material/commit/8e4cdfae4d67d6563f916e35112cadac8d54e2ce) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `@nxgt/material-core/escape-forward`: a control marked `data-keeps-escape` keeps Escape from the Dialog, Sheet, Drawer, AlertDialog or Popover around it (in both libraries), as a field whose list is open does; `isKeptEscape(event)` tells such an Escape from one the page prevented.
|
|
9
|
+
The motif options (`MotifOptions`: `shapes`, `density`, `size`, `rotate`, `shapeFill`, `opacitySpread`) drive the motif presets. **`MOTIF_DEFAULTS.rotate` is now `false`** (it was `true`): motifs stay upright unless `rotate` is set.
|
|
10
|
+
|
|
11
|
+
Tree-shaking: importing one name from `@nxgt/material-core/backgrounds` (`presetLayers`, `svgIdPrefix`, `buildGrain`, …) no longer bundles every preset's builder.
|
|
14
12
|
|
|
15
13
|
## 0.14.0
|
|
16
14
|
|
package/README.md
CHANGED
|
@@ -10,8 +10,8 @@ the date range presets, a debounce, accent-insensitive text matching and a race-
|
|
|
10
10
|
rule, a field's first reachable control (`/focus-control`) and its `aria-describedby`
|
|
11
11
|
(`/described-by`), where the focus goes in a repeatable row group
|
|
12
12
|
(`/repeatable-group`), the page behind a modal layer made inert
|
|
13
|
-
(`/inert-others`), Escape pressed while an overlay closes
|
|
14
|
-
list is open
|
|
13
|
+
(`/inert-others`), Escape pressed while an overlay closes or in a field whose
|
|
14
|
+
list is open (`/escape-forward`), the Toaster's guard against a tap's emulated hover
|
|
15
15
|
(`/touch-hover`), the focus a toast's action hands back (`/toast-focus`), a
|
|
16
16
|
table row's activation, the zod error map's issue messages
|
|
17
17
|
(`/zod-issue-messages`), a zod error map that words an issue by its code
|
|
@@ -30,8 +30,7 @@ re-export what they always exported, at the same subpaths:
|
|
|
30
30
|
from here, and so do their `PdfReader`, `CurrencyField`, form fields (their
|
|
31
31
|
focus, blur, `aria-describedby` and zod messages), file list and upload
|
|
32
32
|
field (`formatFileSize`), modal layers (the inert page behind, Escape while
|
|
33
|
-
closing, Escape in a field whose list is open
|
|
34
|
-
`data-keeps-escape`), `Toaster`, `DataTable` rows, `@nxgt/material/next` and
|
|
33
|
+
closing, Escape in a field whose list is open), `Toaster`, `DataTable` rows, `@nxgt/material/next` and
|
|
35
34
|
`@nxgt/material-vue/nuxt`. Import it directly when you want the model or a
|
|
36
35
|
formatter without a UI library, or one of these helpers in a component of
|
|
37
36
|
your own.
|
|
@@ -93,10 +92,10 @@ can reach. No other subpath imports a `node:` built-in.
|
|
|
93
92
|
| `/field-blur-layers` | `layerOf`, `openerOf`, `FieldLayers` — whose overlay a layer of the page is, for a field's blur |
|
|
94
93
|
| `/focus-control` | `firstControl`, `focusHandle`, `FocusHandle` — the first control of a field a user can reach, and a stand-in element that focuses it for a form library |
|
|
95
94
|
| `/repeatable-group` | `focusAfterRemove`, `focusAfterMove`, `focusRowTarget`, `rowMoveTarget`, `canAddRow`, `canRemoveRow`, `RowFocusTarget`, `RowMoveDirection`, `RowAnnouncement`, `ROW_SLOT`, `ROW_FIELDS_SLOT`, `ADD_ATTRIBUTE` — where the focus goes after a row of a `RepeatableGroup` is added, removed or moved, and what its live region says |
|
|
96
|
-
| `/escape-forward` | `forwardEscape`, `keepListEscape
|
|
95
|
+
| `/escape-forward` | `forwardEscape`, `keepListEscape` — Escape pressed while an overlay closes, pressed again for the overlay below once it has gone; Escape pressed in a field whose list is open, kept from closing the overlay around it |
|
|
97
96
|
| `/described-by` | `describedBy` — an `aria-describedby` value from the caller's ids and a field's help and error ids |
|
|
98
97
|
| `/inert-others` | `inertOthers`, `INERT_MARKER` — the rest of the page `inert` behind a modal layer, live regions kept, nested layers counted |
|
|
99
|
-
| `/backgrounds` | `buildBackgroundScene`, `buildGrain`, `assertSafeScene`, `svgIdPrefix`, `observeBackgroundActivity`, `mulberry32`, `valueNoise2`, `scatter`, `motifShape`, `place`, `BACKGROUND_PRESETS`, `SHIPPED_BACKGROUND_PRESETS`, `resolveShippedPreset`, `BACKGROUND_TONES`, `MOTIF_SHAPES`, `MOTIF_DEFAULTS
|
|
98
|
+
| `/backgrounds` | `buildBackgroundScene`, `buildGrain`, `assertSafeScene`, `el`, `SCENE_ATTRIBUTES`, `SCENE_TAGS`, `svgIdPrefix`, `observeBackgroundActivity`, `mulberry32`, `pick`, `round1`, `valueNoise2`, `scatter`, `motifShape`, `place`, `BACKGROUND_PRESETS`, `SHIPPED_BACKGROUND_PRESETS`, `resolveBackgroundPreset`, `resolveShippedPreset`, `presetLayers`, `SCENE_LAYER`, `BACKGROUND_TONES`, `BACKGROUND_INTENSITIES`, `MOTIF_SHAPES`, `MOTIF_DEFAULTS`, and the types `BackgroundPreset`, `ShippedBackgroundPreset`, `BackgroundTone`, `BackgroundIntensity`, `MotifDensity`, `MotifShape`, `MotifSize`, `OpacitySpread`, `ShapeFill`, `SceneBuilder`, `SceneOptions`, `SceneTag`, `ScatterOptions`, `ScatterPoint`, `PlaceOptions`, `MotifOptions`, `SceneNode`, `PresetInfo` — the engine behind the libraries' background presets: a seeded generator, scattering, motif shapes, a plain SVG scene format with its safety check, ids for `url(#…)`, and the observer that pauses an animation |
|
|
100
99
|
| `/touch-hover` | `ignoreTouchHover`, `TOASTER_PHONE_QUERY`, `TOASTER_PHONE_POSITION` — keeps a tap from hovering an element, so a toast a finger touched does not stay paused; where the `Toaster` puts toasts on a phone |
|
|
101
100
|
| `/toast-focus` | `focusOrigin`, `handFocusBack`, `trackToasterOrigin`, `TOASTER_SELECTOR` — where the focus was before it entered a toast, and handing it back there before the toast's action runs, so a dialog the action opens keeps the focus |
|
|
102
101
|
| `/zod-issue-messages` | `sizeMessage`, `invalidFormatMessage`, `IssueText` — the translated text of a zod `too_big` / `too_small` and `invalid_format` issue |
|
|
@@ -121,8 +120,6 @@ can reach. No other subpath imports a `node:` built-in.
|
|
|
121
120
|
| `/states` | `EMPTY_STATE_KINDS`, `ERROR_STATE_KINDS`, `resolveEmptyStateKind`, `isErrorKind`, `stateCopy`, `STATE_ACTION_KEYS`, `describeError`, `STATE_ILLUSTRATIONS`, `STATE_ACCENT`, `STATE_ICON` and the types `EmptyStateKind`, `ErrorStateKind`, `StateKind`, `LegacyEmptyStateVariant`, `StateFamily`, `StateCopy`, `ErrorDetail`, `StateIllustration`, `IllustrationShape`, `IllustrationTone`, `StateAccent`, `StateIconName` — the kinds, copy keys, error details and illustrations behind `EmptyState` and `ErrorState` |
|
|
122
121
|
| `/vite` | `nxgtMaterial()`, `pdfkitStandardFonts()`, `cspAssetsInlineLimit`, `CSP_NONCE_PLACEHOLDER`, `ZOD_JITLESS_SCRIPT` and the types `NxgtMaterialOptions`, `NxgtMaterialCspOptions`, `NxgtMaterialLibrary` — see below |
|
|
123
122
|
| `/pdfkit-fonts` | **Node only.** `pdfkitStandardFontDirs`, `pdfkitStandardFontFiles`, `PDFKIT_STANDARD_FONTS`, the types `PdfkitStandardFont` and `PdfkitFontsWarn` — where the app's pdfkit keeps its standard fonts, for a server tracer |
|
|
124
|
-
| `/data-grid` | **Headless**, for the editable `DataGrid` coming in `@nxgt/material`; nothing renders yet. The model (`buildGridModel`, `cellAccess`, `cellVersion` and `isNewCellVersion`), navigation (`navigate`, `gridCommandFor`), the range (`extend`, `selectAll`, `rangeCells`, …), the edit session (`editReducer`), validation (`validateCell`, `serverErrors`, `refusalsByCell`, Standard Schema), `numberCodes`, the changes per cell (`NO_CHANGES`, `editCell`, `rebase`, `resolveConflict`, `expireSaved`, `changeCounts`, `blocking`), the save queue (`IDLE_QUEUE`, `nextCall`, `startCall`, `applyAnswer`, `applyFailure`, `applyAbort`, `retry`), undo and redo (`EMPTY_HISTORY`, `record`, `undo`, `redo`), copy and paste (`parseTsv`, `serializeTsv`, `planPaste`), the totals (`aggregate`), the kept sort order (`snapshotOrder`, `reconcileOrder`, `sortingChanged`), the conflict panel's text (`conflictValues`, `conflictSummary`, `clearedText`) and the live region's descriptors (`savedMessage`, `cellStateText`, …), with the types `GridModel`, `GridColumnSpec`, `GridRowSpec`, `GridMsg`, `GridPos`, `GridRange`, `GridVersion`, `GridCode`, `GridChanges`, `GridSaveQueue`, `GridCall`, `GridSaveAnswer`, `GridHistory`, `GridStep`, `GridPasteInput`, `GridPastePlan`, `GridPasteProblem`, `GridAggregate` and `GridSort`. A cell's version is `0` or `undefined` when it does not exist yet on the server. See below |
|
|
125
|
-
| `/parse-number` | `parseNumberInput`, `decimalsTyped`, `clampNumber`, `stepNumber` — a typed number read with `,` or `.` as its decimal separator, its typed decimals, and the clamp and step behind `NumberField` |
|
|
126
123
|
|
|
127
124
|
## Usage
|
|
128
125
|
|
|
@@ -1082,30 +1079,6 @@ list sits in a `[data-slot="combobox-content"]` popup (a command palette's
|
|
|
1082
1079
|
input is not), or when it carries `data-list-open="true"` (the Vue
|
|
1083
1080
|
`Autocomplete`'s textbox).
|
|
1084
1081
|
|
|
1085
|
-
A control that handles Escape itself (a grid's cell editor, whose Escape
|
|
1086
|
-
cancels the edit; a grid cell whose Escape collapses a selected range)
|
|
1087
|
-
carries `data-keeps-escape`, or sits inside an element that does (a grid's
|
|
1088
|
-
paste-problems panel, whose Escape closes it): `keepListEscape` keeps its
|
|
1089
|
-
Escape from the overlay around it too. Its own handler then sees `defaultPrevented` true,
|
|
1090
|
-
for an Escape that is still its own: `isKeptEscape(event)` is `true` for an
|
|
1091
|
-
Escape `keepListEscape` kept (and only for one), so the handler can tell it
|
|
1092
|
-
from an Escape something else prevented.
|
|
1093
|
-
|
|
1094
|
-
```tsx
|
|
1095
|
-
import { isKeptEscape } from '@nxgt/material-core/escape-forward';
|
|
1096
|
-
|
|
1097
|
-
declare function cancelEdit(): void;
|
|
1098
|
-
|
|
1099
|
-
<input
|
|
1100
|
-
data-keeps-escape=""
|
|
1101
|
-
onKeyDown={(event) => {
|
|
1102
|
-
const native = event.nativeEvent;
|
|
1103
|
-
if (event.defaultPrevented && !isKeptEscape(native)) return;
|
|
1104
|
-
if (event.key === 'Escape') cancelEdit(); // the dialog stays open
|
|
1105
|
-
}}
|
|
1106
|
-
/>;
|
|
1107
|
-
```
|
|
1108
|
-
|
|
1109
1082
|
```ts
|
|
1110
1083
|
import { forwardEscape, keepListEscape } from '@nxgt/material-core/escape-forward';
|
|
1111
1084
|
|
|
@@ -1259,7 +1232,7 @@ row.addEventListener('click', (event) => {
|
|
|
1259
1232
|
|
|
1260
1233
|
### Background presets: `/backgrounds`
|
|
1261
1234
|
|
|
1262
|
-
The engine under the libraries' background presets,
|
|
1235
|
+
The engine under the libraries' background presets: a seeded generator, scattering, motif shapes, a scene format, and a builder for each of the 16 SVG presets.
|
|
1263
1236
|
A background is a **scene**: a plain tree `{ tag, attrs, children }` of SVG
|
|
1264
1237
|
elements that each library renders with `createElement` or `h` — never as an
|
|
1265
1238
|
HTML string. `assertSafeScene` throws for a `style`, an `on*` handler, an
|
|
@@ -1298,10 +1271,11 @@ stop();
|
|
|
1298
1271
|
(`':r1:'` becomes `'bg-r1'`). `BACKGROUND_PRESETS` is the table of the 20
|
|
1299
1272
|
preset ids with their family, how each is drawn and whether `seed` changes
|
|
1300
1273
|
it. `buildBackgroundScene(preset, { idPrefix, seed })` returns the scene of a
|
|
1301
|
-
preset, or `null` for a CSS-only one
|
|
1302
|
-
`SHIPPED_BACKGROUND_PRESETS` (`gradient`, `grain`) is
|
|
1303
|
-
`
|
|
1304
|
-
warning outside production
|
|
1274
|
+
preset, or `null` for a CSS-only one (`gradient`, `mesh`, `dots`, `stripes`).
|
|
1275
|
+
`SHIPPED_BACKGROUND_PRESETS` (`gradient`, `grain`) is the common floor every library draws;
|
|
1276
|
+
each library lists its own, and `resolveBackgroundPreset(id, available)` returns `id` when the
|
|
1277
|
+
list has it, else `'gradient'`, with a one-time warning outside production (`resolveShippedPreset`
|
|
1278
|
+
is the same over the floor). `presetLayers(preset)` lists the layers a library renders. See
|
|
1305
1279
|
[Backgrounds](https://cdn.jsdelivr.net/npm/@nxgt/material-core@0/docs/backgrounds.md).
|
|
1306
1280
|
|
|
1307
1281
|
### One plugin: `nxgtMaterial()` (`/vite`)
|
|
@@ -1409,249 +1383,6 @@ You rarely call it yourself: `withNxgtPrint` (`@nxgt/material/next`) turns
|
|
|
1409
1383
|
the directories into `outputFileTracingIncludes` globs, and the Nuxt module
|
|
1410
1384
|
of `@nxgt/material-vue` adds the files to `nitro.externals.traceInclude`.
|
|
1411
1385
|
|
|
1412
|
-
### An editable grid's pure half: `/data-grid`
|
|
1413
|
-
|
|
1414
|
-
The logic behind the editable `DataGrid` that is coming to `@nxgt/material`,
|
|
1415
|
-
with nothing rendered yet: where a cell is, which cell a key moves to, what a
|
|
1416
|
-
typed text parses to, and the messages to announce. It never reads the DOM, so
|
|
1417
|
-
it also runs in a test or on a server. Positions are `{ row, col }`; the header
|
|
1418
|
-
row is `-1` and the footer rows follow the body.
|
|
1419
|
-
|
|
1420
|
-
```ts
|
|
1421
|
-
import {
|
|
1422
|
-
buildGridModel,
|
|
1423
|
-
cellVersion,
|
|
1424
|
-
gridCommandFor,
|
|
1425
|
-
gridPlatform,
|
|
1426
|
-
isGridPos,
|
|
1427
|
-
navigate,
|
|
1428
|
-
numberCodes,
|
|
1429
|
-
validateCell,
|
|
1430
|
-
type GridPos,
|
|
1431
|
-
} from '@nxgt/material-core/data-grid';
|
|
1432
|
-
|
|
1433
|
-
type Row = { id: string; outOf: number; version?: number };
|
|
1434
|
-
|
|
1435
|
-
const model = buildGridModel({
|
|
1436
|
-
columns: [
|
|
1437
|
-
{ id: 'name', label: 'Name', frozen: true },
|
|
1438
|
-
{ id: 'maths', label: 'Maths', editor: 'number' },
|
|
1439
|
-
],
|
|
1440
|
-
rows: [{ id: 'ada' }, { id: 'alan' }],
|
|
1441
|
-
});
|
|
1442
|
-
|
|
1443
|
-
// A key press is a command, and a command takes the active cell somewhere.
|
|
1444
|
-
const key = { key: 'ArrowDown', shiftKey: false, ctrlKey: false, metaKey: false, altKey: false };
|
|
1445
|
-
const command = gridCommandFor(key, 'nav', gridPlatform(navigator.platform));
|
|
1446
|
-
// { type: 'move', cmd: 'down' }
|
|
1447
|
-
|
|
1448
|
-
let active: GridPos = { row: 0, col: 1 };
|
|
1449
|
-
if (command?.type === 'move') {
|
|
1450
|
-
const next = navigate(active, command.cmd, {
|
|
1451
|
-
model,
|
|
1452
|
-
pageSize: 10,
|
|
1453
|
-
dir: 'ltr',
|
|
1454
|
-
skipReadOnly: true,
|
|
1455
|
-
});
|
|
1456
|
-
if (isGridPos(next)) active = next; // else 'exit-forward' / 'exit-back': leave the grid
|
|
1457
|
-
}
|
|
1458
|
-
|
|
1459
|
-
// A number column that also takes codes, in any language, with `,` or `.`.
|
|
1460
|
-
const grades = numberCodes<Row>({
|
|
1461
|
-
min: 0,
|
|
1462
|
-
max: (row) => row.outOf,
|
|
1463
|
-
decimals: 2,
|
|
1464
|
-
codes: [{ value: 'ABS', labels: { en: 'abs', fr: 'abs' }, aliases: { fr: ['absent'] } }],
|
|
1465
|
-
});
|
|
1466
|
-
const row: Row = { id: 'ada', outOf: 20 };
|
|
1467
|
-
|
|
1468
|
-
grades.parse('abs', { lang: 'fr', row }); // { value: 'ABS' }
|
|
1469
|
-
grades.parse('12,5', { lang: 'fr', row }); // { value: 12.5 }
|
|
1470
|
-
grades.parse('25', { lang: 'en', row }); // { error: GridMsg } — "Enter a number from 0 to 20"
|
|
1471
|
-
|
|
1472
|
-
// Parse, then the column's check, then a Standard Schema: the first error wins.
|
|
1473
|
-
const result = validateCell({
|
|
1474
|
-
text: '12,5',
|
|
1475
|
-
row,
|
|
1476
|
-
parse: (text) => grades.parse(text, { lang: 'fr', row }),
|
|
1477
|
-
});
|
|
1478
|
-
// { ok: true, value: 12.5 } or { ok: false, error: GridMsg }
|
|
1479
|
-
|
|
1480
|
-
// The version the server gave a cell: per cell, else the row's.
|
|
1481
|
-
cellVersion(row, 'maths', { getRowVersion: (r) => r.version });
|
|
1482
|
-
```
|
|
1483
|
-
|
|
1484
|
-
- **Messages are descriptors.** Every error and announcement is a `GridMsg`
|
|
1485
|
-
(`{ key: 'material.data-grid.…', fallback, values? }`): the library
|
|
1486
|
-
translates `key`, and `gridFallbackText(message)` gives the English text.
|
|
1487
|
-
- **Versions are passed through unchanged.** `cellVersion` answers
|
|
1488
|
-
`getCellVersion` when it is given, else `getRowVersion`, else `undefined`;
|
|
1489
|
-
`isNewCellVersion` is true for `0` and `undefined`, a cell that does not
|
|
1490
|
-
exist yet on the server.
|
|
1491
|
-
- **Numbers are never rounded or clamped.** Too many decimals or a value out
|
|
1492
|
-
of bounds is an error. Spaces are stripped (`"1 234"` is 1234), but a
|
|
1493
|
-
second separator is refused: `"1,234"` is 1.234 and `"1,234.5"` an error.
|
|
1494
|
-
`parse` needs the row; with a bound that is a function of the row and no
|
|
1495
|
-
row, it refuses the number rather than let it through unchecked.
|
|
1496
|
-
- **A cleared cell skips the schema.** `null` still runs `validate`, but not
|
|
1497
|
-
the Standard Schema, so a `z.number()` does not refuse a clear; refuse an
|
|
1498
|
-
empty cell in `validate` (or with `numberCodes({ emptyClears: false })`).
|
|
1499
|
-
Without `parse`, the value is the text: a column whose value is not a
|
|
1500
|
-
string must give one.
|
|
1501
|
-
- **Tab in an editor always moves on.** `tabBehavior: 'exit'` makes Tab leave
|
|
1502
|
-
the grid from a cell, but a commit's Tab (`commitNext` / `commitPrev`)
|
|
1503
|
-
still walks the cells. `gridCommandFor` returns `{ type: 'swallow' }` for
|
|
1504
|
-
the browser's back and forward (Alt+Arrow, Cmd+[ and Cmd+]): call
|
|
1505
|
-
`preventDefault` and do nothing.
|
|
1506
|
-
|
|
1507
|
-
#### Saving changes: the queue
|
|
1508
|
-
|
|
1509
|
-
Each edited cell is a change that keeps the value and the version it was read
|
|
1510
|
-
at. The queue picks what the next call sends, one call at a time; the answer
|
|
1511
|
-
is all or nothing.
|
|
1512
|
-
|
|
1513
|
-
```ts
|
|
1514
|
-
import {
|
|
1515
|
-
applyAbort,
|
|
1516
|
-
applyAnswer,
|
|
1517
|
-
applyFailure,
|
|
1518
|
-
cellVersion,
|
|
1519
|
-
editCell,
|
|
1520
|
-
expireSaved,
|
|
1521
|
-
gridCellKey,
|
|
1522
|
-
type GridCall,
|
|
1523
|
-
type GridSaveAnswer,
|
|
1524
|
-
IDLE_QUEUE,
|
|
1525
|
-
NO_CHANGES,
|
|
1526
|
-
startCall,
|
|
1527
|
-
} from '@nxgt/material-core/data-grid';
|
|
1528
|
-
|
|
1529
|
-
type Row = { id: string; maths: number | null; version: number };
|
|
1530
|
-
const row: Row = { id: 'ada', maths: 12, version: 3 };
|
|
1531
|
-
// The app's save: one call, answered as a whole.
|
|
1532
|
-
declare function onSave(entries: GridCall['entries'], signal: AbortSignal): Promise<GridSaveAnswer>;
|
|
1533
|
-
|
|
1534
|
-
let changes = NO_CHANGES;
|
|
1535
|
-
let queue = IDLE_QUEUE;
|
|
1536
|
-
|
|
1537
|
-
// An edit: going back to the value read drops it again.
|
|
1538
|
-
changes = editCell(changes, {
|
|
1539
|
-
key: gridCellKey(row.id, 'maths'),
|
|
1540
|
-
base: row.maths,
|
|
1541
|
-
baseVersion: cellVersion(row, 'maths', { getRowVersion: (r) => r.version }),
|
|
1542
|
-
value: 14,
|
|
1543
|
-
});
|
|
1544
|
-
|
|
1545
|
-
// Cell mode sends everything dirty (200 entries a call at most); row mode the
|
|
1546
|
-
// rows left; batch mode only on save(), with no limit, and not while a cell is
|
|
1547
|
-
// in error or in conflict.
|
|
1548
|
-
const started = startCall(changes, queue, { mode: 'cell' });
|
|
1549
|
-
if (started) {
|
|
1550
|
-
({ changes, queue } = started); // its cells are 'saving'
|
|
1551
|
-
const { call } = started;
|
|
1552
|
-
const controller = new AbortController();
|
|
1553
|
-
try {
|
|
1554
|
-
const answer = await onSave(call.entries, controller.signal);
|
|
1555
|
-
// Versions per row (no getCellVersion): the row's other changes move too.
|
|
1556
|
-
({ changes, queue } = applyAnswer(changes, queue, call.id, answer, Date.now(), { versionScope: 'row' }));
|
|
1557
|
-
} catch {
|
|
1558
|
-
({ changes, queue } = controller.signal.aborted
|
|
1559
|
-
? applyAbort(changes, queue, call.id) // no failure counted
|
|
1560
|
-
: applyFailure(changes, queue, call.id)); // paused after 3: retry(queue)
|
|
1561
|
-
}
|
|
1562
|
-
}
|
|
1563
|
-
changes = expireSaved(changes, Date.now()); // 1.5s later: the "saved" mark goes
|
|
1564
|
-
```
|
|
1565
|
-
|
|
1566
|
-
- **`versions[i]` is entry `i`'s.** It becomes the cell's new `baseVersion`
|
|
1567
|
-
(every changed cell of the row, in row mode; with `versionScope: 'row'`,
|
|
1568
|
-
the row's other changes still on the old version too). Without one, the
|
|
1569
|
-
version the cell was read at stays, and the next `rebase` adopts the
|
|
1570
|
-
row's: a cell whose value is still its base never conflicts.
|
|
1571
|
-
- **A refusal saves nothing.** `{ ok: false, refused }` names entries by index:
|
|
1572
|
-
an `error` flags its cell, a `conflict` opens one (`resolveConflict(changes,
|
|
1573
|
-
key, 'theirs' | 'mine')`), and every other cell goes back to dirty, to be
|
|
1574
|
-
sent again. A cell edited during the call stays dirty either way. A
|
|
1575
|
-
refusal naming no cell sent is counted in `outcome.unmatched`.
|
|
1576
|
-
- **A saved value stays until the rows hold it.** It is kept as an overlay
|
|
1577
|
-
(status `'clean'` once the mark expires), as "Keep theirs" is, so the cell
|
|
1578
|
-
never flashes back to stale data. The version a save or a conflict
|
|
1579
|
-
replaced is kept as `staleVersion`: a refetch that still reads at it is
|
|
1580
|
-
older than the grid and changes nothing, and `rebase` drops the overlay
|
|
1581
|
-
once the refetched rows hold the value.
|
|
1582
|
-
- **A refetch is a `rebase`.** It compares cell versions when `getCellVersion`
|
|
1583
|
-
is given, else the row's; a pending edit whose version and value moved
|
|
1584
|
-
becomes a conflict, and a conflict outlives any edit until it is resolved.
|
|
1585
|
-
|
|
1586
|
-
```ts
|
|
1587
|
-
import {
|
|
1588
|
-
aggregate,
|
|
1589
|
-
buildGridModel,
|
|
1590
|
-
conflictValues,
|
|
1591
|
-
EMPTY_HISTORY,
|
|
1592
|
-
type GridCellKey,
|
|
1593
|
-
type GridNumberCodeValue,
|
|
1594
|
-
NO_CHANGES,
|
|
1595
|
-
numberCodes,
|
|
1596
|
-
parseTsv,
|
|
1597
|
-
planPaste,
|
|
1598
|
-
splitCellKey,
|
|
1599
|
-
undo,
|
|
1600
|
-
} from '@nxgt/material-core/data-grid';
|
|
1601
|
-
|
|
1602
|
-
const changes = NO_CHANGES; // the grid's changes
|
|
1603
|
-
const rows = new Map([['ada', { maths: 12 as GridNumberCodeValue }]]);
|
|
1604
|
-
const model = buildGridModel({
|
|
1605
|
-
columns: [{ id: 'maths', label: 'Maths', editor: 'number' }],
|
|
1606
|
-
rows: [{ id: 'ada' }],
|
|
1607
|
-
});
|
|
1608
|
-
const grades = numberCodes({ min: 0, max: 20, decimals: 2 });
|
|
1609
|
-
const [lang, locale] = ['fr', 'fr-FR'];
|
|
1610
|
-
const valueInRows = (key: GridCellKey) => {
|
|
1611
|
-
const { rowId } = splitCellKey(key);
|
|
1612
|
-
return rows.get(rowId)?.maths;
|
|
1613
|
-
};
|
|
1614
|
-
|
|
1615
|
-
// Undo is a new edit: send each of `undone.edits` through editCell; `skipped` cells changed since.
|
|
1616
|
-
const undone = undo(EMPTY_HISTORY, (key) => changes[key]?.value ?? valueInRows(key)); // null: nothing to undo
|
|
1617
|
-
|
|
1618
|
-
// A paste is all or nothing, at the matrix's own size: { ok: true, edits, range } or { ok: false, problems }.
|
|
1619
|
-
const plan = planPaste({
|
|
1620
|
-
matrix: parseTsv('14\r\n'),
|
|
1621
|
-
anchor: { row: 0, col: 0 },
|
|
1622
|
-
model,
|
|
1623
|
-
parse: (text) => grades.parse(text, { lang, row: undefined }),
|
|
1624
|
-
});
|
|
1625
|
-
|
|
1626
|
-
// Totals over numbers only: codes and empty cells are skipped.
|
|
1627
|
-
aggregate('mean', [12, 'ABS', null, 14]); // 13; aggregate('count', []) is 0
|
|
1628
|
-
|
|
1629
|
-
// The conflict panel's two values, formatted with the column's own format; a cleared one is "Cleared".
|
|
1630
|
-
conflictValues({
|
|
1631
|
-
theirs: null,
|
|
1632
|
-
yours: 12.5,
|
|
1633
|
-
format: (value) => grades.format(value as GridNumberCodeValue, { lang, locale }),
|
|
1634
|
-
}); // { theirs: Cleared, yours: "12,5" }
|
|
1635
|
-
```
|
|
1636
|
-
|
|
1637
|
-
### A typed number: `/parse-number`
|
|
1638
|
-
|
|
1639
|
-
A number typed with `,` or `.` as its decimal separator, the decimals it was
|
|
1640
|
-
typed with, and the clamp and step behind `NumberField` and the data grid's
|
|
1641
|
-
number editor.
|
|
1642
|
-
|
|
1643
|
-
```ts
|
|
1644
|
-
import { clampNumber, decimalsTyped, parseNumberInput, stepNumber } from '@nxgt/material-core/parse-number';
|
|
1645
|
-
|
|
1646
|
-
parseNumberInput('12,5'); // 12.5
|
|
1647
|
-
parseNumberInput('1 234,5'); // 1234.5: the last of `,` and `.` is the decimal separator
|
|
1648
|
-
parseNumberInput('-'); // null: empty or incomplete
|
|
1649
|
-
decimalsTyped('12,50'); // 2: a trailing zero is what the user typed
|
|
1650
|
-
clampNumber(15, 0, 10); // 10: `min` and `max` are each optional
|
|
1651
|
-
stepNumber(1.1, 1, 0.1); // 1.2: no float drift
|
|
1652
|
-
stepNumber(null, -1, 1, 0); // 0: empty starts at 0, then is clamped
|
|
1653
|
-
```
|
|
1654
|
-
|
|
1655
1386
|
## Traps
|
|
1656
1387
|
|
|
1657
1388
|
| Symptom | Fix |
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { BackgroundPreset, SceneNode, SceneOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The `data-layer` names of a preset in paint order, the literal `'scene'`
|
|
4
|
+
* (`SCENE_LAYER`) marking where its SVG scene goes; empty when the preset is
|
|
5
|
+
* not drawn yet. The libraries render this list, so the markup follows the
|
|
6
|
+
* table. It reads `PRESET_LAYERS`, which holds no builder, so importing
|
|
7
|
+
* `presetLayers` alone tree-shakes every preset's drawing code.
|
|
8
|
+
*/
|
|
9
|
+
export declare function presetLayers(preset: BackgroundPreset): readonly string[];
|
|
2
10
|
/**
|
|
3
11
|
* The SVG scene of a preset, or `null` when it has none (the CSS-only
|
|
4
12
|
* presets, and a preset whose builder is not there yet). The same `seed`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/backgrounds/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/backgrounds/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,gBAAgB,EAEhB,SAAS,EACT,YAAY,EACZ,MAAM,SAAS,CAAC;AAkBjB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,YAAY,GAChB,SAAS,GAAG,IAAI,CAIlB"}
|
|
@@ -6,15 +6,16 @@
|
|
|
6
6
|
* Framework-free; the libraries render a scene with `createElement` / `h`.
|
|
7
7
|
*/
|
|
8
8
|
export { observeBackgroundActivity } from './activity';
|
|
9
|
-
export { buildBackgroundScene } from './build';
|
|
9
|
+
export { buildBackgroundScene, presetLayers } from './build';
|
|
10
10
|
export { svgIdPrefix } from './id-prefix';
|
|
11
11
|
export { valueNoise2 } from './noise';
|
|
12
|
-
export { BACKGROUND_PRESETS, resolveShippedPreset, SHIPPED_BACKGROUND_PRESETS, } from './presets';
|
|
13
|
-
export { buildGrain } from './presets/grain';
|
|
12
|
+
export { BACKGROUND_PRESETS, resolveBackgroundPreset, resolveShippedPreset, SHIPPED_BACKGROUND_PRESETS, } from './presets';
|
|
13
|
+
export { buildGrain } from './presets/light/grain';
|
|
14
14
|
export { MOTIF_DEFAULTS, MOTIF_SHAPES, motifShape, type PlaceOptions, place, } from './primitives';
|
|
15
15
|
export { mulberry32, pick, round1 } from './rng';
|
|
16
16
|
export { type ScatterOptions, type ScatterPoint, scatter, } from './scatter';
|
|
17
17
|
export { assertSafeScene, el, SCENE_ATTRIBUTES, SCENE_TAGS, } from './scene';
|
|
18
18
|
export { BACKGROUND_INTENSITIES, BACKGROUND_TONES } from './tones';
|
|
19
19
|
export type { BackgroundIntensity, BackgroundPreset, BackgroundTone, MotifDensity, MotifOptions, MotifShape, MotifSize, OpacitySpread, PresetInfo, SceneBuilder, SceneNode, SceneOptions, SceneTag, ShapeFill, ShippedBackgroundPreset, } from './types';
|
|
20
|
+
export { SCENE_LAYER } from './types';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backgrounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backgrounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EACN,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACN,cAAc,EACd,YAAY,EACZ,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,OAAO,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,eAAe,EACf,EAAE,EACF,gBAAgB,EAChB,UAAU,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACnE,YAAY,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,uBAAuB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|