browser-annotations 1.1.0 → 1.3.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 CHANGED
@@ -1,62 +1,43 @@
1
1
  # Browser Annotations
2
2
 
3
- Select elements in the Chrome DevTools, write feedback, and send it to your coding agent.
3
+ Browser Annotations is a DevTools extension to send feedback to your agent.
4
4
 
5
- Install the [Chrome extension](#chrome-extension) and use it with [pi](#pi) or [Claude Code](#claude-code).
5
+ Select an element, add feedback, and send it to your pi or Claude Code session.
6
6
 
7
7
  ![Sending feedback from the Chrome DevTools to pi.](docs/screenshot.png)
8
8
 
9
- ## Features
10
-
11
- - **Annotate elements** – Select any element and write your feedback
12
- - **Live agent collaboration** – Send feedback directly to your [pi](#pi) or [Claude Code](#claude-code) session
13
- - **Complete context** – Includes an element's selector, position, size, viewport, device info, and a screenshot
14
- - **Source mapping** – Links elements to React and Svelte source code during development
15
- - **Batch annotations** – Combine feedback across multiple elements and pages
16
- - **Works everywhere** – Lives in your DevTools, works on any website
17
- - **Clipboard mode** – Copy feedback as markdown for any workflow
18
-
19
- ## Installation
20
-
21
- ### Chrome extension
22
-
23
- 1. Install with `pnpm install -g browser-annotations`
24
- 2. Open `chrome://extensions` and enable **Developer mode**
25
- 3. Click **Load unpacked** and select `~/browser-annotations/chrome-extension`
26
-
27
- **Updates:** Run `pnpm update -g browser-annotations` and reload the extension in `chrome://extensions`
28
-
29
- ### pi
9
+ ## Install
30
10
 
31
- 1. Install with `pi install git:github.com/wiebekaai/browser-annotations`
32
- 2. Start pi with `pi`
33
- 3. Run `/browser-annotations`
11
+ Install the Chrome extension
34
12
 
35
- **Updates:** Run `pi update` in pi
36
-
37
- ### Claude Code
38
-
39
- 1. Start Claude Code with `claude`
40
- 2. Add the marketplace with `/plugin marketplace add wiebekaai/browser-annotations`
41
- 3. Install the plugin with `/plugin install claude@browser-annotations`
42
- 4. Restart with `claude --dangerously-load-development-channels plugin:claude@browser-annotations`
43
-
44
- **Updates:** Run `/plugin update claude@browser-annotations` in Claude Code
13
+ ```bash
14
+ npx browser-annotations@latest
15
+ ```
45
16
 
46
17
  ## Usage
47
18
 
48
- 1. Choose your mode
49
- - **Webhook on** — Send feedback directly to your agent (see [pi](#pi) or [Claude Code](#claude-code) setup)
50
- - **Webhook off**Copy feedback as markdown to your clipboard
19
+ 1. _(Optional)_ Set up your agent to work on your feedback
20
+ - [pi](packages/pi/README.md) run `/browser-annotations` in your pi session
21
+ - [Claude Code](packages/claude/README.md)start with `claude --dangerously-load-development-channels plugin:claude@browser-annotations`
51
22
  2. Select an element in the Chrome DevTools
52
- 3. Write your feedback in the <img src="docs/feedback-tab.png" alt="Feedback tab" height="20" /> tab (drag this tab to the left so it's easily accessible)
23
+ 3. Add your feedback in the Feedback tab (drag this tab to the left so it's easily accessible)
53
24
  4. Use <img src="docs/icon-add.svg" alt="Add" /> to batch annotations. Annotations persist per website, so your feedback can span multiple pages
54
25
  5. Hit <img src="docs/icon-send.svg" alt="Send" /> to send to your agent, or <img src="docs/icon-copy.svg" alt="Copy" /> to copy as markdown
55
26
 
56
27
  > [!TIP]
57
- > Even when using a webhook, <kbd><kbd>⌘</kbd> <kbd>X</kbd></kbd> / <kbd><kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>X</kbd></kbd> copies to clipboard. Handy for quick sharing.
28
+ > <kbd><kbd>⌘</kbd> <kbd>X</kbd></kbd> / <kbd><kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>X</kbd></kbd> copies your feedback to clipboard. Handy for quick sharing.
29
+
30
+ ## Features
31
+
32
+ - **Annotate elements** – Select any element and write your feedback
33
+ - **Live agent collaboration** – Send feedback directly to your pi or Claude Code session
34
+ - **Complete context** – Includes an element's selector, position, size, viewport, device info, and a screenshot
35
+ - **Source mapping** – Links elements to React and Svelte source code during development
36
+ - **Batch annotations** – Combine feedback across multiple elements and pages
37
+ - **Works everywhere** – Lives in your DevTools, works on any website
38
+ - **Clipboard mode** – Copy feedback as markdown for any workflow
58
39
 
59
- ### Keyboard shortcuts
40
+ ## Keyboard shortcuts
60
41
 
61
42
  | Action | Shortcut |
62
43
  | --------------- | ----------------------------------------------------- |
@@ -69,7 +50,7 @@ Install the [Chrome extension](#chrome-extension) and use it with [pi](#pi) or [
69
50
  | Clear all | <kbd><kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>K</kbd></kbd> |
70
51
  | Cancel / Reset | <kbd>Esc</kbd> |
71
52
 
72
- ### Example output
53
+ ## Example output
73
54
 
74
55
  ```md
75
56
  # Feedback
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "../../../../../../@crx/manifest": {
3
- "file": "assets/crx-manifest.js-DY7GCSOd.js",
3
+ "file": "assets/crx-manifest.js-_2fsShsH.js",
4
4
  "name": "crx-manifest.js",
5
5
  "src": "../../../../../../@crx/manifest",
6
6
  "isEntry": true
@@ -25,7 +25,7 @@
25
25
  ]
26
26
  },
27
27
  "src/sidebar/index.html": {
28
- "file": "assets/sidebar-D84qA_V9.js",
28
+ "file": "assets/sidebar-DfAdTIfX.js",
29
29
  "name": "sidebar",
30
30
  "src": "src/sidebar/index.html",
31
31
  "isEntry": true,
@@ -33,7 +33,7 @@
33
33
  "_modulepreload-polyfill-B5Qt9EMX.js"
34
34
  ],
35
35
  "css": [
36
- "assets/sidebar-DqDKjdnE.css"
36
+ "assets/sidebar-BrYnPDiD.css"
37
37
  ]
38
38
  }
39
39
  }
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--scroll-fade-top:0px;--scroll-fade-bottom:0px}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"Berkeley Mono", "SF Mono", "Menlo", monospace;--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-400:oklch(70.2% .183 293.541);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-zinc-950:oklch(14.1% .005 285.823);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-2xs:.625rem;--color-foreground:var(--color-zinc-950);--color-accent:var(--color-violet-400);--color-focus:var(--color-sky-500);--color-panel:#fff;--color-success:var(--color-teal-500);--color-danger:var(--color-rose-500);--ease-out-quint:cubic-bezier(.23, 1, .32, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:focus-visible{outline:1px solid var(--color-focus);outline-offset:1px}input:-webkit-autofill{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:hover{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:active{box-shadow:0 0 0 1000px var(--color-panel) inset}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-auto{inset:auto}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.25{width:calc(var(--spacing) * 3.25);height:calc(var(--spacing) * 3.25)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-8{height:calc(var(--spacing) * 8)}.h-fit{height:fit-content}.max-h-\[4rlh\]{max-height:4rlh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-\[2\.5rlh\]{min-height:2.5rlh}.w-8{width:calc(var(--spacing) * 8)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[min\(24rem\,calc\(100vw-1rem\)\)\]{max-width:min(24rem,100vw - 1rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-wait{cursor:wait}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.\[align-self\:anchor-center\]{align-self:anchor-center}.\[justify-self\:anchor-center\]{justify-self:anchor-center}.\[justify-self\:end\]{justify-self:end}.\[justify-self\:start\]{justify-self:start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-foreground\/5{border-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.border-foreground\/5{border-color:color-mix(in oklab,var(--color-foreground) 5%,transparent)}}.border-foreground\/10{border-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){.border-foreground\/10{border-color:color-mix(in oklab,var(--color-foreground) 10%,transparent)}}.border-t-foreground\/7{border-top-color:#09090b12}@supports (color:color-mix(in lab,red,red)){.border-t-foreground\/7{border-top-color:color-mix(in oklab,var(--color-foreground) 7%,transparent)}}.border-b-foreground\/7{border-bottom-color:#09090b12}@supports (color:color-mix(in lab,red,red)){.border-b-foreground\/7{border-bottom-color:color-mix(in oklab,var(--color-foreground) 7%,transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-foreground\/2{background-color:#09090b05}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/2{background-color:color-mix(in oklab,var(--color-foreground) 2%,transparent)}}.bg-foreground\/2\.5{background-color:#09090b06}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/2\.5{background-color:color-mix(in oklab,var(--color-foreground) 2.5%,transparent)}}.bg-foreground\/5{background-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/5{background-color:color-mix(in oklab,var(--color-foreground) 5%,transparent)}}.bg-foreground\/50{background-color:#09090b80}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/50{background-color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-success{background-color:var(--color-success)}.scroll-fade{--scroll-fade-size:24px;-webkit-mask-image:linear-gradient(to bottom,transparent,black var(--scroll-fade-top),black calc(100% - var(--scroll-fade-bottom)),transparent);mask-image:linear-gradient(to bottom,transparent,black var(--scroll-fade-top),black calc(100% - var(--scroll-fade-bottom)),transparent);animation-name:scroll-fade-top,scroll-fade-bottom;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(self),scroll(self);animation-range:0px var(--scroll-fade-size),calc(100% - var(--scroll-fade-size)) 100%;-webkit-mask-composite:source-in;mask-composite:intersect}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-0\.75{padding-block:calc(var(--spacing) * .75)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-2xs{font-size:var(--text-2xs)}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--color-danger)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:#09090b80}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-foreground\/80{color:#09090bcc}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.text-panel{color:var(--color-panel)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\]{transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,blur\,scale\]{transition-property:opacity,blur,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,blur\]{transition-property:opacity,blur;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\,color\]{transition-property:scale,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\]{transition-property:scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.select-none{-webkit-user-select:none;user-select:none}.\[anchor-name\:--add-button\]{anchor-name:--add-button}.\[anchor-name\:--cancel-submit-button\]{anchor-name:--cancel-submit-button}.\[anchor-name\:--form-actions\]{anchor-name:--form-actions}.\[anchor-name\:--selector\]{anchor-name:--selector}.\[anchor-name\:--submit-button\]{anchor-name:--submit-button}.\[anchor-name\:--toolbar-clear-button\]{anchor-name:--toolbar-clear-button}.\[anchor-name\:--toolbar-copy-button\]{anchor-name:--toolbar-copy-button}.\[anchor-name\:--webhook-toggle\]{anchor-name:--webhook-toggle}.\[anchor-name\:--webhook-url\]{anchor-name:--webhook-url}.\[position-anchor\:var\(--anchor\)\]{position-anchor:var(--anchor)}.\[position-area\:bottom\]{position-area:bottom}.\[position-area\:bottom_span-left\]{position-area:bottom span-left}.\[position-area\:bottom_span-right\]{position-area:bottom span-right}.\[position-area\:left\]{position-area:left}.\[position-area\:right\]{position-area:right}.\[position-area\:top\]{position-area:top}.\[position-area\:top_span-left\]{position-area:top span-left}.\[position-area\:top_span-right\]{position-area:top span-right}.\[position-try-fallbacks\:flip-block\,flip-inline\]{position-try-fallbacks:flip-block,flip-inline}.\[transition\:scale_160ms_var\(--ease-out-quint\)\]{transition:scale .16s var(--ease-out-quint)}.not-group-data-copied\:scale-80:not(:is(:where(.group)[data-copied] *)){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.not-group-data-copied\:opacity-0:not(:is(:where(.group)[data-copied] *)){opacity:0}.not-group-data-copied\:opacity-100:not(:is(:where(.group)[data-copied] *)){opacity:1}.not-group-data-copied\:blur-\[0\.25px\]:not(:is(:where(.group)[data-copied] *)){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-copied\:blur-none:not(:is(:where(.group)[data-copied] *)){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-submitted\:scale-80:not(:is(:where(.group)[data-submitted] *)){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.not-group-data-submitted\:opacity-0:not(:is(:where(.group)[data-submitted] *)){opacity:0}.not-group-data-submitted\:opacity-100:not(:is(:where(.group)[data-submitted] *)){opacity:1}.not-group-data-submitted\:blur-\[0\.25px\]:not(:is(:where(.group)[data-submitted] *)){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-submitted\:blur-none:not(:is(:where(.group)[data-submitted] *)){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.group-hover\:bg-danger\/80:is(:where(.group):hover *){background-color:#ff2357cc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-danger\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-danger) 80%,transparent)}}.group-hover\:bg-foreground\/80:is(:where(.group):hover *){background-color:#09090bcc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-foreground\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.group-hover\:bg-success\/80:is(:where(.group):hover *){background-color:#00baa7cc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-success\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.group-hover\/annotation\:pointer-events-auto:is(:where(.group\/annotation):hover *){pointer-events:auto}.group-hover\/annotation\:opacity-100:is(:where(.group\/annotation):hover *){opacity:1}}.group-data-copied\:scale-80:is(:where(.group)[data-copied] *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-copied\:opacity-0:is(:where(.group)[data-copied] *){opacity:0}.group-data-copied\:opacity-100:is(:where(.group)[data-copied] *){opacity:1}.group-data-copied\:blur-\[0\.25px\]:is(:where(.group)[data-copied] *){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-copied\:blur-none:is(:where(.group)[data-copied] *){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-submitted\:scale-80:is(:where(.group)[data-submitted] *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-submitted\:opacity-0:is(:where(.group)[data-submitted] *){opacity:0}.group-data-submitted\:opacity-100:is(:where(.group)[data-submitted] *){opacity:1}.group-data-submitted\:blur-\[0\.25px\]:is(:where(.group)[data-submitted] *){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-submitted\:blur-none:is(:where(.group)[data-submitted] *){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.peer-hover\:opacity-100:is(:where(.peer):hover~*){opacity:1}}.peer-focus-visible\:opacity-100:is(:where(.peer):focus-visible~*),.peer-has-focus-visible\:opacity-100:is(:where(.peer):has(:focus-visible)~*){opacity:1}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-1\/2:before{content:var(--tw-content);top:-50%;right:-50%;bottom:-50%;left:-50%}.before\:inset-y-0:before{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing) * 0)}.before\:w-0\.5:before{content:var(--tw-content);width:calc(var(--spacing) * .5)}.before\:bg-accent:before{content:var(--tw-content);background-color:var(--color-accent)}.before\:bg-foreground\/20:before{content:var(--tw-content);background-color:#09090b33}@supports (color:color-mix(in lab,red,red)){.before\:bg-foreground\/20:before{background-color:color-mix(in oklab,var(--color-foreground) 20%,transparent)}}.before\:bg-\[conic-gradient\(transparent_0\%_85\%\,var\(--color-foreground\)_95\%_100\%\)\]:before{content:var(--tw-content);background-image:conic-gradient(transparent 0% 85%,var(--color-foreground) 95% 100%)}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:transition-\[background-color\]:before{content:var(--tw-content);transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\:duration-150:before{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.before\:\[transition\:opacity_0ms\]:before{content:var(--tw-content);transition:opacity}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing) * 0)}.after\:rounded-\[inherit\]:after{content:var(--tw-content);border-radius:inherit}.after\:bg-accent:after{content:var(--tw-content);background-color:var(--color-accent)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--color-foreground)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:\[transition\:scale_300ms_var\(--ease-out-quint\)\,background-color_300ms_var\(--ease-out-quint\)\]:after{content:var(--tw-content);transition:scale .3s var(--ease-out-quint),background-color .3s var(--ease-out-quint)}@media(hover:hover){.hover\:bg-foreground\/4:hover{background-color:#09090b0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-foreground\/4:hover{background-color:color-mix(in oklab,var(--color-foreground) 4%,transparent)}}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\]:hover:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\]:hover:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\]:hover:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\]:hover:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}}.focus-visible\:pointer-events-auto:focus-visible{pointer-events:auto}.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:scale-\[0\.95\]:active{scale:.95}.active\:scale-\[0\.935\]:active{scale:.935}.active\:scale-\[0\.9625\]:active{scale:.9625}.data-loading\:before\:animate-\[rotate_2s_linear_infinite\][data-loading]:before{content:var(--tw-content);animation:2s linear infinite rotate}.data-loading\:before\:opacity-100[data-loading]:before{content:var(--tw-content);opacity:1}.data-loading\:before\:\[transition\:opacity_150ms_ease-out\][data-loading]:before{content:var(--tw-content);transition:opacity .15s ease-out}.data-loading\:after\:scale-\[0\.935\][data-loading]:after{content:var(--tw-content);scale:.935}.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}.data-loading\:active\:scale-100[data-loading]:active{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}}@media(prefers-color-scheme:dark){:root{--color-foreground:#fff;--color-accent:var(--color-violet-400);--color-focus:var(--color-sky-300);--color-panel:#0e0e12;--color-success:var(--color-teal-400);--color-danger:var(--color-rose-400)}}html{background-color:var(--color-panel)}body{color-scheme:light dark;min-height:100svh;margin:0}button:not(:disabled){cursor:pointer}@property --scroll-fade-top{syntax:"<length>";inherits:false;initial-value:0}@property --scroll-fade-bottom{syntax:"<length>";inherits:false;initial-value:0}@keyframes scroll-fade-top{to{--scroll-fade-top:var(--scroll-fade-size,0px)}}@keyframes scroll-fade-bottom{0%{--scroll-fade-bottom:var(--scroll-fade-size,0px)}to{--scroll-fade-bottom:0px}}@keyframes rotate{to{rotate:1turn}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 3,
3
3
  "name": "Browser Annotations",
4
4
  "description": "Capture feedback from the Chrome DevTools.",
5
- "version": "1.1.0",
5
+ "version": "1.3.0",
6
6
  "icons": {
7
7
  "16": "icon.png",
8
8
  "32": "icon.png",
@@ -4,9 +4,9 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Feedback</title>
7
- <script type="module" crossorigin src="/assets/sidebar-D84qA_V9.js"></script>
7
+ <script type="module" crossorigin src="/assets/sidebar-DfAdTIfX.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-B5Qt9EMX.js">
9
- <link rel="stylesheet" crossorigin href="/assets/sidebar-DqDKjdnE.css">
9
+ <link rel="stylesheet" crossorigin href="/assets/sidebar-BrYnPDiD.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser-annotations",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Annotate elements and send them to your agents right from your Chrome DevTools.",
5
5
  "homepage": "https://browser-annotations.dev",
6
6
  "license": "MIT",
@@ -8,6 +8,9 @@
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/wiebekaai/browser-annotations.git"
10
10
  },
11
+ "bin": {
12
+ "browser-annotations": "scripts/install.js"
13
+ },
11
14
  "files": [
12
15
  "README.md",
13
16
  "dist",
@@ -20,8 +23,7 @@
20
23
  "check:types": "tsgo -b ./tsconfig.json",
21
24
  "dev": "vite",
22
25
  "prepack": "vite build",
23
- "release": "npm publish --access public",
24
- "postinstall": "node scripts/postinstall.js"
26
+ "release": "npm publish --access public"
25
27
  },
26
28
  "dependencies": {
27
29
  "clsx": "^2.1.1",
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { cp, rm, readFile, access } from "node:fs/promises";
4
+ import { join } from "node:path";
5
+ import { homedir } from "node:os";
6
+
7
+ const colorEnabled = !process.env.NO_COLOR && (!!process.env.FORCE_COLOR || !!process.stdout.isTTY);
8
+ const c = (code, text) => (colorEnabled ? `\x1b[${code}m${text}\x1b[0m` : text);
9
+ const bold = (text) => c(1, text);
10
+ const dim = (text) => c(2, text);
11
+ const green = (text) => c(32, text);
12
+ const cyan = (text) => c(36, text);
13
+ const red = (text) => c(31, text);
14
+
15
+ const distDir = join(import.meta.dirname, "..", "dist");
16
+ const targetDir = join(homedir(), "browser-annotations", "chrome-extension");
17
+
18
+ const isUpdate = await access(targetDir)
19
+ .then(() => true)
20
+ .catch(() => false);
21
+
22
+ try {
23
+ await rm(targetDir, { recursive: true, force: true });
24
+ await cp(distDir, targetDir, { recursive: true });
25
+
26
+ const manifest = JSON.parse(await readFile(join(targetDir, "manifest.json"), "utf-8"));
27
+
28
+ console.log("");
29
+ console.log(bold("browser-annotations"));
30
+ console.log("");
31
+ console.log(`${green(isUpdate ? "Updated to" : "Installed")} v${manifest.version}`);
32
+ console.log(dim(targetDir));
33
+ console.log("");
34
+
35
+ if (isUpdate) {
36
+ console.log(` 1. Reload the extension in ${cyan("chrome://extensions")}`);
37
+ console.log(" 2. Update your agent:");
38
+ console.log(` - pi: ${cyan("pi update")}`);
39
+ console.log(` - Claude Code: ${cyan("/plugin update claude@browser-annotations")}`);
40
+ } else {
41
+ console.log(` 1. Open ${cyan("chrome://extensions")}`);
42
+ console.log(` 2. Enable "Developer mode" (top right)`);
43
+ console.log(` 3. Click "Load unpacked" and select ${cyan(targetDir)}`);
44
+ console.log(" 4. Set up your agent:");
45
+ console.log(` - pi: ${cyan("pi install git:github.com/wiebekaai/browser-annotations")}`);
46
+ console.log(` - Claude Code: ${cyan("/plugin marketplace add wiebekaai/browser-annotations")} + ${cyan("/plugin install claude@browser-annotations")}`);
47
+ }
48
+
49
+ console.log("");
50
+ } catch (error) {
51
+ console.error(`${red("Installation failed:")} ${error.message}`);
52
+ process.exitCode = 1;
53
+ }
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--scroll-fade-top:0px;--scroll-fade-bottom:0px}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"Berkeley Mono", "SF Mono", "Menlo", monospace;--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-400:oklch(70.2% .183 293.541);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-zinc-950:oklch(14.1% .005 285.823);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-2xs:.625rem;--color-foreground:var(--color-zinc-950);--color-accent:var(--color-violet-400);--color-focus:var(--color-sky-500);--color-panel:#fff;--color-success:var(--color-teal-500);--color-danger:var(--color-rose-500);--ease-out-quint:cubic-bezier(.23, 1, .32, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:focus-visible{outline:1px solid var(--color-focus);outline-offset:1px}input:-webkit-autofill{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:hover{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--color-panel) inset}input:-webkit-autofill:active{box-shadow:0 0 0 1000px var(--color-panel) inset}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-auto{inset:auto}.top-0{top:calc(var(--spacing) * 0)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.25{width:calc(var(--spacing) * 3.25);height:calc(var(--spacing) * 3.25)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-8{height:calc(var(--spacing) * 8)}.h-fit{height:fit-content}.max-h-\[4rlh\]{max-height:4rlh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-\[2\.5rlh\]{min-height:2.5rlh}.w-8{width:calc(var(--spacing) * 8)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[min\(24rem\,calc\(100vw-1rem\)\)\]{max-width:min(24rem,100vw - 1rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-wait{cursor:wait}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.\[align-self\:anchor-center\]{align-self:anchor-center}.\[justify-self\:anchor-center\]{justify-self:anchor-center}.\[justify-self\:end\]{justify-self:end}.\[justify-self\:start\]{justify-self:start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-foreground\/5{border-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.border-foreground\/5{border-color:color-mix(in oklab,var(--color-foreground) 5%,transparent)}}.border-foreground\/10{border-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){.border-foreground\/10{border-color:color-mix(in oklab,var(--color-foreground) 10%,transparent)}}.border-t-foreground\/7{border-top-color:#09090b12}@supports (color:color-mix(in lab,red,red)){.border-t-foreground\/7{border-top-color:color-mix(in oklab,var(--color-foreground) 7%,transparent)}}.border-b-foreground\/7{border-bottom-color:#09090b12}@supports (color:color-mix(in lab,red,red)){.border-b-foreground\/7{border-bottom-color:color-mix(in oklab,var(--color-foreground) 7%,transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-foreground\/2{background-color:#09090b05}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/2{background-color:color-mix(in oklab,var(--color-foreground) 2%,transparent)}}.bg-foreground\/2\.5{background-color:#09090b06}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/2\.5{background-color:color-mix(in oklab,var(--color-foreground) 2.5%,transparent)}}.bg-foreground\/5{background-color:#09090b0d}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/5{background-color:color-mix(in oklab,var(--color-foreground) 5%,transparent)}}.bg-foreground\/50{background-color:#09090b80}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/50{background-color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-success{background-color:var(--color-success)}.scroll-fade{--scroll-fade-size:24px;-webkit-mask-image:linear-gradient(to bottom,transparent,black var(--scroll-fade-top),black calc(100% - var(--scroll-fade-bottom)),transparent);mask-image:linear-gradient(to bottom,transparent,black var(--scroll-fade-top),black calc(100% - var(--scroll-fade-bottom)),transparent);animation-name:scroll-fade-top,scroll-fade-bottom;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(self),scroll(self);animation-range:0px var(--scroll-fade-size),calc(100% - var(--scroll-fade-size)) 100%;-webkit-mask-composite:source-in;mask-composite:intersect}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-0\.75{padding-block:calc(var(--spacing) * .75)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-2xs{font-size:var(--text-2xs)}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--color-danger)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:#09090b80}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-foreground\/80{color:#09090bcc}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.text-panel{color:var(--color-panel)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\]{transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,blur\,scale\]{transition-property:opacity,blur,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,blur\]{transition-property:opacity,blur;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\,color\]{transition-property:scale,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\]{transition-property:scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.select-none{-webkit-user-select:none;user-select:none}.\[anchor-name\:--add-button\]{anchor-name:--add-button}.\[anchor-name\:--cancel-submit-button\]{anchor-name:--cancel-submit-button}.\[anchor-name\:--form-actions\]{anchor-name:--form-actions}.\[anchor-name\:--selector\]{anchor-name:--selector}.\[anchor-name\:--submit-button\]{anchor-name:--submit-button}.\[anchor-name\:--toolbar-clear-button\]{anchor-name:--toolbar-clear-button}.\[anchor-name\:--toolbar-copy-button\]{anchor-name:--toolbar-copy-button}.\[anchor-name\:--webhook-toggle\]{anchor-name:--webhook-toggle}.\[anchor-name\:--webhook-url\]{anchor-name:--webhook-url}.\[position-anchor\:var\(--anchor\)\]{position-anchor:var(--anchor)}.\[position-area\:bottom\]{position-area:bottom}.\[position-area\:bottom_span-left\]{position-area:bottom span-left}.\[position-area\:bottom_span-right\]{position-area:bottom span-right}.\[position-area\:left\]{position-area:left}.\[position-area\:right\]{position-area:right}.\[position-area\:top\]{position-area:top}.\[position-area\:top_span-left\]{position-area:top span-left}.\[position-area\:top_span-right\]{position-area:top span-right}.\[position-try-fallbacks\:flip-block\,flip-inline\]{position-try-fallbacks:flip-block,flip-inline}.\[transition\:scale_160ms_var\(--ease-out-quint\)\]{transition:scale .16s var(--ease-out-quint)}.not-group-data-copied\:scale-80:not(:is(:where(.group)[data-copied] *)){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.not-group-data-copied\:opacity-0:not(:is(:where(.group)[data-copied] *)){opacity:0}.not-group-data-copied\:opacity-100:not(:is(:where(.group)[data-copied] *)){opacity:1}.not-group-data-copied\:blur-\[0\.25px\]:not(:is(:where(.group)[data-copied] *)){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-copied\:blur-none:not(:is(:where(.group)[data-copied] *)){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-submitted\:scale-80:not(:is(:where(.group)[data-submitted] *)){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.not-group-data-submitted\:opacity-0:not(:is(:where(.group)[data-submitted] *)){opacity:0}.not-group-data-submitted\:opacity-100:not(:is(:where(.group)[data-submitted] *)){opacity:1}.not-group-data-submitted\:blur-\[0\.25px\]:not(:is(:where(.group)[data-submitted] *)){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.not-group-data-submitted\:blur-none:not(:is(:where(.group)[data-submitted] *)){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.group-hover\:bg-danger\/80:is(:where(.group):hover *){background-color:#ff2357cc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-danger\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-danger) 80%,transparent)}}.group-hover\:bg-foreground\/80:is(:where(.group):hover *){background-color:#09090bcc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-foreground\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.group-hover\:bg-success\/80:is(:where(.group):hover *){background-color:#00baa7cc}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-success\/80:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.group-hover\/annotation\:pointer-events-auto:is(:where(.group\/annotation):hover *){pointer-events:auto}.group-hover\/annotation\:opacity-100:is(:where(.group\/annotation):hover *){opacity:1}}.group-data-copied\:scale-80:is(:where(.group)[data-copied] *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-copied\:opacity-0:is(:where(.group)[data-copied] *){opacity:0}.group-data-copied\:opacity-100:is(:where(.group)[data-copied] *){opacity:1}.group-data-copied\:blur-\[0\.25px\]:is(:where(.group)[data-copied] *){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-copied\:blur-none:is(:where(.group)[data-copied] *){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-submitted\:scale-80:is(:where(.group)[data-submitted] *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-submitted\:opacity-0:is(:where(.group)[data-submitted] *){opacity:0}.group-data-submitted\:opacity-100:is(:where(.group)[data-submitted] *){opacity:1}.group-data-submitted\:blur-\[0\.25px\]:is(:where(.group)[data-submitted] *){--tw-blur:blur(.25px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-data-submitted\:blur-none:is(:where(.group)[data-submitted] *){--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.peer-hover\:opacity-100:is(:where(.peer):hover~*){opacity:1}}.peer-focus-visible\:opacity-100:is(:where(.peer):focus-visible~*),.peer-has-focus-visible\:opacity-100:is(:where(.peer):has(:focus-visible)~*){opacity:1}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-1\/2:before{content:var(--tw-content);top:-50%;right:-50%;bottom:-50%;left:-50%}.before\:inset-y-0:before{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing) * 0)}.before\:w-0\.5:before{content:var(--tw-content);width:calc(var(--spacing) * .5)}.before\:bg-accent:before{content:var(--tw-content);background-color:var(--color-accent)}.before\:bg-foreground\/20:before{content:var(--tw-content);background-color:#09090b33}@supports (color:color-mix(in lab,red,red)){.before\:bg-foreground\/20:before{background-color:color-mix(in oklab,var(--color-foreground) 20%,transparent)}}.before\:bg-\[conic-gradient\(transparent_0\%_85\%\,var\(--color-foreground\)_95\%_100\%\)\]:before{content:var(--tw-content);background-image:conic-gradient(transparent 0% 85%,var(--color-foreground) 95% 100%)}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:transition-\[background-color\]:before{content:var(--tw-content);transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\:duration-150:before{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.before\:\[transition\:opacity_0ms\]:before{content:var(--tw-content);transition:opacity}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing) * 0)}.after\:rounded-\[inherit\]:after{content:var(--tw-content);border-radius:inherit}.after\:bg-accent:after{content:var(--tw-content);background-color:var(--color-accent)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--color-foreground)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:\[transition\:scale_300ms_var\(--ease-out-quint\)\,background-color_300ms_var\(--ease-out-quint\)\]:after{content:var(--tw-content);transition:scale .3s var(--ease-out-quint),background-color .3s var(--ease-out-quint)}@media(hover:hover){.hover\:bg-foreground\/4:hover{background-color:#09090b0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-foreground\/4:hover{background-color:color-mix(in oklab,var(--color-foreground) 4%,transparent)}}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\]:hover:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\]:hover:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\]:hover:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.hover\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\]:hover:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}}.focus-visible\:pointer-events-auto:focus-visible{pointer-events:auto}.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:scale-\[0\.95\]:active{scale:.95}.active\:scale-\[0\.935\]:active{scale:.935}.active\:scale-\[0\.9625\]:active{scale:.9625}.data-loading\:before\:animate-\[rotate_2s_linear_infinite\][data-loading]:before{content:var(--tw-content);animation:2s linear infinite rotate}.data-loading\:before\:opacity-100[data-loading]:before{content:var(--tw-content);opacity:1}.data-loading\:before\:\[transition\:opacity_150ms_ease-out\][data-loading]:before{content:var(--tw-content);transition:opacity .15s ease-out}.data-loading\:after\:scale-\[0\.935\][data-loading]:after{content:var(--tw-content);scale:.935}.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.data-loading\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-loading]:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}.data-loading\:active\:scale-100[data-loading]:active{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{content:var(--tw-content);background-color:#af91ff}@supports (color:color-mix(in lab,red,red)){.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-accent\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{background-color:color-mix(in srgb,var(--color-accent) 90%,var(--color-panel))}}.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{content:var(--tw-content);background-color:#222224}@supports (color:color-mix(in lab,red,red)){.data-submitted\:after\:bg-\[color-mix\(in_srgb\,var\(--color-foreground\)_90\%\,var\(--color-panel\)\)\][data-submitted]:after{background-color:color-mix(in srgb,var(--color-foreground) 90%,var(--color-panel))}}}@media(prefers-color-scheme:dark){:root{--color-foreground:#fff;--color-accent:var(--color-violet-400);--color-focus:var(--color-sky-300);--color-panel:#0e0e12;--color-success:var(--color-teal-400);--color-danger:var(--color-rose-400)}}html{background-color:var(--color-panel)}body{color-scheme:light dark;min-height:100svh;margin:0}button:not(:disabled){cursor:pointer}@property --scroll-fade-top{syntax:"<length>";inherits:false;initial-value:0}@property --scroll-fade-bottom{syntax:"<length>";inherits:false;initial-value:0}@keyframes scroll-fade-top{to{--scroll-fade-top:var(--scroll-fade-size,0px)}}@keyframes scroll-fade-bottom{0%{--scroll-fade-bottom:var(--scroll-fade-size,0px)}to{--scroll-fade-bottom:0px}}@keyframes rotate{to{rotate:1turn}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
@@ -1,23 +0,0 @@
1
- import { mkdir, symlink, lstat, unlink } from "node:fs/promises";
2
- import { join } from "node:path";
3
- import { homedir } from "node:os";
4
-
5
- try {
6
- const distDir = join(import.meta.dirname, "..", "dist");
7
- const targetDir = join(homedir(), "browser-annotations");
8
- const linkPath = join(targetDir, "chrome-extension");
9
-
10
- await mkdir(targetDir, { recursive: true });
11
-
12
- try {
13
- const stat = await lstat(linkPath);
14
- if (stat.isSymbolicLink()) await unlink(linkPath);
15
- } catch {}
16
-
17
- await symlink(distDir, linkPath);
18
-
19
- console.log(`Linked extension to ${linkPath}`);
20
- console.log("Load as unpacked extension in chrome://extensions");
21
- } catch (error) {
22
- console.warn(`browser-annotations: skipped symlink setup (${error.message})`);
23
- }