ooxml-ui 0.5.0 → 0.6.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 +1 -0
- package/dist/{chunk-7NLQECYW.js → chunk-RT6XKAM4.js} +205 -11
- package/dist/command-search.d.ts +16 -0
- package/dist/controls.d.ts +4 -2
- package/dist/controls.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,6 +72,7 @@ with an incompatible build of this package.
|
|
|
72
72
|
| `office-ui-zoom-slider` | `value` (percent), `min`, `max`, `step`, `disabled`, `fit` (fit button name), `label` | `input`, `change`; fit: `office-command` `{ command: 'zoom-fit' }` |
|
|
73
73
|
| `office-ui-tab-strip` | `tabs` `[{ id, label, title? }]`, `selected`, `label`, `previous-label`, `next-label`, `add-label`, `add-disabled`, `add-title`, `disabled` | `office-tab-select` `{ id }` (cancelable); add: `office-command` `{ command: 'tab-add' }` |
|
|
74
74
|
| `office-ui-context-menu` / `office-ui-menu-separator` | `label`; `openAt(x, y)`, `close()`, `open`; `office-ui-menu-item` and separator children | item choice: `office-command` `{ command }` |
|
|
75
|
+
| `office-ui-command-search` | `commands` `[{ id, label, keywords?, disabled?, title? }]`, `placeholder`, `label`, `limit` (Office's "Tell me what you want to do") | choice: `office-command` `{ command }` |
|
|
75
76
|
| `office-ui-presence` | `participants`, `max`, `label` | `office-presence-select` `{ id }` |
|
|
76
77
|
| `office-ui-smartart` | `drawing` (core `DiagramDrawing`), `schemeColors`, `label` | `office-smartart-render` (render report) |
|
|
77
78
|
| `office-ui-icon` | `name`, `label` | none |
|
|
@@ -353,8 +353,201 @@ var defineDialog = definer("office-ui-dialog", () => {
|
|
|
353
353
|
return OfficeUiDialog;
|
|
354
354
|
});
|
|
355
355
|
|
|
356
|
-
// src/
|
|
356
|
+
// src/command-search.ts
|
|
357
357
|
var CSS3 = `
|
|
358
|
+
:host { display: inline-flex; align-items: center; min-width: 0; font-family: var(--office-font, system-ui, sans-serif); }
|
|
359
|
+
.field { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; height: var(--office-target-size, 28px);
|
|
360
|
+
padding: 0 8px; box-sizing: border-box; border: 1px solid transparent; border-radius: var(--office-radius, 4px);
|
|
361
|
+
color: var(--office-muted-foreground, #6b7280); }
|
|
362
|
+
.field:hover, .field:focus-within { border-color: var(--office-border, #d1d5db); background: var(--office-background, #fff); }
|
|
363
|
+
input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--office-foreground, #1f2937);
|
|
364
|
+
font: inherit; font-size: 13px; }
|
|
365
|
+
svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5;
|
|
366
|
+
stroke-linecap: round; stroke-linejoin: round; }
|
|
367
|
+
ul { position: fixed; inset: auto; margin: 0; padding: 4px; min-width: 240px; max-height: 320px; overflow: auto;
|
|
368
|
+
box-sizing: border-box; list-style: none; background: var(--office-background, #fff); color: var(--office-foreground, #1f2937);
|
|
369
|
+
border: 1px solid var(--office-border, #d1d5db); border-radius: var(--office-radius, 4px);
|
|
370
|
+
box-shadow: 0 8px 24px rgb(0 0 0 / 18%); font-size: 12px; }
|
|
371
|
+
ul[hidden] { display: none; }
|
|
372
|
+
li { display: flex; flex-direction: column; justify-content: center; min-height: var(--office-target-size, 28px);
|
|
373
|
+
padding: 2px 10px; border-radius: 3px; cursor: pointer; }
|
|
374
|
+
li[data-active] { background: var(--office-surface, #f3f4f6); }
|
|
375
|
+
li[aria-disabled="true"] { cursor: not-allowed; color: var(--office-muted-foreground, #6b7280); }
|
|
376
|
+
li small { color: var(--office-muted-foreground, #6b7280); font-size: 11px; }
|
|
377
|
+
li.empty { cursor: default; color: var(--office-muted-foreground, #6b7280); }
|
|
378
|
+
@media (forced-colors: active) {
|
|
379
|
+
.field, ul { border-color: CanvasText; background: Canvas; color: CanvasText; }
|
|
380
|
+
li[data-active] { background: Highlight; color: HighlightText; }
|
|
381
|
+
}
|
|
382
|
+
`;
|
|
383
|
+
var uid = 0;
|
|
384
|
+
var defineCommandSearch = definer("office-ui-command-search", () => {
|
|
385
|
+
class OfficeUiCommandSearch extends HTMLElement {
|
|
386
|
+
static observedAttributes = ["placeholder", "label"];
|
|
387
|
+
items = [];
|
|
388
|
+
found = [];
|
|
389
|
+
active = -1;
|
|
390
|
+
input;
|
|
391
|
+
list;
|
|
392
|
+
uid = `office-command-search-${++uid}`;
|
|
393
|
+
constructor() {
|
|
394
|
+
super();
|
|
395
|
+
const doc = this.ownerDocument;
|
|
396
|
+
const root = this.attachShadow({ mode: "open", delegatesFocus: true });
|
|
397
|
+
attachStyles(root, controlCss(CSS3));
|
|
398
|
+
const field = doc.createElement("div");
|
|
399
|
+
field.className = "field";
|
|
400
|
+
const glass = createIconSvg(doc);
|
|
401
|
+
paintIcon(glass, "search");
|
|
402
|
+
glass.setAttribute("data-painted", "");
|
|
403
|
+
this.input = doc.createElement("input");
|
|
404
|
+
this.input.type = "search";
|
|
405
|
+
this.input.autocomplete = "off";
|
|
406
|
+
this.input.spellcheck = false;
|
|
407
|
+
this.input.setAttribute("role", "combobox");
|
|
408
|
+
this.input.setAttribute("aria-autocomplete", "list");
|
|
409
|
+
this.input.setAttribute("aria-expanded", "false");
|
|
410
|
+
this.input.setAttribute("aria-controls", `${this.uid}-list`);
|
|
411
|
+
this.list = doc.createElement("ul");
|
|
412
|
+
this.list.id = `${this.uid}-list`;
|
|
413
|
+
this.list.setAttribute("role", "listbox");
|
|
414
|
+
if (typeof this.list.showPopover === "function")
|
|
415
|
+
this.list.setAttribute("popover", "manual");
|
|
416
|
+
else this.list.hidden = true;
|
|
417
|
+
field.append(glass, this.input);
|
|
418
|
+
root.append(field, this.list);
|
|
419
|
+
this.input.addEventListener("input", () => this.update());
|
|
420
|
+
this.input.addEventListener("keydown", (event) => this.onKey(event));
|
|
421
|
+
this.input.addEventListener("blur", () => this.hide());
|
|
422
|
+
this.list.addEventListener("pointerdown", (event) => event.preventDefault());
|
|
423
|
+
this.list.addEventListener("click", (event) => {
|
|
424
|
+
const item = event.target.closest("li[data-index]");
|
|
425
|
+
if (item) this.choose(Number(item.dataset.index));
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
connectedCallback() {
|
|
429
|
+
this.sync();
|
|
430
|
+
}
|
|
431
|
+
disconnectedCallback() {
|
|
432
|
+
this.hide();
|
|
433
|
+
}
|
|
434
|
+
attributeChangedCallback() {
|
|
435
|
+
this.sync();
|
|
436
|
+
}
|
|
437
|
+
get commands() {
|
|
438
|
+
return this.items.map((item) => ({ ...item }));
|
|
439
|
+
}
|
|
440
|
+
set commands(value) {
|
|
441
|
+
this.items = (Array.isArray(value) ? value : []).filter((item) => item && typeof item.id === "string").map((item) => ({ ...item, label: String(item.label ?? "") }));
|
|
442
|
+
if (this.isOpen) this.update();
|
|
443
|
+
}
|
|
444
|
+
get isOpen() {
|
|
445
|
+
return this.input.getAttribute("aria-expanded") === "true";
|
|
446
|
+
}
|
|
447
|
+
sync() {
|
|
448
|
+
this.input.placeholder = this.getAttribute("placeholder") ?? "Tell me what you want to do";
|
|
449
|
+
this.input.setAttribute("aria-label", this.getAttribute("label") ?? this.input.placeholder);
|
|
450
|
+
}
|
|
451
|
+
update() {
|
|
452
|
+
const query = this.input.value.trim().toLowerCase();
|
|
453
|
+
if (!query) return this.hide();
|
|
454
|
+
const limit = Math.max(1, Number(this.getAttribute("limit")) || 8);
|
|
455
|
+
this.found = this.items.filter((item) => `${item.label} ${item.keywords ?? ""}`.toLowerCase().includes(query)).slice(0, limit);
|
|
456
|
+
this.active = this.found.findIndex((item) => !item.disabled);
|
|
457
|
+
this.render();
|
|
458
|
+
this.show();
|
|
459
|
+
}
|
|
460
|
+
render() {
|
|
461
|
+
const doc = this.ownerDocument;
|
|
462
|
+
if (!this.found.length) {
|
|
463
|
+
const empty = doc.createElement("li");
|
|
464
|
+
empty.className = "empty";
|
|
465
|
+
empty.setAttribute("role", "option");
|
|
466
|
+
empty.setAttribute("aria-disabled", "true");
|
|
467
|
+
empty.textContent = "No matching commands";
|
|
468
|
+
this.list.replaceChildren(empty);
|
|
469
|
+
this.input.removeAttribute("aria-activedescendant");
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
this.list.replaceChildren(
|
|
473
|
+
...this.found.map((item, index) => {
|
|
474
|
+
const option = doc.createElement("li");
|
|
475
|
+
option.id = `${this.uid}-${index}`;
|
|
476
|
+
option.dataset.index = String(index);
|
|
477
|
+
option.setAttribute("role", "option");
|
|
478
|
+
option.setAttribute("aria-selected", String(index === this.active));
|
|
479
|
+
if (index === this.active) option.setAttribute("data-active", "");
|
|
480
|
+
const label = doc.createElement("span");
|
|
481
|
+
label.textContent = item.label;
|
|
482
|
+
option.append(label);
|
|
483
|
+
if (item.disabled) {
|
|
484
|
+
option.setAttribute("aria-disabled", "true");
|
|
485
|
+
const reason = doc.createElement("small");
|
|
486
|
+
reason.textContent = item.title ?? "Not available";
|
|
487
|
+
option.append(reason);
|
|
488
|
+
}
|
|
489
|
+
return option;
|
|
490
|
+
})
|
|
491
|
+
);
|
|
492
|
+
if (this.active >= 0)
|
|
493
|
+
this.input.setAttribute("aria-activedescendant", `${this.uid}-${this.active}`);
|
|
494
|
+
else this.input.removeAttribute("aria-activedescendant");
|
|
495
|
+
}
|
|
496
|
+
show() {
|
|
497
|
+
const box = this.input.getBoundingClientRect();
|
|
498
|
+
this.list.style.left = `${Math.round(box.left)}px`;
|
|
499
|
+
this.list.style.top = `${Math.round(box.bottom + 4)}px`;
|
|
500
|
+
if (this.list.hasAttribute("popover")) {
|
|
501
|
+
if (!this.isOpen) this.list.showPopover?.();
|
|
502
|
+
} else this.list.hidden = false;
|
|
503
|
+
this.input.setAttribute("aria-expanded", "true");
|
|
504
|
+
}
|
|
505
|
+
hide() {
|
|
506
|
+
if (!this.isOpen) return;
|
|
507
|
+
if (this.list.hasAttribute("popover")) {
|
|
508
|
+
try {
|
|
509
|
+
this.list.hidePopover?.();
|
|
510
|
+
} catch {
|
|
511
|
+
}
|
|
512
|
+
} else this.list.hidden = true;
|
|
513
|
+
this.input.setAttribute("aria-expanded", "false");
|
|
514
|
+
this.input.removeAttribute("aria-activedescendant");
|
|
515
|
+
}
|
|
516
|
+
move(step) {
|
|
517
|
+
const enabled = this.found.map((item, index) => item.disabled ? -1 : index).filter((i) => i >= 0);
|
|
518
|
+
if (!enabled.length) return;
|
|
519
|
+
const at = enabled.indexOf(this.active);
|
|
520
|
+
this.active = enabled[(at + step + enabled.length) % enabled.length];
|
|
521
|
+
this.render();
|
|
522
|
+
}
|
|
523
|
+
choose(index) {
|
|
524
|
+
const item = this.found[index];
|
|
525
|
+
if (!item || item.disabled) return;
|
|
526
|
+
this.input.value = "";
|
|
527
|
+
this.hide();
|
|
528
|
+
emit(this, "office-command", { command: item.id });
|
|
529
|
+
}
|
|
530
|
+
onKey(event) {
|
|
531
|
+
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
532
|
+
event.preventDefault();
|
|
533
|
+
if (!this.isOpen) this.update();
|
|
534
|
+
else this.move(event.key === "ArrowDown" ? 1 : -1);
|
|
535
|
+
} else if (event.key === "Enter") {
|
|
536
|
+
event.preventDefault();
|
|
537
|
+
this.choose(this.active);
|
|
538
|
+
} else if (event.key === "Escape") {
|
|
539
|
+
event.preventDefault();
|
|
540
|
+
event.stopPropagation();
|
|
541
|
+
if (this.isOpen) this.hide();
|
|
542
|
+
else this.input.value = "";
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
return OfficeUiCommandSearch;
|
|
547
|
+
});
|
|
548
|
+
|
|
549
|
+
// src/context-menu.ts
|
|
550
|
+
var CSS4 = `
|
|
358
551
|
:host { display: contents; }
|
|
359
552
|
.panel { position: fixed; inset: auto; margin: 0; min-width: 200px; padding: 4px; box-sizing: border-box;
|
|
360
553
|
background: var(--office-background, #fff); color: var(--office-foreground, #1f2937);
|
|
@@ -390,7 +583,7 @@ var defineContextMenu = definer("office-ui-context-menu", () => {
|
|
|
390
583
|
super();
|
|
391
584
|
const doc = this.ownerDocument;
|
|
392
585
|
const root = this.attachShadow({ mode: "open" });
|
|
393
|
-
attachStyles(root, controlCss(
|
|
586
|
+
attachStyles(root, controlCss(CSS4));
|
|
394
587
|
this.panel = doc.createElement("div");
|
|
395
588
|
this.panel.className = "panel";
|
|
396
589
|
this.panel.setAttribute("role", "menu");
|
|
@@ -929,7 +1122,7 @@ var defineToolbar = definer("office-ui-toolbar", () => {
|
|
|
929
1122
|
});
|
|
930
1123
|
|
|
931
1124
|
// src/select.ts
|
|
932
|
-
var
|
|
1125
|
+
var CSS5 = `
|
|
933
1126
|
:host { display: inline-block; position: relative; vertical-align: middle; }
|
|
934
1127
|
button { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 8px;
|
|
935
1128
|
width: 100%; min-height: var(--office-target-size, 28px); padding: 0 8px; font: inherit; font-size: 12px;
|
|
@@ -951,7 +1144,7 @@ li[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
|
|
|
951
1144
|
li[data-active] { background: Highlight; color: HighlightText; }
|
|
952
1145
|
}
|
|
953
1146
|
`;
|
|
954
|
-
var
|
|
1147
|
+
var uid2 = 0;
|
|
955
1148
|
var defineSelect = definer("office-ui-select", () => {
|
|
956
1149
|
class OfficeUiSelect extends HTMLElement {
|
|
957
1150
|
static observedAttributes = ["value", "disabled", "aria-label"];
|
|
@@ -963,12 +1156,12 @@ var defineSelect = definer("office-ui-select", () => {
|
|
|
963
1156
|
trigger;
|
|
964
1157
|
list;
|
|
965
1158
|
label;
|
|
966
|
-
domId = `office-ui-select-${++
|
|
1159
|
+
domId = `office-ui-select-${++uid2}`;
|
|
967
1160
|
constructor() {
|
|
968
1161
|
super();
|
|
969
1162
|
const doc = this.ownerDocument;
|
|
970
1163
|
const root = this.attachShadow({ mode: "open", delegatesFocus: true });
|
|
971
|
-
attachStyles(root, controlCss(
|
|
1164
|
+
attachStyles(root, controlCss(CSS5));
|
|
972
1165
|
this.trigger = doc.createElement("button");
|
|
973
1166
|
this.trigger.type = "button";
|
|
974
1167
|
this.trigger.setAttribute("role", "combobox");
|
|
@@ -1219,7 +1412,7 @@ var defineStatusItem = definer("office-ui-status-item", () => {
|
|
|
1219
1412
|
});
|
|
1220
1413
|
|
|
1221
1414
|
// src/tab-strip.ts
|
|
1222
|
-
var
|
|
1415
|
+
var CSS6 = `
|
|
1223
1416
|
:host { display: flex; align-items: stretch; min-width: 0; min-height: 28px; gap: 2px; padding: 0 6px;
|
|
1224
1417
|
background: var(--office-surface, #f3f4f6); color: var(--office-muted-foreground, #6b7280);
|
|
1225
1418
|
border-top: 1px solid var(--office-border, #d1d5db); font-size: 12px;
|
|
@@ -1266,7 +1459,7 @@ var defineTabStrip = definer("office-ui-tab-strip", () => {
|
|
|
1266
1459
|
super();
|
|
1267
1460
|
const doc = this.ownerDocument;
|
|
1268
1461
|
const root = this.attachShadow({ mode: "open" });
|
|
1269
|
-
attachStyles(root, controlCss(
|
|
1462
|
+
attachStyles(root, controlCss(CSS6));
|
|
1270
1463
|
const step = (name, icon) => {
|
|
1271
1464
|
const button = doc.createElement("button");
|
|
1272
1465
|
button.type = "button";
|
|
@@ -1405,7 +1598,7 @@ var defineTabStrip = definer("office-ui-tab-strip", () => {
|
|
|
1405
1598
|
});
|
|
1406
1599
|
|
|
1407
1600
|
// src/zoom-slider.ts
|
|
1408
|
-
var
|
|
1601
|
+
var CSS7 = `
|
|
1409
1602
|
:host { display: inline-flex; align-items: center; gap: 2px; font-size: 11px;
|
|
1410
1603
|
color: var(--office-foreground, #1f2937); font-family: var(--office-font, system-ui, sans-serif); }
|
|
1411
1604
|
button { box-sizing: border-box; display: inline-grid; place-items: center; min-width: var(--office-target-size, 24px);
|
|
@@ -1441,7 +1634,7 @@ var defineZoomSlider = definer("office-ui-zoom-slider", () => {
|
|
|
1441
1634
|
super();
|
|
1442
1635
|
const doc = this.ownerDocument;
|
|
1443
1636
|
const root = this.attachShadow({ mode: "open" });
|
|
1444
|
-
attachStyles(root, controlCss(
|
|
1637
|
+
attachStyles(root, controlCss(CSS7));
|
|
1445
1638
|
const button = (name, text) => {
|
|
1446
1639
|
const element = doc.createElement("button");
|
|
1447
1640
|
element.type = "button";
|
|
@@ -1548,6 +1741,7 @@ var CONTROL_DEFINERS = [
|
|
|
1548
1741
|
defineMenuSeparator,
|
|
1549
1742
|
defineMenuButton,
|
|
1550
1743
|
defineContextMenu,
|
|
1744
|
+
defineCommandSearch,
|
|
1551
1745
|
defineToolbar,
|
|
1552
1746
|
defineDialog,
|
|
1553
1747
|
defineStatusBar,
|
|
@@ -1559,4 +1753,4 @@ function registerControls(registry) {
|
|
|
1559
1753
|
for (const define of CONTROL_DEFINERS) define(registry);
|
|
1560
1754
|
}
|
|
1561
1755
|
|
|
1562
|
-
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls };
|
|
1756
|
+
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** One searchable command: label and optional keywords; disabled commands show their reason. */
|
|
2
|
+
export interface OfficeSearchCommand {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
keywords?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Office's "Tell me what you want to do" box. Set `commands` (`OfficeSearchCommand[]`); typing
|
|
11
|
+
* lists up to `limit` (default 8) matches by label or keywords in a top-layer listbox.
|
|
12
|
+
* ArrowUp/Down move, Enter or click run an enabled match (`office-command` `{ command }`),
|
|
13
|
+
* Escape closes then clears. Disabled matches stay visible with their reason. Attributes:
|
|
14
|
+
* `placeholder`, `label` (accessible name), `limit`. Setting `commands` never emits.
|
|
15
|
+
*/
|
|
16
|
+
export declare const defineCommandSearch: import("./registry.js").Definer;
|
package/dist/controls.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { defineButton } from './button.js';
|
|
|
2
2
|
import { defineCheckbox, defineSwitch } from './checkable.js';
|
|
3
3
|
import { defineDialog } from './dialog.js';
|
|
4
4
|
import { defineIcon } from './icons.js';
|
|
5
|
+
import { defineCommandSearch } from './command-search.js';
|
|
5
6
|
import { defineContextMenu, defineMenuSeparator } from './context-menu.js';
|
|
6
7
|
import { defineMenuButton, defineMenuItem } from './menu.js';
|
|
7
8
|
import { defineRibbonGroup, defineRibbonStack, defineToolbar } from './ribbon.js';
|
|
@@ -9,13 +10,14 @@ import { defineSelect } from './select.js';
|
|
|
9
10
|
import { defineStatusBar, defineStatusItem } from './status-bar.js';
|
|
10
11
|
import { defineTabStrip } from './tab-strip.js';
|
|
11
12
|
import { defineZoomSlider } from './zoom-slider.js';
|
|
12
|
-
export { defineButton, defineCheckbox, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, };
|
|
13
|
+
export { defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, };
|
|
13
14
|
export type { OfficeCommandEvent } from './button.js';
|
|
14
15
|
export type { OfficeDialogCloseEvent, OfficeDialogCloseReason } from './dialog.js';
|
|
15
16
|
export type { OfficeSelectOption } from './select.js';
|
|
16
17
|
export type { OfficeStatusActivateEvent } from './status-bar.js';
|
|
17
18
|
export type { OfficeTab, OfficeTabSelectEvent } from './tab-strip.js';
|
|
19
|
+
export type { OfficeSearchCommand } from './command-search.js';
|
|
18
20
|
/** Every control of this entry. */
|
|
19
|
-
export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
|
|
21
|
+
export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
|
|
20
22
|
/** Idempotent, SSR-safe (no-op without a DOM). */
|
|
21
23
|
export declare function registerControls(registry?: CustomElementRegistry): void;
|
package/dist/controls.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls } from './chunk-
|
|
1
|
+
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls } from './chunk-RT6XKAM4.js';
|
|
2
2
|
export { defineIcon } from './chunk-PCSUQPMC.js';
|
|
3
3
|
import './chunk-EY266IK3.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export * from './smartart.js';
|
|
|
5
5
|
export * from './theme.js';
|
|
6
6
|
export { CONTRACT_REVISION, type Definer } from './registry.js';
|
|
7
7
|
/** Every ooxml-ui tag this package defines, in registration order. */
|
|
8
|
-
export declare const OFFICE_UI_TAGS: readonly ["office-ui-icon", "office-ui-button", "office-ui-checkbox", "office-ui-switch", "office-ui-select", "office-ui-ribbon-group", "office-ui-ribbon-stack", "office-ui-menu-item", "office-ui-menu-button", "office-ui-menu-separator", "office-ui-context-menu", "office-ui-toolbar", "office-ui-dialog", "office-ui-status-bar", "office-ui-status-item", "office-ui-zoom-slider", "office-ui-tab-strip", "office-ui-presence", "office-ui-smartart"];
|
|
8
|
+
export declare const OFFICE_UI_TAGS: readonly ["office-ui-icon", "office-ui-button", "office-ui-checkbox", "office-ui-switch", "office-ui-select", "office-ui-ribbon-group", "office-ui-ribbon-stack", "office-ui-menu-item", "office-ui-menu-button", "office-ui-menu-separator", "office-ui-context-menu", "office-ui-command-search", "office-ui-toolbar", "office-ui-dialog", "office-ui-status-bar", "office-ui-status-item", "office-ui-zoom-slider", "office-ui-tab-strip", "office-ui-presence", "office-ui-smartart"];
|
|
9
9
|
/**
|
|
10
10
|
* Install the theme tokens and define every element. Idempotent and safe to call from every
|
|
11
11
|
* viewer binding; a no-op where there is no DOM (SSR).
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { installOfficeUiTheme } from './chunk-H4KFVIGT.js';
|
|
2
2
|
export { THEME_CSS, THEME_STYLE_ID, installOfficeUiTheme } from './chunk-H4KFVIGT.js';
|
|
3
|
-
import { registerControls } from './chunk-
|
|
4
|
-
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls } from './chunk-
|
|
3
|
+
import { registerControls } from './chunk-RT6XKAM4.js';
|
|
4
|
+
export { CONTROL_DEFINERS, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineMenuButton, defineMenuItem, defineMenuSeparator, defineRibbonGroup, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineToolbar, defineZoomSlider, registerControls } from './chunk-RT6XKAM4.js';
|
|
5
5
|
export { ICON_CSS, createIconSvg, defineIcon, getIcon, listIcons, paintIcon, registerIcon } from './chunk-PCSUQPMC.js';
|
|
6
6
|
import { definePresence } from './chunk-RLPL7Q6J.js';
|
|
7
7
|
export { definePresence, initialsOf, participantsFromAwareness } from './chunk-RLPL7Q6J.js';
|
|
@@ -22,6 +22,7 @@ var OFFICE_UI_TAGS = [
|
|
|
22
22
|
"office-ui-menu-button",
|
|
23
23
|
"office-ui-menu-separator",
|
|
24
24
|
"office-ui-context-menu",
|
|
25
|
+
"office-ui-command-search",
|
|
25
26
|
"office-ui-toolbar",
|
|
26
27
|
"office-ui-dialog",
|
|
27
28
|
"office-ui-status-bar",
|