@hanzo/team 0.0.0-stage → 0.1.1
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/LICENSE-APACHE +205 -0
- package/LICENSE-MIT +21 -0
- package/README.md +26 -2
- package/dist/.well-known/api-catalog +40 -0
- package/dist/404.html +30 -0
- package/dist/admin/index.html +30 -0
- package/dist/agents/algo/index.html +30 -0
- package/dist/agents/art/index.html +30 -0
- package/dist/agents/art.png +0 -0
- package/dist/agents/art@2x.png +0 -0
- package/dist/agents/biz/index.html +30 -0
- package/dist/agents/biz.png +0 -0
- package/dist/agents/biz@2x.png +0 -0
- package/dist/agents/cal/index.html +30 -0
- package/dist/agents/core/index.html +30 -0
- package/dist/agents/cyber/index.html +30 -0
- package/dist/agents/cyber.png +0 -0
- package/dist/agents/cyber@2x.png +0 -0
- package/dist/agents/data/index.html +30 -0
- package/dist/agents/data.png +0 -0
- package/dist/agents/data@2x.png +0 -0
- package/dist/agents/db/index.html +30 -0
- package/dist/agents/des/index.html +30 -0
- package/dist/agents/des.png +0 -0
- package/dist/agents/des@2x.png +0 -0
- package/dist/agents/dev/index.html +30 -0
- package/dist/agents/dev.png +0 -0
- package/dist/agents/dev@2x.png +0 -0
- package/dist/agents/doc/index.html +30 -0
- package/dist/agents/doc.png +0 -0
- package/dist/agents/doc@2x.png +0 -0
- package/dist/agents/ed/index.html +30 -0
- package/dist/agents/ed.png +0 -0
- package/dist/agents/ed@2x.png +0 -0
- package/dist/agents/edu.png +0 -0
- package/dist/agents/edu@2x.png +0 -0
- package/dist/agents/fin/index.html +30 -0
- package/dist/agents/fin.png +0 -0
- package/dist/agents/fin@2x.png +0 -0
- package/dist/agents/gov/index.html +30 -0
- package/dist/agents/gov.png +0 -0
- package/dist/agents/gov@2x.png +0 -0
- package/dist/agents/grant.png +0 -0
- package/dist/agents/grant@2x.png +0 -0
- package/dist/agents/huma/index.html +30 -0
- package/dist/agents/huma.png +0 -0
- package/dist/agents/huma@2x.png +0 -0
- package/dist/agents/index.html +30 -0
- package/dist/agents/lang/index.html +30 -0
- package/dist/agents/lang.png +0 -0
- package/dist/agents/lang@2x.png +0 -0
- package/dist/agents/law/index.html +30 -0
- package/dist/agents/law.png +0 -0
- package/dist/agents/law@2x.png +0 -0
- package/dist/agents/mana/index.html +30 -0
- package/dist/agents/mana.png +0 -0
- package/dist/agents/mana@2x.png +0 -0
- package/dist/agents/mark/index.html +30 -0
- package/dist/agents/mark.png +0 -0
- package/dist/agents/mark@2x.png +0 -0
- package/dist/agents/mo/index.html +30 -0
- package/dist/agents/mo.png +0 -0
- package/dist/agents/mo@2x.png +0 -0
- package/dist/agents/mu/index.html +30 -0
- package/dist/agents/mu.png +0 -0
- package/dist/agents/mu@2x.png +0 -0
- package/dist/agents/opera/index.html +30 -0
- package/dist/agents/opera.png +0 -0
- package/dist/agents/opera@2x.png +0 -0
- package/dist/agents/rev/index.html +30 -0
- package/dist/agents/rev.png +0 -0
- package/dist/agents/rev@2x.png +0 -0
- package/dist/agents/sal/index.html +30 -0
- package/dist/agents/sal.png +0 -0
- package/dist/agents/sal@2x.png +0 -0
- package/dist/agents/sci/index.html +30 -0
- package/dist/agents/sci.png +0 -0
- package/dist/agents/sci@2x.png +0 -0
- package/dist/agents/sec/index.html +30 -0
- package/dist/agents/su/index.html +30 -0
- package/dist/agents/su.png +0 -0
- package/dist/agents/su@2x.png +0 -0
- package/dist/agents/vi/index.html +30 -0
- package/dist/agents/vi.png +0 -0
- package/dist/agents/vi@2x.png +0 -0
- package/dist/apple-touch-icon.png +0 -0
- package/dist/apps/ads/index.html +30 -0
- package/dist/apps/ai-chat/index.html +30 -0
- package/dist/apps/analytics/index.html +30 -0
- package/dist/apps/billing/index.html +30 -0
- package/dist/apps/bots/index.html +30 -0
- package/dist/apps/cal/index.html +30 -0
- package/dist/apps/chat/index.html +30 -0
- package/dist/apps/cms/index.html +30 -0
- package/dist/apps/commerce/index.html +30 -0
- package/dist/apps/console/index.html +30 -0
- package/dist/apps/crm/index.html +30 -0
- package/dist/apps/dataroom/index.html +30 -0
- package/dist/apps/dev/index.html +30 -0
- package/dist/apps/email/index.html +30 -0
- package/dist/apps/index.html +30 -0
- package/dist/apps/meet/index.html +30 -0
- package/dist/apps/platform/index.html +30 -0
- package/dist/apps/sign/index.html +30 -0
- package/dist/apps/social/index.html +30 -0
- package/dist/apps/tracker/index.html +30 -0
- package/dist/assets/ThemeToggleNext-Cx7XdonO.js +2 -0
- package/dist/assets/ThemeToggleNext-Cx7XdonO.js.map +1 -0
- package/dist/assets/Zen-Italic-Variable-BC3_XFFy.woff2 +0 -0
- package/dist/assets/Zen-Variable-CB2Vy8T8.woff2 +0 -0
- package/dist/assets/ZenMono-Italic-Variable-DgrJZNz-.woff2 +0 -0
- package/dist/assets/ZenMono-Variable-YwMz1raS.woff2 +0 -0
- package/dist/assets/ZenPixel-Circle-BTq-IfnF.woff2 +0 -0
- package/dist/assets/ZenPixel-Grid-PLJrcocM.woff2 +0 -0
- package/dist/assets/ZenPixel-Line-CUK3P9YB.woff2 +0 -0
- package/dist/assets/ZenPixel-Square-BE2_wLDT.woff2 +0 -0
- package/dist/assets/ZenPixel-Triangle-C_zdr6DS.woff2 +0 -0
- package/dist/assets/dist-Cy8E8G3S.js +2 -0
- package/dist/assets/dist-Cy8E8G3S.js.map +1 -0
- package/dist/assets/index-BZPeOBUl.js +174 -0
- package/dist/assets/index-BZPeOBUl.js.map +1 -0
- package/dist/assets/index-ug8kot--.css +1 -0
- package/dist/auth/callback/index.html +30 -0
- package/dist/auth/index.html +30 -0
- package/dist/bots/index.html +30 -0
- package/dist/cal/index.html +30 -0
- package/dist/calendar/index.html +30 -0
- package/dist/chat/c-design/index.html +30 -0
- package/dist/chat/c-general/index.html +30 -0
- package/dist/chat/c-lux-bank/index.html +30 -0
- package/dist/chat/c-lux-bridge/index.html +30 -0
- package/dist/chat/c-revenue/index.html +30 -0
- package/dist/chat/c-support/index.html +30 -0
- package/dist/chat/c-tracker/index.html +30 -0
- package/dist/chat/c-ui/index.html +30 -0
- package/dist/chat/c-video/index.html +30 -0
- package/dist/chat/dm-algo/index.html +30 -0
- package/dist/chat/dm-art/index.html +30 -0
- package/dist/chat/dm-biz/index.html +30 -0
- package/dist/chat/dm-cal/index.html +30 -0
- package/dist/chat/dm-core/index.html +30 -0
- package/dist/chat/dm-cyber/index.html +30 -0
- package/dist/chat/dm-data/index.html +30 -0
- package/dist/chat/dm-db/index.html +30 -0
- package/dist/chat/dm-des/index.html +30 -0
- package/dist/chat/dm-dev/index.html +30 -0
- package/dist/chat/dm-doc/index.html +30 -0
- package/dist/chat/dm-ed/index.html +30 -0
- package/dist/chat/dm-fin/index.html +30 -0
- package/dist/chat/dm-gov/index.html +30 -0
- package/dist/chat/dm-huma/index.html +30 -0
- package/dist/chat/dm-lang/index.html +30 -0
- package/dist/chat/dm-law/index.html +30 -0
- package/dist/chat/dm-mana/index.html +30 -0
- package/dist/chat/dm-mark/index.html +30 -0
- package/dist/chat/dm-mo/index.html +30 -0
- package/dist/chat/dm-mu/index.html +30 -0
- package/dist/chat/dm-opera/index.html +30 -0
- package/dist/chat/dm-rev/index.html +30 -0
- package/dist/chat/dm-sal/index.html +30 -0
- package/dist/chat/dm-sci/index.html +30 -0
- package/dist/chat/dm-sec/index.html +30 -0
- package/dist/chat/dm-su/index.html +30 -0
- package/dist/chat/dm-vi/index.html +30 -0
- package/dist/chat/index.html +30 -0
- package/dist/crm/analytics/index.html +30 -0
- package/dist/crm/automations/index.html +30 -0
- package/dist/crm/campaigns/index.html +30 -0
- package/dist/crm/companies/index.html +30 -0
- package/dist/crm/contacts/index.html +30 -0
- package/dist/crm/customers/index.html +30 -0
- package/dist/crm/deliverability/index.html +30 -0
- package/dist/crm/forms/index.html +30 -0
- package/dist/crm/funds/index.html +30 -0
- package/dist/crm/index.html +30 -0
- package/dist/crm/investors/index.html +30 -0
- package/dist/crm/journeys/index.html +30 -0
- package/dist/crm/leads/index.html +30 -0
- package/dist/crm/lists/index.html +30 -0
- package/dist/crm/opportunities/index.html +30 -0
- package/dist/crm/segments/index.html +30 -0
- package/dist/crm/settings/index.html +30 -0
- package/dist/crm/templates/index.html +30 -0
- package/dist/crm/webhooks/index.html +30 -0
- package/dist/docs/index.html +30 -0
- package/dist/favicon-16x16.png +0 -0
- package/dist/favicon-32x32.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/favicon.svg +8 -0
- package/dist/files/index.html +30 -0
- package/dist/inbox/index.html +30 -0
- package/dist/index.html +30 -0
- package/dist/issues/index.html +30 -0
- package/dist/issues/kanban/index.html +30 -0
- package/dist/issues/list/index.html +30 -0
- package/dist/llms.txt +976 -0
- package/dist/login/index.html +30 -0
- package/dist/mail/index.html +30 -0
- package/dist/manifest.json +13 -0
- package/dist/meet/index.html +30 -0
- package/dist/mine/index.html +30 -0
- package/dist/people/index.html +30 -0
- package/dist/projects/index.html +30 -0
- package/dist/projects/proj-crm/components/index.html +30 -0
- package/dist/projects/proj-crm/index.html +30 -0
- package/dist/projects/proj-crm/issues/index.html +30 -0
- package/dist/projects/proj-crm/issues/kanban/index.html +30 -0
- package/dist/projects/proj-crm/issues/list/index.html +30 -0
- package/dist/projects/proj-crm/milestones/index.html +30 -0
- package/dist/projects/proj-crm/templates/index.html +30 -0
- package/dist/projects/proj-dev/components/index.html +30 -0
- package/dist/projects/proj-dev/index.html +30 -0
- package/dist/projects/proj-dev/issues/index.html +30 -0
- package/dist/projects/proj-dev/issues/kanban/index.html +30 -0
- package/dist/projects/proj-dev/issues/list/index.html +30 -0
- package/dist/projects/proj-dev/milestones/index.html +30 -0
- package/dist/projects/proj-dev/templates/index.html +30 -0
- package/dist/projects/proj-mkt/components/index.html +30 -0
- package/dist/projects/proj-mkt/index.html +30 -0
- package/dist/projects/proj-mkt/issues/index.html +30 -0
- package/dist/projects/proj-mkt/issues/kanban/index.html +30 -0
- package/dist/projects/proj-mkt/issues/list/index.html +30 -0
- package/dist/projects/proj-mkt/milestones/index.html +30 -0
- package/dist/projects/proj-mkt/templates/index.html +30 -0
- package/dist/projects/proj-next/components/index.html +30 -0
- package/dist/projects/proj-next/index.html +30 -0
- package/dist/projects/proj-next/issues/index.html +30 -0
- package/dist/projects/proj-next/issues/kanban/index.html +30 -0
- package/dist/projects/proj-next/issues/list/index.html +30 -0
- package/dist/projects/proj-next/milestones/index.html +30 -0
- package/dist/projects/proj-next/templates/index.html +30 -0
- package/dist/robots.txt +24 -0
- package/dist/settings/index.html +30 -0
- package/dist/site.webmanifest +13 -0
- package/dist/time/index.html +30 -0
- package/package.json +47 -3
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<base href="/" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
8
|
+
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
9
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
10
|
+
<link rel="manifest" href="/manifest.json" />
|
|
11
|
+
<title>Team</title>
|
|
12
|
+
<style>
|
|
13
|
+
/* The two facts only the host document can answer: how tall the app is,
|
|
14
|
+
and that its one child is a flex item. @hanzo/ui's stylesheet resets and
|
|
15
|
+
paints everything else, and `Screen` fills its parent by growing, which
|
|
16
|
+
a block parent never asks it to do — so the whole app renders 0px tall.
|
|
17
|
+
`dvh` rather than `vh` so collapsing browser chrome cannot crop the
|
|
18
|
+
bottom of a column off. */
|
|
19
|
+
#root {
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 100dvh;
|
|
22
|
+
}
|
|
23
|
+
</style>
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-BZPeOBUl.js"></script>
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-ug8kot--.css">
|
|
26
|
+
</head>
|
|
27
|
+
<body>
|
|
28
|
+
<div id="root"></div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<base href="/" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
8
|
+
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
9
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
10
|
+
<link rel="manifest" href="/manifest.json" />
|
|
11
|
+
<title>Team</title>
|
|
12
|
+
<style>
|
|
13
|
+
/* The two facts only the host document can answer: how tall the app is,
|
|
14
|
+
and that its one child is a flex item. @hanzo/ui's stylesheet resets and
|
|
15
|
+
paints everything else, and `Screen` fills its parent by growing, which
|
|
16
|
+
a block parent never asks it to do — so the whole app renders 0px tall.
|
|
17
|
+
`dvh` rather than `vh` so collapsing browser chrome cannot crop the
|
|
18
|
+
bottom of a column off. */
|
|
19
|
+
#root {
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 100dvh;
|
|
22
|
+
}
|
|
23
|
+
</style>
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-BZPeOBUl.js"></script>
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-ug8kot--.css">
|
|
26
|
+
</head>
|
|
27
|
+
<body>
|
|
28
|
+
<div id="root"></div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<base href="/" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
8
|
+
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
9
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
10
|
+
<link rel="manifest" href="/manifest.json" />
|
|
11
|
+
<title>Team</title>
|
|
12
|
+
<style>
|
|
13
|
+
/* The two facts only the host document can answer: how tall the app is,
|
|
14
|
+
and that its one child is a flex item. @hanzo/ui's stylesheet resets and
|
|
15
|
+
paints everything else, and `Screen` fills its parent by growing, which
|
|
16
|
+
a block parent never asks it to do — so the whole app renders 0px tall.
|
|
17
|
+
`dvh` rather than `vh` so collapsing browser chrome cannot crop the
|
|
18
|
+
bottom of a column off. */
|
|
19
|
+
#root {
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 100dvh;
|
|
22
|
+
}
|
|
23
|
+
</style>
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-BZPeOBUl.js"></script>
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-ug8kot--.css">
|
|
26
|
+
</head>
|
|
27
|
+
<body>
|
|
28
|
+
<div id="root"></div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<base href="/" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
8
|
+
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
9
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
10
|
+
<link rel="manifest" href="/manifest.json" />
|
|
11
|
+
<title>Team</title>
|
|
12
|
+
<style>
|
|
13
|
+
/* The two facts only the host document can answer: how tall the app is,
|
|
14
|
+
and that its one child is a flex item. @hanzo/ui's stylesheet resets and
|
|
15
|
+
paints everything else, and `Screen` fills its parent by growing, which
|
|
16
|
+
a block parent never asks it to do — so the whole app renders 0px tall.
|
|
17
|
+
`dvh` rather than `vh` so collapsing browser chrome cannot crop the
|
|
18
|
+
bottom of a column off. */
|
|
19
|
+
#root {
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 100dvh;
|
|
22
|
+
}
|
|
23
|
+
</style>
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-BZPeOBUl.js"></script>
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-ug8kot--.css">
|
|
26
|
+
</head>
|
|
27
|
+
<body>
|
|
28
|
+
<div id="root"></div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./index-BZPeOBUl.js";var c=o((e=>{function t(e){return e&&e.__esModule?e:{default:e}}e._=t})),l=o((e=>{function t(e){if(typeof WeakMap!=`function`)return null;var n=new WeakMap,r=new WeakMap;return(t=function(e){return e?r:n})(e)}function n(e,n){if(!n&&e&&e.__esModule)return e;if(e===null||typeof e!=`object`&&typeof e!=`function`)return{default:e};var r=t(n);if(r&&r.has(e))return r.get(e);var i={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&Object.prototype.hasOwnProperty.call(e,o)){var s=a?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(i,o,s):i[o]=e[o]}return i.default=e,r&&r.set(e,i),i}e._=n})),u=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"HeadManagerContext",{enumerable:!0,get:function(){return t}});var t=c()._(i()).default.createContext({})})),d=o(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"setAttributesFromProps",{enumerable:!0,get:function(){return a}});var n={acceptCharset:`accept-charset`,className:`class`,htmlFor:`for`,httpEquiv:`http-equiv`,noModule:`noModule`},r=[`onLoad`,`onReady`,`dangerouslySetInnerHTML`,`children`,`onError`,`strategy`,`stylesheets`];function i(e){return[`async`,`defer`,`noModule`].includes(e)}function a(e,t){for(let[a,o]of Object.entries(t)){if(!t.hasOwnProperty(a)||r.includes(a)||o===void 0)continue;let s=n[a]||a.toLowerCase();e.tagName===`SCRIPT`&&i(s)?e[s]=!!o:e.setAttribute(s,String(o)),(o===!1||e.tagName===`SCRIPT`&&i(s)&&(!o||o===`false`))&&(e.setAttribute(s,``),e.removeAttribute(s))}}(typeof e.default==`function`||typeof e.default==`object`&&e.default!==null)&&e.default.__esModule===void 0&&(Object.defineProperty(e.default,"__esModule",{value:!0}),Object.assign(e.default,e),t.exports=e.default)})),f=o(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),0&&(t.exports={cancelIdleCallback:null,requestIdleCallback:null});function n(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}n(e,{cancelIdleCallback:function(){return i},requestIdleCallback:function(){return r}});var r=typeof self<`u`&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},i=typeof self<`u`&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};(typeof e.default==`function`||typeof e.default==`object`&&e.default!==null)&&e.default.__esModule===void 0&&(Object.defineProperty(e.default,"__esModule",{value:!0}),Object.assign(e.default,e),t.exports=e.default)})),p=o(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),0&&(t.exports={ESCAPE_REGEX:null,htmlEscapeAttributeString:null,htmlEscapeJsonString:null});function n(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}n(e,{ESCAPE_REGEX:function(){return i},htmlEscapeAttributeString:function(){return c},htmlEscapeJsonString:function(){return s}});var r={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},i=/[&><\u2028\u2029]/g,a={"&":`&`,'"':`"`,"'":`'`,"<":`<`,">":`>`},o=/[&"'<>]/g;function s(e){return e.replace(i,e=>r[e])}function c(e){return e.replace(o,e=>a[e])}})),m=o(((t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),0&&(r.exports={default:null,handleClientScriptLoad:null,initScriptLoader:null});function a(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}a(t,{default:function(){return A},handleClientScriptLoad:function(){return T},initScriptLoader:function(){return O}});var o=c(),s=l(),m=n(),h=o._(e()),g=s._(i()),_=u(),v=d(),y=f(),b=p(),x=new Map,S=new Set,C=e=>{if(h.default.preinit){e.forEach(e=>{h.default.preinit(e,{as:`style`})});return}if(typeof window<`u`){let t=document.head;e.forEach(e=>{let n=document.createElement(`link`);n.type=`text/css`,n.rel=`stylesheet`,n.href=e,t.appendChild(n)})}},w=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:i=null,dangerouslySetInnerHTML:a,children:o=``,strategy:s=`afterInteractive`,onError:c,stylesheets:l}=e,u=n||t;if(u&&S.has(u))return;if(x.has(t)){S.add(u),x.get(t).then(r,c);return}let d=()=>{i&&i(),S.add(u)},f=document.createElement(`script`),p=new Promise((e,t)=>{f.addEventListener(`load`,function(t){e(),r&&r.call(this,t),d()}),f.addEventListener(`error`,function(e){t(e)})}).catch(function(e){c&&c(e)});a?(f.innerHTML=a.__html||``,d()):o?(f.textContent=typeof o==`string`?o:Array.isArray(o)?o.join(``):``,d()):t&&(f.src=t,x.set(t,p)),(0,v.setAttributesFromProps)(f,e),s===`worker`&&f.setAttribute(`type`,`text/partytown`),f.setAttribute(`data-nscript`,s),l&&C(l),document.body.appendChild(f)};function T(e){let{strategy:t=`afterInteractive`}=e;t===`lazyOnload`?window.addEventListener(`load`,()=>{(0,y.requestIdleCallback)(()=>w(e))}):w(e)}function E(e){document.readyState===`complete`?(0,y.requestIdleCallback)(()=>w(e)):window.addEventListener(`load`,()=>{(0,y.requestIdleCallback)(()=>w(e))})}function D(){[...document.querySelectorAll(`[data-nscript="beforeInteractive"]`),...document.querySelectorAll(`[data-nscript="beforePageRender"]`)].forEach(e=>{let t=e.id||e.getAttribute(`src`);S.add(t)})}function O(e){e.forEach(T),D()}function k(e){let{id:t,src:n=``,onLoad:r=()=>{},onReady:i=null,strategy:a=`afterInteractive`,onError:o,stylesheets:s,...c}=e,{updateScripts:l,scripts:u,getIsSsr:d,appDir:f,nonce:p}=(0,g.useContext)(_.HeadManagerContext);p=c.nonce||p;let v=(0,g.useRef)(!1);(0,g.useEffect)(()=>{let e=t||n;v.current||=(i&&e&&S.has(e)&&i(),!0)},[i,t,n]);let y=(0,g.useRef)(!1);if((0,g.useEffect)(()=>{y.current||=(a===`afterInteractive`?w(e):a===`lazyOnload`&&E(e),!0)},[e,a]),(a===`beforeInteractive`||a===`worker`)&&(l?(u[a]=(u[a]||[]).concat([{id:t,src:n,onLoad:r,onReady:i,onError:o,...c,nonce:p}]),l(u)):d&&d()?S.add(t||n):d&&!d()&&w({...e,nonce:p})),f){if(s&&s.forEach(e=>{h.default.preinit(e,{as:`style`})}),a===`beforeInteractive`)return n?(h.default.preload(n,c.integrity?{as:`script`,integrity:c.integrity,nonce:p,crossOrigin:c.crossOrigin}:{as:`script`,nonce:p,crossOrigin:c.crossOrigin}),(0,m.jsx)(`script`,{nonce:p,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,b.htmlEscapeJsonString)(JSON.stringify([n,{...c,id:t}]))})`}})):(c.dangerouslySetInnerHTML&&(c.children=c.dangerouslySetInnerHTML.__html,delete c.dangerouslySetInnerHTML),(0,m.jsx)(`script`,{nonce:p,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,b.htmlEscapeJsonString)(JSON.stringify([0,{...c,id:t}]))})`}}));a===`afterInteractive`&&n&&h.default.preload(n,c.integrity?{as:`script`,integrity:c.integrity,nonce:p,crossOrigin:c.crossOrigin}:{as:`script`,nonce:p,crossOrigin:c.crossOrigin})}return null}Object.defineProperty(k,"__nextScript",{value:!0});var A=k;(typeof t.default==`function`||typeof t.default==`object`&&t.default!==null)&&t.default.__esModule===void 0&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)})),h=o(((e,t)=>{t.exports=m()})),g=t(i(),1),_=n(),v=t(h(),1),y=[`light`,`dark`],b=`(prefers-color-scheme: dark)`,x=(e,t)=>{if(typeof window>`u`)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},S=e=>(e||=window.matchMedia(b),e.matches?`dark`:`light`),C=(0,g.createContext)({toggle:()=>{},set:e=>{},themes:[]});(0,g.memo)(({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:i=!0,storageKey:o=`theme`,themes:s=y,defaultTheme:c=n?`system`:`light`,attribute:l=`class`,skipNextHead:u,onChangeTheme:d,value:f={dark:`t_dark`,light:`t_light`},children:p})=>{let[m,h]=(0,g.useState)(()=>x(o,c)),[v,T]=(0,g.useState)(()=>x(o)),E=f?Object.values(f):s,D=r(n=>{let r=S(n),i=()=>T(r);t?i():g.startTransition(()=>i()),m===`system`&&!e&&O(r,!1)}),O=r((e,t=!0,r=!0)=>{let i=f?.[e]||e;if(t)try{localStorage.setItem(o,e)}catch{}if(e===`system`&&n){let e=S();i=f?.[e]||e}if(d?.(i.replace(`t_`,``)),r){let e=document.documentElement;l===`class`?(e.classList.remove(...E),e.classList.add(i)):e.setAttribute(l,i)}});a(()=>{let e=window.matchMedia(b);return e.addListener(D),D(e),()=>{e.removeListener(D)}},[]);let k=r(t=>{e||(O(t),h(t))});(0,g.useEffect)(()=>{let e=e=>{if(e.key!==o)return;let t=e.newValue||c;k(t)};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}},[c,k,o]),a(()=>{if(!i)return;let t=e&&y.includes(e)?e:m&&y.includes(m)?m:m===`system`&&v||null;(typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`)!==(t||`light`)&&document.documentElement.style.setProperty(`color-scheme`,t)},[i,m,v,e]);let A=r(()=>{let e=v===`dark`?[`system`,`light`,`dark`]:[`system`,`dark`,`light`],t=e[(e.indexOf(m)+1)%e.length];k(t)}),j=n?v:void 0,M=(0,g.useMemo)(()=>({theme:m,current:m,set:k,toggle:A,forcedTheme:e,resolvedTheme:m===`system`?v:m,themes:n?[...s,`system`]:s,systemTheme:j}),[m,k,A,e,v,n,s,j]);return(0,_.jsxs)(C.Provider,{value:M,children:[(0,_.jsx)(w,{forcedTheme:e,storageKey:o,systemTheme:v,attribute:l,value:f,enableSystem:n,defaultTheme:c,attrs:E,skipNextHead:u}),p]})});var w=(0,g.memo)(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,defaultTheme:i,value:a,attrs:o,skipNextHead:s})=>{let c=n===`class`?`var d=document.documentElement.classList;${o.map(e=>`d.remove('${e}')`).join(`;`)};`:`var d=document.documentElement;`,l=(e,t)=>{e=a?.[e]||e;let r=t?e:`'${e}'`;return n===`class`?`d.add(${r})`:`d.setAttribute('${n}', ${r})`},u=i===`system`,d=e?`!function(){${c}${l(e)}}()`:r?`!function(){try {${c}var e=localStorage.getItem('${t}');if("system"===e||(!e&&${u})){var t="${b}",m=window.matchMedia(t);m.media!==t||m.matches?${l(`dark`)}:${l(`light`)}}else if(e){${a?`var x=${JSON.stringify(a)};`:``}${l(a?`x[e]`:`e`,!0)}}${u?``:`else{${l(i)}}`}}catch(e){}}()`:`!function(){try{${c}var e=localStorage.getItem("${t}");if(e){${a?`var x=${JSON.stringify(a)};`:``}${l(a?`x[e]`:`e`,!0)}}else{${l(i)};}}catch(t){}}();`;return s?(0,_.jsx)(`script`,{dangerouslySetInnerHTML:{__html:d}},`next-themes-script`):(0,_.jsx)(v.default,{id:`next-themes-script`,strategy:`beforeInteractive`,dangerouslySetInnerHTML:{__html:d}})},(e,t)=>e.forcedTheme===t.forcedTheme),T=()=>(0,g.useContext)(C);function E({size:e,label:t}){let{current:n,resolvedTheme:r,set:i}=T();return(0,_.jsx)(s,{theme:(r??n??`dark`)===`light`?`light`:`dark`,onToggle:e=>i(e),size:e,label:t})}export{E as ThemeToggleNext,E as default};
|
|
2
|
+
//# sourceMappingURL=ThemeToggleNext-Cx7XdonO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeToggleNext-Cx7XdonO.js","names":["createContext","memo","useState","useMemo","_jsxs","_jsx","Script","useContext","_jsx"],"sources":["../../node_modules/.pnpm/@swc+helpers@0.5.23/node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../node_modules/.pnpm/@swc+helpers@0.5.23/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/set-attributes-from-props.js","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/request-idle-callback.js","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/shared/lib/htmlescape.js","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/client/script.js","../../node_modules/.pnpm/next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+node@26.4.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/script.js","../../node_modules/.pnpm/@hanzogui+next-theme@8.3.5_next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+_87c7e759dd65c8c887e02d85d3ec3280/node_modules/@hanzogui/next-theme/dist/esm/constants.js","../../node_modules/.pnpm/@hanzogui+next-theme@8.3.5_next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+_87c7e759dd65c8c887e02d85d3ec3280/node_modules/@hanzogui/next-theme/dist/esm/helpers.js","../../node_modules/.pnpm/@hanzogui+next-theme@8.3.5_next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+_87c7e759dd65c8c887e02d85d3ec3280/node_modules/@hanzogui/next-theme/dist/esm/ThemeSettingContext.js","../../node_modules/.pnpm/@hanzogui+next-theme@8.3.5_next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+_87c7e759dd65c8c887e02d85d3ec3280/node_modules/@hanzogui/next-theme/dist/esm/NextThemeProvider.js","../../node_modules/.pnpm/@hanzogui+next-theme@8.3.5_next@16.3.4_@babel+core@7.29.7_supports-color@8.1.1__@types+_87c7e759dd65c8c887e02d85d3ec3280/node_modules/@hanzogui/next-theme/dist/esm/useTheme.js","../../node_modules/.pnpm/@hanzo+ui@8.29.45_9c7718d2f737388a8b34f13bdcaf5de1/node_modules/@hanzo/ui/dist/product/ThemeToggleNext.js"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"HeadManagerContext\", {\n enumerable: true,\n get: function() {\n return HeadManagerContext;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _react = /*#__PURE__*/ _interop_require_default._(require(\"react\"));\nconst HeadManagerContext = _react.default.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext';\n}\n\n//# sourceMappingURL=head-manager-context.shared-runtime.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"setAttributesFromProps\", {\n enumerable: true,\n get: function() {\n return setAttributesFromProps;\n }\n});\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nconst ignoreProps = [\n 'onLoad',\n 'onReady',\n 'dangerouslySetInnerHTML',\n 'children',\n 'onError',\n 'strategy',\n 'stylesheets'\n];\nfunction isBooleanScriptAttribute(attr) {\n return [\n 'async',\n 'defer',\n 'noModule'\n ].includes(attr);\n}\nfunction setAttributesFromProps(el, props) {\n for (const [p, value] of Object.entries(props)){\n if (!props.hasOwnProperty(p)) continue;\n if (ignoreProps.includes(p)) continue;\n // we don't render undefined props to the DOM\n if (value === undefined) {\n continue;\n }\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) {\n // Correctly assign boolean script attributes\n // https://github.com/vercel/next.js/pull/20748\n ;\n el[attr] = !!value;\n } else {\n el.setAttribute(attr, String(value));\n }\n // Remove falsy non-zero boolean attributes so they are correctly interpreted\n // (e.g. if we set them to false, this coerces to the string \"false\", which the browser interprets as true)\n if (value === false || el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr) && (!value || value === 'false')) {\n // Call setAttribute before, as we need to set and unset the attribute to override force async:\n // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async\n el.setAttribute(attr, '');\n el.removeAttribute(attr);\n }\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=set-attributes-from-props.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n cancelIdleCallback: null,\n requestIdleCallback: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=request-idle-callback.js.map","// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n ESCAPE_REGEX: null,\n htmlEscapeAttributeString: null,\n htmlEscapeJsonString: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeAttributeString: function() {\n return htmlEscapeAttributeString;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\nconst ESCAPE_LOOKUP = {\n '&': '\\\\u0026',\n '>': '\\\\u003e',\n '<': '\\\\u003c',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nconst ATTRIBUTE_ESCAPE_LOOKUP = {\n '&': '&',\n '\"': '"',\n \"'\": ''',\n '<': '<',\n '>': '>'\n};\nconst ATTRIBUTE_ESCAPE_REGEX = /[&\"'<>]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n}\nfunction htmlEscapeAttributeString(str) {\n return str.replace(ATTRIBUTE_ESCAPE_REGEX, (match)=>ATTRIBUTE_ESCAPE_LOOKUP[match]);\n}\n\n//# sourceMappingURL=htmlescape.js.map","'use client';\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n default: null,\n handleClientScriptLoad: null,\n initScriptLoader: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n handleClientScriptLoad: function() {\n return handleClientScriptLoad;\n },\n initScriptLoader: function() {\n return initScriptLoader;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _interop_require_wildcard = require(\"@swc/helpers/_/_interop_require_wildcard\");\nconst _jsxruntime = require(\"react/jsx-runtime\");\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(require(\"react-dom\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(require(\"react\"));\nconst _headmanagercontextsharedruntime = require(\"../shared/lib/head-manager-context.shared-runtime\");\nconst _setattributesfromprops = require(\"./set-attributes-from-props\");\nconst _requestidlecallback = require(\"./request-idle-callback\");\nconst _htmlescape = require(\"../shared/lib/htmlescape\");\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst insertStylesheets = (stylesheets)=>{\n // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad\n //\n // Using ReactDOM.preinit to feature detect appDir and inject styles\n // Stylesheets might have already been loaded if initialized with Script component\n // Re-inject styles here to handle scripts loaded via handleClientScriptLoad\n // ReactDOM.preinit handles dedup and ensures the styles are loaded only once\n if (_reactdom.default.preinit) {\n stylesheets.forEach((stylesheet)=>{\n _reactdom.default.preinit(stylesheet, {\n as: 'style'\n });\n });\n return;\n }\n // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad\n //\n // We use this function to load styles when appdir is not detected\n // TODO: Use React float APIs to load styles once available for pages dir\n if (typeof window !== 'undefined') {\n let head = document.head;\n stylesheets.forEach((stylesheet)=>{\n let link = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = stylesheet;\n head.appendChild(link);\n });\n }\n};\nconst loadScript = (props)=>{\n const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement('script');\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener('load', function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener('error', function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n if (strategy === 'worker') {\n el.setAttribute('type', 'text/partytown');\n }\n el.setAttribute('data-nscript', strategy);\n // Load styles associated with this script\n if (stylesheets) {\n insertStylesheets(stylesheets);\n }\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy = 'afterInteractive' } = props;\n if (strategy === 'lazyOnload') {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n } else {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]')\n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute('src');\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\n/**\n * Load a third-party scripts in an optimized way.\n *\n * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script)\n */ function Script(props) {\n const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props;\n // Context is available only during SSR\n let { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n // if a nonce is explicitly passed to the script tag, favor that over the automatic handling\n nonce = restProps.nonce || nonce;\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === 'beforeInteractive' || strategy === 'worker') {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n {\n id,\n src,\n onLoad,\n onReady,\n onError,\n ...restProps,\n nonce\n }\n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript({\n ...props,\n nonce\n });\n }\n }\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Injecting stylesheets here handles beforeInteractive and worker scripts correctly\n // For other strategies injecting here ensures correct stylesheet order\n // ReactDOM.preinit handles loading the styles in the correct order,\n // also ensures the stylesheet is loaded only once and in a consistent manner\n //\n // Case 1: Styles for beforeInteractive/worker with appDir - handled here\n // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet\n // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here\n // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function\n if (stylesheets) {\n stylesheets.forEach((styleSrc)=>{\n _reactdom.default.preinit(styleSrc, {\n as: 'style'\n });\n });\n }\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native <script> tags, because they no longer have `defer`.\n if (strategy === 'beforeInteractive') {\n if (!src) {\n // For inlined scripts, we put the content in `children`.\n if (restProps.dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n restProps.children = restProps.dangerouslySetInnerHTML.__html;\n delete restProps.dangerouslySetInnerHTML;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: `(self.__next_s=self.__next_s||[]).push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([\n 0,\n {\n ...restProps,\n id\n }\n ]))})`\n }\n });\n } else {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: `(self.__next_s=self.__next_s||[]).push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([\n src,\n {\n ...restProps,\n id\n }\n ]))})`\n }\n });\n }\n } else if (strategy === 'afterInteractive') {\n if (src) {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n }\n }\n }\n return null;\n}\nObject.defineProperty(Script, '__nextScript', {\n value: true\n});\nconst _default = Script;\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=script.js.map","module.exports = require('./dist/client/script')\n","export const constants = {};\nexport const colorSchemes = ['light', 'dark'];\nexport const MEDIA = '(prefers-color-scheme: dark)';\n//# sourceMappingURL=constants.js.map","import { MEDIA } from './constants.js';\nexport const helpers = {};\n// Helpers\nexport const getTheme = (key, fallback) => {\n if (typeof window === 'undefined')\n return undefined;\n let theme;\n try {\n theme = localStorage.getItem(key) || undefined;\n }\n catch (e) {\n // Unsupported\n }\n return theme || fallback;\n};\nexport const getSystemTheme = (e) => {\n if (!e) {\n e = window.matchMedia(MEDIA);\n }\n const isDark = e.matches;\n const systemTheme = isDark ? 'dark' : 'light';\n return systemTheme;\n};\n//# sourceMappingURL=helpers.js.map","import { createContext } from 'react';\nexport const ThemeSettingContext = createContext({\n toggle: () => { },\n set: (_) => { },\n themes: [],\n});\n//# sourceMappingURL=ThemeSettingContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useIsomorphicLayoutEffect } from '@hanzogui/constants';\nimport { useEvent } from '@hanzogui/use-event';\nimport Script from 'next/script';\nimport * as React from 'react';\nimport { memo, useEffect, useMemo, useState } from 'react';\nimport { MEDIA, colorSchemes } from './constants.js';\nimport { getSystemTheme, getTheme } from './helpers.js';\nimport { ThemeSettingContext } from './ThemeSettingContext.js';\nexport const NextThemeProvider = memo(({ forcedTheme, disableTransitionOnChange = false, enableSystem = true, enableColorScheme = true, storageKey = 'theme', themes = colorSchemes, defaultTheme = enableSystem ? 'system' : 'light', attribute = 'class', skipNextHead, onChangeTheme, value = {\n dark: 't_dark',\n light: 't_light',\n}, children, }) => {\n const [theme, setThemeState] = useState(() => getTheme(storageKey, defaultTheme));\n const [resolvedTheme, setResolvedTheme] = useState(() => getTheme(storageKey));\n const attrs = !value ? themes : Object.values(value);\n const handleMediaQuery = useEvent((e) => {\n const _ = getSystemTheme(e);\n const update = () => setResolvedTheme(_);\n if (disableTransitionOnChange) {\n update();\n }\n else {\n React.startTransition(() => update());\n }\n if (theme === 'system' && !forcedTheme) {\n handleChangeTheme(_, false);\n }\n });\n const handleChangeTheme = useEvent((theme, updateStorage = true, updateDOM = true) => {\n let name = value?.[theme] || theme;\n if (updateStorage) {\n try {\n localStorage.setItem(storageKey, theme);\n }\n catch (e) {\n // Unsupported\n }\n }\n if (theme === 'system' && enableSystem) {\n const resolved = getSystemTheme();\n name = value?.[resolved] || resolved;\n }\n onChangeTheme?.(name.replace('t_', ''));\n if (updateDOM) {\n const d = document.documentElement;\n if (attribute === 'class') {\n d.classList.remove(...attrs);\n d.classList.add(name);\n }\n else {\n d.setAttribute(attribute, name);\n }\n }\n });\n useIsomorphicLayoutEffect(() => {\n // Always listen to System preference\n const media = window.matchMedia(MEDIA);\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n return () => {\n media.removeListener(handleMediaQuery);\n };\n }, []);\n const set = useEvent((newTheme) => {\n if (forcedTheme) {\n // when forcedTheme is active, block all updates to avoid desync\n return;\n }\n handleChangeTheme(newTheme);\n setThemeState(newTheme);\n });\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e) => {\n if (e.key !== storageKey) {\n return;\n }\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme;\n set(theme);\n };\n window.addEventListener('storage', handleStorage);\n return () => {\n window.removeEventListener('storage', handleStorage);\n };\n }, [defaultTheme, set, storageKey]);\n // color-scheme handling\n useIsomorphicLayoutEffect(() => {\n if (!enableColorScheme)\n return;\n const colorScheme = \n // If theme is forced to light or dark, use that\n forcedTheme && colorSchemes.includes(forcedTheme)\n ? forcedTheme\n : // If regular theme is light or dark\n theme && colorSchemes.includes(theme)\n ? theme\n : // If theme is system, use the resolved version\n theme === 'system'\n ? resolvedTheme || null\n : null;\n // color-scheme tells browser how to render built-in elements like forms, scrollbars, etc.\n // if color-scheme is null, this will remove the property\n const userPrefers = typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n const wePrefer = colorScheme || 'light';\n // avoid running this because it causes full page reflow\n if (userPrefers !== wePrefer) {\n document.documentElement.style.setProperty('color-scheme', colorScheme);\n }\n }, [enableColorScheme, theme, resolvedTheme, forcedTheme]);\n const toggle = useEvent(() => {\n const order = resolvedTheme === 'dark'\n ? ['system', 'light', 'dark']\n : ['system', 'dark', 'light'];\n const next = order[(order.indexOf(theme) + 1) % order.length];\n set(next);\n });\n const systemTheme = (enableSystem ? resolvedTheme : undefined);\n const contextValue = useMemo(() => {\n const value = {\n theme,\n current: theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme: theme === 'system' ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, 'system'] : themes,\n systemTheme,\n };\n return value;\n }, [\n theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme,\n enableSystem,\n themes,\n systemTheme,\n ]);\n return (_jsxs(ThemeSettingContext.Provider, { value: contextValue, children: [_jsx(ThemeScript, { forcedTheme,\n storageKey,\n systemTheme: resolvedTheme,\n attribute,\n value,\n enableSystem,\n defaultTheme,\n attrs,\n skipNextHead }), children] }));\n});\nconst ThemeScript = memo(({ forcedTheme, storageKey, attribute, enableSystem, defaultTheme, value, attrs, skipNextHead, }) => {\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === 'class') {\n const removeClasses = attrs.map((t) => `d.remove('${t}')`).join(';');\n return `var d=document.documentElement.classList;${removeClasses};`;\n }\n return `var d=document.documentElement;`;\n })();\n const updateDOM = (name, literal) => {\n name = value?.[name] || name;\n const val = literal ? name : `'${name}'`;\n if (attribute === 'class') {\n return `d.add(${val})`;\n }\n return `d.setAttribute('${attribute}', ${val})`;\n };\n const defaultSystem = defaultTheme === 'system';\n const scriptContent = forcedTheme\n ? `!function(){${optimization}${updateDOM(forcedTheme)}}()`\n : enableSystem\n ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if(\"system\"===e||(!e&&${defaultSystem})){var t=\"${MEDIA}\",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM('dark')}:${updateDOM('light')}}else if(e){${value ? `var x=${JSON.stringify(value)};` : ''}${updateDOM(value ? 'x[e]' : 'e', true)}}${!defaultSystem ? `else{${updateDOM(defaultTheme)}}` : ''}}catch(e){}}()`\n : `!function(){try{${optimization}var e=localStorage.getItem(\"${storageKey}\");if(e){${value ? `var x=${JSON.stringify(value)};` : ''}${updateDOM(value ? 'x[e]' : 'e', true)}}else{${updateDOM(defaultTheme)};}}catch(t){}}();`;\n // skipNextHead returns raw script for useServerInsertedHTML usage\n if (skipNextHead) {\n return (_jsx(\"script\", { dangerouslySetInnerHTML: { __html: scriptContent } }, \"next-themes-script\"));\n }\n return (_jsx(Script, { id: \"next-themes-script\", strategy: \"beforeInteractive\", dangerouslySetInnerHTML: { __html: scriptContent } }));\n}, (prevProps, nextProps) => {\n // Only re-render when forcedTheme changes\n // the rest of the props should be completely stable\n if (prevProps.forcedTheme !== nextProps.forcedTheme)\n return false;\n return true;\n});\n//# sourceMappingURL=NextThemeProvider.js.map","import { useContext } from 'react';\nimport { ThemeSettingContext } from './ThemeSettingContext.js';\n/**\n * @deprecated renamed to `useThemeSetting` to avoid confusion with core `useTheme` hook\n */\nexport const useTheme = () => useContext(ThemeSettingContext);\nexport const useThemeSetting = () => useContext(ThemeSettingContext);\n//# sourceMappingURL=useTheme.js.map","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * ThemeToggleNext — the @hanzogui/next-theme binding (console / Next). This is the ONLY\n * module that imports @hanzogui/next-theme, so it stays an OPTIONAL dependency: the base\n * ThemeToggle lazy-loads it (default export) and non-Next hosts never pull it in unless\n * they import this component directly. UI is delegated to the framework-agnostic button\n * in controlled mode, so every toggle looks identical.\n */\nimport { useThemeSetting } from '@hanzogui/next-theme';\nimport { AgnosticThemeToggle } from './ThemeToggle.js';\nfunction ThemeToggleNext({ size, label }) {\n const { current, resolvedTheme, set } = useThemeSetting();\n const isDark = (resolvedTheme ?? current ?? 'dark') !== 'light';\n return (_jsx(AgnosticThemeToggle, { theme: isDark ? 'dark' : 'light', onToggle: (next) => set(next), size: size, label: label }));\n}\nexport default ThemeToggleNext;\nexport { ThemeToggleNext };\n//# sourceMappingURL=ThemeToggleNext.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={nav:`navigation`,main:`main`,header:`banner`,footer:`contentinfo`,aside:`complementary`,form:`form`,button:`button`,select:`combobox`,textarea:`textbox`,img:`img`,ul:`list`,ol:`list`,li:`listitem`,table:`table`,dialog:`dialog`,article:`article`,section:`region`,summary:`button`},t={checkbox:`checkbox`,radio:`radio`,range:`slider`,number:`spinbutton`,submit:`button`,button:`button`,reset:`button`,search:`searchbox`};function n(e,t){let n=e.getAttribute(t);return n==null||n===``?void 0:n}function r(e){return e.tagName.toLowerCase()}function i(i){let a=n(i,`role`);if(a)return a;let o=r(i);return o===`a`?n(i,`href`)==null?`generic`:`link`:o===`input`?t[(n(i,`type`)||`text`).toLowerCase()]??`textbox`:/^h[1-6]$/.test(o)?`heading`:e[o]??`generic`}function a(e){if(!e)return;let t=e.replace(/\s+/g,` `).trim();if(t)return t.length>80?t.slice(0,80)+`…`:t}function o(e){let t=n(e,`aria-label`);if(t)return a(t);let o=n(e,`aria-labelledby`);if(o&&typeof document<`u`){let e=a(o.split(/\s+/).map(e=>document.getElementById(e)?.textContent||``).join(` `));if(e)return e}let c=r(e);if(c===`img`)return a(n(e,`alt`));if(c===`input`||c===`textarea`||c===`select`){if(e.id&&typeof document<`u`){let t=a(document.querySelector(`label[for="${s(e.id)}"]`)?.textContent);if(t)return t}return a(n(e,`placeholder`)||n(e,`name`)||n(e,`title`))}let l=n(e,`title`);if(l)return a(l);let u=i(e);if(u===`button`||u===`link`||u===`heading`||u===`listitem`)return a(e.textContent)}function s(e){let t=typeof globalThis<`u`?globalThis:void 0;return t?.CSS?.escape?t.CSS.escape(e):e.replace(/["\\\]]/g,`\\$&`)}function c(e){let t=n(e,`data-hz-name`)||n(e,`data-component`);if(t)return a(t);let r=n(e,`data-observe`);if(r&&r!==`off`)return a(r);let i=n(e,`data-slot`);return i?a(i):l(e)}function l(e){try{let t=e,n=Object.keys(t).find(e=>e.startsWith(`__reactFiber$`)||e.startsWith(`__reactInternalInstance$`));if(!n)return;let r=t[n]?._debugOwner,i=0;for(;r&&i<20;){let e=r.type,t=e?.displayName||e?.name;if(t&&/^[A-Z]/.test(t))return t;r=r._debugOwner,i++}}catch{}}function u(e){let t=r(e),a=i(e),s={tag:t,role:a},l=n(e,`data-testid`)||n(e,`data-test-id`)||n(e,`data-test`);l&&(s.testid=l),e.id&&(s.id=e.id);let u=o(e);u&&(s.name=u);let f=d(e,t,a);f&&(s.kind=f);let p=c(e);return p&&(s.component=p),s}function d(e,t,r){if(t===`input`)return(n(e,`type`)||`text`).toLowerCase();if(t===`button`)return n(e,`type`)||void 0;if(t===`a`){let t=n(e,`href`);if(!t)return;try{return new URL(t,typeof location<`u`?location.href:`https://x`).pathname}catch{return t}}if(r===`heading`)return e.tagName.toLowerCase()}function f(e){return!!(e.component||e.testid||e.role&&e.role!==`generic`||e.name)}function p(e){let t=e.component??(e.role&&e.role!==`generic`?e.role:e.tag);return e.testid?`${t}[${e.testid}]`:e.name?`${t}[${e.name}]`:t}function m(e){let t=e.filter(f);return(t.length?t:e.length?[e[e.length-1]]:[]).map(p).join(`/`)}function h(e,t={}){let n=t.maxDepth??12,r=[],i=e,a=0,o=typeof document<`u`?document.documentElement:null;for(;i&&i.nodeType===1&&i!==o&&a<n;)r.unshift(u(i)),i=i.parentElement,a++;let s=r.length?r[r.length-1]:u(e);return{"@context":`https://schema.hanzo.ai/observe`,"@type":`Interaction`,path:r,target:s,label:m(r.length?r:[s])}}var g=256;function _(e){let t={},n=(e,n)=>{n&&n.length<=g&&(t[e]=n)};try{n(`$href`,v(e)),n(`$id`,e.id||void 0),n(`$section`,b(e))}catch{}return t}function v(e){let t=e.closest(`a[href]`)?.getAttribute(`href`);if(!t||typeof location>`u`)return;let n=new URL(t,location.href);return n.protocol!==`http:`&&n.protocol!==`https:`?n.protocol:n.origin===location.origin?n.pathname:n.origin+n.pathname}var y=`section[id],[data-hz-view]`;function b(e){for(let t=e.closest(y);t;t=t.parentElement?.closest(y)??null){let e=n(t,`data-hz-view`)||t.id;if(e)return e}}function x(){let e={},t=[],n=0,r=0,i=0,a=(e,n,r)=>{try{if(typeof PerformanceObserver>`u`||!PerformanceObserver.supportedEntryTypes?.includes(e))return;let i=new PerformanceObserver(e=>{try{n(e.getEntries())}catch{}});i.observe({type:e,buffered:!0,...r}),t.push(i)}catch{}};try{let t=performance.getEntriesByType?.(`navigation`)?.[0];t&&t.responseStart>0&&(e.$ttfb_ms=Math.round(t.responseStart))}catch{}return a(`paint`,t=>{for(let n of t)n.name===`first-contentful-paint`&&n.startTime>0&&(e.$fcp_ms=Math.round(n.startTime))}),a(`largest-contentful-paint`,t=>{let n=t[t.length-1];n&&n.startTime>0&&(e.$lcp_ms=Math.round(n.startTime))}),a(`layout-shift`,t=>{for(let a of t)a.hadRecentInput||(n&&(a.startTime-i>1e3||a.startTime-r>5e3)&&(n=0),n||(r=a.startTime),n+=a.value,i=a.startTime,n>(e.$cls??0)&&(e.$cls=Math.round(n*1e3)/1e3))}),a(`event`,t=>{for(let n of t)n.interactionId&&n.duration>(e.$inp_ms??0)&&(e.$inp_ms=Math.round(n.duration))},{durationThreshold:40}),{read:()=>({...e}),stop(){for(let e of t)e.disconnect();t.length=0}}}var S=6e4;function C(e){if(e.intersectionRatio>=.5)return!0;let t=e.rootBounds?.height??window.innerHeight;return t>0&&e.intersectionRect.height>=t/2}var w=[0,1/64,1/32,1/16,1/8,1/4,1/2,1];function T(){return location.pathname+location.search}var E=[`pointerdown`,`pointermove`,`keydown`,`wheel`,`touchstart`];function D(){let e=Math.random().toString(36).slice(2,10);return Date.now().toString(36)+e}var O=class{constructor(e,t){this.emit=e,this.nameOf=t,this.key=``,this.page={url:``,path:``},this.id=``,this.seq=0,this.began=0,this.last=0,this.input=0,this.on=!1,this.active=0,this.sections=new Map,this.scrollMax=0,this.sentScroll=-1,this.shown=new Map,this.running=!1,this.settle=()=>{this.tick(Date.now()),this.on=this.live()},this.onFocus=()=>this.settle(),this.onVisibility=()=>{this.settle(),document.visibilityState===`hidden`?this.leave(`hidden`):this.input=Date.now()},this.onPageHide=()=>{this.leave(`pagehide`),this.on=!1},this.onInput=()=>{let e=Date.now();e-this.input>6e4&&this.tick(e),this.input=e},this.onScroll=()=>{this.onInput();let e=window.scrollY;e>this.scrollMax&&(this.scrollMax=Math.round(e))},this.onSections=e=>{try{this.tick(Date.now());for(let t of e){let e=this.nameOf(t.target);e&&(t.isIntersecting&&C(t)?this.shown.set(t.target,e):this.shown.delete(t.target))}}catch{}}}start(){if(this.running)return;this.running=!0;let e=typeof performance<`u`&&performance.timeOrigin?performance.timeOrigin:0;this.begin(e>0&&e<=Date.now()?Math.floor(e):Date.now()),this.perf=x(),document.addEventListener(`visibilitychange`,this.onVisibility),window.addEventListener(`focus`,this.onFocus),window.addEventListener(`blur`,this.onFocus),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`scroll`,this.onScroll,{passive:!0});for(let e of E)window.addEventListener(e,this.onInput,{capture:!0,passive:!0})}stop(){if(this.running){this.leave(`stop`),this.running=!1,document.removeEventListener(`visibilitychange`,this.onVisibility),window.removeEventListener(`focus`,this.onFocus),window.removeEventListener(`blur`,this.onFocus),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`scroll`,this.onScroll);for(let e of E)window.removeEventListener(e,this.onInput,{capture:!0});this.io?.disconnect(),this.io=void 0,this.shown.clear(),this.perf?.stop(),this.perf=void 0}}watch(e){if(this.running)try{!this.io&&typeof IntersectionObserver<`u`&&(this.io=new IntersectionObserver(this.onSections,{threshold:w})),this.io?.observe(e)}catch{}}forget(e){try{this.io?.unobserve(e),this.shown.has(e)&&(this.tick(Date.now()),this.shown.delete(e))}catch{}}route(){if(this.running)try{if(T()===this.key)return;this.leave(`nav`),this.perf?.stop(),this.perf=void 0,this.begin(Date.now())}catch{}}begin(e){this.key=T(),this.page={url:location.href,path:location.pathname},this.id=D(),this.seq=0,this.began=e,this.last=e,this.input=e,this.on=this.live(),this.active=0,this.sections.clear(),this.scrollMax=Math.max(0,Math.round(window.scrollY||0)),this.sentScroll=-1}live(){let e=document.visibilityState!==`hidden`,t=typeof document.hasFocus!=`function`||document.hasFocus();return e&&t}tick(e){let t=this.last;if(this.last=Math.max(t,e),!this.on)return;let n=Math.min(e,this.input+S)-t;if(!(n<=0)){this.active+=n;for(let e of new Set(this.shown.values()))this.sections.set(e,(this.sections.get(e)??0)+n)}}leave(e){try{let t=Date.now();this.tick(t);let n=this.active>0||this.sections.size>0||this.scrollMax!==this.sentScroll;if(this.seq>0&&!n)return;let r=document.documentElement,i=r.scrollHeight,a=window.innerHeight,o={$view_id:this.id,$seq:this.seq,$reason:e,$active_ms:Math.round(this.active),$elapsed_ms:Math.max(0,t-this.began),$scroll_max:this.scrollMax,$depth_max:i>0?Math.min(100,Math.round((this.scrollMax+a)/i*100)):0,$page_width:r.scrollWidth,$page_height:i,$viewport_width:window.innerWidth,$viewport_height:a};if(this.sections.size>0){let e={};for(let[t,n]of this.sections)e[t]=Math.round(n);o.$sections=e}this.perf&&Object.assign(o,this.perf.read()),this.seq++,this.active=0,this.sections.clear(),this.sentScroll=this.scrollMax,this.emit({page:{...this.page},props:o})}catch{}}},k=64,ee=new Set([`password`,`hidden`,`email`,`tel`]),A=/pass|pwd|secret|token|otp|cvv|cvc|csc|cc-|card|ccnum|credit|ssn|social|routing|account|pin|auth|api[-_ ]?key|security|dob|birth/i,j=`data-hz-private`;function M(e,t){return e.getAttribute(t)}function N(e,t={}){let n=t.privateAttribute??j,r=e;for(;r&&r.nodeType===1;){if(r.hasAttribute(n)||r.getAttribute(`data-observe`)===`off`||r.hasAttribute(`data-private`))return!0;r=r.parentElement}return!1}function P(e){return[M(e,`name`),e.id||null,M(e,`autocomplete`),M(e,`placeholder`),M(e,`aria-label`)].filter(Boolean).join(` `)}function F(e,t={}){return!!(A.test(e)||t.sensitive&&t.sensitive.test(e))}function I(e,t,n){return ee.has(t)?!0:F(P(e),n)}function L(e){return e.length>k?e.slice(0,k)+`…`:e}function R(e,t={}){let n=e.tagName.toLowerCase();if(n!==`input`&&n!==`textarea`&&n!==`select`)return;if(n===`select`){let t=e,n=t.options[t.selectedIndex];return{redacted:!1,kind:`select`,value:n?L((n.text||``).trim()):void 0}}let r=(n===`textarea`?`textarea`:M(e,`type`)||`text`).toLowerCase();if(r===`checkbox`||r===`radio`)return{redacted:!1,kind:r,checked:e.checked};let i=e.value??``,a=I(e,r,t),o=t.maskInput!==!1;return a?{redacted:!0,kind:r}:o?{redacted:!0,kind:r,length:i.length}:{redacted:!1,kind:r,value:L(i)}}var z=class{constructor(e=500){this.capacity=e,this.subs=new Set,this.ring=[]}emit(e){this.ring.push(e),this.ring.length>this.capacity&&this.ring.splice(0,this.ring.length-this.capacity);for(let t of this.subs)try{t(e)}catch{}}subscribe(e){return this.subs.add(e),()=>{this.subs.delete(e)}}buffer(){return this.ring.slice()}clear(){this.ring=[]}},B=()=>typeof window<`u`&&typeof document<`u`,V=Symbol.for(`hanzo.observe.roots`);function H(){let e=globalThis,t=e[V];if(t)return t;let n=new Set;return e[V]=n,n}var U={click:`$click`,input:`$input`,change:`$change`,submit:`$submit`,nav:`$pageview`,view:`$view`,scroll:`$scroll`,rageclick:`$rageclick`,leave:`$pageleave`},W=`hz:navigate`,G=0,K=null;function q(){if(!B()||(G++,K))return;let e=history.pushState,t=history.replaceState;K={push:e,replace:t};let n=()=>{try{window.dispatchEvent(new Event(W))}catch{}};history.pushState=function(...t){let r=e.apply(this,t);return n(),r},history.replaceState=function(...e){let r=t.apply(this,e);return n(),r}}function J(){G>0&&G--,G===0&&K&&(history.pushState=K.push,history.replaceState=K.replace,K=null)}function Y(e){return e&&e.nodeType===1?e:e&&e.nodeType===3?e.parentElement:null}var X=12;function Z(e){for(let t=e,n=0;t&&n<X;t=t.parentElement,n++){let e=getComputedStyle(t).position;if(e===`fixed`||e===`sticky`)return!0}return!1}function Q(){let e=document.documentElement;return{$page_width:e.scrollWidth,$page_height:e.scrollHeight}}function te(e,t){let n=e;if(typeof n.clientX==`number`&&typeof n.clientY==`number`&&n.detail)try{let e=Z(t),r=t?.getBoundingClientRect();return{$x:Math.round(n.clientX+(e?0:window.scrollX)),$y:Math.round(n.clientY+(e?0:window.scrollY)),...r?{$el_x:Math.round(n.clientX-r.left),$el_y:Math.round(n.clientY-r.top)}:{},$target_fixed:e,$viewport_width:window.innerWidth,$viewport_height:window.innerHeight,...Q()}}catch{return}}var $=[25,50,75,100],ne=3,re=1e3,ie=30,ae=class{constructor(e){this.started=!1,this.pending=new Map,this.seen=new WeakSet,this.page=``,this.reached=new Set,this.frame=0,this.presses=[],this.raged=!1,this.history=!1,this.onClick=e=>{let t=Y(e.target),n=te(e,t);this.fire(`click`,t,n),n&&this.rage(e,t,n)},this.onScroll=()=>{this.frame||(this.reached.size!==$.length||this.page!==T())&&(this.frame=requestAnimationFrame(this.measure))},this.measure=()=>{this.frame=0;try{let e=T();if(e!==this.page&&(this.page=e,this.reached.clear()),window.scrollY<=0)return;let t=Q();if(!t.$page_height)return;let n=window.scrollY+window.innerHeight,r=n>=t.$page_height-1?100:n/t.$page_height*100;for(let e of $)r<e||this.reached.has(e)||(this.reached.add(e),this.fire(`scroll`,document.body,{depth:e,...t,$viewport_width:window.innerWidth,$viewport_height:window.innerHeight}))}catch{}},this.onInput=e=>{let t=Y(e.target);if(!t)return;let n=this.pending.get(t);n!==void 0&&clearTimeout(n),this.pending.set(t,setTimeout(()=>{this.pending.delete(t),this.fire(`input`,t)},this.cfg.inputDebounceMs))},this.onChange=e=>{let t=Y(e.target);if(t){let e=this.pending.get(t);e!==void 0&&(clearTimeout(e),this.pending.delete(t))}this.fire(`change`,t)},this.onSubmit=e=>this.fire(`submit`,Y(e.target)),this.onHistory=()=>{this.engage?.route(),this.cfg.nav&&this.onNav()},this.onNav=()=>{B()&&this.fire(`nav`,document.body,{path:T()})},this.cfg={...e,enabled:e.enabled??!0,nav:e.nav??!0,viewSelector:e.viewSelector??`[data-hz-view]`,inputDebounceMs:e.inputDebounceMs??400,engage:e.engage??!0,maxDepth:e.maxDepth??12},this.root=e.root??(B()?document:{}),this.stream=new z(e.bufferSize??500)}get capturing(){return this.started}start(){if(this.started||!this.cfg.enabled||!B())return;let e=H();if(e.has(this.root))return;e.add(this.root),this.started=!0;let t=this.root;this.cfg.engage&&this.root===document&&(this.engage=new O(e=>this.fire(`leave`,document.body,e.props,e.page),e=>e.getAttribute(`data-hz-view`)||e.id||void 0),this.engage.start()),t.addEventListener(`click`,this.onClick,{capture:!0,passive:!0}),t.addEventListener(`input`,this.onInput,{capture:!0,passive:!0}),t.addEventListener(`change`,this.onChange,{capture:!0,passive:!0}),t.addEventListener(`submit`,this.onSubmit,{capture:!0,passive:!0}),(this.cfg.nav||this.engage)&&(this.history=!0,q(),window.addEventListener(`popstate`,this.onHistory),window.addEventListener(W,this.onHistory)),this.root===document&&typeof requestAnimationFrame==`function`&&(this.page=T(),window.addEventListener(`scroll`,this.onScroll,{passive:!0})),this.installView()}stop(){if(!this.started)return;this.engage?.stop(),this.engage=void 0,this.started=!1,H().delete(this.root);let e=this.root;e.removeEventListener(`click`,this.onClick,{capture:!0}),e.removeEventListener(`input`,this.onInput,{capture:!0}),e.removeEventListener(`change`,this.onChange,{capture:!0}),e.removeEventListener(`submit`,this.onSubmit,{capture:!0}),this.history&&(this.history=!1,window.removeEventListener(`popstate`,this.onHistory),window.removeEventListener(W,this.onHistory),J()),window.removeEventListener(`scroll`,this.onScroll),this.frame&&cancelAnimationFrame(this.frame),this.frame=0,this.reached.clear(),this.presses=[];for(let e of this.pending.values())clearTimeout(e);this.pending.clear(),this.io?.disconnect(),this.io=void 0,this.mo?.disconnect(),this.mo=void 0}rage(e,t,n){let r=Date.now(),i=e.clientX,a=e.clientY;this.presses=this.presses.filter(e=>r-e.t<=re&&Math.hypot(e.x-i,e.y-a)<=ie),this.presses.push({t:r,x:i,y:a}),this.presses.length===1&&(this.raged=!1),!(this.presses.length<ne||this.raged)&&(this.raged=!0,this.fire(`rageclick`,t,n))}watch(e){try{this.io?.observe(e)}catch{}this.engage?.watch(e)}installView(){if(!(typeof IntersectionObserver>`u`))try{let e=new IntersectionObserver(t=>{for(let n of t){if(!n.isIntersecting||!C(n))continue;let t=n.target;e.unobserve(t),!this.seen.has(t)&&(this.seen.add(t),this.fire(`view`,t,{ratio:Math.round(n.intersectionRatio*100)/100}))}},{threshold:w});this.io=e;let t=this.cfg.viewSelector;if(!t)return;let n=(e,n)=>{e.matches(t)&&n(e),e.querySelectorAll(t).forEach(n)},r=t=>{e.observe(t),this.engage?.watch(t)},i=t=>{e.unobserve(t),this.engage?.forget(t)},a=this.root;if(a.querySelectorAll?.(t).forEach(r),this.passed(e,t),typeof MutationObserver>`u`)return;this.mo=new MutationObserver(e=>{try{for(let t of e)t.addedNodes.forEach(e=>e.nodeType===1&&n(e,r)),t.removedNodes.forEach(e=>e.nodeType===1&&n(e,i))}catch{}}),this.mo.observe(a,{childList:!0,subtree:!0})}catch{}}passed(e,t){try{if(this.root!==document||location.hash)return;let n=performance.getEntriesByType?.(`navigation`)?.[0];if(n&&n.type!==`navigate`)return;document.querySelectorAll(t).forEach(t=>{let n=t.getBoundingClientRect();this.seen.has(t)||n.height<=0||n.bottom>0||(e.unobserve(t),this.seen.add(t),this.fire(`view`,t,{passed:!0}))})}catch{}}fire(e,t,n,r){if(this.cfg.enabled)try{if(!t||N(t,this.cfg.redaction))return;let i=h(t,{maxDepth:this.cfg.maxDepth}),a=e===`input`||e===`change`?R(t,this.cfg.redaction):void 0,o=_(t),s=n||Object.keys(o).length?{...o,...n}:void 0,c={kind:e,name:U[e],at:Date.now(),semantic:i,value:a,props:s};r&&(c.page=r),this.stream.emit(c),this.cfg.sink(c)}catch{}}};function oe(e){let t=e.semantic.target,n={$el:e.semantic.label,$role:t.role};return t.testid&&(n.$testid=t.testid),t.name&&(n.$name=t.name),t.component&&(n.$component=t.component),t.kind&&(n.$kind=t.kind),n.$path=e.semantic.path.map(e=>e.component||(e.testid?`${e.role}[${e.testid}]`:e.role)),e.value&&(n.$value=e.value),e.props&&Object.assign(n,e.props),n}function se(e,t){let n=new ae({sink:e,...t});return n.start(),n}export{se as observe,oe as wireProps};
|
|
2
|
+
//# sourceMappingURL=dist-Cy8E8G3S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-Cy8E8G3S.js","names":[],"sources":["../../node_modules/.pnpm/@hanzo+observe@0.1.17_react@19.2.8/node_modules/@hanzo/observe/dist/index.mjs"],"sourcesContent":["// src/annotate.ts\nvar CONTEXT = \"https://schema.hanzo.ai/observe\";\nvar MAX_NAME = 80;\nvar TAG_ROLE = {\n nav: \"navigation\",\n main: \"main\",\n header: \"banner\",\n footer: \"contentinfo\",\n aside: \"complementary\",\n form: \"form\",\n button: \"button\",\n select: \"combobox\",\n textarea: \"textbox\",\n img: \"img\",\n ul: \"list\",\n ol: \"list\",\n li: \"listitem\",\n table: \"table\",\n dialog: \"dialog\",\n article: \"article\",\n section: \"region\",\n summary: \"button\"\n};\nvar INPUT_ROLE = {\n checkbox: \"checkbox\",\n radio: \"radio\",\n range: \"slider\",\n number: \"spinbutton\",\n submit: \"button\",\n button: \"button\",\n reset: \"button\",\n search: \"searchbox\"\n};\nfunction attr(el, name) {\n const v = el.getAttribute(name);\n return v == null || v === \"\" ? void 0 : v;\n}\nfunction tagOf(el) {\n return el.tagName.toLowerCase();\n}\nfunction roleOf(el) {\n const explicit = attr(el, \"role\");\n if (explicit) return explicit;\n const tag = tagOf(el);\n if (tag === \"a\") return attr(el, \"href\") != null ? \"link\" : \"generic\";\n if (tag === \"input\") return INPUT_ROLE[(attr(el, \"type\") || \"text\").toLowerCase()] ?? \"textbox\";\n if (/^h[1-6]$/.test(tag)) return \"heading\";\n return TAG_ROLE[tag] ?? \"generic\";\n}\nfunction clip(s) {\n if (!s) return void 0;\n const t = s.replace(/\\s+/g, \" \").trim();\n if (!t) return void 0;\n return t.length > MAX_NAME ? t.slice(0, MAX_NAME) + \"\\u2026\" : t;\n}\nfunction accessibleName(el) {\n const label = attr(el, \"aria-label\");\n if (label) return clip(label);\n const labelledby = attr(el, \"aria-labelledby\");\n if (labelledby && typeof document !== \"undefined\") {\n const text = labelledby.split(/\\s+/).map((id) => document.getElementById(id)?.textContent || \"\").join(\" \");\n const c = clip(text);\n if (c) return c;\n }\n const tag = tagOf(el);\n if (tag === \"img\") return clip(attr(el, \"alt\"));\n if (tag === \"input\" || tag === \"textarea\" || tag === \"select\") {\n if (el.id && typeof document !== \"undefined\") {\n const forLabel = document.querySelector(`label[for=\"${cssEscape(el.id)}\"]`);\n const c = clip(forLabel?.textContent);\n if (c) return c;\n }\n return clip(attr(el, \"placeholder\") || attr(el, \"name\") || attr(el, \"title\"));\n }\n const title = attr(el, \"title\");\n if (title) return clip(title);\n const role = roleOf(el);\n if (role === \"button\" || role === \"link\" || role === \"heading\" || role === \"listitem\") {\n return clip(el.textContent);\n }\n return void 0;\n}\nfunction cssEscape(s) {\n const g = typeof globalThis !== \"undefined\" ? globalThis : void 0;\n if (g?.CSS?.escape) return g.CSS.escape(s);\n return s.replace(/[\"\\\\\\]]/g, \"\\\\$&\");\n}\nfunction componentName(el) {\n const marked = attr(el, \"data-hz-name\") || attr(el, \"data-component\");\n if (marked) return clip(marked);\n const stamped = attr(el, \"data-observe\");\n if (stamped && stamped !== \"off\") return clip(stamped);\n const slot = attr(el, \"data-slot\");\n if (slot) return clip(slot);\n return reactOwner(el);\n}\nfunction reactOwner(el) {\n try {\n const holder = el;\n const key = Object.keys(holder).find(\n (k) => k.startsWith(\"__reactFiber$\") || k.startsWith(\"__reactInternalInstance$\")\n );\n if (!key) return void 0;\n let owner = holder[key]?._debugOwner;\n let hops = 0;\n while (owner && hops < 20) {\n const t = owner.type;\n const n = t?.displayName || t?.name;\n if (n && /^[A-Z]/.test(n)) return n;\n owner = owner._debugOwner;\n hops++;\n }\n } catch {\n }\n return void 0;\n}\nfunction describe(el) {\n const tag = tagOf(el);\n const role = roleOf(el);\n const node = { tag, role };\n const testid = attr(el, \"data-testid\") || attr(el, \"data-test-id\") || attr(el, \"data-test\");\n if (testid) node.testid = testid;\n if (el.id) node.id = el.id;\n const name = accessibleName(el);\n if (name) node.name = name;\n const kind = subKind(el, tag, role);\n if (kind) node.kind = kind;\n const component = componentName(el);\n if (component) node.component = component;\n return node;\n}\nfunction subKind(el, tag, role) {\n if (tag === \"input\") return (attr(el, \"type\") || \"text\").toLowerCase();\n if (tag === \"button\") return attr(el, \"type\") || void 0;\n if (tag === \"a\") {\n const href = attr(el, \"href\");\n if (!href) return void 0;\n try {\n return new URL(href, typeof location !== \"undefined\" ? location.href : \"https://x\").pathname;\n } catch {\n return href;\n }\n }\n if (role === \"heading\") return el.tagName.toLowerCase();\n return void 0;\n}\nfunction significant(n) {\n return Boolean(n.component || n.testid || n.role && n.role !== \"generic\" || n.name);\n}\nfunction labelOf(n) {\n const base = n.component ?? (n.role && n.role !== \"generic\" ? n.role : n.tag);\n if (n.testid) return `${base}[${n.testid}]`;\n if (n.name) return `${base}[${n.name}]`;\n return base;\n}\nfunction labelFor(path) {\n const trail = path.filter(significant);\n const base = trail.length ? trail : path.length ? [path[path.length - 1]] : [];\n return base.map(labelOf).join(\"/\");\n}\nfunction annotate(el, opts = {}) {\n const maxDepth = opts.maxDepth ?? 12;\n const path = [];\n let cur = el;\n let depth = 0;\n const docEl = typeof document !== \"undefined\" ? document.documentElement : null;\n while (cur && cur.nodeType === 1 && cur !== docEl && depth < maxDepth) {\n path.unshift(describe(cur));\n cur = cur.parentElement;\n depth++;\n }\n const target = path.length ? path[path.length - 1] : describe(el);\n const label = labelFor(path.length ? path : [target]);\n return { \"@context\": CONTEXT, \"@type\": \"Interaction\", path, target, label };\n}\nvar MAX_REF = 256;\nfunction attribution(el) {\n const out = {};\n const put = (k, v) => {\n if (v && v.length <= MAX_REF) out[k] = v;\n };\n try {\n put(\"$href\", hrefOf(el));\n put(\"$id\", el.id || void 0);\n put(\"$section\", sectionOf(el));\n } catch {\n }\n return out;\n}\nfunction hrefOf(el) {\n const a = el.closest(\"a[href]\");\n const raw = a?.getAttribute(\"href\");\n if (!raw || typeof location === \"undefined\") return void 0;\n const u = new URL(raw, location.href);\n if (u.protocol !== \"http:\" && u.protocol !== \"https:\") return u.protocol;\n return u.origin === location.origin ? u.pathname : u.origin + u.pathname;\n}\nvar SECTION = \"section[id],[data-hz-view]\";\nfunction sectionOf(el) {\n for (let n = el.closest(SECTION); n; n = n.parentElement?.closest(SECTION) ?? null) {\n const v = attr(n, \"data-hz-view\") || n.id;\n if (v) return v;\n }\n return void 0;\n}\n\n// src/vitals.ts\nfunction vitals() {\n const out = {};\n const observers = [];\n let windowValue = 0;\n let windowStart = 0;\n let windowLast = 0;\n const watch = (type, take, extra) => {\n try {\n if (typeof PerformanceObserver === \"undefined\") return;\n if (!PerformanceObserver.supportedEntryTypes?.includes(type)) return;\n const po = new PerformanceObserver((l) => {\n try {\n take(l.getEntries());\n } catch {\n }\n });\n po.observe({ type, buffered: true, ...extra });\n observers.push(po);\n } catch {\n }\n };\n try {\n const nav = performance.getEntriesByType?.(\"navigation\")?.[0];\n if (nav && nav.responseStart > 0) out.$ttfb_ms = Math.round(nav.responseStart);\n } catch {\n }\n watch(\"paint\", (entries) => {\n for (const e of entries) if (e.name === \"first-contentful-paint\" && e.startTime > 0) out.$fcp_ms = Math.round(e.startTime);\n });\n watch(\"largest-contentful-paint\", (entries) => {\n const e = entries[entries.length - 1];\n if (e && e.startTime > 0) out.$lcp_ms = Math.round(e.startTime);\n });\n watch(\"layout-shift\", (entries) => {\n for (const e of entries) {\n if (e.hadRecentInput) continue;\n if (windowValue && (e.startTime - windowLast > 1e3 || e.startTime - windowStart > 5e3)) windowValue = 0;\n if (!windowValue) windowStart = e.startTime;\n windowValue += e.value;\n windowLast = e.startTime;\n if (windowValue > (out.$cls ?? 0)) out.$cls = Math.round(windowValue * 1e3) / 1e3;\n }\n });\n watch(\n \"event\",\n (entries) => {\n for (const e of entries) {\n if (!e.interactionId) continue;\n if (e.duration > (out.$inp_ms ?? 0)) out.$inp_ms = Math.round(e.duration);\n }\n },\n { durationThreshold: 40 }\n );\n return {\n read: () => ({ ...out }),\n stop() {\n for (const o of observers) o.disconnect();\n observers.length = 0;\n }\n };\n}\n\n// src/engage.ts\nvar IDLE_MS = 6e4;\nfunction inView(e) {\n if (e.intersectionRatio >= 0.5) return true;\n const viewport = e.rootBounds?.height ?? window.innerHeight;\n return viewport > 0 && e.intersectionRect.height >= viewport / 2;\n}\nvar VIEW_STEPS = [0, 1 / 64, 1 / 32, 1 / 16, 1 / 8, 1 / 4, 1 / 2, 1];\nfunction pageKey() {\n return location.pathname + location.search;\n}\nvar ACTIVITY = [\"pointerdown\", \"pointermove\", \"keydown\", \"wheel\", \"touchstart\"];\nfunction viewId() {\n const r = Math.random().toString(36).slice(2, 10);\n return Date.now().toString(36) + r;\n}\nvar Engagement = class {\n constructor(emit, nameOf) {\n this.emit = emit;\n this.nameOf = nameOf;\n this.key = \"\";\n this.page = { url: \"\", path: \"\" };\n this.id = \"\";\n this.seq = 0;\n this.began = 0;\n /** The clock: the last moment counted up to, and the last moment of input. */\n this.last = 0;\n this.input = 0;\n /** Visible and focused, as of `last`. */\n this.on = false;\n this.active = 0;\n this.sections = /* @__PURE__ */ new Map();\n this.scrollMax = 0;\n this.sentScroll = -1;\n this.shown = /* @__PURE__ */ new Map();\n this.running = false;\n /** Count up to now, then take the new state. */\n this.settle = () => {\n this.tick(Date.now());\n this.on = this.live();\n };\n this.onFocus = () => this.settle();\n this.onVisibility = () => {\n this.settle();\n if (document.visibilityState === \"hidden\") this.leave(\"hidden\");\n else this.input = Date.now();\n };\n /** Unloading: report, then stop the clock, so the `visibilitychange` a browser\n * fires beside `pagehide` finds nothing new and sends nothing. A page restored\n * from the back-forward cache is visible again and counts from there. */\n this.onPageHide = () => {\n this.leave(\"pagehide\");\n this.on = false;\n };\n this.onInput = () => {\n const t = Date.now();\n if (t - this.input > IDLE_MS) this.tick(t);\n this.input = t;\n };\n this.onScroll = () => {\n this.onInput();\n const y = window.scrollY;\n if (y > this.scrollMax) this.scrollMax = Math.round(y);\n };\n this.onSections = (entries) => {\n try {\n this.tick(Date.now());\n for (const e of entries) {\n const name = this.nameOf(e.target);\n if (!name) continue;\n if (e.isIntersecting && inView(e)) this.shown.set(e.target, name);\n else this.shown.delete(e.target);\n }\n } catch {\n }\n };\n }\n /** Begin the first view: the page as loaded. Its clock starts at navigation,\n * so the time before the engine started counts. */\n start() {\n if (this.running) return;\n this.running = true;\n const origin = typeof performance !== \"undefined\" && performance.timeOrigin ? performance.timeOrigin : 0;\n this.begin(origin > 0 && origin <= Date.now() ? Math.floor(origin) : Date.now());\n this.perf = vitals();\n document.addEventListener(\"visibilitychange\", this.onVisibility);\n window.addEventListener(\"focus\", this.onFocus);\n window.addEventListener(\"blur\", this.onFocus);\n window.addEventListener(\"pagehide\", this.onPageHide);\n window.addEventListener(\"scroll\", this.onScroll, { passive: true });\n for (const t of ACTIVITY) window.addEventListener(t, this.onInput, { capture: true, passive: true });\n }\n /** Report what is left and let go of everything. */\n stop() {\n if (!this.running) return;\n this.leave(\"stop\");\n this.running = false;\n document.removeEventListener(\"visibilitychange\", this.onVisibility);\n window.removeEventListener(\"focus\", this.onFocus);\n window.removeEventListener(\"blur\", this.onFocus);\n window.removeEventListener(\"pagehide\", this.onPageHide);\n window.removeEventListener(\"scroll\", this.onScroll);\n for (const t of ACTIVITY) window.removeEventListener(t, this.onInput, { capture: true });\n this.io?.disconnect();\n this.io = void 0;\n this.shown.clear();\n this.perf?.stop();\n this.perf = void 0;\n }\n /** Time a section. The observer is made for the first one, so a page with no\n * sections holds none. */\n watch(el) {\n if (!this.running) return;\n try {\n if (!this.io && typeof IntersectionObserver !== \"undefined\") {\n this.io = new IntersectionObserver(this.onSections, { threshold: VIEW_STEPS });\n }\n this.io?.observe(el);\n } catch {\n }\n }\n /** Stop timing a section that left the tree. */\n forget(el) {\n try {\n this.io?.unobserve(el);\n if (this.shown.has(el)) {\n this.tick(Date.now());\n this.shown.delete(el);\n }\n } catch {\n }\n }\n /** The address may have changed: a new address is a new view, and the one left\n * reports first. */\n route() {\n if (!this.running) return;\n try {\n if (pageKey() === this.key) return;\n this.leave(\"nav\");\n this.perf?.stop();\n this.perf = void 0;\n this.begin(Date.now());\n } catch {\n }\n }\n begin(t) {\n this.key = pageKey();\n this.page = { url: location.href, path: location.pathname };\n this.id = viewId();\n this.seq = 0;\n this.began = t;\n this.last = t;\n this.input = t;\n this.on = this.live();\n this.active = 0;\n this.sections.clear();\n this.scrollMax = Math.max(0, Math.round(window.scrollY || 0));\n this.sentScroll = -1;\n }\n live() {\n const visible = document.visibilityState !== \"hidden\";\n const focused = typeof document.hasFocus === \"function\" ? document.hasFocus() : true;\n return visible && focused;\n }\n /** Count from `last` to `t`: active time, and each section in view meanwhile. */\n tick(t) {\n const from = this.last;\n this.last = Math.max(from, t);\n if (!this.on) return;\n const until = Math.min(t, this.input + IDLE_MS);\n const dt = until - from;\n if (dt <= 0) return;\n this.active += dt;\n for (const name of new Set(this.shown.values())) this.sections.set(name, (this.sections.get(name) ?? 0) + dt);\n }\n /** Report the segment since the last one. A view reports at least once; after\n * that, a segment that added nothing is not sent. */\n leave(reason) {\n try {\n const t = Date.now();\n this.tick(t);\n const fresh = this.active > 0 || this.sections.size > 0 || this.scrollMax !== this.sentScroll;\n if (this.seq > 0 && !fresh) return;\n const d = document.documentElement;\n const height = d.scrollHeight;\n const vh = window.innerHeight;\n const props = {\n $view_id: this.id,\n $seq: this.seq,\n $reason: reason,\n $active_ms: Math.round(this.active),\n $elapsed_ms: Math.max(0, t - this.began),\n $scroll_max: this.scrollMax,\n $depth_max: height > 0 ? Math.min(100, Math.round((this.scrollMax + vh) / height * 100)) : 0,\n $page_width: d.scrollWidth,\n $page_height: height,\n $viewport_width: window.innerWidth,\n $viewport_height: vh\n };\n if (this.sections.size > 0) {\n const s = {};\n for (const [name, ms] of this.sections) s[name] = Math.round(ms);\n props.$sections = s;\n }\n if (this.perf) Object.assign(props, this.perf.read());\n this.seq++;\n this.active = 0;\n this.sections.clear();\n this.sentScroll = this.scrollMax;\n this.emit({ page: { ...this.page }, props });\n } catch {\n }\n }\n};\n\n// src/redact.ts\nvar MAX_VALUE = 64;\nvar SENSITIVE_TYPE = /* @__PURE__ */ new Set([\"password\", \"hidden\", \"email\", \"tel\"]);\nvar SENSITIVE_RE = /pass|pwd|secret|token|otp|cvv|cvc|csc|cc-|card|ccnum|credit|ssn|social|routing|account|pin|auth|api[-_ ]?key|security|dob|birth/i;\nvar PRIVATE_DEFAULT = \"data-hz-private\";\nfunction attr2(el, name) {\n return el.getAttribute(name);\n}\nfunction isPrivate(el, policy = {}) {\n const flag = policy.privateAttribute ?? PRIVATE_DEFAULT;\n let cur = el;\n while (cur && cur.nodeType === 1) {\n if (cur.hasAttribute(flag)) return true;\n if (cur.getAttribute(\"data-observe\") === \"off\") return true;\n if (cur.hasAttribute(\"data-private\")) return true;\n cur = cur.parentElement;\n }\n return false;\n}\nfunction fieldKey(el) {\n return [\n attr2(el, \"name\"),\n el.id || null,\n attr2(el, \"autocomplete\"),\n attr2(el, \"placeholder\"),\n attr2(el, \"aria-label\")\n ].filter(Boolean).join(\" \");\n}\nfunction sensitiveKey(text, policy = {}) {\n if (SENSITIVE_RE.test(text)) return true;\n if (policy.sensitive && policy.sensitive.test(text)) return true;\n return false;\n}\nfunction isSensitive(el, type, policy) {\n if (SENSITIVE_TYPE.has(type)) return true;\n return sensitiveKey(fieldKey(el), policy);\n}\nfunction clip2(s) {\n return s.length > MAX_VALUE ? s.slice(0, MAX_VALUE) + \"\\u2026\" : s;\n}\nfunction redactValue(el, policy = {}) {\n const tag = el.tagName.toLowerCase();\n if (tag !== \"input\" && tag !== \"textarea\" && tag !== \"select\") return void 0;\n if (tag === \"select\") {\n const s = el;\n const opt = s.options[s.selectedIndex];\n return { redacted: false, kind: \"select\", value: opt ? clip2((opt.text || \"\").trim()) : void 0 };\n }\n const type = (tag === \"textarea\" ? \"textarea\" : attr2(el, \"type\") || \"text\").toLowerCase();\n if (type === \"checkbox\" || type === \"radio\") {\n return { redacted: false, kind: type, checked: el.checked };\n }\n const raw = el.value ?? \"\";\n const sensitive = isSensitive(el, type, policy);\n const mask = policy.maskInput !== false;\n if (sensitive) return { redacted: true, kind: type };\n if (mask) return { redacted: true, kind: type, length: raw.length };\n return { redacted: false, kind: type, value: clip2(raw) };\n}\n\n// src/stream.ts\nvar Stream = class {\n constructor(capacity = 500) {\n this.capacity = capacity;\n this.subs = /* @__PURE__ */ new Set();\n this.ring = [];\n }\n /** Push a value: append to the bounded buffer, then notify every subscriber. */\n emit(value) {\n this.ring.push(value);\n if (this.ring.length > this.capacity) this.ring.splice(0, this.ring.length - this.capacity);\n for (const fn of this.subs) {\n try {\n fn(value);\n } catch {\n }\n }\n }\n /** Subscribe to future values. Returns an unsubscribe function. */\n subscribe(fn) {\n this.subs.add(fn);\n return () => {\n this.subs.delete(fn);\n };\n }\n /** A snapshot of the retained history (oldest→newest). */\n buffer() {\n return this.ring.slice();\n }\n /** Drop retained history. */\n clear() {\n this.ring = [];\n }\n};\n\n// src/observer.ts\nvar isBrowser = () => typeof window !== \"undefined\" && typeof document !== \"undefined\";\nvar REGISTRY = /* @__PURE__ */ Symbol.for(\"hanzo.observe.roots\");\nfunction claimed() {\n const g = globalThis;\n const existing = g[REGISTRY];\n if (existing) return existing;\n const fresh = /* @__PURE__ */ new Set();\n g[REGISTRY] = fresh;\n return fresh;\n}\nvar NAME = {\n click: \"$click\",\n input: \"$input\",\n change: \"$change\",\n submit: \"$submit\",\n nav: \"$pageview\",\n view: \"$view\",\n scroll: \"$scroll\",\n rageclick: \"$rageclick\",\n leave: \"$pageleave\"\n};\nvar HISTORY_EVENT = \"hz:navigate\";\nvar histRefs = 0;\nvar histOriginals = null;\nfunction installHistory() {\n if (!isBrowser()) return;\n histRefs++;\n if (histOriginals) return;\n const push = history.pushState;\n const replace = history.replaceState;\n histOriginals = { push, replace };\n const fire = () => {\n try {\n window.dispatchEvent(new Event(HISTORY_EVENT));\n } catch {\n }\n };\n history.pushState = function(...args) {\n const r = push.apply(this, args);\n fire();\n return r;\n };\n history.replaceState = function(...args) {\n const r = replace.apply(this, args);\n fire();\n return r;\n };\n}\nfunction uninstallHistory() {\n if (histRefs > 0) histRefs--;\n if (histRefs === 0 && histOriginals) {\n history.pushState = histOriginals.push;\n history.replaceState = histOriginals.replace;\n histOriginals = null;\n }\n}\nfunction elementOf(target) {\n if (target && target.nodeType === 1) return target;\n if (target && target.nodeType === 3) return target.parentElement;\n return null;\n}\nvar FIXED_DEPTH = 12;\nfunction isFixed(el) {\n for (let n = el, d = 0; n && d < FIXED_DEPTH; n = n.parentElement, d++) {\n const p = getComputedStyle(n).position;\n if (p === \"fixed\" || p === \"sticky\") return true;\n }\n return false;\n}\nfunction pageSize() {\n const d = document.documentElement;\n return { $page_width: d.scrollWidth, $page_height: d.scrollHeight };\n}\nfunction positionOf(e, el) {\n const m = e;\n if (typeof m.clientX !== \"number\" || typeof m.clientY !== \"number\" || !m.detail) return void 0;\n try {\n const fixed = isFixed(el);\n const box = el?.getBoundingClientRect();\n return {\n $x: Math.round(m.clientX + (fixed ? 0 : window.scrollX)),\n $y: Math.round(m.clientY + (fixed ? 0 : window.scrollY)),\n ...box ? { $el_x: Math.round(m.clientX - box.left), $el_y: Math.round(m.clientY - box.top) } : {},\n $target_fixed: fixed,\n $viewport_width: window.innerWidth,\n $viewport_height: window.innerHeight,\n ...pageSize()\n };\n } catch {\n return void 0;\n }\n}\nvar DEPTHS = [25, 50, 75, 100];\nvar RAGE_CLICKS = 3;\nvar RAGE_MS = 1e3;\nvar RAGE_PX = 30;\nvar Observer = class {\n constructor(config) {\n this.started = false;\n /** In-flight input debounces, keyed BY FIELD. One shared slot coalesced across\n * elements: typing in a second field cleared the first field's pending timer,\n * so filling a form reported only the last field touched and every field\n * before it vanished. The debounce is per field because that is what it is\n * for — collapsing one field's keystrokes, not one form's fields. */\n this.pending = /* @__PURE__ */ new Map();\n this.seen = /* @__PURE__ */ new WeakSet();\n /** The page view the scroll milestones belong to, and the ones it reached. */\n this.page = \"\";\n this.reached = /* @__PURE__ */ new Set();\n this.frame = 0;\n /** The pointer presses of the burst under way, and whether it was reported. */\n this.presses = [];\n this.raged = false;\n /** Whether this engine took a reference on the history notifier. */\n this.history = false;\n // ── listeners (arrow fields so they unbind cleanly) ────────────────────────\n this.onClick = (e) => {\n const el = elementOf(e.target);\n const at = positionOf(e, el);\n this.fire(\"click\", el, at);\n if (at) this.rage(e, el, at);\n };\n /** Scroll is measured a frame later, once a frame: the handler only asks for the\n * frame, and the frame only READS (scroll offset, window, document height), so\n * nothing here forces a layout a write made dirty. A page view that has reached\n * every milestone asks for no frames at all. */\n this.onScroll = () => {\n if (this.frame) return;\n if (this.reached.size === DEPTHS.length && this.page === pageKey()) return;\n this.frame = requestAnimationFrame(this.measure);\n };\n this.measure = () => {\n this.frame = 0;\n try {\n const page = pageKey();\n if (page !== this.page) {\n this.page = page;\n this.reached.clear();\n }\n if (window.scrollY <= 0) return;\n const size = pageSize();\n if (!size.$page_height) return;\n const bottom = window.scrollY + window.innerHeight;\n const share = bottom >= size.$page_height - 1 ? 100 : bottom / size.$page_height * 100;\n for (const depth of DEPTHS) {\n if (share < depth || this.reached.has(depth)) continue;\n this.reached.add(depth);\n this.fire(\"scroll\", document.body, {\n depth,\n ...size,\n $viewport_width: window.innerWidth,\n $viewport_height: window.innerHeight\n });\n }\n } catch {\n }\n };\n this.onInput = (e) => {\n const el = elementOf(e.target);\n if (!el) return;\n const running = this.pending.get(el);\n if (running !== void 0) clearTimeout(running);\n this.pending.set(\n el,\n setTimeout(() => {\n this.pending.delete(el);\n this.fire(\"input\", el);\n }, this.cfg.inputDebounceMs)\n );\n };\n this.onChange = (e) => {\n const el = elementOf(e.target);\n if (el) {\n const running = this.pending.get(el);\n if (running !== void 0) {\n clearTimeout(running);\n this.pending.delete(el);\n }\n }\n this.fire(\"change\", el);\n };\n this.onSubmit = (e) => this.fire(\"submit\", elementOf(e.target));\n /** The address moved: the view left reports, then the new one is counted. */\n this.onHistory = () => {\n this.engage?.route();\n if (this.cfg.nav) this.onNav();\n };\n this.onNav = () => {\n if (!isBrowser()) return;\n this.fire(\"nav\", document.body, { path: pageKey() });\n };\n this.cfg = {\n ...config,\n enabled: config.enabled ?? true,\n nav: config.nav ?? true,\n viewSelector: config.viewSelector ?? \"[data-hz-view]\",\n inputDebounceMs: config.inputDebounceMs ?? 400,\n engage: config.engage ?? true,\n maxDepth: config.maxDepth ?? 12\n };\n this.root = config.root ?? (isBrowser() ? document : {});\n this.stream = new Stream(config.bufferSize ?? 500);\n }\n /** Whether this engine holds its root and is capturing. False for a second\n * engine on an already-claimed root — see the registry above. */\n get capturing() {\n return this.started;\n }\n /** Install listeners. Idempotent, browser-only, and refused when another\n * engine already holds this root. */\n start() {\n if (this.started || !this.cfg.enabled || !isBrowser()) return;\n const roots = claimed();\n if (roots.has(this.root)) return;\n roots.add(this.root);\n this.started = true;\n const r = this.root;\n if (this.cfg.engage && this.root === document) {\n this.engage = new Engagement(\n (l) => this.fire(\"leave\", document.body, l.props, l.page),\n (el) => el.getAttribute(\"data-hz-view\") || el.id || void 0\n );\n this.engage.start();\n }\n r.addEventListener(\"click\", this.onClick, { capture: true, passive: true });\n r.addEventListener(\"input\", this.onInput, { capture: true, passive: true });\n r.addEventListener(\"change\", this.onChange, { capture: true, passive: true });\n r.addEventListener(\"submit\", this.onSubmit, { capture: true, passive: true });\n if (this.cfg.nav || this.engage) {\n this.history = true;\n installHistory();\n window.addEventListener(\"popstate\", this.onHistory);\n window.addEventListener(HISTORY_EVENT, this.onHistory);\n }\n if (this.root === document && typeof requestAnimationFrame === \"function\") {\n this.page = pageKey();\n window.addEventListener(\"scroll\", this.onScroll, { passive: true });\n }\n this.installView();\n }\n /** Remove listeners, release the root, and free resources. Idempotent. */\n stop() {\n if (!this.started) return;\n this.engage?.stop();\n this.engage = void 0;\n this.started = false;\n claimed().delete(this.root);\n const r = this.root;\n r.removeEventListener(\"click\", this.onClick, { capture: true });\n r.removeEventListener(\"input\", this.onInput, { capture: true });\n r.removeEventListener(\"change\", this.onChange, { capture: true });\n r.removeEventListener(\"submit\", this.onSubmit, { capture: true });\n if (this.history) {\n this.history = false;\n window.removeEventListener(\"popstate\", this.onHistory);\n window.removeEventListener(HISTORY_EVENT, this.onHistory);\n uninstallHistory();\n }\n window.removeEventListener(\"scroll\", this.onScroll);\n if (this.frame) cancelAnimationFrame(this.frame);\n this.frame = 0;\n this.reached.clear();\n this.presses = [];\n for (const t of this.pending.values()) clearTimeout(t);\n this.pending.clear();\n this.io?.disconnect();\n this.io = void 0;\n this.mo?.disconnect();\n this.mo = void 0;\n }\n /** Count a pointer press toward a rage click. Presses are kept while they are\n * inside RAGE_MS of now and RAGE_PX of this one, in the viewport (a burst the\n * page scrolled under is not one spot); the press that makes RAGE_CLICKS is\n * reported, and the burst is not reported again until it breaks. */\n rage(m, el, at) {\n const t = Date.now();\n const x = m.clientX;\n const y = m.clientY;\n this.presses = this.presses.filter((p) => t - p.t <= RAGE_MS && Math.hypot(p.x - x, p.y - y) <= RAGE_PX);\n this.presses.push({ t, x, y });\n if (this.presses.length === 1) this.raged = false;\n if (this.presses.length < RAGE_CLICKS || this.raged) return;\n this.raged = true;\n this.fire(\"rageclick\", el, at);\n }\n /** Watch an element for visibility ($view) — for nodes marked after start()\n * (e.g. by a framework binding). No-op when visibility capture is unavailable. */\n watch(el) {\n try {\n this.io?.observe(el);\n } catch {\n }\n this.engage?.watch(el);\n }\n installView() {\n if (typeof IntersectionObserver === \"undefined\") return;\n try {\n const io = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (!entry.isIntersecting || !inView(entry)) continue;\n const el = entry.target;\n io.unobserve(el);\n if (this.seen.has(el)) continue;\n this.seen.add(el);\n this.fire(\"view\", el, { ratio: Math.round(entry.intersectionRatio * 100) / 100 });\n }\n },\n { threshold: VIEW_STEPS }\n );\n this.io = io;\n const sel = this.cfg.viewSelector;\n if (!sel) return;\n const each = (el, act) => {\n if (el.matches(sel)) act(el);\n el.querySelectorAll(sel).forEach(act);\n };\n const watch = (n) => {\n io.observe(n);\n this.engage?.watch(n);\n };\n const forget = (n) => {\n io.unobserve(n);\n this.engage?.forget(n);\n };\n const root = this.root;\n root.querySelectorAll?.(sel).forEach(watch);\n this.passed(io, sel);\n if (typeof MutationObserver === \"undefined\") return;\n this.mo = new MutationObserver((records) => {\n try {\n for (const r of records) {\n r.addedNodes.forEach((n) => n.nodeType === 1 && each(n, watch));\n r.removedNodes.forEach((n) => n.nodeType === 1 && each(n, forget));\n }\n } catch {\n }\n });\n this.mo.observe(root, { childList: true, subtree: true });\n } catch {\n }\n }\n /** The sections a reader scrolled past before the engine started.\n *\n * The engine starts after hydration and after its own chunk loads, so a reader\n * who scrolls at once (a fast phone flick, a slow phone) can carry the first\n * sections through the viewport and out of it before anything watches them; an\n * observer installed then only ever sees them above the viewport, and they\n * would never count. A page that opened at its top, freshly navigated with no\n * fragment, has had every section that now sits wholly above the viewport pass\n * through it, which is all `$view` claims. Each is reported once, marked\n * `passed: true` because its moment was inferred from where it is rather than\n * measured, with no `ratio`. A section with no box is not inferred. A reload or a back/forward restores the scroll\n * position, so nothing above it is inferred there; and only the document\n * engine, at install, infers anything. */\n passed(io, sel) {\n try {\n if (this.root !== document || location.hash) return;\n const nav = performance.getEntriesByType?.(\"navigation\")?.[0];\n if (nav && nav.type !== \"navigate\") return;\n document.querySelectorAll(sel).forEach((el) => {\n const box = el.getBoundingClientRect();\n if (this.seen.has(el) || box.height <= 0 || box.bottom > 0) return;\n io.unobserve(el);\n this.seen.add(el);\n this.fire(\"view\", el, { passed: true });\n });\n } catch {\n }\n }\n /** Build and dispatch an Interaction. The single choke point; fully guarded. */\n fire(kind, el, props, page) {\n if (!this.cfg.enabled) return;\n try {\n if (!el || isPrivate(el, this.cfg.redaction)) return;\n const semantic = annotate(el, { maxDepth: this.cfg.maxDepth });\n const value = kind === \"input\" || kind === \"change\" ? redactValue(el, this.cfg.redaction) : void 0;\n const where = attribution(el);\n const all = props || Object.keys(where).length ? { ...where, ...props } : void 0;\n const interaction = { kind, name: NAME[kind], at: Date.now(), semantic, value, props: all };\n if (page) interaction.page = page;\n this.stream.emit(interaction);\n this.cfg.sink(interaction);\n } catch {\n }\n }\n};\n\n// src/wire.ts\nfunction wireProps(i) {\n const t = i.semantic.target;\n const props = { $el: i.semantic.label, $role: t.role };\n if (t.testid) props.$testid = t.testid;\n if (t.name) props.$name = t.name;\n if (t.component) props.$component = t.component;\n if (t.kind) props.$kind = t.kind;\n props.$path = i.semantic.path.map((n) => n.component || (n.testid ? `${n.role}[${n.testid}]` : n.role));\n if (i.value) props.$value = i.value;\n if (i.props) Object.assign(props, i.props);\n return props;\n}\nfunction deliver(client, i) {\n if (i.kind === \"nav\") {\n client.pageview(typeof i.props?.path === \"string\" ? i.props.path : void 0);\n return;\n }\n client.capture(i.name, wireProps(i), i.page);\n if (i.kind === \"leave\" && (i.props?.$reason === \"hidden\" || i.props?.$reason === \"pagehide\")) client.flush(true);\n}\n\n// src/index.ts\nfunction observe(sink, config) {\n const engine = new Observer({ sink, ...config });\n engine.start();\n return engine;\n}\n\nexport { Engagement, IDLE_MS, Observer, Stream, accessibleName, annotate, componentName, deliver, describe, isPrivate, labelFor, observe, redactValue, roleOf, sensitiveKey, wireProps };\n//# sourceMappingURL=index.mjs.map\n//# sourceMappingURL=index.mjs.map"],"x_google_ignoreList":[0],"mappings":"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"}
|