@pantoken/pendo 0.1.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 ADDED
@@ -0,0 +1,75 @@
1
+ # @pantoken/pendo
2
+
3
+ An Instructure-styled global stylesheet for Pendo guides, built on pantoken tokens.
4
+
5
+ Pendo injects guide HTML into a host page. This renders that guide DOM (`._pendo-*`) to match Instructure UI: buttons, cards, popovers, alerts, selects, text areas, radios, NPS and number-scale polls, dividers, images, and video. The component CSS is ported from `@instructure/pendo-global-css`; pantoken supplies the `--instui-*` token layer and assembles the result.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm i @pantoken/pendo
11
+ ```
12
+
13
+ Also available as `pantoken/pendo`.
14
+
15
+ ## Use
16
+
17
+ Import the ready-made stylesheet, or the static file:
18
+
19
+ ```ts
20
+ import { pendoCss } from "@pantoken/pendo";
21
+ ```
22
+
23
+ ```css
24
+ @import "@pantoken/pendo/global.css";
25
+ ```
26
+
27
+ Or build a variant:
28
+
29
+ ```ts
30
+ import { buildPendoCss } from "@pantoken/pendo";
31
+
32
+ const css = buildPendoCss({
33
+ theme: "canvas", // token theme (default "rebrand")
34
+ scope: true, // wrap in @scope for containment (default true)
35
+ important: true, // add !important so guide styles beat Pendo's (default true)
36
+ prune: true, // tree-shake unused --instui-* tokens (default true)
37
+ });
38
+ ```
39
+
40
+ ### CLI
41
+
42
+ ```sh
43
+ pantoken generate pendo --out ./pendo
44
+ pantoken generate pendo --out ./pendo --theme canvas --no-scope --no-important
45
+ ```
46
+
47
+ Writes `global.css`.
48
+
49
+ ## How it fits together
50
+
51
+ - **Token layer** — pantoken's `@pantoken/css` emits the `--instui-*` custom properties, scoped to the guide container `[class*="instui"]`. This is the drop-in replacement for pendo-styles' generated `vendor/tokens.css`.
52
+ - **Component layers** — the ported `._pendo-*` rules, assembled in a fixed `@layer` cascade order. Layered `!important` is what keeps guide styles above Pendo's own unlayered `!important`.
53
+ - **Package-local transforms** (`src/plugins/`, PostCSS, scoped to this package — Pendo deployment behavior, not general pantoken plugins):
54
+ - `add-important` — adds `!important` to component declarations.
55
+ - `add-scope` — wraps everything in `@scope (._pendo-step-container)` for DOM containment.
56
+ - **Token pruning** — [`@pantoken/plugin-prune-custom-props`](../../plugins/postcss/prune-custom-props), a shared plugin (any renderer built on the full token layer wants it). It tree-shakes the token set to only what the guide references, dropping ≈1,800 unused icon data-URIs — the full build is ~95 KB instead of ~1.7 MB.
57
+ - **Focus ring** — `focusOutlineDeclarations()` + `focusOutlineRules()` from [`@pantoken/components`](../../formats/components) build the animated ring for the plain focusables (`._pendo-button`, `._pendo-close-guide`, `._pendo-text-link`) in a last-declared `instui.focusOutline` layer. (The ring used to be a standalone plugin; it now ships in `@pantoken/components`, which also bakes it into `base.css`.) Components with custom focus behavior (select/textarea background resets, the radio and number-scale sibling outlines, the card's `:focus-visible` reset) keep their own rules, referencing the `--instui-focus-outline-*` tokens.
58
+
59
+ Every `var(--instui-*)` the ported CSS references resolves against pantoken's token layer — a test asserts full coverage.
60
+
61
+ ## Not included yet
62
+
63
+ These are deployment concerns handled downstream in pendo-styles and are left to the consumer:
64
+
65
+ - Per-app guide-prefix rewriting (`guide-<theme>` → `guide-<app>-<theme>`).
66
+ - Dark-mode format conversion (this ships `light-dark()` as-is).
67
+ - Per-app `overrides.css`.
68
+
69
+ ## Credits
70
+
71
+ Component CSS ported from [`@instructure/pendo-global-css`](https://github.com/instructure) (MIT).
72
+
73
+ ## License
74
+
75
+ MIT
@@ -0,0 +1 @@
1
+ @layer instui.tokens,instui.elevation,instui.icons,instui.popover,instui.alert,instui.text,instui.closeButton,instui.img,instui.inputs,instui.button,instui.pagination,instui.mask,instui.view,instui.card,instui.manual,instui.focusOutline;@scope(._pendo-step-container){@layer instui.tokens{@property --instui-primitive-color-white{syntax:"<color>";inherits:true;initial-value:#fff}@property --instui-primitive-color-transparent{syntax:"<color>";inherits:true;initial-value:#0000}@property --instui-primitive-color-green-green100{syntax:"<color>";inherits:true;initial-value:#03893d}@property --instui-primitive-color-green-green110{syntax:"<color>";inherits:true;initial-value:#037d37}@property --instui-primitive-color-grey-grey10{syntax:"<color>";inherits:true;initial-value:#f2f4f5}@property --instui-primitive-color-grey-grey30{syntax:"<color>";inherits:true;initial-value:#dfe1e3}@property --instui-primitive-color-grey-grey40{syntax:"<color>";inherits:true;initial-value:#c7cacd}@property --instui-primitive-color-grey-grey50{syntax:"<color>";inherits:true;initial-value:#aab0b5}@property --instui-primitive-color-grey-grey60{syntax:"<color>";inherits:true;initial-value:#9ea6ad}@property --instui-primitive-color-grey-grey70{syntax:"<color>";inherits:true;initial-value:#8d959f}@property --instui-primitive-color-grey-grey80{syntax:"<color>";inherits:true;initial-value:#7e8792}@property --instui-primitive-color-grey-grey100{syntax:"<color>";inherits:true;initial-value:#6a7883}@property --instui-primitive-color-grey-grey110{syntax:"<color>";inherits:true;initial-value:#5f6e7a}@property --instui-primitive-color-grey-grey120{syntax:"<color>";inherits:true;initial-value:#576773}@property --instui-primitive-color-grey-grey130{syntax:"<color>";inherits:true;initial-value:#4a5b68}@property --instui-primitive-color-grey-grey150{syntax:"<color>";inherits:true;initial-value:#334450}@property --instui-primitive-color-grey-grey170{syntax:"<color>";inherits:true;initial-value:#273540}@property --instui-primitive-color-grey-grey180{syntax:"<color>";inherits:true;initial-value:#1c222b}@property --instui-primitive-color-grey-grey190{syntax:"<color>";inherits:true;initial-value:#171b21}@property --instui-primitive-color-blue-blue40{syntax:"<color>";inherits:true;initial-value:#accdf7}@property --instui-primitive-color-blue-blue50{syntax:"<color>";inherits:true;initial-value:#7fb4f1}@property --instui-primitive-color-blue-blue70{syntax:"<color>";inherits:true;initial-value:#4798e3}@property --instui-primitive-color-blue-blue100{syntax:"<color>";inherits:true;initial-value:#2b7abc}@property --instui-primitive-color-blue-blue120{syntax:"<color>";inherits:true;initial-value:#2369a4}@property --instui-primitive-color-blue-blue140{syntax:"<color>";inherits:true;initial-value:#1a5281}@property --instui-primitive-color-red-red100{syntax:"<color>";inherits:true;initial-value:#e62429}@property --instui-primitive-color-red-red110{syntax:"<color>";inherits:true;initial-value:#cf1f24}@property --instui-primitive-color-orange-orange100{syntax:"<color>";inherits:true;initial-value:#cf4a00}@property --instui-primitive-color-navy-navy10{syntax:"<color>";inherits:true;initial-value:#eef4fd}@property --instui-primitive-color-navy-navy20{syntax:"<color>";inherits:true;initial-value:#e2eaf7}@property --instui-primitive-color-navy-navy60{syntax:"<color>";inherits:true;initial-value:#86a8d5}@property --instui-primitive-color-navy-navy70{syntax:"<color>";inherits:true;initial-value:#7097c7}@property --instui-primitive-color-navy-navy110{syntax:"<color>";inherits:true;initial-value:#44709f}@property --instui-primitive-color-navy-navy140{syntax:"<color>";inherits:true;initial-value:#2e5177}@property --instui-primitive-color-navy-navy150{syntax:"<color>";inherits:true;initial-value:#234465}@property --instui-primitive-color-navy-navy170{syntax:"<color>";inherits:true;initial-value:#1d354f}@property --instui-primitive-color-white-opacity75{syntax:"<color>";inherits:true;initial-value:#ffffffbf}@property --instui-primitive-color-grey-opacity75{syntax:"<color>";inherits:true;initial-value:#1c222bbf}@property --instui-primitive-size-size1{syntax:"*";inherits:true;initial-value:.0625rem}@property --instui-primitive-size-size2{syntax:"*";inherits:true;initial-value:.125rem}@property --instui-primitive-size-size4{syntax:"*";inherits:true;initial-value:.25rem}@property --instui-primitive-size-size8{syntax:"*";inherits:true;initial-value:.5rem}@property --instui-primitive-size-size12{syntax:"*";inherits:true;initial-value:.75rem}@property --instui-primitive-size-size14{syntax:"*";inherits:true;initial-value:.875rem}@property --instui-primitive-size-size16{syntax:"*";inherits:true;initial-value:1rem}@property --instui-primitive-size-size20{syntax:"*";inherits:true;initial-value:1.25rem}@property --instui-primitive-size-size24{syntax:"*";inherits:true;initial-value:1.5rem}@property --instui-primitive-size-size32{syntax:"*";inherits:true;initial-value:2rem}@property --instui-primitive-font-family-inclusive-sans{syntax:"*";inherits:true;initial-value:Inclusive Sans, "Helvetica Neue", Helvetica, Arial, sans-serif}@property --instui-primitive-font-family-atkinson{syntax:"*";inherits:true;initial-value:Atkinson Hyperlegible Next, "Helvetica Neue", Helvetica, Arial, sans-serif}@property --instui-primitive-font-weight-regular{syntax:"<integer>";inherits:true;initial-value:400}@property --instui-primitive-font-weight-medium{syntax:"<integer>";inherits:true;initial-value:500}@property --instui-primitive-font-weight-semi-bold{syntax:"<integer>";inherits:true;initial-value:600}@property --instui-primitive-font-weight-bold{syntax:"<integer>";inherits:true;initial-value:700}@property --instui-line-height-paragraph-base{syntax:"<percentage>";inherits:true;initial-value:150%}@property --instui-line-height-standalone-base{syntax:"<percentage>";inherits:true;initial-value:125%}@property --instui-line-height-heading-base{syntax:"<percentage>";inherits:true;initial-value:125%}@property --instui-line-height-label-base{syntax:"*";inherits:true;initial-value:1.125rem}@property --instui-component-view-border-style{syntax:"*";inherits:true;initial-value:solid}@property --instui-component-text-letter-spacing-normal{syntax:"*";inherits:true;initial-value:0rem}@property --instui-component-shared-tokens-border-radius-full{syntax:"*";inherits:true;initial-value:999rem}@property --instui-component-shared-tokens-spacing-general-space-none{syntax:"*";inherits:true;initial-value:0rem}@property --instui-component-shared-tokens-focus-outline-style{syntax:"*";inherits:true;initial-value:solid}@property --instui-component-radio-input-checked-inset-sm{syntax:"*";inherits:true;initial-value:.375rem}@property --instui-component-link-text-decoration-within-text{syntax:"*";inherits:true;initial-value:underline}@property --instui-component-icon-size-sm{syntax:"*";inherits:true;initial-value:1rem}@property --instui-component-icon-size-md{syntax:"*";inherits:true;initial-value:1.25rem}@property --instui-component-heading-title-card-large-font-size{syntax:"*";inherits:true;initial-value:1.5rem}@property --instui-component-base-button-letter-spacing{syntax:"*";inherits:true;initial-value:normal}@property --instui-component-base-button-border-style{syntax:"*";inherits:true;initial-value:solid}@property --instui-component-base-button-padding-vertical{syntax:"*";inherits:true;initial-value:.25rem}@property --instui-component-alert-border-style{syntax:"*";inherits:true;initial-value:solid}@property --instui-component-alert-close-button-margin-right{syntax:"*";inherits:true;initial-value:.5rem}@property --instui-component-alert-close-button-margin-top{syntax:"*";inherits:true;initial-value:.5rem}@property --instui-icon-check{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-chevron-down{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-chevron-up{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m18%2015-6-6-6%206%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-circle-check{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-circle-x{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m15%209-6%206%22%2F%3E%3Cpath%20d%3D%22m9%209%206%206%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-info{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M12%2016v-4%22%2F%3E%3Cpath%20d%3D%22M12%208h.01%22%2F%3E%3C%2Fsvg%3E)}@property --instui-icon-triangle-alert{syntax:"<image>";inherits:true;initial-value:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m21.73%2018-8-14a2%202%200%200%200-3.48%200l-8%2014A2%202%200%200%200%204%2021h16a2%202%200%200%200%201.73-3%22%2F%3E%3Cpath%20d%3D%22M12%209v4%22%2F%3E%3Cpath%20d%3D%22M12%2017h.01%22%2F%3E%3C%2Fsvg%3E)}[class*=instui]{--instui-size-interactive-height-sm:var(--instui-primitive-size-size32);--instui-spacing-space2xs:var(--instui-primitive-size-size2);--instui-spacing-space-xs:var(--instui-primitive-size-size4);--instui-spacing-space-sm:var(--instui-primitive-size-size8);--instui-spacing-space-md:var(--instui-primitive-size-size12);--instui-spacing-space-lg:var(--instui-primitive-size-size16);--instui-spacing-space-xl:var(--instui-primitive-size-size24);--instui-spacing-gap-cards-sm:var(--instui-primitive-size-size12);--instui-spacing-gap-cards-md:var(--instui-primitive-size-size16);--instui-spacing-gap-input-elements:var(--instui-primitive-size-size8);--instui-spacing-padding-container-xxs:var(--instui-primitive-size-size8);--instui-spacing-padding-container-sm:var(--instui-primitive-size-size16);--instui-spacing-padding-interactive-horizontal-sm:var(--instui-primitive-size-size8);--instui-spacing-padding-interactive-horizontal-md:var(--instui-primitive-size-size12);--instui-border-radius-sm:var(--instui-primitive-size-size4);--instui-border-radius-md:var(--instui-primitive-size-size8);--instui-border-radius-lg:var(--instui-primitive-size-size12);--instui-border-radius-interactive-base:var(--instui-primitive-size-size12);--instui-border-width-sm:var(--instui-primitive-size-size1);--instui-border-width-md:var(--instui-primitive-size-size2);--instui-border-width-interactive-base:var(--instui-primitive-size-size1);--instui-font-family-heading:var(--instui-primitive-font-family-inclusive-sans);--instui-font-family-base:var(--instui-primitive-font-family-atkinson);--instui-font-weight-body-base:var(--instui-primitive-font-weight-regular);--instui-font-weight-body-strong:var(--instui-primitive-font-weight-semi-bold);--instui-font-weight-heading-strong:var(--instui-primitive-font-weight-bold);--instui-font-weight-interactive:var(--instui-primitive-font-weight-medium);--instui-line-height-paragraph-text-sm:var(--instui-primitive-size-size20);--instui-line-height-standalone-text-xs:var(--instui-primitive-size-size12);--instui-line-height-standalone-text-base:var(--instui-primitive-size-size16);--instui-font-size-text-xs:var(--instui-primitive-size-size12);--instui-font-size-text-sm:var(--instui-primitive-size-size14);--instui-font-size-text-base:var(--instui-primitive-size-size16);--instui-font-size-text-lg:var(--instui-primitive-size-size20);--instui-color-background-interactive-input-base:light-dark(var(--instui-primitive-color-white),var(--instui-primitive-color-grey-grey190));--instui-color-background-interactive-input-hover:light-dark(var(--instui-primitive-color-white),var(--instui-primitive-color-grey-grey190));--instui-color-background-interactive-action-primary-base:light-dark(var(--instui-primitive-color-navy-navy170),var(--instui-primitive-color-navy-navy10));--instui-color-background-interactive-action-primary-hover:light-dark(var(--instui-primitive-color-navy-navy150),var(--instui-primitive-color-white));--instui-color-background-interactive-action-primary-disabled:light-dark(var(--instui-primitive-color-grey-grey30),var(--instui-primitive-color-grey-grey150));--instui-color-background-interactive-action-secondary-disabled:light-dark(var(--instui-primitive-color-grey-grey30),var(--instui-primitive-color-grey-grey150));--instui-color-background-interactive-action-tertiary-hover:light-dark(var(--instui-primitive-color-navy-navy10),var(--instui-primitive-color-navy-navy140));--instui-color-background-interactive-action-tertiary-active:light-dark(var(--instui-primitive-color-navy-navy20),var(--instui-primitive-color-navy-navy150));--instui-color-background-elevated-surface-base:light-dark(var(--instui-primitive-color-white),var(--instui-primitive-color-grey-grey190));--instui-color-background-overlay-base:light-dark(var(--instui-primitive-color-white-opacity75),var(--instui-primitive-color-grey-opacity75));--instui-color-stroke-base:light-dark(var(--instui-primitive-color-grey-grey70),var(--instui-primitive-color-grey-grey100));--instui-color-stroke-success:var(--instui-primitive-color-green-green100);--instui-color-stroke-error:var(--instui-primitive-color-red-red100);--instui-color-stroke-warning:var(--instui-primitive-color-orange-orange100);--instui-color-stroke-info:var(--instui-primitive-color-blue-blue100);--instui-color-stroke-interactive-focus-ring-base:light-dark(var(--instui-primitive-color-blue-blue100),var(--instui-primitive-color-blue-blue70));--instui-color-stroke-interactive-focus-ring-on-color:var(--instui-primitive-color-white);--instui-color-stroke-interactive-input-base:light-dark(var(--instui-primitive-color-grey-grey80),var(--instui-primitive-color-grey-grey110));--instui-color-stroke-interactive-input-hover:light-dark(var(--instui-primitive-color-grey-grey150),var(--instui-primitive-color-grey-grey80));--instui-color-stroke-interactive-input-readonly:var(--instui-primitive-color-grey-grey70);--instui-color-stroke-interactive-input-selected:light-dark(var(--instui-primitive-color-grey-grey180),var(--instui-primitive-color-white));--instui-color-stroke-interactive-action-primary-disabled:light-dark(var(--instui-primitive-color-grey-grey30),var(--instui-primitive-color-grey-grey150));--instui-color-stroke-interactive-action-secondary-disabled:light-dark(var(--instui-primitive-color-grey-grey30),var(--instui-primitive-color-grey-grey150));--instui-color-stroke-interactive-action-destructive-base:var(--instui-primitive-color-red-red110);--instui-color-stroke-interactive-action-success-base:var(--instui-primitive-color-green-green110);--instui-color-stroke-interactive-action-tertiary-base:light-dark(var(--instui-primitive-color-navy-navy60),var(--instui-primitive-color-navy-navy70));--instui-color-stroke-interactive-action-tertiary-disabled:light-dark(var(--instui-primitive-color-grey-grey40),var(--instui-primitive-color-grey-grey130));--instui-color-text-base:light-dark(var(--instui-primitive-color-grey-grey170),var(--instui-primitive-color-grey-grey10));--instui-color-text-muted:light-dark(var(--instui-primitive-color-grey-grey120),var(--instui-primitive-color-grey-grey50));--instui-color-text-interactive-disabled-base:light-dark(var(--instui-primitive-color-grey-grey70),var(--instui-primitive-color-grey-grey120));--instui-color-text-interactive-input-hover:light-dark(var(--instui-primitive-color-grey-grey150),var(--instui-primitive-color-grey-grey60));--instui-color-text-interactive-input-placeholder:light-dark(var(--instui-primitive-color-grey-grey110),var(--instui-primitive-color-grey-grey80));--instui-color-text-interactive-navigation-primary-hover:light-dark(var(--instui-primitive-color-blue-blue140),var(--instui-primitive-color-blue-blue40));--instui-color-text-interactive-action-secondary-disabled:light-dark(var(--instui-primitive-color-grey-grey60),var(--instui-primitive-color-grey-grey100));--instui-color-text-interactive-action-primary-base:light-dark(var(--instui-primitive-color-white),var(--instui-primitive-color-navy-navy170));--instui-color-text-interactive-action-primary-disabled:light-dark(var(--instui-primitive-color-grey-grey60),var(--instui-primitive-color-grey-grey100));--instui-color-text-interactive-action-tertiary-base:light-dark(var(--instui-primitive-color-navy-navy170),var(--instui-primitive-color-navy-navy10));--instui-color-text-interactive-action-tertiary-disabled:light-dark(var(--instui-primitive-color-grey-grey50),var(--instui-primitive-color-grey-grey130));--instui-color-icon-on-color:var(--instui-primitive-color-white);--instui-color-drop-shadow-shadow-color1:light-dark(#23446526,#0000004d);--instui-color-drop-shadow-shadow-color2:light-dark(#2344651a,#00000026);--instui-color-transparent-color:var(--instui-primitive-color-transparent);--instui-color-institutional-brand-font-color-dark:light-dark(var(--instui-primitive-color-grey-grey170),var(--instui-primitive-color-white));--instui-color-institutional-link-color:light-dark(var(--instui-primitive-color-blue-blue120),var(--instui-primitive-color-blue-blue50));--instui-color-institutional-brand-button-primary-bgd:light-dark(var(--instui-primitive-color-navy-navy170),var(--instui-primitive-color-navy-navy10));--instui-color-institutional-brand-button-primary-text:light-dark(var(--instui-primitive-color-white),var(--instui-primitive-color-navy-navy170));--instui-color-institutional-brand-button-secondary-bgd:light-dark(var(--instui-primitive-color-navy-navy110),var(--instui-primitive-color-navy-navy60));--instui-color-institutional-brand-button-secondary-text:light-dark(var(--instui-primitive-color-navy-navy170),var(--instui-primitive-color-white));--instui-component-view-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-view-background-primary:var(--instui-color-background-elevated-surface-base);--instui-component-text-input-background-color:var(--instui-color-background-interactive-input-base);--instui-component-text-input-background-hover-color:var(--instui-color-background-interactive-input-hover);--instui-component-text-input-border-color:var(--instui-color-stroke-interactive-input-base);--instui-component-text-input-border-hover-color:var(--instui-color-stroke-interactive-input-hover);--instui-component-text-input-border-radius:var(--instui-border-radius-interactive-base);--instui-component-text-input-border-width:var(--instui-border-width-interactive-base);--instui-component-text-input-text-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-text-input-font-family:var(--instui-font-family-base);--instui-component-text-input-font-weight:var(--instui-font-weight-interactive);--instui-component-text-input-font-size-sm:var(--instui-font-size-text-sm);--instui-component-text-input-height-sm:var(--instui-size-interactive-height-sm);--instui-component-text-input-padding-horizontal-sm:var(--instui-spacing-space-sm);--instui-component-text-area-background-color:var(--instui-color-background-interactive-input-base);--instui-component-text-area-background-hover-color:var(--instui-color-background-interactive-input-hover);--instui-component-text-area-border-color:var(--instui-color-stroke-interactive-input-base);--instui-component-text-area-border-hover-color:var(--instui-color-stroke-interactive-input-hover);--instui-component-text-area-border-radius:var(--instui-border-radius-interactive-base);--instui-component-text-area-border-width:var(--instui-border-width-interactive-base);--instui-component-text-area-text-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-text-area-placeholder-color:var(--instui-color-text-interactive-input-placeholder);--instui-component-text-area-placeholder-hover-color:var(--instui-color-text-interactive-input-hover);--instui-component-text-area-font-family:var(--instui-font-family-base);--instui-component-text-area-font-weight:var(--instui-font-weight-body-base);--instui-component-text-area-font-size-sm:var(--instui-font-size-text-sm);--instui-component-text-area-gap-content:var(--instui-spacing-space-md);--instui-component-text-area-padding:var(--instui-spacing-space-md);--instui-component-text-content-important-font-family:var(--instui-font-family-base);--instui-component-text-content-important-font-weight:var(--instui-font-weight-body-strong);--instui-component-text-content-important-line-height:var(--instui-line-height-paragraph-base);--instui-component-text-content-small-font-family:var(--instui-font-family-base);--instui-component-text-content-small-font-weight:var(--instui-font-weight-body-base);--instui-component-text-content-small-font-size:var(--instui-font-size-text-sm);--instui-component-text-content-small-line-height:var(--instui-line-height-paragraph-base);--instui-component-text-base-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-text-muted-color:var(--instui-color-text-muted);--instui-component-tabs-panel-border-color:var(--instui-color-stroke-base);--instui-component-shared-tokens-border-radius-sm:var(--instui-border-radius-sm);--instui-component-shared-tokens-spacing-general-space2xs:var(--instui-spacing-space2xs);--instui-component-shared-tokens-spacing-general-space-xs:var(--instui-spacing-space-xs);--instui-component-shared-tokens-spacing-general-space-sm:var(--instui-spacing-space-sm);--instui-component-shared-tokens-spacing-general-space-md:var(--instui-spacing-space-md);--instui-component-shared-tokens-spacing-general-space-lg:var(--instui-spacing-space-lg);--instui-component-shared-tokens-spacing-gap-cards-sm:var(--instui-spacing-gap-cards-sm);--instui-component-shared-tokens-spacing-gap-cards-md:var(--instui-spacing-gap-cards-md);--instui-component-shared-tokens-spacing-padding-card-sm:var(--instui-spacing-padding-container-xxs);--instui-component-shared-tokens-spacing-padding-card-lg:var(--instui-spacing-padding-container-sm);--instui-component-shared-tokens-focus-outline-offset:var(--instui-spacing-space2xs);--instui-component-shared-tokens-focus-outline-width:var(--instui-border-width-md);--instui-component-shared-tokens-focus-outline-info-color:var(--instui-color-stroke-interactive-focus-ring-base);--instui-component-shared-tokens-focus-outline-on-color:var(--instui-color-stroke-interactive-focus-ring-on-color);--instui-component-shared-tokens-focus-outline-success-color:var(--instui-color-stroke-interactive-action-success-base);--instui-component-shared-tokens-focus-outline-danger-color:var(--instui-color-stroke-interactive-action-destructive-base);--instui-component-shared-tokens-stroke-width-sm:var(--instui-border-width-sm);--instui-component-radio-input-background-color:var(--instui-color-background-interactive-input-base);--instui-component-radio-input-background-hover-color:var(--instui-color-background-interactive-input-hover);--instui-component-radio-input-border-color:var(--instui-color-stroke-interactive-input-base);--instui-component-radio-input-border-readonly-color:var(--instui-color-stroke-interactive-input-readonly);--instui-component-radio-input-border-selected-color:var(--instui-color-stroke-interactive-input-selected);--instui-component-radio-input-font-size-sm:var(--instui-font-size-text-sm);--instui-component-radio-input-line-height-sm:var(--instui-line-height-paragraph-text-sm);--instui-component-radio-input-font-family:var(--instui-font-family-base);--instui-component-radio-input-font-weight:var(--instui-font-weight-body-base);--instui-component-radio-input-gap:var(--instui-spacing-space-sm);--instui-component-radio-input-border-width:var(--instui-border-width-interactive-base);--instui-component-radio-input-label-base-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-radio-input-label-hover-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-popover-border-color:var(--instui-color-stroke-base);--instui-component-popover-border-radius:var(--instui-border-radius-lg);--instui-component-options-item-background:var(--instui-color-background-elevated-surface-base);--instui-component-options-item-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-options-item-font-family:var(--instui-font-family-base);--instui-component-options-item-font-weight:var(--instui-font-weight-body-base);--instui-component-options-item-font-weight-selected:var(--instui-font-weight-body-base);--instui-component-options-item-highlighted-background:var(--instui-color-background-interactive-action-tertiary-hover);--instui-component-options-item-highlighted-label-color:var(--instui-color-text-base);--instui-component-options-item-line-height:var(--instui-line-height-standalone-base);--instui-component-options-item-padding-horizontal:var(--instui-spacing-space-md);--instui-component-options-item-selected-background:var(--instui-color-background-interactive-action-primary-base);--instui-component-options-item-selected-label-color:var(--instui-color-text-interactive-action-primary-base);--instui-component-metric-label-font-size:var(--instui-font-size-text-xs);--instui-component-metric-label-font-weight:var(--instui-font-weight-body-base);--instui-component-menu-item-selected-highlighted-background:var(--instui-color-background-interactive-action-primary-hover);--instui-component-mask-background-color:var(--instui-color-background-overlay-base);--instui-component-link-text-color:var(--instui-color-institutional-link-color);--instui-component-link-text-hover-color:var(--instui-color-text-interactive-navigation-primary-hover);--instui-component-link-text-disabled-color:var(--instui-color-text-interactive-disabled-base);--instui-component-link-font-weight:var(--instui-font-weight-interactive);--instui-component-heading-title-card-large-font-family:var(--instui-font-family-heading);--instui-component-heading-title-card-large-font-weight:var(--instui-font-weight-heading-strong);--instui-component-heading-title-card-large-line-height:var(--instui-line-height-heading-base);--instui-component-heading-title-card-regular-font-family:var(--instui-font-family-heading);--instui-component-heading-title-card-regular-font-weight:var(--instui-font-weight-heading-strong);--instui-component-heading-title-card-regular-font-size:var(--instui-font-size-text-lg);--instui-component-heading-title-card-regular-line-height:var(--instui-line-height-heading-base);--instui-component-heading-title-card-mini-font-family:var(--instui-font-family-heading);--instui-component-heading-title-card-mini-font-weight:var(--instui-font-weight-heading-strong);--instui-component-heading-title-card-mini-font-size:var(--instui-font-size-text-base);--instui-component-heading-title-card-mini-line-height:var(--instui-line-height-heading-base);--instui-component-form-field-layout-text-color:var(--instui-color-institutional-brand-font-color-dark);--instui-component-form-field-layout-font-family:var(--instui-font-family-base);--instui-component-form-field-layout-font-weight:var(--instui-font-weight-body-base);--instui-component-form-field-layout-font-size:var(--instui-font-size-text-base);--instui-component-form-field-layout-line-height:var(--instui-line-height-label-base);--instui-component-form-field-layout-gap-primitives:var(--instui-spacing-gap-input-elements);--instui-component-base-button-primary-active-background:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-active-border-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-active-text-color:var(--instui-color-institutional-brand-button-primary-text);--instui-component-base-button-primary-background:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-border-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-color:var(--instui-color-institutional-brand-button-primary-text);--instui-component-base-button-primary-disabled-background-color:var(--instui-color-background-interactive-action-primary-disabled);--instui-component-base-button-primary-disabled-border-color:var(--instui-color-stroke-interactive-action-primary-disabled);--instui-component-base-button-primary-disabled-text-color:var(--instui-color-text-interactive-action-primary-disabled);--instui-component-base-button-primary-ghost-active-background:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-ghost-hover-background:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-hover-background:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-hover-border-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-primary-hover-text-color:var(--instui-color-institutional-brand-button-primary-text);--instui-component-base-button-secondary-active-background:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-active-border-color:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-active-text-color:var(--instui-color-institutional-brand-button-secondary-text);--instui-component-base-button-secondary-background:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-border-color:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-color:var(--instui-color-institutional-brand-button-secondary-text);--instui-component-base-button-secondary-disabled-background-color:var(--instui-color-background-interactive-action-secondary-disabled);--instui-component-base-button-secondary-disabled-border-color:var(--instui-color-stroke-interactive-action-secondary-disabled);--instui-component-base-button-secondary-disabled-text-color:var(--instui-color-text-interactive-action-secondary-disabled);--instui-component-base-button-secondary-hover-background:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-hover-border-color:var(--instui-color-institutional-brand-button-secondary-bgd);--instui-component-base-button-secondary-hover-text-color:var(--instui-color-institutional-brand-button-secondary-text);--instui-component-base-button-small-font-size:var(--instui-font-size-text-sm);--instui-component-base-button-small-height:var(--instui-size-interactive-height-sm);--instui-component-base-button-small-padding-horizontal:var(--instui-spacing-padding-interactive-horizontal-md);--instui-component-base-button-border-radius:var(--instui-border-radius-interactive-base);--instui-component-base-button-border-width:var(--instui-border-width-interactive-base);--instui-component-base-button-font-family:var(--instui-font-family-base);--instui-component-base-button-font-weight:var(--instui-font-weight-interactive);--instui-component-base-button-gap-button-content-md:var(--instui-spacing-space-sm);--instui-component-base-button-gap-button-content-sm:var(--instui-spacing-space-xs);--instui-component-base-button-tertiary-active-border-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-tertiary-active-text-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-tertiary-disabled-border-color:var(--instui-color-stroke-interactive-action-tertiary-disabled);--instui-component-base-button-tertiary-disabled-text-color:var(--instui-color-text-interactive-action-tertiary-disabled);--instui-component-base-button-tertiary-hover-border-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-tertiary-hover-text-color:var(--instui-color-institutional-brand-button-primary-bgd);--instui-component-base-button-line-height:var(--instui-line-height-standalone-base);--instui-component-alert-border-radius:var(--instui-border-radius-lg);--instui-component-alert-border-width:var(--instui-border-width-md);--instui-component-alert-danger-border-color:var(--instui-color-stroke-error);--instui-component-alert-icon-color:var(--instui-color-icon-on-color);--instui-component-alert-info-border-color:var(--instui-color-stroke-info);--instui-component-alert-success-border-color:var(--instui-color-stroke-success);--instui-component-alert-warning-border-color:var(--instui-color-stroke-warning);--instui-component-alert-content-padding-vertical:var(--instui-spacing-space-md);--instui-component-alert-content-padding-horizontal:var(--instui-spacing-space-xl);--manual-light-pendo-embedded-pendo-step-container-styles-width:59.25rem;--manual-light-new-theme-components-alert-padding-left:2.5rem;--manual-light-pendo-overlay-pendo-step-container-styles-width:22.5rem;--instui-component-text-area-min-height:4rem;--instui-component-text-area-max-height:6rem}}@layer instui.elevation{[class*=instui]{--instui-elevation-above:0 .1875rem .375rem var(--instui-color-drop-shadow-shadow-color2), 0 .1875rem .375rem var(--instui-color-drop-shadow-shadow-color1)}}@layer instui.icons{[class*=instui]{& [class*=pendo-video-wrapper]{aspect-ratio:16/9!important;height:auto!important;padding-bottom:0!important;position:relative!important;overflow:visible!important}& ._pendo-video{width:100%!important;height:100%!important;display:block!important}& .pendo-mock-flexbox-element:has([class*=pendo-video-wrapper]){width:100%!important}}}@layer instui.popover{[class*=instui]:is([data-layout=tooltipBlank],._pendo-guide-walkthrough_){& ._pendo-step-container-size{height:auto!important}& ._pendo-step-container-styles{border-radius:var(--instui-component-popover-border-radius)!important;border-color:var(--instui-component-popover-border-color)!important;min-height:2.75rem!important;box-shadow:var(--instui-elevation-above)!important;margin-bottom:calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md))!important;margin-left:var(--instui-component-shared-tokens-spacing-general-space-md)!important;margin-right:var(--instui-component-shared-tokens-spacing-general-space-md)!important;margin-top:var(--instui-component-shared-tokens-spacing-general-space-xs)!important}& .pendo-tooltip-caret{--caret-color:var(--instui-component-view-background-primary);&.pendo-tooltip-caret--top{border-top-color:var(--caret-color)!important;bottom:calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md) - 15px)!important;&+.pendo-tooltip-caret-border{bottom:calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md) - 16px)!important}}&.pendo-tooltip-caret--right{border-right-color:var(--caret-color)!important;left:-3px!important;&+.pendo-tooltip-caret-border{left:-4px!important}}&.pendo-tooltip-caret--bottom{border-bottom-color:var(--caret-color)!important;top:calc(var(--instui-component-shared-tokens-spacing-general-space-xs) - 15px)!important;&+.pendo-tooltip-caret-border{top:calc(var(--instui-component-shared-tokens-spacing-general-space-xs) - 16px)!important}}&.pendo-tooltip-caret--left{border-left-color:var(--caret-color)!important;right:-3px!important;&+.pendo-tooltip-caret-border{right:-4px!important}}}&[data-layout=tooltipBlank]{& ._pendo-step-container-styles{width:var(--manual-light-pendo-overlay-pendo-step-container-styles-width)!important;padding:var(--instui-component-shared-tokens-spacing-padding-card-sm) var(--instui-component-shared-tokens-spacing-padding-card-sm) var(--instui-component-shared-tokens-spacing-general-space-none)!important}}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& ._pendo-step-container-styles{width:auto!important;padding:var(--instui-component-shared-tokens-spacing-padding-card-lg) var(--instui-component-shared-tokens-spacing-padding-card-lg) var(--instui-component-shared-tokens-spacing-general-space-sm)!important;margin-bottom:var(--instui-component-shared-tokens-spacing-general-space-md)!important}&:not(:has(._pendo-row)){& ._pendo-step-container-styles{padding-bottom:var(--instui-component-shared-tokens-spacing-padding-card-sm)!important}}}}}@layer instui.alert{[class*=instui][data-layout=lightboxBlank]{&,&[class*=instui-info]{--_alert-color:var(--instui-component-alert-info-border-color);--_alert-icon:var(--instui-icon-info)}&[class*=instui-danger]{--_alert-color:var(--instui-component-alert-danger-border-color);--_alert-icon:var(--instui-icon-circle-x)}&[class*=instui-success]{--_alert-color:var(--instui-component-alert-success-border-color);--_alert-icon:var(--instui-icon-circle-check)}&[class*=instui-warning]{--_alert-color:var(--instui-component-alert-warning-border-color);--_alert-icon:var(--instui-icon-triangle-alert)}&,& ._pendo-step-container-size{margin-right:var(--instui-spacing-space2xs)!important;margin-left:var(--instui-spacing-space2xs)!important;max-width:var(--manual-light-pendo-embedded-pendo-step-container-styles-width)!important}& ._pendo-step-container-size{z-index:300000!important;padding-bottom:calc(var(--instui-spacing-space-md))!important;padding-top:var(--instui-spacing-space-sm)!important}& ._pendo-step-container-styles{border-color:var(--_alert-color)!important;border-width:var(--instui-component-alert-border-width)!important;border-style:var(--instui-component-alert-border-style)!important;border-radius:var(--instui-component-alert-border-radius)!important;height:auto!important;padding:var(--instui-component-alert-content-padding-vertical) var(--instui-component-alert-content-padding-horizontal) var(--instui-component-alert-content-padding-vertical) calc(var(--manual-light-new-theme-components-alert-padding-left) + var(--instui-component-alert-content-padding-horizontal))!important;box-shadow:var(--instui-elevation-above)!important;margin-bottom:var(--instui-spacing-space-md)!important;margin-left:var(--instui-spacing-space-lg)!important;margin-right:var(--instui-spacing-space-lg)!important;margin-top:var(--instui-spacing-space-xs)!important;position:relative!important;overflow:hidden!important;&:before{content:""!important;width:var(--manual-light-new-theme-components-alert-padding-left)!important;background-color:var(--_alert-color)!important;inset-block:0!important;display:block!important;position:absolute!important;left:0!important;overflow:hidden!important}&:after{content:""!important;top:50%!important;left:calc((var(--manual-light-new-theme-components-alert-padding-left) - var(--instui-component-icon-size-md)) / 2)!important;width:var(--instui-component-icon-size-md)!important;height:var(--instui-component-icon-size-md)!important;mask-image:var(--_alert-icon)!important;background-color:var(--instui-component-alert-icon-color)!important;display:block!important;position:absolute!important;transform:translateY(-50%)!important;mask-position:50%!important;mask-size:contain!important;mask-repeat:no-repeat!important}}}}@layer instui.text{[class*=instui]{& ._pendo-simple-text,& [class*=_pendo-text-]{font-family:var(--instui-component-text-content-small-font-family)!important;font-weight:var(--instui-component-text-content-small-font-weight)!important;font-size:var(--instui-component-text-content-small-font-size)!important;line-height:var(--instui-component-text-content-small-line-height)!important;letter-spacing:var(--instui-component-text-letter-spacing-normal)!important;color:var(--instui-component-text-base-color)!important;max-width:100%!important}& ._pendo-text-bold{font-weight:var(--instui-component-text-content-important-font-weight)!important}& ._pendo-text-italic{font-family:var(--instui-component-text-content-important-font-family)!important;font-weight:var(--instui-component-text-content-important-font-weight)!important;line-height:var(--instui-component-text-content-important-line-height)!important}& ._pendo-text-strike{text-decoration:line-through!important}& h2:is(._pendo-simple-text,._pendo-text-title){font-weight:var(--instui-component-heading-title-card-regular-font-weight)!important;font-family:var(--instui-component-heading-title-card-regular-font-family)!important;line-height:var(--instui-component-heading-title-card-regular-line-height)!important;font-size:var(--instui-component-heading-title-card-large-font-size)!important}& h3._pendo-simple-text{font-weight:var(--instui-component-heading-title-card-large-font-weight)!important;font-size:var(--instui-component-heading-title-card-regular-font-size)!important;font-family:var(--instui-component-heading-title-card-large-font-family)!important;line-height:var(--instui-component-heading-title-card-large-line-height)!important}&[data-layout=tooltipBlank]{& h2._pendo-simple-text{font-size:var(--instui-component-heading-title-card-regular-font-size)!important;line-height:var(--instui-component-heading-title-card-mini-line-height)!important}& h3._pendo-simple-text{font-size:var(--instui-component-heading-title-card-mini-font-size)!important;line-height:var(--instui-component-heading-title-card-regular-line-height)!important}}& ._pendo-text-link{text-decoration:var(--instui-component-link-text-decoration-within-text)!important;font-weight:var(--instui-component-link-font-weight)!important;border-radius:var(--instui-component-shared-tokens-border-radius-sm)!important;color:var(--instui-component-link-text-color)!important;&:is(:hover,:active,:focus){color:var(--instui-component-link-text-hover-color)!important}&:disabled{color:var(--instui-component-link-text-disabled-color)!important}}& ._pendo-simple-text ol,& ._pendo-simple-text ul{padding-left:var(--instui-component-shared-tokens-spacing-general-space-none)!important}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& :not(._pendo-close-guide){font-size:var(--instui-component-heading-title-card-mini-font-size)!important}&,& ._pendo-row:has(+._pendo-row>._pendo-button-primaryButton) ._pendo-simple-text:has(>span:not([class])),& .pendo-survey-wrapper>div:not(:has([class])):not(:has(input)),& h2._pendo-simple-text,& h2._pendo-text-title ._pendo-simple-text,& ._pendo-simple-text._pendo-nps-open-text-poll-question{font-weight:var(--instui-component-heading-title-card-mini-font-weight)!important;font-family:var(--instui-component-heading-title-card-mini-font-family)!important;font-size:var(--instui-component-heading-title-card-mini-font-size)!important;line-height:var(--instui-component-heading-title-card-mini-line-height)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-sm)!important}& h2._pendo-text-title ._pendo-simple-text,& ._pendo-simple-text._pendo-nps-open-text-poll-question{text-align:left!important}& h2._pendo-text-title._pendo-nps-poll-success-message ._pendo-simple-text{text-align:center!important}& ._pendo-nps-poll-lowerbound-label,& ._pendo-nps-poll-upperbound-label{font-style:normal!important;font-size:var(--instui-component-metric-label-font-size)!important;font-weight:var(--instui-component-metric-label-font-weight)!important;line-height:var(--instui-line-height-standalone-text-xs)!important;text-align:center!important;color:var(--instui-component-text-muted-color)!important}& .pendo-survey-wrapper label+div{font-size:var(--instui-component-metric-label-font-size)!important;padding-top:var(--instui-component-shared-tokens-spacing-general-space-xs)!important;text-align:left!important}}}}@layer instui.closeButton{[class*=instui]{& ._pendo-close-guide{padding-bottom:var(--instui-component-shared-tokens-spacing-general-space-xs)!important;height:var(--instui-component-base-button-small-height)!important;aspect-ratio:1!important;border-radius:var(--instui-component-base-button-border-radius)!important;border-width:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background-color:#0000!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:var(--instui-component-icon-size-sm)!important;inset-inline:auto var(--instui-component-shared-tokens-spacing-general-space-xs)!important;font-size:var(--instui-font-size-text-lg)!important;font-family:var(--instui-component-base-button-font-family)!important;font-weight:var(--instui-primitive-font-weight-medium)!important;color:var(--instui-component-text-base-color)!important;background-color:#0000!important;position:absolute!important;inset-block-start:var(--instui-component-shared-tokens-spacing-general-space-xs)!important;&:hover{background-color:var(--instui-component-base-button-primary-ghost-hover-background)!important}&:active{background-color:var(--instui-component-base-button-primary-ghost-active-background)!important}}&[data-layout=lightboxBlank] ._pendo-close-guide{inset-block-start:var(--instui-component-alert-close-button-margin-top)!important;inset-inline-end:var(--instui-component-alert-close-button-margin-right)!important}}}@layer instui.img{[class*=instui]{& ._pendo-image{max-width:100%!important;height:auto!important}}}@layer instui.inputs{[class*=instui]{& ._pendo-row:has(._pendo-open-text-poll-input){height:auto!important}& ._pendo-row:has(._pendo-open-text-poll-input) .pendo-mock-flexbox-row{height:auto!important;min-height:unset!important}& ._pendo-row:has(._pendo-open-text-poll-input) .pendo-mock-flexbox-element{width:100%!important;position:static!important}& ._pendo-open-text-poll-input{border-radius:var(--instui-component-text-area-border-radius)!important;border-width:var(--instui-component-text-area-border-width)!important;padding:var(--instui-component-text-area-padding)!important;gap:var(--instui-component-text-area-gap-content)!important;min-height:var(--instui-component-text-area-min-height)!important;height:auto!important;max-height:var(--instui-component-text-area-max-height)!important;width:100%!important;font-family:var(--instui-component-text-area-font-family)!important;font-weight:var(--instui-component-text-area-font-weight)!important;font-size:var(--instui-component-text-area-font-size-sm)!important;line-height:var(--instui-line-height-standalone-text-base)!important;letter-spacing:normal!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background-color:var(--instui-component-text-area-background-color)!important;color:var(--instui-component-text-area-text-color)!important;border-style:solid!important;border-color:var(--instui-component-text-area-border-color)!important;transition:var(--instui-focus-outline-transition)!important;font-style:normal!important;&:hover{background:var(--instui-component-text-area-background-hover-color)!important;border-color:var(--instui-component-text-area-border-hover-color)!important}&:focus{outline-color:var(--instui-focus-outline-color-start)!important;outline-width:var(--instui-component-shared-tokens-focus-outline-width)!important;outline-style:var(--instui-component-shared-tokens-focus-outline-style)!important;outline-offset:var(--instui-component-shared-tokens-focus-outline-offset)!important;outline-color:var(--instui-component-shared-tokens-focus-outline-info-color)!important;background-color:var(--instui-component-text-area-background-color)!important;border-color:var(--instui-component-text-area-border-color)!important}&::placeholder{color:var(--instui-component-text-area-placeholder-color)!important}&:hover::placeholder{color:var(--instui-component-text-area-placeholder-hover-color)!important}}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& ._pendo-open-text-poll-input{min-height:100px!important}}}[class*=instui]{& ._pendo-multi-choice-poll-select-border[id^=pendo-select-container-]:has(>select){padding:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background:0 0!important;border:0!important;position:relative!important;&:after{content:""!important;right:var(--instui-component-text-input-padding-horizontal-sm)!important;top:var(--instui-component-shared-tokens-spacing-general-space-lg)!important;width:var(--instui-component-icon-size-sm)!important;height:var(--instui-component-icon-size-sm)!important;mask-image:var(--instui-icon-chevron-down)!important;pointer-events:none!important;background-color:var(--instui-component-text-input-text-color)!important;display:block!important;position:absolute!important;transform:translateY(-50%)!important;mask-position:50%!important;mask-size:contain!important;mask-repeat:no-repeat!important}}& select._pendo-multi-choice-poll-select{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;height:var(--instui-component-text-input-height-sm)!important;border-radius:var(--instui-component-text-input-border-radius)!important;border-width:var(--instui-component-text-input-border-width)!important;padding:var(--instui-component-shared-tokens-spacing-general-space-none) calc(var(--instui-component-text-input-padding-horizontal-sm) + 24px) var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-text-input-padding-horizontal-sm)!important;font-family:var(--instui-component-text-input-font-family)!important;font-weight:var(--instui-component-text-input-font-weight)!important;font-size:var(--instui-component-text-input-font-size-sm)!important;line-height:calc(var(--instui-line-height-standalone-text-base) * 2)!important;letter-spacing:normal!important;background-color:var(--instui-component-text-input-background-color)!important;color:var(--instui-component-text-input-text-color)!important;border-style:solid!important;border-color:var(--instui-component-text-input-border-color)!important;transition:var(--instui-focus-outline-transition)!important;font-style:normal!important;&:hover{background-color:var(--instui-component-text-input-background-hover-color)!important;border-color:var(--instui-component-text-input-border-hover-color)!important}&:focus{outline-color:var(--instui-focus-outline-color-start)!important;outline-width:var(--instui-component-shared-tokens-focus-outline-width)!important;outline-style:var(--instui-component-shared-tokens-focus-outline-style)!important;outline-offset:var(--instui-component-shared-tokens-focus-outline-offset)!important;outline-color:var(--instui-component-shared-tokens-focus-outline-info-color)!important;background-color:var(--instui-component-text-input-background-color)!important}}& select._pendo-multi-choice-poll-select option{font-family:var(--instui-component-text-input-font-family)!important;font-weight:var(--instui-component-text-input-font-weight)!important;font-size:var(--instui-component-text-input-font-size-sm)!important;background-color:var(--instui-component-view-background-primary)!important;color:var(--instui-component-text-base-color)!important}@supports (appearance:base-select){& ._pendo-multi-choice-poll-select-border[id^=pendo-select-container-]:has(>select:open):after{mask-image:var(--instui-icon-chevron-up)!important}& select._pendo-multi-choice-poll-select,& select._pendo-multi-choice-poll-select::picker(select){appearance:base-select!important}& select._pendo-multi-choice-poll-select::picker-icon{display:none!important}& select._pendo-multi-choice-poll-select::picker(select){border-radius:var(--instui-component-popover-border-radius)!important;border-width:var(--instui-component-shared-tokens-stroke-width-sm)!important;padding:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background-color:var(--instui-component-options-item-background)!important;border-style:solid!important;border-color:var(--instui-component-popover-border-color)!important;box-shadow:var(--instui-elevation-above)!important;overflow:hidden!important}& select._pendo-multi-choice-poll-select option{margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;font-family:var(--instui-component-options-item-font-family)!important;font-weight:var(--instui-component-options-item-font-weight)!important;font-size:var(--instui-font-size-text-sm)!important;letter-spacing:var(--instui-component-text-letter-spacing-normal)!important;cursor:pointer!important;line-height:var(--instui-component-options-item-line-height)!important;height:var(--instui-size-interactive-height-sm)!important;background-color:var(--instui-component-options-item-background)!important;color:var(--instui-component-options-item-color)!important;border-radius:0!important;&::checkmark{display:none!important}&:hover,&:focus{background-color:var(--instui-component-options-item-highlighted-background)!important;color:var(--instui-component-options-item-highlighted-label-color)!important}&:focus{outline:none!important}&:checked{font-weight:var(--instui-component-options-item-font-weight-selected)!important;padding-right:calc(var(--instui-component-options-item-padding-horizontal) + var(--instui-spacing-padding-interactive-horizontal-sm))!important;background-color:var(--instui-component-options-item-selected-background)!important;color:var(--instui-component-options-item-selected-label-color)!important;border-radius:0!important;position:relative!important;&:after{content:""!important;right:var(--instui-component-options-item-padding-horizontal)!important;width:var(--instui-component-icon-size-sm)!important;height:var(--instui-component-icon-size-sm)!important;mask-image:var(--instui-icon-check)!important;pointer-events:none!important;background-color:var(--instui-component-options-item-selected-label-color)!important;display:block!important;position:absolute!important;top:50%!important;transform:translateY(-50%)!important;mask-position:50%!important;mask-size:contain!important;mask-repeat:no-repeat!important}&:hover{background-color:var(--instui-component-menu-item-selected-highlighted-background)!important}}}}}[class*=instui]{& ._pendo-multi-choice-poll-select-border label.pendo-radio,&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]) :is([id*=survey-pmf-answers],[id*=survey-single-choice]) label.pendo-radio{font-family:var(--instui-component-radio-input-font-family)!important;font-weight:var(--instui-component-radio-input-font-weight)!important;font-size:var(--instui-component-radio-input-font-size-sm)!important;line-height:var(--instui-component-radio-input-line-height-sm)!important;letter-spacing:normal!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background-color:var(--instui-color-transparent-color)!important;color:var(--instui-component-radio-input-label-base-color)!important;font-style:normal!important;&:hover{color:var(--instui-component-radio-input-label-hover-color)!important}}& ._pendo-multi-choice-poll-select-border input.pendo-radio,&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]) :is([id*=survey-pmf-answers],[id*=survey-single-choice]) input.pendo-radio{width:var(--instui-component-shared-tokens-spacing-general-space-lg)!important;height:var(--instui-component-shared-tokens-spacing-general-space-lg)!important;border-radius:var(--instui-component-shared-tokens-border-radius-full)!important;border-width:var(--instui-component-radio-input-border-width)!important;margin:var(--instui-component-shared-tokens-spacing-general-space2xs) var(--instui-component-radio-input-gap) var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-none)!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;border-style:solid!important;border-color:var(--instui-component-radio-input-border-color)!important;background-color:var(--instui-component-radio-input-background-color)!important;transition:var(--instui-focus-outline-transition)!important;&:hover{background-color:var(--instui-component-radio-input-background-hover-color)!important;border-color:var(--instui-component-radio-input-border-readonly-color)!important}&:checked{box-shadow:var(--instui-component-radio-input-border-selected-color) inset 0 0 0 calc(var(--instui-component-radio-input-checked-inset-sm) / 2)!important;border-color:var(--instui-component-radio-input-border-selected-color)!important;&+label{background:var(--instui-color-transparent-color)!important;color:var(--instui-component-radio-input-label-base-color)!important}}&:focus{outline-color:var(--instui-focus-outline-color-start)!important;outline-width:var(--instui-component-shared-tokens-focus-outline-width)!important;outline-style:var(--instui-component-shared-tokens-focus-outline-style)!important;outline-offset:var(--instui-component-shared-tokens-focus-outline-offset)!important;outline-color:var(--instui-component-shared-tokens-focus-outline-info-color)!important;&+label{outline:none!important}}}& [class$=-poll-question]>._pendo-simple-text>._pendo-text-plain{font-family:var(--instui-component-form-field-layout-font-family)!important;font-weight:var(--instui-component-form-field-layout-font-weight)!important;font-size:var(--instui-component-form-field-layout-font-size)!important;line-height:var(--instui-component-form-field-layout-line-height)!important;letter-spacing:normal!important;margin:var(--instui-component-form-field-layout-gap-primitives) var(--instui-component-shared-tokens-spacing-general-space-none)!important;color:var(--instui-component-form-field-layout-text-color)!important;font-style:normal!important}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& :is([id*=survey-pmf-answers],[id*=survey-single-choice]){flex-direction:column!important;display:flex!important}& :is([id*=survey-pmf-answers],[id*=survey-single-choice]) span:has(.pendo-radio){text-align:left!important;flex-direction:row!important;justify-content:start!important;align-items:center!important;display:flex!important}}}}@layer instui.button{[class*=instui]{& ._pendo-button{height:var(--instui-component-base-button-small-height)!important;min-height:var(--instui-component-base-button-small-height)!important;padding:var(--instui-component-base-button-padding-vertical) var(--instui-component-base-button-small-padding-horizontal)!important;border-width:var(--instui-component-base-button-border-width)!important;border-radius:var(--instui-component-base-button-border-radius)!important;border-style:var(--instui-component-base-button-border-style)!important;font-family:var(--instui-component-base-button-font-family)!important;font-size:var(--instui-component-base-button-small-font-size)!important;font-weight:var(--instui-component-base-button-font-weight)!important;line-height:var(--instui-component-base-button-line-height)!important;letter-spacing:var(--instui-component-base-button-letter-spacing)!important;cursor:pointer!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-base-button-gap-button-content-md) var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-none)!important;.pendo-mock-flexbox-element:last-child>&{margin-right:var(--instui-component-shared-tokens-spacing-general-space-none)!important}}& ._pendo-button-primaryButton,& ._pendo-button-custom{background:var(--instui-component-base-button-primary-background)!important;border-color:var(--instui-component-base-button-primary-border-color)!important;color:var(--instui-component-base-button-primary-color)!important;&:hover{background:var(--instui-component-base-button-primary-hover-background)!important;border-color:var(--instui-component-base-button-primary-hover-border-color)!important;color:var(--instui-component-base-button-primary-hover-text-color)!important}&:active{background:var(--instui-component-base-button-primary-active-background)!important;border-color:var(--instui-component-base-button-primary-active-border-color)!important;color:var(--instui-component-base-button-primary-active-text-color)!important}&:disabled{background:var(--instui-component-base-button-primary-disabled-background-color)!important;border-color:var(--instui-component-base-button-primary-disabled-border-color)!important;color:var(--instui-component-base-button-primary-disabled-text-color)!important;cursor:not-allowed!important}}& ._pendo-button-secondaryButton{background:var(--instui-component-base-button-secondary-background)!important;border-color:var(--instui-component-base-button-secondary-border-color)!important;color:var(--instui-component-base-button-secondary-color)!important;&:hover{background:var(--instui-component-base-button-secondary-hover-background)!important;border-color:var(--instui-component-base-button-secondary-hover-border-color)!important;color:var(--instui-component-base-button-secondary-hover-text-color)!important}&:active{background:var(--instui-component-base-button-secondary-active-background)!important;border-color:var(--instui-component-base-button-secondary-active-border-color)!important;color:var(--instui-component-base-button-secondary-active-text-color)!important}&:disabled{background:var(--instui-component-base-button-secondary-disabled-background-color)!important;border-color:var(--instui-component-base-button-secondary-disabled-border-color)!important;color:var(--instui-component-base-button-secondary-disabled-text-color)!important;cursor:not-allowed!important}}& ._pendo-button-tertiaryButton{border-color:var(--instui-color-stroke-interactive-action-tertiary-base)!important;color:var(--instui-color-text-interactive-action-tertiary-base)!important;background:0 0!important;&:hover{background:var(--instui-color-background-interactive-action-tertiary-hover)!important;border-color:var(--instui-component-base-button-tertiary-hover-border-color)!important;color:var(--instui-component-base-button-tertiary-hover-text-color)!important}&:active{background:var(--instui-color-background-interactive-action-tertiary-active)!important;border-color:var(--instui-component-base-button-tertiary-active-border-color)!important;color:var(--instui-component-base-button-tertiary-active-text-color)!important}&:disabled{border-color:var(--instui-component-base-button-tertiary-disabled-border-color)!important;color:var(--instui-component-base-button-tertiary-disabled-text-color)!important;cursor:not-allowed!important;background:0 0!important}}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& div:has(>._pendo-button-primaryButton):not(:has(>:not(._pendo-button-primaryButton))){justify-content:center!important;display:flex!important}}}}@layer instui.pagination{[class*=instui]{& ._pendo-number-scale-poll-wrapper{padding:var(--instui-component-shared-tokens-spacing-general-space-none)!important}& .pendo-survey-wrapper>div:has(input[type=radio]),& ._pendo-nps-poll-wrapper,& [id*=survey-pmf-answers],& [id*=survey-single-choice]{padding:var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-none) var(--instui-component-shared-tokens-spacing-general-space-lg)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important}& ._pendo-number-scale-poll-wrapper>div[role*=radiogroup],& ._pendo-nps-poll-wrapper>div[role*=radiogroup],& .pendo-survey-wrapper>div:not([id*=survey-single-choice]):has(input[type=radio]){gap:var(--instui-component-shared-tokens-spacing-general-space-md)!important;flex-direction:row!important;width:fit-content!important;display:flex!important}& .pendo-survey-wrapper>div:not([id*=survey-single-choice]):has(input[type=radio])>span{position:relative!important}& .pendo-survey-wrapper>div:not([id*=survey-single-choice]):has(input[type=radio])>span>input[type=radio]{cursor:pointer!important;width:100%!important;height:100%!important;inset:0!important}& ._pendo-nps-poll-wrapper>div[role*=radiogroup]{justify-content:center!important;align-items:center!important;margin:0 auto!important}& label.pendo-radio[class*=_pendo-number-scale-poll-],& label.pendo-radio[class*=_pendo-nps-poll-],& .pendo-survey-wrapper>:not([id*=survey-single-choice]) label{height:var(--instui-component-base-button-small-height)!important;min-height:var(--instui-component-base-button-small-height)!important;width:var(--instui-component-base-button-small-height)!important;aspect-ratio:1!important;border-width:var(--instui-component-base-button-border-width)!important;border-radius:var(--instui-component-base-button-border-radius)!important;border-style:var(--instui-component-base-button-border-style)!important;font-size:var(--instui-component-base-button-small-font-size)!important;line-height:var(--instui-component-base-button-small-height)!important;letter-spacing:var(--instui-component-base-button-letter-spacing)!important;font-family:var(--instui-component-base-button-font-family)!important;font-weight:var(--instui-component-base-button-font-weight)!important;text-align:center!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;background:var(--instui-component-base-button-secondary-background)!important;border-color:var(--instui-component-base-button-secondary-border-color)!important;color:var(--instui-component-base-button-secondary-color)!important;transition:var(--instui-focus-outline-transition)!important;&:hover{background:var(--instui-component-base-button-secondary-hover-background)!important;border-color:var(--instui-component-base-button-secondary-hover-border-color)!important;color:var(--instui-component-base-button-secondary-hover-text-color)!important}&:active{background:var(--instui-component-base-button-secondary-active-background)!important;border-color:var(--instui-component-base-button-secondary-active-border-color)!important;color:var(--instui-component-base-button-secondary-active-text-color)!important}}& label.pendo-radio[class*=_pendo-number-scale-poll-]+[class$=-description],& .pendo-survey-wrapper>:not([id*=survey-single-choice]) label+div{width:var(--instui-component-base-button-small-height)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important;font-weight:var(--instui-component-metric-label-font-weight)!important;line-height:var(--instui-line-height-standalone-text-xs)!important;font-size:var(--instui-component-metric-label-font-size)!important;color:var(--instui-component-text-muted-color)!important}& [class*=-wrapper]:last-child,& .pendo-survey-wrapper>div:not([id*=survey-single-choice]):has(>span)>span:last-child{position:relative!important}& [class*=-wrapper]:last-child>[class$=-description],& .pendo-survey-wrapper div:not([id*=survey-single-choice]):has(>span):last-child>span:last-child>div{text-align:right!important;width:auto!important;position:absolute!important;right:0!important}& ._pendo-nps-poll-lowerbound-label,& ._pendo-nps-poll-upperbound-label{margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important}& input.pendo-radio:focus+label.pendo-radio[class*=_pendo-number-scale-poll-],& input.pendo-radio:focus+label.pendo-radio[class*=_pendo-nps-poll-],& .pendo-survey-wrapper>:not([id*=survey-single-choice]) input.pendo-radio:focus+label.pendo-radio,& .pendo-survey-wrapper>:not([id*=survey-single-choice]) input[type=radio]:focus+label{outline-color:var(--instui-focus-outline-color-start)!important;outline-width:var(--instui-component-shared-tokens-focus-outline-width)!important;outline-style:var(--instui-component-shared-tokens-focus-outline-style)!important;outline-offset:var(--instui-component-shared-tokens-focus-outline-offset)!important;outline-color:light-dark(var(--instui-component-shared-tokens-focus-outline-info-color),var(--instui-component-shared-tokens-focus-outline-on-color))!important}& input.pendo-radio:checked+label.pendo-radio[class*=_pendo-number-scale-poll-],& input.pendo-radio:checked+label.pendo-radio[class*=_pendo-nps-poll-],& .pendo-survey-wrapper>:not([id*=survey-single-choice]) input.pendo-radio:checked+label.pendo-radio,& .pendo-survey-wrapper>:not([id*=survey-single-choice]) input[type=radio]:checked+label{background:var(--instui-component-base-button-primary-background)!important;border-color:var(--instui-component-base-button-primary-border-color)!important;color:var(--instui-component-base-button-primary-color)!important;&:hover{background:var(--instui-component-base-button-primary-hover-background)!important;border-color:var(--instui-component-base-button-primary-hover-border-color)!important;color:var(--instui-component-base-button-primary-hover-text-color)!important}&:active{background:var(--instui-component-base-button-primary-active-background)!important;border-color:var(--instui-component-base-button-primary-active-border-color)!important;color:var(--instui-component-base-button-primary-active-text-color)!important}}& [class$=-poll-question]+._pendo-row [class$=-description]{padding-top:var(--instui-component-shared-tokens-spacing-general-space-xs)!important;color:var(--instui-component-text-muted-color)!important}}}@layer instui.mask{[class*=instui]{& ._pendo-backdrop{background-color:var(--instui-component-mask-background-color)!important}}}@layer instui.view{[class*=instui]{& .pendo-mock-flexbox-element:has(._pendo-divider){width:100%!important}& hr{border-width:var(--instui-component-shared-tokens-stroke-width-sm)!important;border-style:var(--instui-component-view-border-style)!important;margin:var(--instui-component-shared-tokens-spacing-general-space-xs) var(--instui-component-shared-tokens-spacing-general-space-none)!important;border-radius:var(--instui-component-shared-tokens-border-radius-full)!important;border-color:var(--instui-component-tabs-panel-border-color)!important}}}@layer instui.card{[class*=instui]{& ._pendo-row{margin-top:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin-right:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin-bottom:var(--instui-component-shared-tokens-spacing-general-space-sm)!important;margin-left:var(--instui-component-shared-tokens-spacing-general-space-none)!important;line-height:var(--instui-component-shared-tokens-spacing-general-space-none)!important}&[data-layout=lightboxBlank] ._pendo-row{margin-top:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin-right:var(--instui-component-shared-tokens-spacing-general-space-none)!important;margin-bottom:var(--instui-component-shared-tokens-spacing-gap-cards-sm)!important;margin-left:var(--instui-component-shared-tokens-spacing-general-space-none)!important}& [id*=guide-components]>:first-child ._pendo-row{margin-right:calc(var(--instui-component-base-button-gap-button-content-sm) + var(--instui-component-base-button-small-height))!important}&[data-layout=lightboxBlank] [id*=guide-components]>:first-child ._pendo-row{margin-right:calc(var(--instui-component-base-button-gap-button-content-sm) + var(--instui-component-base-button-small-height) / 2)!important}& .pendo-block-wrapper{margin:var(--instui-component-shared-tokens-spacing-general-space-none)!important}& ._pendo-text-paragraph._pendo-multi-choice-poll-question+._pendo-row .pendo-mock-flexbox-element,& ._pendo-multi-choice-poll-select-border,& ._pendo-multi-choice-poll-select{width:100%!important}& [data-pendo-justify-content] .pendo-mock-flexbox-row{flex-wrap:wrap!important;align-items:center!important;min-height:0!important;display:flex!important}& [data-pendo-justify-content=flex-start] .pendo-mock-flexbox-row{justify-content:flex-start!important}& [data-pendo-justify-content=center] .pendo-mock-flexbox-row{justify-content:center!important}& [data-pendo-justify-content=flex-end] .pendo-mock-flexbox-row{justify-content:flex-end!important}& [data-pendo-justify-content=space-between] .pendo-mock-flexbox-row{justify-content:space-between!important}& [data-pendo-justify-content] .pendo-mock-flexbox-row .pendo-mock-flexbox-element{position:static!important}& ._pendo-step-container-styles{background-color:var(--instui-component-view-background-primary)!important;color:var(--instui-component-view-color)!important;transition:var(--instui-focus-outline-transition)!important;&:focus-visible{outline:none!important}&:focus{outline-color:var(--instui-focus-outline-color-start)!important;outline-width:var(--instui-component-shared-tokens-focus-outline-width)!important;outline-style:var(--instui-component-shared-tokens-focus-outline-style)!important;outline-offset:var(--instui-component-shared-tokens-focus-outline-offset)!important;outline-color:light-dark(var(--instui-component-shared-tokens-focus-outline-info-color),var(--instui-component-shared-tokens-focus-outline-on-color))!important}}&._pendo-guide-walkthrough_:not([data-layout=tooltipBlank],[data-layout=lightboxBlank]){& ._pendo-step-container-styles>:is(div,form,textarea,h2):not(._pendo-row){margin:var(--instui-component-shared-tokens-spacing-general-space-none) auto var(--instui-component-shared-tokens-spacing-general-space-sm) auto!important;width:100%!important;max-width:var(--manual-light-pendo-embedded-pendo-step-container-styles-width)!important}& ._pendo-step-container-styles>._pendo-row{max-width:var(--manual-light-pendo-embedded-pendo-step-container-styles-width)!important;margin-left:auto!important;margin-right:auto!important}}}}@layer instui.focusOutline{[class*=instui]{--instui-focus-outline-color:var(--instui-component-shared-tokens-focus-outline-info-color);--instui-focus-outline-color-start:transparent;--instui-focus-outline-width:var(--instui-component-shared-tokens-focus-outline-width);--instui-focus-outline-offset:var(--instui-component-shared-tokens-focus-outline-offset);--instui-focus-outline-radius:var(--instui-border-radius-md);--instui-focus-outline-style:solid;--instui-focus-outline-transition:outline-color .2s, outline-offset .25s;--instui-focus-outline-color-success:var(--instui-component-shared-tokens-focus-outline-success-color);--instui-focus-outline-color-danger:var(--instui-component-shared-tokens-focus-outline-danger-color);--instui-focus-outline-color-inverse:var(--instui-component-shared-tokens-focus-outline-on-color);--instui-focus-outline-inset:0rem}:where(._pendo-button,._pendo-close-guide,._pendo-text-link){outline:var(--instui-focus-outline-width) var(--instui-focus-outline-style) var(--instui-focus-outline-color-start)!important;outline-offset:0!important;transition:var(--instui-focus-outline-transition)!important}:where(._pendo-button,._pendo-close-guide,._pendo-text-link):where(:focus-visible){outline-color:var(--instui-focus-outline-color)!important;outline-offset:var(--instui-focus-outline-offset)!important;border-radius:var(--instui-focus-outline-radius)!important}:where(.-focus-color-success):where(:focus-visible){outline-color:var(--instui-focus-outline-color-success)!important}:where(.-focus-color-danger):where(:focus-visible){outline-color:var(--instui-focus-outline-color-danger)!important}:where(.-focus-color-inverse):where(:focus-visible){outline-color:var(--instui-focus-outline-color-inverse)!important}:where(.-focus-position-inset):where(:focus-visible){outline-offset:var(--instui-focus-outline-inset)!important}:where(.-focus-within):where(:focus-within){outline-color:var(--instui-focus-outline-color)!important;outline-offset:var(--instui-focus-outline-offset)!important;border-radius:var(--instui-focus-outline-radius)!important}:where(.-without-focus-animation){transition:none!important}}}
@@ -0,0 +1,100 @@
1
+ import { Plugin } from "postcss";
2
+ import { Theme } from "@pantoken/model";
3
+
4
+ //#region src/build.d.ts
5
+ /** Options for {@link buildPendoCss}. */
6
+ interface BuildPendoCssOptions {
7
+ /** Theme to source the `--instui-*` layer from (default `"rebrand"`). */
8
+ theme?: Theme;
9
+ /** The `@scope` root selector (default `._pendo-step-container`). */
10
+ scopeSelector?: string;
11
+ /** Wrap component rules in `@scope` for DOM containment (default `true`). */
12
+ scope?: boolean;
13
+ /** Add `!important` to component declarations so they beat Pendo's styles (default `true`). */
14
+ important?: boolean;
15
+ /** Tree-shake unused `--instui-*` tokens (default `true`; off ships the full token set). */
16
+ prune?: boolean;
17
+ }
18
+ /**
19
+ * Build the Pendo guide stylesheet.
20
+ *
21
+ * @param options - {@link BuildPendoCssOptions}.
22
+ * @returns The composed CSS.
23
+ *
24
+ * @example Default rebrand build (scoped, !important, pruned)
25
+ * ```ts
26
+ * import { buildPendoCss } from "@pantoken/pendo";
27
+ *
28
+ * const css = buildPendoCss();
29
+ * ```
30
+ *
31
+ * @example Canvas theme, unscoped, keep the full token set
32
+ * ```ts
33
+ * import { buildPendoCss } from "@pantoken/pendo";
34
+ *
35
+ * const css = buildPendoCss({ theme: "canvas", scope: false, prune: false });
36
+ * ```
37
+ */
38
+ declare function buildPendoCss(options?: BuildPendoCssOptions): string;
39
+ //#endregion
40
+ //#region src/plugins/add-important.d.ts
41
+ /**
42
+ * Create the add-`!important` plugin.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * import postcss from "postcss";
47
+ * import { addImportant } from "@pantoken/pendo";
48
+ *
49
+ * const { css } = postcss([addImportant()]).process(".x{color:red}", { from: undefined });
50
+ * // ".x{color:red !important}"
51
+ * ```
52
+ */
53
+ declare function addImportant(): Plugin;
54
+ declare namespace addImportant {
55
+ var postcss: boolean;
56
+ }
57
+ //#endregion
58
+ //#region src/plugins/add-scope.d.ts
59
+ /** Options for {@link addScope}. */
60
+ interface AddScopeOptions {
61
+ /** The scope root selector (default `._pendo-step-container`). */
62
+ selector?: string;
63
+ }
64
+ /**
65
+ * Create the `@scope` wrapping plugin.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * import postcss from "postcss";
70
+ * import { addScope } from "@pantoken/pendo";
71
+ *
72
+ * const { css } = postcss([addScope({ selector: "._pendo-step-container" })])
73
+ * .process(".x{color:red}", { from: undefined });
74
+ * // "@scope (._pendo-step-container) { .x{color:red} }"
75
+ * ```
76
+ */
77
+ declare function addScope(options?: AddScopeOptions): Plugin;
78
+ declare namespace addScope {
79
+ var postcss: boolean;
80
+ }
81
+ //#endregion
82
+ //#region src/layers.d.ts
83
+ /**
84
+ * Cascade order (lowest → highest), from the source `layers.css`. Layered `!important` beats Pendo's
85
+ * own unlayered `!important`, so guide styles stay on top.
86
+ */
87
+ declare const LAYER_ORDER: readonly ["tokens", "elevation", "icons", "popover", "alert", "text", "closeButton", "img", "inputs", "button", "pagination", "mask", "view", "card", "manual", "focusOutline"];
88
+ /** A component's authored CSS and the cascade layer it belongs in. */
89
+ interface ComponentLayer {
90
+ layer: (typeof LAYER_ORDER)[number];
91
+ css: string;
92
+ }
93
+ /** The component CSS in cascade order (the `tokens` and `manual` layers are handled separately). */
94
+ declare const COMPONENTS: readonly ComponentLayer[];
95
+ //#endregion
96
+ //#region src/index.d.ts
97
+ /** The ready-made `rebrand` Pendo guide stylesheet (scoped, `!important`). */
98
+ declare const pendoCss: string;
99
+ //#endregion
100
+ export { type AddScopeOptions, type BuildPendoCssOptions, COMPONENTS, LAYER_ORDER, addImportant, addScope, buildPendoCss, pendoCss as default, pendoCss };
package/dist/index.mjs ADDED
@@ -0,0 +1,268 @@
1
+ import postcss from "postcss";
2
+ import { toCss } from "@pantoken/css";
3
+ import { elevationCss, focusOutlineDeclarations, focusOutlineRules } from "@pantoken/components";
4
+ import { byTheme } from "@pantoken/tokens";
5
+ import { pruneCustomProps } from "@pantoken/plugin-prune-custom-props";
6
+ //#region generated/embedded.ts
7
+ const alertCss = "/* Alert container (Embedded guides) */\n\n[class*=\"instui\"][data-layout=\"lightboxBlank\"] {\n /* Variant tokens — set on the container, inherited by all children */\n &,\n &[class*=\"instui-info\"] {\n --_alert-color: var(--instui-component-alert-info-border-color);\n --_alert-icon: var(--instui-icon-info);\n }\n\n &[class*=\"instui-danger\"] {\n --_alert-color: var(--instui-component-alert-danger-border-color);\n --_alert-icon: var(--instui-icon-circle-x);\n }\n\n &[class*=\"instui-success\"] {\n --_alert-color: var(--instui-component-alert-success-border-color);\n --_alert-icon: var(--instui-icon-circle-check);\n }\n\n &[class*=\"instui-warning\"] {\n --_alert-color: var(--instui-component-alert-warning-border-color);\n --_alert-icon: var(--instui-icon-triangle-alert);\n }\n\n &,\n ._pendo-step-container-size {\n margin-right: var(--instui-spacing-space2xs);\n margin-left: var(--instui-spacing-space2xs);\n max-width: var(--manual-light-pendo-embedded-pendo-step-container-styles-width);\n }\n\n ._pendo-step-container-size {\n /* Stack above the fixed backdrop (z-index: 200000) the same way the overlay guide does */\n z-index: 300000;\n /* prevent margin collapse from sibling content to preserve drop shadow */\n padding-bottom: calc(var(--instui-spacing-space-md));\n padding-top: var(--instui-spacing-space-sm);\n }\n\n ._pendo-step-container-styles {\n height: auto;\n border-color: var(--_alert-color);\n border-width: var(--instui-component-alert-border-width);\n border-style: var(--instui-component-alert-border-style);\n border-radius: var(--instui-component-alert-border-radius);\n overflow: hidden;\n padding: var(--instui-component-alert-content-padding-vertical)\n var(--instui-component-alert-content-padding-horizontal)\n var(--instui-component-alert-content-padding-vertical)\n calc(\n var(--manual-light-new-theme-components-alert-padding-left) +\n var(--instui-component-alert-content-padding-horizontal)\n );\n box-shadow: var(--instui-elevation-above);\n position: relative;\n /* gap-cards-md + box-shadow y + box-shadow spread */\n margin-bottom: var(--instui-spacing-space-md);\n margin-left: var(--instui-spacing-space-lg);\n margin-right: var(--instui-spacing-space-lg);\n margin-top: var(--instui-spacing-space-xs);\n\n /* Colored sidebar strip — clipped to border-radius by overflow: hidden */\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n overflow: hidden;\n inset-block: 0;\n left: 0;\n width: var(--manual-light-new-theme-components-alert-padding-left);\n background-color: var(--_alert-color);\n }\n\n /* Icon centered in the sidebar strip */\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: calc(\n (var(--manual-light-new-theme-components-alert-padding-left) -\n var(--instui-component-icon-size-md)) /\n 2\n );\n width: var(--instui-component-icon-size-md);\n height: var(--instui-component-icon-size-md);\n mask-image: var(--_alert-icon);\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n background-color: var(--instui-component-alert-icon-color);\n }\n }\n}\n";
8
+ const buttonCss = "/* Shared button base styles */\n[class*=\"instui\"] {\n ._pendo-button {\n height: var(--instui-component-base-button-small-height);\n min-height: var(--instui-component-base-button-small-height);\n padding: var(--instui-component-base-button-padding-vertical)\n var(--instui-component-base-button-small-padding-horizontal);\n border-width: var(--instui-component-base-button-border-width);\n border-radius: var(--instui-component-base-button-border-radius);\n border-style: var(--instui-component-base-button-border-style);\n font-family: var(--instui-component-base-button-font-family);\n font-size: var(--instui-component-base-button-small-font-size);\n font-weight: var(--instui-component-base-button-font-weight);\n line-height: var(--instui-component-base-button-line-height);\n letter-spacing: var(--instui-component-base-button-letter-spacing);\n cursor: pointer;\n margin: var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-base-button-gap-button-content-md)\n var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-none);\n\n .pendo-mock-flexbox-element:last-child > & {\n margin-right: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n }\n\n /* Primary/Custom button variant */\n ._pendo-button-primaryButton,\n ._pendo-button-custom {\n background: var(--instui-component-base-button-primary-background);\n border-color: var(--instui-component-base-button-primary-border-color);\n color: var(--instui-component-base-button-primary-color);\n\n &:hover {\n background: var(--instui-component-base-button-primary-hover-background);\n border-color: var(--instui-component-base-button-primary-hover-border-color);\n color: var(--instui-component-base-button-primary-hover-text-color);\n }\n\n &:active {\n background: var(--instui-component-base-button-primary-active-background);\n border-color: var(--instui-component-base-button-primary-active-border-color);\n color: var(--instui-component-base-button-primary-active-text-color);\n }\n\n &:disabled {\n background: var(--instui-component-base-button-primary-disabled-background-color);\n border-color: var(--instui-component-base-button-primary-disabled-border-color);\n color: var(--instui-component-base-button-primary-disabled-text-color);\n cursor: not-allowed;\n }\n }\n\n /* Secondary button variant */\n ._pendo-button-secondaryButton {\n background: var(--instui-component-base-button-secondary-background);\n border-color: var(--instui-component-base-button-secondary-border-color);\n color: var(--instui-component-base-button-secondary-color);\n\n &:hover {\n background: var(--instui-component-base-button-secondary-hover-background);\n border-color: var(--instui-component-base-button-secondary-hover-border-color);\n color: var(--instui-component-base-button-secondary-hover-text-color);\n }\n\n &:active {\n background: var(--instui-component-base-button-secondary-active-background);\n border-color: var(--instui-component-base-button-secondary-active-border-color);\n color: var(--instui-component-base-button-secondary-active-text-color);\n }\n\n &:disabled {\n background: var(--instui-component-base-button-secondary-disabled-background-color);\n border-color: var(--instui-component-base-button-secondary-disabled-border-color);\n color: var(--instui-component-base-button-secondary-disabled-text-color);\n cursor: not-allowed;\n }\n }\n\n /* Tertiary button variant */\n ._pendo-button-tertiaryButton {\n background: transparent;\n border-color: var(--instui-color-stroke-interactive-action-tertiary-base);\n color: var(--instui-color-text-interactive-action-tertiary-base);\n\n &:hover {\n background: var(--instui-color-background-interactive-action-tertiary-hover);\n border-color: var(--instui-component-base-button-tertiary-hover-border-color);\n color: var(--instui-component-base-button-tertiary-hover-text-color);\n }\n\n &:active {\n background: var(--instui-color-background-interactive-action-tertiary-active);\n border-color: var(--instui-component-base-button-tertiary-active-border-color);\n color: var(--instui-component-base-button-tertiary-active-text-color);\n }\n\n &:disabled {\n background: transparent;\n border-color: var(--instui-component-base-button-tertiary-disabled-border-color);\n color: var(--instui-component-base-button-tertiary-disabled-text-color);\n cursor: not-allowed;\n }\n }\n\n /* Surveys: Submit / Finish buttons */\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n /* Submit / Finish buttons: Center only if they're the only button in the container */\n div:has(> ._pendo-button-primaryButton):not(:has(> :not(._pendo-button-primaryButton))) {\n display: flex;\n justify-content: center;\n }\n }\n}\n";
9
+ const cardCss = "[class*=\"instui\"] {\n /* ─── Row spacing ─── */\n\n /* Row spacing in Popover layout */\n ._pendo-row {\n margin-top: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin-right: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin-bottom: var(--instui-component-shared-tokens-spacing-general-space-sm);\n margin-left: var(--instui-component-shared-tokens-spacing-general-space-none);\n line-height: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n /* Row spacing in Alert layout */\n &[data-layout=\"lightboxBlank\"] ._pendo-row {\n margin-top: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin-right: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin-bottom: var(--instui-component-shared-tokens-spacing-gap-cards-sm);\n margin-left: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n /* Close button spacing in Popover layout */\n [id*=\"guide-components\"] > :first-child ._pendo-row {\n margin-right: calc(\n var(--instui-component-base-button-gap-button-content-sm) +\n var(--instui-component-base-button-small-height)\n );\n }\n\n /* Close button spacing in Alert layout */\n &[data-layout=\"lightboxBlank\"] [id*=\"guide-components\"] > :first-child ._pendo-row {\n margin-right: calc(\n var(--instui-component-base-button-gap-button-content-sm) +\n var(--instui-component-base-button-small-height) / 2\n );\n }\n\n /* @TODO: Close button spacing in surveys */\n\n /* Content spacing */\n .pendo-block-wrapper {\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n ._pendo-text-paragraph._pendo-multi-choice-poll-question\n + ._pendo-row\n .pendo-mock-flexbox-element,\n ._pendo-multi-choice-poll-select-border,\n ._pendo-multi-choice-poll-select {\n width: 100%;\n }\n\n /* Flexbox\n * Pendo simulates flexbox with position:absolute on children, which collapses\n * the row height. Replace it with real flexbox derived from the\n * data-pendo-justify-content attribute so the row sizes to its content.\n */\n [data-pendo-justify-content] .pendo-mock-flexbox-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n min-height: 0;\n }\n\n [data-pendo-justify-content=\"flex-start\"] .pendo-mock-flexbox-row {\n justify-content: flex-start;\n }\n\n [data-pendo-justify-content=\"center\"] .pendo-mock-flexbox-row {\n justify-content: center;\n }\n\n [data-pendo-justify-content=\"flex-end\"] .pendo-mock-flexbox-row {\n justify-content: flex-end;\n }\n\n [data-pendo-justify-content=\"space-between\"] .pendo-mock-flexbox-row {\n justify-content: space-between;\n }\n\n /* Reset the absolute positioning Pendo inlines on each child element */\n [data-pendo-justify-content] .pendo-mock-flexbox-row .pendo-mock-flexbox-element {\n position: static;\n }\n\n /* Card container */\n ._pendo-step-container-styles {\n background-color: var(--instui-component-view-background-primary);\n color: var(--instui-component-view-color);\n transition: var(--instui-focus-outline-transition);\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus {\n outline-color: var(--instui-focus-outline-color-start);\n outline-width: var(--instui-component-shared-tokens-focus-outline-width);\n outline-style: var(--instui-component-shared-tokens-focus-outline-style);\n outline-offset: var(--instui-component-shared-tokens-focus-outline-offset);\n outline-color: light-dark(\n var(--instui-component-shared-tokens-focus-outline-info-color),\n var(--instui-component-shared-tokens-focus-outline-on-color)\n );\n }\n }\n\n /* Surveys */\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n /* Some surveys don't use `._pendo-row` for spacing, so add margin to direct children that aren't rows. */\n ._pendo-step-container-styles > :is(div, form, textarea, h2):not(._pendo-row) {\n margin: var(--instui-component-shared-tokens-spacing-general-space-none) auto\n var(--instui-component-shared-tokens-spacing-general-space-sm) auto;\n width: 100%;\n max-width: var(--manual-light-pendo-embedded-pendo-step-container-styles-width);\n }\n\n ._pendo-step-container-styles > ._pendo-row {\n max-width: var(--manual-light-pendo-embedded-pendo-step-container-styles-width);\n margin-left: auto;\n margin-right: auto;\n }\n }\n}\n";
10
+ const closeButtonCss = "[class*=\"instui\"] {\n ._pendo-close-guide {\n padding-bottom: var(--instui-component-shared-tokens-spacing-general-space-xs);\n height: var(--instui-component-base-button-small-height);\n aspect-ratio: 1;\n border-radius: var(--instui-component-base-button-border-radius);\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n border-width: var(--instui-component-shared-tokens-spacing-general-space-none);\n background-size: var(--instui-component-icon-size-sm);\n position: absolute;\n inset-inline: auto var(--instui-component-shared-tokens-spacing-general-space-xs);\n inset-block-start: var(--instui-component-shared-tokens-spacing-general-space-xs);\n font-size: var(--instui-font-size-text-lg);\n font-family: var(--instui-component-base-button-font-family);\n font-weight: var(--instui-primitive-font-weight-medium);\n color: var(--instui-component-text-base-color);\n\n background-color: transparent;\n\n &:hover {\n background-color: var(--instui-component-base-button-primary-ghost-hover-background);\n }\n\n &:active {\n background-color: var(--instui-component-base-button-primary-ghost-active-background);\n }\n }\n\n &[data-layout=\"lightboxBlank\"] ._pendo-close-guide {\n inset-block-start: var(--instui-component-alert-close-button-margin-top);\n inset-inline-end: var(--instui-component-alert-close-button-margin-right);\n }\n}\n";
11
+ const imgCss = "[class*=\"instui\"] {\n ._pendo-image {\n max-width: 100%;\n height: auto;\n }\n}\n";
12
+ const manualCss = "[class*=\"instui\"] {\n /* Focus outline is provided by @pantoken/components (the instui.focusOutline layer). */\n\n /* Components: Alert */\n --manual-light-pendo-embedded-pendo-step-container-styles-width: 59.25rem;\n --manual-light-new-theme-components-alert-padding-left: 2.5rem;\n\n /* Components: Popover */\n --manual-light-pendo-overlay-pendo-step-container-styles-width: 22.5rem;\n\n /* Components: TextArea */\n --instui-component-text-area-min-height: 4rem;\n --instui-component-text-area-max-height: 6rem;\n --instui-component-text-area-max-width: 20rem;\n\n /* Components; SVGIcon */\n --manual-icon-instui-line-parchment-logo: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTMuMDEgMTkyLjYiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIyNi4zMiAxNTQuNDhjMCA3LjM2LTUuOTcgMTMuMzYtMTMuMzYgMTMuMzZIMzguMTJjLTcuMzYgMC0xMy4zNi01Ljk3LTEzLjM2LTEzLjM2VjQwLjAxYzAtNy4zNiA1Ljk3LTEzLjM2IDEzLjM2LTEzLjM2aDEyNy42MVYxLjg5SDMzLjA1QzE0Ljc5IDEuODkgMCAxNi42OCAwIDM0Ljl2MTI0LjY1YzAgMTguMjYgMTQuNzkgMzMuMDUgMzMuMDUgMzMuMDVoMTg1LjA2YzE4LjI2IDAgMzMuMDUtMTQuNzkgMzMuMDUtMzMuMDV2LTcyLjMxaC0yNC43NnY2Ny4ybC0uMDcuMDRaIi8+PHBhdGggZD0iTTIzOC43MiAyOC41OGM3LjkgMCAxNC4yOS02LjM5IDE0LjI5LTE0LjI5UzI0Ni42MiAwIDIzOC43MiAwcz0xNC4yOSA2LjM5LTE0LjI5IDE0LjI5IDYuMzkgMTQuMjkgMTQuMjkgMTQuMjlaIi8+PHBhdGggZD0iTTE5Ni42NCAyOC41OGM3LjkgMCAxNC4yOS02LjM5IDE0LjI5LTE0LjI5UzIwNC41NCAwIDE5Ni42NCAwcz0xNC4yOSA2LjM5LTE0LjI5IDE0LjI5IDYuMzkgMTQuMjkgMTQuMjkgMTQuMjlaIi8+PHBhdGggZD0iTTIzOC43MiA0Mi4wOWMtNy45IDAtMTQuMjkgNi4zOS0xNC4yOSAxNC4yOXM2LjM5IDE0LjI5IDE0LjI5IDE0LjI5IDE0LjI5LTYuMzkgMTQuMjktMTQuMjktNi4zOS0xNC4yOS0xNC4yOS0xNC4yOVoiLz48Y2lyY2xlIGN4PSI3NC42IiBjeT0iMTE4LjE4IiByPSIyOS42MiIvPjwvc3ZnPg==\");\n --manual-icon-instui-line-learn-platform-logo: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjQgMTU1Ij48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiIGN4PSItNjAwNS44OCIgY3k9IjI2NDYuMjEiIHI9IjEuMzMiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg3MzQxLjMyIDY1NTQ4OC42MSkgcm90YXRlKDEyMS40KSBzY2FsZSgxMDAuNzYgMTAwLjgxKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9ImN1cnJlbnRDb2xvciIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iY3VycmVudENvbG9yIiBzdG9wLW9wYWNpdHk9Ii41Ii8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTMyMC4yNCAxMzEuMjdjLTIzLjI1IDE3LjE3LTU0Ljk0IDE3LjMzLTc4LjM3LjQxbDMuNDItNC43MmMtMjEuNTYtMTUuNDUtMzAuNjYtNDMuMDQtMjIuNTItNjguMjdsNS41NSAxLjA1YzcuNjUtMjIuNiAyOC45LTM3Ljc3IDUyLjc4LTM3LjY5VjBjLTMzLjYuMDQtNjMuMzUgMjEuNjktNzMuNyA1My42My0xMC4zNSAzMS45NCAxLjA2IDY2LjkxIDI4LjI2IDg2LjYxIDI3LjIgMTkuNzEgNjQgMTkuNjcgOTEuMTctLjA4IDI3LjE2LTE5Ljc2IDM4LjUxLTU0Ljc0IDI4LjEtODYuNjZsLTUuMTEgMS42NmM5Ljg5IDI5LjgtLjYxIDYyLjU2LTI1Ljk5IDgxLjA3Ii8+PC9zdmc+\");\n}\n";
13
+ const maskCss = "[class*=\"instui\"] {\n ._pendo-backdrop {\n background-color: var(--instui-component-mask-background-color);\n }\n}\n";
14
+ const paginationCss = "/*\n * Pendo Number Scale Poll is an HTML radio input with labels styled like buttons,\n * so we implement it like a Pagination component with colors set to\n * secondary / tertiary instead of primary / secondary.\n */\n\n[class*=\"instui\"] {\n ._pendo-number-scale-poll-wrapper {\n padding: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n .pendo-survey-wrapper > div:has(input[type=\"radio\"]),\n ._pendo-nps-poll-wrapper,\n [id*=\"survey-pmf-answers\"],\n [id*=\"survey-single-choice\"] {\n padding: var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-lg);\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n ._pendo-number-scale-poll-wrapper > div[role*=\"radiogroup\"],\n ._pendo-nps-poll-wrapper > div[role*=\"radiogroup\"],\n .pendo-survey-wrapper > div:not([id*=\"survey-single-choice\"]):has(input[type=\"radio\"]) {\n gap: var(--instui-component-shared-tokens-spacing-general-space-md);\n display: flex;\n flex-direction: row;\n width: fit-content;\n }\n\n /*\n * UX-Lite (and similar) surveys emit radio inputs without id/for linkage\n * between input and label. Expand the hidden input to cover its container\n * so clicking the visible label area actually activates the radio.\n */\n .pendo-survey-wrapper > div:not([id*=\"survey-single-choice\"]):has(input[type=\"radio\"]) > span {\n position: relative;\n }\n\n .pendo-survey-wrapper\n > div:not([id*=\"survey-single-choice\"]):has(input[type=\"radio\"])\n > span\n > input[type=\"radio\"] {\n inset: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n }\n\n ._pendo-nps-poll-wrapper > div[role*=\"radiogroup\"] {\n align-items: center;\n justify-content: center;\n margin: 0 auto;\n }\n\n label.pendo-radio[class*=\"_pendo-number-scale-poll-\"],\n label.pendo-radio[class*=\"_pendo-nps-poll-\"],\n .pendo-survey-wrapper > :not([id*=\"survey-single-choice\"]) label {\n height: var(--instui-component-base-button-small-height);\n min-height: var(--instui-component-base-button-small-height);\n width: var(--instui-component-base-button-small-height);\n aspect-ratio: 1 / 1;\n border-width: var(--instui-component-base-button-border-width);\n border-radius: var(--instui-component-base-button-border-radius);\n border-style: var(--instui-component-base-button-border-style);\n font-size: var(--instui-component-base-button-small-font-size);\n /* Line height is set to the button height to center the text vertically, and because the text will always be one line. */\n line-height: var(--instui-component-base-button-small-height);\n letter-spacing: var(--instui-component-base-button-letter-spacing);\n font-family: var(--instui-component-base-button-font-family);\n font-weight: var(--instui-component-base-button-font-weight);\n text-align: center;\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n background: var(--instui-component-base-button-secondary-background);\n border-color: var(--instui-component-base-button-secondary-border-color);\n color: var(--instui-component-base-button-secondary-color);\n transition: var(--instui-focus-outline-transition);\n\n &:hover {\n background: var(--instui-component-base-button-secondary-hover-background);\n border-color: var(--instui-component-base-button-secondary-hover-border-color);\n color: var(--instui-component-base-button-secondary-hover-text-color);\n }\n\n &:active {\n background: var(--instui-component-base-button-secondary-active-background);\n border-color: var(--instui-component-base-button-secondary-active-border-color);\n color: var(--instui-component-base-button-secondary-active-text-color);\n }\n }\n\n /* Number scale description */\n label.pendo-radio[class*=\"_pendo-number-scale-poll-\"] + [class$=\"-description\"],\n .pendo-survey-wrapper > :not([id*=\"survey-single-choice\"]) label + div {\n width: var(--instui-component-base-button-small-height);\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n font-weight: var(--instui-component-metric-label-font-weight);\n line-height: var(--instui-line-height-standalone-text-xs);\n font-size: var(--instui-component-metric-label-font-size);\n color: var(--instui-component-text-muted-color);\n }\n\n /* Right-align the last description so it anchors to the last button's right edge */\n [class*=\"-wrapper\"]:last-child,\n .pendo-survey-wrapper > div:not([id*=\"survey-single-choice\"]):has(> span) > span:last-child {\n position: relative;\n }\n\n [class*=\"-wrapper\"]:last-child > [class$=\"-description\"],\n .pendo-survey-wrapper\n div:not([id*=\"survey-single-choice\"]):has(> span):last-child\n > span:last-child\n > div {\n position: absolute;\n width: auto;\n text-align: right;\n right: 0;\n }\n\n /* NPS label sits left/right of scale, not below */\n ._pendo-nps-poll-lowerbound-label,\n ._pendo-nps-poll-upperbound-label {\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n input.pendo-radio:focus + label.pendo-radio[class*=\"_pendo-number-scale-poll-\"],\n input.pendo-radio:focus + label.pendo-radio[class*=\"_pendo-nps-poll-\"],\n .pendo-survey-wrapper\n > :not([id*=\"survey-single-choice\"])\n input.pendo-radio:focus\n + label.pendo-radio,\n .pendo-survey-wrapper > :not([id*=\"survey-single-choice\"]) input[type=\"radio\"]:focus + label {\n outline-color: var(--instui-focus-outline-color-start);\n outline-width: var(--instui-component-shared-tokens-focus-outline-width);\n outline-style: var(--instui-component-shared-tokens-focus-outline-style);\n outline-offset: var(--instui-component-shared-tokens-focus-outline-offset);\n outline-color: light-dark(\n var(--instui-component-shared-tokens-focus-outline-info-color),\n var(--instui-component-shared-tokens-focus-outline-on-color)\n );\n }\n\n input.pendo-radio:checked + label.pendo-radio[class*=\"_pendo-number-scale-poll-\"],\n input.pendo-radio:checked + label.pendo-radio[class*=\"_pendo-nps-poll-\"],\n .pendo-survey-wrapper\n > :not([id*=\"survey-single-choice\"])\n input.pendo-radio:checked\n + label.pendo-radio,\n .pendo-survey-wrapper > :not([id*=\"survey-single-choice\"]) input[type=\"radio\"]:checked + label {\n background: var(--instui-component-base-button-primary-background);\n border-color: var(--instui-component-base-button-primary-border-color);\n color: var(--instui-component-base-button-primary-color);\n\n &:hover {\n background: var(--instui-component-base-button-primary-hover-background);\n border-color: var(--instui-component-base-button-primary-hover-border-color);\n color: var(--instui-component-base-button-primary-hover-text-color);\n }\n\n &:active {\n background: var(--instui-component-base-button-primary-active-background);\n border-color: var(--instui-component-base-button-primary-active-border-color);\n color: var(--instui-component-base-button-primary-active-text-color);\n }\n }\n\n [class$=\"-poll-question\"] + ._pendo-row [class$=\"-description\"] {\n padding-top: var(--instui-component-shared-tokens-spacing-general-space-xs);\n color: var(--instui-component-text-muted-color);\n }\n}\n";
15
+ const popoverCss = "/* Popover container (Overlay guides + surveys) */\n[class*=\"instui\"]:is([data-layout=\"tooltipBlank\"], ._pendo-guide-walkthrough_) {\n ._pendo-step-container-size {\n height: auto;\n }\n\n ._pendo-step-container-styles {\n min-height: 2.75rem;\n /* @TODO: overflow-y causes scrollbar to break border-radius */\n /* 2x border radius + 2x caret size */\n border-radius: var(--instui-component-popover-border-radius);\n border-color: var(--instui-component-popover-border-color);\n box-shadow: var(--instui-elevation-above);\n /* gap-cards-md + box-shadow y + box-shadow spread */\n margin-bottom: calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md));\n margin-left: var(--instui-component-shared-tokens-spacing-general-space-md);\n margin-right: var(--instui-component-shared-tokens-spacing-general-space-md);\n margin-top: var(--instui-component-shared-tokens-spacing-general-space-xs);\n }\n\n .pendo-tooltip-caret {\n --caret-color: var(--instui-component-view-background-primary);\n\n /* Pendo positions carets against _pendo-step-container-size, but our box\n * carries margins (for box-shadow room + spacing), so the caret lands at the\n * margin edge instead of touching the box. Pull each caret back toward the\n * box by its margin so it sits flush (1px overlap under the border). The\n * build adds !important, which overrides Pendo's dynamic inline offsets. */\n &.pendo-tooltip-caret--top {\n border-top-color: var(--caret-color);\n /* sits below the box: shift up by margin-bottom */\n bottom: calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md) - 15px);\n\n & + .pendo-tooltip-caret-border {\n bottom: calc(4px + var(--instui-component-shared-tokens-spacing-gap-cards-md) - 16px);\n }\n }\n\n &.pendo-tooltip-caret--right {\n border-right-color: var(--caret-color);\n left: -3px;\n\n & + .pendo-tooltip-caret-border {\n left: -4px;\n }\n }\n\n &.pendo-tooltip-caret--bottom {\n border-bottom-color: var(--caret-color);\n /* sits above the box: shift down by margin-top */\n top: calc(var(--instui-component-shared-tokens-spacing-general-space-xs) - 15px);\n\n & + .pendo-tooltip-caret-border {\n top: calc(var(--instui-component-shared-tokens-spacing-general-space-xs) - 16px);\n }\n }\n\n &.pendo-tooltip-caret--left {\n border-left-color: var(--caret-color);\n right: -3px;\n\n & + .pendo-tooltip-caret-border {\n right: -4px;\n }\n }\n }\n\n /* Overlay Guides */\n &[data-layout=\"tooltipBlank\"] {\n ._pendo-step-container-styles {\n width: var(--manual-light-pendo-overlay-pendo-step-container-styles-width);\n padding: var(--instui-component-shared-tokens-spacing-padding-card-sm)\n var(--instui-component-shared-tokens-spacing-padding-card-sm)\n var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n }\n\n /* Surveys */\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n ._pendo-step-container-styles {\n width: auto;\n padding: var(--instui-component-shared-tokens-spacing-padding-card-lg)\n var(--instui-component-shared-tokens-spacing-padding-card-lg)\n var(--instui-component-shared-tokens-spacing-general-space-sm);\n /* Cuts off box-shadow, but Surveys are anchored to bottom of viewport */\n margin-bottom: var(--instui-component-shared-tokens-spacing-general-space-md);\n }\n\n &:not(:has(._pendo-row)) {\n ._pendo-step-container-styles {\n padding-bottom: var(--instui-component-shared-tokens-spacing-padding-card-sm);\n }\n }\n }\n}\n";
16
+ const radioGroupCss = "[class*=\"instui\"] {\n /* Radio label */\n ._pendo-multi-choice-poll-select-border label.pendo-radio,\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"])\n :is([id*=\"survey-pmf-answers\"], [id*=\"survey-single-choice\"])\n label.pendo-radio {\n font-family: var(--instui-component-radio-input-font-family);\n font-weight: var(--instui-component-radio-input-font-weight);\n font-size: var(--instui-component-radio-input-font-size-sm);\n line-height: var(--instui-component-radio-input-line-height-sm);\n letter-spacing: normal;\n font-style: normal;\n /* @TODO: --instui-component-radio-input-control-size-sm should not scale, remove override. */\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n background-color: var(--instui-color-transparent-color);\n color: var(--instui-component-radio-input-label-base-color);\n\n &:hover {\n color: var(--instui-component-radio-input-label-hover-color);\n }\n }\n\n /* Radio input */\n ._pendo-multi-choice-poll-select-border input.pendo-radio,\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"])\n :is([id*=\"survey-pmf-answers\"], [id*=\"survey-single-choice\"])\n input.pendo-radio {\n /* @TODO: --instui-component-radio-input-control-size-sm should not scale, remove override. */\n width: var(--instui-component-shared-tokens-spacing-general-space-lg);\n height: var(--instui-component-shared-tokens-spacing-general-space-lg);\n border-radius: var(--instui-component-shared-tokens-border-radius-full);\n border-width: var(--instui-component-radio-input-border-width);\n border-style: solid;\n margin: var(--instui-component-shared-tokens-spacing-general-space2xs)\n var(--instui-component-radio-input-gap)\n var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-none);\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-color: var(--instui-component-radio-input-border-color);\n background-color: var(--instui-component-radio-input-background-color);\n transition: var(--instui-focus-outline-transition);\n\n &:hover {\n background-color: var(--instui-component-radio-input-background-hover-color);\n border-color: var(--instui-component-radio-input-border-readonly-color);\n }\n\n &:checked {\n /* @TODO: --instui-component-radio-input-control-size-sm should not scale, remove override. */\n box-shadow: var(--instui-component-radio-input-border-selected-color) inset 0 0 0\n calc(var(--instui-component-radio-input-checked-inset-sm) / 2);\n border-color: var(--instui-component-radio-input-border-selected-color);\n\n + label {\n background: var(--instui-color-transparent-color);\n color: var(--instui-component-radio-input-label-base-color);\n }\n }\n\n &:focus {\n outline-color: var(--instui-focus-outline-color-start);\n outline-width: var(--instui-component-shared-tokens-focus-outline-width);\n outline-style: var(--instui-component-shared-tokens-focus-outline-style);\n outline-offset: var(--instui-component-shared-tokens-focus-outline-offset);\n outline-color: var(--instui-component-shared-tokens-focus-outline-info-color);\n\n + label {\n outline: none;\n }\n }\n }\n\n /* Form field label */\n [class$=\"-poll-question\"] > ._pendo-simple-text > ._pendo-text-plain {\n font-family: var(--instui-component-form-field-layout-font-family);\n font-weight: var(--instui-component-form-field-layout-font-weight);\n font-size: var(--instui-component-form-field-layout-font-size);\n line-height: var(--instui-component-form-field-layout-line-height);\n letter-spacing: normal;\n font-style: normal;\n margin: var(--instui-component-form-field-layout-gap-primitives)\n var(--instui-component-shared-tokens-spacing-general-space-none);\n color: var(--instui-component-form-field-layout-text-color);\n }\n\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n :is([id*=\"survey-pmf-answers\"], [id*=\"survey-single-choice\"]) {\n display: flex;\n flex-direction: column;\n }\n\n /* PMF survey inputs are inline-block by default, override to stack vertically. */\n :is([id*=\"survey-pmf-answers\"], [id*=\"survey-single-choice\"]) span:has(.pendo-radio) {\n display: flex;\n flex-direction: row;\n justify-content: start;\n align-items: center;\n text-align: left;\n }\n }\n}\n";
17
+ const selectCss = "[class*=\"instui\"] {\n ._pendo-multi-choice-poll-select-border[id^=\"pendo-select-container-\"]:has(> select) {\n border: 0 none;\n background: none;\n padding: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n position: relative;\n\n /* Chevron icon — mask-image approach for automatic light/dark theming */\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n right: var(--instui-component-text-input-padding-horizontal-sm);\n top: var(--instui-component-shared-tokens-spacing-general-space-lg);\n transform: translateY(-50%);\n width: var(--instui-component-icon-size-sm);\n height: var(--instui-component-icon-size-sm);\n mask-image: var(--instui-icon-chevron-down);\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n pointer-events: none;\n background-color: var(--instui-component-text-input-text-color);\n }\n }\n\n /* Select input */\n select._pendo-multi-choice-poll-select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n height: var(--instui-component-text-input-height-sm);\n border-radius: var(--instui-component-text-input-border-radius);\n border-width: var(--instui-component-text-input-border-width);\n /* @TODO: Text input border style token missing upstream */\n border-style: solid;\n padding: var(--instui-component-shared-tokens-spacing-general-space-none)\n calc(var(--instui-component-text-input-padding-horizontal-sm) + 24px)\n var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-text-input-padding-horizontal-sm);\n font-family: var(--instui-component-text-input-font-family);\n font-weight: var(--instui-component-text-input-font-weight);\n font-size: var(--instui-component-text-input-font-size-sm);\n /* Chromium needs larger line-height to visually center vertically */\n line-height: calc(var(--instui-line-height-standalone-text-base) * 2);\n letter-spacing: normal;\n font-style: normal;\n background-color: var(--instui-component-text-input-background-color);\n color: var(--instui-component-text-input-text-color);\n border-color: var(--instui-component-text-input-border-color);\n transition: var(--instui-focus-outline-transition);\n\n &:hover {\n background-color: var(--instui-component-text-input-background-hover-color);\n border-color: var(--instui-component-text-input-border-hover-color);\n }\n\n &:focus {\n outline-color: var(--instui-focus-outline-color-start);\n outline-width: var(--instui-component-shared-tokens-focus-outline-width);\n outline-style: var(--instui-component-shared-tokens-focus-outline-style);\n outline-offset: var(--instui-component-shared-tokens-focus-outline-offset);\n outline-color: var(--instui-component-shared-tokens-focus-outline-info-color);\n background-color: var(--instui-component-text-input-background-color);\n }\n }\n\n /* ─── Select Option | Light/Dark (fallback) ─── */\n /* <option> elements are OS-rendered; light-dark() provides the fallback before @supports base-select */\n select._pendo-multi-choice-poll-select option {\n font-family: var(--instui-component-text-input-font-family);\n font-weight: var(--instui-component-text-input-font-weight);\n font-size: var(--instui-component-text-input-font-size-sm);\n background-color: var(--instui-component-view-background-primary);\n color: var(--instui-component-text-base-color);\n }\n\n /* ─── Select Option | Chromium: customizable select (appearance: base-select) ─── */\n @supports (appearance: base-select) {\n /* Rotate chevron when open */\n ._pendo-multi-choice-poll-select-border[id^=\"pendo-select-container-\"]:has(\n > select:open\n )::after {\n mask-image: var(--instui-icon-chevron-up);\n }\n\n /* Opt the <select> into the new model */\n select._pendo-multi-choice-poll-select,\n select._pendo-multi-choice-poll-select::picker(select) {\n appearance: base-select;\n }\n\n /* Hide the browser-generated picker icon — we supply our own via mask-image on the container */\n select._pendo-multi-choice-poll-select::picker-icon {\n display: none;\n }\n\n /* ─── Picker panel ─── */\n select._pendo-multi-choice-poll-select::picker(select) {\n border-radius: var(--instui-component-popover-border-radius);\n border-width: var(--instui-component-shared-tokens-stroke-width-sm);\n border-style: solid;\n overflow: hidden;\n padding: var(--instui-component-shared-tokens-spacing-general-space-none);\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n background-color: var(--instui-component-options-item-background);\n border-color: var(--instui-component-popover-border-color);\n box-shadow: var(--instui-elevation-above);\n }\n\n /* ─── Options ─── */\n select._pendo-multi-choice-poll-select option {\n border-radius: 0;\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n font-family: var(--instui-component-options-item-font-family);\n font-weight: var(--instui-component-options-item-font-weight);\n font-size: var(--instui-font-size-text-sm);\n letter-spacing: var(--instui-component-text-letter-spacing-normal);\n cursor: pointer;\n line-height: var(--instui-component-options-item-line-height);\n height: var(--instui-size-interactive-height-sm);\n background-color: var(--instui-component-options-item-background);\n color: var(--instui-component-options-item-color);\n\n /* Hide default browser checkmark — custom icon applied via mask-image on :checked::after */\n &::checkmark {\n display: none;\n }\n\n &:hover,\n &:focus {\n background-color: var(--instui-component-options-item-highlighted-background);\n color: var(--instui-component-options-item-highlighted-label-color);\n }\n\n &:focus {\n outline: none;\n }\n\n &:checked {\n font-weight: var(--instui-component-options-item-font-weight-selected);\n border-radius: 0;\n padding-right: calc(\n var(--instui-component-options-item-padding-horizontal) +\n var(--instui-spacing-padding-interactive-horizontal-sm)\n );\n position: relative;\n background-color: var(--instui-component-options-item-selected-background);\n color: var(--instui-component-options-item-selected-label-color);\n\n /* Check icon — mask-image approach for automatic light/dark theming */\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n right: var(--instui-component-options-item-padding-horizontal);\n top: 50%;\n transform: translateY(-50%);\n width: var(--instui-component-icon-size-sm);\n height: var(--instui-component-icon-size-sm);\n mask-image: var(--instui-icon-check);\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n pointer-events: none;\n background-color: var(--instui-component-options-item-selected-label-color);\n }\n\n &:hover {\n background-color: var(--instui-component-menu-item-selected-highlighted-background);\n }\n }\n }\n }\n}\n";
18
+ const textCss = "[class*=\"instui\"] {\n /* Shared base text styles */\n ._pendo-simple-text,\n [class*=\"_pendo-text-\"] {\n font-family: var(--instui-component-text-content-small-font-family);\n font-weight: var(--instui-component-text-content-small-font-weight);\n font-size: var(--instui-component-text-content-small-font-size);\n line-height: var(--instui-component-text-content-small-line-height);\n letter-spacing: var(--instui-component-text-letter-spacing-normal);\n color: var(--instui-component-text-base-color);\n max-width: 100%;\n }\n\n ._pendo-text-bold {\n font-weight: var(--instui-component-text-content-important-font-weight);\n }\n\n ._pendo-text-italic {\n font-family: var(--instui-component-text-content-important-font-family);\n font-weight: var(--instui-component-text-content-important-font-weight);\n line-height: var(--instui-component-text-content-important-line-height);\n }\n\n ._pendo-text-strike {\n text-decoration: line-through;\n }\n\n /* Heading h2 styles */\n h2:is(._pendo-simple-text, ._pendo-text-title) {\n font-weight: var(--instui-component-heading-title-card-regular-font-weight);\n font-family: var(--instui-component-heading-title-card-regular-font-family);\n line-height: var(--instui-component-heading-title-card-regular-line-height);\n font-size: var(--instui-component-heading-title-card-large-font-size);\n }\n\n /* Subheading h3 styles */\n h3._pendo-simple-text {\n font-weight: var(--instui-component-heading-title-card-large-font-weight);\n font-size: var(--instui-component-heading-title-card-regular-font-size);\n font-family: var(--instui-component-heading-title-card-large-font-family);\n line-height: var(--instui-component-heading-title-card-large-line-height);\n }\n\n /* Tooltip (popover) heading overrides */\n &[data-layout=\"tooltipBlank\"] {\n h2._pendo-simple-text {\n font-size: var(--instui-component-heading-title-card-regular-font-size);\n line-height: var(--instui-component-heading-title-card-mini-line-height);\n }\n\n h3._pendo-simple-text {\n font-size: var(--instui-component-heading-title-card-mini-font-size);\n line-height: var(--instui-component-heading-title-card-regular-line-height);\n }\n }\n\n /* Link styles */\n ._pendo-text-link {\n text-decoration: var(--instui-component-link-text-decoration-within-text);\n font-weight: var(--instui-component-link-font-weight);\n /* border-radius added to ensure focus outline has rounded corners, matching the shape of the link text */\n border-radius: var(--instui-component-shared-tokens-border-radius-sm);\n color: var(--instui-component-link-text-color);\n\n &:is(:hover, :active, :focus) {\n color: var(--instui-component-link-text-hover-color);\n }\n\n &:disabled {\n color: var(--instui-component-link-text-disabled-color);\n }\n }\n\n /* List styles */\n ._pendo-simple-text ol,\n ._pendo-simple-text ul {\n padding-left: var(--instui-component-shared-tokens-spacing-general-space-none);\n }\n\n /* Surveys*/\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n /* @TODO: Surveys are terrible, clean this up. */\n\n & *:not(._pendo-close-guide) {\n font-size: var(--instui-component-heading-title-card-mini-font-size);\n }\n\n &,\n /* PMF Thank You text\n * @TODO: validate selector, ._pendo-simple-text does not have span nested\n */\n ._pendo-row:has(+ ._pendo-row > ._pendo-button-primaryButton) ._pendo-simple-text:has(> span:not([class])),\n /* UX Lite question labels (exclude form control wrappers with inputs) */\n .pendo-survey-wrapper>div:not(:has([class])):not(:has(input)),\n h2._pendo-simple-text,\n h2._pendo-text-title ._pendo-simple-text,\n ._pendo-simple-text._pendo-nps-open-text-poll-question {\n font-weight: var(--instui-component-heading-title-card-mini-font-weight);\n font-family: var(--instui-component-heading-title-card-mini-font-family);\n font-size: var(--instui-component-heading-title-card-mini-font-size);\n line-height: var(--instui-component-heading-title-card-mini-line-height);\n margin: var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-none)\n var(--instui-component-shared-tokens-spacing-general-space-sm);\n }\n\n /* NPS question labels */\n h2._pendo-text-title ._pendo-simple-text,\n ._pendo-simple-text._pendo-nps-open-text-poll-question {\n text-align: left;\n }\n\n /* NPS/survey completion messages */\n h2._pendo-text-title._pendo-nps-poll-success-message ._pendo-simple-text {\n text-align: center;\n }\n\n /* NPS label sits left/right of scale, not below */\n ._pendo-nps-poll-lowerbound-label,\n ._pendo-nps-poll-upperbound-label {\n font-style: normal;\n font-size: var(--instui-component-metric-label-font-size);\n font-weight: var(--instui-component-metric-label-font-weight);\n line-height: var(--instui-line-height-standalone-text-xs);\n text-align: center;\n color: var(--instui-component-text-muted-color);\n }\n\n /* UX Lite & CSAT scale labels */\n .pendo-survey-wrapper label + div {\n font-size: var(--instui-component-metric-label-font-size);\n padding-top: var(--instui-component-shared-tokens-spacing-general-space-xs);\n text-align: left;\n }\n }\n}\n";
19
+ const textareaCss = "[class*=\"instui\"] {\n ._pendo-row:has(._pendo-open-text-poll-input) {\n height: auto;\n }\n\n ._pendo-row:has(._pendo-open-text-poll-input) .pendo-mock-flexbox-row {\n height: auto;\n min-height: unset;\n }\n\n ._pendo-row:has(._pendo-open-text-poll-input) .pendo-mock-flexbox-element {\n position: static;\n width: 100%;\n }\n\n /* TextArea */\n ._pendo-open-text-poll-input {\n border-radius: var(--instui-component-text-area-border-radius);\n border-width: var(--instui-component-text-area-border-width);\n border-style: solid;\n padding: var(--instui-component-text-area-padding);\n gap: var(--instui-component-text-area-gap-content);\n min-height: var(--instui-component-text-area-min-height);\n height: auto;\n max-height: var(--instui-component-text-area-max-height);\n width: 100%;\n font-family: var(--instui-component-text-area-font-family);\n font-weight: var(--instui-component-text-area-font-weight);\n font-size: var(--instui-component-text-area-font-size-sm);\n line-height: var(--instui-line-height-standalone-text-base);\n letter-spacing: normal;\n font-style: normal;\n margin: var(--instui-component-shared-tokens-spacing-general-space-none);\n background-color: var(--instui-component-text-area-background-color);\n color: var(--instui-component-text-area-text-color);\n border-color: var(--instui-component-text-area-border-color);\n transition: var(--instui-focus-outline-transition);\n\n &:hover {\n background: var(--instui-component-text-area-background-hover-color);\n border-color: var(--instui-component-text-area-border-hover-color);\n }\n\n &:focus {\n outline-color: var(--instui-focus-outline-color-start);\n outline-width: var(--instui-component-shared-tokens-focus-outline-width);\n outline-style: var(--instui-component-shared-tokens-focus-outline-style);\n outline-offset: var(--instui-component-shared-tokens-focus-outline-offset);\n outline-color: var(--instui-component-shared-tokens-focus-outline-info-color);\n background-color: var(--instui-component-text-area-background-color);\n border-color: var(--instui-component-text-area-border-color);\n }\n\n &::placeholder {\n color: var(--instui-component-text-area-placeholder-color);\n }\n\n &:hover::placeholder {\n color: var(--instui-component-text-area-placeholder-hover-color);\n }\n }\n\n &._pendo-guide-walkthrough_:not([data-layout=\"tooltipBlank\"], [data-layout=\"lightboxBlank\"]) {\n ._pendo-open-text-poll-input {\n /* PMF Survey does not have `rows` attribute, so manually set to match other surveys */\n min-height: 100px;\n }\n }\n}\n";
20
+ const videoCss = "[class*=\"instui\"] {\n [class*=\"pendo-video-wrapper\"] {\n aspect-ratio: 16 / 9;\n height: auto;\n overflow: visible;\n padding-bottom: 0;\n position: relative;\n }\n\n ._pendo-video {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n .pendo-mock-flexbox-element:has([class*=\"pendo-video-wrapper\"]) {\n width: 100%;\n }\n}\n";
21
+ const viewCss = "/* Divider */\n[class*=\"instui\"] {\n .pendo-mock-flexbox-element:has(._pendo-divider) {\n width: 100%;\n }\n\n hr {\n border-width: var(--instui-component-shared-tokens-stroke-width-sm);\n border-style: var(--instui-component-view-border-style);\n margin: var(--instui-component-shared-tokens-spacing-general-space-xs)\n var(--instui-component-shared-tokens-spacing-general-space-none);\n border-radius: var(--instui-component-shared-tokens-border-radius-full);\n border-color: var(--instui-component-tabs-panel-border-color);\n }\n}\n";
22
+ //#endregion
23
+ //#region src/layers.ts
24
+ /**
25
+ * The Instructure Pendo-guide component CSS, ported verbatim from
26
+ * `@instructure/pendo-global-css` (`src/themes/instui/`, MIT, same org). Each component keeps its
27
+ * original authored rules targeting Pendo's guide DOM (`._pendo-*`); only the assembly (cascade
28
+ * `@layer` order + token source) is pantoken's. The CSS is inlined into `generated/embedded.ts` by
29
+ * `scripts/embed.ts` — the published package carries no runtime file reads.
30
+ *
31
+ * @module
32
+ */
33
+ /** The `--manual-*` extras + tokens InstUI doesn't ship (focus transitions, logos, TextArea dims). */
34
+ const MANUAL_CSS = manualCss;
35
+ /**
36
+ * Cascade order (lowest → highest), from the source `layers.css`. Layered `!important` beats Pendo's
37
+ * own unlayered `!important`, so guide styles stay on top.
38
+ */
39
+ const LAYER_ORDER = [
40
+ "tokens",
41
+ "elevation",
42
+ "icons",
43
+ "popover",
44
+ "alert",
45
+ "text",
46
+ "closeButton",
47
+ "img",
48
+ "inputs",
49
+ "button",
50
+ "pagination",
51
+ "mask",
52
+ "view",
53
+ "card",
54
+ "manual",
55
+ "focusOutline"
56
+ ];
57
+ /** The component CSS in cascade order (the `tokens` and `manual` layers are handled separately). */
58
+ const COMPONENTS = [
59
+ {
60
+ layer: "icons",
61
+ css: videoCss
62
+ },
63
+ {
64
+ layer: "popover",
65
+ css: popoverCss
66
+ },
67
+ {
68
+ layer: "alert",
69
+ css: alertCss
70
+ },
71
+ {
72
+ layer: "text",
73
+ css: textCss
74
+ },
75
+ {
76
+ layer: "closeButton",
77
+ css: closeButtonCss
78
+ },
79
+ {
80
+ layer: "img",
81
+ css: imgCss
82
+ },
83
+ {
84
+ layer: "inputs",
85
+ css: [
86
+ textareaCss,
87
+ selectCss,
88
+ radioGroupCss
89
+ ].join("\n")
90
+ },
91
+ {
92
+ layer: "button",
93
+ css: buttonCss
94
+ },
95
+ {
96
+ layer: "pagination",
97
+ css: paginationCss
98
+ },
99
+ {
100
+ layer: "mask",
101
+ css: maskCss
102
+ },
103
+ {
104
+ layer: "view",
105
+ css: viewCss
106
+ },
107
+ {
108
+ layer: "card",
109
+ css: cardCss
110
+ }
111
+ ];
112
+ //#endregion
113
+ //#region src/plugins/add-important.ts
114
+ /**
115
+ * Create the add-`!important` plugin.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * import postcss from "postcss";
120
+ * import { addImportant } from "@pantoken/pendo";
121
+ *
122
+ * const { css } = postcss([addImportant()]).process(".x{color:red}", { from: undefined });
123
+ * // ".x{color:red !important}"
124
+ * ```
125
+ */
126
+ function addImportant() {
127
+ return {
128
+ postcssPlugin: "pendo-add-important",
129
+ Declaration(decl) {
130
+ if (decl.prop.startsWith("--")) return;
131
+ if (decl.parent?.type !== "rule") return;
132
+ decl.important = true;
133
+ }
134
+ };
135
+ }
136
+ addImportant.postcss = true;
137
+ //#endregion
138
+ //#region src/plugins/add-scope.ts
139
+ /**
140
+ * Create the `@scope` wrapping plugin.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import postcss from "postcss";
145
+ * import { addScope } from "@pantoken/pendo";
146
+ *
147
+ * const { css } = postcss([addScope({ selector: "._pendo-step-container" })])
148
+ * .process(".x{color:red}", { from: undefined });
149
+ * // "@scope (._pendo-step-container) { .x{color:red} }"
150
+ * ```
151
+ */
152
+ function addScope(options = {}) {
153
+ const selector = options.selector ?? "._pendo-step-container";
154
+ return {
155
+ postcssPlugin: "pendo-add-scope",
156
+ OnceExit(root, { AtRule }) {
157
+ const scope = new AtRule({
158
+ name: "scope",
159
+ params: `(${selector})`,
160
+ raws: {
161
+ afterName: " ",
162
+ between: " "
163
+ }
164
+ });
165
+ const hoisted = [];
166
+ const moved = [];
167
+ for (const node of root.nodes) {
168
+ const bareLayer = node.type === "atrule" && node.name === "layer" && !node.nodes;
169
+ (node.type === "atrule" && node.name === "property" || bareLayer ? hoisted : moved).push(node.clone());
170
+ }
171
+ root.removeAll();
172
+ for (const node of hoisted) root.append(node);
173
+ for (const node of moved) scope.append(node);
174
+ root.append(scope);
175
+ }
176
+ };
177
+ }
178
+ addScope.postcss = true;
179
+ //#endregion
180
+ //#region src/build.ts
181
+ /**
182
+ * Compose the Instructure-styled Pendo guide stylesheet.
183
+ *
184
+ * The `--instui-*` custom-property layer comes from pantoken (`@pantoken/css` → `toCss`), scoped to
185
+ * the guide container `[class*="instui"]` — the drop-in replacement for pendo-styles' generated
186
+ * `vendor/tokens.css`. On top sit the ported component layers (see {@link COMPONENTS}), assembled in
187
+ * `@layer` cascade order, then run through the package-local `add-important` and `add-scope`
188
+ * transforms so the result is a deployable guide stylesheet.
189
+ *
190
+ * @module
191
+ */
192
+ /** The guide container selector the token layer and component rules are scoped under. */
193
+ const GUIDE_SELECTOR = "[class*=\"instui\"]";
194
+ /**
195
+ * The pure-outline focusables whose ring is delegated to the focus-outline rules from
196
+ * `@pantoken/components`. Elements
197
+ * with custom focus behaviour (select/textarea background resets, radio and number-scale sibling
198
+ * outlines, the card's `:focus-visible` reset) keep their own rules and are left off this list.
199
+ */
200
+ const FOCUSABLES = "._pendo-button, ._pendo-close-guide, ._pendo-text-link";
201
+ /** Build the `instui.elevation` layer: the named `--instui-elevation-*` box-shadow custom props. */
202
+ function elevationLayer() {
203
+ return `@layer instui.elevation {\n${elevationCss({ selector: GUIDE_SELECTOR })}}`;
204
+ }
205
+ /** Build the `instui.focusOutline` layer: the `--instui-focus-outline-*` token defs + the ring rules
206
+ * (from @pantoken/components), scoped to Pendo's focusables. */
207
+ function focusLayer() {
208
+ const decls = focusOutlineDeclarations().map(([n, v]) => ` ${n}: ${v};`).join("\n");
209
+ return `@layer instui.focusOutline {\n${GUIDE_SELECTOR} {\n${decls}\n}\n\n${focusOutlineRules(FOCUSABLES)}\n}`;
210
+ }
211
+ /**
212
+ * Build the Pendo guide stylesheet.
213
+ *
214
+ * @param options - {@link BuildPendoCssOptions}.
215
+ * @returns The composed CSS.
216
+ *
217
+ * @example Default rebrand build (scoped, !important, pruned)
218
+ * ```ts
219
+ * import { buildPendoCss } from "@pantoken/pendo";
220
+ *
221
+ * const css = buildPendoCss();
222
+ * ```
223
+ *
224
+ * @example Canvas theme, unscoped, keep the full token set
225
+ * ```ts
226
+ * import { buildPendoCss } from "@pantoken/pendo";
227
+ *
228
+ * const css = buildPendoCss({ theme: "canvas", scope: false, prune: false });
229
+ * ```
230
+ */
231
+ function buildPendoCss(options = {}) {
232
+ const { theme = "rebrand", scopeSelector = "._pendo-step-container", scope = true, important = true, prune = true } = options;
233
+ const tokenCss = toCss(byTheme(theme), { scope: GUIDE_SELECTOR });
234
+ const order = `@layer ${LAYER_ORDER.map((l) => `instui.${l}`).join(", ")};`;
235
+ const tokenLayer = `@layer instui.tokens {\n${tokenCss}\n\n${MANUAL_CSS}\n}`;
236
+ const components = COMPONENTS.map((c) => `@layer instui.${c.layer} {\n${c.css}\n}`).join("\n\n");
237
+ const full = `${order}\n\n${tokenLayer}\n\n${elevationLayer()}\n\n${components}\n\n${focusLayer()}`;
238
+ const plugins = [];
239
+ if (important) plugins.push(addImportant());
240
+ if (prune) plugins.push(pruneCustomProps());
241
+ if (scope) plugins.push(addScope({ selector: scopeSelector }));
242
+ return `${plugins.length ? postcss(plugins).process(full, { from: void 0 }).css : full}\n`;
243
+ }
244
+ //#endregion
245
+ //#region src/index.ts
246
+ /**
247
+ * `@pantoken/pendo` — an Instructure-styled global stylesheet for Pendo guides.
248
+ *
249
+ * Pendo injects guide HTML into a host page; this renders that guide DOM (`._pendo-*`) to match
250
+ * Instructure UI, using pantoken's `--instui-*` token layer for alignment. The component CSS is
251
+ * ported from `@instructure/pendo-global-css`; pantoken supplies the tokens and the assembly.
252
+ *
253
+ * {@link buildPendoCss} composes the stylesheet; {@link pendoCss} is the ready-made `rebrand` build
254
+ * (scoped, `!important`). A static file is published at `@pantoken/pendo/global.css`.
255
+ *
256
+ * @example
257
+ * ```ts
258
+ * import { pendoCss } from "@pantoken/pendo";
259
+ * // or a variant: buildPendoCss({ theme: "canvas", scope: false })
260
+ * ```
261
+ *
262
+ * @module
263
+ * @beta
264
+ */
265
+ /** The ready-made `rebrand` Pendo guide stylesheet (scoped, `!important`). */
266
+ const pendoCss = buildPendoCss();
267
+ //#endregion
268
+ export { COMPONENTS, LAYER_ORDER, addImportant, addScope, buildPendoCss, pendoCss as default, pendoCss };
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@pantoken/pendo",
3
+ "version": "0.1.0",
4
+ "description": "Instructure-styled global CSS for Pendo guides, built on pantoken tokens (ported from @instructure/pendo-global-css).",
5
+ "license": "MIT",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "type": "module",
10
+ "exports": {
11
+ ".": "./dist/index.mjs",
12
+ "./global.css": "./dist/global.css",
13
+ "./package.json": "./package.json"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "dependencies": {
19
+ "postcss": "^8.5.19",
20
+ "@pantoken/components": "0.1.0",
21
+ "@pantoken/css": "0.1.0",
22
+ "@pantoken/model": "0.1.0",
23
+ "@pantoken/tokens": "0.1.0",
24
+ "@pantoken/plugin-prune-custom-props": "0.1.0"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "^24.13.3",
28
+ "typescript": "^6.0.3",
29
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.4",
30
+ "vite-plus": "0.2.4",
31
+ "@pantoken/utils": "0.1.0"
32
+ },
33
+ "pantoken": {
34
+ "key": "pendo",
35
+ "kind": "subpath"
36
+ },
37
+ "scripts": {
38
+ "embed": "node scripts/embed.ts",
39
+ "generate": "node scripts/generate.ts",
40
+ "build": "vp run embed && vp run generate && vp pack",
41
+ "dev": "vp run embed && vp run generate && vp pack --watch",
42
+ "test": "vp run embed && vp test",
43
+ "check": "vp check"
44
+ }
45
+ }