@xlcalc/vue 0.0.0-stage → 0.21.2

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.
Files changed (125) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +75 -2
  4. package/dist/abort.d.ts +6 -0
  5. package/dist/components/CellDraft.vue.d.ts +7 -0
  6. package/dist/components/CellEditor.vue.d.ts +3 -0
  7. package/dist/components/ColourSwatches.vue.d.ts +13 -0
  8. package/dist/components/DialogShell.vue.d.ts +37 -0
  9. package/dist/components/ExplainPanel.vue.d.ts +3 -0
  10. package/dist/components/FilterPopover.vue.d.ts +3 -0
  11. package/dist/components/FindBar.vue.d.ts +3 -0
  12. package/dist/components/FormatBorders.vue.d.ts +14 -0
  13. package/dist/components/FormatColour.vue.d.ts +19 -0
  14. package/dist/components/FormatDialog.vue.d.ts +24 -0
  15. package/dist/components/FormulaBar.vue.d.ts +3 -0
  16. package/dist/components/FunctionList.vue.d.ts +28 -0
  17. package/dist/components/FunctionTip.vue.d.ts +14 -0
  18. package/dist/components/InsertFunction.vue.d.ts +9 -0
  19. package/dist/components/OutlineCell.vue.d.ts +8 -0
  20. package/dist/components/OutlineLevels.vue.d.ts +7 -0
  21. package/dist/components/SheetGrid.vue.d.ts +3 -0
  22. package/dist/components/SheetMarks.vue.d.ts +3 -0
  23. package/dist/components/SheetMenu.vue.d.ts +3 -0
  24. package/dist/components/SheetRow.vue.d.ts +18 -0
  25. package/dist/components/SheetTabs.vue.d.ts +3 -0
  26. package/dist/components/SheetToolbar.vue.d.ts +43 -0
  27. package/dist/components/SheetView.vue.d.ts +56 -0
  28. package/dist/components/ValidationAlert.vue.d.ts +16 -0
  29. package/dist/components/ValidationDropdown.vue.d.ts +33 -0
  30. package/dist/components/ValidationPrompt.vue.d.ts +16 -0
  31. package/dist/components/cf-icons.d.ts +6 -0
  32. package/dist/components/context.d.ts +4 -0
  33. package/dist/components/dom.d.ts +7 -0
  34. package/dist/components/icons.d.ts +33 -0
  35. package/dist/components/popup.d.ts +29 -0
  36. package/dist/components/toolbar-icons.d.ts +24 -0
  37. package/dist/contract/memory.d.ts +108 -0
  38. package/dist/contract/messages.d.ts +260 -0
  39. package/dist/contract/source.d.ts +433 -0
  40. package/dist/contract/view.d.ts +108 -0
  41. package/dist/contract.d.ts +9 -0
  42. package/dist/core/ask.d.ts +2 -0
  43. package/dist/core/autocomplete.d.ts +28 -0
  44. package/dist/core/cell-style.d.ts +33 -0
  45. package/dist/core/cell-view.d.ts +104 -0
  46. package/dist/core/clip.d.ts +43 -0
  47. package/dist/core/commands.d.ts +47 -0
  48. package/dist/core/conditional.d.ts +16 -0
  49. package/dist/core/editing.d.ts +85 -0
  50. package/dist/core/explain.d.ts +36 -0
  51. package/dist/core/fill.d.ts +42 -0
  52. package/dist/core/filter.d.ts +72 -0
  53. package/dist/core/find.d.ts +53 -0
  54. package/dist/core/formula.d.ts +41 -0
  55. package/dist/core/function-tip.d.ts +34 -0
  56. package/dist/core/geometry.d.ts +55 -0
  57. package/dist/core/keys.d.ts +8 -0
  58. package/dist/core/list-keys.d.ts +4 -0
  59. package/dist/core/list.d.ts +17 -0
  60. package/dist/core/menu.d.ts +155 -0
  61. package/dist/core/merge.d.ts +19 -0
  62. package/dist/core/navigation.d.ts +72 -0
  63. package/dist/core/outline.d.ts +34 -0
  64. package/dist/core/point.d.ts +34 -0
  65. package/dist/core/ref-paint.d.ts +21 -0
  66. package/dist/core/selection.d.ts +45 -0
  67. package/dist/core/sheet.d.ts +774 -0
  68. package/dist/core/state.d.ts +107 -0
  69. package/dist/core/storage.d.ts +6 -0
  70. package/dist/core/totals.d.ts +16 -0
  71. package/dist/core/validation.d.ts +95 -0
  72. package/dist/core/viewport.d.ts +83 -0
  73. package/dist/core/windows.d.ts +102 -0
  74. package/dist/entry.d.ts +3 -0
  75. package/dist/failure.d.ts +5 -0
  76. package/dist/filter-key.d.ts +3 -0
  77. package/dist/find-match.d.ts +24 -0
  78. package/dist/format-cells.d.ts +85 -0
  79. package/dist/frame.d.ts +5 -0
  80. package/dist/grid-ref.d.ts +3 -0
  81. package/dist/index.d.ts +6 -0
  82. package/dist/index.js +12767 -0
  83. package/dist/lines.d.ts +16 -0
  84. package/dist/local/find.d.ts +15 -0
  85. package/dist/local/index.d.ts +3 -0
  86. package/dist/local/locale.d.ts +5 -0
  87. package/dist/local/outcome.d.ts +21 -0
  88. package/dist/local/query.d.ts +23 -0
  89. package/dist/local/source.d.ts +4 -0
  90. package/dist/local/types.d.ts +37 -0
  91. package/dist/local/validation.d.ts +8 -0
  92. package/dist/local/window.d.ts +16 -0
  93. package/dist/local/xlsx.d.ts +23 -0
  94. package/dist/local.js +1025 -0
  95. package/dist/locale-ref.d.ts +7 -0
  96. package/dist/locales.d.ts +3 -0
  97. package/dist/memory-outline.d.ts +31 -0
  98. package/dist/memory-query.d.ts +26 -0
  99. package/dist/memory-source.d.ts +3 -0
  100. package/dist/memory-validation.d.ts +17 -0
  101. package/dist/messages.d.ts +6 -0
  102. package/dist/number-formats.d.ts +13 -0
  103. package/dist/rect.d.ts +9 -0
  104. package/dist/ru-RU-BVeg6JGM.js +931 -0
  105. package/dist/sheet-query.d.ts +22 -0
  106. package/dist/stats.d.ts +8 -0
  107. package/dist/style.css +2 -0
  108. package/dist/toolbar.d.ts +39 -0
  109. package/dist/typed-entry-2l9Ay-hV.js +4559 -0
  110. package/dist/window-size.d.ts +4 -0
  111. package/docs/api.md +520 -0
  112. package/docs/autocomplete.md +60 -0
  113. package/docs/checks.md +40 -0
  114. package/docs/clipboard.md +48 -0
  115. package/docs/editing.md +97 -0
  116. package/docs/example-app.md +26 -0
  117. package/docs/find-replace.md +26 -0
  118. package/docs/list-mode.md +86 -0
  119. package/docs/local.md +94 -0
  120. package/docs/quick-start.md +221 -0
  121. package/docs/sheets.md +61 -0
  122. package/docs/toolbar.md +72 -0
  123. package/docs/validation.md +41 -0
  124. package/docs/view.md +50 -0
  125. package/package.json +92 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ ## 0.21.2 (2026-10-20)
4
+
5
+ The first public release. Earlier versions were internal builds and were not published to npm; their changes are folded into this entry, and the README and `docs/` describe the package as it is now. The internal builds were named `xlcalc-sheet`: a host built on them imports `@xlcalc/vue`, `@xlcalc/vue/local` and `@xlcalc/vue/style.css` instead (breaking for that host).
6
+
7
+ Contents:
8
+
9
+ - `SheetView`: a virtualized grid over a `SheetSource`, with the workbook's styles, number formats, conditional formats, merged ranges, tables, hyperlinks and notes. It has:
10
+ - editing with Excel's keys;
11
+ - the formula bar as in Excel: always an input (a click places the caret at the click, a drag selects; on read-only sheets the text can be copied), a single line expanded by its arrow or Ctrl+Shift+U, references colored like their range borders on the grid, and Ctrl+click (Cmd+click) on a reference going to its range (with the key held, the reference under the pointer is underlined and the pointer becomes a hand; on a touch screen a long press on it goes to it), with Excel's Cancel and Enter buttons next to it and Insert Function (fx: search, Excel's categories, the ten most recently used, each function's syntax and description);
12
+ - Point mode with the mouse and the keys as measured in Excel (xlcalc's `refAt`: an arrow inserts a reference, enters the formula or does nothing; Cmd+arrow or Ctrl+arrow, Home and Page Down move the reference as on the sheet);
13
+ - Formula AutoComplete and Excel's argument tooltip (the current argument in bold, from the source's `functionSignature`, for the call found by xlcalc's `callAt`);
14
+ - fill and paste, Ctrl+Enter, undo and redo, and Excel's "We found a typo in your formula" dialog offering the source's correction of an unclosed formula;
15
+ - selection, Ctrl+arrow as Excel's Range.End, frozen panes, the fill handle continuing series as Excel's AutoFill does (`fillRange`: 1, 2 → 3, 4, dates, Item1 → Item2; Ctrl or Option held on release for a series from a single number), and cut, copy and paste with Excel's clipboard text;
16
+ - Find and Replace, data validation with Excel's dropdown, input message and alerts, the outline, the display filter and sort, the Trace Precedents panel, and context menus for cells, rows, columns and sheet tabs;
17
+ - column widths and row heights by mouse (cells whose display changes with a new width are redrawn from `layout`'s changes), with AutoFit on a double click.
18
+ - List mode: the host's list on the sheet, with column titles the host sorts by (`sort`), drill-down cells (`cellDrill`), rows opened from the first column (`openRows`, `rowOpen`) and a totals row pinned to the bottom.
19
+ - `SheetToolbar` and `FormatDialog`: Excel's formatting toolbar, with Merge & Center and its dropdown (Merge Across, Merge Cells, Unmerge Cells) and Excel's warning before values are lost, and Excel's Format Cells dialog.
20
+ - `SheetView`'s `hostLinks` and `SheetToolbar`'s `hostDialog`: a host whose listener the component cannot see, such as a custom element's, still opens links (`openLink`) and its own Format Cells dialog (`formatCells`).
21
+ - The dialogs share one modal container: Esc and a click outside close Format Cells, Insert Function and the context menu's dialogs, and Tab stays inside every dialog. The primary buttons (Apply, OK) use the accent color and darken on hover. Inputs on touch screens have 16 px text, so iOS does not zoom into them.
22
+ - CSS variables `--xs-on-accent`, `--xs-shadow-pop`, `--xs-shadow-menu`, `--xs-shadow-modal`, `--xs-backdrop`, `--xs-z-menu`, `--xs-z-modal` and `--xs-z-alert`; `--xs-outline-bg` and `--xs-outline-button-bg` default to `--xs-bar-bg` and `--xs-bg`, and `--xs-font-size` applies to the formula bar, the menus and the filter funnel's list. Breaking for a host built on the internal builds: `SheetMessages.validationRetry` is removed (the alert's Retry uses `retry`), `--xs-fl-on-fg` is removed (use `--xs-on-accent`), and the classes `.xs-fmt-main`, `.xs-va-main`, `.xs-tb-swatch`, `.xs-fmt-swatch`, `.xs-dialog-back`, `.xs-ifn-back` and `.xs-va-back` are replaced by `.xs-button-main`, `.xs-swatch` and `.xs-modal-back`.
23
+ - The `SheetSource` contract (`src/contract/source.ts`): every feature beyond reading sheets and windows is an optional method, so a server-side source and an in-page source each provide what they support. An `invalid` outcome may carry `correction`, the formula Excel suggests for a typo. `functionSignature(name)` returns a function's arguments for Excel's argument tooltip while a formula is typed, and its description for Insert Function (`SheetFunctionSignature`). Fields the sheet never read were removed before the release (breaking for a host built on the internal builds): `visibleRows` returns `{ rows }`, a rejection carries no `cells` and no `busy` reason, Find's hits are `{ row, col }`, and `SheetWindow.bars` and `MemoryCell.bar` are replaced by `appearance`.
24
+ - `memorySource`: a source over an in-memory workbook, for examples and tests. Its display filter follows `./local`'s rules, its Find and Replace match as xlcalc's do (`findMatcher`, `findReplacer`), its outline groups come from xlcalc's `outlineGroups` and its outline commands from xlcalc's `outlineEdit`, with the same commands and rejections as `./local`, and its widths, heights and outline levels also accept an entire column or row as `C:C` or `5:5`.
25
+ - `@xlcalc/vue/local`: `localSource`, a source over an xlcalc workbook calculated in a Web Worker or on the page's main thread, which performs the grid's operations as Excel does, plus `openXlsx` and `saveXlsx`. The display filter, its sort and the filter funnel read only the columns they need from the session, once; selection totals come from the session's `summarizeRanges` without transferring the cells, and under a display filter cover only its rows; a request's signal stops the session's reads; the sort and the funnel order mixed values as Excel's SORT does, with text in the workbook's locale (xlcalc's `valueComparator`; the ru-RU order is the en-US one, as Excel for Windows sorts); a style set by `format` repaints its ranges instead of reloading the sheet. It requires `xlcalc` 0.46.0 or later, an optional peer dependency.
26
+ - The public types in `src/contract/` by area (`source`, `view`, `memory`, `messages`), behind `src/contract.ts`; `MemoryOutline`, the type of `MemorySheet.outline`, is exported.
27
+ - `docs/`: a quick start with the common uses, each a component that works as written (`docs/quick-start.md`), the API reference (`docs/api.md`) and a page for each feature.
28
+ - Interface texts in English by default and in Russian (`ruMessages`). The English texts use Excel's command names (Font Color, All Borders, Wrap Text) and the term workbook. Breaking for a host built on the internal builds that overrides them: the `SheetMessages` keys `fontColour`, `fillColour`, `pickColour`, `colourAuto`, `fmtColour`, `fmtColourCode` and `fmtColourBad` are renamed to `fontColor`, `fillColor`, `pickColor`, `colorAuto`, `fmtColor`, `fmtColorCode` and `fmtColorBad`.
29
+ - `example/spa.html`: an Excel-like app over `./local` that runs entirely in the browser, without a server.
30
+ - Without the window's `editText`, a cell opens for editing with xlcalc's `entryText` (`xlcalc/entry`) in the workbook's locale according to its code in `numberFormats`, as Excel's formula bar displays it; the module is a separate chunk, loaded when the first cell needs it, and until then the editor opens with the displayed text. `MemoryCell.numberFormat` sets the format codes of `memorySource`'s cells. Breaking for a host without `editText`: a number opens as General without `numberFormats`, and the apostrophe depends only on the workbook's locale.
31
+ - The Column Width box counts characters as Excel for Mac's does (`columnWidthToChars`, `columnWidthFromChars` of `xlcalc/text`): the default column is 8, and entering 8 restores it. A row height goes up to 409.5 points, both by dragging the row's edge and in the Row Height box.
32
+ - Formula AutoComplete finds the typed name with `nameAt` of `xlcalc/text`, after the workbook's list separator only (`,` in en-US, `;` in ru-RU).
33
+ - The grid renders by rows: a typed character, a move of the active cell or of the selection, a scroll and a cell change redraw only the rows they affect (5 to 9 ms in Chromium on a desktop, down from 15 to 25); repaints from one task go to the source as a single request, and a burst of source events requests the active cell's validation once.
34
+ - Ctrl+A, Ctrl+F and Ctrl+H work by the key's position on any keyboard layout, as the other shortcuts do; AltGr (Ctrl+Alt) types its character instead, so Ctrl+Alt+A no longer selects all.
35
+ - A horizontal scroll creates and patches only the columns it brings into view, and a cell is clipped once, at its content box: scrolling by two columns takes 17 ms in Chromium (down from 22), by four rows 8 ms (down from 11), and a typed character 4.8 ms (down from 5.5).
36
+ - A format change that the source repaints is not read a second time; after a structure change, the requested sheet is found by name case-insensitively, as Excel compares sheet names; a double click on the fill handle stops when another sheet is displayed instead of filling it.
37
+ - Built against xlcalc 0.54.2, whose English messages are rewritten in plain English (xlcalc 0.53.0). The outline commands of `memorySource` reject with the new texts, since the main entry point bundles `xlcalc/a1`: an Ungroup of rows in no group says `the rows 3:6 are not in a group`, a group's button says `the detail of row 8 is already shown`. `@xlcalc/vue/local` returns the texts of the `xlcalc` the host installs, the new ones from 0.53.0. A host that matches these texts rather than their meaning needs the new ones.
38
+ - The context menu's dialogs are labeled by their titles for screen readers. Nothing of a sheet outlives it: a search waiting for its pause, the filter's row list, an explain response, a long press, and the reads of the fill handle and the merge warning stop when the sheet is unmounted.
39
+ - The type declarations name each imported file with `.js` and import no stylesheet, so both entry points' types resolve with `moduleResolution` `bundler`, `node16` and `nodenext`, with `skipLibCheck` off.
40
+ - A new `source`, or the sheet's unmount, ends the previous workbook: its sheets, edit outcomes, corrections and rejections answered later are ignored, its alert closes, and its pending cells are no longer marked, so nothing of it is written or displayed in the new workbook. Of two reloads of one workbook answered in reverse order, the newer list of sheets stays.
41
+ - A refusal may carry `code`, the source's code for its reason: `memorySource` and `./local` give xlcalc's codes of the outline commands (`outline_deep`, `not_grouped`, `detail`), and `./local` those of the structure operations, so a host can react to a refusal without matching its text.
42
+ - At runtime the main entry point depends only on `vue` and does not include the engine. Its test keeps it under 400,000 characters (389,000 now); the engine would add hundreds of thousands.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mikhail Kostryukov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,76 @@
1
- # Temporary Holding Version
1
+ # @xlcalc/vue
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A Vue 3 spreadsheet component for [xlcalc](https://github.com/drakosha/xlcalc) workbooks: Excel in the browser, with the workbook's styles, formulas, editing, context menus, Find and Replace, data validation and outline. Wherever the component could behave differently from Excel, it follows Excel's behavior as measured by xlcalc.
4
+
5
+ The component accesses its data only through a `SheetSource`. Two sources are included: `memorySource`, an in-memory workbook for examples and tests, and `localSource` from `@xlcalc/vue/local`, which calculates an xlcalc workbook in a Web Worker and reads and writes xlsx files. A server-side source implements the same interface. MIT license.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install @xlcalc/vue vue
11
+ npm install xlcalc # for @xlcalc/vue/local, 0.46.0 or later
12
+ ```
13
+
14
+ At runtime the main entry point depends only on `vue` and does not include the calculation engine. Its types use `xlcalc/contract`, so a TypeScript project that uses only the main entry point installs `xlcalc` as a dev dependency: `npm install -D xlcalc`.
15
+
16
+ ## Quick start
17
+
18
+ ```vue
19
+ <script setup lang="ts">
20
+ import { SheetView, memorySource } from '@xlcalc/vue'
21
+ import '@xlcalc/vue/style.css'
22
+
23
+ const source = memorySource({ sheets: [{ name: 'Sheet1', cells: { A1: 'Hello', B1: 42 } }] })
24
+ </script>
25
+
26
+ <template>
27
+ <SheetView :source="source" style="height: 480px" />
28
+ </template>
29
+ ```
30
+
31
+ A workbook from an xlsx file, calculated in the browser:
32
+
33
+ ```ts
34
+ import { localSource, openXlsx, saveXlsx } from '@xlcalc/vue/local'
35
+
36
+ const { book, cached } = await openXlsx(file, { locale: 'ru-RU' }) // a File from a file input or a drop
37
+ const source = localSource(book, { session: { cached } }) // <SheetView :source="source" :locale="source.locale" />
38
+ const { data } = await saveXlsx(source) // the xlsx bytes: formulas along with their values
39
+ ```
40
+
41
+ Excel's formatting toolbar (`SheetToolbar`) and Format Cells dialog (`FormatDialog`) work with the same source; see [toolbar.md](docs/toolbar.md).
42
+
43
+ Apart from the two required methods that read sheets and cells, every feature is an optional method of the source: without `edit` the sheet is read-only, without `find` there is no search, and so on. The interface is in English by default and in Russian with `ruMessages`. Colors and sizes are set by `--xs-*` CSS variables.
44
+
45
+ More of these, from a table the page already has to a workbook on your server, are in the [quick start](docs/quick-start.md).
46
+
47
+ ## Documentation
48
+
49
+ - [Quick start](docs/quick-start.md): common uses, each with a component that works as written.
50
+ - [API reference](docs/api.md): components, the sheet's methods, the `SheetSource` contract, `memorySource`, `@xlcalc/vue/local`, CSS variables.
51
+ - [Cell editing and keyboard shortcuts](docs/editing.md): Excel's keyboard shortcuts, Point mode, and the features each optional source method enables.
52
+ - [Rows, columns and sheets](docs/sheets.md): row, column and sheet tab context menus, sizes, outline.
53
+ - [Clipboard and fill handle](docs/clipboard.md)
54
+ - [Freeze Panes, Reapply and Trace Precedents](docs/view.md)
55
+ - [Find and Replace](docs/find-replace.md)
56
+ - [Data validation](docs/validation.md)
57
+ - [Formula AutoComplete](docs/autocomplete.md)
58
+ - [The formatting toolbar and Format Cells](docs/toolbar.md)
59
+ - [In-browser calculation](docs/local.md): how `@xlcalc/vue/local` works, xlsx files.
60
+ - [List mode](docs/list-mode.md): the host's list (a view or a report) displayed on the sheet, sorted by the host, with drill-down and a totals row.
61
+ - [Example app](docs/example-app.md) and [browser tests](docs/checks.md)
62
+
63
+ ## Development
64
+
65
+ ```sh
66
+ npm install
67
+ npm test # unit tests
68
+ npm run typecheck
69
+ npm run build # dist/
70
+ npm run check:package # publint and attw over the packed package
71
+ npm run dev:example # the example app at http://localhost:5181/spa.html
72
+ ```
73
+
74
+ ## License
75
+
76
+ MIT
@@ -0,0 +1,6 @@
1
+ /** The error of a request stopped by its signal: a DOMException named AbortError. */
2
+ export declare const abortError: () => DOMException;
3
+ /** Whether an error is that of a stopped request, which the sheet discards without a message. */
4
+ export declare const isAbort: (e: unknown) => boolean;
5
+ /** Throws the abort error once the signal is aborted. */
6
+ export declare function throwIfAborted(signal?: AbortSignal): void;
@@ -0,0 +1,7 @@
1
+ /** `fill`: the cell's width when its alignment repeats the text across it (Excel's Fill). */
2
+ type __VLS_Props = {
3
+ fill?: number;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ /** The color shown pressed, `#RRGGBB`; null for none. */
3
+ modelValue: string | null;
4
+ /** A label for the group; none where the surrounding menu labels it. */
5
+ label?: string;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "update:modelValue": (colour: string) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ "onUpdate:modelValue"?: ((colour: string) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,37 @@
1
+ type __VLS_Props = {
2
+ /** The box's element: a form where Enter submits. */
3
+ as?: 'div' | 'form';
4
+ role?: 'dialog' | 'alertdialog';
5
+ /** A click on the backdrop closes the box; Excel's alerts stay open. */
6
+ outside?: boolean;
7
+ /** Full screen on a phone (the sheet's .xs-narrow), as Excel's larger dialogs are. */
8
+ full?: boolean;
9
+ /** An extra class for the backdrop: the Format Cells dialog's carries the sheet's variables outside a sheet. */
10
+ backClass?: string;
11
+ /** Where focus goes on opening: a selector inside the box (an input gets its text selected); the box itself without one. */
12
+ focus?: string;
13
+ };
14
+ declare var __VLS_9: {};
15
+ type __VLS_Slots = {} & {
16
+ default?: (props: typeof __VLS_9) => any;
17
+ };
18
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ close: () => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onClose?: (() => any) | undefined;
22
+ }>, {
23
+ outside: boolean;
24
+ focus: string;
25
+ role: "dialog" | "alertdialog";
26
+ as: "div" | "form";
27
+ full: boolean;
28
+ backClass: string;
29
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_WithSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { type FormatDraft, type FormatStart } from '../format-cells.js';
2
+ import type { SheetMessages } from '../contract/messages.js';
3
+ type __VLS_Props = {
4
+ start: FormatStart;
5
+ draft: FormatDraft;
6
+ messages: SheetMessages;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ invalid: (bad: boolean) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onInvalid?: ((bad: boolean) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { SheetMessages } from '../contract/messages.js';
2
+ type __VLS_Props = {
3
+ /** `#RRGGBB`, or null for the no-color choice. */
4
+ modelValue: string | null;
5
+ /** The no-color choice: Automatic for text and lines, No Color for a fill. */
6
+ noneLabel: string;
7
+ messages: SheetMessages;
8
+ /** Names the picker's buttons for tests and checks (`data-fmt-colour-of`). */
9
+ name: string;
10
+ };
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ invalid: (bad: boolean) => any;
13
+ "update:modelValue": (colour: string | null) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onInvalid?: ((bad: boolean) => any) | undefined;
16
+ "onUpdate:modelValue"?: ((colour: string | null) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import type { SheetFormatPatch, SheetViewState } from '../contract/view.js';
2
+ import type { SheetMessages } from '../contract/messages.js';
3
+ type __VLS_Props = {
4
+ /** Shown while true; each time it opens, it starts from the active cell's formatting. */
5
+ open: boolean;
6
+ /** The payload of the sheet's `state` event: the selection and the active cell's formatting; with null nothing is shown. */
7
+ state: SheetViewState | null;
8
+ /** Interface texts; a partial set overrides the English defaults. */
9
+ messages?: Partial<SheetMessages>;
10
+ /** The workbook's locale (as for `SheetView`), in which the Number tab names its categories and items; en-US without one. */
11
+ locale?: string;
12
+ };
13
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ close: () => any;
15
+ apply: (patches: SheetFormatPatch[]) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onClose?: (() => any) | undefined;
18
+ onApply?: ((patches: SheetFormatPatch[]) => any) | undefined;
19
+ }>, {
20
+ locale: string;
21
+ messages: Partial<SheetMessages>;
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import type { SheetMessages } from '../contract/messages.js';
2
+ import { type PopupRect } from './popup.js';
3
+ type __VLS_Props = {
4
+ /** The editor, in the coordinates of the element the list is placed in. */
5
+ rect: PopupRect;
6
+ items: readonly string[];
7
+ /** The highlighted item. */
8
+ active?: number;
9
+ /** The part in view, in the same coordinates: the list goes above the editor where it has no room below and stays inside horizontally. */
10
+ view?: PopupRect;
11
+ /** Touch input: 44 px items, and a tap inserts one. */
12
+ touch?: boolean;
13
+ messages?: Partial<SheetMessages>;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ pick: (index: number) => any;
17
+ highlight: (index: number) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ onPick?: ((index: number) => any) | undefined;
20
+ onHighlight?: ((index: number) => any) | undefined;
21
+ }>, {
22
+ view: PopupRect;
23
+ touch: boolean;
24
+ messages: Partial<SheetMessages>;
25
+ active: number;
26
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { TipPart } from '../core/function-tip.js';
2
+ import { type PopupRect } from './popup.js';
3
+ type __VLS_Props = {
4
+ /** The editor, in the coordinates of the element the tooltip is placed in. */
5
+ rect: PopupRect;
6
+ parts: readonly TipPart[];
7
+ /** The part in view, in the same coordinates: the tooltip stays inside it. */
8
+ view?: PopupRect;
9
+ };
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ view: PopupRect;
12
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,9 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
2
+ close: () => any;
3
+ pick: (name: string) => any;
4
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
5
+ onClose?: (() => any) | undefined;
6
+ onPick?: ((name: string) => any) | undefined;
7
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { OutlineAxis } from '../core/outline.js';
2
+ type __VLS_Props = {
3
+ axis: OutlineAxis;
4
+ line: number;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { OutlineAxis } from '../core/outline.js';
2
+ type __VLS_Props = {
3
+ axis: OutlineAxis;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ /** The display row and the sheet row. */
3
+ d: number;
4
+ r: number;
5
+ frozen: boolean;
6
+ /** Drawn columns, a spacer's with c = 0. */
7
+ cols: readonly {
8
+ key: string;
9
+ c: number;
10
+ }[];
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ pick: (row: number, extend: boolean) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onPick?: ((row: number, extend: boolean) => any) | undefined;
16
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,43 @@
1
+ import type { SheetViewApi, SheetViewState, ToolbarSource } from '../contract/view.js';
2
+ import type { SheetMessages } from '../contract/messages.js';
3
+ type __VLS_Props = {
4
+ source: ToolbarSource;
5
+ /** The payload of the sheet's `state` event: the selection and the active cell's formatting; with null the buttons are disabled. */
6
+ state: SheetViewState | null;
7
+ /** Interface texts; a partial set overrides the English defaults. */
8
+ messages?: Partial<SheetMessages>;
9
+ /** The workbook's locale (as for `SheetView`), in which the Number Format box names its categories and items; en-US without one. */
10
+ locale?: string;
11
+ /**
12
+ * The sheet (a `SheetView`'s template ref) to format, undo and redo through, as its keyboard commands do: it applies the
13
+ * outcome, sets the selection and displays a rejection itself. Without it the toolbar calls the source and emits `select`
14
+ * and `error`.
15
+ */
16
+ sheet?: SheetViewApi | null;
17
+ /** The host opens its own dialog on `formatCells`: for a host whose listener the toolbar cannot see, such as a custom element's. */
18
+ hostDialog?: boolean;
19
+ };
20
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
+ select: (place: {
22
+ sheet: string;
23
+ range: string;
24
+ }) => any;
25
+ formatCells: () => any;
26
+ error: (message: string) => any;
27
+ done: () => any;
28
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
29
+ onSelect?: ((place: {
30
+ sheet: string;
31
+ range: string;
32
+ }) => any) | undefined;
33
+ onFormatCells?: (() => any) | undefined;
34
+ onError?: ((message: string) => any) | undefined;
35
+ onDone?: (() => any) | undefined;
36
+ }>, {
37
+ sheet: SheetViewApi | null;
38
+ locale: string;
39
+ messages: Partial<SheetMessages>;
40
+ hostDialog: boolean;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: typeof __VLS_export;
43
+ export default _default;
@@ -0,0 +1,56 @@
1
+ import type { ListSort, SheetFailure, SheetLinkEvent, SheetViewApi, SheetViewProps, SheetViewState } from '../contract/view.js';
2
+ type __VLS_Slots = {
3
+ /** The workbook cannot be displayed: the source's error and a retry function. */
4
+ fallback?: (scope: {
5
+ failure: SheetFailure;
6
+ retry: () => void;
7
+ }) => unknown;
8
+ };
9
+ declare const __VLS_base: import("vue").DefineComponent<SheetViewProps, SheetViewApi, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ sort: (sort: ListSort) => any;
11
+ state: (state: SheetViewState | null) => any;
12
+ openLink: (link: SheetLinkEvent) => any;
13
+ cellDrill: (cell: {
14
+ sheet: string;
15
+ cell: string;
16
+ }) => any;
17
+ rowOpen: (row: {
18
+ sheet: string;
19
+ row: number;
20
+ }) => any;
21
+ }, string, import("vue").PublicProps, Readonly<SheetViewProps> & Readonly<{
22
+ onSort?: ((sort: ListSort) => any) | undefined;
23
+ onState?: ((state: SheetViewState | null) => any) | undefined;
24
+ onOpenLink?: ((link: SheetLinkEvent) => any) | undefined;
25
+ onCellDrill?: ((cell: {
26
+ sheet: string;
27
+ cell: string;
28
+ }) => any) | undefined;
29
+ onRowOpen?: ((row: {
30
+ sheet: string;
31
+ row: number;
32
+ }) => any) | undefined;
33
+ }>, {
34
+ sort: ListSort | null;
35
+ readOnly: boolean;
36
+ locale: string;
37
+ focus: {
38
+ ref: string;
39
+ } | null;
40
+ messages: Partial<import("../contract.js").SheetMessages>;
41
+ storageKey: string;
42
+ cellUrl: (ref: string) => string;
43
+ formulaBar: boolean;
44
+ hideLoneTab: boolean;
45
+ edgeRestoresWidth: boolean;
46
+ openRows: boolean;
47
+ hostLinks: boolean;
48
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
49
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
52
+ type __VLS_WithSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -0,0 +1,16 @@
1
+ import { type AlertAnswer, type SheetAlert } from '../core/validation.js';
2
+ import type { SheetMessages } from '../contract/messages.js';
3
+ type __VLS_Props = {
4
+ /** The alert to show; null shows nothing. */
5
+ alert: SheetAlert | null;
6
+ messages?: Partial<SheetMessages>;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ answer: (answer: AlertAnswer) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onAnswer?: ((answer: AlertAnswer) => any) | undefined;
12
+ }>, {
13
+ messages: Partial<SheetMessages>;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,33 @@
1
+ import type { SheetMessages } from '../contract/messages.js';
2
+ import { type PopupRect } from './popup.js';
3
+ type __VLS_Props = {
4
+ /** The active cell (an entire merged range). */
5
+ rect: PopupRect;
6
+ items: string[];
7
+ open: boolean;
8
+ /** The highlighted item; -1 for none. */
9
+ active?: number;
10
+ /** The part of the grid in view, in the same coordinates: the list goes above the cell where it has no room below. */
11
+ view?: PopupRect;
12
+ /** Touch input: the arrow and the items are 44 px. */
13
+ touch?: boolean;
14
+ messages?: Partial<SheetMessages>;
15
+ };
16
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ close: () => any;
18
+ pick: (index: number) => any;
19
+ toggle: () => any;
20
+ hover: (index: number) => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ onClose?: (() => any) | undefined;
23
+ onPick?: ((index: number) => any) | undefined;
24
+ onToggle?: (() => any) | undefined;
25
+ onHover?: ((index: number) => any) | undefined;
26
+ }>, {
27
+ view: PopupRect;
28
+ touch: boolean;
29
+ messages: Partial<SheetMessages>;
30
+ active: number;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { type PopupRect } from './popup.js';
2
+ type __VLS_Props = {
3
+ /** The active cell (an entire merged range), in the coordinates of the element the component is placed in. */
4
+ rect: PopupRect;
5
+ prompt: {
6
+ title?: string;
7
+ text: string;
8
+ };
9
+ /** The part of the grid in view, in the same coordinates. */
10
+ view?: PopupRect;
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ view: PopupRect;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { type FunctionalComponent } from 'vue';
2
+ import type { Icon } from 'xlcalc/contract';
3
+ /** A conditional format's icon; nothing for a number the set does not have. */
4
+ export declare const CfIcon: FunctionalComponent<{
5
+ icon: Icon;
6
+ }>;
@@ -0,0 +1,4 @@
1
+ import { type InjectionKey } from 'vue';
2
+ import type { SheetContext } from '../core/sheet.js';
3
+ export declare const sheetContextKey: InjectionKey<SheetContext>;
4
+ export declare function useSheetContext(): SheetContext;
@@ -0,0 +1,7 @@
1
+ import type { ComponentInternalInstance, Ref } from 'vue';
2
+ /** A function ref that keeps the element in `target`, null once it is removed. */
3
+ export declare const refInto: <T extends Element>(target: Ref<T | null>) => (el: unknown) => void;
4
+ /** The value of the input or list an `input` or `change` event came from. */
5
+ export declare const fieldValue: (e: Event) => string;
6
+ /** Whether the host currently listens to an event of the component (`handler` as on its vnode: `onOpenLink`). */
7
+ export declare function hasListener(instance: ComponentInternalInstance | null, handler: string): boolean;