ooxml-ui 1.18.3 → 1.20.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.
Files changed (166) hide show
  1. package/README.md +96 -39
  2. package/custom-elements.json +13 -2
  3. package/dist/building-block-styles.d.ts +5 -0
  4. package/dist/building-block-styles.d.ts.map +1 -0
  5. package/dist/{chunk-MSXUCINT.js → chunk-4XPAPETH.js} +4 -4
  6. package/dist/{chunk-SVRIVUWC.js → chunk-C7B7TJ2J.js} +1 -1
  7. package/dist/{chunk-ANPFMQ6E.js → chunk-QBXYGKPB.js} +1 -1
  8. package/dist/{chunk-CWBSXK7P.js → chunk-QLHCGV4C.js} +1 -1
  9. package/dist/chunk-T5ARELU2.js +299 -0
  10. package/dist/{chunk-SPRZIHUH.js → chunk-TJ245GDD.js} +37 -24
  11. package/dist/{chunk-EVL7GFC7.js → chunk-UB36NYDT.js} +5 -5
  12. package/dist/{chunk-LD3K2RDN.js → chunk-XL77FR4B.js} +2 -0
  13. package/dist/{chunk-KNC2UEUR.js → chunk-YZH2QS7J.js} +1 -1
  14. package/dist/controls.d.ts +1 -1
  15. package/dist/controls.d.ts.map +1 -1
  16. package/dist/controls.js +4 -4
  17. package/dist/docx/building-blocks.d.ts +31 -0
  18. package/dist/docx/collaboration-room.d.ts +46 -0
  19. package/dist/docx/collaboration-session.d.ts +2 -0
  20. package/dist/docx/collaboration-types.d.ts +13 -0
  21. package/dist/docx/component.d.ts +14 -1
  22. package/dist/docx/editor-core.d.ts +6 -0
  23. package/dist/docx/element-api.d.ts +11 -0
  24. package/dist/docx/events.d.ts +4 -1
  25. package/dist/docx/field-update.d.ts +8 -4
  26. package/dist/docx/form-field-view.d.ts +3 -0
  27. package/dist/docx/index.d.ts +2 -0
  28. package/dist/docx/ribbon-popover.d.ts +5 -4
  29. package/dist/docx/styles/index.d.ts +0 -4
  30. package/dist/docx/table-model-adapter.d.ts +2 -0
  31. package/dist/docx.js +18866 -18192
  32. package/dist/form/color-grid.d.ts +21 -2
  33. package/dist/form/color-grid.d.ts.map +1 -1
  34. package/dist/index.js +9 -9
  35. package/dist/pptx/chunk-3ESFHUZI.cjs +1016 -0
  36. package/dist/pptx/{chunk-S2Y3VUNC.cjs → chunk-ABDWUQRQ.cjs} +2230 -1726
  37. package/dist/pptx/{chunk-AUCJIB3M.mjs → chunk-F6P7VS5I.mjs} +2191 -1709
  38. package/dist/pptx/chunk-MK2ASJSY.mjs +991 -0
  39. package/dist/pptx/dom/elements/text-warp.d.ts.map +1 -1
  40. package/dist/pptx/dom/index.cjs +217 -216
  41. package/dist/pptx/dom/index.mjs +16 -15
  42. package/dist/pptx/index.cjs +2976 -2880
  43. package/dist/pptx/index.mjs +2 -2
  44. package/dist/pptx/render/collaboration-options.d.ts +29 -0
  45. package/dist/pptx/render/collaboration-options.d.ts.map +1 -0
  46. package/dist/pptx/render/embedded-font-bytes.d.ts +27 -0
  47. package/dist/pptx/render/embedded-font-bytes.d.ts.map +1 -0
  48. package/dist/pptx/render/embedded-font-trust.d.ts +48 -0
  49. package/dist/pptx/render/embedded-font-trust.d.ts.map +1 -0
  50. package/dist/pptx/render/embedded-fonts.d.ts +8 -18
  51. package/dist/pptx/render/embedded-fonts.d.ts.map +1 -1
  52. package/dist/pptx/render/font-weight-names.d.ts +66 -0
  53. package/dist/pptx/render/font-weight-names.d.ts.map +1 -0
  54. package/dist/pptx/render/google-webfonts.d.ts +9 -4
  55. package/dist/pptx/render/google-webfonts.d.ts.map +1 -1
  56. package/dist/pptx/render/index.d.ts +3 -0
  57. package/dist/pptx/render/index.d.ts.map +1 -1
  58. package/dist/pptx/render/morph-animation.d.ts +5 -1
  59. package/dist/pptx/render/morph-animation.d.ts.map +1 -1
  60. package/dist/pptx/render/morph-image-alpha.d.ts +49 -0
  61. package/dist/pptx/render/morph-image-alpha.d.ts.map +1 -0
  62. package/dist/pptx/render/morph-predicates.d.ts.map +1 -1
  63. package/dist/pptx/render/paragraph-bullet-marker-style.d.ts.map +1 -1
  64. package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts +2 -0
  65. package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts.map +1 -1
  66. package/dist/pptx/render/ribbon-galleries/gallery-registry.d.ts.map +1 -1
  67. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts +3 -1
  68. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts.map +1 -1
  69. package/dist/pptx/render/ribbon-galleries/index.d.ts +1 -0
  70. package/dist/pptx/render/ribbon-galleries/index.d.ts.map +1 -1
  71. package/dist/pptx/render/ribbon-galleries/text-warp-gallery.d.ts +19 -0
  72. package/dist/pptx/render/ribbon-galleries/text-warp-gallery.d.ts.map +1 -0
  73. package/dist/pptx/render/ribbon-help-commands.d.ts +13 -0
  74. package/dist/pptx/render/ribbon-help-commands.d.ts.map +1 -1
  75. package/dist/pptx/render/ribbon-record-commands.d.ts +4 -1
  76. package/dist/pptx/render/ribbon-record-commands.d.ts.map +1 -1
  77. package/dist/pptx/render/ribbon-slide-show-commands.d.ts +6 -0
  78. package/dist/pptx/render/ribbon-slide-show-commands.d.ts.map +1 -1
  79. package/dist/pptx/render/slide-transition-css.d.ts.map +1 -1
  80. package/dist/pptx/render/table-cell-css.d.ts +12 -0
  81. package/dist/pptx/render/table-cell-css.d.ts.map +1 -1
  82. package/dist/pptx/render/table-style.d.ts +10 -1
  83. package/dist/pptx/render/table-style.d.ts.map +1 -1
  84. package/dist/pptx/render/text-block-style.d.ts.map +1 -1
  85. package/dist/pptx/render/text-east-asian-breaks.d.ts.map +1 -1
  86. package/dist/pptx/render/text-metric-tracking.d.ts.map +1 -1
  87. package/dist/pptx/render/text-run-gradient-span.d.ts.map +1 -1
  88. package/dist/pptx/render/text-run-style.d.ts.map +1 -1
  89. package/dist/pptx/render/text-tab-layout.d.ts.map +1 -1
  90. package/dist/pptx/render/text-warp-envelope-measure.d.ts.map +1 -1
  91. package/dist/pptx/render/text-warp-outline-font-cache.d.ts +2 -1
  92. package/dist/pptx/render/text-warp-outline-font-cache.d.ts.map +1 -1
  93. package/dist/pptx/render/text-warp-outline-webfont-fetch.d.ts.map +1 -1
  94. package/dist/pptx/render/theme-color-grid.d.ts +20 -0
  95. package/dist/pptx/render/theme-color-grid.d.ts.map +1 -0
  96. package/dist/pptx/render/used-fonts.d.ts.map +1 -1
  97. package/dist/pptx/theme/index.cjs +24 -16
  98. package/dist/pptx/theme/index.d.ts +1 -0
  99. package/dist/pptx/theme/index.d.ts.map +1 -1
  100. package/dist/pptx/theme/index.mjs +1 -1
  101. package/dist/pptx/theme/office-css.d.ts +6 -0
  102. package/dist/pptx/theme/office-css.d.ts.map +1 -0
  103. package/dist/pptx/types.d.ts +5 -1
  104. package/dist/pptx/types.d.ts.map +1 -1
  105. package/dist/pptx/web-components/chart-format-pane-styles.d.ts +1 -1
  106. package/dist/pptx/web-components/chart-format-pane-styles.d.ts.map +1 -1
  107. package/dist/pptx/web-components/control-styles.d.ts.map +1 -1
  108. package/dist/pptx/web-components/index.d.ts +1 -0
  109. package/dist/pptx/web-components/index.d.ts.map +1 -1
  110. package/dist/pptx/web-components/mobile-bar-styles.d.ts +2 -2
  111. package/dist/pptx/web-components/mobile-bar-styles.d.ts.map +1 -1
  112. package/dist/pptx/web-components/mobile-insert-styles.d.ts +1 -1
  113. package/dist/pptx/web-components/mobile-insert-styles.d.ts.map +1 -1
  114. package/dist/pptx/web-components/notes-toolbar-styles.d.ts +1 -1
  115. package/dist/pptx/web-components/notes-toolbar-styles.d.ts.map +1 -1
  116. package/dist/pptx/web-components/office-aliases.d.ts +9 -0
  117. package/dist/pptx/web-components/office-aliases.d.ts.map +1 -1
  118. package/dist/pptx/web-components/office-token-bridge.d.ts +1 -1
  119. package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
  120. package/dist/pptx/web-components/ribbon-gallery.d.ts +1 -0
  121. package/dist/pptx/web-components/ribbon-gallery.d.ts.map +1 -1
  122. package/dist/pptx/web-components/subtitle-settings-styles.d.ts +1 -1
  123. package/dist/pptx/web-components/subtitle-settings-styles.d.ts.map +1 -1
  124. package/dist/pptx/web-components/theme-editor-styles.d.ts +1 -1
  125. package/dist/pptx/web-components/theme-editor-styles.d.ts.map +1 -1
  126. package/dist/presence.js +3 -3
  127. package/dist/ribbon/gallery.d.ts +4 -2
  128. package/dist/ribbon/gallery.d.ts.map +1 -1
  129. package/dist/smartart.js +3 -3
  130. package/dist/teams.js +6 -6
  131. package/dist/theme-bridge.d.ts +28 -0
  132. package/dist/theme-bridge.d.ts.map +1 -0
  133. package/dist/theme.d.ts +10 -3
  134. package/dist/theme.d.ts.map +1 -0
  135. package/dist/theme.js +2 -2
  136. package/dist/tokens.d.ts +1 -0
  137. package/dist/tokens.d.ts.map +1 -1
  138. package/dist/visio/building-blocks.d.ts +37 -0
  139. package/dist/visio/collaboration-types.d.ts +3 -0
  140. package/dist/visio/controller.d.ts +6 -0
  141. package/dist/visio/index.d.ts +2 -0
  142. package/dist/visio/styles/theme.d.ts +1 -1
  143. package/dist/visio/styles.d.ts +1 -1
  144. package/dist/visio/viewer-element.d.ts +15 -0
  145. package/dist/visio/viewer-share-sync.d.ts +23 -0
  146. package/dist/visio/viewer-share.d.ts +20 -6
  147. package/dist/visio.js +8030 -7776
  148. package/dist/xlsx/building-blocks.d.ts +55 -0
  149. package/dist/xlsx/collaboration-types.d.ts +7 -35
  150. package/dist/xlsx/component.d.ts +3 -1
  151. package/dist/xlsx/dialogs/styles.d.ts +1 -1
  152. package/dist/xlsx/editor-core.d.ts +1 -0
  153. package/dist/xlsx/element-api.d.ts +6 -0
  154. package/dist/xlsx/formula-bar/styles.d.ts +1 -1
  155. package/dist/xlsx/grid/page-break-layer.d.ts +1 -1
  156. package/dist/xlsx/grid/styles.d.ts +1 -1
  157. package/dist/xlsx/index.d.ts +1 -0
  158. package/dist/xlsx/page-views/page-layout-css.d.ts +1 -1
  159. package/dist/xlsx/sheet-tabs/styles.d.ts +1 -1
  160. package/dist/xlsx/surface-shell.d.ts +3 -0
  161. package/dist/xlsx/theme/styles.d.ts +1 -4
  162. package/dist/xlsx.js +425 -326
  163. package/package.json +3 -3
  164. package/dist/chunk-7E3HU7RL.js +0 -123
  165. package/dist/pptx/chunk-BDXQX6RA.cjs +0 -373
  166. package/dist/pptx/chunk-ZAOD6O2D.mjs +0 -357
package/README.md CHANGED
@@ -109,7 +109,10 @@ The shared `office-ui-gallery` also supports `mode="panel"` for modal pickers.
109
109
  It displays labelled preview tiles directly, keeps focus when a pick refreshes the
110
110
  selection, and supports arrow, Home and End keys. Panel mode has no dropdown
111
111
  trigger or popup; `open` remains false. XLSX uses this mode for chart types while
112
- PowerPoint continues to use the same component for ribbon galleries.
112
+ PowerPoint continues to use the same component for ribbon galleries. A `compact`
113
+ panel keeps its tiles at their preview size without visible labels, and its arrow
114
+ keys only move focus: PowerPoint's inspector uses it for Text Warp, whose pick
115
+ applies at once.
113
116
 
114
117
  | Entry | Contents |
115
118
  | ------------------- | ------------------------------------------------------------------------------------------------------------ |
@@ -122,10 +125,64 @@ PowerPoint continues to use the same component for ribbon galleries.
122
125
 
123
126
  Every entry declares an `import` and a `default` export condition, so CommonJS consumers on Node 20.19+ or 22.12+ load it through `require(esm)`.
124
127
 
128
+ `installOfficeUiTheme()` installs one theme stylesheet in the document by default. Pass a
129
+ `ShadowRoot` to install scoped mode and control rules inside an embedding app's shadow tree.
130
+ `installOfficeUiThemeFor(element)` installs document defaults plus rules in every enclosing shadow
131
+ root. Product canvases and `prepareOfficeUiBlock()` use this host-aware installation automatically;
132
+ the latter checks again after native framework insertion. Theme attributes inside Angular shadow
133
+ views and other shadow containers therefore work alongside inherited custom properties.
134
+
135
+ Use semantic `--office-*` palette tokens on a shared ancestor to theme all controls. When overriding
136
+ a specific derived control token, such as `--office-select-background`, apply it to the actual
137
+ control. Product compatibility bridges recompute dependent defaults on their inner chrome so those
138
+ controls follow the product palette.
139
+
125
140
  Importing an entry never touches the DOM (SSR-safe). Elements are defined by the `define*` /
126
141
  `register*` functions, which are idempotent, no-ops without a `window`, and refuse to coexist
127
142
  with an incompatible build of this package.
128
143
 
144
+ ## One theme for composed editors
145
+
146
+ Use the shared `--office-*` CSS tokens on a common ancestor of the canvas and its standalone
147
+ controls. `data-office-theme="light"`, `"dark"`, or `"auto"` works on the document root or a
148
+ scoped container, so two editors on the same page can use different modes. `auto` follows the
149
+ system colour scheme. Nested mode scopes retain inherited typography, spacing and radii.
150
+
151
+ ```html
152
+ <section class="office-scope" data-office-theme="dark">
153
+ <!-- Mount the framework's standalone toolbar, canvas and other controls here. -->
154
+ </section>
155
+ ```
156
+
157
+ ```css
158
+ .office-scope {
159
+ --office-accent: #0d9488;
160
+ --office-accent-foreground: #ffffff;
161
+ --office-ring: #0f766e;
162
+ --office-font: 'Inter', system-ui, sans-serif;
163
+ --office-radius: 6px;
164
+ }
165
+ ```
166
+
167
+ Change the attribute or CSS tokens through your framework's normal bindings. Theme changes do
168
+ not require remounting the editor. The semantic palette includes `--office-background` (fields
169
+ and application background), `--office-surface` (toolbar and panel surfaces), `--office-foreground`,
170
+ `--office-muted-foreground`, `--office-border`, `--office-selected`, and the accent and focus tokens
171
+ above. Document paper, cell fills and slide artwork remain document content.
172
+
173
+ Library-supplied native building blocks opt into `BUILDING_BLOCKS_CSS` through
174
+ `prepareOfficeUiBlock(element, kind, product)`, exported by `ooxml-ui/theme`. It installs the shared
175
+ theme in the element's owner document and marks only that control root with `data-office-block`
176
+ and `data-office-product`. Hosts' own unmarked controls are unaffected. Shadow-root controls
177
+ inherit the same tokens. The installed stylesheet is idempotent and supports forced colours and
178
+ touch targets.
179
+
180
+ Existing product overrides (`--dve-*`, `--xve-*`, `--vv-*`, `--pptx-*`, and legacy theme options)
181
+ remain compatibility inputs. An explicit product override wins for that product. For a uniform
182
+ composition, put the shared tokens and mode on the common ancestor instead of configuring only
183
+ the canvas: a canvas's local theme cannot change the CSS inherited by a sibling toolbar. This UI
184
+ theme contract is separate from an Office document's embedded theme.
185
+
129
186
  ## Features: elements
130
187
 
131
188
  `office-ui-menu-button` accepts `submenu` when nested inside another menu.
@@ -134,44 +191,44 @@ panel beside the parent, with viewport edge placement. ArrowLeft or Escape
134
191
  returns focus to its trigger; choosing a command closes the whole menu tree.
135
192
  Arrow navigation stays within the current menu and skips disabled entries.
136
193
 
137
- | Tag | Attributes / properties | Events (all bubble, composed) |
138
- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
139
- | `office-ui-button` | `label`, `icon`, `command`, `disabled`, `pressed`, `expanded`, `icon-only`, `variant="stacked"`, `keyshortcuts` | `office-command` `{ command }` |
140
- | `office-ui-checkbox`, `office-ui-switch` | `checked`, `disabled`, `value`, `aria-label`; form-associated | `input`, `change` |
141
- | `office-ui-select` | `<option>` / `<optgroup>` children (`data-display-label`, `data-description`, font previews) or the `options` property `[{ value, label, disabled? }]`; `value`, `selectedIndex`, `disabled`, `aria-label`, `variant="ribbon-font" | "ribbon-icon"`, `data-font-picker`; `icon`and`custom` slots; arrows, Home, End, PageUp/PageDown, typeahead | `input`, `change` |
142
- | `office-ui-ribbon-group` | `label`, `launcher` (dialog launcher command), `launcher-disabled`; default slot | launcher: `office-command` `{ command }` |
143
- | `office-ui-ribbon-stack` | `orientation="horizontal"`; default slot (three-row column of small commands by default) | none |
144
- | `office-ui-menu-button` / `-menu-item` | button: `label`, `icon`, `command` (split button), `variant`, `disabled`, `keyshortcuts`; item: `command`, `label`, `icon`, `disabled`, `checked` | item choice: `office-command` `{ command }` |
145
- | `office-ui-toolbar` | `aria-label`, `aria-orientation`; arrow-key focus movement | none |
146
- | `office-ui-dialog` | `open`, `heading`, `dismissible="false"`, `show()`, `close()`; slots default, `footer` | `office-dialog-close` `{ reason }` (cancelable) |
147
- | `office-ui-status-bar` / `-status-item` | `label`, `value`, `interactive`, `id`; controlled bar: `state` `{ items?, toggles?, views?, zoom? }` with `summary`, `collaboration` and `end` slots | `office-status-activate` `{ id }` |
148
- | `office-ui-zoom-slider` | `value` (percent), `min`, `max`, `step`, `disabled`, `fit` (fit button name), `label` | `input`, `change`; fit: `office-command` `{ command: 'zoom-fit' }` |
149
- | `office-ui-color-grid` | Office's colour picker body: `themeColors` (ten base colours; Theme Colors grid with lighter and darker variants), `themeNames` (a product's own column names), `variantLabel` (names a variant swatch, for a translated product), `extraColors` (one more theme-bound row), `standardColors`, `recentColors`, `value`, `none-label`, `automatic-label`, `more-label`, `label`, `disabled`; events `office-color-pick` `{ color, source, label, theme?, index? }` (a theme swatch reports its column and variant so a product can save a theme reference) and `office-color-more`. The palette maths is `ooxml-core/color` (`buildThemePalette`) |
150
- | `office-ui-color-custom` | The Custom tab of Office's Colors dialog: a hue and saturation square, a luminance slider, Hex, Red/Green/Blue and Hue/Sat/Lum fields (0-255) and New over Current swatches. `value` (`#rrggbb`), `current`, `label`, `disabled`, `valid`; event `office-color-change` `{ color }` |
151
- | `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' }` |
152
- | `office-ui-context-menu` / `office-ui-menu-separator` | Children mode: `label`, `openAt(x, y)`, `close()`, `open` over `office-ui-menu-item` and separator children. Controlled mode: `state` `{ x, y, label, items: [{ id, label, separatorBefore?, heading?, danger?, disabled?, checked?, icon? }], markers?, zIndex?, autoFocus? }`; arrows, Home, End and type-ahead in both | children: item `office-command` `{ command }`; controlled: `office-menu-request` `{ id }`, `office-menu-close` `{ reason }` (never closes itself) |
153
- | `office-ui-command-search` | `commands` `[{ id, label, keywords?, description?, disabled?, title? }]`, `placeholder`, `label`, `limit` (Office's "Tell me what you want to do") | choice: `office-command` `{ command }` |
154
- | `office-ui-options-dialog` | `categories` `[{ id, label, description?, disabled?, sections: [{ id, title, controls }] }]` (controls: `toggle`, `select`, `number`, `text`, each optionally `disabled` with a reason), `values`, `category`, `open`, `heading`, `show()`, `close()` | OK: `office-options-change` `{ values, changed }` |
155
- | `office-ui-account` | `profile` `{ displayName, avatarColor, initial? }`; slots `sign-in` and default (product sections) | `office-profile-change` `{ profile }` |
156
- | `office-ui-ribbon` | Tab row over tab panels. Panels are children with `data-ribbon-tab`, `data-label`, optional `data-tab-keytip`; slots `quick-access`, `search`, `end`, `actions` (right end of the tab row); `selected`, `label`, `file-label`, `no-file`, `file-expanded`, `file-keytip`; `focusFile()`, `focusTab()` | `office-ribbon-select` `{ tab }` (cancelable), `office-ribbon-file` |
157
- | `office-ui-backstage` | `items` `[{ id, label, group?: 'footer', disabled?, title? }]`, `open`, `selected`, `label`, `back-label`, `show(page?)`, `close()`; pages are children with `data-backstage-page` | `office-backstage-select` `{ id }` (cancelable), `office-backstage-close` `{ reason }` (cancelable) |
158
- | `office-ui-find-bar` | `open`, `label`, `input-label`, `placeholder`, `maxlength`, `disabled`, `navigation-disabled`, `previous-label`, `next-label`, `close-label`; `value`, `status`, `statusTitle`, `show()`, `close()` | `office-find-input` `{ query }`, `office-find-step` `{ direction }`, `office-find-close` |
159
- | `office-ui-ruler` | `orientation="vertical"`, `origin` (px offset of zero), `scale` (px per unit, default 96), `direction="reverse"`; decorative | none |
160
- | `office-ui-print-preview` | `pages` (rendered nodes; an inert clone of the current one is shown), `index`, `label`, `empty-label` | `office-print-preview-page` `{ index }` |
161
- | `office-ui-radio` | `checked`, `disabled`, `value`, `name`; radios of one tag sharing a `name` form a roving-focus group; form-associated | `input`, `change` |
162
- | `office-ui-search` | `value`, `placeholder`, `disabled`, `aria-label`, `variant="titlebar"`; `focus()`, `select()` | `input`, `change` |
163
- | `office-ui-ribbon-toggle` | `label`, `checked`, `disabled`, `title`, `command` (a labelled ribbon checkbox row; static `checkboxTag` picks the inner checkbox) | `office-toggle` `{ command, checked }` |
164
- | `office-ui-dialog-footer` | `state` `{ actions: [{ id, label, variant?, icon?, disabled?, busy?, title?, align?, testId? }] }`, `focusAction(id)` | `office-dialog-footer-request` `{ id }` |
165
- | `office-ui-toasts` | `state` `{ toasts: [{ id, code?, severity, message }], overflowCount?, labels? }`; hidden when empty, host positions it | `office-toasts-request` `{ id: 'dismiss', toastId }` or `{ id: 'dismissAll' }` |
166
- | `office-ui-read-only-banner` | `state` `{ kind, message, passwordPromptOpen?, passwordError?, checkingPassword?, labels? }` | `office-read-only-request` (Edit anyway, Dismiss, password submit or cancel) |
167
- | `office-ui-paste-options` | `state` `{ left, top, options: [{ id, label }], label? }`; fixed 4px past the pasted object | `office-paste-options-request` `{ format }`, `office-paste-options-dismiss` |
168
- | `office-ui-title-bar` | `state` `{ appMark?, fileName, status?, tone?, autosave?, quickAccess?: { label, items, showLabels? }, search? }`, `placement` (`titleBar`, `belowRibbon`); slots `collaboration`, `account`; tokens `--office-title-bar-*` | `office-autosave-toggle`, `office-command` `{ command }`, `office-command-search` `{ query, command? }` |
169
- | `office-ui-ribbon-section` | `groups` `[{ id, label, commands: [{ id, label, icon, title?, size?, badge?, disabled?, active?, compact?, hidden?, caret?, pressed?, expanded?, column? }] }]`; keyed groups and commands in the light DOM | the commands' own events (`office-command`) |
170
- | `office-ui-gallery` | `state` `{ id, label, moreLabel?, disabled?, command?, sections: [{ title?, columns, tileWidth, tileHeight, items: [{ id, label, applied?, preview? }] }], inline? }`, `mode` (`inline`), `chevron-only`, `icon`; `open`, `disabled`, `close()`; tiles in light DOM (`data-gallery-item`), previews parsed by `parseSvgPreview` | `office-gallery-pick` `{ gallery, itemId }` |
171
- | `office-ui-comments-pane` | `threads` `[{ id, anchorLabel?, resolved, comments: [{ id, author, initials?, color?, created?, text, edited? }] }]`, `activeThreadId`, `read-only` (controls disabled), `list-only` (navigation list only), `closable`, `add-disabled`, `currentAuthor` (may edit own comments), `labels` (every string), `classNames` (`{ thread?, comment? }` product hook classes), `locale`; arrows, Home and End between threads, Enter or Space selects | `comment-add` `{ text }`, `comment-reply` `{ threadId, text }`, `comment-edit` `{ threadId, commentId, text }`, `comment-delete` `{ threadId, commentId }`, `thread-resolve` / `thread-reopen` / `thread-select` `{ threadId }`, `comments-close` |
172
- | `office-ui-presence` | `participants`, `max`, `label` | `office-presence-select` `{ id }` |
173
- | `office-ui-smartart` | `drawing` (core `DiagramDrawing`), `schemeColors`, `label` | `office-smartart-render` (render report) |
174
- | `office-ui-icon` | `name`, `label` | none |
194
+ | Tag | Attributes / properties | Events (all bubble, composed) |
195
+ | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
196
+ | `office-ui-button` | `label`, `icon`, `command`, `disabled`, `pressed`, `expanded`, `icon-only`, `variant="stacked"`, `keyshortcuts` | `office-command` `{ command }` |
197
+ | `office-ui-checkbox`, `office-ui-switch` | `checked`, `disabled`, `value`, `aria-label`; form-associated | `input`, `change` |
198
+ | `office-ui-select` | `<option>` / `<optgroup>` children (`data-display-label`, `data-description`, font previews) or the `options` property `[{ value, label, disabled? }]`; `value`, `selectedIndex`, `disabled`, `aria-label`, `variant="ribbon-font" | "ribbon-icon"`, `data-font-picker`; `icon`and`custom` slots; arrows, Home, End, PageUp/PageDown, typeahead | `input`, `change` |
199
+ | `office-ui-ribbon-group` | `label`, `launcher` (dialog launcher command), `launcher-disabled`; default slot | launcher: `office-command` `{ command }` |
200
+ | `office-ui-ribbon-stack` | `orientation="horizontal"`; default slot (three-row column of small commands by default) | none |
201
+ | `office-ui-menu-button` / `-menu-item` | button: `label`, `icon`, `command` (split button), `variant`, `disabled`, `keyshortcuts`; item: `command`, `label`, `icon`, `disabled`, `checked` | item choice: `office-command` `{ command }` |
202
+ | `office-ui-toolbar` | `aria-label`, `aria-orientation`; arrow-key focus movement | none |
203
+ | `office-ui-dialog` | `open`, `heading`, `dismissible="false"`, `show()`, `close()`; slots default, `footer` | `office-dialog-close` `{ reason }` (cancelable) |
204
+ | `office-ui-status-bar` / `-status-item` | `label`, `value`, `interactive`, `id`; controlled bar: `state` `{ items?, toggles?, views?, zoom? }` with `summary`, `collaboration` and `end` slots | `office-status-activate` `{ id }` |
205
+ | `office-ui-zoom-slider` | `value` (percent), `min`, `max`, `step`, `disabled`, `fit` (fit button name), `label` | `input`, `change`; fit: `office-command` `{ command: 'zoom-fit' }` |
206
+ | `office-ui-color-grid` | Office's colour picker body: `themeColors` (ten base colours; Theme Colors grid with lighter and darker variants), `themeNames` (a product's own column names), `variantLabel` (names a variant swatch, for a translated product), `palette` (the Theme Colors grid as a product computes it, in place of `themeColors`), `selectedTheme` (`{ column, variant? }`, marks a theme swatch by position), `extraColors` (one more theme-bound row), `standardColors` (empty leaves the row out), `recentColors`, `value`, `none-label`, `automatic-label`, `more-label`, `label`, `disabled`; events `office-color-pick` `{ color, source, label, theme?, index? }` (a theme swatch reports its column and variant so a product can save a theme reference) and `office-color-more`. In a pane narrower than the grid the swatches shrink to fit; `--office-color-swatch-gap` sets the space between them. The palette maths is `ooxml-core/color` (`buildThemePalette`) |
207
+ | `office-ui-color-custom` | The Custom tab of Office's Colors dialog: a hue and saturation square, a luminance slider, Hex, Red/Green/Blue and Hue/Sat/Lum fields (0-255) and New over Current swatches. `value` (`#rrggbb`), `current`, `label`, `disabled`, `valid`; event `office-color-change` `{ color }` |
208
+ | `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' }` |
209
+ | `office-ui-context-menu` / `office-ui-menu-separator` | Children mode: `label`, `openAt(x, y)`, `close()`, `open` over `office-ui-menu-item` and separator children. Controlled mode: `state` `{ x, y, label, items: [{ id, label, separatorBefore?, heading?, danger?, disabled?, checked?, icon? }], markers?, zIndex?, autoFocus? }`; arrows, Home, End and type-ahead in both | children: item `office-command` `{ command }`; controlled: `office-menu-request` `{ id }`, `office-menu-close` `{ reason }` (never closes itself) |
210
+ | `office-ui-command-search` | `commands` `[{ id, label, keywords?, description?, disabled?, title? }]`, `placeholder`, `label`, `limit` (Office's "Tell me what you want to do") | choice: `office-command` `{ command }` |
211
+ | `office-ui-options-dialog` | `categories` `[{ id, label, description?, disabled?, sections: [{ id, title, controls }] }]` (controls: `toggle`, `select`, `number`, `text`, each optionally `disabled` with a reason), `values`, `category`, `open`, `heading`, `show()`, `close()` | OK: `office-options-change` `{ values, changed }` |
212
+ | `office-ui-account` | `profile` `{ displayName, avatarColor, initial? }`; slots `sign-in` and default (product sections) | `office-profile-change` `{ profile }` |
213
+ | `office-ui-ribbon` | Tab row over tab panels. Panels are children with `data-ribbon-tab`, `data-label`, optional `data-tab-keytip`; slots `quick-access`, `search`, `end`, `actions` (right end of the tab row); `selected`, `label`, `file-label`, `no-file`, `file-expanded`, `file-keytip`; `focusFile()`, `focusTab()` | `office-ribbon-select` `{ tab }` (cancelable), `office-ribbon-file` |
214
+ | `office-ui-backstage` | `items` `[{ id, label, group?: 'footer', disabled?, title? }]`, `open`, `selected`, `label`, `back-label`, `show(page?)`, `close()`; pages are children with `data-backstage-page` | `office-backstage-select` `{ id }` (cancelable), `office-backstage-close` `{ reason }` (cancelable) |
215
+ | `office-ui-find-bar` | `open`, `label`, `input-label`, `placeholder`, `maxlength`, `disabled`, `navigation-disabled`, `previous-label`, `next-label`, `close-label`; `value`, `status`, `statusTitle`, `show()`, `close()` | `office-find-input` `{ query }`, `office-find-step` `{ direction }`, `office-find-close` |
216
+ | `office-ui-ruler` | `orientation="vertical"`, `origin` (px offset of zero), `scale` (px per unit, default 96), `direction="reverse"`; decorative | none |
217
+ | `office-ui-print-preview` | `pages` (rendered nodes; an inert clone of the current one is shown), `index`, `label`, `empty-label` | `office-print-preview-page` `{ index }` |
218
+ | `office-ui-radio` | `checked`, `disabled`, `value`, `name`; radios of one tag sharing a `name` form a roving-focus group; form-associated | `input`, `change` |
219
+ | `office-ui-search` | `value`, `placeholder`, `disabled`, `aria-label`, `variant="titlebar"`; `focus()`, `select()` | `input`, `change` |
220
+ | `office-ui-ribbon-toggle` | `label`, `checked`, `disabled`, `title`, `command` (a labelled ribbon checkbox row; static `checkboxTag` picks the inner checkbox) | `office-toggle` `{ command, checked }` |
221
+ | `office-ui-dialog-footer` | `state` `{ actions: [{ id, label, variant?, icon?, disabled?, busy?, title?, align?, testId? }] }`, `focusAction(id)` | `office-dialog-footer-request` `{ id }` |
222
+ | `office-ui-toasts` | `state` `{ toasts: [{ id, code?, severity, message }], overflowCount?, labels? }`; hidden when empty, host positions it | `office-toasts-request` `{ id: 'dismiss', toastId }` or `{ id: 'dismissAll' }` |
223
+ | `office-ui-read-only-banner` | `state` `{ kind, message, passwordPromptOpen?, passwordError?, checkingPassword?, labels? }` | `office-read-only-request` (Edit anyway, Dismiss, password submit or cancel) |
224
+ | `office-ui-paste-options` | `state` `{ left, top, options: [{ id, label }], label? }`; fixed 4px past the pasted object | `office-paste-options-request` `{ format }`, `office-paste-options-dismiss` |
225
+ | `office-ui-title-bar` | `state` `{ appMark?, fileName, status?, tone?, autosave?, quickAccess?: { label, items, showLabels? }, search? }`, `placement` (`titleBar`, `belowRibbon`); slots `collaboration`, `account`; tokens `--office-title-bar-*` | `office-autosave-toggle`, `office-command` `{ command }`, `office-command-search` `{ query, command? }` |
226
+ | `office-ui-ribbon-section` | `groups` `[{ id, label, commands: [{ id, label, icon, title?, size?, badge?, disabled?, active?, compact?, hidden?, caret?, pressed?, expanded?, column? }] }]`; keyed groups and commands in the light DOM | the commands' own events (`office-command`) |
227
+ | `office-ui-gallery` | `state` `{ id, label, moreLabel?, disabled?, command?, sections: [{ title?, columns, tileWidth, tileHeight, items: [{ id, label, applied?, preview? }] }], inline? }`, `mode` (`inline`, `panel`), `compact` (a panel of unlabelled tiles), `chevron-only`, `icon`; `open`, `disabled`, `close()`; tiles in light DOM (`data-gallery-item`), previews parsed by `parseSvgPreview` | `office-gallery-pick` `{ gallery, itemId }` |
228
+ | `office-ui-comments-pane` | `threads` `[{ id, anchorLabel?, resolved, comments: [{ id, author, initials?, color?, created?, text, edited? }] }]`, `activeThreadId`, `read-only` (controls disabled), `list-only` (navigation list only), `closable`, `add-disabled`, `currentAuthor` (may edit own comments), `labels` (every string), `classNames` (`{ thread?, comment? }` product hook classes), `locale`; arrows, Home and End between threads, Enter or Space selects | `comment-add` `{ text }`, `comment-reply` `{ threadId, text }`, `comment-edit` `{ threadId, commentId, text }`, `comment-delete` `{ threadId, commentId }`, `thread-resolve` / `thread-reopen` / `thread-select` `{ threadId }`, `comments-close` |
229
+ | `office-ui-presence` | `participants`, `max`, `label` | `office-presence-select` `{ id }` |
230
+ | `office-ui-smartart` | `drawing` (core `DiagramDrawing`), `schemeColors`, `label` | `office-smartart-render` (render report) |
231
+ | `office-ui-icon` | `name`, `label` | none |
175
232
 
176
233
  The local profile behind `office-ui-account` is stored on the device only, under one suite-wide
177
234
  key (`readOfficeProfile`, `writeOfficeProfile`, `clearOfficeProfile`), so every Office viewer on
@@ -1331,7 +1331,7 @@
1331
1331
  "name": "OfficeUiColorGrid",
1332
1332
  "tagName": "office-ui-color-grid",
1333
1333
  "customElement": true,
1334
- "description": "`<office-ui-color-grid>`: Office's colour picker body. From the top: an optional `automatic-label` command (Automatic) and `none-label` command (No Fill, No Line), \"Theme Colors\" (ten columns, a base colour over its five lighter and darker variants, built from `themeColors`), \"Standard Colors\" (preceded by the `extraColors` row when a product has one, such as Visio's variant colours), \"Recent Colors\" when `recentColors` has any, and an optional `more-label` command (More Colors...). `value` (`#rrggbb`, `'none'` or `'automatic'`) marks the current choice. `themeNames` renames the ten columns and `variantLabel` names their variants (for a translated product). Choosing emits `office-color-pick` `{ color, source, label, theme?, index? }` (a theme swatch reports its column and variant, so a product can save a theme reference instead of the colour); the More Colors command emits `office-color-more`. Arrow keys move through the swatches and commands, Home and End jump to the ends; ArrowUp on the first row and ArrowDown on the last are left for a host menu. The element is only the grid: a product puts it in its own menu, popup or pane.",
1334
+ "description": "`<office-ui-color-grid>`: Office's colour picker body. From the top: an optional `automatic-label` command (Automatic) and `none-label` command (No Fill, No Line), \"Theme Colors\" (ten columns, a base colour over its five lighter and darker variants, built from `themeColors`), \"Standard Colors\" (preceded by the `extraColors` row when a product has one, such as Visio's variant colours), \"Recent Colors\" when `recentColors` has any, and an optional `more-label` command (More Colors...). `value` (`#rrggbb`, `'none'` or `'automatic'`) marks the current choice. `themeNames` renames the ten columns and `variantLabel` names their variants (for a translated product). A product that computes its own swatches sets `palette` instead (one column per colour it can resolve, each with up to five variants; a missing one leaves its cell empty), and one that stores theme references marks the current swatch with `selectedTheme`. An empty `standardColors` leaves out Standard Colors. Choosing emits `office-color-pick` `{ color, source, label, theme?, index? }` (a theme swatch reports its column and variant, so a product can save a theme reference instead of the colour); the More Colors command emits `office-color-more`. Arrow keys move through the swatches and commands, Home and End jump to the ends; ArrowUp on the first row and ArrowDown on the last are left for a host menu. The element is only the grid: a product puts it in its own menu, popup or pane.",
1335
1335
  "attributes": [
1336
1336
  {
1337
1337
  "name": "automatic-label"
@@ -1404,6 +1404,10 @@
1404
1404
  },
1405
1405
  "attribute": "none-label"
1406
1406
  },
1407
+ {
1408
+ "kind": "field",
1409
+ "name": "palette"
1410
+ },
1407
1411
  {
1408
1412
  "kind": "field",
1409
1413
  "name": "recentColors"
@@ -1416,6 +1420,10 @@
1416
1420
  },
1417
1421
  "attribute": "recent-heading"
1418
1422
  },
1423
+ {
1424
+ "kind": "field",
1425
+ "name": "selectedTheme"
1426
+ },
1419
1427
  {
1420
1428
  "kind": "field",
1421
1429
  "name": "standardColors"
@@ -2108,11 +2116,14 @@
2108
2116
  "name": "OfficeUiGallery",
2109
2117
  "tagName": "office-ui-gallery",
2110
2118
  "customElement": true,
2111
- "description": "`<office-ui-gallery>`: Office's ribbon gallery (Shape Styles, Themes, Table Styles). Set `state` (`OfficeGalleryState`, translated). `mode=\"inline\"` shows a strip of tiles beside a More button; otherwise the trigger is a labelled dropdown (`chevron-only` keeps just the chevron, `icon` names its glyph). The popup opens below the trigger, keeps inside the window and closes on Escape, an outside press or a pick. `mode=\"panel\"` shows labelled sections directly for modal pickers, with arrow/Home/End selection and no dropdown trigger. ArrowDown on the trigger opens it and focuses the first tile. Dropdown arrows/Home/End move focus across sections without applying a choice. A pick emits `office-gallery-pick` `{ gallery, itemId }`. Tiles render in the light DOM beside the host's children (Lit renders the template into the host itself) so products can query them (`data-gallery-item`); the rules join the host's root once. Static `pickEvent`, `triggerAttribute`, `popupAttribute`, `itemAttribute` and `compactAttribute` keep a product's published names; override `triggerIcon()` to draw a product glyph.",
2119
+ "description": "`<office-ui-gallery>`: Office's ribbon gallery (Shape Styles, Themes, Table Styles). Set `state` (`OfficeGalleryState`, translated). `mode=\"inline\"` shows a strip of tiles beside a More button; otherwise the trigger is a labelled dropdown (`chevron-only` keeps just the chevron, `icon` names its glyph). The popup opens below the trigger, keeps inside the window and closes on Escape, an outside press or a pick. `mode=\"panel\"` shows labelled sections directly for modal pickers, with arrow/Home/End selection and no dropdown trigger; `compact` keeps its tiles at their preview size without visible labels and lets arrow keys only move focus, for a pane whose pick applies at once. ArrowDown on the trigger opens it and focuses the first tile. Dropdown arrows/Home/End move focus across sections without applying a choice. A pick emits `office-gallery-pick` `{ gallery, itemId }`. Tiles render in the light DOM beside the host's children (Lit renders the template into the host itself) so products can query them (`data-gallery-item`); the rules join the host's root once. Static `pickEvent`, `triggerAttribute`, `popupAttribute`, `itemAttribute` and `compactAttribute` keep a product's published names; override `triggerIcon()` to draw a product glyph.",
2112
2120
  "attributes": [
2113
2121
  {
2114
2122
  "name": "chevron-only"
2115
2123
  },
2124
+ {
2125
+ "name": "compact"
2126
+ },
2116
2127
  {
2117
2128
  "name": "icon"
2118
2129
  },
@@ -0,0 +1,5 @@
1
+ export type OfficeUiBlockKind = 'toolbar' | 'formula-bar' | 'tabs' | 'inspector';
2
+ export type OfficeUiProduct = 'docx' | 'xlsx' | 'visio' | 'pptx';
3
+ /** Opt-in styles for native framework controls. They never target host-owned controls implicitly. */
4
+ export declare const BUILDING_BLOCKS_CSS: string;
5
+ //# sourceMappingURL=building-block-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"building-block-styles.d.ts","sourceRoot":"","sources":["../src/building-block-styles.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AACjF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAiDjE,qGAAqG;AACrG,eAAO,MAAM,mBAAmB,QAsD/B,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { TeamsLitElement, LOCALE_HOST, teamsI18n, inheritLocale, pushLocale } from './chunk-FHO7TEWA.js';
2
- import { THEME_CSS, installOfficeUiTheme } from './chunk-7E3HU7RL.js';
3
- import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-SPRZIHUH.js';
2
+ import { THEME_CSS, installOfficeUiTheme } from './chunk-T5ARELU2.js';
3
+ import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-TJ245GDD.js';
4
4
  import { registerIcon, getIcon } from './chunk-M6GF5ED2.js';
5
- import { initialsOf, definePresence } from './chunk-KNC2UEUR.js';
6
- import { definer, OfficeElement, controlStyles } from './chunk-CWBSXK7P.js';
5
+ import { initialsOf, definePresence } from './chunk-YZH2QS7J.js';
6
+ import { definer, OfficeElement, controlStyles } from './chunk-QLHCGV4C.js';
7
7
  import { nothing, html, unsafeCSS, svg } from 'lit';
8
8
  import { filterActivity, ACTIVITY_FILTERS, localZone, startOfDay, occurrencesBetween, DAY_MS as DAY_MS$1, dayKey, zonedToUtc, viewDays, zonedParts, shiftAnchor, layoutDay, mentionQueryAt, filterMentionTargets, insertMention, MAX_ATTACHMENTS, mentionsUser, mentionSegments, detectContentKind, contentUrl, readContent, sortFiles, filterFiles, parseServerConfig, STATUS_DURATIONS, MAX_STATUS_MESSAGE_CHARS, isPresenceStatus, PRESENCE_STATUSES, isStatusDuration, IDLE_MINUTE_CHOICES, sanitizeChannelName, MAX_CHANNEL_NAME_CHARS, MAX_CHANNEL_TOPIC_CHARS, MAX_CHAT_MEMBERS, occurrenceAt, MAX_RECURRENCE_COUNT, MINUTE_MS, MAX_MEETING_TITLE, MAX_MEETING_DESCRIPTION, markdownBlocks, repeatChoices, serverOrigin, probeTeamsAccounts, requestTeamsSession, signOutTeamsSession, checkTeamsSession, createTeamsClient, sanitizeAttachment, markdownInline, TeamsSignInError } from 'ooxml-core/teams';
9
9
  import { repeat } from 'lit/directives/repeat.js';
@@ -1,4 +1,4 @@
1
- import { defineRibbonGroup, defineRibbonStack, defineButton, defineMenuItem, defineMenuButton } from './chunk-SPRZIHUH.js';
1
+ import { defineRibbonGroup, defineRibbonStack, defineButton, defineMenuItem, defineMenuButton } from './chunk-TJ245GDD.js';
2
2
  import { acceptedRibbonAddIns, findRibbonAddInCommand, RIBBON_ADD_IN_EVENT } from 'ooxml-core/ribbon';
3
3
  export { RIBBON_ADD_IN_EVENT } from 'ooxml-core/ribbon';
4
4
 
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-CWBSXK7P.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-QLHCGV4C.js';
2
2
  import { html } from 'lit';
3
3
  import { hexToRgbChannels } from 'ooxml-core/color';
4
4
  import { resolveDrawingColor } from 'ooxml-core/diagram';
@@ -1,4 +1,4 @@
1
- import { TOUCH, tok, OFFICE_TOKENS } from './chunk-LD3K2RDN.js';
1
+ import { TOUCH, tok, OFFICE_TOKENS } from './chunk-XL77FR4B.js';
2
2
  import { unsafeCSS, LitElement } from 'lit';
3
3
 
4
4
  // src/registry.ts