aimeat 1.31.0 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/locales/en.json +196 -2
- package/dist/locales/fi.json +196 -2
- package/dist/public/components/InboxLink.js +29 -0
- package/dist/public/css/views/companies.css +65 -0
- package/dist/public/css/views/inbox.css +100 -1
- package/dist/public/css/views/members.css +33 -0
- package/dist/public/css/views/my-company.css +52 -0
- package/dist/public/css/views/profile.css +22 -0
- package/dist/public/js/services/messages.js +16 -0
- package/dist/public/js/services/notebook.js +16 -6
- package/dist/public/llms-template.txt +7 -0
- package/dist/public/spa.html +8 -0
- package/dist/public/views/companies.js +190 -0
- package/dist/public/views/members.js +42 -0
- package/dist/public/views/my-company.js +440 -47
- package/dist/public/views/portfolio-themes.js +77 -0
- package/dist/public/views/profile/agents-tab.js +4 -1
- package/dist/public/views/profile/discover-tab.js +118 -0
- package/dist/public/views/profile/inbox-tab.js +506 -12
- package/dist/public/views/profile/landing-page.js +2 -1
- package/dist/public/views/profile/notebook-card.js +11 -3
- package/dist/public/views/profile/organisms/home.js +5 -3
- package/dist/public/views/profile/organisms/mindmap.js +14 -3
- package/dist/public/views/profile/organisms/workspace.js +5 -2
- package/dist/public/views/profile/organisms-tab.js +12 -4
- package/dist/public/views/profile.js +2 -0
- package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.js +34 -0
- package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/dm-messages.d.ts +1 -0
- package/dist/src/cli/connect/mcp/tools/dm-messages.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/dm-messages.js +23 -0
- package/dist/src/cli/connect/mcp/tools/dm-messages.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/organisms.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/organisms.js +31 -0
- package/dist/src/cli/connect/mcp/tools/organisms.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +4 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +211 -0
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/generated/prisma-postgres/edge.js +5 -3
- package/dist/src/generated/prisma-postgres/index-browser.js +2 -0
- package/dist/src/generated/prisma-postgres/index.d.ts +89 -1
- package/dist/src/generated/prisma-postgres/index.js +5 -3
- package/dist/src/generated/prisma-postgres/package.json +1 -1
- package/dist/src/generated/prisma-postgres/schema.prisma +3 -0
- package/dist/src/generated/prisma-postgres/wasm.js +5 -3
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +1 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +18 -0
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +6 -3
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +49 -0
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/models/message-schemas.d.ts +56 -0
- package/dist/src/models/message-schemas.d.ts.map +1 -1
- package/dist/src/models/message-schemas.js +13 -0
- package/dist/src/models/message-schemas.js.map +1 -1
- package/dist/src/routes/bootstrap.d.ts.map +1 -1
- package/dist/src/routes/bootstrap.js +3 -0
- package/dist/src/routes/bootstrap.js.map +1 -1
- package/dist/src/routes/discover.d.ts +22 -0
- package/dist/src/routes/discover.d.ts.map +1 -0
- package/dist/src/routes/discover.js +123 -0
- package/dist/src/routes/discover.js.map +1 -0
- package/dist/src/routes/federation-sync.d.ts.map +1 -1
- package/dist/src/routes/federation-sync.js +67 -2
- package/dist/src/routes/federation-sync.js.map +1 -1
- package/dist/src/routes/messages.d.ts.map +1 -1
- package/dist/src/routes/messages.js +86 -1
- package/dist/src/routes/messages.js.map +1 -1
- package/dist/src/routes/organisms.d.ts +3 -0
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +11 -32
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +2 -0
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/portfolio.d.ts.map +1 -1
- package/dist/src/routes/portfolio.js +30 -0
- package/dist/src/routes/portfolio.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +2 -0
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/services/connect-tunnel.d.ts +3 -0
- package/dist/src/services/connect-tunnel.d.ts.map +1 -1
- package/dist/src/services/connect-tunnel.js +6 -0
- package/dist/src/services/connect-tunnel.js.map +1 -1
- package/dist/src/services/discovery/__tests__/discovery.test.d.ts +2 -0
- package/dist/src/services/discovery/__tests__/discovery.test.d.ts.map +1 -0
- package/dist/src/services/discovery/__tests__/discovery.test.js +178 -0
- package/dist/src/services/discovery/__tests__/discovery.test.js.map +1 -0
- package/dist/src/services/discovery/classify.d.ts +36 -0
- package/dist/src/services/discovery/classify.d.ts.map +1 -0
- package/dist/src/services/discovery/classify.js +61 -0
- package/dist/src/services/discovery/classify.js.map +1 -0
- package/dist/src/services/discovery/facets.d.ts +21 -0
- package/dist/src/services/discovery/facets.d.ts.map +1 -0
- package/dist/src/services/discovery/facets.js +0 -0
- package/dist/src/services/discovery/facets.js.map +1 -0
- package/dist/src/services/discovery/index.d.ts +22 -0
- package/dist/src/services/discovery/index.d.ts.map +1 -0
- package/dist/src/services/discovery/index.js +22 -0
- package/dist/src/services/discovery/index.js.map +1 -0
- package/dist/src/services/discovery/normalize.d.ts +25 -0
- package/dist/src/services/discovery/normalize.d.ts.map +1 -0
- package/dist/src/services/discovery/normalize.js +108 -0
- package/dist/src/services/discovery/normalize.js.map +1 -0
- package/dist/src/services/discovery/registry.d.ts +30 -0
- package/dist/src/services/discovery/registry.d.ts.map +1 -0
- package/dist/src/services/discovery/registry.js +31 -0
- package/dist/src/services/discovery/registry.js.map +1 -0
- package/dist/src/services/discovery/run.d.ts +23 -0
- package/dist/src/services/discovery/run.d.ts.map +1 -0
- package/dist/src/services/discovery/run.js +20 -0
- package/dist/src/services/discovery/run.js.map +1 -0
- package/dist/src/services/discovery/setup.d.ts +16 -0
- package/dist/src/services/discovery/setup.d.ts.map +1 -0
- package/dist/src/services/discovery/setup.js +12 -0
- package/dist/src/services/discovery/setup.js.map +1 -0
- package/dist/src/services/discovery/sources/memory-source.d.ts +24 -0
- package/dist/src/services/discovery/sources/memory-source.d.ts.map +1 -0
- package/dist/src/services/discovery/sources/memory-source.js +183 -0
- package/dist/src/services/discovery/sources/memory-source.js.map +1 -0
- package/dist/src/services/discovery/sources/table-sources.d.ts +27 -0
- package/dist/src/services/discovery/sources/table-sources.d.ts.map +1 -0
- package/dist/src/services/discovery/sources/table-sources.js +128 -0
- package/dist/src/services/discovery/sources/table-sources.js.map +1 -0
- package/dist/src/services/discovery/types.d.ts +117 -0
- package/dist/src/services/discovery/types.d.ts.map +1 -0
- package/dist/src/services/discovery/types.js +19 -0
- package/dist/src/services/discovery/types.js.map +1 -0
- package/dist/src/services/handbooks/agent.d.ts +1 -1
- package/dist/src/services/handbooks/agent.d.ts.map +1 -1
- package/dist/src/services/handbooks/agent.js +9 -3
- package/dist/src/services/handbooks/agent.js.map +1 -1
- package/dist/src/services/message-broadcast.d.ts +49 -0
- package/dist/src/services/message-broadcast.d.ts.map +1 -0
- package/dist/src/services/message-broadcast.js +116 -0
- package/dist/src/services/message-broadcast.js.map +1 -0
- package/dist/src/services/message-delivery.d.ts.map +1 -1
- package/dist/src/services/message-delivery.js +2 -0
- package/dist/src/services/message-delivery.js.map +1 -1
- package/dist/src/services/message-send.d.ts +6 -0
- package/dist/src/services/message-send.d.ts.map +1 -1
- package/dist/src/services/message-send.js +7 -5
- package/dist/src/services/message-send.js.map +1 -1
- package/dist/src/services/presence.d.ts +8 -0
- package/dist/src/services/presence.d.ts.map +1 -1
- package/dist/src/services/presence.js +38 -0
- package/dist/src/services/presence.js.map +1 -1
- package/dist/src/services/workspace-enrichment.d.ts +15 -5
- package/dist/src/services/workspace-enrichment.d.ts.map +1 -1
- package/dist/src/services/workspace-enrichment.js +52 -14
- package/dist/src/services/workspace-enrichment.js.map +1 -1
- package/dist/src/storage/interface.d.ts +5 -0
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.d.ts +1 -0
- package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +13 -0
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +3 -0
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/direct-message.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/repos/direct-message.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/direct-message.js +13 -2
- package/dist/src/storage/providers/sqlite/repos/direct-message.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +5 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/direct-message.repository.d.ts +3 -0
- package/dist/src/storage/repositories/direct-message.repository.d.ts.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.postgres.prisma +3 -0
- package/prisma/schema.prisma +3 -0
package/dist/locales/en.json
CHANGED
|
@@ -8,6 +8,61 @@
|
|
|
8
8
|
"inbox.send": "Send",
|
|
9
9
|
"inbox.sending": "Sending…",
|
|
10
10
|
"inbox.reply": "Reply",
|
|
11
|
+
"inbox.contactAgentSuffix": "(your agent)",
|
|
12
|
+
"inbox.messageThis": "Send a message",
|
|
13
|
+
"nav.members": "Members",
|
|
14
|
+
"members.title": "Members",
|
|
15
|
+
"members.desc": "People on this node who have published a portfolio.",
|
|
16
|
+
"members.empty": "No published portfolios yet.",
|
|
17
|
+
"inbox.broadcast": "Broadcast",
|
|
18
|
+
"inbox.broadcastTitle": "Send to many",
|
|
19
|
+
"inbox.bcModeBroadcast": "Message (repliable)",
|
|
20
|
+
"inbox.bcModeAnnouncement": "Announcement (read-only)",
|
|
21
|
+
"inbox.bcAddPlaceholder": "Add a recipient…",
|
|
22
|
+
"inbox.bcAdd": "Add",
|
|
23
|
+
"inbox.bcRemove": "Remove",
|
|
24
|
+
"inbox.bcNoGroup": "— Share Group (optional) —",
|
|
25
|
+
"inbox.bcSend": "Send to all",
|
|
26
|
+
"inbox.bcNoRecipients": "Add at least one recipient or a group",
|
|
27
|
+
"inbox.bcSent": "Broadcast sent",
|
|
28
|
+
"inbox.bcNoAudience": "— Audience (optional) —",
|
|
29
|
+
"inbox.bcNodeUsers": "All node users (operator)",
|
|
30
|
+
"inbox.bcFederationUsers": "All federation users (operator)",
|
|
31
|
+
"inbox.close": "Close",
|
|
32
|
+
"inbox.loading": "Loading…",
|
|
33
|
+
"inbox.cmdTitle": "Commands",
|
|
34
|
+
"inbox.cmdInsert": "Insert into message",
|
|
35
|
+
"inbox.schedTitle": "Schedule",
|
|
36
|
+
"inbox.schedNone": "No scheduled tasks yet.",
|
|
37
|
+
"inbox.schedOff": "off",
|
|
38
|
+
"inbox.schedTaskPh": "Task title",
|
|
39
|
+
"inbox.schedDescPh": "What should the agent do? (optional)",
|
|
40
|
+
"inbox.schedCreate": "Schedule",
|
|
41
|
+
"inbox.schedCreated": "Scheduled.",
|
|
42
|
+
"inbox.schedError": "Could not schedule.",
|
|
43
|
+
"inbox.parkToNotebook": "Add to notebook for later",
|
|
44
|
+
"inbox.parkedToNotebook": "Added to your notebook.",
|
|
45
|
+
"inbox.announcementNote": "Announcement — replies are disabled",
|
|
46
|
+
"inbox.bcTypeMessage": "Message",
|
|
47
|
+
"inbox.bcTypePoll": "Poll",
|
|
48
|
+
"inbox.pollSend": "Send poll",
|
|
49
|
+
"inbox.pollHeader": "Short label (chip)",
|
|
50
|
+
"inbox.pollPrompt": "Question",
|
|
51
|
+
"inbox.pollOption": "Option",
|
|
52
|
+
"inbox.pollAddOption": "Add option",
|
|
53
|
+
"inbox.pollRemoveQ": "Remove question",
|
|
54
|
+
"inbox.pollAddQuestion": "Add question",
|
|
55
|
+
"inbox.pollMulti": "Multiple choice",
|
|
56
|
+
"inbox.pollAllowOther": "Allow \"Other\"",
|
|
57
|
+
"inbox.pollRequired": "Required",
|
|
58
|
+
"inbox.pollNeedQuestion": "Add at least one question with options",
|
|
59
|
+
"inbox.results": "Results",
|
|
60
|
+
"inbox.resultsTitle": "Broadcast results",
|
|
61
|
+
"inbox.resultsEmpty": "No broadcasts sent yet",
|
|
62
|
+
"inbox.resultsRecipients": "Recipients",
|
|
63
|
+
"inbox.resultsDelivered": "Delivered",
|
|
64
|
+
"inbox.resultsRead": "Read",
|
|
65
|
+
"inbox.resultsAnswered": "Answered",
|
|
11
66
|
"inbox.answer.other": "Other",
|
|
12
67
|
"inbox.answer.otherPlaceholder": "Type your answer…",
|
|
13
68
|
"inbox.answer.send": "Send answers",
|
|
@@ -488,7 +543,40 @@
|
|
|
488
543
|
"themeToLight": "Switch to light mode",
|
|
489
544
|
"howItWorks": "How it works",
|
|
490
545
|
"business": "For your business",
|
|
491
|
-
"myCompany": "My Company"
|
|
546
|
+
"myCompany": "My Company",
|
|
547
|
+
"companies": "Companies"
|
|
548
|
+
},
|
|
549
|
+
"companies": {
|
|
550
|
+
"title": "Companies",
|
|
551
|
+
"desc": "Browse companies on this node and order their agents' offerings.",
|
|
552
|
+
"directory": "Directory",
|
|
553
|
+
"none": "No companies yet.",
|
|
554
|
+
"offeringsShort": "offerings",
|
|
555
|
+
"selectHint": "Pick a company to see its profile and catalogue.",
|
|
556
|
+
"businessId": "Business ID (Y-tunnus)",
|
|
557
|
+
"catalogue": "Offerings for sale",
|
|
558
|
+
"noOfferings": "This company has no offerings listed yet.",
|
|
559
|
+
"callable": "Runs instantly — result appears below.",
|
|
560
|
+
"viaInbox": "Handled by the seller's agent — track it in My orders.",
|
|
561
|
+
"usePlaceholder": "Describe what you need (optional)…",
|
|
562
|
+
"order": "Order",
|
|
563
|
+
"morsels": "morsels",
|
|
564
|
+
"loginToOrder": "Log in to order",
|
|
565
|
+
"orderResult": "Done — result below.",
|
|
566
|
+
"orderTask": "Order received — the seller's agent {agent} will handle it.",
|
|
567
|
+
"charged": "Charged {n} morsels",
|
|
568
|
+
"myOrders": "My orders",
|
|
569
|
+
"noMyOrders": "You haven't ordered anything yet.",
|
|
570
|
+
"done": "Done",
|
|
571
|
+
"free": "Free",
|
|
572
|
+
"fromCompany": "Company",
|
|
573
|
+
"stQueued": "Queued",
|
|
574
|
+
"stActive": "In progress",
|
|
575
|
+
"stDone": "Done",
|
|
576
|
+
"stFailed": "Failed",
|
|
577
|
+
"stInstant": "Instant",
|
|
578
|
+
"viewPortfolio": "View portfolio",
|
|
579
|
+
"enterpriseRequired": "The company directory requires the AIMEAT Enterprise edition. This node runs the free Community edition."
|
|
492
580
|
},
|
|
493
581
|
"myCompany": {
|
|
494
582
|
"title": "My Company",
|
|
@@ -514,6 +602,38 @@
|
|
|
514
602
|
"use": "Order",
|
|
515
603
|
"usePlaceholder": "What do you want? (optional)…",
|
|
516
604
|
"result": "Result",
|
|
605
|
+
"manage": "Manage",
|
|
606
|
+
"edit": "Edit",
|
|
607
|
+
"cancel": "Cancel",
|
|
608
|
+
"visibilityLabel": "Visibility",
|
|
609
|
+
"priceLabel": "Price",
|
|
610
|
+
"lastSavedBy": "Last saved by",
|
|
611
|
+
"notForSale": "not for sale",
|
|
612
|
+
"neverEdited": "Not configured yet — click Edit to set price + visibility.",
|
|
613
|
+
"tabCatalog": "Catalog",
|
|
614
|
+
"tabOrders": "Orders",
|
|
615
|
+
"tabCustomers": "Customers",
|
|
616
|
+
"tabMembers": "Members",
|
|
617
|
+
"noCustomers": "No customers yet.",
|
|
618
|
+
"orderCount": "Orders",
|
|
619
|
+
"lastOrder": "Last order",
|
|
620
|
+
"creator": "creator",
|
|
621
|
+
"byMember": "Offered by",
|
|
622
|
+
"roleAdmin": "Admin",
|
|
623
|
+
"roleMember": "Member",
|
|
624
|
+
"roleVisitor": "Visitor",
|
|
625
|
+
"removeMember": "Remove",
|
|
626
|
+
"addMember": "Add a member",
|
|
627
|
+
"memberUsername": "Username",
|
|
628
|
+
"addMemberBtn": "Add",
|
|
629
|
+
"visPrivate": "Private (only me)",
|
|
630
|
+
"visUnlisted": "Unlisted (by link)",
|
|
631
|
+
"visPublic": "Public (listed)",
|
|
632
|
+
"savePrice": "Save",
|
|
633
|
+
"saved": "Saved ✓",
|
|
634
|
+
"removeFromCatalog": "Remove from catalog",
|
|
635
|
+
"privateHint": "Private — others can't see or order this. Set Public to sell it.",
|
|
636
|
+
"agentNoOfferings": "No offerings yet — create one in Profile › Offerings.",
|
|
517
637
|
"orderPlacedTask": "Order received — the seller's agent {agent} will handle it. Track it under My orders.",
|
|
518
638
|
"orderPlacedResult": "Done — result below.",
|
|
519
639
|
"charged": "Charged {n} morsels",
|
|
@@ -534,7 +654,54 @@
|
|
|
534
654
|
"morsels": "morsels",
|
|
535
655
|
"enterpriseBadge": "Enterprise feature",
|
|
536
656
|
"enterpriseRequired": "Company commerce requires the AIMEAT Enterprise edition. This node runs the free Community edition.",
|
|
537
|
-
"loginRequired": "Please log in to manage your companies."
|
|
657
|
+
"loginRequired": "Please log in to manage your companies.",
|
|
658
|
+
"tabSettings": "Settings",
|
|
659
|
+
"businessId": "Business ID (Y-tunnus)",
|
|
660
|
+
"businessIdOptional": "Business ID (Y-tunnus) — optional",
|
|
661
|
+
"businessIdHint": "Finnish format: 1234567-8. Required to sell as a registered company (KYB).",
|
|
662
|
+
"noBusinessId": "No business ID set — add it in Settings.",
|
|
663
|
+
"description": "Description",
|
|
664
|
+
"commission": "Company commission %",
|
|
665
|
+
"commissionHint": "The company's cut of each sale; the rest goes to the fulfilling member. Default 20%.",
|
|
666
|
+
"settingsSaved": "Settings saved ✓",
|
|
667
|
+
"saveSettings": "Save settings",
|
|
668
|
+
"receiptLabel": "Receipt",
|
|
669
|
+
"logo": "Company logo",
|
|
670
|
+
"noLogo": "No logo",
|
|
671
|
+
"uploadLogo": "Upload logo",
|
|
672
|
+
"removeLogo": "Remove",
|
|
673
|
+
"uploading": "Uploading…",
|
|
674
|
+
"logoTooBig": "Logo must be under 1 MB.",
|
|
675
|
+
"listedLabel": "Show this company in the public AIMEAT company directory",
|
|
676
|
+
"listedHint": "When on, your company — with its published services and pricing — appears in the corp catalogue. Turn off to stay private.",
|
|
677
|
+
"unlistedBadge": "not in directory",
|
|
678
|
+
"tabPortfolio": "Portfolio",
|
|
679
|
+
"pfIntro": "Build a public portfolio page for your company. Pick what to include, generate a prompt, paste it into your AI chat, then paste the HTML it returns back here and publish.",
|
|
680
|
+
"pfLive": "Portfolio is live ✓",
|
|
681
|
+
"pfVisit": "Visit",
|
|
682
|
+
"pfUnpublish": "Unpublish",
|
|
683
|
+
"pfLastPublished": "Last published",
|
|
684
|
+
"pfStep1": "1. Choose what to include",
|
|
685
|
+
"pfIncludeInfo": "Company info (name, Y-tunnus, about)",
|
|
686
|
+
"pfIncludeOfferings": "Services & pricing",
|
|
687
|
+
"pfUseLogo": "Use the company logo",
|
|
688
|
+
"pfNoLogo": "upload one in Settings first",
|
|
689
|
+
"pfLook": "Describe how you'd like it to look",
|
|
690
|
+
"pfLookPlaceholder": "e.g. clean and modern, dark theme, bold headings, trustworthy and corporate…",
|
|
691
|
+
"pfGenerate": "Generate prompt",
|
|
692
|
+
"pfStep2": "2. Copy this prompt into your AI chat",
|
|
693
|
+
"pfStep2Hint": "Paste it into ChatGPT / Claude / any AI, then copy the HTML it produces.",
|
|
694
|
+
"pfCopyPrompt": "Copy prompt",
|
|
695
|
+
"pfStep3": "3. Paste the HTML here and publish",
|
|
696
|
+
"pfPublish": "Publish portfolio",
|
|
697
|
+
"pfPublished": "Portfolio published ✓",
|
|
698
|
+
"pfNeedHtml": "Paste the HTML your AI produced first.",
|
|
699
|
+
"pfCopied": "Prompt copied ✓",
|
|
700
|
+
"pfThemeHeading": "Ready-made theme",
|
|
701
|
+
"pfThemeHint": "Pick a theme and publish instantly — no AI needed. Uses your choices above.",
|
|
702
|
+
"pfPreview": "Preview",
|
|
703
|
+
"pfPublishTheme": "Publish with this theme",
|
|
704
|
+
"pfOrAi": "Or design your own with AI"
|
|
538
705
|
},
|
|
539
706
|
"hero": {
|
|
540
707
|
"title": "Your data is yours. Your AI works for you.",
|
|
@@ -6239,6 +6406,33 @@
|
|
|
6239
6406
|
"exportSuccess": "Exported {count} config values in {format} format",
|
|
6240
6407
|
"migrationHint": "Tip: To migrate .env to database, run: aimeat config import --file .env"
|
|
6241
6408
|
},
|
|
6409
|
+
"discover": {
|
|
6410
|
+
"tabLabel": "Discover",
|
|
6411
|
+
"title": "Discover",
|
|
6412
|
+
"desc": "The master directory — find anything on the node across every domain: capabilities, workflows, knowledge, decisions, research, produced material, companies and their offerings, documents, apps, and memory.",
|
|
6413
|
+
"searchPlaceholder": "Search everything…",
|
|
6414
|
+
"allTypes": "All",
|
|
6415
|
+
"empty": "Nothing matches yet. Try a different scope or query.",
|
|
6416
|
+
"scope": {
|
|
6417
|
+
"own": "Mine",
|
|
6418
|
+
"public": "Public",
|
|
6419
|
+
"shared": "Shared with me"
|
|
6420
|
+
},
|
|
6421
|
+
"type": {
|
|
6422
|
+
"capability": "Capability",
|
|
6423
|
+
"workflow": "Workflow",
|
|
6424
|
+
"knowledge": "Knowledge",
|
|
6425
|
+
"decision": "Decision",
|
|
6426
|
+
"research": "Research",
|
|
6427
|
+
"material": "Material",
|
|
6428
|
+
"company": "Company",
|
|
6429
|
+
"offering": "Offering",
|
|
6430
|
+
"document": "Document",
|
|
6431
|
+
"organism": "Organism",
|
|
6432
|
+
"app": "App",
|
|
6433
|
+
"memory": "Memory"
|
|
6434
|
+
}
|
|
6435
|
+
},
|
|
6242
6436
|
"knowledge": {
|
|
6243
6437
|
"tabLabel": "Knowledge",
|
|
6244
6438
|
"actionBar": {
|
package/dist/locales/fi.json
CHANGED
|
@@ -8,6 +8,61 @@
|
|
|
8
8
|
"inbox.send": "Lähetä",
|
|
9
9
|
"inbox.sending": "Lähetetään…",
|
|
10
10
|
"inbox.reply": "Vastaa",
|
|
11
|
+
"inbox.contactAgentSuffix": "(agenttisi)",
|
|
12
|
+
"inbox.messageThis": "Lähetä viesti",
|
|
13
|
+
"nav.members": "Jäsenet",
|
|
14
|
+
"members.title": "Jäsenet",
|
|
15
|
+
"members.desc": "Tämän solmun käyttäjät, jotka ovat julkaisseet portfolion.",
|
|
16
|
+
"members.empty": "Ei julkaistuja portfolioita vielä.",
|
|
17
|
+
"inbox.broadcast": "Joukkoviesti",
|
|
18
|
+
"inbox.broadcastTitle": "Lähetä monelle",
|
|
19
|
+
"inbox.bcModeBroadcast": "Viesti (vastattava)",
|
|
20
|
+
"inbox.bcModeAnnouncement": "Tiedote (vain luku)",
|
|
21
|
+
"inbox.bcAddPlaceholder": "Lisää vastaanottaja…",
|
|
22
|
+
"inbox.bcAdd": "Lisää",
|
|
23
|
+
"inbox.bcRemove": "Poista",
|
|
24
|
+
"inbox.bcNoGroup": "— Jakoryhmä (valinnainen) —",
|
|
25
|
+
"inbox.bcSend": "Lähetä kaikille",
|
|
26
|
+
"inbox.bcNoRecipients": "Lisää vähintään yksi vastaanottaja tai ryhmä",
|
|
27
|
+
"inbox.bcSent": "Joukkoviesti lähetetty",
|
|
28
|
+
"inbox.bcNoAudience": "— Yleisö (valinnainen) —",
|
|
29
|
+
"inbox.bcNodeUsers": "Kaikki solmun käyttäjät (operaattori)",
|
|
30
|
+
"inbox.bcFederationUsers": "Koko federaatio (operaattori)",
|
|
31
|
+
"inbox.close": "Sulje",
|
|
32
|
+
"inbox.loading": "Ladataan…",
|
|
33
|
+
"inbox.cmdTitle": "Komennot",
|
|
34
|
+
"inbox.cmdInsert": "Lisää viestiin",
|
|
35
|
+
"inbox.schedTitle": "Ajastus",
|
|
36
|
+
"inbox.schedNone": "Ei ajastettuja tehtäviä vielä.",
|
|
37
|
+
"inbox.schedOff": "pois",
|
|
38
|
+
"inbox.schedTaskPh": "Tehtävän otsikko",
|
|
39
|
+
"inbox.schedDescPh": "Mitä agentin pitäisi tehdä? (valinnainen)",
|
|
40
|
+
"inbox.schedCreate": "Ajasta",
|
|
41
|
+
"inbox.schedCreated": "Ajastettu.",
|
|
42
|
+
"inbox.schedError": "Ajastus epäonnistui.",
|
|
43
|
+
"inbox.parkToNotebook": "Lisää muistikirjaan myöhempää varten",
|
|
44
|
+
"inbox.parkedToNotebook": "Lisätty muistikirjaasi.",
|
|
45
|
+
"inbox.announcementNote": "Tiedote — vastaaminen ei ole käytössä",
|
|
46
|
+
"inbox.bcTypeMessage": "Viesti",
|
|
47
|
+
"inbox.bcTypePoll": "Kysely",
|
|
48
|
+
"inbox.pollSend": "Lähetä kysely",
|
|
49
|
+
"inbox.pollHeader": "Lyhyt otsikko",
|
|
50
|
+
"inbox.pollPrompt": "Kysymys",
|
|
51
|
+
"inbox.pollOption": "Vaihtoehto",
|
|
52
|
+
"inbox.pollAddOption": "Lisää vaihtoehto",
|
|
53
|
+
"inbox.pollRemoveQ": "Poista kysymys",
|
|
54
|
+
"inbox.pollAddQuestion": "Lisää kysymys",
|
|
55
|
+
"inbox.pollMulti": "Monivalinta",
|
|
56
|
+
"inbox.pollAllowOther": "Salli \"Muu\"",
|
|
57
|
+
"inbox.pollRequired": "Pakollinen",
|
|
58
|
+
"inbox.pollNeedQuestion": "Lisää vähintään yksi kysymys vaihtoehtoineen",
|
|
59
|
+
"inbox.results": "Tulokset",
|
|
60
|
+
"inbox.resultsTitle": "Joukkoviestin tulokset",
|
|
61
|
+
"inbox.resultsEmpty": "Ei lähetettyjä joukkoviestejä vielä",
|
|
62
|
+
"inbox.resultsRecipients": "Vastaanottajat",
|
|
63
|
+
"inbox.resultsDelivered": "Toimitettu",
|
|
64
|
+
"inbox.resultsRead": "Luettu",
|
|
65
|
+
"inbox.resultsAnswered": "Vastattu",
|
|
11
66
|
"inbox.answer.other": "Muu",
|
|
12
67
|
"inbox.answer.otherPlaceholder": "Kirjoita vastauksesi…",
|
|
13
68
|
"inbox.answer.send": "Lähetä vastaukset",
|
|
@@ -488,7 +543,40 @@
|
|
|
488
543
|
"themeToLight": "Vaihda vaaleaan tilaan",
|
|
489
544
|
"howItWorks": "Miten se toimii",
|
|
490
545
|
"business": "Yrityksellesi",
|
|
491
|
-
"myCompany": "Yritykseni"
|
|
546
|
+
"myCompany": "Yritykseni",
|
|
547
|
+
"companies": "Yritykset"
|
|
548
|
+
},
|
|
549
|
+
"companies": {
|
|
550
|
+
"title": "Yritykset",
|
|
551
|
+
"desc": "Selaa noden yrityksiä ja tilaa niiden agenttien tarjoamia.",
|
|
552
|
+
"directory": "Hakemisto",
|
|
553
|
+
"none": "Ei vielä yrityksiä.",
|
|
554
|
+
"offeringsShort": "tarjoamaa",
|
|
555
|
+
"selectHint": "Valitse yritys nähdäksesi sen profiilin ja katalogin.",
|
|
556
|
+
"businessId": "Y-tunnus",
|
|
557
|
+
"catalogue": "Tarjoamat myynnissä",
|
|
558
|
+
"noOfferings": "Tällä yrityksellä ei ole vielä tarjoamia listattuna.",
|
|
559
|
+
"callable": "Suoritetaan heti — tulos näkyy alla.",
|
|
560
|
+
"viaInbox": "Myyjän agentti hoitaa — seuraa kohdasta Omat tilaukset.",
|
|
561
|
+
"usePlaceholder": "Kuvaile mitä tarvitset (valinnainen)…",
|
|
562
|
+
"order": "Tilaa",
|
|
563
|
+
"morsels": "morselia",
|
|
564
|
+
"loginToOrder": "Kirjaudu tilataksesi",
|
|
565
|
+
"orderResult": "Valmis — tulos alla.",
|
|
566
|
+
"orderTask": "Tilaus vastaanotettu — myyjän agentti {agent} hoitaa sen.",
|
|
567
|
+
"charged": "Veloitettu {n} morselia",
|
|
568
|
+
"myOrders": "Omat tilaukset",
|
|
569
|
+
"noMyOrders": "Et ole vielä tilannut mitään.",
|
|
570
|
+
"done": "Valmis",
|
|
571
|
+
"free": "Ilmainen",
|
|
572
|
+
"fromCompany": "Yritys",
|
|
573
|
+
"stQueued": "Jonossa",
|
|
574
|
+
"stActive": "Käynnissä",
|
|
575
|
+
"stDone": "Valmis",
|
|
576
|
+
"stFailed": "Epäonnistui",
|
|
577
|
+
"stInstant": "Heti",
|
|
578
|
+
"viewPortfolio": "Katso portfolio",
|
|
579
|
+
"enterpriseRequired": "Yrityshakemisto vaatii AIMEAT Enterprise -version. Tämä node ajaa ilmaista Community-versiota."
|
|
492
580
|
},
|
|
493
581
|
"myCompany": {
|
|
494
582
|
"title": "Yritykseni",
|
|
@@ -514,6 +602,38 @@
|
|
|
514
602
|
"use": "Tilaa",
|
|
515
603
|
"usePlaceholder": "Mitä haluat? (valinnainen)…",
|
|
516
604
|
"result": "Tulos",
|
|
605
|
+
"manage": "Hallinta",
|
|
606
|
+
"edit": "Muokkaa",
|
|
607
|
+
"cancel": "Peruuta",
|
|
608
|
+
"visibilityLabel": "Näkyvyys",
|
|
609
|
+
"priceLabel": "Hinta",
|
|
610
|
+
"lastSavedBy": "Viimeksi tallentanut",
|
|
611
|
+
"notForSale": "ei myynnissä",
|
|
612
|
+
"neverEdited": "Ei vielä konfiguroitu — paina Muokkaa asettaaksesi hinnan + näkyvyyden.",
|
|
613
|
+
"tabCatalog": "Katalogi",
|
|
614
|
+
"tabOrders": "Tilaukset",
|
|
615
|
+
"tabCustomers": "Asiakkaat",
|
|
616
|
+
"tabMembers": "Jäsenet",
|
|
617
|
+
"noCustomers": "Ei vielä asiakkaita.",
|
|
618
|
+
"orderCount": "Tilauksia",
|
|
619
|
+
"lastOrder": "Viimeisin tilaus",
|
|
620
|
+
"creator": "perustaja",
|
|
621
|
+
"byMember": "Tarjoaa",
|
|
622
|
+
"roleAdmin": "Ylläpitäjä",
|
|
623
|
+
"roleMember": "Jäsen",
|
|
624
|
+
"roleVisitor": "Vierailija",
|
|
625
|
+
"removeMember": "Poista",
|
|
626
|
+
"addMember": "Lisää jäsen",
|
|
627
|
+
"memberUsername": "Käyttäjänimi",
|
|
628
|
+
"addMemberBtn": "Lisää",
|
|
629
|
+
"visPrivate": "Yksityinen (vain minä)",
|
|
630
|
+
"visUnlisted": "Linkillä (ei listattu)",
|
|
631
|
+
"visPublic": "Julkinen (myynnissä)",
|
|
632
|
+
"savePrice": "Tallenna",
|
|
633
|
+
"saved": "Tallennettu ✓",
|
|
634
|
+
"removeFromCatalog": "Poista katalogista",
|
|
635
|
+
"privateHint": "Yksityinen — muut eivät näe tai voi tilata. Aseta Julkiseksi myydäksesi.",
|
|
636
|
+
"agentNoOfferings": "Ei vielä tarjoamia — luo profiilissa › Tarjoama.",
|
|
517
637
|
"orderPlacedTask": "Tilaus vastaanotettu — myyjän agentti {agent} käsittelee. Seuraa Omat tilaukset -kohdasta.",
|
|
518
638
|
"orderPlacedResult": "Valmis — tulos alla.",
|
|
519
639
|
"charged": "Veloitettu {n} morselia",
|
|
@@ -534,7 +654,54 @@
|
|
|
534
654
|
"morsels": "morselia",
|
|
535
655
|
"enterpriseBadge": "Enterprise-ominaisuus",
|
|
536
656
|
"enterpriseRequired": "Yrityskauppa vaatii AIMEAT Enterprise -version. Tämä node ajaa ilmaista Community-versiota.",
|
|
537
|
-
"loginRequired": "Kirjaudu sisään hallitaksesi yrityksiäsi."
|
|
657
|
+
"loginRequired": "Kirjaudu sisään hallitaksesi yrityksiäsi.",
|
|
658
|
+
"tabSettings": "Asetukset",
|
|
659
|
+
"businessId": "Y-tunnus",
|
|
660
|
+
"businessIdOptional": "Y-tunnus — valinnainen",
|
|
661
|
+
"businessIdHint": "Suomalainen muoto: 1234567-8. Vaaditaan myyntiin rekisteröitynä yrityksenä (KYB).",
|
|
662
|
+
"noBusinessId": "Y-tunnusta ei asetettu — lisää se Asetuksissa.",
|
|
663
|
+
"description": "Kuvaus",
|
|
664
|
+
"commission": "Yrityksen komissio %",
|
|
665
|
+
"commissionHint": "Yrityksen osuus jokaisesta myynnistä; loppu menee tarjoaman toteuttavalle jäsenelle. Oletus 20 %.",
|
|
666
|
+
"settingsSaved": "Asetukset tallennettu ✓",
|
|
667
|
+
"saveSettings": "Tallenna asetukset",
|
|
668
|
+
"receiptLabel": "Kuitti",
|
|
669
|
+
"logo": "Yrityksen logo",
|
|
670
|
+
"noLogo": "Ei logoa",
|
|
671
|
+
"uploadLogo": "Lataa logo",
|
|
672
|
+
"removeLogo": "Poista",
|
|
673
|
+
"uploading": "Ladataan…",
|
|
674
|
+
"logoTooBig": "Logon tulee olla alle 1 Mt.",
|
|
675
|
+
"listedLabel": "Näytä tämä yritys julkisessa AIMEAT-yrityshakemistossa",
|
|
676
|
+
"listedHint": "Päällä yrityksesi — julkaistuine palveluineen ja hinnastoineen — näkyy corp-katalogissa. Pois päältä pysyt yksityisenä.",
|
|
677
|
+
"unlistedBadge": "ei hakemistossa",
|
|
678
|
+
"tabPortfolio": "Portfolio",
|
|
679
|
+
"pfIntro": "Rakenna yrityksellesi julkinen portfolio-sivu. Valitse mukaan otettavat, generoi prompt, liitä se AI-chattiisi, ja liitä sen palauttama HTML takaisin tähän ja julkaise.",
|
|
680
|
+
"pfLive": "Portfolio julkaistu ✓",
|
|
681
|
+
"pfVisit": "Avaa",
|
|
682
|
+
"pfUnpublish": "Poista julkaisu",
|
|
683
|
+
"pfLastPublished": "Viimeksi julkaistu",
|
|
684
|
+
"pfStep1": "1. Valitse mitä otetaan mukaan",
|
|
685
|
+
"pfIncludeInfo": "Yritystiedot (nimi, Y-tunnus, esittely)",
|
|
686
|
+
"pfIncludeOfferings": "Palvelut & hinnasto",
|
|
687
|
+
"pfUseLogo": "Käytä yrityksen logoa",
|
|
688
|
+
"pfNoLogo": "lataa logo ensin Asetuksissa",
|
|
689
|
+
"pfLook": "Kuvaile millaiselta toivoisit sen näyttävän",
|
|
690
|
+
"pfLookPlaceholder": "esim. selkeä ja moderni, tumma teema, isot otsikot, luotettava ja yritysmäinen…",
|
|
691
|
+
"pfGenerate": "Generoi prompt",
|
|
692
|
+
"pfStep2": "2. Kopioi tämä prompt AI-chattiisi",
|
|
693
|
+
"pfStep2Hint": "Liitä se ChatGPT:hen / Claudeen / mihin tahansa AI:hin, ja kopioi sen tuottama HTML.",
|
|
694
|
+
"pfCopyPrompt": "Kopioi prompt",
|
|
695
|
+
"pfStep3": "3. Liitä HTML tähän ja julkaise",
|
|
696
|
+
"pfPublish": "Julkaise portfolio",
|
|
697
|
+
"pfPublished": "Portfolio julkaistu ✓",
|
|
698
|
+
"pfNeedHtml": "Liitä ensin AI:n tuottama HTML.",
|
|
699
|
+
"pfCopied": "Prompt kopioitu ✓",
|
|
700
|
+
"pfThemeHeading": "Valmis teema",
|
|
701
|
+
"pfThemeHint": "Valitse teema ja julkaise heti — ei AI:ta tarvita. Käyttää yllä tekemiäsi valintoja.",
|
|
702
|
+
"pfPreview": "Esikatsele",
|
|
703
|
+
"pfPublishTheme": "Julkaise tällä teemalla",
|
|
704
|
+
"pfOrAi": "Tai suunnittele oma tekoälyllä"
|
|
538
705
|
},
|
|
539
706
|
"hero": {
|
|
540
707
|
"title": "Tietosi on sinun. AI:si työskentelee puolestasi.",
|
|
@@ -6239,6 +6406,33 @@
|
|
|
6239
6406
|
"exportSuccess": "Vietiin {count} asetusarvoa {format}-muodossa",
|
|
6240
6407
|
"migrationHint": "Vinkki: Siirrä .env tietokantaan komennolla: aimeat config import --file .env"
|
|
6241
6408
|
},
|
|
6409
|
+
"discover": {
|
|
6410
|
+
"tabLabel": "Löydä",
|
|
6411
|
+
"title": "Löydä",
|
|
6412
|
+
"desc": "Päähakemisto — löydä mitä tahansa solmusta kaikilta alueilta: kyvyt, työnkulut, tieto, päätökset, tutkimus, tuotettu materiaali, yritykset ja niiden tarjoukset, dokumentit, sovellukset ja muisti.",
|
|
6413
|
+
"searchPlaceholder": "Hae kaikkea…",
|
|
6414
|
+
"allTypes": "Kaikki",
|
|
6415
|
+
"empty": "Ei vielä osumia. Kokeile eri näkymää tai hakusanaa.",
|
|
6416
|
+
"scope": {
|
|
6417
|
+
"own": "Omat",
|
|
6418
|
+
"public": "Julkiset",
|
|
6419
|
+
"shared": "Jaetut minulle"
|
|
6420
|
+
},
|
|
6421
|
+
"type": {
|
|
6422
|
+
"capability": "Kyky",
|
|
6423
|
+
"workflow": "Työnkulku",
|
|
6424
|
+
"knowledge": "Tieto",
|
|
6425
|
+
"decision": "Päätös",
|
|
6426
|
+
"research": "Tutkimus",
|
|
6427
|
+
"material": "Materiaali",
|
|
6428
|
+
"company": "Yritys",
|
|
6429
|
+
"offering": "Tarjous",
|
|
6430
|
+
"document": "Dokumentti",
|
|
6431
|
+
"organism": "Organismi",
|
|
6432
|
+
"app": "Sovellus",
|
|
6433
|
+
"memory": "Muisti"
|
|
6434
|
+
}
|
|
6435
|
+
},
|
|
6242
6436
|
"knowledge": {
|
|
6243
6437
|
"tabLabel": "Tietopankki",
|
|
6244
6438
|
"actionBar": {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file InboxLink.js
|
|
3
|
+
* @description Mailto-style "message this person/agent" link. Renders an anchor to the inbox compose
|
|
4
|
+
* prefilled with the recipient(s) + optional subject — drop it next to any GHII/GAII (people directory,
|
|
5
|
+
* organism members, agent cards) for one-click DM. The inbox tab reads ?to=&subject= on mount and opens
|
|
6
|
+
* a prefilled compose (single recipient) or broadcast (multiple, comma-separated).
|
|
7
|
+
* @structure inboxLinkHref(to, subject) -> string · InboxLink({ to, subject?, title?, className?, children? })
|
|
8
|
+
* @usage import { InboxLink } from '/components/InboxLink.js';
|
|
9
|
+
* html`<${InboxLink} to=${gaii} title=${t('inbox.messageThis')}>✉️</${InboxLink}>`
|
|
10
|
+
* @version-history
|
|
11
|
+
* v1.0.0 — 2026-06-23 — Initial inbox-link (mailto-style deep link to a prefilled compose).
|
|
12
|
+
*/
|
|
13
|
+
import { h } from 'preact';
|
|
14
|
+
import htm from 'htm';
|
|
15
|
+
const html = htm.bind(h);
|
|
16
|
+
|
|
17
|
+
/** Build the inbox-compose deep link for one or more recipients (array or comma-joined string). */
|
|
18
|
+
export function inboxLinkHref(to, subject) {
|
|
19
|
+
const ids = Array.isArray(to) ? to.join(',') : String(to || '');
|
|
20
|
+
const params = new URLSearchParams({ tab: 'messages', to: ids });
|
|
21
|
+
if (subject) params.set('subject', subject);
|
|
22
|
+
return `/v1/profile?${params.toString()}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** A clickable link that opens the inbox composer prefilled to `to` (with an optional `subject`). */
|
|
26
|
+
export function InboxLink({ to, subject, title, className, children }) {
|
|
27
|
+
return html`<a class=${className || 'inbox-link'} href=${inboxLinkHref(to, subject)}
|
|
28
|
+
title=${title || 'Message'}>${children || '✉️'}</a>`;
|
|
29
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file companies.css
|
|
3
|
+
* @description Styles for the public company directory + company page view (cm- prefix). Two-column:
|
|
4
|
+
* directory list (left) + selected company's public profile + catalogue (right). Offer cards reuse
|
|
5
|
+
* the of-* classes from offers.css (preloaded). Theme.css variables only (dark-theme safe).
|
|
6
|
+
* @version-history v0.1.0 — 2026-06-23 — initial
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.cm-container { max-width: 1100px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
|
|
10
|
+
.cm-center { display: flex; justify-content: center; padding: 4rem 0; }
|
|
11
|
+
.cm-header { margin-bottom: 1.5rem; }
|
|
12
|
+
.cm-title { font-size: 1.8rem; font-weight: 700; color: var(--text-bright); margin: 0 0 0.4rem; }
|
|
13
|
+
.cm-desc { color: var(--text-dim); margin: 0; line-height: 1.5; }
|
|
14
|
+
|
|
15
|
+
.cm-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; max-width: 640px; margin: 1.5rem auto; }
|
|
16
|
+
|
|
17
|
+
.cm-grid { display: grid; grid-template-columns: 320px 1fr; gap: 1.5rem; align-items: start; }
|
|
18
|
+
@media (max-width: 760px) { .cm-grid { grid-template-columns: 1fr; } }
|
|
19
|
+
|
|
20
|
+
.cm-col { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.25rem; }
|
|
21
|
+
.cm-col-title { font-size: 1.1rem; font-weight: 600; color: var(--text); margin: 0 0 0.75rem; }
|
|
22
|
+
.cm-empty { color: var(--text-muted); font-style: italic; margin: 0.5rem 0 1rem; }
|
|
23
|
+
.cm-mini { color: var(--text-muted); font-size: 0.78rem; }
|
|
24
|
+
.cm-form-title { font-size: 0.95rem; font-weight: 600; color: var(--text); margin: 0.5rem 0 0.5rem; }
|
|
25
|
+
|
|
26
|
+
.cm-dir-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
|
|
27
|
+
.cm-dir-item {
|
|
28
|
+
width: 100%; text-align: left; background: var(--bg-elevated); border: 1px solid var(--border);
|
|
29
|
+
border-radius: var(--radius-sm); padding: 0.6rem 0.75rem; cursor: pointer;
|
|
30
|
+
display: flex; flex-direction: column; gap: 0.2rem; transition: border-color 0.15s, background 0.15s;
|
|
31
|
+
}
|
|
32
|
+
.cm-dir-item:hover { background: var(--bg-hover); }
|
|
33
|
+
.cm-dir-item.active { border-color: var(--accent); background: var(--accent-faint); }
|
|
34
|
+
.cm-dir-item { flex-direction: row; align-items: center; }
|
|
35
|
+
.cm-dir-logo { width: 36px; height: 36px; border-radius: var(--radius-sm); object-fit: cover; border: 1px solid var(--border); background: var(--bg-card); flex-shrink: 0; }
|
|
36
|
+
.cm-dir-text { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
|
|
37
|
+
.cm-dir-name { color: var(--text); font-weight: 600; }
|
|
38
|
+
.cm-dir-meta { color: var(--text-muted); font-size: 0.78rem; display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
|
|
39
|
+
.cm-tag { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-full); padding: 0.05rem 0.45rem; font-size: 0.7rem; color: var(--text-dim); }
|
|
40
|
+
|
|
41
|
+
.cm-profile-head { display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border); }
|
|
42
|
+
.cm-profile-id { display: flex; align-items: center; gap: 0.85rem; }
|
|
43
|
+
.cm-profile-logo { width: 56px; height: 56px; border-radius: var(--radius-sm); object-fit: cover; border: 1px solid var(--border); background: var(--bg-elevated); }
|
|
44
|
+
.cm-profile-desc { color: var(--text-dim); margin: 0.3rem 0 0; line-height: 1.5; }
|
|
45
|
+
.cm-pf-link { align-self: flex-start; margin-top: 0.5rem; }
|
|
46
|
+
|
|
47
|
+
.cm-cat-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
|
|
48
|
+
.cm-cat-item { list-style: none; }
|
|
49
|
+
.cm-not-callable { color: var(--text-muted); font-size: 0.75rem; margin: 0.2rem 0; }
|
|
50
|
+
|
|
51
|
+
.cm-result { margin-top: 0.5rem; padding: 0.6rem 0.7rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); }
|
|
52
|
+
.cm-result-msg { color: var(--text); font-size: 0.9rem; margin-bottom: 0.3rem; }
|
|
53
|
+
.cm-receipt { color: var(--accent-bright); font-size: 0.8rem; margin-top: 0.4rem; }
|
|
54
|
+
|
|
55
|
+
.cm-error { color: var(--danger); background: var(--danger-bg); border: 1px solid var(--danger-border); border-radius: var(--radius-sm); padding: 0.5rem 0.75rem; margin: 0.5rem 0; }
|
|
56
|
+
|
|
57
|
+
.cm-header-row { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; }
|
|
58
|
+
.cm-orders-panel { margin-bottom: 1.5rem; }
|
|
59
|
+
.cm-receipt-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
|
|
60
|
+
.cm-receipt-row { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.6rem 0.75rem; }
|
|
61
|
+
.cm-receipt-top { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
|
|
62
|
+
.cm-receipt-title { color: var(--text); font-weight: 600; }
|
|
63
|
+
.cm-receipt-amt { color: var(--accent-bright); font-weight: 600; white-space: nowrap; }
|
|
64
|
+
.cm-receipt-meta { display: flex; flex-wrap: wrap; gap: 0.6rem; color: var(--text-muted); font-size: 0.78rem; margin-top: 0.2rem; }
|
|
65
|
+
.cm-receipt-code { margin-top: 0.25rem; }
|