@nadicodeai/ui 12.1.132 → 12.1.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/components/agent-orb.d.ts +8 -5
  2. package/dist/components/agent-orb.d.ts.map +1 -1
  3. package/dist/components/agent-orb.js +8 -5
  4. package/dist/components/avatar.d.ts +3 -3
  5. package/dist/components/avatar.js +3 -3
  6. package/dist/components/form-dialog.d.ts +8 -4
  7. package/dist/components/form-dialog.d.ts.map +1 -1
  8. package/dist/components/form-dialog.js +5 -5
  9. package/dist/components/identity-mark.d.ts +2 -4
  10. package/dist/components/identity-mark.d.ts.map +1 -1
  11. package/dist/components/identity-mark.js +10 -27
  12. package/dist/components/object-page.d.ts +4 -7
  13. package/dist/components/object-page.d.ts.map +1 -1
  14. package/dist/components/object-page.js +2 -2
  15. package/dist/internal/agent-orb-motion.d.ts +36 -5
  16. package/dist/internal/agent-orb-motion.d.ts.map +1 -1
  17. package/dist/internal/agent-orb-motion.js +153 -37
  18. package/dist/internal/agent-orb.d.ts.map +1 -1
  19. package/dist/internal/agent-orb.js +38 -20
  20. package/dist/internal/company-mark.d.ts +13 -0
  21. package/dist/internal/company-mark.d.ts.map +1 -0
  22. package/dist/internal/company-mark.js +8 -0
  23. package/dist/internal/form-submit.d.ts +2 -1
  24. package/dist/internal/form-submit.d.ts.map +1 -1
  25. package/dist/internal/form-submit.js +2 -2
  26. package/dist/showcase/specimens/other.js +1 -1
  27. package/dist/showcase/specimens/status.d.ts +2 -1
  28. package/dist/showcase/specimens/status.d.ts.map +1 -1
  29. package/dist/showcase/specimens/status.js +17 -3
  30. package/dist/showcase/usage.generated.js +8 -8
  31. package/dist/standalone/index.js +1 -1
  32. package/package.json +2 -2
  33. package/dist/internal/company-logo.d.ts +0 -17
  34. package/dist/internal/company-logo.d.ts.map +0 -1
  35. package/dist/internal/company-logo.js +0 -13
@@ -108,9 +108,9 @@ export const USAGE = [
108
108
  family: "Compositions",
109
109
  summary: "A new record, or one or two values from a command, in a modal dialog.",
110
110
  when: '"Use Modal when a decision must block the rest of the page. For persistent associated context where the underlying page stays readable, use `Sheet` on desktop or `Drawer` on mobile." (https://vercel.com/geist/modal) Ours: a person adds a record through a few fields, or changes one or two values a command asks for: new customer, add a mailbox, add an MCP server.',
111
- instead: '"Skip Modal for routine create flows that have a dedicated page; route to the page instead." (https://vercel.com/geist/modal) "Confirm destructive actions in a Modal. `Drawer` and `Sheet` don’t fully dim the page, so they read as too soft for a delete or revoke." (https://vercel.com/geist/modal) Ours: a record already in a list edits in its row with `RowEditForm`; a choice from a catalogue is a `CatalogDrawer`; a setup in steps with a wait is a `FormDrawer` with `job="steps"`; a consequence is confirmed in a `ConfirmDialog`.',
112
- behaviour: '"Allow Escape and outside-click to dismiss non-destructive Modals; gate dismissal on destructive ones with unsaved input." (https://vercel.com/geist/modal) Ours: centred over a scrim without blur, 540 px wide, a bottom sheet on a phone: the title and its help, the fields in a 12 px column, then the footer, which stays at the bottom while a tall form scrolls, with Cancel at the leading edge and the primary at the trailing edge, in one row also on a phone. `FormDialogForm` puts the fields in the dialog\'s own scroll body and the actions in its fixed footer; no other overlay is nested inside. A refusal or a failed save sits above the footer and the fields keep what was typed. While its save runs it holds open, Cancel and the primary hold, and the waiting line runs under them. With `unsaved.dirty`, Escape and a press outside are held back and `unsaved.onDismissBlocked` runs so the caller can ask; Close and Cancel always close. How long it stays open while work goes on follows DESIGN.md "System activity".',
113
- words: '"`Modal.Title` is a Title Case statement, never a question. `Transfer Project` is correct; `Transfer Project?` is wrong." (https://vercel.com/geist/modal) "Primary button is `Verb + Noun` and matches the title verb (`Transfer Project` title pairs with `Transfer Project` button). Never `Confirm`, `OK`, or a bare verb on a destructive primary." (https://vercel.com/geist/modal) "Cancel literal stays `Cancel`. Acknowledgment-only Modals (after a key reveal, after a one-time-show) use `Done`, never `OK` or `Close`." (https://vercel.com/geist/modal) Ours: the title and the primary are sentence case, where Geist writes Title Case: the title names the job and its object, "New customer", "Add a mailbox"; the primary repeats it, "Create customer", "Add mailbox".',
111
+ instead: '"Skip Modal for routine create flows that have a dedicated page; route to the page instead." (https://vercel.com/geist/modal) "Confirm destructive actions in a Modal. `Drawer` and `Sheet` don’t fully dim the page, so they read as too soft for a delete or revoke." (https://vercel.com/geist/modal) Ours: a record already in a list edits in its row with `RowEditForm`; a choice from a catalogue is a `CatalogDrawer`; a setup in steps with a wait is a `FormDrawer` with `job="steps"`; a consequence that asks nothing is confirmed in a `ConfirmDialog`.',
112
+ behaviour: '"Allow Escape and outside-click to dismiss non-destructive Modals; gate dismissal on destructive ones with unsaved input." (https://vercel.com/geist/modal) Ours: centred over a scrim without blur, 540 px wide, a bottom sheet on a phone: the title and its help, the fields in a 12 px column, then the footer, which stays at the bottom while a tall form scrolls, with Cancel at the leading edge and the primary at the trailing edge, in one row also on a phone. `FormDialogForm` puts the fields in the dialog\'s own scroll body and the actions in its fixed footer; no other overlay is nested inside. A refusal or a failed save sits above the footer and the fields keep what was typed. While its save runs it holds open, Cancel and the primary hold, and the waiting line runs under them. With `unsaved.dirty`, Escape and a press outside are held back and `unsaved.onDismissBlocked` runs so the caller can ask; Close and Cancel always close. A form whose primary takes something away, such as declining a company with a note for the record, sets `destructive` on `FormDialogForm`: the primary turns red, as `ConfirmDialog`\'s destructive confirm does, and nothing else changes. How long it stays open while work goes on follows DESIGN.md "System activity".',
113
+ words: '"`Modal.Title` is a Title Case statement, never a question. `Transfer Project` is correct; `Transfer Project?` is wrong." (https://vercel.com/geist/modal) "Primary button is `Verb + Noun` and matches the title verb (`Transfer Project` title pairs with `Transfer Project` button). Never `Confirm`, `OK`, or a bare verb on a destructive primary." (https://vercel.com/geist/modal) "Cancel literal stays `Cancel`. Acknowledgment-only Modals (after a key reveal, after a one-time-show) use `Done`, never `OK` or `Close`." (https://vercel.com/geist/modal) Ours: the title and the primary are sentence case, where Geist writes Title Case: the title names the job and its object, "New customer", "Add a mailbox"; the primary repeats it, "Create customer", "Add mailbox"; a destructive primary names what it takes away, "Decline company", never a bare "Decline".',
114
114
  access: '"Set `aria-labelledby` to the `Modal.Title` id so screen readers announce the title on open." (https://vercel.com/geist/modal) "Trap focus inside the Modal while it’s open and return focus to the trigger after close. Restore body scroll on the same tick the Modal unmounts." (https://vercel.com/geist/modal) "After an error inside the Modal, keep focus inside so the user can retry; after success, return focus to the trigger." (https://vercel.com/geist/modal) Ours: a modal dialog with a Close named by `closeLabel`; focus starts in its first field or `initialFocus` and returns to the opener or `finalFocus`. Escape and Close close it unless the save runs.',
115
115
  },
116
116
  {
@@ -142,7 +142,7 @@ export const USAGE = [
142
142
  summary: "One object's page: the object card with its name, commands, facts, rows that open and one link elsewhere, then its sections as cards.",
143
143
  when: "One thing a person opened from a list and now reads or acts on: a customer, a partner, an Installation, a Library entry.",
144
144
  instead: '"Use Context Card to reveal entity metadata on hover or focus: a user, a deployment, a project, an API key." (https://vercel.com/geist/context-card) Ours: that hover is a `HoverCard`, never this page. A list of records is a CollectionPage; a page of settings only is a SettingsPage, whose cards are SettingsSections; an Agent opens on its AgentProfileCard, the documented exception. A card of values a person saves is a setting card, never this one.',
145
- behaviour: '"For a static key/value metadata block on a detail page, use `Description`." (https://vercel.com/geist/entity) "The right column holds at most one or two controls. If the row needs more, move secondary actions into a `Dots Menu`." (https://vercel.com/geist/entity) "Lead the left column with a scannable identifier: an `Avatar` or icon, a Title Case label, then sentence-case secondary metadata (`Member since Mar 14, 2026`)." (https://vercel.com/geist/entity) "Don’t put interactive controls in the title slot. Buttons, menus, and links belong in the content (`<dd>`) or in the parent layout, not the label (`<dt>`)." (https://vercel.com/geist/description) Ours: as Vercel\'s deployment page (Deployment Details, then its steps), the object card is the first card of the page: a header bar with the name at the start and the object\'s commands at the end (one secondary action, then the three dots, on the name\'s row while the name keeps 128 px, as on a phone, and under it otherwise), for a company, the compact mark at 64 stands beside the name and optional line in the header, followed by full-width facts with four columns from `lg` and two below; other object kinds keep their mark and line beside their facts in the existing preview treatment (at least one fact is required: an object is never shown without what it is), each a muted label over its value in body text, then an optional footer with a hint at the start and one link at the end. Optional `entries` follow in a card of their own 12 px under it: rows that open one by one, each with its chevron first (it turns down when open), its title, and its summary at the trailing edge, as Vercel\'s Build Logs and Deployment Checks rows. The footer takes a link only, so no Save or other command of the object fits in it; the object\'s changes live in its sections, each a setting card with its own footer. The sections follow, 24 apart, each drawing its own states. The card is neutral; colour belongs to the company\'s compact identity, a semantic fact value, or an entry\'s status summary, with no coloured card ground.',
145
+ behaviour: "\"For a static key/value metadata block on a detail page, use `Description`.\" (https://vercel.com/geist/entity) \"The right column holds at most one or two controls. If the row needs more, move secondary actions into a `Dots Menu`.\" (https://vercel.com/geist/entity) \"Lead the left column with a scannable identifier: an `Avatar` or icon, a Title Case label, then sentence-case secondary metadata (`Member since Mar 14, 2026`).\" (https://vercel.com/geist/entity) \"Don’t put interactive controls in the title slot. Buttons, menus, and links belong in the content (`<dd>`) or in the parent layout, not the label (`<dt>`).\" (https://vercel.com/geist/description) Ours: as Vercel's deployment page (Deployment Details, then its steps), the object card is the first card of the page: a header bar with the name at the start and the object's commands at the end (a secondary, then the primary as the filled button, then the three dots, in `PageActions`' order, on the name's row while the name keeps 128 px, as on a phone, and under it otherwise; the primary is the one thing the object waits on its viewer for, such as approving a company that waits for approval, beside its alternative as the secondary, and an object with nothing waiting has none), for a company, the compact mark at 64 stands beside the name and optional line in the header, followed by full-width facts with four columns from `lg` and two below; other object kinds keep their mark and line beside their facts in the existing preview treatment (at least one fact is required: an object is never shown without what it is), each a muted label over its value in body text, then an optional footer with a hint at the start and one link at the end. Optional `entries` follow in a card of their own 12 px under it: rows that open one by one, each with its chevron first (it turns down when open), its title, and its summary at the trailing edge, as Vercel's Build Logs and Deployment Checks rows. The footer takes a link only, so no Save or other command of the object fits in it; the object's changes live in its sections, each a setting card with its own footer. The sections follow, 24 apart, each drawing its own states. The card is neutral; colour belongs to the company's compact identity, a semantic fact value, or an entry's status summary, with no coloured card ground.",
146
146
  words: '"Keep right-column buttons Verb + Noun (`Remove Member`, `Resend Invite`). Bare verbs like `Remove` or `Confirm` lose context once the row scrolls offscreen." (https://vercel.com/geist/entity) "Title slot is Title Case noun (`Last Deployed`, `Build Duration`); content is sentence case unless the value is a literal identifier, ID, or timestamp that should be preserved verbatim." (https://vercel.com/geist/description) Ours: sentence case throughout. The name as the object is called everywhere else; the line says what it is and whose ("Customer of Partner Alpha · since 3 August 2026"); a fact\'s label is a noun ("Plan"), its value the figure; an entry\'s title is a noun phrase; the hint is one sentence ("To update it, push to the main branch."); the link names where it goes ("Deployments"); the menu\'s trigger reads "More for {name}".',
147
147
  access: '"Geist renders `<dl>`/`<dt>`/`<dd>` so screen readers announce each key/value pair as a definition." (https://vercel.com/geist/description) "Don’t wrap the component in extra paragraphs that break the list semantics." (https://vercel.com/geist/description) Ours: with `headingProps` the name is the page\'s h1; without them it is text, for a product whose chrome already titles the page. The mark is decorative beside the facts. Each entry is a button with `aria-expanded` that controls its panel.',
148
148
  },
@@ -626,7 +626,7 @@ export const USAGE = [
626
626
  summary: "An Agent, anywhere: her orb, the only thing that moves on its own.",
627
627
  when: 'An Agent, anywhere: 20 in the sidebar, 32 in a row, 64 on her Profile card, 96 in an Agent card, 160 on entry. There is no other Agent picture. The sizes are 20, 24, 32, 40, 64, 96 and 160 px, and no other. On a photograph the orb takes the stronger `presence="over-picture"` weight; everywhere else it is `plain`.',
628
628
  instead: 'A person is an `Avatar`. The system\'s own wait is the waiting line, never an orb. An orb in artwork, such as a sign-in picture, takes `motion="ambient"` and claims no activity. An orb that stands for an Agent shows her real state.',
629
- behaviour: "The only thing that moves on its own. Idle turns at its form's own pace and breathes; working and thinking move with their cue, the ribbon around working and three dots above thinking; waiting holds; blocked makes one interrupted effort and stops; done celebrates once and settles back into idle. A surface that only knows a machine checked in draws idle. No state draws a circle around the orb. Ambient motion moves the form at its own pace with no state pose or cue. Reduced motion: movement stops, a thinking or working orb breathes between full ink and 0.45 opacity so busy still reads as busy, and an ambient orb holds still. An orb is one of seven forms, `ribbon`, `lattice`, `orbit`, `globe`, `network`, `braid` and `morph`, in one colour a person chose: cobalto, verde or arancio, or none, which draws it in the text colour. Giallo is not offered because it fails 3:1 on white; rosso is not offered because it is the error red. nadicode's own two Agents are the only ones with a figure nobody chooses, the same at every size and in every state. Nadia is her striped ribbon, the form `nadia`: azzurro, verde, the text colour and rosso along its whole length. Sofia, the Agent that looks up a new company, is her sister, the form `sofia`: the same ribbon turned to face Nadia's, striped cobalto, giallo, the text colour and arancio, the identity hues Nadia does not wear. Neither figure is ever stored as an Agent's look. An Agent's form is stored as `orb:<form>` and its colour as the identity hex or nothing; a template declares its starting look the same way. The stored-appearance resolver reads it: the root Agent always draws as Nadia, an unknown form draws `orbit`, an unknown colour the text colour, and a stored rosso draws arancio. The retired `forma:*` shapes each draw one of the seven forms, so an Agent that chose one before the orbs keeps a distinct look. An Agent's look is a person's choice and is never derived from a name, id or role. A template that names no look is the one exception: `templateAgentOrb` gives it a form and colour fixed by its slug, so the templates in a gallery differ and the Portal and Nadia draw the same one; Nadia and Sofia keep their figures.",
629
+ behaviour: "The only thing that moves on its own. Idle particles turn at 86.4% of the form's native pace, with a separate 6.4 s breath. Working sweeps a ribbon every 3.2 s; thinking passes three pulses over 2.4 s. Waiting leans softly as centered pause bars arrive; blocked recoils as a centered stop sign lands. Both entrances settle over 2 s, then waiting breathes and blocked holds still. Done celebrates once over 4.8 s, then rests at 72% of native particle speed with the Idle breath. A state change interrupts the previous gesture; `motionKey` replays it and `paused` freezes it. A surface that only knows a machine checked in draws idle. No state draws a circle around the orb. Ambient motion moves the form at its own pace with no state pose or cue. Reduced motion: movement stops, a thinking or working orb breathes between full ink and 0.45 opacity so busy still reads as busy, an ambient orb holds still, and waiting and blocked keep their centered signs without an entrance gesture. An orb is one of seven forms, `ribbon`, `lattice`, `orbit`, `globe`, `network`, `braid` and `morph`, in one colour a person chose: cobalto, verde or arancio, or none, which draws it in the text colour. Giallo is not offered because it fails 3:1 on white; rosso is not offered because it is the error red. nadicode's own two Agents are the only ones with a figure nobody chooses, the same at every size and in every state. Nadia is her striped ribbon, the form `nadia`: azzurro, verde, the text colour and rosso along its whole length. Sofia, the Agent that looks up a new company, is her sister, the form `sofia`: the same ribbon turned to face Nadia's, striped cobalto, giallo, the text colour and arancio, the identity hues Nadia does not wear. Neither figure is ever stored as an Agent's look. An Agent's form is stored as `orb:<form>` and its colour as the identity hex or nothing; a template declares its starting look the same way. The stored-appearance resolver reads it: the root Agent always draws as Nadia, an unknown form draws `orbit`, an unknown colour the text colour, and a stored rosso draws arancio. The retired `forma:*` shapes each draw one of the seven forms, so an Agent that chose one before the orbs keeps a distinct look. An Agent's look is a person's choice and is never derived from a name, id or role. A template that names no look is the one exception: `templateAgentOrb` gives it a form and colour fixed by its slug, so the templates in a gallery differ and the Portal and Nadia draw the same one; Nadia and Sofia keep their figures.",
630
630
  words: "Text sits beside the orb, never on it. Where the exact state matters a word names it: *Working*, *Waiting for you*.",
631
631
  access: '`role="img"` labelled with the Agent\'s name, and her state where it matters; `decorative` when her name is already beside it.',
632
632
  },
@@ -658,7 +658,7 @@ export const USAGE = [
658
658
  family: "Status",
659
659
  summary: "A person or a team: their picture, else their initials.",
660
660
  when: '"Use a single `<Avatar>` for one person, team, or organization." (https://vercel.com/geist/avatar) "For two or more stacked avatars, use `<AvatarGroup>` so the cluster gets correct overlap, sizing, and a single accessible label." (https://vercel.com/geist/avatar) Ours: a person or a team: the account at the foot of the sidebar, a member list, who changed something. It always says who it shows: `label` names the entity (*Jane Doe*), and `decorative` stands for a name beside it that already does. The type asks for one of the two. "Pass `src` first and fall back to `letter` (1–2 uppercase chars) when the image is missing." (https://vercel.com/geist/avatar) Ours: the children are an `AvatarImage` and an `AvatarFallback` with the initials. "Pick a size that matches adjacent type: 20–24px next to `text-label-14`, 32px next to `text-label-16`, 48–64px in headers and onboarding states." (https://vercel.com/geist/avatar) Ours: `size` follows the type beside it: `xs` (16 px) and `sm` (24 px) next to small labels, `default` (32 px) next to body text, `lg` (48 px) in a header or an onboarding step. `AvatarWithIcon` puts a status glyph at the corner of a person\'s avatar; its `name` is required and gives the initials, and, like `Avatar`, the type asks for `label` (naming the person and the state) or `decorative`.',
661
- instead: "Ours: an Agent is always its `AgentOrb`, never an avatar. A company is its initials in a 6 px tile inside `RecordIdentity`. A record's mark, a person's included, is `IdentityMark`, which draws an `Avatar` for a person. There are no git-provider avatars and no fetch of a picture by username.",
661
+ instead: "Ours: an Agent is always its `AgentOrb`, never an avatar. A company is never an avatar: it is `IdentityMark`'s company mark, its logo or else its initials on a dark tile. A record's mark, a person's included, is `IdentityMark`, which draws an `Avatar` for a person. There are no git-provider avatars and no fetch of a picture by username.",
662
662
  behaviour: '"By default the first member sits on top of the stack, so the first credited author stays the most prominent." (https://vercel.com/geist/avatar) "Set `reverse` to flip the order so the last member sits on top instead." (https://vercel.com/geist/avatar) "The visual left-to-right order is unchanged." (https://vercel.com/geist/avatar) "By default `overlap="auto"` scales the spacing with `size`, keeping a generous, evenly-spaced cluster at any size." (https://vercel.com/geist/avatar) "Pass a number to set the overlap in pixels instead." (https://vercel.com/geist/avatar) "Lower values give more generous spacing; higher values pack tighter for dense, space-constrained UI." (https://vercel.com/geist/avatar) Ours: `auto` is about 30 % of the size (5, 7, 10 and 14 px), and each member is cut out with a 1 px ring in the page colour. When `limit` cuts the group, the last place is a dark `+N` count that covers the member it hides; `AvatarGroup` draws that count itself, so the caller passes `members` and one `label`, never a count of its own. "Reserve `placeholder` for the loading shell, never as a permanent fallback." (https://vercel.com/geist/avatar) Ours: there is no `placeholder`, since a still skeleton is ours; a picture that fails falls back to initials from `avatarInitials`, set in the neutral accent fill with the text colour on it, in both themes. For a name with no readable letter the caller passes a glyph, so it is never blank. The picture is held by a 1 px hairline. The corner glyph of `AvatarWithIcon` is the person\'s state, in the muted foreground colour, so its `label` names the person and the state. The profile\'s upload button is `AvatarUploadButton`.',
663
663
  words: '"Keep `letter` uppercase and derived from the entity name. No emoji, no punctuation, no `?`." (https://vercel.com/geist/avatar) Ours: the initials come from the name, else from the email; one initial at `xs`. The overflow is a count: *+2*.',
664
664
  access: '"`title` is the literal entity name (`Acme Inc.`, `Jane Doe`)." (https://vercel.com/geist/avatar) "Geist already prefixes letter avatars with `Avatar with initials:` for screen readers, so don’t hand-write `Avatar of …`." (https://vercel.com/geist/avatar) Ours: the name is `label`, as it is written (*Jane Doe*, not *Avatar of Jane Doe*), and we add no prefix. Beside a visible name it is `decorative`. A group carries one label: *5 members*. A corner glyph is `aria-hidden`; `label` says the state: *Jane Doe, paused*.',
@@ -711,10 +711,10 @@ export const USAGE = [
711
711
  name: "IdentityMark",
712
712
  module: "identity-mark",
713
713
  family: "Status",
714
- summary: "What says which thing a record is, at a fixed size at the start of its row, its object's head or its feed line: an Agent's orb, an app's logo, a model maker's mark, a company's initials, a person's picture, or a record kind's icon on its tile.",
714
+ summary: "What says which thing a record is, at a fixed size at the start of its row, its object's head or its feed line: an Agent's orb, an app's logo, a model maker's mark, a company's logo or initials, a person's picture, or a record kind's icon on its tile.",
715
715
  when: "The first thing in a record's row (32), at the head of its object page (64), in a feed or a sidebar identity line (24), on a Library entry (40), for the company at the top of Nadia's list (28): wherever it tells a person which thing they are looking at.",
716
716
  instead: "An icon beside a card's title, a KPI's label or a section heading only repeats the words and is left out. A picture for a first use or a whole-page moment is the empty state's or the page's own. A model is its `ModelIdentity`; a maker's mark beside a model's name in a list of models is `ModelMark` at 24.",
717
- behaviour: "Static, except an Agent's orb, which moves with her state. An Agent is always her real orb from the orb engine, at the largest orb size not above the mark's, with no tile and no ring, never an avatar or a painted circle, and `frame` lets the product wrap that orb, such as in the transition that carries her to her page; an app keeps its own logo in its bordered tile on the page ground, or its first letter when it has no logo; a record that belongs to a model maker, such as a key held at that maker, is the maker's `ModelMark` at the mark's size, with its initials when LobeHub has no mark for it; a company is its own logo, contained whole in a neutral tile in its original colours and proportions, as Vercel shows a project's favicon; its two initials on a compact arch, cobalto for a company and arancio for an approved Partner, until a logo is found or when the stored logo does not load. The edition follows the company's standing, never the directory it was opened from; a person is their picture, then their initials, in a round mark; a record with its own object picture, such as a Library skill or plugin, draws that picture on its kind's ground; a record with no picture of its own takes its kind's own icon, the same icon its section has in the navigation (Mail for a mailbox, a server for an MCP server, a key for a password), in a ringed tile on the card ground; a Library skill takes the purple category ground with the Skills icon and a plugin the `info-soft` ground with the Plugins icon, both without a ring, so the ground says which kind it is, and an entry that has its own object picture draws it on that ground in the icon's place. A company arch has a semicircular top and `{rounded.sm}` bottom corners; a record tile takes `{rounded.sm}` (6 px) corners, `{rounded.md}` (8 px) at 40 and 64; an app's tile takes `{rounded.md}` at every size.",
717
+ behaviour: "Static, except an Agent's orb, which moves with her state. An Agent is always her real orb from the orb engine, at the largest orb size not above the mark's, with no tile and no ring, never an avatar or a painted circle, and `frame` lets the product wrap that orb, such as in the transition that carries her to her page; an app keeps its own logo in its bordered tile on the page ground, or its first letter when it has no logo; a record that belongs to a model maker, such as a key held at that maker, is the maker's `ModelMark` at the mark's size, with its initials when LobeHub has no mark for it; a company is its own logo, contained whole in its original colours and proportions on a dark ringed tile, as Vercel shows a project's favicon, and until a logo is found, or when the stored logo does not load, its initials in white on that same tile, so a found logo only replaces the letters; a company's mark is the same whatever its standing and whichever directory opened it, and a Partner is said in words where its standing matters, never by a colour; a person is their picture, then their initials, in a round mark; a record with its own object picture, such as a Library skill or plugin, draws that picture on its kind's ground; a record with no picture of its own takes its kind's own icon, the same icon its section has in the navigation (Mail for a mailbox, a server for an MCP server, a key for a password), in a ringed tile on the card ground; a Library skill takes the purple category ground with the Skills icon and a plugin the `info-soft` ground with the Plugins icon, both without a ring, so the ground says which kind it is, and an entry that has its own object picture draws it on that ground in the icon's place. A record tile takes `{rounded.sm}` (6 px) corners, `{rounded.md}` (8 px) at 40 and 64; a company's tile and an app's tile take `{rounded.md}` at every size.",
718
718
  words: "None of its own: the record's name stands beside it. Initials stand for a company or a person: the first letters of the name's first two words. An app with no logo takes the first letter of its name as a monogram, a model maker with no mark the initials of its slug, and no other kind takes letters.",
719
719
  access: "Decorative beside the record's name. Alone, as in a narrow rail, `label` names it.",
720
720
  },
@@ -1,3 +1,3 @@
1
- export const agentOrbScript = "\"use strict\";(()=>{function U(n,e,t){return n+(e-n)*t}function at(n){return n-Math.floor(n)}function V(n,e){let t=Math.floor(n),a=Math.floor(e),o=n-t,s=e-a;o=o*o*(3-2*o),s=s*s*(3-2*s);let r=_(t,a),u=_(t+1,a),c=_(t,a+1),M=_(t+1,a+1);return r+(u-r)*o+(c-r)*s+(r-u-c+M)*o*s}function _(n,e){let t=Math.sin(n*12.9898+e*78.233)*43758.5453;return t-Math.floor(t)}function J(n,e){let t=Math.PI*(3-Math.sqrt(5)),a=1-2*(n+.5)/e,o=Math.sqrt(1-a*a),s=n*t;return[o*Math.cos(s),a,o*Math.sin(s)]}function Pt(n,e){return Math.atan2(Math.sin(n-e),Math.cos(n-e))}function j(n,e,t,a,o){let s=Math.sin(e),r=Math.cos(e),u=Math.sin(n),c=Math.cos(n);return(M,O,l)=>{let i=M*c+l*u,p=-M*u+l*c,m=O*r-p*s,b=O*s+p*r;return[t+i*o,a-m*o,b]}}function rt(n,e,t,a){if(!a){let s=Math.round((t?1-n:n)*255);return`rgba(${s},${s},${s},${e})`}let o=s=>Math.round(t?s*(1-n):s+(255-s)*n);return`rgba(${o(a.r)},${o(a.g)},${o(a.b)},${e})`}function it(n,e,t,a=.3,o){for(let s of e){let r=s.a??1,u=Math.min(1,Math.max(0,s.white));n.fillStyle=rt(u,r,t,o),n.beginPath(),n.arc(s.x,s.y,s.r,0,Math.PI*2),n.fill()}}function ct(n,e,t,a){for(let o of e){let s=o.a??1,r=Math.min(1,Math.max(0,o.white));n.strokeStyle=rt(r,s,t,a),n.lineWidth=o.w,n.beginPath(),n.moveTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.stroke()}}function q(n,e,t=.3){let a=[];for(let o of n)(o.a??1)<.02||(o.r=Math.max(t,o.r),a.push(o));return a.sort((o,s)=>o.z-s.z),{dots:a,lines:e.filter(o=>(o.a??1)>=.02)}}function ht(n,e,t,a){e.lines.length&&ct(n,e.lines,t,a),it(n,e.dots,t,.3,a)}function $(n,e){return(n/300)**e}var St=[[\"latRings\",\"lonDensity\"],[\"rings\",\"lonDensity\"],[\"lanes\",\"segs\"]],At=[\"orbitN\",\"ghostN\",\"nodeN\",\"strandN\",\"signals\"],vt=[\"iconD\"],kt=[\"rBase\",\"rDepth\",\"rActive\",\"rDot\",\"ghostR\",\"partR\",\"partRDepth\",\"nodeR\",\"nodeRDepth\"];function Rt(n,e){let t={...n},a=new Set,o=Math.sqrt(e);for(let[s,r]of St){let u=t[s],c=t[r];u!=null&&c!=null&&!a.has(s)&&!a.has(r)&&(t[s]=Math.max(2,Math.round(u*o)),t[r]=Math.max(2,Math.round(c*o)),a.add(s),a.add(r))}for(let s of At){let r=t[s];r!=null&&r!==0&&!a.has(s)&&(t[s]=Math.max(1,Math.round(r*e)))}for(let s of vt){let r=t[s];r!=null&&(t[s]=Math.max(.02,r*e))}return t}function Dt(n,e){let t={...n};for(let a of kt){let o=t[a];o!=null&&(t[a]=o*e)}return t.rSizeMul=(t.rSizeMul??1)*e,t}var zt={globe:{latRings:17,lonDensity:44,rBase:.6,rDepth:1.7,rBoost:1,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},orbits:{orbitN:12,ghostN:40,ghostR:.9,ghostA:.5,particles:3,partR:1.2,partRDepth:1.6,rsPow:.6,rMin:.3},rubik:{latRings:15,lonDensity:40,moveCount:14,rBase:.6,rDepth:1.7,rActive:.3,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},wave:{rings:15,lonDensity:40,rBase:.6,rDepth:1.7,rsPow:.6,rMin:.3},web:{nodeN:30,thr:.72,signals:5,nodeR:1.4,nodeRDepth:1.8,lineW:.8,rsPow:.6,rMin:.3},braid:{strandN:52,turns:3,ghostN:150,rBase:1.2,rDepth:1.8,rsPow:.6,rMin:.3},ribbon:{lanes:5,segs:88,ghostN:150,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},ring:{lanes:5,segs:88,ghostN:0,faceOn:1,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},morph:{rDot:.021,iconD:1,rMin:.25}},It=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.76,r=j(e*.4,.3,a,o,1),u=$(n,t.rsPow??.6),c=[],M=t.ghostN??150;for(let i=0;i<M;i++){let p=J(i,M),[m,b,h]=r(p[0]*s,p[1]*s,p[2]*s),g=(h/s+1)/2;c.push({x:m,y:b,z:h,r:.8*u,white:.78,a:.1+.22*g})}let O=t.strandN??52,l=t.turns??3;for(let i=0;i<3;i++){let p=i/3*2*Math.PI;for(let m=0;m<O;m++){let b=(at(m/O+e*.045)*2-1)*.96,h=Math.sqrt(Math.max(0,1-b*b)),g=Math.min(1,(1-Math.abs(b))/.1),y=b*Math.PI*l+p,f=1+.075*Math.sin(b*Math.PI*l*2+p*2+e*.8),d=h*s*f,[x,S,w]=r(Math.cos(y)*d,b*s*f,Math.sin(y)*d),P=(w/s+1)/2;c.push({x,y:S,z:w,r:((t.rBase??1.2)+(t.rDepth??1.8)*P)*u,white:.55-.45*P,a:g*(.45+.55*P)})}}return q(c,[],t.rMin)};function Ct(n,e,t,a){let o=2*e*t+a,s=n%o,r=new Array(e).fill(0),u=-1;if(s<2*e*t){let c=Math.floor(s/t),M=(s-c*t)/t,l=1-(1-Math.min(1,M/.7))**3;if(c<e){for(let i=0;i<c;i++)r[i]=1;r[c]=l,u=c}else{let i=2*e-1-c;for(let p=0;p<i;p++)r[p]=1;r[i]=1-l,u=i}}return{amount:r,active:u}}function Et(n,e,t){let[a,o,s]=n,r=!1;for(let u=0;u<e.length;u++){if(t.amount[u]<=0)continue;let c=e[u],M=c.axis===0?a:c.axis===1?o:s;if(M<c.lo||M>=c.hi)continue;u===t.active&&(r=!0);let O=c.ang*t.amount[u],l=Math.cos(O),i=Math.sin(O);if(c.axis===0){let p=o*l-s*i;s=o*i+s*l,o=p}else if(c.axis===1){let p=a*l+s*i;s=-a*i+s*l,a=p}else{let p=a*l-o*i;o=a*i+o*l,a=p}}return[a,o,s,r]}function Ft(n){let e=[];for(let t=0;t<n;t++){let a=Math.min(2,Math.floor(_(t,2.3)*3)),o=-1+.5*Math.min(3,Math.floor(_(t,5.9)*4)),s=_(t,7.7)<.5?1:-1;e.push({axis:a,lo:o,hi:o+.5,ang:s*Math.PI/2})}return e}var Nt=(n,e,t)=>{let o=n/2,s=n/2,r=n/2*.82,u=.4+.06*Math.sin(e*.35),c=j(e*.5,u,o,s,r),M=e*(.5+(1.7-.5)*(t.scanMul??1)),O=$(n,t.rsPow??.6),l=t.dimBase??1,i=[],p=t.latRings??17,m=t.lonDensity??44;for(let b=0;b<=p;b++){let h=-Math.PI/2+b/p*Math.PI,g=Math.cos(h),y=Math.sin(h),f=Math.max(1,Math.round(Math.abs(g)*m));for(let d=0;d<f;d++){let x=d/f*2*Math.PI,[S,w,P]=c(g*Math.cos(x),y,g*Math.sin(x)),v=(P+1)/2,R=Pt(x+e*.5,M),k=Math.exp(-(R*R)/.18)*Math.max(0,P);i.push({x:S,y:w,z:P,r:((t.rBase??.6)+(t.rDepth??1.7)*v+(t.rBoost??1)*k)*O,white:(t.inkFar??.62)-(t.inkSpan??.54)*v,a:l+(1-l)*Math.min(1,k)})}}return q(i,[],t.rMin)},Bt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.82,r=j(e*.55,.35+.1*Math.sin(e*.9),a,o,s),u=$(n,t.rsPow??.6),c=t.moveCount??14,M=Ft(c),O=Ct(e,c,.42,1.2),l=[],i=t.latRings??15,p=t.lonDensity??40;for(let m=0;m<=i;m++){let b=-Math.PI/2+m/i*Math.PI,h=Math.cos(b),g=Math.sin(b),y=Math.max(1,Math.round(Math.abs(h)*p));for(let f=0;f<y;f++){let d=f/y*2*Math.PI,[x,S,w,P]=Et([h*Math.cos(d),g,h*Math.sin(d)],M,O),[v,R,k]=r(x,S,w),D=(k+1)/2;l.push({x:v,y:R,z:k,r:((t.rBase??.6)+(t.rDepth??1.7)*D+(P?t.rActive??.3:0))*u,white:(t.inkFar??.62)-(t.inkSpan??.54)*D-(P?.14:0)})}}return q(l,[],t.rMin)},Lt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.874,r=j(e*.18,.38,a,o,1),u=$(n,t.rsPow??.6),c=[],M=t.rings??15,O=t.lonDensity??40;for(let l=0;l<=M;l++){let i=-Math.PI/2+l/M*Math.PI,p=Math.cos(i),m=Math.sin(i),b=.62*Math.sin(e*2.1-l*.52)+.38*Math.sin(e*1.27+l*.83),h=s*(.88+.105*b),g=Math.max(1,Math.round(Math.abs(p)*O));for(let y=0;y<g;y++){let f=y/g*2*Math.PI,[d,x,S]=r(p*Math.cos(f)*h,m*h,p*Math.sin(f)*h),w=(S/s+1)/2,P=Math.max(0,b);c.push({x:d,y:x,z:S,r:((t.rBase??.6)+(t.rDepth??1.7)*w)*(1+.4*P)*u,white:.66-.56*w-.1*P})}}return q(c,[],t.rMin)};function Tt(n){return n*n*(3-2*n)}function lt(n){let e=n.length,t=[],a=0;for(let o=0;o<e;o++){let s=n[o],r=n[(o+1)%e],u=Math.hypot(r[0]-s[0],r[1]-s[1]);t.push(u),a+=u}return o=>{let s=o*a,r=0;for(;s>t[r]&&r<e-1;)s-=t[r],r++;let u=n[r],c=n[(r+1)%e],M=t[r]?Math.min(1,s/t[r]):0;return[u[0]+(c[0]-u[0])*M,u[1]+(c[1]-u[1])*M]}}var _t=n=>{let e=-Math.PI/2+n*2*Math.PI;return[Math.cos(e)*.24,Math.sin(e)*.24]},qt=lt([[0,-.26],[.24,.16],[-.24,.16]]),jt=lt([[0,-.2],[.2,-.2],[.2,.2],[-.2,.2],[-.2,-.2]]),Q=[_t,qt,jt];function $t(n){return Math.max(6,Math.round(34*n))}var X=1.4,ut=.9,Y=X+ut,Wt=(n,e,t)=>{let a=Q.length,o=e%(Y*a),s=t.shape!=null&&t.shape>=0&&t.shape<a?Math.floor(t.shape):-1,r=s>=0?s:Math.floor(o/Y),u=s>=0?e%Y:o-r*Y,c=s>=0?0:u>X?Tt((u-X)/ut):0,M=t.spread??1,O=Q[r],l=s>=0?O:Q[(r+1)%a],i=160,p=[];for(let w=0;w<i;w++){let P=w/i,v=O(P),R=l(P);p.push([(v[0]+(R[0]-v[0])*c)*M,(v[1]+(R[1]-v[1])*c)*M])}let m=[],b=0;for(let w=0;w<i;w++){let P=p[w],v=p[(w+1)%i],R=Math.hypot(v[0]-P[0],v[1]-P[1]);m.push(R),b+=R}let h=$t(t.iconD??1),g=(t.rDot??.021)*1.35*M,y=1+.02*Math.sin(u*3.1),f=[],d=n/2,x=0,S=0;for(let w=0;w<h;w++){let P=w/h*b;for(;S+m[x]<P&&x<i-1;)S+=m[x],x++;let v=p[x],R=p[(x+1)%i],k=m[x]?Math.min(1,(P-S)/m[x]):0,D=(v[0]+(R[0]-v[0])*k)*y,C=(v[1]+(R[1]-v[1])*k)*y;f.push({x:d+D*n,y:d+C*n,z:0,r:Math.max(.35,g*n),white:.1})}return q(f,[],t.rMin)},Kt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.82,r=j(e*.12,.3,a,o,1),u=$(n,t.rsPow??.6),c=[],M=t.orbitN??12,O=t.ghostN??40,l=t.particles??3;for(let i=0;i<M;i++){let p=_(i,1.7),m=_(i,5.2),b=_(i,8.9),h=s*(.45+.52*p),g=p*2*Math.PI,y=Math.acos(2*m-1),f=Math.sin(y)*Math.cos(g),d=Math.cos(y),x=Math.sin(y)*Math.sin(g),S=-d,w=f,P=0,v=Math.max(1e-6,Math.sqrt(S*S+w*w));S/=v,w/=v;let R=d*P-x*w,k=x*S-f*P,D=f*w-d*S,C=(.25+.55*b)*(b>.5?1:-1);for(let E=0;E<O;E++){let z=E/O*2*Math.PI,[F,N,L]=r((S*Math.cos(z)+R*Math.sin(z))*h,(w*Math.cos(z)+k*Math.sin(z))*h,(P*Math.cos(z)+D*Math.sin(z))*h),B=(L/h+1)/2;c.push({x:F,y:N,z:L,r:(t.ghostR??.9)*u,white:.72,a:(t.ghostA??.5)*(.4+.6*B)})}for(let E=0;E<l;E++){let z=e*C+E/l*2*Math.PI+m*6,[F,N,L]=r((S*Math.cos(z)+R*Math.sin(z))*h,(w*Math.cos(z)+k*Math.sin(z))*h,(P*Math.cos(z)+D*Math.sin(z))*h),B=(L/h+1)/2;c.push({x:F,y:N,z:L,r:((t.partR??1.2)+(t.partRDepth??1.6)*B)*u,white:.3-.22*B})}}return q(c,[],t.rMin)},st=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.78,r=t.spin??1,u=.3,c=j(e*.1*r,u,a,o,1),M=$(n,t.rsPow??.6),O=[],l=t.ghostN??150;for(let D=0;D<l;D++){let C=J(D,l),[E,z,F]=c(C[0]*s,C[1]*s,C[2]*s),N=(F/s+1)/2;O.push({x:E,y:z,z:F,r:.8*M,white:.78,a:.1+.22*N})}let i=e*.24*r,p=t.faceOn?-u:.55+.3*Math.sin(e*.18)*r,m=Math.cos(i),b=0,h=Math.sin(i),g=-h*Math.sin(p),y=Math.cos(p),f=m*Math.sin(p),d=b*f-h*y,x=h*g-m*f,S=m*y-b*g,w=.23*(t.wobMul??1),P=t.faceOn?s/(1+.85*w):s,v=t.lanes??5,R=t.segs??88,k=Math.max(1,Math.round(v*(t.bandMul??1)));for(let D=0;D<k;D++){let C=(D-(k-1)/2)*.075,E=Math.abs(D-(k-1)/2)/Math.max(1,(k-1)/2);for(let z=0;z<R;z++){let F=z/R*2*Math.PI,N=(.16*Math.sin(F*3-e*1.7+D*.22)+.07*Math.sin(F*5+e*1.1))*(t.wobMul??1),L=t.faceOn?1+N:1,B=t.faceOn?C:C+N,A=m*Math.cos(F)+g*Math.sin(F)+d*B,I=b*Math.cos(F)+y*Math.sin(F)+x*B,T=h*Math.cos(F)+f*Math.sin(F)+S*B,W=Math.sqrt(A*A+I*I+T*T),K=P*L,[wt,Ot,et]=c(A/W*K,I/W*K,T/W*K),G=(et/s+1)/2;O.push({x:wt,y:Ot,z:et,r:((t.rBase??1.1)+(t.rDepth??1.7)*G)*(1-.25*E)*M,white:.52-.44*G+.18*E,a:.4+.6*G})}}return q(O,[],t.rMin)},Yt=(n,e,t)=>{let a=n/2,o=n/2,s=n/2*.8*(t.spread??1),r=j(e*.12,.32,a,o,s),u=$(n,t.rsPow??.6),c=t.nodeN??30,M=t.thr??.72,O=t.nodeR??1.4,l=t.nodeRDepth??1.8,i=[];for(let h=0;h<c;h++){let g=J(h,c),y=g[0]+.3*(V(h*.31+9,e*.24)-.5)*2,f=g[1]+.3*(V(h*.53+27,e*.21)-.5)*2,d=g[2]+.3*(V(h*.77+55,e*.27)-.5)*2,x=Math.sqrt(y*y+f*f+d*d);i.push([y/x,f/x,d/x])}let p=[],m=[];for(let h=0;h<c;h++)for(let g=h+1;g<c;g++){let y=i[h][0]-i[g][0],f=i[h][1]-i[g][1],d=i[h][2]-i[g][2],x=Math.sqrt(y*y+f*f+d*d);if(x>=M)continue;let[S,w,P]=r(i[h][0],i[h][1],i[h][2]),[v,R,k]=r(i[g][0],i[g][1],i[g][2]),D=((P+k)/2+1)/2;p.push({x1:S,y1:w,x2:v,y2:R,white:.42,a:(1-x/M)*(.3+.55*D),w:Math.max(.6,(t.lineW??.8)*u)})}for(let h=0;h<c;h++){let[g,y,f]=r(i[h][0],i[h][1],i[h][2]),d=(f+1)/2,x=1+.25*Math.sin(e*1.4+h*2.7);m.push({x:g,y,z:f,r:(O+l*d)*x*u,white:.55-.45*d})}let b=t.signals??5;for(let h=0;h<b;h++){let g=Math.floor(e*.55+h*7.31),y=Math.floor(_(g,h*3.1+1.7)*c),f=Math.floor(_(g,h*5.7+4.2)*c);if(y===f)continue;let d=at(e*.55+h*7.31),x=U(i[y][0],i[f][0],d),S=U(i[y][1],i[f][1],d),w=U(i[y][2],i[f][2],d),P=Math.max(1e-6,Math.sqrt(x*x+S*S+w*w)),[v,R,k]=r(x/P,S/P,w/P),D=(k+1)/2;m.push({x:v,y:R,z:k,r:(O*1.5+l*D)*u,white:.05,a:.5+.5*D})}return q(m,p,t.rMin)},H={orbits:Kt,globe:Nt,rubik:Bt,wave:Lt,web:Yt,braid:It,ribbon:st,ring:st,morph:Wt},Ht=Object.fromEntries(Object.entries(H).map(([n,e])=>[n,(t,a,o,s,r)=>ht(t,e(a,o,r),s)])),pt={working:\"orbits\",searching:\"globe\",solving:\"rubik\",listening:\"wave\",connecting:\"web\",weaving:\"braid\",composing:\"ribbon\",breathing:\"ring\",shaping:\"morph\"},Gt={orbits:{64:{speed:1.885,count:1,size:1},32:{speed:2.9072,count:.4251,size:1.6849},20:{speed:3.9,count:.238,size:2.4}},globe:{64:{speed:2.015,count:.42,size:1.15,extra:{scanMul:4.08,dimBase:.45}},32:{speed:2.3803,count:.1839,size:1.4769,extra:{scanMul:4.2301,dimBase:.45}},20:{speed:2.665,count:.105,size:1.75,extra:{scanMul:4.335,dimBase:.45}}},rubik:{64:{speed:1.82,count:.35,size:1.05},32:{speed:1.8964,count:.1537,size:1.4951},20:{speed:1.95,count:.088,size:1.9}},wave:{64:{speed:4.388,count:.341,size:1},32:{speed:4.1512,count:.169,size:1.3232},20:{speed:3.998,count:.105,size:1.6}},web:{64:{speed:3.315,count:1.35,size:.95},32:{speed:5.0104,count:.4942,size:1.2571},20:{speed:6.63,count:.25,size:1.52}},braid:{64:{speed:1.625,count:.5,size:1},32:{speed:2.2234,count:.2056,size:1.2011},20:{speed:2.75,count:.1125,size:1.36}},ribbon:{64:{speed:2.34,count:.25,size:.85,extra:{spin:0,bandMul:3.9,wobMul:1}},32:{speed:2.7776,count:.0969,size:.9766,extra:{spin:0,bandMul:4.49,wobMul:1}},20:{speed:3.12,count:.051,size:1.073,extra:{spin:0,bandMul:4.94,wobMul:1}}},ring:{64:{speed:3.24,count:.25,size:.956,extra:{spin:0,bandMul:3.627,wobMul:.368}},32:{speed:3.5517,count:.0678,size:1.31,extra:{spin:0,bandMul:3.8265,wobMul:.4751}},20:{speed:3.78,count:.028,size:1.622,extra:{spin:0,bandMul:3.968,wobMul:.565}}},morph:{64:{speed:2.405,count:.702,size:.395,extra:{spread:1.45}},32:{speed:2.2057,count:.5937,size:.6916,extra:{spread:1.45}},20:{speed:2.08,count:.53,size:1.011,extra:{spread:1.45}}}},ot=new Map;function Z(n,e){let t=`${n}-${e}`,a=ot.get(t);if(a)return a;let o=pt[n],s=Gt[o][e],r={...zt[o]};s.count!==1&&(r=Rt(r,s.count)),s.size!==1&&(r=Dt(r,s.size)),s.extra&&(r={...r,...s.extra});let u={mode:o,speed:s.speed,opts:r};return ot.set(t,u),u}var dt={ribbon:{speed:.55,tilt:.15},nadia:{speed:.55,tilt:.15},sofia:{speed:.55,tilt:-.15},lattice:{speed:.28,tilt:-.12},orbit:{speed:.7,tilt:.2},globe:{speed:.35,tilt:-.16},network:{speed:.55,tilt:.1},braid:{speed:.65,tilt:-.2},morph:{speed:.9,tilt:.12}};function tt(n){return dt[n].speed}function Mt(n,e){return{idle:1,working:1,thinking:1,waiting:0,blocked:0,done:.65}[n]*tt(e)}var Ut=1.6;function ft(n,e){return n!==\"thinking\"&&n!==\"working\"?1:1-.55*((1-Math.cos(e*Math.PI*2/Ut))/2)}function bt(n,e,t){let a=dt[n],o=.82,s=.82,r=0,u=0,c=0,M=0,O=1;if(e===\"idle\"){let l=Math.sin(t*Math.PI/2);o+=l*.01,s+=l*.01,r=-l*.004}else if(e===\"waiting\")o=.8,s=.84,r=-.015,O=.75;else if(e===\"blocked\"){let l=Math.min(1,t/.25),i=Math.sin(l*Math.PI);o=.8+i*.015,s=.82-l*.08,r=l*.025-i*.018,c=a.tilt*l*.4,O=1-l*.4}else if(e===\"done\"){if(t<.18){let l=Math.sin(Math.PI*t/.18);o+=.03*l,s-=.04*l,r=.012*l}else if(t<1.3){let l=(t-.18)/1.12;r=-.07*Math.sin(Math.PI*l),o+=.025*Math.sin(Math.PI*l),s+=.035*Math.sin(Math.PI*l),c=Math.sin(l*Math.PI*2)*.07}}return{sx:o,sy:s,x:u,y:r,rotation:c,split:M,opacity:O}}function nt(n,e,t,a,o,s,r,u=1){if(!(e!==\"working\"&&e!==\"thinking\"&&e!==\"done\")){if(n.save(),e===\"thinking\"){if(r===\"front\")for(let c=0;c<3;c++){let M=o?.5:(1+Math.cos(a*Math.PI*2/3.6-c*Math.PI*2/3))/2,O=s[c%s.length];O!==void 0&&(n.fillStyle=O),n.globalAlpha=(.65+M*.35)*u,n.beginPath(),n.arc(t*(.5+(c-1)*.09),t*.08,Math.max(1,t*(.022+M*.005)),0,Math.PI*2),n.fill()}}else if(e===\"working\"||!o&&a<3.1){let c=e===\"done\"?3:1;for(let M=0;M<c;M++){let O=e===\"done\"?(a-M*.38)/2.2:0;if(O<0||O>1)continue;let l=e===\"done\"?Math.sin(O*Math.PI):1,i=(o?.8:a*Math.PI*2/7.2)+M*2.1,p=Math.PI*1.4,m=-.38+M*.4,b=t*(.44+O*.03),h=t*(.19+O*.11),g=f=>{let d=Math.cos(f)*b,x=Math.sin(f)*h;return[t/2+d*Math.cos(m)-x*Math.sin(m),t/2+d*Math.sin(m)+x*Math.cos(m)]},y=n.createLinearGradient(t*.1,t*.7,t*.9,t*.3);s.forEach((f,d)=>y.addColorStop(d/Math.max(1,s.length-1),f)),n.strokeStyle=y,n.lineCap=\"butt\";for(let f=0;f<100;f++){let d=f/100,x=i-p+p*d,S=Math.sin(x)>=0;if(S!==(r===\"front\"))continue;let w=Math.sin(Math.PI*(.04+d*.92));n.globalAlpha=l*(S?.92:.55)*(.25+w*.75)*u,n.lineWidth=Math.max(.65,t*.027*w),n.beginPath(),n.moveTo(...g(x)),n.lineTo(...g(x+p/100)),n.stroke()}}}n.restore()}}var Vt={orbit:\"working\",globe:\"searching\",lattice:\"solving\",network:\"connecting\",braid:\"weaving\",ribbon:\"composing\",morph:\"shaping\"},Qt={plain:{alpha:1,radius:1},\"over-picture\":{alpha:2.3,radius:1.9}},mt=[\"--nc-identity-azzurro\",\"--nc-identity-verde\",null,\"--nc-identity-rosso\"],yt=[\"--nc-acqua-700\",\"--nc-viola-700\",\"--nc-warning\",\"--nc-rosso-700\"],Xt=[...yt,...mt.filter(n=>n!==null)],Jt=[\"--nc-identity-cobalto\",\"--nc-identity-giallo\",null,\"--nc-identity-arancio\"],Zt={nadia:mt,sofia:Jt};function tn(n,e){let t=1-2*(n+.5)/e,a=Math.sqrt(1-t*t),o=n*Math.PI*(3-Math.sqrt(5));return[a*Math.cos(o),t,a*Math.sin(o)]}function gt(n,e,t){let a=n/2,o=n/2*.78,s=t.spin??1,r=j(e*.1*s,.3,a,a,1),u=$(n,t.rsPow??.6),c=[],M=t.ghostN??150;for(let v=0;v<M;v++){let[R,k,D]=tn(v,M),[C,E,z]=r(R*o,k*o,D*o);c.push({x:C,y:E,z,r:.8*u,white:.78,a:.1+.22*((z/o+1)/2)})}let O=e*.24*s,l=t.faceOn?-.3:.55+.3*Math.sin(e*.18)*s,[i,p,m]=[Math.cos(O),0,Math.sin(O)],[b,h,g]=[-m*Math.sin(l),Math.cos(l),i*Math.sin(l)],[y,f,d]=[p*g-m*h,m*b-i*g,i*h-p*b],x=t.wobMul??1,S=t.faceOn?o/(1+.85*.23*x):o,w=t.segs??88,P=Math.max(1,Math.round((t.lanes??5)*(t.bandMul??1)));for(let v=0;v<P;v++){let R=(v-(P-1)/2)*.075,k=Math.abs(v-(P-1)/2)/Math.max(1,(P-1)/2);for(let D=0;D<w;D++){let C=D/w*2*Math.PI,E=(.16*Math.sin(C*3-e*1.7+v*.22)+.07*Math.sin(C*5+e*1.1))*x,z=t.faceOn?1+E:1,F=t.faceOn?R:R+E,N=i*Math.cos(C)+b*Math.sin(C)+y*F,L=p*Math.cos(C)+h*Math.sin(C)+f*F,B=m*Math.cos(C)+g*Math.sin(C)+d*F,A=Math.sqrt(N*N+L*L+B*B),[I,T,W]=r(N/A*S*z,L/A*S*z,B/A*S*z),K=(W/o+1)/2;c.push({x:I,y:T,z:W,r:((t.rBase??1.1)+(t.rDepth??1.7)*K)*(1-.25*k)*u,white:.08+.1*k,a:.55+.45*K,stripe:Math.min(3,Math.floor(v/P*4))})}}return q(c,[],t.rMin)}function nn(n,e){for(let t of n.dots)t.x=e-t.x;return n}function en(n,e){let{form:t,size:a,seconds:o,color:s,state:r,age:u,reduced:c,breath:M,celebrationColors:O,stripeColors:l}=e,i=Qt[e.presence],p=Z(Vt[t===\"nadia\"||t===\"sofia\"?\"ribbon\":t],a<=32?20:64),m=t===\"nadia\"?gt(a,o,p.opts):t===\"sofia\"?nn(gt(a,o,p.opts),a):H[p.mode](a,o,p.opts);n.clearRect(0,0,a,a);let b=bt(t,e.motion===\"ambient\"?\"idle\":r,c?r===\"done\"?2:.6:u),h=c?.8:u/(r===\"done\"?.575:.2875),g=(d,x)=>{let S=(d-a/2)*b.sx,w=(x-a/2)*b.sy;return[a/2+S*Math.cos(b.rotation)-w*Math.sin(b.rotation)+(b.x+Math.sign(S)*b.split)*a,a/2+S*Math.sin(b.rotation)+w*Math.cos(b.rotation)+b.y*a]},y=b.opacity*M;e.motion===\"status\"&&nt(n,r,a,h,c,O,\"back\",M),n.fillStyle=s,n.strokeStyle=s;for(let d of m.lines)n.globalAlpha=Math.min(1,Math.max(0,(1-d.white)*(d.a??1)*y*i.alpha)),n.lineWidth=d.w*i.radius,n.beginPath(),n.moveTo(...g(d.x1,d.y1)),n.lineTo(...g(d.x2,d.y2)),n.stroke();let f=m.dots;for(let d of f)n.fillStyle=d.stripe===void 0?s:l[d.stripe]??s,n.globalAlpha=Math.min(1,Math.max(0,(1-d.white)*(d.a??1)*y*i.alpha)),n.beginPath(),n.arc(...g(d.x,d.y),d.r*i.radius,0,Math.PI*2),n.fill();n.globalAlpha=1,e.motion===\"status\"&&nt(n,r,a,h,c,O,\"front\",M)}function xt(n,e){let{form:t,presence:a=\"plain\"}=e,o=n.getContext(\"2d\");if(!o)return{destroy(){},setPaused(A){},setState(A){}};let s=window.matchMedia(\"(prefers-reduced-motion: reduce)\"),r=e.paused??!1,u=!0,c=!1,M=0,O=.6,l=0,i=0,p=e.state??\"idle\",m=e.motion??\"status\",b=null,h=0,g=1,y=e.size,f=getComputedStyle(n).color,d=[f],x=[f],S=\"\";function w(){let A=n.getBoundingClientRect(),I=Math.min(A.width,A.height);return I>0?I:e.size}function P(){!o||c||!n.isConnected||(o.setTransform(g,0,0,g,0,0),en(o,{form:t,size:y,seconds:O,color:f,state:p,age:l,reduced:s.matches,breath:s.matches?ft(p,i):1,presence:a,motion:m,celebrationColors:d,stripeColors:x}))}function v(){return c||!n.isConnected||!u||document.hidden||r?!1:s.matches?m===\"status\"&&(p===\"thinking\"||p===\"working\"):m===\"ambient\"?!0:p!==\"waiting\"&&!(p===\"blocked\"&&l>=.3)}function R(A){if(M=0,!!v()){if(b!==null){let I=Math.min((A-b)/1e3,.1);s.matches?i+=I:(O+=I*(m===\"ambient\"?tt(t):Mt(p,t)),m===\"status\"&&(l+=I*(p===\"done\"?.575:.2875)),p===\"done\"&&l>=1.8&&(p=\"idle\",l=0))}b=A,A-h>=1e3/30&&(P(),h=A),M=requestAnimationFrame(R)}}function k(){cancelAnimationFrame(M),M=0,b=null,P(),v()&&(M=requestAnimationFrame(R))}function D(A){let I=document.createElement(\"span\");I.hidden=!0,I.style.color=A,(n.parentElement??document.body).append(I);let T=getComputedStyle(I).color;return I.remove(),T||f}function C(A,I){return[I,window.devicePixelRatio||1,A.color,...Xt.map(T=>A.getPropertyValue(T))].join(\"|\")}function E(){C(getComputedStyle(n),w())!==S&&z()}function z(){if(c||!n.isConnected)return;y=w();let A=Math.max(1,Math.round(y*Math.min(window.devicePixelRatio||1,2)));n.width=A,n.height=A,g=A/y;let I=getComputedStyle(n);S=C(I,y),f=I.color,d=yt.map(T=>D(`color-mix(in oklch, ${I.getPropertyValue(T).trim()||f} 75%, white)`)),x=(Zt[t]??[]).map(T=>T&&I.getPropertyValue(T).trim()||f),k()}let F=new IntersectionObserver(([A])=>{u=A?.isIntersecting??!1,k()});F.observe(n);let N=new MutationObserver(E);for(let A=n;A;A=A.parentElement)N.observe(A,{attributes:!0,attributeFilter:[\"class\",\"style\",\"data-theme\"]});let L=new ResizeObserver(()=>{Math.abs(w()-y)>=.5&&z()});L.observe(n);function B(A){A.propertyName===\"color\"&&A.target instanceof Node&&A.target.contains(n)&&E()}return document.addEventListener(\"transitionend\",B,!0),s.addEventListener(\"change\",k),document.addEventListener(\"visibilitychange\",k),window.addEventListener(\"resize\",E),z(),{setState(A){p=A,l=0,i=0,k()},setPaused(A){r=A,k()},destroy(){c=!0,cancelAnimationFrame(M),F.disconnect(),N.disconnect(),L.disconnect(),document.removeEventListener(\"transitionend\",B,!0),s.removeEventListener(\"change\",k),document.removeEventListener(\"visibilitychange\",k),window.removeEventListener(\"resize\",E)}}}for(let n of document.querySelectorAll(\"canvas[data-agent-orb]\"))xt(n,{form:n.dataset.agentOrb,size:Number(n.dataset.size),state:n.dataset.state??\"idle\"});})();\n";
1
+ export const agentOrbScript = "\"use strict\";(()=>{function et(t,o,e){return t+(o-t)*e}function St(t){return t-Math.floor(t)}function ot(t,o){let e=Math.floor(t),s=Math.floor(o),n=t-e,r=o-s;n=n*n*(3-2*n),r=r*r*(3-2*r);let a=G(e,s),p=G(e+1,s),f=G(e,s+1),m=G(e+1,s+1);return a+(p-a)*n+(f-a)*r+(a-p-f+m)*n*r}function G(t,o){let e=Math.sin(t*12.9898+o*78.233)*43758.5453;return e-Math.floor(e)}function st(t,o){let e=Math.PI*(3-Math.sqrt(5)),s=1-2*(t+.5)/o,n=Math.sqrt(1-s*s),r=t*e;return[n*Math.cos(r),s,n*Math.sin(r)]}function _t(t,o){return Math.atan2(Math.sin(t-o),Math.cos(t-o))}function W(t,o,e,s,n){let r=Math.sin(o),a=Math.cos(o),p=Math.sin(t),f=Math.cos(t);return(m,g,d)=>{let c=m*f+d*p,h=-m*p+d*f,M=g*a-h*r,x=g*r+h*a;return[e+c*n,s-M*n,x]}}function Dt(t,o,e,s){if(!s){let r=Math.round((e?1-t:t)*255);return`rgba(${r},${r},${r},${o})`}let n=r=>Math.round(e?r*(1-t):r+(255-r)*t);return`rgba(${n(s.r)},${n(s.g)},${n(s.b)},${o})`}function At(t,o,e,s=.3,n){for(let r of o){let a=r.a??1,p=Math.min(1,Math.max(0,r.white));t.fillStyle=Dt(p,a,e,n),t.beginPath(),t.arc(r.x,r.y,r.r,0,Math.PI*2),t.fill()}}function wt(t,o,e,s){for(let n of o){let r=n.a??1,a=Math.min(1,Math.max(0,n.white));t.strokeStyle=Dt(a,r,e,s),t.lineWidth=n.w,t.beginPath(),t.moveTo(n.x1,n.y1),t.lineTo(n.x2,n.y2),t.stroke()}}function j(t,o,e=.3){let s=[];for(let n of t)(n.a??1)<.02||(n.r=Math.max(e,n.r),s.push(n));return s.sort((n,r)=>n.z-r.z),{dots:s,lines:o.filter(n=>(n.a??1)>=.02)}}function Pt(t,o,e,s){o.lines.length&&wt(t,o.lines,e,s),At(t,o.dots,e,.3,s)}function _(t,o){return(t/300)**o}var Kt=[[\"latRings\",\"lonDensity\"],[\"rings\",\"lonDensity\"],[\"lanes\",\"segs\"]],$t=[\"orbitN\",\"ghostN\",\"nodeN\",\"strandN\",\"signals\"],Ht=[\"iconD\"],Ut=[\"rBase\",\"rDepth\",\"rActive\",\"rDot\",\"ghostR\",\"partR\",\"partRDepth\",\"nodeR\",\"nodeRDepth\"];function Yt(t,o){let e={...t},s=new Set,n=Math.sqrt(o);for(let[r,a]of Kt){let p=e[r],f=e[a];p!=null&&f!=null&&!s.has(r)&&!s.has(a)&&(e[r]=Math.max(2,Math.round(p*n)),e[a]=Math.max(2,Math.round(f*n)),s.add(r),s.add(a))}for(let r of $t){let a=e[r];a!=null&&a!==0&&!s.has(r)&&(e[r]=Math.max(1,Math.round(a*o)))}for(let r of Ht){let a=e[r];a!=null&&(e[r]=Math.max(.02,a*o))}return e}function Zt(t,o){let e={...t};for(let s of Ut){let n=e[s];n!=null&&(e[s]=n*o)}return e.rSizeMul=(e.rSizeMul??1)*o,e}var Jt={globe:{latRings:17,lonDensity:44,rBase:.6,rDepth:1.7,rBoost:1,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},orbits:{orbitN:12,ghostN:40,ghostR:.9,ghostA:.5,particles:3,partR:1.2,partRDepth:1.6,rsPow:.6,rMin:.3},rubik:{latRings:15,lonDensity:40,moveCount:14,rBase:.6,rDepth:1.7,rActive:.3,inkFar:.62,inkSpan:.54,rsPow:.6,rMin:.3},wave:{rings:15,lonDensity:40,rBase:.6,rDepth:1.7,rsPow:.6,rMin:.3},web:{nodeN:30,thr:.72,signals:5,nodeR:1.4,nodeRDepth:1.8,lineW:.8,rsPow:.6,rMin:.3},braid:{strandN:52,turns:3,ghostN:150,rBase:1.2,rDepth:1.8,rsPow:.6,rMin:.3},ribbon:{lanes:5,segs:88,ghostN:150,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},ring:{lanes:5,segs:88,ghostN:0,faceOn:1,rBase:1.1,rDepth:1.7,rsPow:.6,rMin:.3},morph:{rDot:.021,iconD:1,rMin:.25}},Qt=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.76,a=W(o*.4,.3,s,n,1),p=_(t,e.rsPow??.6),f=[],m=e.ghostN??150;for(let c=0;c<m;c++){let h=st(c,m),[M,x,i]=a(h[0]*r,h[1]*r,h[2]*r),S=(i/r+1)/2;f.push({x:M,y:x,z:i,r:.8*p,white:.78,a:.1+.22*S})}let g=e.strandN??52,d=e.turns??3;for(let c=0;c<3;c++){let h=c/3*2*Math.PI;for(let M=0;M<g;M++){let x=(St(M/g+o*.045)*2-1)*.96,i=Math.sqrt(Math.max(0,1-x*x)),S=Math.min(1,(1-Math.abs(x))/.1),y=x*Math.PI*d+h,b=1+.075*Math.sin(x*Math.PI*d*2+h*2+o*.8),A=i*r*b,[v,w,u]=a(Math.cos(y)*A,x*r*b,Math.sin(y)*A),l=(u/r+1)/2;f.push({x:v,y:w,z:u,r:((e.rBase??1.2)+(e.rDepth??1.8)*l)*p,white:.55-.45*l,a:S*(.45+.55*l)})}}return j(f,[],e.rMin)};function Xt(t,o,e,s){let n=2*o*e+s,r=t%n,a=new Array(o).fill(0),p=-1;if(r<2*o*e){let f=Math.floor(r/e),m=(r-f*e)/e,d=1-(1-Math.min(1,m/.7))**3;if(f<o){for(let c=0;c<f;c++)a[c]=1;a[f]=d,p=f}else{let c=2*o-1-f;for(let h=0;h<c;h++)a[h]=1;a[c]=1-d,p=c}}return{amount:a,active:p}}function te(t,o,e){let[s,n,r]=t,a=!1;for(let p=0;p<o.length;p++){if(e.amount[p]<=0)continue;let f=o[p],m=f.axis===0?s:f.axis===1?n:r;if(m<f.lo||m>=f.hi)continue;p===e.active&&(a=!0);let g=f.ang*e.amount[p],d=Math.cos(g),c=Math.sin(g);if(f.axis===0){let h=n*d-r*c;r=n*c+r*d,n=h}else if(f.axis===1){let h=s*d+r*c;r=-s*c+r*d,s=h}else{let h=s*d-n*c;n=s*c+n*d,s=h}}return[s,n,r,a]}function ee(t){let o=[];for(let e=0;e<t;e++){let s=Math.min(2,Math.floor(G(e,2.3)*3)),n=-1+.5*Math.min(3,Math.floor(G(e,5.9)*4)),r=G(e,7.7)<.5?1:-1;o.push({axis:s,lo:n,hi:n+.5,ang:r*Math.PI/2})}return o}var oe=(t,o,e)=>{let n=t/2,r=t/2,a=t/2*.82,p=.4+.06*Math.sin(o*.35),f=W(o*.5,p,n,r,a),m=o*(.5+(1.7-.5)*(e.scanMul??1)),g=_(t,e.rsPow??.6),d=e.dimBase??1,c=[],h=e.latRings??17,M=e.lonDensity??44;for(let x=0;x<=h;x++){let i=-Math.PI/2+x/h*Math.PI,S=Math.cos(i),y=Math.sin(i),b=Math.max(1,Math.round(Math.abs(S)*M));for(let A=0;A<b;A++){let v=A/b*2*Math.PI,[w,u,l]=f(S*Math.cos(v),y,S*Math.sin(v)),D=(l+1)/2,P=_t(v+o*.5,m),E=Math.exp(-(P*P)/.18)*Math.max(0,l);c.push({x:w,y:u,z:l,r:((e.rBase??.6)+(e.rDepth??1.7)*D+(e.rBoost??1)*E)*g,white:(e.inkFar??.62)-(e.inkSpan??.54)*D,a:d+(1-d)*Math.min(1,E)})}}return j(c,[],e.rMin)},ne=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.82,a=W(o*.55,.35+.1*Math.sin(o*.9),s,n,r),p=_(t,e.rsPow??.6),f=e.moveCount??14,m=ee(f),g=Xt(o,f,.42,1.2),d=[],c=e.latRings??15,h=e.lonDensity??40;for(let M=0;M<=c;M++){let x=-Math.PI/2+M/c*Math.PI,i=Math.cos(x),S=Math.sin(x),y=Math.max(1,Math.round(Math.abs(i)*h));for(let b=0;b<y;b++){let A=b/y*2*Math.PI,[v,w,u,l]=te([i*Math.cos(A),S,i*Math.sin(A)],m,g),[D,P,E]=a(v,w,u),T=(E+1)/2;d.push({x:D,y:P,z:E,r:((e.rBase??.6)+(e.rDepth??1.7)*T+(l?e.rActive??.3:0))*p,white:(e.inkFar??.62)-(e.inkSpan??.54)*T-(l?.14:0)})}}return j(d,[],e.rMin)},re=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.874,a=W(o*.18,.38,s,n,1),p=_(t,e.rsPow??.6),f=[],m=e.rings??15,g=e.lonDensity??40;for(let d=0;d<=m;d++){let c=-Math.PI/2+d/m*Math.PI,h=Math.cos(c),M=Math.sin(c),x=.62*Math.sin(o*2.1-d*.52)+.38*Math.sin(o*1.27+d*.83),i=r*(.88+.105*x),S=Math.max(1,Math.round(Math.abs(h)*g));for(let y=0;y<S;y++){let b=y/S*2*Math.PI,[A,v,w]=a(h*Math.cos(b)*i,M*i,h*Math.sin(b)*i),u=(w/r+1)/2,l=Math.max(0,x);f.push({x:A,y:v,z:w,r:((e.rBase??.6)+(e.rDepth??1.7)*u)*(1+.4*l)*p,white:.66-.56*u-.1*l})}}return j(f,[],e.rMin)};function se(t){return t*t*(3-2*t)}function Ot(t){let o=t.length,e=[],s=0;for(let n=0;n<o;n++){let r=t[n],a=t[(n+1)%o],p=Math.hypot(a[0]-r[0],a[1]-r[1]);e.push(p),s+=p}return n=>{let r=n*s,a=0;for(;r>e[a]&&a<o-1;)r-=e[a],a++;let p=t[a],f=t[(a+1)%o],m=e[a]?Math.min(1,r/e[a]):0;return[p[0]+(f[0]-p[0])*m,p[1]+(f[1]-p[1])*m]}}var ae=t=>{let o=-Math.PI/2+t*2*Math.PI;return[Math.cos(o)*.24,Math.sin(o)*.24]},ie=Ot([[0,-.26],[.24,.16],[-.24,.16]]),ce=Ot([[0,-.2],[.2,-.2],[.2,.2],[-.2,.2],[-.2,-.2]]),nt=[ae,ie,ce];function le(t){return Math.max(6,Math.round(34*t))}var rt=1.4,Et=.9,Y=rt+Et,pe=(t,o,e)=>{let s=nt.length,n=o%(Y*s),r=e.shape!=null&&e.shape>=0&&e.shape<s?Math.floor(e.shape):-1,a=r>=0?r:Math.floor(n/Y),p=r>=0?o%Y:n-a*Y,f=r>=0?0:p>rt?se((p-rt)/Et):0,m=e.spread??1,g=nt[a],d=r>=0?g:nt[(a+1)%s],c=160,h=[];for(let u=0;u<c;u++){let l=u/c,D=g(l),P=d(l);h.push([(D[0]+(P[0]-D[0])*f)*m,(D[1]+(P[1]-D[1])*f)*m])}let M=[],x=0;for(let u=0;u<c;u++){let l=h[u],D=h[(u+1)%c],P=Math.hypot(D[0]-l[0],D[1]-l[1]);M.push(P),x+=P}let i=le(e.iconD??1),S=(e.rDot??.021)*1.35*m,y=1+.02*Math.sin(p*3.1),b=[],A=t/2,v=0,w=0;for(let u=0;u<i;u++){let l=u/i*x;for(;w+M[v]<l&&v<c-1;)w+=M[v],v++;let D=h[v],P=h[(v+1)%c],E=M[v]?Math.min(1,(l-w)/M[v]):0,T=(D[0]+(P[0]-D[0])*E)*y,O=(D[1]+(P[1]-D[1])*E)*y;b.push({x:A+T*t,y:A+O*t,z:0,r:Math.max(.35,S*t),white:.1})}return j(b,[],e.rMin)},fe=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.82,a=W(o*.12,.3,s,n,1),p=_(t,e.rsPow??.6),f=[],m=e.orbitN??12,g=e.ghostN??40,d=e.particles??3;for(let c=0;c<m;c++){let h=G(c,1.7),M=G(c,5.2),x=G(c,8.9),i=r*(.45+.52*h),S=h*2*Math.PI,y=Math.acos(2*M-1),b=Math.sin(y)*Math.cos(S),A=Math.cos(y),v=Math.sin(y)*Math.sin(S),w=-A,u=b,l=0,D=Math.max(1e-6,Math.sqrt(w*w+u*u));w/=D,u/=D;let P=A*l-v*u,E=v*w-b*l,T=b*u-A*w,O=(.25+.55*x)*(x>.5?1:-1);for(let I=0;I<g;I++){let V=I/g*2*Math.PI,[R,N,L]=a((w*Math.cos(V)+P*Math.sin(V))*i,(u*Math.cos(V)+E*Math.sin(V))*i,(l*Math.cos(V)+T*Math.sin(V))*i),B=(L/i+1)/2;f.push({x:R,y:N,z:L,r:(e.ghostR??.9)*p,white:.72,a:(e.ghostA??.5)*(.4+.6*B)})}for(let I=0;I<d;I++){let V=o*O+I/d*2*Math.PI+M*6,[R,N,L]=a((w*Math.cos(V)+P*Math.sin(V))*i,(u*Math.cos(V)+E*Math.sin(V))*i,(l*Math.cos(V)+T*Math.sin(V))*i),B=(L/i+1)/2;f.push({x:R,y:N,z:L,r:((e.partR??1.2)+(e.partRDepth??1.6)*B)*p,white:.3-.22*B})}}return j(f,[],e.rMin)},yt=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.78,a=e.spin??1,p=.3,f=W(o*.1*a,p,s,n,1),m=_(t,e.rsPow??.6),g=[],d=e.ghostN??150;for(let T=0;T<d;T++){let O=st(T,d),[I,V,R]=f(O[0]*r,O[1]*r,O[2]*r),N=(R/r+1)/2;g.push({x:I,y:V,z:R,r:.8*m,white:.78,a:.1+.22*N})}let c=o*.24*a,h=e.faceOn?-p:.55+.3*Math.sin(o*.18)*a,M=Math.cos(c),x=0,i=Math.sin(c),S=-i*Math.sin(h),y=Math.cos(h),b=M*Math.sin(h),A=x*b-i*y,v=i*S-M*b,w=M*y-x*S,u=.23*(e.wobMul??1),l=e.faceOn?r/(1+.85*u):r,D=e.lanes??5,P=e.segs??88,E=Math.max(1,Math.round(D*(e.bandMul??1)));for(let T=0;T<E;T++){let O=(T-(E-1)/2)*.075,I=Math.abs(T-(E-1)/2)/Math.max(1,(E-1)/2);for(let V=0;V<P;V++){let R=V/P*2*Math.PI,N=(.16*Math.sin(R*3-o*1.7+T*.22)+.07*Math.sin(R*5+o*1.1))*(e.wobMul??1),L=e.faceOn?1+N:1,B=e.faceOn?O:O+N,q=M*Math.cos(R)+S*Math.sin(R)+A*B,K=x*Math.cos(R)+y*Math.sin(R)+v*B,k=i*Math.cos(R)+b*Math.sin(R)+w*B,C=Math.sqrt(q*q+K*K+k*k),z=l*L,[qt,Wt,bt]=f(q/C*z,K/C*z,k/C*z),tt=(bt/r+1)/2;g.push({x:qt,y:Wt,z:bt,r:((e.rBase??1.1)+(e.rDepth??1.7)*tt)*(1-.25*I)*m,white:.52-.44*tt+.18*I,a:.4+.6*tt})}}return j(g,[],e.rMin)},me=(t,o,e)=>{let s=t/2,n=t/2,r=t/2*.8*(e.spread??1),a=W(o*.12,.32,s,n,r),p=_(t,e.rsPow??.6),f=e.nodeN??30,m=e.thr??.72,g=e.nodeR??1.4,d=e.nodeRDepth??1.8,c=[];for(let i=0;i<f;i++){let S=st(i,f),y=S[0]+.3*(ot(i*.31+9,o*.24)-.5)*2,b=S[1]+.3*(ot(i*.53+27,o*.21)-.5)*2,A=S[2]+.3*(ot(i*.77+55,o*.27)-.5)*2,v=Math.sqrt(y*y+b*b+A*A);c.push([y/v,b/v,A/v])}let h=[],M=[];for(let i=0;i<f;i++)for(let S=i+1;S<f;S++){let y=c[i][0]-c[S][0],b=c[i][1]-c[S][1],A=c[i][2]-c[S][2],v=Math.sqrt(y*y+b*b+A*A);if(v>=m)continue;let[w,u,l]=a(c[i][0],c[i][1],c[i][2]),[D,P,E]=a(c[S][0],c[S][1],c[S][2]),T=((l+E)/2+1)/2;h.push({x1:w,y1:u,x2:D,y2:P,white:.42,a:(1-v/m)*(.3+.55*T),w:Math.max(.6,(e.lineW??.8)*p)})}for(let i=0;i<f;i++){let[S,y,b]=a(c[i][0],c[i][1],c[i][2]),A=(b+1)/2,v=1+.25*Math.sin(o*1.4+i*2.7);M.push({x:S,y,z:b,r:(g+d*A)*v*p,white:.55-.45*A})}let x=e.signals??5;for(let i=0;i<x;i++){let S=Math.floor(o*.55+i*7.31),y=Math.floor(G(S,i*3.1+1.7)*f),b=Math.floor(G(S,i*5.7+4.2)*f);if(y===b)continue;let A=St(o*.55+i*7.31),v=et(c[y][0],c[b][0],A),w=et(c[y][1],c[b][1],A),u=et(c[y][2],c[b][2],A),l=Math.max(1e-6,Math.sqrt(v*v+w*w+u*u)),[D,P,E]=a(v/l,w/l,u/l),T=(E+1)/2;M.push({x:D,y:P,z:E,r:(g*1.5+d*T)*p,white:.05,a:.5+.5*T})}return j(M,h,e.rMin)},Z={orbits:fe,globe:oe,rubik:ne,wave:re,web:me,braid:Qt,ribbon:yt,ring:yt,morph:pe},ue=Object.fromEntries(Object.entries(Z).map(([t,o])=>[t,(e,s,n,r,a)=>Pt(e,o(s,n,a),r)])),kt={working:\"orbits\",searching:\"globe\",solving:\"rubik\",listening:\"wave\",connecting:\"web\",weaving:\"braid\",composing:\"ribbon\",breathing:\"ring\",shaping:\"morph\"},he={orbits:{64:{speed:1.885,count:1,size:1},32:{speed:2.9072,count:.4251,size:1.6849},20:{speed:3.9,count:.238,size:2.4}},globe:{64:{speed:2.015,count:.42,size:1.15,extra:{scanMul:4.08,dimBase:.45}},32:{speed:2.3803,count:.1839,size:1.4769,extra:{scanMul:4.2301,dimBase:.45}},20:{speed:2.665,count:.105,size:1.75,extra:{scanMul:4.335,dimBase:.45}}},rubik:{64:{speed:1.82,count:.35,size:1.05},32:{speed:1.8964,count:.1537,size:1.4951},20:{speed:1.95,count:.088,size:1.9}},wave:{64:{speed:4.388,count:.341,size:1},32:{speed:4.1512,count:.169,size:1.3232},20:{speed:3.998,count:.105,size:1.6}},web:{64:{speed:3.315,count:1.35,size:.95},32:{speed:5.0104,count:.4942,size:1.2571},20:{speed:6.63,count:.25,size:1.52}},braid:{64:{speed:1.625,count:.5,size:1},32:{speed:2.2234,count:.2056,size:1.2011},20:{speed:2.75,count:.1125,size:1.36}},ribbon:{64:{speed:2.34,count:.25,size:.85,extra:{spin:0,bandMul:3.9,wobMul:1}},32:{speed:2.7776,count:.0969,size:.9766,extra:{spin:0,bandMul:4.49,wobMul:1}},20:{speed:3.12,count:.051,size:1.073,extra:{spin:0,bandMul:4.94,wobMul:1}}},ring:{64:{speed:3.24,count:.25,size:.956,extra:{spin:0,bandMul:3.627,wobMul:.368}},32:{speed:3.5517,count:.0678,size:1.31,extra:{spin:0,bandMul:3.8265,wobMul:.4751}},20:{speed:3.78,count:.028,size:1.622,extra:{spin:0,bandMul:3.968,wobMul:.565}}},morph:{64:{speed:2.405,count:.702,size:.395,extra:{spread:1.45}},32:{speed:2.2057,count:.5937,size:.6916,extra:{spread:1.45}},20:{speed:2.08,count:.53,size:1.011,extra:{spread:1.45}}}},vt=new Map;function at(t,o){let e=`${t}-${o}`,s=vt.get(e);if(s)return s;let n=kt[t],r=he[n][o],a={...Jt[n]};r.count!==1&&(a=Yt(a,r.count)),r.size!==1&&(a=Zt(a,r.size)),r.extra&&(a={...a,...r.extra});let p={mode:n,speed:r.speed,opts:a};return vt.set(e,p),p}var it=(t,o,e)=>e>o?o:e<t?t:e;var ct=()=>{};var $=t=>t*1e3,H=t=>t/1e3;var Tt=(t,o,e=10)=>{let s=\"\",n=Math.max(Math.round(o/e),2);for(let r=0;r<n;r++)s+=Math.round(t(r/(n-1))*1e4)/1e4+\", \";return`linear(${s.substring(0,s.length-2)})`};function J(t,o=50,e=2e4,s){let n=0,r=t.next(n);for(s?.push(r.value);!r.done&&n<e;)n+=o,r=t.next(n),s?.push(r.value);return n>=e?1/0:n}function Vt(t,o=100,e){let{keyframes:s,velocity:n}=t,r=s&&s[s.length-1]-s[0],a=e({...t,velocity:n&&r?n*o/r:n,keyframes:[0,o]}),p=Math.min(J(a),2e4);return{type:\"keyframes\",ease:f=>a.next(p*f).value/o,duration:H(p)}}var F={stiffness:100,damping:10,mass:1,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05},Ct=t=>t<0?1/Math.max(1+t,F.minDamping):Math.max(1-t,F.minDamping);function It(t,o){if(!(t>1))return 1;let e=Math.sqrt(t*t-1),s=t-e,n=t+e,r=2*e*Math.exp(-o)*(1+o);return Rt(a=>n*Math.exp(-s*a)-s*Math.exp(-n*a)-r,a=>Math.exp(-n*a)-Math.exp(-s*a),o)/o}function mt(t,o){return t*Math.sqrt(1-o*o)}var de=12;function Rt(t,o,e){let s=e;for(let n=1;n<de;n++)s=s-t(s)/o(s);return s}var pt=.001;function ge({duration:t=F.duration,bounce:o=F.bounce}){let e,s;ct(t<=$(F.maxDuration),\"Spring duration must be 10 seconds or less\",\"spring-duration-limit\");let n=Ct(o);t=it(F.minDuration,F.maxDuration,H(t)),n<1?(e=m=>{let g=m*n,d=g*t,c=mt(m,n),h=Math.exp(-d);return pt-g/c*h},s=m=>{let d=m*n*t,c=n*n*m*m*t,h=Math.exp(-d),M=mt(m*m,n);return(-e(m)+pt>0?-1:1)*-c*h/M}):(e=m=>{let g=Math.exp(-m*t),d=m*t+1;return-pt+g*d},s=m=>{let g=Math.exp(-m*t),d=-m*(t*t);return g*d});let r=5/t,a=Rt(e,s,r),p=a*It(n,a*t),f=p*p;return{stiffness:f,damping:n*2*Math.sqrt(f),duration:$(t)}}var ut=(t,o)=>(o?t>=0:t>0)&&t<1/0;function ft(t,o){if(ut(t,o))return t}function Me(t){let o=ft(t.stiffness),e=ft(t.damping,!0),s=ft(t.mass),n={...t,stiffness:o??F.stiffness,damping:e??F.damping,mass:s??F.mass,isResolvedFromDuration:!1,isTimeDefined:(o??e??s)===void 0&&(t.duration!==void 0||t.bounce!==void 0)};if(n.isTimeDefined){if(t.visualDuration){let r=Ct(t.bounce||0),a=2*Math.PI/(t.visualDuration*1.2)*It(r,2*Math.PI/1.2);n.stiffness=a*a,n.damping=2*r*Math.sqrt(n.stiffness)}else Object.assign(n,ge(n)),n.isResolvedFromDuration=!0;(!ut(n.stiffness)||!ut(n.damping,!0))&&(n.stiffness=F.stiffness,n.damping=F.damping)}return n}function U(t=F.visualDuration,o=F.bounce){let e=typeof t!=\"object\"?{visualDuration:t,keyframes:[0,1],bounce:o}:t,s=e.keyframes[0],n=e.keyframes[e.keyframes.length-1],r={done:!1,value:s},{stiffness:a,damping:p,mass:f,duration:m,isResolvedFromDuration:g,isTimeDefined:d}=Me({...e}),c=u=>d?0:-H(u),h=p/(2*Math.sqrt(a*f)),M=H(Math.sqrt(a/f)),x=h*M,i={target:n,delta:n-s,velocity:c(e.velocity||0)||0,restSpeed:0,restDelta:0},S=()=>{let u=Math.abs(i.delta)<5;i.restSpeed=e.restSpeed||(u?F.restSpeed.granular:F.restSpeed.default),i.restDelta=e.restDelta||(u?F.restDelta.granular:F.restDelta.default)};S();let y,b,A;if(h<1){let u=mt(M,h),l={A:0,sinC:0,cosC:0,t:-1,env:0,sin:0,cos:0};A=()=>{l.A=(i.velocity+x*i.delta)/u,l.sinC=x*l.A+i.delta*u,l.cosC=x*i.delta-l.A*u};let D=P=>{P!==l.t&&(l.t=P,l.env=Math.exp(-x*P),l.sin=Math.sin(u*P),l.cos=Math.cos(u*P))};y=P=>(D(P),i.target-l.env*(l.A*l.sin+i.delta*l.cos)),b=P=>(D(P),l.env*(l.sinC*l.sin+l.cosC*l.cos))}else if(h===1){y=l=>i.target-Math.exp(-M*l)*(i.delta+(i.velocity+M*i.delta)*l);let u={C:0};A=()=>{u.C=i.velocity+M*i.delta},b=l=>Math.exp(-M*l)*(M*u.C*l-i.velocity)}else{let u=M*Math.sqrt(h*h-1),l=x-u,D=x+u,P=d?1/0:300/u,E=(O,I)=>Math.exp(I>P?-O*P-x*(I-P):-O*I),T={S:0,F:0};A=()=>{let O=(i.velocity+x*i.delta)/u;T.S=(i.delta+O)/2,T.F=(i.delta-O)/2},y=O=>i.target-T.S*E(l,O)-T.F*E(D,O),b=O=>l*T.S*E(l,O)+D*T.F*E(D,O)}A();let v=g&&m||null,w={calculatedDuration:v,retarget:(u,l)=>{i.target=u[u.length-1],i.delta=i.target-u[0],i.velocity=c(l),e.restSpeed&&e.restDelta||S(),w.calculatedDuration=v,r.done=!1,A()},velocity:u=>$(b(u)),next:u=>{let l=y(u);if(g)r.done=u>=m;else{let D=$(b(u));r.done=Math.abs(D)<=i.restSpeed&&Math.abs(i.target-l)<=i.restDelta}return r.value=r.done?i.target:l,r},toString:()=>{let u=Math.min(J(w),2e4),l=Tt(D=>w.next(u*D).value,u,30);return u+\"ms \"+l},toTransition:()=>{}};return w}U.applyToOptions=t=>{let o=Vt(t,100,U);return t.ease=o.ease,t.duration=$(o.duration),t.type=\"keyframes\",t};var xe={ribbon:{speed:.55},nadia:{speed:.55},sofia:{speed:.55},lattice:{speed:.28},orbit:{speed:.7},globe:{speed:.35},network:{speed:.55},braid:{speed:.65},morph:{speed:.9}};function dt(t){return xe[t].speed}function Ft(t,o,e=0,s=gt){return{idle:.864,working:1,thinking:.55,waiting:0,blocked:0,done:e>=s.doneDuration?.72:.65}[t]*dt(o)}var be=1.6;function Nt(t,o){return t!==\"thinking\"&&t!==\"working\"?1:1-.55*((1-Math.cos(o*Math.PI*2/be))/2)}function X(t){let o=(p,f)=>{let m=t?.getPropertyValue(`--nc-duration-${p}`).trim()??\"\";return m?Number.parseFloat(m)*(m.endsWith(\"ms\")?.001:1):f},e=o(\"wait\",1.6),s=o(\"confirm\",.18),n=o(\"transition\",.24),r=p=>Math.round(e*p*1e3)/1e3,a=U({keyframes:[0,1],duration:n*2e3,bounce:.1});return{wait:e,confirm:s,transition:n,doneDuration:r(3),blockedDuration:r(1.25),gestureAge:p=>p*n*2/e,settle:(p,f=0)=>p<f?0:a.next((p-f)*1e3).value}}var gt=X(),Q=t=>Math.min(1,Math.max(0,t)),ht=t=>{let o=Q(t);return o*o*(3-2*o)};function Bt(t,o,e=gt,s=!1){let n=.82,r=.82,a=0,p=0,f=0;if(t===\"idle\"){let m=Math.sin((s?.6:o)*Math.PI*2/(e.wait*4));n+=m*.01,r+=m*.01,a=-m*.004}else if(!s&&t===\"waiting\"){let m=e.gestureAge(o),g=Math.sin(o*Math.PI*2/(e.wait*3)),d=Math.sin(Q(m/e.confirm)*Math.PI),c=e.settle(m,e.confirm*.55),h=1-d*.018+g*.006;n*=h,r*=h,a=-c*.018,f=-c*4.5*Math.PI/180}else if(!s&&t===\"blocked\"){let m=e.gestureAge(o),g=e.confirm*.85,d=ht(m/g)*(1-e.settle(m,g));n*=1-d*.018,r*=1+d*.012,p=-d*.034,a=d*.014,f=-d*4*Math.PI/180}else if(!s&&t===\"done\"){let m=o*1.3/(e.wait*2.25);if(m<.18){let g=Math.sin(Math.PI*m/.18);n+=.03*g,r-=.04*g,a=.012*g}else if(m<1.3){let g=(m-.18)/1.12;a=-.07*Math.sin(Math.PI*g),n+=.025*Math.sin(Math.PI*g),r+=.035*Math.sin(Math.PI*g),f=Math.sin(g*Math.PI*2)*.07}}return{sx:n,sy:r,x:p,y:a,rotation:f}}function ye(t,o,e,s,n,r,a){let p=a.gestureAge(s),f=n?1:ht((p-a.confirm*.35)/a.confirm),m=n?1:a.settle(p,a.confirm*.35),g=Math.max(7,Math.min(36,e*.26));if(t.save(),t.fillStyle=r,t.strokeStyle=r,t.globalAlpha=f*.95,t.translate(e/2,e/2),o===\"waiting\"){let d=n?0:a.settle(p,a.confirm*.55),c=n?0:Math.sin(s*Math.PI*2/(a.wait*3));t.translate(0,(1-m)*-.12*g),t.rotate(-d*2*Math.PI/180);let h=.94+m*.06;t.scale(h,h),t.scale(g/24,g/24);for(let[M,x]of[14,5].entries()){let i=n?1:a.settle(p,a.confirm*(M===0?.65:.2)),S=M===0?1:-1;t.save(),t.globalAlpha=f*.95*Q(i)*(n?1:.96+c*.04),t.translate(x-9.5+S*(1-i)*1.45*5,(1-i)*-.24*18),t.rotate(S*(1-i)*14*Math.PI/180),t.scale(1,1+(1-i)*.12),t.beginPath(),t.roundRect(-2.5,-9,5,18,1),t.fill(),t.restore()}}else{t.translate(0,(1-m)*-.1*g),t.rotate((1-m)*-12*Math.PI/180);let d=1+(1-m)*.18;t.scale(d,d),t.scale(g/24,g/24),t.lineWidth=Math.max(1.6,24/g),t.lineCap=\"round\",t.beginPath(),t.arc(0,0,10,0,Math.PI*2),t.stroke();let c=n?1:ht((p-a.confirm*.8)/a.confirm);if(t.beginPath(),t.moveTo(-7.071,-7.071),t.lineTo(-7.071+14.141*c,-7.071+14.142*c),t.stroke(),!n&&e>=40){let h=Q((p-a.confirm*.85)/a.transition);t.globalAlpha*=Math.sin(h*Math.PI)*.65,t.lineWidth=1.4*24/g;for(let M of[-1,1]){t.beginPath();let x=M*(14.52+h*5.472),i=M*(10.34+h*1.68);t.moveTo(x-1.612,i-1.612),t.lineTo(x+1.612,i+1.612),t.stroke()}}}t.restore()}function Mt(t,o,e,s,n,r,a,p=1,f=gt,m=r[0]??\"currentColor\"){if(o===\"waiting\"||o===\"blocked\"){a===\"front\"&&ye(t,o,e,s,n,m,f);return}if(!(o!==\"working\"&&o!==\"thinking\"&&o!==\"done\")){if(s*=o===\"done\"?3.1/f.doneDuration:o===\"working\"?7.2/(f.wait*2):3.6/(f.wait*1.5),t.save(),o===\"thinking\"){if(a===\"front\")for(let g=0;g<3;g++){let d=n?.5:(1+Math.cos(s*Math.PI*2/3.6-g*Math.PI*2/3))/2,c=r[g%r.length];c!==void 0&&(t.fillStyle=c),t.globalAlpha=(.65+d*.35)*p,t.beginPath(),t.arc(e*(.5+(g-1)*.09),e*.08,Math.max(1,e*(.022+d*.005)),0,Math.PI*2),t.fill()}}else if(o===\"working\"||!n&&s<3.1){let g=o===\"done\"?3:1;for(let d=0;d<g;d++){let c=o===\"done\"?(s-d*.38)/2.2:0;if(c<0||c>1)continue;let h=o===\"done\"?Math.sin(c*Math.PI):1,M=(n?.8:s*Math.PI*2/7.2)+d*2.1,x=Math.PI*1.4,i=-.38+d*.4,S=e*(.44+c*.03),y=e*(.19+c*.11),b=v=>{let w=Math.cos(v)*S,u=Math.sin(v)*y;return[e/2+w*Math.cos(i)-u*Math.sin(i),e/2+w*Math.sin(i)+u*Math.cos(i)]},A=t.createLinearGradient(e*.1,e*.7,e*.9,e*.3);r.forEach((v,w)=>A.addColorStop(w/Math.max(1,r.length-1),v)),t.strokeStyle=A,t.lineCap=\"butt\";for(let v=0;v<100;v++){let w=v/100,u=M-x+x*w,l=Math.sin(u)>=0;if(l!==(a===\"front\"))continue;let D=Math.sin(Math.PI*(.04+w*.92));t.globalAlpha=h*(l?.92:.55)*(.25+D*.75)*p,t.lineWidth=Math.max(.65,e*.027*D),t.beginPath(),t.moveTo(...b(u)),t.lineTo(...b(u+x/100)),t.stroke()}}}t.restore()}}var ve={orbit:\"working\",globe:\"searching\",lattice:\"solving\",network:\"connecting\",braid:\"weaving\",ribbon:\"composing\",morph:\"shaping\"},Se={plain:{alpha:1,radius:1},\"over-picture\":{alpha:2.3,radius:1.9}},Lt=[\"--nc-identity-azzurro\",\"--nc-identity-verde\",null,\"--nc-identity-rosso\"],Gt=[\"--nc-acqua-700\",\"--nc-viola-700\",\"--nc-warning\",\"--nc-rosso-700\"],xt={waiting:\"--nc-warning-deep\",blocked:\"--nc-error\"},De=[...Gt,...Lt.filter(t=>t!==null),...Object.values(xt),\"--nc-duration-wait\",\"--nc-duration-confirm\",\"--nc-duration-transition\"],Ae=[\"--nc-identity-cobalto\",\"--nc-identity-giallo\",null,\"--nc-identity-arancio\"],we={nadia:Lt,sofia:Ae};function Pe(t,o){let e=1-2*(t+.5)/o,s=Math.sqrt(1-e*e),n=t*Math.PI*(3-Math.sqrt(5));return[s*Math.cos(n),e,s*Math.sin(n)]}function zt(t,o,e){let s=t/2,n=t/2*.78,r=e.spin??1,a=W(o*.1*r,.3,s,s,1),p=_(t,e.rsPow??.6),f=[],m=e.ghostN??150;for(let D=0;D<m;D++){let[P,E,T]=Pe(D,m),[O,I,V]=a(P*n,E*n,T*n);f.push({x:O,y:I,z:V,r:.8*p,white:.78,a:.1+.22*((V/n+1)/2)})}let g=o*.24*r,d=e.faceOn?-.3:.55+.3*Math.sin(o*.18)*r,[c,h,M]=[Math.cos(g),0,Math.sin(g)],[x,i,S]=[-M*Math.sin(d),Math.cos(d),c*Math.sin(d)],[y,b,A]=[h*S-M*i,M*x-c*S,c*i-h*x],v=e.wobMul??1,w=e.faceOn?n/(1+.85*.23*v):n,u=e.segs??88,l=Math.max(1,Math.round((e.lanes??5)*(e.bandMul??1)));for(let D=0;D<l;D++){let P=(D-(l-1)/2)*.075,E=Math.abs(D-(l-1)/2)/Math.max(1,(l-1)/2);for(let T=0;T<u;T++){let O=T/u*2*Math.PI,I=(.16*Math.sin(O*3-o*1.7+D*.22)+.07*Math.sin(O*5+o*1.1))*v,V=e.faceOn?1+I:1,R=e.faceOn?P:P+I,N=c*Math.cos(O)+x*Math.sin(O)+y*R,L=h*Math.cos(O)+i*Math.sin(O)+b*R,B=M*Math.cos(O)+S*Math.sin(O)+A*R,q=Math.sqrt(N*N+L*L+B*B),[K,k,C]=a(N/q*w*V,L/q*w*V,B/q*w*V),z=(C/n+1)/2;f.push({x:K,y:k,z:C,r:((e.rBase??1.1)+(e.rDepth??1.7)*z)*(1-.25*E)*p,white:.08+.1*E,a:.55+.45*z,stripe:Math.min(3,Math.floor(D/l*4))})}}return j(f,[],e.rMin)}function Oe(t,o){for(let e of t.dots)e.x=o-e.x;return t}function Ee(t,o){let{form:e,size:s,seconds:n,color:r,state:a,age:p,reduced:f,breath:m,celebrationColors:g,stripeColors:d}=o,c=Se[o.presence],h=at(ve[e===\"nadia\"||e===\"sofia\"?\"ribbon\":e],s<=32?20:64),M=e===\"nadia\"?zt(s,n,h.opts):e===\"sofia\"?Oe(zt(s,n,h.opts),s):Z[h.mode](s,n,h.opts);t.clearRect(0,0,s,s);let x=a===\"done\"&&p>=o.timing.doneDuration,i=o.motion===\"ambient\"||x?\"idle\":a,S=o.motion===\"ambient\"?0:x?p-o.timing.doneDuration:p,y=Bt(i,S,o.timing,f),b=x?p-o.timing.doneDuration:p,A=i===\"waiting\"||i===\"blocked\"?o.statusColors[i]:r,v=(l,D)=>{let P=(l-s/2)*y.sx,E=(D-s/2)*y.sy;return[s/2+P*Math.cos(y.rotation)-E*Math.sin(y.rotation)+y.x*s,s/2+P*Math.sin(y.rotation)+E*Math.cos(y.rotation)+y.y*s]},w=m;o.motion===\"status\"&&Mt(t,i,s,b,f,g,\"back\",m,o.timing,A),t.fillStyle=r,t.strokeStyle=r;for(let l of M.lines)t.globalAlpha=Math.min(1,Math.max(0,(1-l.white)*(l.a??1)*w*c.alpha)),t.lineWidth=l.w*c.radius,t.beginPath(),t.moveTo(...v(l.x1,l.y1)),t.lineTo(...v(l.x2,l.y2)),t.stroke();let u=M.dots;for(let l of u)t.fillStyle=l.stripe===void 0?r:d[l.stripe]??r,t.globalAlpha=Math.min(1,Math.max(0,(1-l.white)*(l.a??1)*w*c.alpha)),t.beginPath(),t.arc(...v(l.x,l.y),l.r*c.radius,0,Math.PI*2),t.fill();t.globalAlpha=1,o.motion===\"status\"&&Mt(t,i,s,b,f,g,\"front\",m,o.timing,A)}function jt(t,o){let{form:e,presence:s=\"plain\"}=o,n=t.getContext(\"2d\");if(!n)return{destroy(){},setPaused(k){},setState(k){}};let r=window.matchMedia(\"(prefers-reduced-motion: reduce)\"),a=o.paused??!1,p=!0,f=!1,m=0,g=.6,d=0,c=0,h=o.state??\"idle\",M=o.motion??\"status\",x=null,i=0,S=1,y=o.size,b=getComputedStyle(t).color,A=[b],v=[b],w=\"\",u=X(),l={waiting:b,blocked:b};function D(){let k=t.getBoundingClientRect(),C=Math.min(k.width,k.height);return C>0?C:o.size}function P(){!n||f||!t.isConnected||(n.setTransform(S,0,0,S,0,0),Ee(n,{form:e,size:y,seconds:g,color:b,state:h,age:d,reduced:r.matches,breath:r.matches?Nt(h,c):1,presence:s,motion:M,celebrationColors:A,stripeColors:v,statusColors:l,timing:u}))}function E(){return f||!t.isConnected||!p||document.hidden||a?!1:r.matches?M===\"status\"&&(h===\"thinking\"||h===\"working\"):M===\"ambient\"?!0:!(h===\"blocked\"&&d>=u.blockedDuration)}function T(k){if(m=0,!!E()){if(x!==null){let C=Math.min((k-x)/1e3,.1);r.matches?c+=C:(g+=C*(M===\"ambient\"?dt(e):Ft(h,e,d,u)),M===\"status\"&&(d+=C))}x=k,(k-i>=1e3/30||!E())&&(P(),i=k),E()&&(m=requestAnimationFrame(T))}}function O(){cancelAnimationFrame(m),m=0,x=null,P(),E()&&(m=requestAnimationFrame(T))}function I(k){let C=document.createElement(\"span\");C.hidden=!0,C.style.color=k,(t.parentElement??document.body).append(C);let z=getComputedStyle(C).color;return C.remove(),z||b}function V(k,C){return[C,window.devicePixelRatio||1,k.color,...De.map(z=>k.getPropertyValue(z))].join(\"|\")}function R(){V(getComputedStyle(t),D())!==w&&N()}function N(){if(f||!t.isConnected)return;y=D();let k=Math.max(1,Math.round(y*Math.min(window.devicePixelRatio||1,2)));t.width=k,t.height=k,S=k/y;let C=getComputedStyle(t);w=V(C,y),b=C.color,u=X(C),l={waiting:I(C.getPropertyValue(xt.waiting).trim()||b),blocked:I(C.getPropertyValue(xt.blocked).trim()||b)},A=Gt.map(z=>I(`color-mix(in oklch, ${C.getPropertyValue(z).trim()||b} 75%, white)`)),v=(we[e]??[]).map(z=>z&&C.getPropertyValue(z).trim()||b),O()}let L=new IntersectionObserver(([k])=>{p=k?.isIntersecting??!1,O()});L.observe(t);let B=new MutationObserver(R);for(let k=t;k;k=k.parentElement)B.observe(k,{attributes:!0,attributeFilter:[\"class\",\"style\",\"data-theme\"]});let q=new ResizeObserver(()=>{Math.abs(D()-y)>=.5&&N()});q.observe(t);function K(k){k.propertyName===\"color\"&&k.target instanceof Node&&k.target.contains(t)&&R()}return document.addEventListener(\"transitionend\",K,!0),r.addEventListener(\"change\",O),document.addEventListener(\"visibilitychange\",O),window.addEventListener(\"resize\",R),N(),{setState(k){h=k,d=0,c=0,O()},setPaused(k){a=k,O()},destroy(){f=!0,cancelAnimationFrame(m),L.disconnect(),B.disconnect(),q.disconnect(),document.removeEventListener(\"transitionend\",K,!0),r.removeEventListener(\"change\",O),document.removeEventListener(\"visibilitychange\",O),window.removeEventListener(\"resize\",R)}}}for(let t of document.querySelectorAll(\"canvas[data-agent-orb]\"))jt(t,{form:t.dataset.agentOrb,size:Number(t.dataset.size),state:t.dataset.state??\"idle\"});})();\n";
2
2
  export const designTokensCss = "@layer tokens, theme;\n\n\n\n\n\n\n\n\n\n@layer tokens {\n :root {\n --nc-action: oklch(0.5005 0.2804 266.17);\n --nc-action-foreground: oklch(1.0000 0.0000 0.00);\n --nc-action-hover: oklch(0.4602 0.2797 266.14);\n --nc-action-active: oklch(0.4202 0.2522 266.14);\n --nc-ink: oklch(0.1776 0.0000 0.00);\n --nc-body: oklch(0.5103 0.0000 0.00);\n --nc-muted: oklch(0.5278 0.0000 0.00);\n --nc-canvas: oklch(1.0000 0.0000 0.00);\n --nc-canvas-soft: oklch(0.9851 0.0000 0.00);\n --nc-canvas-soft-2: oklch(0.9702 0.0000 0.00);\n --nc-material-workspace: oklch(0.9851 0.0000 0.00);\n --nc-material-solid: oklch(1.0000 0.0000 0.00);\n --nc-material-resting: oklch(1.0000 0.0000 0.00);\n --nc-material-raised: oklch(1.0000 0.0000 0.00);\n --nc-material-floating: oklch(1.0000 0.0000 0.00);\n --nc-material-modal: oklch(1.0000 0.0000 0.00);\n --nc-line: oklch(0.9219 0.0000 0.00);\n --nc-input: oklch(0.5624 0.0000 0.00);\n --nc-focus-ring: oklch(0.1776 0.0000 0.00);\n --nc-scrim: oklch(0.9612 0.0000 0.00);\n --nc-link: oklch(0.5005 0.2804 266.17);\n --nc-link-deep: oklch(0.4202 0.2522 266.14);\n --nc-link-bg-soft: oklch(0.9656 0.0171 248.01);\n --nc-info: oklch(0.5005 0.2804 266.17);\n --nc-info-soft: oklch(0.9457 0.0259 276.40);\n --nc-info-deep: oklch(0.3197 0.1758 266.79);\n --nc-success: oklch(0.6415 0.1644 153.23);\n --nc-success-soft: oklch(0.9170 0.0519 161.77);\n --nc-success-deep: oklch(0.3852 0.0953 154.99);\n --nc-error: oklch(0.5688 0.1995 26.59);\n --nc-error-soft: oklch(0.9522 0.0207 17.52);\n --nc-error-deep: oklch(0.4235 0.1525 27.08);\n --nc-warning: oklch(0.8466 0.1678 84.63);\n --nc-warning-soft: oklch(0.9649 0.0461 90.87);\n --nc-warning-deep: oklch(0.4834 0.0995 82.44);\n --nc-navigation-selection-bg: oklch(0.9461 0.0000 0.00);\n --nc-navigation-selection-fg: oklch(0.1776 0.0000 0.00);\n --nc-navigation-selection-hover: oklch(0.9219 0.0000 0.00);\n --nc-state-ready: oklch(0.5278 0.0000 0.00);\n --nc-state-running: oklch(0.5005 0.2804 266.17);\n --nc-state-review: oklch(0.8466 0.1678 84.63);\n --nc-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-identity-verde: oklch(0.6415 0.1644 153.23);\n --nc-identity-rosso: oklch(0.5688 0.1995 26.59);\n --nc-identity-arancio: oklch(0.6824 0.2108 37.70);\n --nc-identity-giallo: oklch(0.8466 0.1678 84.63);\n --nc-identity-cobalto: oklch(0.5005 0.2804 266.17);\n --nc-identity-azzurro: oklch(0.5618 0.2019 258.24);\n --nc-identity-ink: oklch(0.0000 0.0000 0.00);\n --nc-identity-white: oklch(1.0000 0.0000 0.00);\n --nc-logo-dot: oklch(0.5005 0.2804 266.17);\n --nc-chart-1: oklch(0.5005 0.2804 266.17);\n --nc-chart-2: oklch(0.6398 0.2044 356.46);\n --nc-chart-3: oklch(0.5015 0.1883 294.99);\n --nc-chart-4: oklch(0.6824 0.2108 37.70);\n --nc-chart-5: oklch(0.6161 0.1062 208.85);\n --nc-chart-6: oklch(0.5688 0.1995 26.59);\n --nc-chart-7: oklch(0.7691 0.1577 84.69);\n --nc-chart-8: oklch(0.6415 0.1644 153.23);\n --nc-chart-9: oklch(0.7191 0.1452 266.33);\n --nc-chart-10: oklch(0.8309 0.1048 356.57);\n --nc-cobalto-100: oklch(0.9754 0.0115 264.51);\n --nc-cobalto-200: oklch(0.9543 0.0215 265.76);\n --nc-cobalto-300: oklch(0.9297 0.0334 265.23);\n --nc-cobalto-400: oklch(0.8944 0.0509 267.00);\n --nc-cobalto-500: oklch(0.8308 0.0837 265.90);\n --nc-cobalto-600: oklch(0.7191 0.1452 266.33);\n --nc-cobalto-700: oklch(0.5005 0.2804 266.17);\n --nc-cobalto-800: oklch(0.4602 0.2797 266.14);\n --nc-cobalto-900: oklch(0.4202 0.2522 266.14);\n --nc-cobalto-1000: oklch(0.2811 0.1684 266.17);\n --nc-rosso-100: oklch(0.9752 0.0122 29.87);\n --nc-rosso-200: oklch(0.9552 0.0222 27.81);\n --nc-rosso-300: oklch(0.9290 0.0360 26.28);\n --nc-rosso-400: oklch(0.8944 0.0552 26.52);\n --nc-rosso-500: oklch(0.8304 0.0942 26.48);\n --nc-rosso-600: oklch(0.7201 0.1742 26.79);\n --nc-rosso-700: oklch(0.5688 0.1995 26.59);\n --nc-rosso-800: oklch(0.5297 0.1996 26.67);\n --nc-rosso-900: oklch(0.4882 0.1797 26.59);\n --nc-rosso-1000: oklch(0.2805 0.1143 26.81);\n --nc-arancio-100: oklch(0.9749 0.0125 35.73);\n --nc-arancio-200: oklch(0.9544 0.0233 37.38);\n --nc-arancio-300: oklch(0.9298 0.0366 36.77);\n --nc-arancio-400: oklch(0.8945 0.0567 37.21);\n --nc-arancio-500: oklch(0.8292 0.0974 37.12);\n --nc-arancio-600: oklch(0.7428 0.1602 37.76);\n --nc-arancio-700: oklch(0.6824 0.2108 37.70);\n --nc-arancio-800: oklch(0.6419 0.2102 37.75);\n --nc-arancio-900: oklch(0.4993 0.1647 37.64);\n --nc-arancio-1000: oklch(0.2801 0.0916 38.02);\n --nc-giallo-100: oklch(0.9860 0.0154 86.42);\n --nc-giallo-200: oklch(0.9699 0.0272 83.54);\n --nc-giallo-300: oklch(0.9555 0.0420 85.96);\n --nc-giallo-400: oklch(0.9298 0.0673 84.45);\n --nc-giallo-500: oklch(0.9004 0.1074 84.93);\n --nc-giallo-600: oklch(0.8696 0.1403 84.42);\n --nc-giallo-700: oklch(0.8466 0.1678 84.63);\n --nc-giallo-800: oklch(0.7691 0.1577 84.69);\n --nc-giallo-900: oklch(0.5305 0.1090 83.33);\n --nc-giallo-1000: oklch(0.3186 0.0654 84.14);\n --nc-verde-100: oklch(0.9747 0.0157 154.48);\n --nc-verde-200: oklch(0.9560 0.0265 152.38);\n --nc-verde-300: oklch(0.9290 0.0407 153.11);\n --nc-verde-400: oklch(0.8955 0.0664 152.93);\n --nc-verde-500: oklch(0.8310 0.1403 153.27);\n --nc-verde-600: oklch(0.7191 0.1645 153.16);\n --nc-verde-700: oklch(0.6415 0.1644 153.23);\n --nc-verde-800: oklch(0.6017 0.1542 153.23);\n --nc-verde-900: oklch(0.4992 0.1279 153.23);\n --nc-verde-1000: oklch(0.2815 0.0723 153.13);\n --nc-acqua-100: oklch(0.9752 0.0109 211.04);\n --nc-acqua-200: oklch(0.9559 0.0171 205.84);\n --nc-acqua-300: oklch(0.9297 0.0259 208.75);\n --nc-acqua-400: oklch(0.8954 0.0424 207.56);\n --nc-acqua-500: oklch(0.8304 0.0902 209.06);\n --nc-acqua-600: oklch(0.7205 0.1064 208.54);\n --nc-acqua-700: oklch(0.6161 0.1062 208.85);\n --nc-acqua-800: oklch(0.5765 0.0992 208.28);\n --nc-acqua-900: oklch(0.4990 0.0860 208.78);\n --nc-acqua-1000: oklch(0.2797 0.0484 210.29);\n --nc-viola-100: oklch(0.9745 0.0134 295.33);\n --nc-viola-200: oklch(0.9545 0.0243 296.12);\n --nc-viola-300: oklch(0.9290 0.0381 295.47);\n --nc-viola-400: oklch(0.8954 0.0563 294.18);\n --nc-viola-500: oklch(0.8289 0.0954 295.03);\n --nc-viola-600: oklch(0.7204 0.1631 294.91);\n --nc-viola-700: oklch(0.5015 0.1883 294.99);\n --nc-viola-800: oklch(0.4620 0.1886 294.84);\n --nc-viola-900: oklch(0.4227 0.1694 295.05);\n --nc-viola-1000: oklch(0.2796 0.1131 295.14);\n --nc-rosa-100: oklch(0.9746 0.0139 355.00);\n --nc-rosa-200: oklch(0.9555 0.0241 358.28);\n --nc-rosa-300: oklch(0.9307 0.0386 357.63);\n --nc-rosa-400: oklch(0.8944 0.0614 356.49);\n --nc-rosa-500: oklch(0.8309 0.1048 356.57);\n --nc-rosa-600: oklch(0.7193 0.1969 356.59);\n --nc-rosa-700: oklch(0.6398 0.2044 356.46);\n --nc-rosa-800: oklch(0.6001 0.2050 356.50);\n --nc-rosa-900: oklch(0.5009 0.1842 356.43);\n --nc-rosa-1000: oklch(0.2808 0.1147 356.80);\n --nc-dark-canvas: oklch(0.0000 0.0000 0.00);\n --nc-dark-canvas-soft: oklch(0.1776 0.0000 0.00);\n --nc-dark-canvas-soft-2: oklch(0.2178 0.0000 0.00);\n --nc-dark-material-workspace: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-solid: oklch(0.0000 0.0000 0.00);\n --nc-dark-material-resting: oklch(0.1448 0.0000 0.00);\n --nc-dark-material-raised: oklch(0.1684 0.0000 0.00);\n --nc-dark-material-floating: oklch(0.1684 0.0000 0.00);\n --nc-dark-material-modal: oklch(0.1684 0.0000 0.00);\n --nc-card-graphite: oklch(0.1957 0.0000 0.00);\n --nc-dark-ink: oklch(0.9461 0.0000 0.00);\n --nc-dark-body: oklch(0.7090 0.0000 0.00);\n --nc-dark-muted: oklch(0.6993 0.0000 0.00);\n --nc-dark-line: oklch(0.2686 0.0000 0.00);\n --nc-dark-input: oklch(0.5590 0.0000 0.00);\n --nc-dark-on-primary: oklch(0.1448 0.0000 0.00);\n --nc-dark-action: oklch(0.5005 0.2804 266.17);\n --nc-dark-action-foreground: oklch(1.0000 0.0000 0.00);\n --nc-dark-action-hover: oklch(0.4602 0.2797 266.14);\n --nc-dark-action-active: oklch(0.4202 0.2522 266.14);\n --nc-dark-link: oklch(0.7993 0.1005 266.67);\n --nc-dark-link-deep: oklch(0.8944 0.0509 267.00);\n --nc-dark-link-bg-soft: oklch(0.2518 0.0572 257.41);\n --nc-dark-focus-ring: oklch(0.9461 0.0000 0.00);\n --nc-dark-scrim: oklch(0.0000 0.0000 0.00);\n --nc-dark-error: oklch(0.7955 0.0980 21.02);\n --nc-dark-error-soft: oklch(0.2296 0.0728 26.06);\n --nc-dark-error-deep: oklch(0.8856 0.0534 19.64);\n --nc-dark-warning: oklch(0.8939 0.1387 90.47);\n --nc-dark-warning-soft: oklch(0.3135 0.0643 85.04);\n --nc-dark-warning-deep: oklch(0.9320 0.0896 90.86);\n --nc-dark-info: oklch(0.7067 0.1528 272.08);\n --nc-dark-info-soft: oklch(0.2118 0.1033 268.28);\n --nc-dark-info-deep: oklch(0.8222 0.0888 274.44);\n --nc-dark-success: oklch(0.7019 0.1753 153.20);\n --nc-dark-success-soft: oklch(0.2893 0.0697 156.32);\n --nc-dark-success-deep: oklch(0.8524 0.0996 159.83);\n --nc-dark-state-ready: oklch(0.5624 0.0000 0.00);\n --nc-dark-state-running: oklch(0.5005 0.2804 266.17);\n --nc-dark-state-review: oklch(0.8466 0.1678 84.63);\n --nc-dark-state-blocked: oklch(0.5688 0.1995 26.59);\n --nc-dark-state-complete: oklch(0.6415 0.1644 153.23);\n --nc-dark-logo-dot: oklch(0.5923 0.2215 269.61);\n --nc-dark-navigation-selection-bg: oklch(0.2393 0.0000 0.00);\n --nc-dark-navigation-selection-fg: oklch(0.9461 0.0000 0.00);\n --nc-dark-navigation-selection-hover: oklch(0.2686 0.0000 0.00);\n --nc-dark-chart-1: oklch(0.6007 0.2160 266.02);\n --nc-dark-chart-2: oklch(0.6611 0.1941 356.61);\n --nc-dark-chart-3: oklch(0.6004 0.1789 294.79);\n --nc-dark-chart-4: oklch(0.6612 0.2003 37.74);\n --nc-dark-chart-5: oklch(0.6568 0.1009 208.69);\n --nc-dark-chart-6: oklch(0.6084 0.1887 26.65);\n --nc-dark-chart-7: oklch(0.8466 0.1678 84.63);\n --nc-dark-chart-8: oklch(0.6608 0.1568 153.03);\n --nc-dark-chart-9: oklch(0.7993 0.1005 266.67);\n --nc-dark-chart-10: oklch(0.8005 0.1279 356.32);\n --nc-dark-cobalto-100: oklch(0.1915 0.0982 266.32);\n --nc-dark-cobalto-200: oklch(0.2197 0.1184 266.25);\n --nc-dark-cobalto-300: oklch(0.2604 0.1398 265.97);\n --nc-dark-cobalto-400: oklch(0.2997 0.1624 266.24);\n --nc-dark-cobalto-500: oklch(0.3702 0.1966 266.08);\n --nc-dark-cobalto-600: oklch(0.6007 0.2160 266.02);\n --nc-dark-cobalto-700: oklch(0.5005 0.2804 266.17);\n --nc-dark-cobalto-800: oklch(0.4602 0.2797 266.14);\n --nc-dark-cobalto-900: oklch(0.7993 0.1005 266.67);\n --nc-dark-cobalto-1000: oklch(0.9604 0.0186 265.98);\n --nc-dark-rosso-100: oklch(0.1907 0.0689 26.80);\n --nc-dark-rosso-200: oklch(0.2215 0.0837 26.41);\n --nc-dark-rosso-300: oklch(0.2596 0.0994 26.37);\n --nc-dark-rosso-400: oklch(0.3014 0.1159 26.97);\n --nc-dark-rosso-500: oklch(0.3705 0.1397 26.54);\n --nc-dark-rosso-600: oklch(0.6084 0.1887 26.65);\n --nc-dark-rosso-700: oklch(0.5688 0.1995 26.59);\n --nc-dark-rosso-800: oklch(0.5297 0.1996 26.67);\n --nc-dark-rosso-900: oklch(0.7992 0.1149 26.43);\n --nc-dark-rosso-1000: oklch(0.9598 0.0198 25.17);\n --nc-dark-arancio-100: oklch(0.1909 0.0632 37.47);\n --nc-dark-arancio-200: oklch(0.2201 0.0732 37.26);\n --nc-dark-arancio-300: oklch(0.2598 0.0852 37.90);\n --nc-dark-arancio-400: oklch(0.2988 0.0989 37.50);\n --nc-dark-arancio-500: oklch(0.3706 0.1219 37.77);\n --nc-dark-arancio-600: oklch(0.6612 0.2003 37.74);\n --nc-dark-arancio-700: oklch(0.6824 0.2108 37.70);\n --nc-dark-arancio-800: oklch(0.6419 0.2102 37.75);\n --nc-dark-arancio-900: oklch(0.7993 0.1180 37.52);\n --nc-dark-arancio-1000: oklch(0.9590 0.0208 36.03);\n --nc-dark-giallo-100: oklch(0.1903 0.0391 84.07);\n --nc-dark-giallo-200: oklch(0.2185 0.0449 83.81);\n --nc-dark-giallo-300: oklch(0.2592 0.0532 83.54);\n --nc-dark-giallo-400: oklch(0.3008 0.0616 85.18);\n --nc-dark-giallo-500: oklch(0.3705 0.0759 85.25);\n --nc-dark-giallo-600: oklch(0.6598 0.1353 84.83);\n --nc-dark-giallo-700: oklch(0.8466 0.1678 84.63);\n --nc-dark-giallo-800: oklch(0.8064 0.1654 84.43);\n --nc-dark-giallo-900: oklch(0.8007 0.1595 84.74);\n --nc-dark-giallo-1000: oklch(0.9604 0.0256 84.59);\n --nc-dark-verde-100: oklch(0.1910 0.0488 153.39);\n --nc-dark-verde-200: oklch(0.2208 0.0571 152.80);\n --nc-dark-verde-300: oklch(0.2606 0.0664 153.49);\n --nc-dark-verde-400: oklch(0.2987 0.0765 153.24);\n --nc-dark-verde-500: oklch(0.3685 0.0944 153.24);\n --nc-dark-verde-600: oklch(0.6608 0.1568 153.03);\n --nc-dark-verde-700: oklch(0.6415 0.1644 153.23);\n --nc-dark-verde-800: oklch(0.6017 0.1542 153.23);\n --nc-dark-verde-900: oklch(0.7994 0.1555 153.29);\n --nc-dark-verde-1000: oklch(0.9600 0.0248 152.88);\n --nc-dark-acqua-100: oklch(0.1914 0.0330 209.05);\n --nc-dark-acqua-200: oklch(0.2192 0.0379 209.81);\n --nc-dark-acqua-300: oklch(0.2610 0.0450 209.30);\n --nc-dark-acqua-400: oklch(0.3011 0.0519 208.95);\n --nc-dark-acqua-500: oklch(0.3711 0.0639 208.82);\n --nc-dark-acqua-600: oklch(0.6568 0.1009 208.69);\n --nc-dark-acqua-700: oklch(0.6161 0.1062 208.85);\n --nc-dark-acqua-800: oklch(0.5765 0.0992 208.28);\n --nc-dark-acqua-900: oklch(0.8004 0.1007 208.37);\n --nc-dark-acqua-1000: oklch(0.9596 0.0161 206.44);\n --nc-dark-viola-100: oklch(0.1897 0.0654 295.79);\n --nc-dark-viola-200: oklch(0.2192 0.0805 294.49);\n --nc-dark-viola-300: oklch(0.2605 0.0949 295.18);\n --nc-dark-viola-400: oklch(0.2990 0.1087 294.76);\n --nc-dark-viola-500: oklch(0.3702 0.1310 295.14);\n --nc-dark-viola-600: oklch(0.6004 0.1789 294.79);\n --nc-dark-viola-700: oklch(0.5015 0.1883 294.99);\n --nc-dark-viola-800: oklch(0.4620 0.1886 294.84);\n --nc-dark-viola-900: oklch(0.8000 0.1131 295.20);\n --nc-dark-viola-1000: oklch(0.9591 0.0215 294.60);\n --nc-dark-rosa-100: oklch(0.1902 0.0716 355.67);\n --nc-dark-rosa-200: oklch(0.2198 0.0850 357.06);\n --nc-dark-rosa-300: oklch(0.2591 0.1026 356.37);\n --nc-dark-rosa-400: oklch(0.3000 0.1188 356.62);\n --nc-dark-rosa-500: oklch(0.3695 0.1426 356.71);\n --nc-dark-rosa-600: oklch(0.6611 0.1941 356.61);\n --nc-dark-rosa-700: oklch(0.6398 0.2044 356.46);\n --nc-dark-rosa-800: oklch(0.6001 0.2050 356.50);\n --nc-dark-rosa-900: oklch(0.8005 0.1279 356.32);\n --nc-dark-rosa-1000: oklch(0.9599 0.0220 356.32);\n --nc-category-teal-soft: oklch(0.9585 0.0244 187.32);\n --nc-category-teal-deep: oklch(0.4600 0.0788 185.34);\n --nc-dark-category-teal-soft: oklch(0.2627 0.0410 187.13);\n --nc-dark-category-teal-deep: oklch(0.8398 0.1008 186.70);\n --nc-category-purple-soft: oklch(0.9464 0.0327 307.17);\n --nc-category-purple-deep: oklch(0.4541 0.1958 308.26);\n --nc-dark-category-purple-soft: oklch(0.2479 0.0790 306.78);\n --nc-dark-category-purple-deep: oklch(0.7911 0.1271 310.92);\n --nc-category-pink-soft: oklch(0.9476 0.0263 347.12);\n --nc-category-pink-deep: oklch(0.4863 0.1711 355.09);\n --nc-dark-category-pink-soft: oklch(0.2550 0.0598 353.51);\n --nc-dark-category-pink-deep: oklch(0.8108 0.1129 347.21);\n --nc-xxs: 4px;\n --nc-xs: 8px;\n --nc-sm: 12px;\n --nc-md: 16px;\n --nc-lg: 24px;\n --nc-xl: 32px;\n --nc-2xl: 40px;\n --nc-3xl: 48px;\n --nc-4xl: 64px;\n --nc-5xl: 96px;\n --nc-6xl: 128px;\n --nc-guide: 1px;\n --nc-icon-stroke: 1.5px;\n --nc-icon-stroke-sm: 1.25px;\n --nc-focus-outline-width: 2px;\n --nc-focus-outline-offset: 2px;\n --nc-control-height: 36px;\n --nc-control-height-sm: 32px;\n --nc-control-height-lg: 40px;\n --nc-control-height-xs: 24px;\n --nc-control-padding-inline: 12px;\n --nc-button-padding-inline-sm: 6px;\n --nc-button-padding-inline: 10px;\n --nc-button-padding-inline-lg: 14px;\n --nc-card-padding: 20px;\n --nc-touch-target: 44px;\n --nc-rounded-none: 0px;\n --nc-rounded-xs: 2px;\n --nc-rounded-xs-plus: 4px;\n --nc-rounded-sm: 6px;\n --nc-rounded-md: 8px;\n --nc-rounded-lg: 12px;\n --nc-rounded-xl: 16px;\n --nc-rounded-2xl: 20px;\n --nc-rounded-3xl: 24px;\n --nc-rounded-full: 9999px;\n --nc-type-display-xl-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-xl-font-size: 72px;\n --nc-type-display-xl-font-weight: 600;\n --nc-type-display-xl-line-height: 72px;\n --nc-type-display-xl-letter-spacing: -4.32px;\n --nc-type-display-wide-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-wide-font-size: 64px;\n --nc-type-display-wide-font-weight: 600;\n --nc-type-display-wide-line-height: 64px;\n --nc-type-display-wide-letter-spacing: -3.84px;\n --nc-type-display-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-lg-font-size: 56px;\n --nc-type-display-lg-font-weight: 600;\n --nc-type-display-lg-line-height: 56px;\n --nc-type-display-lg-letter-spacing: -3.36px;\n --nc-type-display-section-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-section-font-size: 48px;\n --nc-type-display-section-font-weight: 600;\n --nc-type-display-section-line-height: 56px;\n --nc-type-display-section-letter-spacing: -2.88px;\n --nc-type-display-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-display-md-font-size: 40px;\n --nc-type-display-md-font-weight: 600;\n --nc-type-display-md-line-height: 48px;\n --nc-type-display-md-letter-spacing: -2.4px;\n --nc-type-heading-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-lg-font-size: 32px;\n --nc-type-heading-lg-font-weight: 600;\n --nc-type-heading-lg-line-height: 40px;\n --nc-type-heading-lg-letter-spacing: -1.28px;\n --nc-type-heading-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-md-font-size: 24px;\n --nc-type-heading-md-font-weight: 600;\n --nc-type-heading-md-line-height: 32px;\n --nc-type-heading-md-letter-spacing: -0.96px;\n --nc-type-heading-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-sm-font-size: 20px;\n --nc-type-heading-sm-font-weight: 600;\n --nc-type-heading-sm-line-height: 26px;\n --nc-type-heading-sm-letter-spacing: -0.4px;\n --nc-type-heading-xs-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-xs-font-size: 16px;\n --nc-type-heading-xs-font-weight: 600;\n --nc-type-heading-xs-line-height: 24px;\n --nc-type-heading-xs-letter-spacing: -0.32px;\n --nc-type-heading-compact-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-heading-compact-font-size: 14px;\n --nc-type-heading-compact-font-weight: 600;\n --nc-type-heading-compact-line-height: 20px;\n --nc-type-heading-compact-letter-spacing: -0.28px;\n --nc-type-button-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-button-lg-font-size: 16px;\n --nc-type-button-lg-font-weight: 500;\n --nc-type-button-lg-line-height: 24px;\n --nc-type-button-lg-letter-spacing: 0px;\n --nc-type-button-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-button-font-size: 14px;\n --nc-type-button-font-weight: 500;\n --nc-type-button-line-height: 21px;\n --nc-type-button-letter-spacing: 0px;\n --nc-type-button-xs-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-button-xs-font-size: 12px;\n --nc-type-button-xs-font-weight: 500;\n --nc-type-button-xs-line-height: 16px;\n --nc-type-button-xs-letter-spacing: 0px;\n --nc-type-label-display-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-label-display-font-size: 20px;\n --nc-type-label-display-font-weight: 400;\n --nc-type-label-display-line-height: 32px;\n --nc-type-label-display-letter-spacing: 0px;\n --nc-type-label-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-label-lg-font-size: 18px;\n --nc-type-label-lg-font-weight: 400;\n --nc-type-label-lg-line-height: 20px;\n --nc-type-label-lg-letter-spacing: 0px;\n --nc-type-label-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-label-md-font-size: 16px;\n --nc-type-label-md-font-weight: 400;\n --nc-type-label-md-line-height: 20px;\n --nc-type-label-md-letter-spacing: 0px;\n --nc-type-label-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-label-font-size: 14px;\n --nc-type-label-font-weight: 400;\n --nc-type-label-line-height: 20px;\n --nc-type-label-letter-spacing: 0px;\n --nc-type-label-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-label-sm-font-size: 13px;\n --nc-type-label-sm-font-weight: 400;\n --nc-type-label-sm-line-height: 16px;\n --nc-type-label-sm-letter-spacing: 0px;\n --nc-type-caption-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-caption-font-size: 12px;\n --nc-type-caption-font-weight: 400;\n --nc-type-caption-line-height: 16px;\n --nc-type-caption-letter-spacing: 0px;\n --nc-type-label-mono-lg-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-label-mono-lg-font-size: 14px;\n --nc-type-label-mono-lg-font-weight: 400;\n --nc-type-label-mono-lg-line-height: 20px;\n --nc-type-label-mono-lg-letter-spacing: 0px;\n --nc-type-label-mono-md-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-label-mono-md-font-size: 13px;\n --nc-type-label-mono-md-font-weight: 400;\n --nc-type-label-mono-md-line-height: 20px;\n --nc-type-label-mono-md-letter-spacing: 0px;\n --nc-type-label-mono-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-label-mono-font-size: 12px;\n --nc-type-label-mono-font-weight: 400;\n --nc-type-label-mono-line-height: 16px;\n --nc-type-label-mono-letter-spacing: 0px;\n --nc-type-body-display-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-display-font-size: 24px;\n --nc-type-body-display-font-weight: 400;\n --nc-type-body-display-line-height: 36px;\n --nc-type-body-display-letter-spacing: 0px;\n --nc-type-body-lead-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-lead-font-size: 20px;\n --nc-type-body-lead-font-weight: 400;\n --nc-type-body-lead-line-height: 36px;\n --nc-type-body-lead-letter-spacing: 0px;\n --nc-type-body-lg-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-lg-font-size: 18px;\n --nc-type-body-lg-font-weight: 400;\n --nc-type-body-lg-line-height: 28px;\n --nc-type-body-lg-letter-spacing: 0px;\n --nc-type-body-md-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-md-font-size: 16px;\n --nc-type-body-md-font-weight: 400;\n --nc-type-body-md-line-height: 24px;\n --nc-type-body-md-letter-spacing: 0px;\n --nc-type-body-sm-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-sm-font-size: 14px;\n --nc-type-body-sm-font-weight: 400;\n --nc-type-body-sm-line-height: 20px;\n --nc-type-body-sm-letter-spacing: 0px;\n --nc-type-body-compact-font-family:\n Geist,\n Inter,\n system-ui,\n -apple-system,\n sans-serif;\n --nc-type-body-compact-font-size: 13px;\n --nc-type-body-compact-font-weight: 400;\n --nc-type-body-compact-line-height: 18px;\n --nc-type-body-compact-letter-spacing: 0px;\n --nc-type-code-font-family:\n Geist Mono,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n monospace;\n --nc-type-code-font-size: 13px;\n --nc-type-code-font-weight: 400;\n --nc-type-code-line-height: 18px;\n --nc-type-code-letter-spacing: 0px;\n --nc-material-scrim-opacity: 80%;\n --nc-material-dark-scrim-opacity: 60%;\n --nc-material-glass-opacity: 55%;\n --nc-material-glass-saturation: 180%;\n --nc-material-glass-blur: 20px;\n --nc-elevation-resting: 0px 0px 0px 1px rgb(0% 0% 0% / 0.08), 0px 2px 2px 0px rgb(0% 0% 0% / 0.04);\n --nc-elevation-raised:\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08),\n 0px 2px 2px 0px rgb(0% 0% 0% / 0.04),\n 0px 8px 16px -4px rgb(0% 0% 0% / 0.08);\n --nc-elevation-floating:\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08),\n 0px 1px 1px 0px rgb(0% 0% 0% / 0.02),\n 0px 4px 8px -4px rgb(0% 0% 0% / 0.06),\n 0px 16px 32px -8px rgb(0% 0% 0% / 0.1);\n --nc-elevation-modal:\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08),\n 0px 8px 24px -12px rgb(0% 0% 0% / 0.12),\n 0px 32px 72px -12px rgb(0% 0% 0% / 0.12);\n --nc-elevation-glass:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.75),\n inset 0px 0px 0px 1px rgb(100% 100% 100% / 0.35),\n 0px 0px 0px 1px rgb(0% 0% 0% / 0.08),\n 0px 4px 8px -4px rgb(0% 0% 0% / 0.06),\n 0px 16px 32px -8px rgb(0% 0% 0% / 0.08);\n --nc-duration-control: 100ms;\n --nc-duration-close: 140ms;\n --nc-duration-confirm: 180ms;\n --nc-duration-open: 220ms;\n --nc-duration-msg-in: 240ms;\n --nc-duration-transition: 240ms;\n --nc-duration-arrive: 300ms;\n --nc-duration-drawer-swipe: 400ms;\n --nc-duration-drawer: 450ms;\n --nc-duration-wait: 1.6s;\n --nc-ease-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1);\n --nc-ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);\n --nc-ease-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1);\n --nc-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);\n --nc-content-max: 1200px;\n --nc-gutter-mobile: 20px;\n --nc-gutter-tablet: 40px;\n --nc-gutter-desktop: 64px;\n --nc-section-step-mobile: 64px;\n --nc-section-step-desktop: 96px;\n }\n}\n\n\n@layer theme {\n .dark {\n --nc-canvas: var(--nc-dark-canvas);\n --nc-canvas-soft: var(--nc-dark-canvas-soft);\n --nc-canvas-soft-2: var(--nc-dark-canvas-soft-2);\n --nc-material-workspace: var(--nc-dark-material-workspace);\n --nc-material-solid: var(--nc-dark-material-solid);\n --nc-material-resting: var(--nc-dark-material-resting);\n --nc-material-raised: var(--nc-dark-material-raised);\n --nc-material-floating: var(--nc-dark-material-floating);\n --nc-material-modal: var(--nc-dark-material-modal);\n --nc-ink: var(--nc-dark-ink);\n --nc-body: var(--nc-dark-body);\n --nc-muted: var(--nc-dark-muted);\n --nc-line: var(--nc-dark-line);\n --nc-input: var(--nc-dark-input);\n --nc-action: var(--nc-dark-action);\n --nc-action-foreground: var(--nc-dark-action-foreground);\n --nc-action-hover: var(--nc-dark-action-hover);\n --nc-action-active: var(--nc-dark-action-active);\n --nc-link: var(--nc-dark-link);\n --nc-link-deep: var(--nc-dark-link-deep);\n --nc-link-bg-soft: var(--nc-dark-link-bg-soft);\n --nc-focus-ring: var(--nc-dark-focus-ring);\n --nc-scrim: var(--nc-dark-scrim);\n --nc-error: var(--nc-dark-error);\n --nc-error-soft: var(--nc-dark-error-soft);\n --nc-error-deep: var(--nc-dark-error-deep);\n --nc-warning: var(--nc-dark-warning);\n --nc-warning-soft: var(--nc-dark-warning-soft);\n --nc-warning-deep: var(--nc-dark-warning-deep);\n --nc-info: var(--nc-dark-info);\n --nc-info-soft: var(--nc-dark-info-soft);\n --nc-info-deep: var(--nc-dark-info-deep);\n --nc-success: var(--nc-dark-success);\n --nc-success-soft: var(--nc-dark-success-soft);\n --nc-success-deep: var(--nc-dark-success-deep);\n --nc-state-ready: var(--nc-dark-state-ready);\n --nc-state-running: var(--nc-dark-state-running);\n --nc-state-review: var(--nc-dark-state-review);\n --nc-state-blocked: var(--nc-dark-state-blocked);\n --nc-state-complete: var(--nc-dark-state-complete);\n --nc-logo-dot: var(--nc-dark-logo-dot);\n --nc-navigation-selection-bg: var(--nc-dark-navigation-selection-bg);\n --nc-navigation-selection-fg: var(--nc-dark-navigation-selection-fg);\n --nc-navigation-selection-hover: var(--nc-dark-navigation-selection-hover);\n --nc-chart-1: var(--nc-dark-chart-1);\n --nc-chart-2: var(--nc-dark-chart-2);\n --nc-chart-3: var(--nc-dark-chart-3);\n --nc-chart-4: var(--nc-dark-chart-4);\n --nc-chart-5: var(--nc-dark-chart-5);\n --nc-chart-6: var(--nc-dark-chart-6);\n --nc-chart-7: var(--nc-dark-chart-7);\n --nc-chart-8: var(--nc-dark-chart-8);\n --nc-chart-9: var(--nc-dark-chart-9);\n --nc-chart-10: var(--nc-dark-chart-10);\n --nc-cobalto-100: var(--nc-dark-cobalto-100);\n --nc-cobalto-200: var(--nc-dark-cobalto-200);\n --nc-cobalto-300: var(--nc-dark-cobalto-300);\n --nc-cobalto-400: var(--nc-dark-cobalto-400);\n --nc-cobalto-500: var(--nc-dark-cobalto-500);\n --nc-cobalto-600: var(--nc-dark-cobalto-600);\n --nc-cobalto-700: var(--nc-dark-cobalto-700);\n --nc-cobalto-800: var(--nc-dark-cobalto-800);\n --nc-cobalto-900: var(--nc-dark-cobalto-900);\n --nc-cobalto-1000: var(--nc-dark-cobalto-1000);\n --nc-rosso-100: var(--nc-dark-rosso-100);\n --nc-rosso-200: var(--nc-dark-rosso-200);\n --nc-rosso-300: var(--nc-dark-rosso-300);\n --nc-rosso-400: var(--nc-dark-rosso-400);\n --nc-rosso-500: var(--nc-dark-rosso-500);\n --nc-rosso-600: var(--nc-dark-rosso-600);\n --nc-rosso-700: var(--nc-dark-rosso-700);\n --nc-rosso-800: var(--nc-dark-rosso-800);\n --nc-rosso-900: var(--nc-dark-rosso-900);\n --nc-rosso-1000: var(--nc-dark-rosso-1000);\n --nc-arancio-100: var(--nc-dark-arancio-100);\n --nc-arancio-200: var(--nc-dark-arancio-200);\n --nc-arancio-300: var(--nc-dark-arancio-300);\n --nc-arancio-400: var(--nc-dark-arancio-400);\n --nc-arancio-500: var(--nc-dark-arancio-500);\n --nc-arancio-600: var(--nc-dark-arancio-600);\n --nc-arancio-700: var(--nc-dark-arancio-700);\n --nc-arancio-800: var(--nc-dark-arancio-800);\n --nc-arancio-900: var(--nc-dark-arancio-900);\n --nc-arancio-1000: var(--nc-dark-arancio-1000);\n --nc-giallo-100: var(--nc-dark-giallo-100);\n --nc-giallo-200: var(--nc-dark-giallo-200);\n --nc-giallo-300: var(--nc-dark-giallo-300);\n --nc-giallo-400: var(--nc-dark-giallo-400);\n --nc-giallo-500: var(--nc-dark-giallo-500);\n --nc-giallo-600: var(--nc-dark-giallo-600);\n --nc-giallo-700: var(--nc-dark-giallo-700);\n --nc-giallo-800: var(--nc-dark-giallo-800);\n --nc-giallo-900: var(--nc-dark-giallo-900);\n --nc-giallo-1000: var(--nc-dark-giallo-1000);\n --nc-verde-100: var(--nc-dark-verde-100);\n --nc-verde-200: var(--nc-dark-verde-200);\n --nc-verde-300: var(--nc-dark-verde-300);\n --nc-verde-400: var(--nc-dark-verde-400);\n --nc-verde-500: var(--nc-dark-verde-500);\n --nc-verde-600: var(--nc-dark-verde-600);\n --nc-verde-700: var(--nc-dark-verde-700);\n --nc-verde-800: var(--nc-dark-verde-800);\n --nc-verde-900: var(--nc-dark-verde-900);\n --nc-verde-1000: var(--nc-dark-verde-1000);\n --nc-acqua-100: var(--nc-dark-acqua-100);\n --nc-acqua-200: var(--nc-dark-acqua-200);\n --nc-acqua-300: var(--nc-dark-acqua-300);\n --nc-acqua-400: var(--nc-dark-acqua-400);\n --nc-acqua-500: var(--nc-dark-acqua-500);\n --nc-acqua-600: var(--nc-dark-acqua-600);\n --nc-acqua-700: var(--nc-dark-acqua-700);\n --nc-acqua-800: var(--nc-dark-acqua-800);\n --nc-acqua-900: var(--nc-dark-acqua-900);\n --nc-acqua-1000: var(--nc-dark-acqua-1000);\n --nc-viola-100: var(--nc-dark-viola-100);\n --nc-viola-200: var(--nc-dark-viola-200);\n --nc-viola-300: var(--nc-dark-viola-300);\n --nc-viola-400: var(--nc-dark-viola-400);\n --nc-viola-500: var(--nc-dark-viola-500);\n --nc-viola-600: var(--nc-dark-viola-600);\n --nc-viola-700: var(--nc-dark-viola-700);\n --nc-viola-800: var(--nc-dark-viola-800);\n --nc-viola-900: var(--nc-dark-viola-900);\n --nc-viola-1000: var(--nc-dark-viola-1000);\n --nc-rosa-100: var(--nc-dark-rosa-100);\n --nc-rosa-200: var(--nc-dark-rosa-200);\n --nc-rosa-300: var(--nc-dark-rosa-300);\n --nc-rosa-400: var(--nc-dark-rosa-400);\n --nc-rosa-500: var(--nc-dark-rosa-500);\n --nc-rosa-600: var(--nc-dark-rosa-600);\n --nc-rosa-700: var(--nc-dark-rosa-700);\n --nc-rosa-800: var(--nc-dark-rosa-800);\n --nc-rosa-900: var(--nc-dark-rosa-900);\n --nc-rosa-1000: var(--nc-dark-rosa-1000);\n --nc-category-teal-soft: var(--nc-dark-category-teal-soft);\n --nc-category-teal-deep: var(--nc-dark-category-teal-deep);\n --nc-category-purple-soft: var(--nc-dark-category-purple-soft);\n --nc-category-purple-deep: var(--nc-dark-category-purple-deep);\n --nc-category-pink-soft: var(--nc-dark-category-pink-soft);\n --nc-category-pink-deep: var(--nc-dark-category-pink-deep);\n --nc-material-scrim-opacity: var(--nc-material-dark-scrim-opacity);\n --nc-elevation-resting:\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.145),\n 0px 0px 0px 2px rgb(0% 0% 0%),\n 0px 1px 2px 0px rgb(0% 0% 0% / 0.5);\n --nc-elevation-raised:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.06),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.16),\n 0px 0px 0px 2px rgb(0% 0% 0%),\n 0px 12px 24px -8px rgb(0% 0% 0% / 0.8);\n --nc-elevation-floating:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.08),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.16),\n 0px 0px 0px 2px rgb(0% 0% 0%),\n 0px 24px 48px -12px rgb(0% 0% 0% / 0.9);\n --nc-elevation-modal:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.1),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.18),\n 0px 0px 0px 2px rgb(0% 0% 0%),\n 0px 48px 96px -24px rgb(0% 0% 0%);\n --nc-elevation-glass:\n inset 0px 1px 0px 0px rgb(100% 100% 100% / 0.1),\n 0px 0px 0px 1px rgb(100% 100% 100% / 0.14),\n 0px 16px 32px -12px rgb(0% 0% 0% / 0.8);\n }\n}";
3
3
  export const brandWordmarkSvg = "<svg data-slot=\"brand-wordmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 858 150\" width=\"137\" height=\"24\" class=\"block h-6 w-auto\" role=\"img\" aria-label=\"nadicode\"><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"18\"><path d=\"M9 150V100A41 41 0 0 1 91 100V150\"></path><circle cx=\"172\" cy=\"100\" r=\"41\"></circle><path d=\"M213 50V150\"></path><circle cx=\"294\" cy=\"100\" r=\"41\"></circle><path d=\"M335 0V150\"></path><path d=\"M375 50V150\"></path><path d=\"M484.99 71.01A41 41 0 1 0 484.99 128.99\"></path><circle cx=\"564\" cy=\"100\" r=\"41\"></circle><circle cx=\"686\" cy=\"100\" r=\"41\"></circle><path d=\"M727 0V150\"></path><path d=\"M767 100H849A41 41 0 1 0 839.41 126.35\"></path></g><circle cx=\"375\" cy=\"21\" r=\"14\" fill=\"var(--nc-logo-dot)\"></circle></svg>";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/ui",
3
- "version": "12.1.132",
3
+ "version": "12.1.134",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -83,7 +83,7 @@
83
83
  "@base-ui/react": "^1.9.0",
84
84
  "@iconify-icons/logos": "^2.0.3",
85
85
  "@iconify/react": "^6.0.2",
86
- "@nadicodeai/design-system": "12.1.132",
86
+ "@nadicodeai/design-system": "12.1.134",
87
87
  "@tanstack/react-table": "^9.3.1",
88
88
  "@vgpu/wgsl": "0.6.0",
89
89
  "class-variance-authority": "^0.7.1",
@@ -1,17 +0,0 @@
1
- import { type ReactNode } from "react";
2
- /**
3
- * A company's logo on its tile, and `fallback`, its initials, when the stored logo does not load,
4
- * so a broken address never leaves an empty tile.
5
- */
6
- export declare function CompanyLogo({ logo, size, naming, fallback, }: {
7
- logo: string;
8
- size: number;
9
- naming: {
10
- role: "img";
11
- "aria-label": string;
12
- } | {
13
- "aria-hidden": true;
14
- };
15
- fallback: ReactNode;
16
- }): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
17
- //# sourceMappingURL=company-logo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"company-logo.d.ts","sourceRoot":"","sources":["../../src/internal/company-logo.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,CAAC;IACxE,QAAQ,EAAE,SAAS,CAAC;CACrB,+TAoBA"}
@@ -1,13 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- /**
5
- * A company's logo on its tile, and `fallback`, its initials, when the stored logo does not load,
6
- * so a broken address never leaves an empty tile.
7
- */
8
- export function CompanyLogo({ logo, size, naming, fallback, }) {
9
- const [failedLogo, setFailedLogo] = useState(null);
10
- if (failedLogo === logo)
11
- return fallback;
12
- return (_jsx("span", { className: "inline-flex shrink-0 items-center justify-center overflow-hidden rounded-md bg-nc-card-graphite ring-1 ring-border ring-inset", "data-kind": "company", "data-slot": "identity-mark", style: { width: size, height: size }, ...naming, children: _jsx("img", { alt: "", className: "size-full object-contain", "data-slot": "identity-mark-logo", onError: () => setFailedLogo(logo), src: logo }) }));
13
- }