wip
This commit is contained in:
12
bun.lock
12
bun.lock
@@ -149,6 +149,7 @@
|
||||
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@heroicons/react": "^2.2.0",
|
||||
"@phosphor-icons/react": "^2.1.10",
|
||||
"@radix-ui/react-accordion": "^1.2.11",
|
||||
"@radix-ui/react-checkbox": "^1.1.4",
|
||||
"@radix-ui/react-context-menu": "^2.2.16",
|
||||
@@ -162,6 +163,9 @@
|
||||
"@radix-ui/react-switch": "^1.2.5",
|
||||
"@radix-ui/react-tabs": "^1.1.3",
|
||||
"@radix-ui/react-tooltip": "^1.1.8",
|
||||
"@squircle/core": "^1.0.6",
|
||||
"@squircle/paint-polyfill": "^1.0.6",
|
||||
"@squircle/tailwindcss": "^1.0.6",
|
||||
"@supabase/ssr": "^0.5.2",
|
||||
"@tailwindcss/vite": "^4.0.13",
|
||||
"@tanstack/react-query": "^5.85.6",
|
||||
@@ -796,6 +800,8 @@
|
||||
|
||||
"@peculiar/asn1-x509": ["@peculiar/asn1-x509@2.4.0", "", { "dependencies": { "@peculiar/asn1-schema": "^2.4.0", "asn1js": "^3.0.6", "pvtsutils": "^1.3.6", "tslib": "^2.8.1" } }, "sha512-F7mIZY2Eao2TaoVqigGMLv+NDdpwuBKU1fucHPONfzaBS4JXXCNCmfO0Z3dsy7JzKGqtDcYC1mr9JjaZQZNiuw=="],
|
||||
|
||||
"@phosphor-icons/react": ["@phosphor-icons/react@2.1.10", "", { "peerDependencies": { "react": ">= 16.8", "react-dom": ">= 16.8" } }, "sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA=="],
|
||||
|
||||
"@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="],
|
||||
|
||||
"@prisma/instrumentation": ["@prisma/instrumentation@6.11.1", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA=="],
|
||||
@@ -1010,6 +1016,12 @@
|
||||
|
||||
"@socket.io/component-emitter": ["@socket.io/component-emitter@3.1.2", "", {}, "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="],
|
||||
|
||||
"@squircle/core": ["@squircle/core@1.0.6", "", { "peerDependencies": { "@squircle/paint-polyfill": "^1.0.3" } }, "sha512-jvAIehtarEHBl6W80LNiZ9KWVKdJw6jGj/avwwbCoGVs9t+AUA5YVmUyAtEasFtoocHwxbbRsdnTeKxQ+061aQ=="],
|
||||
|
||||
"@squircle/paint-polyfill": ["@squircle/paint-polyfill@1.0.6", "", {}, "sha512-w3FotA1v53MG+R6eGM37wv1aVoW3jwymwGteGCGXEM10Gq7zYeCus5dTgcyW6fhc9piRqsFLyU8MIl+EbtM9RA=="],
|
||||
|
||||
"@squircle/tailwindcss": ["@squircle/tailwindcss@1.0.6", "", {}, "sha512-tmOWdpX7lzBAJzuvajn4NVBtC7mVORmzf/jKREYMw8iJ806Xq4FCUkrtbxkd9blzOx7TG2JwLF3avh5It/Z6TQ=="],
|
||||
|
||||
"@stablelib/base64": ["@stablelib/base64@1.0.1", "", {}, "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ=="],
|
||||
|
||||
"@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="],
|
||||
|
||||
@@ -108,6 +108,8 @@ export * from "./models/productV2Models/productItemModels/productItemModels.js";
|
||||
export * from "./models/productV2Models/productResponseModels.js";
|
||||
// 6. Product V2 Models
|
||||
export * from "./models/productV2Models/productV2Models.js";
|
||||
// 7. Product V3 Models
|
||||
export * from "./models/productV3Models/productV3Response.js";
|
||||
export * from "./models/rewardModels/referralModels/referralCodeTable.js";
|
||||
export * from "./models/rewardModels/referralModels/referralModels.js";
|
||||
export * from "./models/rewardModels/referralModels/rewardRedemptionTable.js";
|
||||
@@ -127,6 +129,8 @@ export * from "./utils/index.js";
|
||||
export * from "./utils/intervalUtils.js";
|
||||
export * from "./utils/productDisplayUtils/getProductItemRes.js";
|
||||
export * from "./utils/productDisplayUtils/sortProductItems.js";
|
||||
export * from "./utils/productDisplayUtils.js";
|
||||
export * from "./utils/productUtils/priceToInvoiceAmount.js";
|
||||
export * from "./utils/productUtils.js";
|
||||
export * from "./utils/productV3Utils/index.js";
|
||||
export * from "./utils/rewardUtils/rewardMigrationUtils.js";
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
import { z } from "zod";
|
||||
import { AppEnv } from "../genModels/genEnums.js";
|
||||
import { AttachScenario } from "../checkModels/checkPreviewModels.js";
|
||||
import { ProductPropertiesSchema } from "../productV2Models/productResponseModels.js";
|
||||
import { AppEnv } from "../genModels/genEnums.js";
|
||||
import { ProductItemInterval } from "../productV2Models/productItemModels/productItemModels.js";
|
||||
import { ProductPropertiesSchema } from "../productV2Models/productResponseModels.js";
|
||||
|
||||
export const PlanResponseSchema = z.object({
|
||||
id: z.string(),
|
||||
name: z.string().nullable(),
|
||||
group: z.string().nullable(),
|
||||
env: z.nativeEnum(AppEnv),
|
||||
is_add_on: z.boolean(),
|
||||
is_default: z.boolean(),
|
||||
archived: z.boolean().optional(),
|
||||
version: z.number(),
|
||||
created_at: z.number(),
|
||||
id: z.string(),
|
||||
name: z.string().nullable(),
|
||||
description: z.string().nullable(),
|
||||
group: z.string().nullable(),
|
||||
env: z.nativeEnum(AppEnv),
|
||||
is_add_on: z.boolean(),
|
||||
is_default: z.boolean(),
|
||||
archived: z.boolean().optional(),
|
||||
version: z.number(),
|
||||
created_at: z.number(),
|
||||
|
||||
price: z
|
||||
.object({
|
||||
amount: z.number(),
|
||||
interval: z.nativeEnum(ProductItemInterval).nullable(),
|
||||
})
|
||||
.nullable(),
|
||||
price: z
|
||||
.object({
|
||||
amount: z.number(),
|
||||
interval: z.nativeEnum(ProductItemInterval).nullable(),
|
||||
})
|
||||
.nullable(),
|
||||
|
||||
// features:
|
||||
// features:
|
||||
|
||||
// items: z.array(ProductItemResponseSchema),
|
||||
// free_trial: FreeTrialResponseSchema.nullable(),
|
||||
// base_variant_id: z.string().nullable(),
|
||||
// items: z.array(ProductItemResponseSchema),
|
||||
// free_trial: FreeTrialResponseSchema.nullable(),
|
||||
// base_variant_id: z.string().nullable(),
|
||||
|
||||
scenario: z.nativeEnum(AttachScenario).optional(),
|
||||
properties: ProductPropertiesSchema.optional(),
|
||||
scenario: z.nativeEnum(AttachScenario).optional(),
|
||||
properties: ProductPropertiesSchema.optional(),
|
||||
});
|
||||
|
||||
29
shared/utils/productV3Utils/index.ts
Normal file
29
shared/utils/productV3Utils/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type { z } from "zod";
|
||||
import type { AppEnv } from "../../models/genModels/genEnums.js";
|
||||
import type { ProductV2 } from "../../models/productV2Models/productV2Models.js";
|
||||
import type { PlanResponseSchema } from "../../models/productV3Models/productV3Response.js";
|
||||
import { extractTopLevelPrice } from "./productItemUtils/productItemUtils.js";
|
||||
|
||||
export function mapToProductV3({
|
||||
product,
|
||||
env,
|
||||
}: {
|
||||
product: ProductV2;
|
||||
env: AppEnv;
|
||||
}): z.infer<typeof PlanResponseSchema> {
|
||||
const productV3 = {
|
||||
id: product.id,
|
||||
name: product.name,
|
||||
group: product.group,
|
||||
env: env,
|
||||
is_add_on: product.is_add_on,
|
||||
is_default: product.is_default,
|
||||
version: product.version,
|
||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
created_at: product.created_at,
|
||||
price: extractTopLevelPrice(product) || null,
|
||||
};
|
||||
return productV3;
|
||||
}
|
||||
|
||||
export * from "./productItemUtils/productItemUtils.js";
|
||||
@@ -0,0 +1,40 @@
|
||||
import { ProductItemInterval } from "../../../models/productV2Models/productItemModels/productItemModels.js";
|
||||
import type { ProductV2 } from "../../../models/productV2Models/productV2Models.js";
|
||||
|
||||
export function extractTopLevelPrice(
|
||||
product: ProductV2,
|
||||
): { amount: number; interval: ProductItemInterval } | null {
|
||||
try {
|
||||
// First try to find an item with price_config
|
||||
let item = product.items.find(
|
||||
(x) =>
|
||||
x.price_config?.type === "fixed" && x.price_config?.amount !== null,
|
||||
);
|
||||
|
||||
// If no price_config, try to find an item with direct price
|
||||
if (!item) {
|
||||
item = product.items.find(
|
||||
(x) => x.price !== null && x.price !== undefined,
|
||||
);
|
||||
}
|
||||
|
||||
if(item) {
|
||||
// Prefer price_config if available, otherwise use direct price
|
||||
if (item.price_config?.type === "fixed" && item.price_config?.amount !== null) {
|
||||
return {
|
||||
amount: item.price_config.amount,
|
||||
interval: item.price_config.interval,
|
||||
};
|
||||
} else if (item.price !== null && item.price !== undefined) {
|
||||
return {
|
||||
amount: item.price,
|
||||
interval: ProductItemInterval.Month, // Default interval if not specified
|
||||
};
|
||||
}
|
||||
}
|
||||
} catch (error: unknown) {
|
||||
console.error("Error extracting price:", error);
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
208
temp_svg_analysis.svg
Normal file
208
temp_svg_analysis.svg
Normal file
@@ -0,0 +1,208 @@
|
||||
<svg width="220" height="148" viewBox="0 0 220 148" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="220" height="148" fill="#FAFAF9"/>
|
||||
<path d="M11.5 14.5L13 16L16.5 12.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14 20C17.3137 20 20 17.3137 20 14C20 10.6863 17.3137 8 14 8C10.6863 8 8 10.6863 8 14C8 17.3137 10.6863 20 14 20Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38 20C41.3137 20 44 17.3137 44 14C44 10.6863 41.3137 8 38 8C34.6863 8 32 10.6863 32 14C32 17.3137 34.6863 20 38 20Z" stroke="#666666" stroke-width="1.1" stroke-miterlimit="10"/>
|
||||
<path d="M35.5 14H40.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38 11.5V16.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M64 12L60 16" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M60 12L64 16" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M62 20C65.3137 20 68 17.3137 68 14C68 10.6863 65.3137 8 62 8C58.6863 8 56 10.6863 56 14C56 17.3137 58.6863 20 62 20Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M83.7931 19.5001H81C80.8674 19.5001 80.7402 19.4474 80.6464 19.3536C80.5527 19.2599 80.5 19.1327 80.5 19.0001V16.207C80.5001 16.0745 80.5527 15.9475 80.6463 15.8538L88.3537 8.14633C88.4475 8.05263 88.5746 8 88.7072 8C88.8397 8 88.9669 8.05263 89.0606 8.14633L91.8537 10.9376C91.9474 11.0313 92.0001 11.1585 92.0001 11.291C92.0001 11.4236 91.9474 11.5507 91.8537 11.6445L84.1462 19.3538C84.0526 19.4474 83.9256 19.5 83.7931 19.5001Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M86.5 10L90 13.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M112.424 16.425H113.297C114.01 16.425 114.367 16.425 114.639 16.2863C114.879 16.1642 115.073 15.9695 115.195 15.7299C115.334 15.4576 115.334 15.1011 115.334 14.388V10.702C115.334 9.98902 115.334 9.63251 115.195 9.36018C115.073 9.12062 114.879 8.92586 114.639 8.8038C114.367 8.66504 114.01 8.66504 113.297 8.66504H109.611C108.898 8.66504 108.542 8.66504 108.269 8.8038C108.03 8.92586 107.835 9.12062 107.713 9.36018C107.574 9.63251 107.574 9.98902 107.574 10.702V11.575" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M110.387 11.5752H106.701C105.988 11.5752 105.632 11.5752 105.359 11.714C105.12 11.836 104.925 12.0308 104.803 12.2703C104.664 12.5427 104.664 12.8992 104.664 13.6122V17.2982C104.664 18.0112 104.664 18.3677 104.803 18.6401C104.925 18.8796 105.12 19.0744 105.359 19.1964C105.632 19.3352 105.988 19.3352 106.701 19.3352H110.387C111.1 19.3352 111.457 19.3352 111.729 19.1964C111.968 19.0744 112.163 18.8796 112.285 18.6401C112.424 18.3677 112.424 18.0112 112.424 17.2982V13.6122C112.424 12.8992 112.424 12.5427 112.285 12.2703C112.163 12.0308 111.968 11.836 111.729 11.714C111.457 11.5752 111.1 11.5752 110.387 11.5752Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M139.334 10.124H128.664" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M132.545 13.0303V16.9103" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M135.451 13.0303V16.9103" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M138.363 10.124V19.339C138.363 19.4677 138.312 19.591 138.221 19.682C138.13 19.7729 138.006 19.824 137.878 19.824H130.118C129.989 19.824 129.866 19.7729 129.775 19.682C129.684 19.591 129.633 19.4677 129.633 19.339V10.124" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M136.42 10.1163V9.14627C136.42 8.88901 136.318 8.64229 136.136 8.46038C135.954 8.27847 135.708 8.17627 135.45 8.17627H132.54C132.283 8.17627 132.036 8.27847 131.854 8.46038C131.673 8.64229 131.57 8.88901 131.57 9.14627V10.1163" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M156.4 11.6C156.841 11.6 157.2 11.2418 157.2 10.8C157.2 10.3582 156.841 10 156.4 10C155.958 10 155.6 10.3582 155.6 10.8C155.6 11.2418 155.958 11.6 156.4 11.6Z" fill="#777777"/>
|
||||
<path d="M159.599 11.6C160.041 11.6 160.399 11.2418 160.399 10.8C160.399 10.3582 160.041 10 159.599 10C159.157 10 158.799 10.3582 158.799 10.8C158.799 11.2418 159.157 11.6 159.599 11.6Z" fill="#777777"/>
|
||||
<path d="M156.4 14.8002C156.841 14.8002 157.2 14.442 157.2 14.0002C157.2 13.5584 156.841 13.2002 156.4 13.2002C155.958 13.2002 155.6 13.5584 155.6 14.0002C155.6 14.442 155.958 14.8002 156.4 14.8002Z" fill="#777777"/>
|
||||
<path d="M159.599 14.8002C160.041 14.8002 160.399 14.442 160.399 14.0002C160.399 13.5584 160.041 13.2002 159.599 13.2002C159.157 13.2002 158.799 13.5584 158.799 14.0002C158.799 14.442 159.157 14.8002 159.599 14.8002Z" fill="#777777"/>
|
||||
<path d="M156.4 17.9999C156.841 17.9999 157.2 17.6417 157.2 17.1999C157.2 16.7581 156.841 16.3999 156.4 16.3999C155.958 16.3999 155.6 16.7581 155.6 17.1999C155.6 17.6417 155.958 17.9999 156.4 17.9999Z" fill="#777777"/>
|
||||
<path d="M159.599 17.9999C160.041 17.9999 160.399 17.6417 160.399 17.1999C160.399 16.7581 160.041 16.3999 159.599 16.3999C159.157 16.3999 158.799 16.7581 158.799 17.1999C158.799 17.6417 159.157 17.9999 159.599 17.9999Z" fill="#777777"/>
|
||||
<g clip-path="url(#clip0_411_3630)">
|
||||
<path d="M186.5 14.5H189.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M188 13V16" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M180.75 16C182.821 16 184.5 14.3211 184.5 12.25C184.5 10.1789 182.821 8.5 180.75 8.5C178.679 8.5 177 10.1789 177 12.25C177 14.3211 178.679 16 180.75 16Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M175.5 18.5C176.784 16.9719 178.598 16 180.75 16C182.902 16 184.716 16.9719 186 18.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M206 16.5V20" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M208.5 14L212 14" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M200 14L203.5 14" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M200.804 11C200.143 12.1438 199.879 13.4736 200.051 14.7831C200.224 16.0925 200.823 17.3086 201.757 18.2425C202.691 19.1765 203.907 19.7762 205.217 19.9486C206.526 20.1211 207.856 19.8567 209 19.1963C210.144 18.536 211.038 17.5167 211.543 16.2965C212.049 15.0763 212.137 13.7234 211.796 12.4476C211.454 11.1718 210.701 10.0444 209.653 9.24026C208.605 8.43612 207.322 8.00016 206.001 8V11.5C206.551 11.5001 207.086 11.6818 207.522 12.0169C207.959 12.352 208.273 12.8218 208.415 13.3534C208.557 13.8849 208.52 14.4486 208.31 14.957C208.099 15.4654 207.727 15.8901 207.25 16.1652C206.773 16.4403 206.219 16.5505 205.674 16.4786C205.128 16.4067 204.621 16.1568 204.232 15.7677C203.843 15.3785 203.593 14.8719 203.522 14.3262C203.45 13.7806 203.56 13.2266 203.835 12.75L200.804 11Z" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.46 33.8398H8.54C7.96562 33.8398 7.5 34.3055 7.5 34.8798V41.1198C7.5 41.6942 7.96562 42.1598 8.54 42.1598H19.46C20.0344 42.1598 20.5 41.6942 20.5 41.1198V34.8798C20.5 34.3055 20.0344 33.8398 19.46 33.8398Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M15.3008 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.6992 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10.0996 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M43.46 33.8398H32.54C31.9656 33.8398 31.5 34.3055 31.5 34.8798V41.1198C31.5 41.6942 31.9656 42.1598 32.54 42.1598H43.46C44.0344 42.1598 44.5 41.6942 44.5 41.1198V34.8798C44.5 34.3055 44.0344 33.8398 43.46 33.8398Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M39.3008 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M41.9043 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.6992 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M41.9043 37.9951H34.6252" stroke="#666666" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M34.0996 35.9199V40.0799" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M60 37.5C62.7614 37.5 65 36.4926 65 35.25C65 34.0074 62.7614 33 60 33C57.2386 33 55 34.0074 55 35.25C55 36.4926 57.2386 37.5 60 37.5Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M55 35.25V37.75C55 38.9925 57.2387 40 60 40C62.7613 40 65 38.9925 65 37.75V35.25" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M65.0001 36.0449C67.2826 36.2537 69.0001 37.1612 69.0001 38.2499C69.0001 39.4924 66.7613 40.4999 64.0001 40.4999C62.7751 40.4999 61.6526 40.3018 60.7832 39.9724" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M59 39.955V40.75C59 41.9925 61.2387 43 64 43C66.7613 43 69 41.9925 69 40.75V38.25" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M83.7559 38.1543C86.5173 38.1543 88.7559 37.1469 88.7559 35.9043C88.7559 34.6617 86.5173 33.6543 83.7559 33.6543C80.9944 33.6543 78.7559 34.6617 78.7559 35.9043C78.7559 37.1469 80.9944 38.1543 83.7559 38.1543Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M78.7559 35.9043V38.4043C78.7559 39.6468 80.9946 40.6543 83.7559 40.6543C86.5171 40.6543 88.7559 39.6468 88.7559 38.4043V35.9043" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M88.7579 36.6992C91.0404 36.908 92.7579 37.8155 92.7579 38.9042C92.7579 40.1467 90.5191 41.1542 87.7579 41.1542C86.5329 41.1542 85.4104 40.9561 84.541 40.6267" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M82.7559 40.6093V41.4043C82.7559 42.6468 84.9946 43.6543 87.7559 43.6543C90.5171 43.6543 92.7559 42.6468 92.7559 41.4043V38.9043" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M89.5918 32.1309L90.7168 33.2559L93.3418 30.6309" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<g clip-path="url(#clip1_411_3630)">
|
||||
<path d="M107.756 38.1543C110.517 38.1543 112.756 37.1469 112.756 35.9043C112.756 34.6617 110.517 33.6543 107.756 33.6543C104.994 33.6543 102.756 34.6617 102.756 35.9043C102.756 37.1469 104.994 38.1543 107.756 38.1543Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M102.756 35.9043V38.4043C102.756 39.6468 104.995 40.6543 107.756 40.6543C110.517 40.6543 112.756 39.6468 112.756 38.4043V35.9043" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M112.758 36.6992C115.04 36.908 116.758 37.8155 116.758 38.9042C116.758 40.1467 114.519 41.1542 111.758 41.1542C110.533 41.1542 109.41 40.9561 108.541 40.6267" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M106.756 40.6093V41.4043C106.756 42.6468 108.995 43.6543 111.756 43.6543C114.517 43.6543 116.756 42.6468 116.756 41.4043V38.9043" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M111.23 33.4551L112.918 35.1426L116.855 31.2051" stroke="white" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M111.51 33.1016L113.197 34.7891L117.135 30.8516" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M132 37.5C134.761 37.5 137 36.4926 137 35.25C137 34.0074 134.761 33 132 33C129.239 33 127 34.0074 127 35.25C127 36.4926 129.239 37.5 132 37.5Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M127 35.25V37.75C127 38.9925 129.239 40 132 40C134.761 40 137 38.9925 137 37.75V35.25" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M137 36.0449C139.283 36.2537 141 37.1612 141 38.2499C141 39.4924 138.761 40.4999 136 40.4999C134.775 40.4999 133.653 40.3018 132.783 39.9724" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M131 39.955V40.75C131 41.9925 133.239 43 136 43C138.761 43 141 41.9925 141 40.75V38.25" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.973 43.0278L139.03 32.9707" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.854 44.5469L140.646 32.7539" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M158 32.8423V37.9923" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M161.091 33.3574C162.641 34.3681 163.666 36.0039 163.666 37.9924C163.666 39.4949 163.069 40.9358 162.007 41.9982C160.944 43.0606 159.503 43.6574 158.001 43.6574C156.498 43.6574 155.058 43.0606 153.995 41.9982C152.933 40.9358 152.336 39.4949 152.336 37.9924C152.336 36.0039 153.361 34.3681 154.911 33.3574" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M187 43.5H177C176.867 43.5 176.74 43.4473 176.646 43.3536C176.553 43.2598 176.5 43.1326 176.5 43V34.5L177.5 32.5H186.5L187.5 34.5V43C187.5 43.1326 187.447 43.2598 187.354 43.3536C187.26 43.4473 187.133 43.5 187 43.5Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M176.5 34.5H187.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M182 36.5V41.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M180 39.5L182 41.5L184 39.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M211 43.5H201C200.867 43.5 200.74 43.4473 200.646 43.3536C200.553 43.2598 200.5 43.1326 200.5 43V34.5L201.5 32.5H210.5L211.5 34.5V43C211.5 43.1326 211.447 43.2598 211.354 43.3536C211.26 43.4473 211.133 43.5 211 43.5Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M200.5 34.5H211.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M203.857 39.2558L205.143 40.5415L208.143 37.5415" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M17 56.5H19.5V59" stroke="#666666" stroke-width="1.07" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11 67.5H8.5V65" stroke="#666666" stroke-width="1.07" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M19.5 65V67.5H17" stroke="#666666" stroke-width="1.07" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8.5 59V56.5H11" stroke="#666666" stroke-width="1.07" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M17 59H11V65H17V59Z" stroke="#666666" stroke-width="1.07" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.5 62.5L37 64L40.5 60.5" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M43 56.5H33C32.7239 56.5 32.5 56.7239 32.5 57V67C32.5 67.2761 32.7239 67.5 33 67.5H43C43.2761 67.5 43.5 67.2761 43.5 67V57C43.5 56.7239 43.2761 56.5 43 56.5Z" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M61.9993 64V65.3333M57.9993 68H65.9993C66.353 68 66.6921 67.8595 66.9422 67.6095C67.1922 67.3594 67.3327 67.0203 67.3327 66.6667V62.6667C67.3327 62.313 67.1922 61.9739 66.9422 61.7239C66.6921 61.4738 66.353 61.3333 65.9993 61.3333H57.9993C57.6457 61.3333 57.3066 61.4738 57.0565 61.7239C56.8065 61.9739 56.666 62.313 56.666 62.6667V66.6667C56.666 67.0203 56.8065 67.3594 57.0565 67.6095C57.3066 67.8595 57.6457 68 57.9993 68ZM64.666 61.3333V58.6667C64.666 57.9594 64.3851 57.2811 63.885 56.781C63.3849 56.281 62.7066 56 61.9993 56C61.2921 56 60.6138 56.281 60.1137 56.781C59.6136 57.2811 59.3327 57.9594 59.3327 58.6667V61.3333H64.666Z" stroke="#666666" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M79.5 57.5V60.5H82.5" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M82.2244 65.9999C83.0105 66.7419 83.9979 67.2357 85.0632 67.4197C86.1284 67.6037 87.2242 67.4698 88.2137 67.0345C89.2033 66.5993 90.0426 65.8821 90.6268 64.9726C91.2111 64.0631 91.5144 63.0016 91.4988 61.9207C91.4832 60.8398 91.1494 59.7875 90.5392 58.8952C89.929 58.0029 89.0693 57.3102 88.0677 56.9037C87.066 56.4972 85.9668 56.3949 84.9073 56.6095C83.8478 56.8242 82.8751 57.3462 82.1106 58.1106L79.5 60.4999" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M107.5 60H104.5V57" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M104.5 59.9999L106.267 58.2324C107.291 57.2089 108.677 56.6301 110.125 56.6217C111.572 56.6133 112.965 57.1758 114 58.1874" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M112.5 64H115.5V67" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M115.5 64L113.733 65.7675C112.709 66.7911 111.323 67.3698 109.875 67.3782C108.428 67.3867 107.035 66.8241 106 65.8125" stroke="#666666" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M137.857 59.8571L139.143 58.5714L137.857 57.2856" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.857 61.9999C128.857 61.0905 129.219 60.2185 129.862 59.5755C130.505 58.9325 131.377 58.5713 132.286 58.5713H139.143" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M130.143 64.1431L128.857 65.4288L130.143 66.7145" stroke="#666666" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M139.143 62C139.143 62.9093 138.782 63.7814 138.139 64.4244C137.496 65.0673 136.624 65.4286 135.715 65.4286H128.857" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M158 68C161.314 68 164 65.3137 164 62C164 58.6863 161.314 56 158 56C154.686 56 152 58.6863 152 62C152 65.3137 154.686 68 158 68Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M158 56V58.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M158 65.5V68" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M152 62H154.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M161.5 62H164" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.502 57H188.002V59.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M178.5 67H176V64.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M188.002 64.5V67H185.502" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M176 59.5V57H178.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M179 59.5V64.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185 59.5V64.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M183.002 59.5V64.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M181 59.5V64.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 59V62L208.5 63.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M202.5 60.5H200V58" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M202.225 66.0002C203.011 66.7421 203.999 67.2359 205.064 67.4198C206.129 67.6037 207.225 67.4697 208.214 67.0344C209.204 66.5991 210.043 65.8818 210.627 64.9723C211.212 64.0627 211.515 63.0012 211.499 61.9203C211.483 60.8394 211.15 59.7871 210.539 58.8948C209.929 58.0026 209.069 57.31 208.068 56.9036C207.066 56.4971 205.967 56.3949 204.907 56.6096C203.848 56.8243 202.875 57.3465 202.111 58.1109C201.375 58.8559 200.767 59.5584 200 60.5002" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M14 92C17.3137 92 20 89.3137 20 86C20 82.6863 17.3137 80 14 80C10.6863 80 8 82.6863 8 86C8 89.3137 10.6863 92 14 92Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M14 82.5V86H17.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<g clip-path="url(#clip2_411_3630)">
|
||||
<path d="M36.75 88C38.8211 88 40.5 86.3211 40.5 84.25C40.5 82.1789 38.8211 80.5 36.75 80.5C34.6789 80.5 33 82.1789 33 84.25C33 86.3211 34.6789 88 36.75 88Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M31.5 90.5C32.7844 88.9719 34.5975 88 36.75 88C38.9025 88 40.7156 88.9719 42 90.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M42.5 87L43.5 88L45.5 86" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</g>
|
||||
<path d="M62 88C63.3807 88 64.5 86.8807 64.5 85.5C64.5 84.1193 63.3807 83 62 83C60.6193 83 59.5 84.1193 59.5 85.5C59.5 86.8807 60.6193 88 62 88Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M57.9883 90.4604C58.3645 89.7195 58.9385 89.0971 59.6467 88.6624C60.355 88.2277 61.1698 87.9976 62.0008 87.9976C62.8318 87.9976 63.6466 88.2277 64.3548 88.6624C65.0631 89.0971 65.6371 89.7195 66.0133 90.4604" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M67.9166 85C68.1276 86.2534 67.9347 87.5413 67.3659 88.6779C66.7971 89.8145 65.8819 90.7409 64.7522 91.3234C63.6226 91.9059 62.337 92.1142 61.0813 91.9184C59.8255 91.7227 58.6644 91.1328 57.7657 90.2341C56.867 89.3354 56.2771 88.1743 56.0813 86.9185C55.8855 85.6627 56.0939 84.3772 56.6764 83.2476C57.2589 82.1179 58.1853 81.2026 59.3219 80.6338C60.4585 80.0651 61.7464 79.8722 62.9998 80.0832" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M65.5 81.5L66.5 82.5L68.5 80.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M90.7037 81.2959H81.2947C81.0348 81.2959 80.8242 81.5065 80.8242 81.7663V91.1753C80.8242 91.4352 81.0348 91.6458 81.2947 91.6458H90.7037C90.9635 91.6458 91.1741 91.4352 91.1741 91.1753V81.7663C91.1741 81.5065 90.9635 81.2959 90.7037 81.2959Z" stroke="#666666" stroke-width="1.03499" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M88.8223 80.3545V82.2363" stroke="#666666" stroke-width="1.03499" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M83.1777 80.3545V82.2363" stroke="#666666" stroke-width="1.03499" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M80.8242 84.1201H91.1741" stroke="#666666" stroke-width="1.03499" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M83.8828 87.883L85.2942 89.2944L88.1169 86.4717" stroke="#666666" stroke-width="1.03499" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M110 82.5V83.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M110 88.5V89.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M110 92C113.314 92 116 89.3137 116 86C116 82.6863 113.314 80 110 80C106.686 80 104 82.6863 104 86C104 89.3137 106.686 92 110 92Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M108.5 88.5H110.75C111.082 88.5 111.399 88.3683 111.634 88.1339C111.868 87.8995 112 87.5815 112 87.25C112 86.9185 111.868 86.6005 111.634 86.3661C111.399 86.1317 111.082 86 110.75 86H109.25C108.918 86 108.601 85.8683 108.366 85.6339C108.132 85.3995 108 85.0815 108 84.75C108 84.4185 108.132 84.1005 108.366 83.8661C108.601 83.6317 108.918 83.5 109.25 83.5H111.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M134 92C137.314 92 140 89.3137 140 86C140 82.6863 137.314 80 134 80C130.686 80 128 82.6863 128 86C128 89.3137 130.686 92 134 92Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M134 88C135.381 88 136.5 86.8807 136.5 85.5C136.5 84.1193 135.381 83 134 83C132.619 83 131.5 84.1193 131.5 85.5C131.5 86.8807 132.619 88 134 88Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M129.988 90.4604C130.364 89.7195 130.939 89.0971 131.647 88.6624C132.355 88.2277 133.17 87.9976 134.001 87.9976C134.832 87.9976 135.647 88.2277 136.355 88.6624C137.063 89.0971 137.637 89.7195 138.013 90.4604" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M155.076 85.4248L156.243 84.2576L155.076 83.0903M157.411 86.592H159.745" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M162.086 80.752H153.915C153.271 80.752 152.748 81.2745 152.748 81.9192V90.0898C152.748 90.7345 153.271 91.2571 153.915 91.2571H162.086C162.731 91.2571 163.253 90.7345 163.253 90.0898V81.9192C163.253 81.2745 162.731 80.752 162.086 80.752Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M188.5 82.4901V89.5089C188.499 89.5972 188.475 89.6838 188.429 89.7595C188.384 89.8352 188.319 89.8973 188.241 89.9394C188.163 89.9815 188.076 90.0019 187.987 89.9986C187.899 89.9953 187.813 89.9684 187.739 89.9207L182.227 86.4114C182.157 86.3674 182.1 86.3066 182.061 86.2346C182.021 86.1625 182 86.0817 182 85.9995C182 85.9173 182.021 85.8364 182.061 85.7644C182.1 85.6924 182.157 85.6316 182.227 85.5876L187.739 82.0782C187.813 82.0305 187.899 82.0036 187.987 82.0003C188.076 81.9971 188.163 82.0175 188.241 82.0596C188.319 82.1016 188.384 82.1637 188.429 82.2395C188.475 82.3152 188.499 82.4017 188.5 82.4901Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M182 82.4901V89.5089C181.999 89.5972 181.975 89.6838 181.929 89.7595C181.884 89.8352 181.819 89.8973 181.741 89.9394C181.663 89.9815 181.576 90.0019 181.487 89.9986C181.399 89.9953 181.313 89.9684 181.239 89.9207L175.727 86.4114C175.657 86.3674 175.6 86.3066 175.561 86.2346C175.521 86.1625 175.5 86.0817 175.5 85.9995C175.5 85.9173 175.521 85.8364 175.561 85.7644C175.6 85.6924 175.657 85.6316 175.727 85.5876L181.239 82.0782C181.313 82.0305 181.399 82.0036 181.487 82.0003C181.576 81.9971 181.663 82.0175 181.741 82.0596C181.819 82.1016 181.884 82.1637 181.929 82.2395C181.975 82.3152 181.999 82.4017 182 82.4901Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 91C208.761 91 211 88.7614 211 86C211 83.2386 208.761 81 206 81C203.239 81 201 83.2386 201 86C201 88.7614 203.239 91 206 91Z" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 86H212.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 86L202.75 80.3706" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 86L202.75 91.6294" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 81V79.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M201.67 83.5L200.371 82.75" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M201 86H199.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M201.67 88.5L200.371 89.25" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 91V92.5" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M208.5 90.3301L209.25 91.6295" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M210.33 88.5L211.629 89.25" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M210.33 83.5L211.629 82.75" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M208.5 81.67L209.25 80.3706" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M11.9663 109.681C11.7641 109.178 11.6609 108.64 11.6623 108.098C11.6623 105.829 13.49 103.944 15.7576 103.871C16.3368 103.852 16.9139 103.952 17.453 104.165C17.9921 104.378 18.4818 104.699 18.8917 105.108C19.3017 105.518 19.6231 106.008 19.8362 106.547C20.0493 107.086 20.1494 107.663 20.1304 108.242C20.0557 110.51 18.1704 112.337 15.9016 112.337C15.3593 112.339 14.8218 112.235 14.3186 112.033L13.5441 112.808H12.1327V114.219H10.7214V115.63H8.83959C8.71482 115.63 8.59516 115.581 8.50693 115.493C8.41871 115.404 8.36914 115.285 8.36914 115.16V113.473C8.3692 113.348 8.41869 113.229 8.50675 113.141L11.9663 109.681Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M17.0729 107.636C17.4626 107.636 17.7785 107.321 17.7785 106.931C17.7785 106.541 17.4626 106.225 17.0729 106.225C16.6831 106.225 16.3672 106.541 16.3672 106.931C16.3672 107.321 16.6831 107.636 17.0729 107.636Z" fill="#666666"/>
|
||||
<path d="M37.9997 115.82C41.214 115.82 43.8197 113.214 43.8197 110C43.8197 106.786 41.214 104.18 37.9997 104.18C34.7854 104.18 32.1797 106.786 32.1797 110C32.1797 113.214 34.7854 115.82 37.9997 115.82Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M37.9997 115.82C41.214 115.82 43.8197 113.214 43.8197 110C43.8197 106.786 41.214 104.18 37.9997 104.18C34.7854 104.18 32.1797 106.786 32.1797 110C32.1797 113.214 34.7854 115.82 37.9997 115.82Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M37.0305 110.71C36.6607 110.496 36.3717 110.167 36.2082 109.772C36.0448 109.378 36.0161 108.94 36.1267 108.528C36.2372 108.115 36.4807 107.751 36.8196 107.491C37.1584 107.231 37.5735 107.09 38.0005 107.09C38.4276 107.09 38.8427 107.231 39.1815 107.491C39.5204 107.751 39.7639 108.115 39.8744 108.528C39.985 108.94 39.9563 109.378 39.7929 109.772C39.6294 110.167 39.3404 110.496 38.9705 110.71L39.9405 112.909H36.0605L37.0305 110.71Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M60.0605 111.455C60.0605 112.258 60.9293 112.91 62.0005 112.91C63.0718 112.91 63.9405 112.258 63.9405 111.455C63.9405 109.515 60.1685 110.242 60.1685 108.545C60.1685 107.742 60.9293 107.09 62.0005 107.09C62.8038 107.09 63.4331 107.454 63.698 107.979" stroke="#666666" stroke-width="1.04" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M66.8491 104.665H57.1491C56.8812 104.665 56.6641 104.882 56.6641 105.15V114.85C56.6641 115.118 56.8812 115.335 57.1491 115.335H66.8491C67.1169 115.335 67.3341 115.118 67.3341 114.85V105.15C67.3341 104.882 67.1169 104.665 66.8491 104.665Z" stroke="#666666" stroke-width="1.04" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M91.3347 107.067H80.6647C80.3968 107.067 80.1797 107.285 80.1797 107.552V109.492C80.1797 109.76 80.3968 109.977 80.6647 109.977H91.3347C91.6025 109.977 91.8197 109.76 91.8197 109.492V107.552C91.8197 107.285 91.6025 107.067 91.3347 107.067Z" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M90.8504 109.978V114.343C90.8504 114.471 90.7993 114.595 90.7083 114.685C90.6174 114.776 90.494 114.828 90.3654 114.828H81.6354C81.5068 114.828 81.3834 114.776 81.2924 114.685C81.2015 114.595 81.1504 114.471 81.1504 114.343V109.978" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M86 107.067V114.827" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M88.9579 104.11C89.5241 104.676 89.5575 105.629 88.9579 106.16C87.9327 107.068 86 107.068 86 107.068C86 107.068 86 105.135 86.9094 104.11C87.4386 103.51 88.3917 103.543 88.9579 104.11Z" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M83.0427 104.11C82.4765 104.676 82.4432 105.629 83.0427 106.16C84.0679 107.068 86.0006 107.068 86.0006 107.068C86.0006 107.068 86.0006 105.135 85.0913 104.11C84.562 103.51 83.609 103.543 83.0427 104.11Z" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M110.001 115.825V109.989M109.417 115.667C109.594 115.77 109.796 115.824 110.001 115.824C110.205 115.824 110.407 115.77 110.584 115.667L114.67 113.333C114.847 113.231 114.994 113.083 115.096 112.906C115.199 112.729 115.253 112.528 115.253 112.323V107.654C115.253 107.45 115.199 107.249 115.096 107.071C114.994 106.894 114.847 106.747 114.67 106.645L110.584 104.31C110.407 104.208 110.205 104.154 110.001 104.154C109.796 104.154 109.594 104.208 109.417 104.31L105.332 106.645C105.154 106.747 105.007 106.894 104.905 107.071C104.802 107.249 104.748 107.45 104.748 107.654V112.323C104.748 112.528 104.802 112.729 104.905 112.906C105.007 113.083 105.154 113.231 105.332 113.333L109.417 115.667Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M104.916 107.081L109.999 109.999L115.083 107.081" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M128.748 104.752V114.09C128.748 114.399 128.871 114.696 129.09 114.915C129.309 115.134 129.606 115.257 129.915 115.257H139.253" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M137.505 105.912H136.338C136.015 105.912 135.754 106.173 135.754 106.496V112.332C135.754 112.654 136.015 112.916 136.338 112.916H137.505C137.827 112.916 138.088 112.654 138.088 112.332V106.496C138.088 106.173 137.827 105.912 137.505 105.912Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M132.827 107.662H131.66C131.337 107.662 131.076 107.923 131.076 108.245V112.331C131.076 112.653 131.337 112.914 131.66 112.914H132.827C133.149 112.914 133.411 112.653 133.411 112.331V108.245C133.411 107.923 133.149 107.662 132.827 107.662Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M153.676 114.05V105.95C153.676 105.592 153.818 105.249 154.071 104.996C154.324 104.742 154.668 104.6 155.026 104.6H161.776C161.919 104.6 162.056 104.657 162.158 104.758C162.259 104.86 162.316 104.997 162.316 105.14V114.86C162.316 115.003 162.259 115.141 162.158 115.242C162.056 115.343 161.919 115.4 161.776 115.4H155.026C154.668 115.4 154.324 115.258 154.071 115.005C153.818 114.752 153.676 114.408 153.676 114.05ZM153.676 114.05C153.676 113.692 153.818 113.349 154.071 113.096C154.324 112.842 154.668 112.7 155.026 112.7H162.316" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M179.5 113.5V110.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M187 108.5C187 108.5 185.875 108 187 106C188.125 104 187 103.5 187 103.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M184.5 108.5C184.5 108.5 183.375 108 184.5 106C185.625 104 184.5 103.5 184.5 103.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M177 104.5L187 115.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.158 110.5H188.001C188.133 110.5 188.26 110.553 188.354 110.646C188.448 110.74 188.501 110.867 188.501 111V113C188.501 113.133 188.448 113.26 188.354 113.354C188.26 113.447 188.133 113.5 188.001 113.5H187.886" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.182 113.5H176C175.867 113.5 175.74 113.447 175.646 113.354C175.553 113.26 175.5 113.133 175.5 113V111C175.5 110.867 175.553 110.74 175.646 110.646C175.74 110.553 175.867 110.5 176 110.5H182.454" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 116C209.314 116 212 113.314 212 110C212 106.686 209.314 104 206 104C202.686 104 200 106.686 200 110C200 113.314 202.686 116 206 116Z" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M206 104V116" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M210 105.528V114.472" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M208 104.342V115.658" stroke="#666666" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M18.5 129H9.5C9.22386 129 9 129.224 9 129.5V138.5C9 138.776 9.22386 139 9.5 139H18.5C18.7761 139 19 138.776 19 138.5V129.5C19 129.224 18.7761 129 18.5 129Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M14 129V139" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M9 134H19" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M35.5 134H40.5" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M38 140C41.3137 140 44 137.314 44 134C44 130.686 41.3137 128 38 128C34.6863 128 32 130.686 32 134C32 137.314 34.6863 140 38 140Z" stroke="#666666" stroke-width="1.1" strokeMiterlimit="10"/>
|
||||
<path d="M62 131.5C62.8284 131.5 63.5 130.828 63.5 130C63.5 129.172 62.8284 128.5 62 128.5C61.1716 128.5 60.5 129.172 60.5 130C60.5 130.828 61.1716 131.5 62 131.5Z" stroke="#666666" stroke-width="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M62 139.5V131.5" stroke="#666666" stroke-width="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M57.5 133.5H56C56 135.091 56.6321 136.617 57.7574 137.743C58.8826 138.868 60.4087 139.5 62 139.5C63.5913 139.5 65.1174 138.868 66.2426 137.743C67.3679 136.617 68 135.091 68 133.5H66.5" stroke="#666666" stroke-width="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M84.5 129H81.5C81.2239 129 81 129.224 81 129.5V132.5C81 132.776 81.2239 133 81.5 133H84.5C84.7761 133 85 132.776 85 132.5V129.5C85 129.224 84.7761 129 84.5 129Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M90.5 129H87.5C87.2239 129 87 129.224 87 129.5V132.5C87 132.776 87.2239 133 87.5 133H90.5C90.7761 133 91 132.776 91 132.5V129.5C91 129.224 90.7761 129 90.5 129Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M84.5 135H81.5C81.2239 135 81 135.224 81 135.5V138.5C81 138.776 81.2239 139 81.5 139H84.5C84.7761 139 85 138.776 85 138.5V135.5C85 135.224 84.7761 135 84.5 135Z" stroke="#666666" stroke-width="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M90.5 135H87.5C87.2239 135 87 135.224 87 135.5V138.5C87 138.776 87.2239 139 87.5 139H90.5C90.7761 139 91 138.776 91 138.5V135.5C91 135.224 90.7761 135 90.5 135Z" stroke="#666666" stroke-width="0.7" strokeLinecap="round" strokeLinejoin="round" strokeDasharray="4 4"/>
|
||||
<path d="M108.5 129H105.5C105.224 129 105 129.224 105 129.5V132.5C105 132.776 105.224 133 105.5 133H108.5C108.776 133 109 132.776 109 132.5V129.5C109 129.224 108.776 129 108.5 129Z" fill="#666666"/>
|
||||
<path d="M114.5 129H111.5C111.224 129 111 129.224 111 129.5V132.5C111 132.776 111.224 133 111.5 133H114.5C114.776 133 115 132.776 115 132.5V129.5C115 129.224 114.776 129 114.5 129Z" fill="#666666"/>
|
||||
<path d="M108.5 135H105.5C105.224 135 105 135.224 105 135.5V138.5C105 138.776 105.224 139 105.5 139H108.5C108.776 139 109 138.776 109 138.5V135.5C109 135.224 108.776 135 108.5 135Z" fill="#666666"/>
|
||||
<path d="M114.5 135H111.5C111.224 135 111 135.224 111 135.5V138.5C111 138.776 111.224 139 111.5 139H114.5C114.776 139 115 138.776 115 138.5V135.5C115 135.224 114.776 135 114.5 135Z" fill="#666666"/>
|
||||
<path d="M132.665 135.508L132.121 136.121C131.702 136.541 131.167 136.827 130.585 136.942C130.003 137.058 129.4 136.999 128.852 136.772C128.304 136.545 127.835 136.16 127.506 135.667C127.176 135.173 127 134.593 127 134C127 133.407 127.176 132.827 127.506 132.333C127.835 131.84 128.304 131.455 128.852 131.228C129.4 131.001 130.003 130.942 130.585 131.058C131.167 131.173 131.702 131.459 132.121 131.879L135.879 136.121C136.298 136.541 136.833 136.827 137.415 136.942C137.997 137.058 138.6 136.999 139.148 136.772C139.696 136.545 140.165 136.16 140.495 135.667C140.824 135.173 141 134.593 141 134C141 133.407 140.824 132.827 140.495 132.333C140.165 131.84 139.696 131.455 139.148 131.228C138.6 131.001 137.997 130.942 137.415 131.058C136.833 131.173 136.298 131.459 135.879 131.879L135.336 132.492" stroke="#666666" stroke-width="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_411_3630">
|
||||
<rect width="16" height="16" fill="white" transform="translate(174 6)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_411_3630">
|
||||
<rect width="16" height="16" fill="white" transform="translate(102 30)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_411_3630">
|
||||
<rect width="16" height="16" fill="white" transform="translate(30 78)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 40 KiB |
@@ -22,6 +22,7 @@
|
||||
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@heroicons/react": "^2.2.0",
|
||||
"@phosphor-icons/react": "^2.1.10",
|
||||
"@radix-ui/react-accordion": "^1.2.11",
|
||||
"@radix-ui/react-checkbox": "^1.1.4",
|
||||
"@radix-ui/react-context-menu": "^2.2.16",
|
||||
@@ -35,6 +36,9 @@
|
||||
"@radix-ui/react-switch": "^1.2.5",
|
||||
"@radix-ui/react-tabs": "^1.1.3",
|
||||
"@radix-ui/react-tooltip": "^1.1.8",
|
||||
"@squircle/core": "^1.0.6",
|
||||
"@squircle/paint-polyfill": "^1.0.6",
|
||||
"@squircle/tailwindcss": "^1.0.6",
|
||||
"@supabase/ssr": "^0.5.2",
|
||||
"@tailwindcss/vite": "^4.0.13",
|
||||
"@tanstack/react-query": "^5.85.6",
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { AppEnv } from "@autumn/shared";
|
||||
import { init } from "@squircle/core";
|
||||
import * as React from "react";
|
||||
import { BrowserRouter, Route, Routes } from "react-router";
|
||||
import { MainLayout } from "./app/layout";
|
||||
import { AdminView } from "./views/admin/AdminView";
|
||||
@@ -18,6 +20,11 @@ import ProductsView from "./views/products/ProductsView";
|
||||
import PlanEditorView from "./views/products/plan/PlanEditorView";
|
||||
import { TerminalView } from "./views/TerminalView";
|
||||
|
||||
export function SquircleProvider({ children }: { children: React.ReactNode }) {
|
||||
React.useEffect(() => void init(), []);
|
||||
return children;
|
||||
}
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
@@ -41,10 +48,21 @@ export default function App() {
|
||||
path="/sandbox/products"
|
||||
element={<ProductsView env={AppEnv.Sandbox} />}
|
||||
/>
|
||||
<Route path="/products/:product_id" element={<PlanEditorView />} />
|
||||
<Route
|
||||
path="/products/:product_id"
|
||||
element={
|
||||
<SquircleProvider>
|
||||
<PlanEditorView />
|
||||
</SquircleProvider>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/sandbox/products/:product_id"
|
||||
element={<PlanEditorView />}
|
||||
element={
|
||||
<SquircleProvider>
|
||||
<PlanEditorView />
|
||||
</SquircleProvider>
|
||||
}
|
||||
/>
|
||||
|
||||
<Route path="/customers" element={<CustomersPage />} />
|
||||
|
||||
@@ -14,19 +14,33 @@ export function CopyablePre({ text }: { text: string }) {
|
||||
}
|
||||
|
||||
// A compact, inline version for use in places like badges or small UI elements.
|
||||
export function CopyableSpan({ text, className = "" }: { text: string; className?: string }) {
|
||||
export function CopyableSpan({
|
||||
text,
|
||||
className = "",
|
||||
copySize = 20,
|
||||
copyProps = {}
|
||||
}: {
|
||||
text: string;
|
||||
className?: string;
|
||||
copySize?: number;
|
||||
copyProps?: React.ComponentProps<typeof import("lucide-react").Copy>;
|
||||
}) {
|
||||
return (
|
||||
<span
|
||||
className={
|
||||
`inline-flex items-center rounded-xl bg-muted/50 px-4 py-1 text-md font-mono text-muted-foreground relative font-normal gap-1` +
|
||||
`inline-flex items-center rounded-xl bg-muted/50 pl-3 py-1 text-md font-mono text-muted-foreground relative font-normal gap-1` +
|
||||
(className ? ` ${className}` : "")
|
||||
}
|
||||
>
|
||||
<span className="pr-2">{text}</span>
|
||||
<CopyButton
|
||||
text={text}
|
||||
className="ml-1 p-0.5 rounded transition hover:bg-muted/80 w-6 h-6 z-[1] static"
|
||||
copySize={20}
|
||||
className="ml-1 p-0.5 rounded transition bg-transparent size-6 z-[1] static bg-none shadow-none border-none"
|
||||
copyProps={{
|
||||
className: "text-muted-foreground",
|
||||
...copyProps
|
||||
}}
|
||||
copySize={copySize}
|
||||
/>
|
||||
</span>
|
||||
);
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
<svg width="212" height="114" viewBox="0 0 212 114" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="211" height="114" transform="translate(0.5)" fill="#FAFAF9"/>
|
||||
<path d="M11.3125 13.4375L12.625 14.75L15.6875 11.6875" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 18.25C16.3995 18.25 18.75 15.8995 18.75 13C18.75 10.1005 16.3995 7.75 13.5 7.75C10.6005 7.75 8.25 10.1005 8.25 13C8.25 15.8995 10.6005 18.25 13.5 18.25Z" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.5 18.25C38.3995 18.25 40.75 15.8995 40.75 13C40.75 10.1005 38.3995 7.75 35.5 7.75C32.6005 7.75 30.25 10.1005 30.25 13C30.25 15.8995 32.6005 18.25 35.5 18.25Z" stroke="#666666" stroke-miterlimit="10"/>
|
||||
<path d="M33.3125 13H37.6875" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.5 10.8125V15.1875" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M59.25 11.25L55.75 14.75" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M55.75 11.25L59.25 14.75" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M57.5 18.25C60.3995 18.25 62.75 15.8995 62.75 13C62.75 10.1005 60.3995 7.75 57.5 7.75C54.6005 7.75 52.25 10.1005 52.25 13C52.25 15.8995 54.6005 18.25 57.5 18.25Z" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M77.569 17.8126H75.125C75.009 17.8126 74.8977 17.7665 74.8156 17.6844C74.7336 17.6024 74.6875 17.4911 74.6875 17.3751V14.9311C74.6876 14.8152 74.7336 14.7041 74.8155 14.6221L81.5595 7.87804C81.6416 7.79605 81.7528 7.75 81.8688 7.75C81.9848 7.75 82.096 7.79605 82.178 7.87804L84.622 10.3204C84.704 10.4024 84.7501 10.5137 84.7501 10.6296C84.7501 10.7456 84.704 10.8569 84.622 10.9389L77.878 17.6846C77.796 17.7665 77.6849 17.8125 77.569 17.8126Z" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M79.9375 9.5L83 12.5625" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M103.623 15.122H104.132C104.845 15.122 105.201 15.122 105.474 14.9833C105.713 14.8612 105.908 14.6664 106.03 14.4269C106.169 14.1546 106.169 13.798 106.169 13.085V10.369C106.169 9.65602 106.169 9.29951 106.03 9.02717C105.908 8.78762 105.713 8.59285 105.474 8.47079C105.201 8.33203 104.845 8.33203 104.132 8.33203H101.416C100.703 8.33203 100.346 8.33203 100.074 8.47079C99.8345 8.59285 99.6397 8.78762 99.5177 9.02717C99.3789 9.29951 99.3789 9.65601 99.3789 10.369V10.8783" stroke="#666666" stroke-width="0.94" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M101.585 10.8779H98.869C98.156 10.8779 97.7995 10.8779 97.5272 11.0167C97.2876 11.1388 97.0929 11.3335 96.9708 11.5731C96.832 11.8454 96.832 12.2019 96.832 12.9149V15.6309C96.832 16.3439 96.832 16.7005 96.9708 16.9728C97.0929 17.2123 97.2876 17.4071 97.5272 17.5292C97.7995 17.6679 98.156 17.6679 98.869 17.6679H101.585C102.298 17.6679 102.655 17.6679 102.927 17.5292C103.166 17.4071 103.361 17.2123 103.483 16.9728C103.622 16.7005 103.622 16.3439 103.622 15.6309V12.9149C103.622 12.2019 103.622 11.8454 103.483 11.5731C103.361 11.3335 103.166 11.1388 102.927 11.0167C102.655 10.8779 102.298 10.8779 101.585 10.8779Z" stroke="#666666" stroke-width="0.94" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.168 9.6084H118.832" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M122.227 12.1514V15.5464" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M124.77 12.1514V15.5464" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M127.318 9.6084V17.6715C127.318 17.7841 127.274 17.892 127.194 17.9716C127.115 18.0512 127.007 18.0959 126.894 18.0959H120.104C119.992 18.0959 119.884 18.0512 119.804 17.9716C119.724 17.892 119.68 17.7841 119.68 17.6715V9.6084" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M125.619 9.60131V8.75256C125.619 8.52746 125.529 8.31157 125.37 8.1524C125.211 7.99323 124.995 7.90381 124.77 7.90381H122.224C121.999 7.90381 121.783 7.99323 121.624 8.1524C121.464 8.31157 121.375 8.52746 121.375 8.75256V9.60131" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M143.9 10.6C144.341 10.6 144.7 10.2418 144.7 9.8C144.7 9.35817 144.341 9 143.9 9C143.458 9 143.1 9.35817 143.1 9.8C143.1 10.2418 143.458 10.6 143.9 10.6Z" fill="#777777"/>
|
||||
<path d="M147.099 10.6C147.541 10.6 147.899 10.2418 147.899 9.8C147.899 9.35817 147.541 9 147.099 9C146.657 9 146.299 9.35817 146.299 9.8C146.299 10.2418 146.657 10.6 147.099 10.6Z" fill="#777777"/>
|
||||
<path d="M143.9 13.8002C144.341 13.8002 144.7 13.442 144.7 13.0002C144.7 12.5584 144.341 12.2002 143.9 12.2002C143.458 12.2002 143.1 12.5584 143.1 13.0002C143.1 13.442 143.458 13.8002 143.9 13.8002Z" fill="#777777"/>
|
||||
<path d="M147.099 13.8002C147.541 13.8002 147.899 13.442 147.899 13.0002C147.899 12.5584 147.541 12.2002 147.099 12.2002C146.657 12.2002 146.299 12.5584 146.299 13.0002C146.299 13.442 146.657 13.8002 147.099 13.8002Z" fill="#777777"/>
|
||||
<path d="M143.9 16.9999C144.341 16.9999 144.7 16.6417 144.7 16.1999C144.7 15.7581 144.341 15.3999 143.9 15.3999C143.458 15.3999 143.1 15.7581 143.1 16.1999C143.1 16.6417 143.458 16.9999 143.9 16.9999Z" fill="#777777"/>
|
||||
<path d="M147.099 16.9999C147.541 16.9999 147.899 16.6417 147.899 16.1999C147.899 15.7581 147.541 15.3999 147.099 15.3999C146.657 15.3999 146.299 15.7581 146.299 16.1999C146.299 16.6417 146.657 16.9999 147.099 16.9999Z" fill="#777777"/>
|
||||
<g clip-path="url(#clip0_411_1901)">
|
||||
<path d="M165.75 12.5625C168.166 12.5625 170.125 11.6811 170.125 10.5938C170.125 9.50644 168.166 8.625 165.75 8.625C163.334 8.625 161.375 9.50644 161.375 10.5938C161.375 11.6811 163.334 12.5625 165.75 12.5625Z" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M161.375 10.5938V12.7812C161.375 13.8684 163.334 14.75 165.75 14.75C168.166 14.75 170.125 13.8684 170.125 12.7812V10.5938" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M170.125 11.2896C172.123 11.4722 173.625 12.2663 173.625 13.2189C173.625 14.3061 171.666 15.1877 169.25 15.1877C168.178 15.1877 167.196 15.0143 166.436 14.7261" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M164.875 14.7106V15.4062C164.875 16.4934 166.834 17.375 169.25 17.375C171.666 17.375 173.625 16.4934 173.625 15.4062V13.2188" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip1_411_1901)">
|
||||
<path d="M187.537 13.1357C189.953 13.1357 191.912 12.2543 191.912 11.167C191.912 10.0797 189.953 9.19824 187.537 9.19824C185.121 9.19824 183.162 10.0797 183.162 11.167C183.162 12.2543 185.121 13.1357 187.537 13.1357Z" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M183.162 11.167V13.3545C183.162 14.4417 185.121 15.3232 187.537 15.3232C189.953 15.3232 191.912 14.4417 191.912 13.3545V11.167" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M191.912 11.8623C193.91 12.045 195.412 12.839 195.412 13.7917C195.412 14.8789 193.454 15.7604 191.037 15.7604C189.966 15.7604 188.983 15.5871 188.223 15.2989" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M186.662 15.2839V15.9795C186.662 17.0667 188.621 17.9482 191.037 17.9482C193.453 17.9482 195.412 17.0667 195.412 15.9795V13.792" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M193.344 7.69434L194.146 8.49707L196.02 6.62402" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M17.875 39.8125H9.125C9.00897 39.8125 8.89769 39.7664 8.81564 39.6844C8.73359 39.6023 8.6875 39.491 8.6875 39.375V31.9375L9.5625 30.1875H17.4375L18.3125 31.9375V39.375C18.3125 39.491 18.2664 39.6023 18.1844 39.6844C18.1023 39.7664 17.991 39.8125 17.875 39.8125Z" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8.6875 31.9375H18.3125" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 33.6875V38.0625" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11.75 36.3125L13.5 38.0625L15.25 36.3125" stroke="#666666" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38.875 33.125L40 32L38.875 30.875" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M31 35C31 34.2044 31.3161 33.4413 31.8787 32.8787C32.4413 32.3161 33.2044 32 34 32H40" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32.125 36.875L31 38L32.125 39.125" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M40 35C40 35.7956 39.6839 36.5587 39.1213 37.1213C38.5587 37.6839 37.7956 38 37 38H31" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M52.8809 35H62.1209" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M57.5 30.3799V39.6199" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M74.6875 35H84.3125" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M80.375 31.0625L84.3125 35L80.375 38.9375" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M106.312 35H96.6875" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M100.625 31.0625L96.6875 35L100.625 38.9375" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M123.5 32.375V35L125.688 36.3125" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M120.438 33.6875H118.25V31.5" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M120.197 38.5002C120.885 39.1494 121.749 39.5814 122.681 39.7423C123.613 39.9033 124.572 39.786 125.438 39.4051C126.303 39.0242 127.038 38.3966 127.549 37.6007C128.06 36.8049 128.325 35.876 128.312 34.9302C128.298 33.9845 128.006 33.0637 127.472 32.283C126.938 31.5023 126.186 30.8962 125.309 30.5406C124.433 30.185 123.471 30.0955 122.544 30.2834C121.617 30.4713 120.766 30.9282 120.097 31.597C119.453 32.2489 118.922 32.8636 118.25 33.6877" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M145.5 40.25C148.399 40.25 150.75 37.8995 150.75 35C150.75 32.1005 148.399 29.75 145.5 29.75C142.601 29.75 140.25 32.1005 140.25 35C140.25 37.8995 142.601 40.25 145.5 40.25Z" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M145.5 31.9375V35H148.562" stroke="#666666" stroke-width="0.97" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M173.188 31.9288V38.0703C173.187 38.1476 173.165 38.2233 173.126 38.2896C173.086 38.3558 173.029 38.4102 172.961 38.447C172.893 38.4838 172.816 38.5017 172.739 38.4988C172.662 38.4959 172.586 38.4724 172.521 38.4306L167.699 35.3599C167.638 35.3215 167.588 35.2682 167.553 35.2052C167.518 35.1422 167.5 35.0715 167.5 34.9995C167.5 34.9276 167.518 34.8569 167.553 34.7939C167.588 34.7309 167.638 34.6776 167.699 34.6392L172.521 31.5685C172.586 31.5267 172.662 31.5032 172.739 31.5003C172.816 31.4974 172.893 31.5153 172.961 31.5521C173.029 31.5889 173.086 31.6433 173.126 31.7095C173.165 31.7758 173.187 31.8515 173.188 31.9288Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M167.5 31.9288V38.0703C167.499 38.1476 167.478 38.2233 167.438 38.2896C167.398 38.3558 167.341 38.4102 167.273 38.447C167.205 38.4838 167.129 38.5017 167.051 38.4988C166.974 38.4959 166.899 38.4724 166.834 38.4306L162.011 35.3599C161.95 35.3215 161.9 35.2682 161.866 35.2052C161.831 35.1422 161.813 35.0715 161.813 34.9995C161.813 34.9276 161.831 34.8569 161.866 34.7939C161.9 34.7309 161.95 34.6776 162.011 34.6392L166.834 31.5685C166.899 31.5267 166.974 31.5032 167.051 31.5003C167.129 31.4974 167.205 31.5153 167.273 31.5521C167.341 31.5889 167.398 31.6433 167.438 31.7095C167.478 31.7758 167.499 31.8515 167.5 31.9288Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 39.375C191.916 39.375 193.875 37.4162 193.875 35C193.875 32.5838 191.916 30.625 189.5 30.625C187.084 30.625 185.125 32.5838 185.125 35C185.125 37.4162 187.084 39.375 189.5 39.375Z" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 35H195.188" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 34.9999L186.656 30.0742" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 35L186.656 39.9257" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 30.625V29.3125" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M185.711 32.8125L184.574 32.1562" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M185.125 35H183.812" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M185.711 37.1875L184.574 37.8438" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 39.375V40.6875" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M191.688 38.7886L192.344 39.9255" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M193.289 37.1875L194.426 37.8438" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M193.289 32.8125L194.426 32.1562" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M191.688 31.2112L192.344 30.0742" stroke="#666666" stroke-width="0.84" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 62.25C16.3995 62.25 18.75 59.8995 18.75 57C18.75 54.1005 16.3995 51.75 13.5 51.75C10.6005 51.75 8.25 54.1005 8.25 57C8.25 59.8995 10.6005 62.25 13.5 62.25Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 51.75V53.9375" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 60.0625V62.25" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8.25 57H10.4375" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.5625 57H18.75" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38.5645 52.625H40.752V54.8125" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32.4375 61.375H30.25V59.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M40.752 59.1875V61.375H38.5645" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M30.25 54.8125V52.625H32.4375" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32.875 54.8125V59.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38.125 54.8125V59.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M36.377 54.8125V59.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M34.625 54.8125V59.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M57.5 52.4873V56.9936" stroke="#666666" stroke-width="1.03" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M60.2036 52.938C61.56 53.8223 62.4567 55.2536 62.4567 56.9936C62.4567 58.3083 61.9345 59.5691 61.0049 60.4987C60.0753 61.4282 58.8145 61.9505 57.4998 61.9505C56.1852 61.9505 54.9244 61.4282 53.9948 60.4987C53.0652 59.5691 52.543 58.3083 52.543 56.9936C52.543 55.2536 53.4397 53.8223 54.7961 52.938" stroke="#666666" stroke-width="1.03" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M83.875 52.1875H75.125C74.8834 52.1875 74.6875 52.3834 74.6875 52.625V61.375C74.6875 61.6166 74.8834 61.8125 75.125 61.8125H83.875C84.1166 61.8125 84.3125 61.6166 84.3125 61.375V52.625C84.3125 52.3834 84.1166 52.1875 83.875 52.1875Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M82.125 51.3125V53.0625" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M76.875 51.3125V53.0625" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M74.6875 54.8125H84.3125" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M77.5312 58.3125L78.8438 59.625L81.4688 57" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M106.278 53.3599H96.7225C96.2199 53.3599 95.8125 53.7673 95.8125 54.2699V59.7299C95.8125 60.2324 96.2199 60.6399 96.7225 60.6399H106.278C106.78 60.6399 107.188 60.2324 107.188 59.7299V54.2699C107.188 53.7673 106.78 53.3599 106.278 53.3599Z" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M102.637 55.1802V58.8202" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M100.363 55.1802V58.8202" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M98.0879 55.1802V58.8202" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<g clip-path="url(#clip2_411_1901)">
|
||||
<path d="M127.438 57.4375H130.062" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.75 56.125V58.75" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M122.406 58.75C124.218 58.75 125.688 57.2809 125.688 55.4688C125.688 53.6566 124.218 52.1875 122.406 52.1875C120.594 52.1875 119.125 53.6566 119.125 55.4688C119.125 57.2809 120.594 58.75 122.406 58.75Z" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M117.812 60.9375C118.936 59.6004 120.523 58.75 122.406 58.75C124.29 58.75 125.876 59.6004 127 60.9375" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3_411_1901)">
|
||||
<path d="M144.406 58.75C146.218 58.75 147.688 57.2809 147.688 55.4688C147.688 53.6566 146.218 52.1875 144.406 52.1875C142.594 52.1875 141.125 53.6566 141.125 55.4688C141.125 57.2809 142.594 58.75 144.406 58.75Z" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M139.812 60.9375C140.936 59.6004 142.523 58.75 144.406 58.75C146.29 58.75 147.876 59.6004 149 60.9375" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M149.438 57.875L150.312 58.75L152.062 57" stroke="#666666" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<path d="M167.5 58.75C168.708 58.75 169.688 57.7706 169.688 56.5625C169.688 55.3544 168.708 54.375 167.5 54.375C166.292 54.375 165.312 55.3544 165.312 56.5625C165.312 57.7706 166.292 58.75 167.5 58.75Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M163.988 60.9031C164.317 60.2547 164.82 59.7102 165.439 59.3298C166.059 58.9494 166.772 58.748 167.499 58.748C168.226 58.748 168.939 58.9494 169.559 59.3298C170.179 59.7102 170.681 60.2547 171.01 60.9031" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M172.676 56.125C172.861 57.2217 172.692 58.3487 172.194 59.3432C171.697 60.3377 170.896 61.1483 169.907 61.658C168.919 62.1676 167.794 62.35 166.695 62.1786C165.597 62.0073 164.581 61.4912 163.794 60.7048C163.008 59.9185 162.492 58.9025 162.32 57.8037C162.149 56.7049 162.331 55.5801 162.841 54.5916C163.351 53.6032 164.161 52.8023 165.156 52.3046C166.15 51.8069 167.277 51.6382 168.374 51.8228" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M170.562 53.0625L171.438 53.9375L173.188 52.1875" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 53.9375V54.8125" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 59.1875V60.0625" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M189.5 62.25C192.399 62.25 194.75 59.8995 194.75 57C194.75 54.1005 192.399 51.75 189.5 51.75C186.601 51.75 184.25 54.1005 184.25 57C184.25 59.8995 186.601 62.25 189.5 62.25Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M188.188 59.1875H190.156C190.446 59.1875 190.725 59.0723 190.93 58.8671C191.135 58.662 191.25 58.3838 191.25 58.0938C191.25 57.8037 191.135 57.5255 190.93 57.3204C190.725 57.1152 190.446 57 190.156 57H188.844C188.554 57 188.275 56.8848 188.07 56.6796C187.865 56.4745 187.75 56.1963 187.75 55.9062C187.75 55.6162 187.865 55.338 188.07 55.1329C188.275 54.9277 188.554 54.8125 188.844 54.8125H190.812" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 84.25C16.3995 84.25 18.75 81.8995 18.75 79C18.75 76.1005 16.3995 73.75 13.5 73.75C10.6005 73.75 8.25 76.1005 8.25 79C8.25 81.8995 10.6005 84.25 13.5 84.25Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.5 80.75C14.7081 80.75 15.6875 79.7706 15.6875 78.5625C15.6875 77.3544 14.7081 76.375 13.5 76.375C12.2919 76.375 11.3125 77.3544 11.3125 78.5625C11.3125 79.7706 12.2919 80.75 13.5 80.75Z" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.98828 82.9031C10.3175 82.2547 10.8197 81.7102 11.4394 81.3298C12.0591 80.9494 12.7721 80.748 13.4992 80.748C14.2264 80.748 14.9393 80.9494 15.559 81.3298C16.1787 81.7102 16.681 82.2547 17.0102 82.9031" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32.9414 78.4968L33.9627 77.4754L32.9414 76.4541M34.9841 79.5181H37.0267" stroke="#666666" stroke-width="0.86" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M39.0749 74.4077H31.9256C31.3616 74.4077 30.9043 74.865 30.9043 75.429V82.5783C30.9043 83.1424 31.3616 83.5997 31.9256 83.5997H39.0749C39.639 83.5997 40.0963 83.1424 40.0963 82.5783V75.429C40.0963 74.865 39.639 74.4077 39.0749 74.4077Z" stroke="#666666" stroke-width="0.86" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M55.7198 78.7211C55.5428 78.2808 55.4525 77.8104 55.4538 77.3359C55.4538 75.3508 57.053 73.7011 59.0371 73.6378C59.544 73.6209 60.0489 73.7082 60.5206 73.8944C60.9924 74.0806 61.4208 74.3616 61.7795 74.7201C62.1382 75.0786 62.4195 75.507 62.6059 75.9786C62.7924 76.4502 62.88 76.9551 62.8634 77.462C62.798 79.4461 61.1483 81.0453 59.1632 81.0453C58.6887 81.0466 58.2183 80.9563 57.778 80.7793L57.1003 81.457H55.8654V82.6919H54.6305V83.9268H52.9839C52.8747 83.9268 52.77 83.8835 52.6928 83.8063C52.6156 83.7291 52.5723 83.6244 52.5723 83.5152V82.0389C52.5723 81.9299 52.6156 81.8253 52.6927 81.7482L55.7198 78.7211Z" stroke="#666666" stroke-width="0.87" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M60.1897 76.9317C60.5307 76.9317 60.8072 76.6553 60.8072 76.3142C60.8072 75.9732 60.5307 75.6968 60.1897 75.6968C59.8487 75.6968 59.5723 75.9732 59.5723 76.3142C59.5723 76.6553 59.8487 76.9317 60.1897 76.9317Z" fill="#666666"/>
|
||||
<path d="M79.5007 84.0927C82.3132 84.0927 84.5932 81.8127 84.5932 79.0002C84.5932 76.1877 82.3132 73.9077 79.5007 73.9077C76.6882 73.9077 74.4082 76.1877 74.4082 79.0002C74.4082 81.8127 76.6882 84.0927 79.5007 84.0927Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M79.5007 84.0927C82.3132 84.0927 84.5932 81.8127 84.5932 79.0002C84.5932 76.1877 82.3132 73.9077 79.5007 73.9077C76.6882 73.9077 74.4082 76.1877 74.4082 79.0002C74.4082 81.8127 76.6882 84.0927 79.5007 84.0927Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M78.6515 79.6212C78.3279 79.4344 78.0749 79.146 77.9319 78.8007C77.7889 78.4555 77.7639 78.0727 77.8606 77.7118C77.9573 77.3508 78.1704 77.0319 78.4669 76.8044C78.7633 76.5769 79.1266 76.4536 79.5002 76.4536C79.8739 76.4536 80.2371 76.5769 80.5336 76.8044C80.8301 77.0319 81.0432 77.3508 81.1399 77.7118C81.2366 78.0727 81.2115 78.4555 81.0685 78.8007C80.9255 79.146 80.6726 79.4344 80.349 79.6212L81.1977 81.5457H77.8027L78.6515 79.6212Z" stroke="#666666" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M99.8027 80.273C99.8027 80.9759 100.563 81.5461 101.5 81.5461C102.438 81.5461 103.198 80.9759 103.198 80.273C103.198 78.5755 99.8972 79.2121 99.8972 77.7267C99.8972 77.0239 100.563 76.4536 101.5 76.4536C102.203 76.4536 102.754 76.7719 102.986 77.2313" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M105.744 74.332H97.2564C97.022 74.332 96.832 74.522 96.832 74.7564V83.2439C96.832 83.4783 97.022 83.6683 97.2564 83.6683H105.744C105.978 83.6683 106.168 83.4783 106.168 83.2439V74.7564C106.168 74.522 105.978 74.332 105.744 74.332Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.169 76.4341H118.833C118.598 76.4341 118.408 76.6241 118.408 76.8585V78.556C118.408 78.7903 118.598 78.9803 118.833 78.9803H128.169C128.403 78.9803 128.593 78.7903 128.593 78.556V76.8585C128.593 76.6241 128.403 76.4341 128.169 76.4341Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M127.743 78.9805V82.7998C127.743 82.9124 127.699 83.0203 127.619 83.0999C127.539 83.1795 127.432 83.2242 127.319 83.2242H119.68C119.568 83.2242 119.46 83.1795 119.38 83.0999C119.301 83.0203 119.256 82.9124 119.256 82.7998V78.9805" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M123.5 76.4341V83.2241" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M126.088 73.846C126.584 74.3414 126.613 75.1753 126.088 75.64C125.191 76.4341 123.5 76.4341 123.5 76.4341C123.5 76.4341 123.5 74.743 124.296 73.846C124.759 73.3214 125.593 73.3505 126.088 73.846Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M120.912 73.846C120.416 74.3414 120.387 75.1753 120.912 75.64C121.809 76.4341 123.5 76.4341 123.5 76.4341C123.5 76.4341 123.5 74.743 122.704 73.846C122.241 73.3214 121.407 73.3505 120.912 73.846Z" stroke="#666666" stroke-width="0.873" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M145.5 84.0965V78.9899M144.99 83.9586C145.145 84.0483 145.321 84.0955 145.5 84.0955C145.68 84.0955 145.856 84.0483 146.011 83.9586L149.586 81.916C149.741 81.8264 149.87 81.6977 149.959 81.5426C150.049 81.3875 150.096 81.2116 150.096 81.0325V76.9472C150.096 76.7681 150.049 76.5922 149.959 76.4371C149.87 76.2821 149.741 76.1533 149.586 76.0638L146.011 74.0211C145.856 73.9315 145.68 73.8843 145.5 73.8843C145.321 73.8843 145.145 73.9315 144.99 74.0211L141.415 76.0638C141.26 76.1533 141.131 76.2821 141.041 76.4371C140.952 76.5922 140.904 76.7681 140.904 76.9472V81.0325C140.904 81.2116 140.952 81.3875 141.041 81.5426C141.131 81.6977 141.26 81.8264 141.415 81.916L144.99 83.9586Z" stroke="#666666" stroke-width="0.83" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M141.051 76.4458L145.499 78.9991L149.947 76.4458" stroke="#666666" stroke-width="0.83" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M162.904 74.4077V82.5783C162.904 82.8492 163.012 83.109 163.203 83.3005C163.395 83.4921 163.655 83.5997 163.926 83.5997H172.096" stroke="#666666" stroke-width="0.86" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M170.567 75.4233H169.546C169.264 75.4233 169.035 75.652 169.035 75.934V81.0407C169.035 81.3227 169.264 81.5513 169.546 81.5513H170.567C170.849 81.5513 171.078 81.3227 171.078 81.0407V75.934C171.078 75.652 170.849 75.4233 170.567 75.4233Z" stroke="#666666" stroke-width="0.86" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M166.473 76.9541H165.452C165.17 76.9541 164.941 77.1827 164.941 77.4648V81.0394C164.941 81.3215 165.17 81.5501 165.452 81.5501H166.473C166.755 81.5501 166.984 81.3215 166.984 81.0394V77.4648C166.984 77.1827 166.755 76.9541 166.473 76.9541Z" stroke="#666666" stroke-width="0.86" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M185.717 82.5437V75.4562C185.717 75.1429 185.841 74.8424 186.063 74.6209C186.284 74.3994 186.585 74.2749 186.898 74.2749H192.804C192.93 74.2749 193.05 74.3247 193.138 74.4133C193.227 74.5019 193.277 74.6221 193.277 74.7474V83.2524C193.277 83.3777 193.227 83.4979 193.138 83.5865C193.05 83.6751 192.93 83.7249 192.804 83.7249H186.898C186.585 83.7249 186.284 83.6004 186.063 83.3789C185.841 83.1574 185.717 82.8569 185.717 82.5437ZM185.717 82.5437C185.717 82.2304 185.841 81.9299 186.063 81.7084C186.284 81.4869 186.585 81.3624 186.898 81.3624H193.277" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M18.75 97.0625H8.25C8.00838 97.0625 7.8125 97.2584 7.8125 97.5V104.5C7.8125 104.742 8.00838 104.938 8.25 104.938H18.75C18.9916 104.938 19.1875 104.742 19.1875 104.5V97.5C19.1875 97.2584 18.9916 97.0625 18.75 97.0625Z" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M15.6875 103.188H17.4375" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.0625 103.188H13.9375" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.8125 99.25H19.1875" stroke="#666666" stroke-width="0.95" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M39.8316 99.8189L39.8311 96.6694L36.6816 96.6689" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35.8945 100.606L39.832 96.6689" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M38.2555 101.394V104.937C38.2555 105.042 38.214 105.142 38.1401 105.216C38.0663 105.29 37.9661 105.331 37.8617 105.331H31.5617C31.4573 105.331 31.3571 105.29 31.2833 105.216C31.2095 105.142 31.168 105.042 31.168 104.937V98.6374C31.168 98.533 31.2095 98.4328 31.2833 98.359C31.3571 98.2851 31.4573 98.2437 31.5617 98.2437H35.1055" stroke="#666666" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_411_1901">
|
||||
<rect width="14" height="14" fill="white" transform="translate(160.5 6)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_411_1901">
|
||||
<rect width="14" height="14" fill="white" transform="translate(182.5 6)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_411_1901">
|
||||
<rect width="14" height="14" fill="white" transform="translate(116.5 50)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3_411_1901">
|
||||
<rect width="14" height="14" fill="white" transform="translate(138.5 50)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 0 B After Width: | Height: | Size: 31 KiB |
0
vite/src/components/v2/buttons/IconButton.tsx
Normal file
0
vite/src/components/v2/buttons/IconButton.tsx
Normal file
42
vite/src/components/v2/buttons/IconPillButton.tsx
Normal file
42
vite/src/components/v2/buttons/IconPillButton.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
import { Button } from "@/components/ui/button";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
interface IconPillButtonProps {
|
||||
icon: LucideIcon;
|
||||
text: string;
|
||||
onClick?: () => void;
|
||||
className?: string;
|
||||
disabled?: boolean;
|
||||
variant?: "default" | "muted";
|
||||
}
|
||||
|
||||
export const IconPillButton = ({
|
||||
icon: Icon,
|
||||
text,
|
||||
onClick,
|
||||
className,
|
||||
disabled = false,
|
||||
variant = "default"
|
||||
}: IconPillButtonProps) => {
|
||||
return (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={onClick}
|
||||
disabled={disabled}
|
||||
className={cn(
|
||||
"inline-flex items-center gap-2 rounded-full px-3 py-1 h-8",
|
||||
"bg-background border border-border",
|
||||
"hover:bg-muted/50 transition-colors",
|
||||
variant === "muted" && "text-muted-foreground",
|
||||
className
|
||||
)}
|
||||
>
|
||||
<Icon size={16} className="flex-shrink-0" />
|
||||
<span className="text-sm font-medium whitespace-nowrap">
|
||||
{text}
|
||||
</span>
|
||||
</Button>
|
||||
);
|
||||
};
|
||||
501
vite/src/components/v2/icons/AutumnIcons.tsx
Normal file
501
vite/src/components/v2/icons/AutumnIcons.tsx
Normal file
@@ -0,0 +1,501 @@
|
||||
import type { LucideProps } from "lucide-react";
|
||||
|
||||
// Row 1 Icons
|
||||
export const CheckCircle = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path d="M11.3125 13.4375L12.625 14.75L15.6875 11.6875" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.5 18.25C16.3995 18.25 18.75 15.8995 18.75 13C18.75 10.1005 16.3995 7.75 13.5 7.75C10.6005 7.75 8.25 10.1005 8.25 13C8.25 15.8995 10.6005 18.25 13.5 18.25Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Check Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const PlusCircle = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 49 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.5 18.25C38.3995 18.25 40.75 15.8995 40.75 13C40.75 10.1005 38.3995 7.75 35.5 7.75C32.6005 7.75 30.25 10.1005 30.25 13C30.25 15.8995 32.6005 18.25 35.5 18.25Z" stroke="currentColor" strokeMiterlimit="10"/>
|
||||
<path d="M33.3125 13H37.6875" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M35.5 10.8125V15.1875" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Plus Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const XCircle = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 71 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M59.25 11.25L55.75 14.75" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M55.75 11.25L59.25 14.75" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M57.5 18.25C60.3995 18.25 62.75 15.8995 62.75 13C62.75 10.1005 60.3995 7.75 57.5 7.75C54.6005 7.75 52.25 10.1005 52.25 13C52.25 15.8995 54.6005 18.25 57.5 18.25Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>X Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Edit = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 93 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M77.569 17.8126H75.125C75.009 17.8126 74.8977 17.7665 74.8156 17.6844C74.7336 17.6024 74.6875 17.4911 74.6875 17.3751V14.9311C74.6876 14.8152 74.7336 14.7041 74.8155 14.6221L81.5595 7.87804C81.6416 7.79605 81.7528 7.75 81.8688 7.75C81.9848 7.75 82.096 7.79605 82.178 7.87804L84.622 10.3204C84.704 10.4024 84.7501 10.5137 84.7501 10.6296C84.7501 10.7456 84.704 10.8569 84.622 10.9389L77.878 17.6846C77.796 17.7665 77.6849 17.8125 77.569 17.8126Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M79.9375 9.5L83 12.5625" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Edit</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Copy = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 115 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M103.623 15.122H104.132C104.845 15.122 105.201 15.122 105.474 14.9833C105.713 14.8612 105.908 14.6664 106.03 14.4269C106.169 14.1546 106.169 13.798 106.169 13.085V10.369C106.169 9.65602 106.169 9.29951 106.03 9.02717C105.908 8.78762 105.713 8.59285 105.474 8.47079C105.201 8.33203 104.845 8.33203 104.132 8.33203H101.416C100.703 8.33203 100.346 8.33203 100.074 8.47079C99.8345 8.59285 99.6397 8.78762 99.5177 9.02717C99.3789 9.29951 99.3789 9.65601 99.3789 10.369V10.8783" stroke="currentColor" strokeWidth="0.94" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M101.585 10.8779H98.869C98.156 10.8779 97.7995 10.8779 97.5272 11.0167C97.2876 11.1388 97.0929 11.3335 96.9708 11.5731C96.832 11.8454 96.832 12.2019 96.832 12.9149V15.6309C96.832 16.3439 96.832 16.7005 96.9708 16.9728C97.0929 17.2123 97.2876 17.4071 97.5272 17.5292C97.7995 17.6679 98.156 17.6679 98.869 17.6679H101.585C102.298 17.6679 102.655 17.6679 102.927 17.5292C103.166 17.4071 103.361 17.2123 103.483 16.9728C103.622 16.7005 103.622 16.3439 103.622 15.6309V12.9149C103.622 12.2019 103.622 11.8454 103.483 11.5731C103.361 11.3335 103.166 11.1388 102.927 11.0167C102.655 10.8779 102.298 10.8779 101.585 10.8779Z" stroke="currentColor" strokeWidth="0.94" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Copy</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Trash = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 137 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M128.168 9.6084H118.832" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M122.227 12.1514V15.5464" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M124.77 12.1514V15.5464" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M127.318 9.6084V17.6715C127.318 17.7841 127.274 17.892 127.194 17.9716C127.115 18.0512 127.007 18.0959 126.894 18.0959H120.104C119.992 18.0959 119.884 18.0512 119.804 17.9716C119.724 17.892 119.68 17.7841 119.68 17.6715V9.6084" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M125.619 9.60131V8.75256C125.619 8.52746 125.529 8.31157 125.37 8.1524C125.211 7.99323 124.995 7.90381 124.77 7.90381H122.224C121.999 7.90381 121.783 7.99323 121.624 8.1524C121.464 8.31157 121.375 8.52746 121.375 8.75256V9.60131" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Trash</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const GripVertical = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 159 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="143.9" cy="9.8" r="0.8" fill="currentColor"/>
|
||||
<circle cx="147.099" cy="9.8" r="0.8" fill="currentColor"/>
|
||||
<circle cx="143.9" cy="13.0002" r="0.8" fill="currentColor"/>
|
||||
<circle cx="147.099" cy="13.0002" r="0.8" fill="currentColor"/>
|
||||
<circle cx="143.9" cy="16.1999" r="0.8" fill="currentColor"/>
|
||||
<circle cx="147.099" cy="16.1999" r="0.8" fill="currentColor"/>
|
||||
<title>Grip Vertical</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Database Icons
|
||||
export const Database = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.25 4.5625C7.666 4.5625 9.625 3.68106 9.625 2.59375C9.625 1.50644 7.666 0.625 5.25 0.625C2.834 0.625 0.875 1.50644 0.875 2.59375C0.875 3.68106 2.834 4.5625 5.25 4.5625Z" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M0.875 2.59375V4.78125C0.875 5.86844 2.834 6.75 5.25 6.75C7.666 6.75 9.625 5.86844 9.625 4.78125V2.59375" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M9.625 3.28955C11.623 3.47222 13.125 4.26631 13.125 5.21895C13.125 6.30614 11.166 7.1877 8.75 7.1877C7.678 7.1877 6.696 7.01431 5.936 6.72606" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M4.375 6.71057V7.40625C4.375 8.49344 6.334 9.375 8.75 9.375C11.166 9.375 13.125 8.49344 13.125 7.40625V5.21875" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Database</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const DatabaseBackup = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.037 5.1357C7.453 5.1357 9.412 4.2543 9.412 3.167C9.412 2.0797 7.453 1.19824 5.037 1.19824C2.621 1.19824 0.662 2.0797 0.662 3.167C0.662 4.2543 2.621 5.1357 5.037 5.1357Z" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M0.662 3.167V5.3545C0.662 6.4417 2.621 7.3232 5.037 7.3232C7.453 7.3232 9.412 6.4417 9.412 5.3545V3.167" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M9.412 3.8623C11.41 4.045 12.912 4.839 12.912 5.7917C12.912 6.8789 10.954 7.7604 8.537 7.7604C7.466 7.7604 6.483 7.5871 5.723 7.2989" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M4.162 7.2839V7.9795C4.162 9.0667 6.121 9.9482 8.537 9.9482C10.953 9.9482 12.912 9.0667 12.912 7.9795V5.792" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M10.844 -0.30566L11.646 0.49707L13.52 -1.37598" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Database Backup</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Row 2 Icons
|
||||
export const Download = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.875 39.8125H9.125C9.00897 39.8125 8.89769 39.7664 8.81564 39.6844C8.73359 39.6023 8.6875 39.491 8.6875 39.375V31.9375L9.5625 30.1875H17.4375L18.3125 31.9375V39.375C18.3125 39.491 18.2664 39.6023 18.1844 39.6844C18.1023 39.7664 17.991 39.8125 17.875 39.8125Z" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M8.6875 31.9375H18.3125" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.5 33.6875V38.0625" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M11.75 36.3125L13.5 38.0625L15.25 36.3125" stroke="currentColor" strokeWidth="0.85" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Download</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const RefreshCw = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 49 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M38.875 33.125L40 32L38.875 30.875" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M31 35C31 34.2044 31.3161 33.4413 31.8787 32.8787C32.4413 32.3161 33.2044 32 34 32H40" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M32.125 36.875L31 38L32.125 39.125" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M40 35C40 35.7956 39.6839 36.5587 39.1213 37.1213C38.5587 37.6839 37.7956 38 37 38H31" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Refresh Cw</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Plus = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 71 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M52.8809 35H62.1209" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M57.5 30.3799V39.6199" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Plus</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const ChevronRight = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 93 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M74.6875 35H84.3125" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M80.375 31.0625L84.3125 35L80.375 38.9375" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Chevron Right</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const ChevronLeft = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 115 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M106.312 35H96.6875" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M100.625 31.0625L96.6875 35L100.625 38.9375" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Chevron Left</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const RotateCcw = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 137 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M123.5 32.375V35L125.688 36.3125" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M120.438 33.6875H118.25V31.5" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M120.197 38.5002C120.885 39.1494 121.749 39.5814 122.681 39.7423C123.613 39.9033 124.572 39.786 125.438 39.4051C126.303 39.0242 127.038 38.3966 127.549 37.6007C128.06 36.8049 128.325 35.876 128.312 34.9302C128.298 33.9845 128.006 33.0637 127.472 32.283C126.938 31.5023 126.186 30.8962 125.309 30.5406C124.433 30.185 123.471 30.0955 122.544 30.2834C121.617 30.4713 120.766 30.9282 120.097 31.597C119.453 32.2489 118.922 32.8636 118.25 33.6877" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Rotate Ccw</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Clock = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 159 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M145.5 40.25C148.399 40.25 150.75 37.8995 150.75 35C150.75 32.1005 148.399 29.75 145.5 29.75C142.601 29.75 140.25 32.1005 140.25 35C140.25 37.8995 142.601 40.25 145.5 40.25Z" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M145.5 31.9375V35H148.562" stroke="currentColor" strokeWidth="0.97" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Clock</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Play = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 181 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M173.188 31.9288V38.0703C173.187 38.1476 173.165 38.2233 173.126 38.2896C173.086 38.3558 173.029 38.4102 172.961 38.447C172.893 38.4838 172.816 38.5017 172.739 38.4988C172.662 38.4959 172.586 38.4724 172.521 38.4306L167.699 35.3599C167.638 35.3215 167.588 35.2682 167.553 35.2052C167.518 35.1422 167.5 35.0715 167.5 34.9995C167.5 34.9276 167.518 34.8569 167.553 34.7939C167.588 34.7309 167.638 34.6776 167.699 34.6392L172.521 31.5685C172.586 31.5267 172.662 31.5032 172.739 31.5003C172.816 31.4974 172.893 31.5153 172.961 31.5521C173.029 31.5889 173.086 31.6433 173.126 31.7095C173.165 31.7758 173.187 31.8515 173.188 31.9288Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M167.5 31.9288V38.0703C167.499 38.1476 167.478 38.2233 167.438 38.2896C167.398 38.3558 167.341 38.4102 167.273 38.447C167.205 38.4838 167.129 38.5017 167.051 38.4988C166.974 38.4959 166.899 38.4724 166.834 38.4306L162.011 35.3599C161.95 35.3215 161.9 35.2682 161.866 35.2052C161.831 35.1422 161.813 35.0715 161.813 34.9995C161.813 34.9276 161.831 34.8569 161.866 34.7939C161.9 34.7309 161.95 34.6776 162.011 34.6392L166.834 31.5685C166.899 31.5267 166.974 31.5032 167.051 31.5003C167.129 31.4974 167.205 31.5153 167.273 31.5521C167.341 31.5889 167.398 31.6433 167.438 31.7095C167.478 31.7758 167.499 31.8515 167.5 31.9288Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Play</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Compass = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 203 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M189.5 39.375C191.916 39.375 193.875 37.4162 193.875 35C193.875 32.5838 191.916 30.625 189.5 30.625C187.084 30.625 185.125 32.5838 185.125 35C185.125 37.4162 187.084 39.375 189.5 39.375Z" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 35H195.188" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 34.9999L186.656 30.0742" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 35L186.656 39.9257" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 30.625V29.3125" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.711 32.8125L184.574 32.1562" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.125 35H183.812" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M185.711 37.1875L184.574 37.8438" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 39.375V40.6875" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M191.688 38.7886L192.344 39.9255" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M193.289 37.1875L194.426 37.8438" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M193.289 32.8125L194.426 32.1562" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M191.688 31.2112L192.344 30.0742" stroke="currentColor" strokeWidth="0.84" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Compass</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Row 3 Icons continue in next section for better organization...
|
||||
|
||||
export const Sun = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 62.25C16.3995 62.25 18.75 59.8995 18.75 57C18.75 54.1005 16.3995 51.75 13.5 51.75C10.6005 51.75 8.25 54.1005 8.25 57C8.25 59.8995 10.6005 62.25 13.5 62.25Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.5 51.75V53.9375" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.5 60.0625V62.25" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M8.25 57H10.4375" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M16.5625 57H18.75" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Sun</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Expand = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 49 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M38.5645 52.625H40.752V54.8125" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M32.4375 61.375H30.25V59.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M40.752 59.1875V61.375H38.5645" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M30.25 54.8125V52.625H32.4375" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M32.875 54.8125V59.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M38.125 54.8125V59.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M36.377 54.8125V59.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M34.625 54.8125V59.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const RotateCw = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 71 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M57.5 52.4873V56.9936" stroke="currentColor" strokeWidth="1.03" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M60.2036 52.938C61.56 53.8223 62.4567 55.2536 62.4567 56.9936C62.4567 58.3083 61.9345 59.5691 61.0049 60.4987C60.0753 61.4282 58.8145 61.9505 57.4998 61.9505C56.1852 61.9505 54.9244 61.4282 53.9948 60.4987C53.0652 59.5691 52.543 58.3083 52.543 56.9936C52.543 55.2536 53.4397 53.8223 54.7961 52.938" stroke="currentColor" strokeWidth="1.03" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Calendar = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 93 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M83.875 52.1875H75.125C74.8834 52.1875 74.6875 52.3834 74.6875 52.625V61.375C74.6875 61.6166 74.8834 61.8125 75.125 61.8125H83.875C84.1166 61.8125 84.3125 61.6166 84.3125 61.375V52.625C84.3125 52.3834 84.1166 52.1875 83.875 52.1875Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M82.125 51.3125V53.0625" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M76.875 51.3125V53.0625" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M74.6875 54.8125H84.3125" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M77.5312 58.3125L78.8438 59.625L81.4688 57" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const CreditCard = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 115 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M106.278 53.3599H96.7225C96.2199 53.3599 95.8125 53.7673 95.8125 54.2699V59.7299C95.8125 60.2324 96.2199 60.6399 96.7225 60.6399H106.278C106.78 60.6399 107.188 60.2324 107.188 59.7299V54.2699C107.188 53.7673 106.78 53.3599 106.278 53.3599Z" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M102.637 55.1802V58.8202" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M100.363 55.1802V58.8202" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M98.0879 55.1802V58.8202" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Credit Card</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const UserPlus = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.938 6.4375H8.562" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M7.25 5.125V7.75" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M0.906 7.75C2.718 7.75 4.188 6.28094 4.188 4.46875C4.188 2.65656 2.718 1.1875 0.906 1.1875C-0.906 1.1875 -2.375 2.65656 -2.375 4.46875C-2.375 6.28094 -0.906 7.75 0.906 7.75Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M-3.688 9.9375C-2.564 8.60044 -0.977 7.75 0.906 7.75C2.79 7.75 4.376 8.60044 5.5 9.9375" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>UserPlus</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const User = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.906 8.75C8.218 8.75 10.188 7.28094 10.188 5.46875C10.188 3.65656 8.218 1.1875 5.906 1.1875C3.594 1.1875 1.625 3.65656 1.625 5.46875C1.625 7.28094 3.594 8.75 5.906 8.75Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M0.312 10.9375C1.436 9.60044 3.023 8.75 5.906 8.75C8.79 8.75 10.376 9.60044 11.5 10.9375" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M11.938 7.875L12.812 8.75L14.562 7" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>User</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Shield = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M167.5 58.75C168.708 58.75 169.688 57.7706 169.688 56.5625C169.688 55.3544 168.708 54.375 167.5 54.375C166.292 54.375 165.312 55.3544 165.312 56.5625C165.312 57.7706 166.292 58.75 167.5 58.75Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M163.988 60.9031C164.317 60.2547 164.82 59.7102 165.439 59.3298C166.059 58.9494 166.772 58.748 167.499 58.748C168.226 58.748 168.939 58.9494 169.559 59.3298C170.179 59.7102 170.681 60.2547 171.01 60.9031" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M172.676 56.125C172.861 57.2217 172.692 58.3487 172.194 59.3432C171.697 60.3377 170.896 61.1483 169.907 61.658C168.919 62.1676 167.794 62.35 166.695 62.1786C165.597 62.0073 164.581 61.4912 163.794 60.7048C163.008 59.9185 162.492 58.9025 162.32 57.8037C162.149 56.7049 162.331 55.5801 162.841 54.5916C163.351 53.6032 164.161 52.8023 165.156 52.3046C166.15 51.8069 167.277 51.6382 168.374 51.8228" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M170.562 53.0625L171.438 53.9375L173.188 52.1875" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Shield</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const DollarSign = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 203 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M189.5 53.9375V54.8125" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 59.1875V60.0625" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M189.5 62.25C192.399 62.25 194.75 59.8995 194.75 57C194.75 54.1005 192.399 51.75 189.5 51.75C186.601 51.75 184.25 54.1005 184.25 57C184.25 59.8995 186.601 62.25 189.5 62.25Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M188.188 59.1875H190.156C190.446 59.1875 190.725 59.0723 190.93 58.8671C191.135 58.662 191.25 58.3838 191.25 58.0938C191.25 57.8037 191.135 57.5255 190.93 57.3204C190.725 57.1152 190.446 57 190.156 57H188.844C188.554 57 188.275 56.8848 188.07 56.6796C187.865 56.4745 187.75 56.1963 187.75 55.9062C187.75 55.6162 187.865 55.338 188.07 55.1329C188.275 54.9277 188.554 54.8125 188.844 54.8125H190.812" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Dollar Sign</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Row 4 Icons
|
||||
export const UserCircle = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.5 84.25C16.3995 84.25 18.75 81.8995 18.75 79C18.75 76.1005 16.3995 73.75 13.5 73.75C10.6005 73.75 8.25 76.1005 8.25 79C8.25 81.8995 10.6005 84.25 13.5 84.25Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.5 80.75C14.7081 80.75 15.6875 79.7706 15.6875 78.5625C15.6875 77.3544 14.7081 76.375 13.5 76.375C12.2919 76.375 11.3125 77.3544 11.3125 78.5625C11.3125 79.7706 12.2919 80.75 13.5 80.75Z" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M9.98828 82.9031C10.3175 82.2547 10.8197 81.7102 11.4394 81.3298C12.0591 80.9494 12.7721 80.748 13.4992 80.748C14.2264 80.748 14.9393 80.9494 15.559 81.3298C16.1787 81.7102 16.681 82.2547 17.0102 82.9031" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const ExternalLink = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 49 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M32.9414 78.4968L33.9627 77.4754L32.9414 76.4541M34.9841 79.5181H37.0267" stroke="currentColor" strokeWidth="0.86" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M39.0749 74.4077H31.9256C31.3616 74.4077 30.9043 74.865 30.9043 75.429V82.5783C30.9043 83.1424 31.3616 83.5997 31.9256 83.5997H39.0749C39.639 83.5997 40.0963 83.1424 40.0963 82.5783V75.429C40.0963 74.865 39.639 74.4077 39.0749 74.4077Z" stroke="currentColor" strokeWidth="0.86" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Key = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 71 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M55.7198 78.7211C55.5428 78.2808 55.4525 77.8104 55.4538 77.3359C55.4538 75.3508 57.053 73.7011 59.0371 73.6378C59.544 73.6209 60.0489 73.7082 60.5206 73.8944C60.9924 74.0806 61.4208 74.3616 61.7795 74.7201C62.1382 75.0786 62.4195 75.507 62.6059 75.9786C62.7924 76.4502 62.88 76.9551 62.8634 77.462C62.798 79.4461 61.1483 81.0453 59.1632 81.0453C58.6887 81.0466 58.2183 80.9563 57.778 80.7793L57.1003 81.457H55.8654V82.6919H54.6305V83.9268H52.9839C52.8747 83.9268 52.77 83.8835 52.6928 83.8063C52.6156 83.7291 52.5723 83.6244 52.5723 83.5152V82.0389C52.5723 81.9299 52.6156 81.8253 52.6927 81.7482L55.7198 78.7211Z" stroke="currentColor" strokeWidth="0.87" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M60.1897 76.9317C60.5307 76.9317 60.8072 76.6553 60.8072 76.3142C60.8072 75.9732 60.5307 75.6968 60.1897 75.6968C59.8487 75.6968 59.5723 75.9732 59.5723 76.3142C59.5723 76.6553 59.8487 76.9317 60.1897 76.9317Z" fill="currentColor"/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Lightbulb = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 93 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M79.5007 84.0927C82.3132 84.0927 84.5932 81.8127 84.5932 79.0002C84.5932 76.1877 82.3132 73.9077 79.5007 73.9077C76.6882 73.9077 74.4082 76.1877 74.4082 79.0002C74.4082 81.8127 76.6882 84.0927 79.5007 84.0927Z" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M78.6515 79.6212C78.3279 79.4344 78.0749 79.146 77.9319 78.8007C77.7889 78.4555 77.7639 78.0727 77.8606 77.7118C77.9573 77.3508 78.1704 77.0319 78.4669 76.8044C78.7633 76.5769 79.1266 76.4536 79.5002 76.4536C79.8739 76.4536 80.2371 76.5769 80.5336 76.8044C80.8301 77.0319 81.0432 77.3508 81.1399 77.7118C81.2366 78.0727 81.2115 78.4555 81.0685 78.8007C80.9255 79.146 80.6726 79.4344 80.349 79.6212L81.1977 81.5457H77.8027L78.6515 79.6212Z" stroke="currentColor" strokeWidth="0.8" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Lightbulb</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const FileText = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 115 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M99.8027 80.273C99.8027 80.9759 100.563 81.5461 101.5 81.5461C102.438 81.5461 103.198 80.9759 103.198 80.273C103.198 78.5755 99.8972 79.2121 99.8972 77.7267C99.8972 77.0239 100.563 76.4536 101.5 76.4536C102.203 76.4536 102.754 76.7719 102.986 77.2313" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M105.744 74.332H97.2564C97.022 74.332 96.832 74.522 96.832 74.7564V83.2439C96.832 83.4783 97.022 83.6683 97.2564 83.6683H105.744C105.978 83.6683 106.168 83.4783 106.168 83.2439V74.7564C106.168 74.522 105.978 74.332 105.744 74.332Z" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>File Text</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Archive = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 137 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M128.169 76.4341H118.833C118.598 76.4341 118.408 76.6241 118.408 76.8585V78.556C118.408 78.7903 118.598 78.9803 118.833 78.9803H128.169C128.403 78.9803 128.593 78.7903 128.593 78.556V76.8585C128.593 76.6241 128.403 76.4341 128.169 76.4341Z" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M127.743 78.9805V82.7998C127.743 82.9124 127.699 83.0203 127.619 83.0999C127.539 83.1795 127.432 83.2242 127.319 83.2242H119.68C119.568 83.2242 119.46 83.1795 119.38 83.0999C119.301 83.0203 119.256 82.9124 119.256 82.7998V78.9805" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M123.5 76.4341V83.2241" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M126.088 73.846C126.584 74.3414 126.613 75.1753 126.088 75.64C125.191 76.4341 123.5 76.4341 123.5 76.4341C123.5 76.4341 123.5 74.743 124.296 73.846C124.759 73.3214 125.593 73.3505 126.088 73.846Z" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M120.912 73.846C120.416 74.3414 120.387 75.1753 120.912 75.64C121.809 76.4341 123.5 76.4341 123.5 76.4341C123.5 76.4341 123.5 74.743 122.704 73.846C122.241 73.3214 121.407 73.3505 120.912 73.846Z" stroke="currentColor" strokeWidth="0.873" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Archive</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Package = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 159 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M145.5 84.0965V78.9899M144.99 83.9586C145.145 84.0483 145.321 84.0955 145.5 84.0955C145.68 84.0955 145.856 84.0483 146.011 83.9586L149.586 81.916C149.741 81.8264 149.87 81.6977 149.959 81.5426C150.049 81.3875 150.096 81.2116 150.096 81.0325V76.9472C150.096 76.7681 150.049 76.5922 149.959 76.4371C149.87 76.2821 149.741 76.1533 149.586 76.0638L146.011 74.0211C145.856 73.9315 145.68 73.8843 145.5 73.8843C145.321 73.8843 145.145 73.9315 144.99 74.0211L141.415 76.0638C141.26 76.1533 141.131 76.2821 141.041 76.4371C140.952 76.5922 140.904 76.7681 140.904 76.9472V81.0325C140.904 81.2116 140.952 81.3875 141.041 81.5426C141.131 81.6977 141.26 81.8264 141.415 81.916L144.99 83.9586Z" stroke="currentColor" strokeWidth="0.83" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M141.051 76.4458L145.499 78.9991L149.947 76.4458" stroke="currentColor" strokeWidth="0.83" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Package</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const BarChart = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 181 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M162.904 74.4077V82.5783C162.904 82.8492 163.012 83.109 163.203 83.3005C163.395 83.4921 163.655 83.5997 163.926 83.5997H172.096" stroke="currentColor" strokeWidth="0.86" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M170.567 75.4233H169.546C169.264 75.4233 169.035 75.652 169.035 75.934V81.0407C169.035 81.3227 169.264 81.5513 169.546 81.5513H170.567C170.849 81.5513 171.078 81.3227 171.078 81.0407V75.934C171.078 75.652 170.849 75.4233 170.567 75.4233Z" stroke="currentColor" strokeWidth="0.86" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M166.473 76.9541H165.452C165.17 76.9541 164.941 77.1827 164.941 77.4648V81.0394C164.941 81.3215 165.17 81.5501 165.452 81.5501H166.473C166.755 81.5501 166.984 81.3215 166.984 81.0394V77.4648C166.984 77.1827 166.755 76.9541 166.473 76.9541Z" stroke="currentColor" strokeWidth="0.86" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Bar Chart</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Folder = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 203 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M185.717 82.5437V75.4562C185.717 75.1429 185.841 74.8424 186.063 74.6209C186.284 74.3994 186.585 74.2749 186.898 74.2749H192.804C192.93 74.2749 193.05 74.3247 193.138 74.4133C193.227 74.5019 193.277 74.6221 193.277 74.7474V83.2524C193.277 83.3777 193.227 83.4979 193.138 83.5865C193.05 83.6751 192.93 83.7249 192.804 83.7249H186.898C186.585 83.7249 186.284 83.6004 186.063 83.3789C185.841 83.1574 185.717 82.8569 185.717 82.5437ZM185.717 82.5437C185.717 82.2304 185.841 81.9299 186.063 81.7084C186.284 81.4869 186.585 81.3624 186.898 81.3624H193.277" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Folder</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Row 5 Icons
|
||||
export const Monitor = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.75 97.0625H8.25C8.00838 97.0625 7.8125 97.2584 7.8125 97.5V104.5C7.8125 104.742 8.00838 104.938 8.25 104.938H18.75C18.9916 104.938 19.1875 104.742 19.1875 104.5V97.5C19.1875 97.2584 18.9916 97.0625 18.75 97.0625Z" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M15.6875 103.188H17.4375" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M13.0625 103.188H13.9375" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M7.8125 99.25H19.1875" stroke="currentColor" strokeWidth="0.95" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Monitor</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Share = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 49 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39.8316 99.8189L39.8311 96.6694L36.6816 96.6689" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M35.8945 100.606L39.832 96.6689" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M38.2555 101.394V104.937C38.2555 105.042 38.214 105.142 38.1401 105.216C38.0663 105.29 37.9661 105.331 37.8617 105.331H31.5617C31.4573 105.331 31.3571 105.29 31.2833 105.216C31.2095 105.142 31.168 105.042 31.168 104.937V98.6374C31.168 98.533 31.2095 98.4328 31.2833 98.359C31.3571 98.2851 31.4573 98.2437 31.5617 98.2437H35.1055" stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Share</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Additional icons from the updated SVG
|
||||
export const CheckCircleIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.5 14.5L13 16L16.5 12.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M14 20C17.3137 20 20 17.3137 20 14C20 10.6863 17.3137 8 14 8C10.6863 8 8 10.6863 8 14C8 17.3137 10.6863 20 14 20Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Check Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const PlusCircleIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 52 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M38 20C41.3137 20 44 17.3137 44 14C44 10.6863 41.3137 8 38 8C34.6863 8 32 10.6863 32 14C32 17.3137 34.6863 20 38 20Z" stroke="currentColor" strokeWidth="1.1" strokeMiterlimit="10"/>
|
||||
<path d="M35.5 14H40.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M38 11.5V16.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Plus Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const XCircleIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 76 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M64 12L60 16" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M60 12L64 16" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M62 20C65.3137 20 68 17.3137 68 14C68 10.6863 65.3137 8 62 8C58.6863 8 56 10.6863 56 14C56 17.3137 58.6863 20 62 20Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>X Circle</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const EditIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 100 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M83.7931 19.5001H81C80.8674 19.5001 80.7402 19.4474 80.6464 19.3536C80.5527 19.2599 80.5 19.1327 80.5 19.0001V16.207C80.5001 16.0745 80.5527 15.9475 80.6463 15.8538L88.3537 8.14633C88.4475 8.05263 88.5746 8 88.7072 8C88.8397 8 88.9669 8.05263 89.0606 8.14633L91.8537 10.9376C91.9474 11.0313 92.0001 11.1585 92.0001 11.291C92.0001 11.4236 91.9474 11.5507 91.8537 11.6445L84.1462 19.3538C84.0526 19.4474 83.9256 19.5 83.7931 19.5001Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M86.5 10L90 13.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Edit</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const CopyIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 124 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M112.424 16.425H113.297C114.01 16.425 114.367 16.425 114.639 16.2863C114.879 16.1642 115.073 15.9695 115.195 15.7299C115.334 15.4576 115.334 15.1011 115.334 14.388V10.702C115.334 9.98902 115.334 9.63251 115.195 9.36018C115.073 9.12062 114.879 8.92586 114.639 8.8038C114.367 8.66504 114.01 8.66504 113.297 8.66504H109.611C108.898 8.66504 108.542 8.66504 108.269 8.8038C108.03 8.92586 107.835 9.12062 107.713 9.36018C107.574 9.63251 107.574 9.98902 107.574 10.702V11.575" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M110.387 11.5752H106.701C105.988 11.5752 105.632 11.5752 105.359 11.714C105.12 11.836 104.925 12.0308 104.803 12.2703C104.664 12.5427 104.664 12.8992 104.664 13.6122V17.2982C104.664 18.0112 104.664 18.3677 104.803 18.6401C104.925 18.8796 105.12 19.0744 105.359 19.1964C105.632 19.3352 105.988 19.3352 106.701 19.3352H110.387C111.1 19.3352 111.457 19.3352 111.729 19.1964C111.968 19.0744 112.163 18.8796 112.285 18.6401C112.424 18.3677 112.424 18.0112 112.424 17.2982V13.6122C112.424 12.8992 112.424 12.5427 112.285 12.2703C112.163 12.0308 111.968 11.836 111.729 11.714C111.457 11.5752 111.1 11.5752 110.387 11.5752Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Copy</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const TrashIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 148 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M139.334 10.124H128.664" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M132.545 13.0303V16.9103" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M135.451 13.0303V16.9103" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M138.363 10.124V19.339C138.363 19.4677 138.312 19.591 138.221 19.682C138.13 19.7729 138.006 19.824 137.878 19.824H130.118C129.989 19.824 129.866 19.7729 129.775 19.682C129.684 19.591 129.633 19.4677 129.633 19.339V10.124" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M136.42 10.1163V9.14627C136.42 8.88901 136.318 8.64229 136.136 8.46038C135.954 8.27847 135.708 8.17627 135.45 8.17627H132.54C132.283 8.17627 132.036 8.27847 131.854 8.46038C131.673 8.64229 131.57 8.88901 131.57 9.14627V10.1163" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Trash</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const UserPlusIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M186.5 14.5H189.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M188 13V16" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M180.75 16C182.821 16 184.5 14.3211 184.5 12.25C184.5 10.1789 182.821 8.5 180.75 8.5C178.679 8.5 177 10.1789 177 12.25C177 14.3211 178.679 16 180.75 16Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M175.5 18.5C176.784 16.9719 178.598 16 180.75 16C182.902 16 184.716 16.9719 186 18.5" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>User Plus</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const PowerIcon = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M206 16.5V20" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M208.5 14L212 14" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M200 14L203.5 14" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M200.804 11C200.143 12.1438 199.879 13.4736 200.051 14.7831C200.224 16.0925 200.823 17.3086 201.757 18.2425C202.691 19.1765 203.907 19.7762 205.217 19.9486C206.526 20.1211 207.856 19.8567 209 19.1963C210.144 18.536 211.038 17.5167 211.543 16.2965C212.049 15.0763 212.137 13.7234 211.796 12.4476C211.454 11.1718 210.701 10.0444 209.653 9.24026C208.605 8.43612 207.322 8.00016 206.001 8V11.5C206.551 11.5001 207.086 11.6818 207.522 12.0169C207.959 12.352 208.273 12.8218 208.415 13.3534C208.557 13.8849 208.52 14.4486 208.31 14.957C208.099 15.4654 207.727 15.8901 207.25 16.1652C206.773 16.4403 206.219 16.5505 205.674 16.4786C205.128 16.4067 204.621 16.1568 204.232 15.7677C203.843 15.3785 203.593 14.8719 203.522 14.3262C203.45 13.7806 203.56 13.2266 203.835 12.75L200.804 11Z" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Power</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Wifi = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 148 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M62 131.5C62.8284 131.5 63.5 130.828 63.5 130C63.5 129.172 62.8284 128.5 62 128.5C61.1716 128.5 60.5 129.172 60.5 130C60.5 130.828 61.1716 131.5 62 131.5Z" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M62 139.5V131.5" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M57.5 133.5H56C56 135.091 56.6321 136.617 57.7574 137.743C58.8826 138.868 60.4087 139.5 62 139.5C63.5913 139.5 65.1174 138.868 66.2426 137.743C67.3679 136.617 68 135.091 68 133.5H66.5" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Wifi</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const Link = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 148 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M132.665 135.508L132.121 136.121C131.702 136.541 131.167 136.827 130.585 136.942C130.003 137.058 129.4 136.999 128.852 136.772C128.304 136.545 127.835 136.16 127.506 135.667C127.176 135.173 127 134.593 127 134C127 133.407 127.176 132.827 127.506 132.333C127.835 131.84 128.304 131.455 128.852 131.228C129.4 131.001 130.003 130.942 130.585 131.058C131.167 131.173 131.702 131.459 132.121 131.879L135.879 136.121C136.298 136.541 136.833 136.827 137.415 136.942C137.997 137.058 138.6 136.999 139.148 136.772C139.696 136.545 140.165 136.16 140.495 135.667C140.824 135.173 141 134.593 141 134C141 133.407 140.824 132.827 140.495 132.333C140.165 131.84 139.696 131.455 139.148 131.228C138.6 131.001 137.997 130.942 137.415 131.058C136.833 131.173 136.298 131.459 135.879 131.879L135.336 132.492" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Link</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// Coin icons from Row 2
|
||||
export const CoinPlain = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 148" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M60 37.5C62.7614 37.5 65 36.4926 65 35.25C65 34.0074 62.7614 33 60 33C57.2386 33 55 34.0074 55 35.25C55 36.4926 57.2386 37.5 60 37.5Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M55 35.25V37.75C55 38.9925 57.2387 40 60 40C62.7613 40 65 38.9925 65 37.75V35.25" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M65.0001 36.0449C67.2826 36.2537 69.0001 37.1612 69.0001 38.2499C69.0001 39.4924 66.7613 40.4999 64.0001 40.4999C62.7751 40.4999 61.6526 40.3018 60.7832 39.9724" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M59 39.955V40.75C59 41.9925 61.2387 43 64 43C66.7613 43 69 41.9925 69 40.75V38.25" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Coin Plain</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const CoinWithCheck = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 148" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M83.7559 38.1543C86.5173 38.1543 88.7559 37.1469 88.7559 35.9043C88.7559 34.6617 86.5173 33.6543 83.7559 33.6543C80.9944 33.6543 78.7559 34.6617 78.7559 35.9043C78.7559 37.1469 80.9944 38.1543 83.7559 38.1543Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M78.7559 35.9043V38.4043C78.7559 39.6468 80.9946 40.6543 83.7559 40.6543C86.5171 40.6543 88.7559 39.6468 88.7559 38.4043V35.9043" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M88.7579 36.6992C91.0404 36.908 92.7579 37.8155 92.7579 38.9042C92.7579 40.1467 90.5191 41.1542 87.7579 41.1542C86.5329 41.1542 85.4104 40.9561 84.541 40.6267" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M82.7559 40.6093V41.4043C82.7559 42.6468 84.9946 43.6543 87.7559 43.6543C90.5171 43.6543 92.7559 42.6468 92.7559 41.4043V38.9043" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M89.5918 32.1309L90.7168 33.2559L93.3418 30.6309" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Coin With Check</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const CoinWithCheckWhite = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 148" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M107.756 38.1543C110.517 38.1543 112.756 37.1469 112.756 35.9043C112.756 34.6617 110.517 33.6543 107.756 33.6543C104.994 33.6543 102.756 34.6617 102.756 35.9043C102.756 37.1469 104.994 38.1543 107.756 38.1543Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M102.756 35.9043V38.4043C102.756 39.6468 104.995 40.6543 107.756 40.6543C110.517 40.6543 112.756 39.6468 112.756 38.4043V35.9043" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M112.758 36.6992C115.04 36.908 116.758 37.8155 116.758 38.9042C116.758 40.1467 114.519 41.1542 111.758 41.1542C110.533 41.1542 109.41 40.9561 108.541 40.6267" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M106.756 40.6093V41.4043C106.756 42.6468 108.995 43.6543 111.756 43.6543C114.517 43.6543 116.756 42.6468 116.756 41.4043V38.9043" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M111.23 33.4551L112.918 35.1426L116.855 31.2051" stroke="white" strokeWidth="5" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M111.51 33.1016L113.197 34.7891L117.135 30.8516" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Coin With Check White</title>
|
||||
</svg>
|
||||
);
|
||||
|
||||
export const CoinWithX = (props: LucideProps) => (
|
||||
<svg {...props} viewBox="0 0 220 148" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M132 37.5C134.761 37.5 137 36.4926 137 35.25C137 34.0074 134.761 33 132 33C129.239 33 127 34.0074 127 35.25C127 36.4926 129.239 37.5 132 37.5Z" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M127 35.25V37.75C127 38.9925 129.239 40 132 40C134.761 40 137 38.9925 137 37.75V35.25" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M137 36.0449C139.283 36.2537 141 37.1612 141 38.2499C141 39.4924 138.761 40.4999 136 40.4999C134.775 40.4999 133.653 40.3018 132.783 39.9724" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M131 39.955V40.75C131 41.9925 133.239 43 136 43C138.761 43 141 41.9925 141 40.75V38.25" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M128.973 43.0278L139.03 32.9707" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M128.854 44.5469L140.646 32.7539" stroke="currentColor" strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<title>Coin With X</title>
|
||||
</svg>
|
||||
);
|
||||
@@ -7,6 +7,7 @@
|
||||
---break--- */
|
||||
@plugin "tailwindcss-animate";
|
||||
@import "tailwind-scrollbar-hide/v4";
|
||||
@import '@squircle/tailwindcss';
|
||||
/*
|
||||
---break--- */
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@@ -55,8 +55,8 @@ export default function PlanEditorView() {
|
||||
open={showNewVersionDialog}
|
||||
setOpen={setShowNewVersionDialog}
|
||||
/>
|
||||
<div className="flex w-full">
|
||||
<div className="flex flex-col gap-4 w-full">
|
||||
<div className="flex w-full h-full overflow-hidden">
|
||||
<div className="flex flex-col w-full min-h-0">
|
||||
<V2Breadcrumb
|
||||
items={[
|
||||
{
|
||||
@@ -70,8 +70,8 @@ export default function PlanEditorView() {
|
||||
]}
|
||||
/>
|
||||
|
||||
<div className="flex">
|
||||
<div className="flex-1 w-full min-w-sm">
|
||||
<div className="flex flex-1 min-h-0 pt-4 overflow-hidden">
|
||||
<div className="flex-1 min-h-0 w-full min-w-sm overflow-hidden">
|
||||
<ManagePlan />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useCusQuery } from "@/views/customers/customer/hooks/useCusQuery";
|
||||
import { useProductContext } from "@/views/products/product/ProductContext";
|
||||
import EditorTopSection from "./EditorTopSection";
|
||||
import PlanCard from "./PlanCard";
|
||||
import PlanCard from "./PlanCard/PlanCard";
|
||||
|
||||
export const ManagePlan = ({
|
||||
hideAdminHover = false,
|
||||
@@ -12,7 +12,7 @@ export const ManagePlan = ({
|
||||
const { product, entityId } = useProductContext();
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4 ">
|
||||
<div className="flex flex-col gap-4 h-full overflow-hidden">
|
||||
<EditorTopSection
|
||||
product={product}
|
||||
hideAdminHover={hideAdminHover}
|
||||
@@ -20,7 +20,7 @@ export const ManagePlan = ({
|
||||
entityId={entityId}
|
||||
/>
|
||||
|
||||
<div className="flex flex-col gap-10 h-full bg-[#EEEEEE] min-h-screen items-center justify-center">
|
||||
<div className="flex flex-col gap-10 flex-1 min-h-0 bg-[#EEEEEE] items-center justify-center overflow-hidden">
|
||||
<PlanCard product={product} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
import type { ProductV2 } from "@autumn/shared";
|
||||
import { PencilIcon, Trash2 } from "lucide-react";
|
||||
import { CopyableSpan } from "@/components/general/CopyablePre";
|
||||
import { Card, CardHeader } from "@/components/ui/card";
|
||||
|
||||
export default function PlanCard({ product }: { product: ProductV2 }) {
|
||||
return (
|
||||
<Card className="w-[95%] mx-auto">
|
||||
<CardHeader>
|
||||
<div className="flex flex-row items-center justify-between gap-2 w-full whitespace-nowrap">
|
||||
<div className="flex flex-row items-baseline gap-2">
|
||||
<span className="text-lg font-medium w-fit whitespace-nowrap">
|
||||
{product.name}
|
||||
</span>
|
||||
<CopyableSpan text={product.id} />
|
||||
</div>
|
||||
<div className="flex flex-row items-center gap-2">
|
||||
<PencilIcon />
|
||||
<Trash2 />
|
||||
</div>
|
||||
</div>
|
||||
</CardHeader>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import type { ProductV2 } from "@autumn/shared";
|
||||
import { mapToProductV3 } from "@autumn/shared";
|
||||
import { CurrencyDollar } from "@phosphor-icons/react";
|
||||
import { CopyableSpan } from "@/components/general/CopyablePre";
|
||||
import { Card, CardHeader } from "@/components/ui/card";
|
||||
import { useEnv } from "@/utils/envUtils";
|
||||
import { keyToTitle } from "@/utils/formatUtils/formatTextUtils";
|
||||
import { PlanFeatureList } from "./PlanFeatureList";
|
||||
|
||||
export default function PlanCard({ product }: { product: ProductV2 }) {
|
||||
const env = useEnv();
|
||||
const productV3 = mapToProductV3({ product, env });
|
||||
|
||||
return (
|
||||
<Card className="w-[70%] mx-auto bg-card">
|
||||
<CardHeader>
|
||||
<div className="flex flex-row items-center justify-between gap-2 w-full whitespace-nowrap">
|
||||
<div className="flex flex-row items-baseline gap-2">
|
||||
<span className="text-main font-medium w-fit whitespace-nowrap">
|
||||
{product.name}
|
||||
</span>
|
||||
<CopyableSpan text={product.id} className="text-xs" copySize={12} />
|
||||
</div>
|
||||
</div>
|
||||
<span className="text-sm text-t3 truncate w-[65%]">
|
||||
{productV3.description}
|
||||
</span>
|
||||
|
||||
<div
|
||||
className="inline-flex items-center gap-2 bg-white border border-[#D1D1D1] rounded-md h-[30px] w-fit squircle squircle-1"
|
||||
style={{
|
||||
padding: "6px 12px",
|
||||
boxShadow:
|
||||
"0px 4px 4px rgba(0, 0, 0, 0.02), inset 0px -3px 4px rgba(0, 0, 0, 0.04)",
|
||||
}}
|
||||
>
|
||||
<span className="text-[#666666]">
|
||||
<CurrencyDollar size={16} weight="regular" />
|
||||
</span>
|
||||
{productV3.price?.amount ? (
|
||||
<span className="text-sm font-medium text-[#444444]">
|
||||
${productV3.price.amount}/
|
||||
{keyToTitle(productV3.price.interval ?? "once", { exclusionMap: { one_off: "once" } }).toLowerCase()}
|
||||
</span>
|
||||
) : (
|
||||
<span className="text-[#666666] text-sm">No price set</span>
|
||||
)}
|
||||
</div>
|
||||
<PlanFeatureList />
|
||||
</CardHeader>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { PencilIcon, Trash2 } from "lucide-react"
|
||||
|
||||
export const PlanCardToolbar = () => {
|
||||
return <div className="flex flex-row items-center gap-2">
|
||||
<PencilIcon />
|
||||
<Trash2/>
|
||||
</div>
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
import type { ProductItem } from "@autumn/shared";
|
||||
import type { Icon } from "@phosphor-icons/react";
|
||||
import {
|
||||
CheckCircle,
|
||||
ArrowsClockwise,
|
||||
ArrowClockwise,
|
||||
Coins,
|
||||
CurrencyDollar,
|
||||
XCircle
|
||||
} from "@phosphor-icons/react";
|
||||
import {
|
||||
ProductItemFeatureType,
|
||||
UsageModel
|
||||
} from "@autumn/shared";
|
||||
|
||||
interface PlanFeatureIconProps {
|
||||
item: ProductItem;
|
||||
position: "left" | "right";
|
||||
}
|
||||
|
||||
// Helper function to classify feature type
|
||||
const getFeatureType = (item: ProductItem): ProductItemFeatureType | null => {
|
||||
return item.feature_type || null;
|
||||
};
|
||||
|
||||
// Helper function to classify billing/usage type
|
||||
const getBillingType = (item: ProductItem): "included" | "prepaid" | "paid" | "none" => {
|
||||
// Check if it's included/free (no price and no usage model)
|
||||
if (!item.price && !item.usage_model && !item.price_config) {
|
||||
return "included";
|
||||
}
|
||||
|
||||
// Check for prepaid model
|
||||
if (item.usage_model === UsageModel.Prepaid) {
|
||||
return "prepaid";
|
||||
}
|
||||
|
||||
// Check for paid model
|
||||
if (item.usage_model === UsageModel.PayPerUse || item.price || item.price_config) {
|
||||
return "paid";
|
||||
}
|
||||
|
||||
return "none";
|
||||
};
|
||||
|
||||
// Helper function to get the left icon (feature type)
|
||||
const getLeftIcon = (item: ProductItem): { icon: Icon; color: string } => {
|
||||
const featureType = getFeatureType(item);
|
||||
|
||||
switch (featureType) {
|
||||
case ProductItemFeatureType.Boolean:
|
||||
return { icon: CheckCircle, color: "text-[#DE1779]" }; // On/Off - pink
|
||||
case ProductItemFeatureType.SingleUse:
|
||||
return { icon: ArrowsClockwise, color: "text-[#DE1779]" }; // Usage-based - pink
|
||||
case ProductItemFeatureType.ContinuousUse:
|
||||
return { icon: ArrowClockwise, color: "text-[#DE1779]" }; // Persistent Usage - pink
|
||||
case ProductItemFeatureType.Static:
|
||||
return { icon: CheckCircle, color: "text-[#DE1779]" }; // Static - pink
|
||||
default:
|
||||
return { icon: CheckCircle, color: "text-[#DE1779]" }; // Default - pink
|
||||
}
|
||||
};
|
||||
|
||||
// Helper function to get the right icon (billing type)
|
||||
const getRightIcon = (item: ProductItem): { icon: Icon; color: string } => {
|
||||
const billingType = getBillingType(item);
|
||||
|
||||
switch (billingType) {
|
||||
case "included":
|
||||
return { icon: CheckCircle, color: "text-[#10B981]" }; // Included/Free - green
|
||||
case "prepaid":
|
||||
return { icon: Coins, color: "text-[#3B82F6]" }; // Prepaid - blue
|
||||
case "paid":
|
||||
return { icon: CurrencyDollar, color: "text-[#F59E0B]" }; // Paid - orange
|
||||
case "none":
|
||||
return { icon: XCircle, color: "text-[#6B7280]" }; // None - gray
|
||||
default:
|
||||
return { icon: XCircle, color: "text-[#6B7280]" }; // Default - gray
|
||||
}
|
||||
};
|
||||
|
||||
export const PlanFeatureIcon = ({ item, position }: PlanFeatureIconProps) => {
|
||||
const iconData = position === "left" ? getLeftIcon(item) : getRightIcon(item);
|
||||
const Icon = iconData.icon;
|
||||
|
||||
return (
|
||||
<Icon
|
||||
size={16}
|
||||
className={iconData.color}
|
||||
weight={position === "left" ? "bold" : "regular"}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,47 @@
|
||||
import type { ProductItem } from "@autumn/shared";
|
||||
import { useFeaturesQuery } from "@/hooks/queries/useFeaturesQuery";
|
||||
import { useProductContext } from "@/views/products/product/ProductContext";
|
||||
import { PlanFeatureRow } from "./PlanFeatureRow";
|
||||
import { isPriceItem } from "@/utils/product/getItemType";
|
||||
|
||||
export const PlanFeatureList = () => {
|
||||
const { product } = useProductContext();
|
||||
const { features } = useFeaturesQuery();
|
||||
|
||||
// Filter out standalone price items - only show features and priced features
|
||||
const filteredItems = product?.items?.filter(item => !isPriceItem(item)) || [];
|
||||
|
||||
if (filteredItems.length === 0) {
|
||||
return (
|
||||
<div className="text-center py-4 text-muted-foreground text-sm">
|
||||
No features configured for this plan
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const handleFeatureClick = (item: ProductItem) => {
|
||||
console.log("Feature clicked:", item);
|
||||
};
|
||||
|
||||
const handleDelete = (item: ProductItem) => {
|
||||
console.log("Delete feature:", item);
|
||||
// Add your delete logic here
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="space-y-1">
|
||||
<h4 className="text-sm font-medium text-foreground mb-2">Features</h4>
|
||||
<div className="space-y-1">
|
||||
{filteredItems.map((item, index) => (
|
||||
<PlanFeatureRow
|
||||
key={item.entitlement_id || item.price_id || index}
|
||||
item={item}
|
||||
features={features}
|
||||
onRowClick={handleFeatureClick}
|
||||
onDelete={handleDelete}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,118 @@
|
||||
import type { ProductItem, Feature } from "@autumn/shared";
|
||||
import { ProductItemType, getProductItemDisplay } from "@autumn/shared";
|
||||
import { CurrencyDollar, DotsSixVertical, Trash } from "@phosphor-icons/react";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { useOrg } from "@/hooks/common/useOrg";
|
||||
import { getItemType } from "@/utils/product/productItemUtils";
|
||||
import { PlanFeatureIcon } from "./PlanFeatureIcon";
|
||||
|
||||
interface PlanFeatureRowProps {
|
||||
item: ProductItem;
|
||||
features: Feature[];
|
||||
onRowClick?: (item: ProductItem) => void;
|
||||
onDelete?: (item: ProductItem) => void;
|
||||
}
|
||||
|
||||
export const PlanFeatureRow = ({
|
||||
item,
|
||||
features,
|
||||
onRowClick,
|
||||
onDelete,
|
||||
}: PlanFeatureRowProps) => {
|
||||
const { org } = useOrg();
|
||||
|
||||
const getDisplayText = (item: ProductItem) => {
|
||||
const displayData = getProductItemDisplay({
|
||||
item,
|
||||
features,
|
||||
currency: org?.default_currency || "USD",
|
||||
});
|
||||
|
||||
// Combine primary and secondary text
|
||||
if (displayData.secondary_text) {
|
||||
return `${displayData.primary_text} ${displayData.secondary_text}`;
|
||||
}
|
||||
return displayData.primary_text;
|
||||
};
|
||||
|
||||
const itemType = getItemType(item);
|
||||
const showCoinIcon =
|
||||
itemType === ProductItemType.Price ||
|
||||
itemType === ProductItemType.FeaturePrice;
|
||||
|
||||
return (
|
||||
<div className="flex flex-row items-center bg-white border border-[#D1D1D1] rounded-md h-[30px] w-full px-[7px] py-[6px] gap-1 squircle squircle-t-lg squircle-b-lg squircle-l-lg squircle-smooth-sm squircle-r-lg shadow-[0px_4px_4px_rgba(0,0,0,0.02),_inset_0px_-3px_4px_rgba(0,0,0,0.04)]">
|
||||
{/* Left side - Icons and text */}
|
||||
<div className="flex flex-row items-center flex-1 gap-2 min-w-0">
|
||||
{/* Icon container */}
|
||||
<div className="flex flex-row items-center gap-1 flex-shrink-0">
|
||||
{/* First icon */}
|
||||
<PlanFeatureIcon item={item} position="left" />
|
||||
|
||||
{/* Arrow/separator */}
|
||||
<div
|
||||
className="bg-[#C3C3C3] transform rotate-90"
|
||||
style={{
|
||||
width: "4.67px",
|
||||
height: "3.5px",
|
||||
clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)",
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* Second icon */}
|
||||
<PlanFeatureIcon item={item} position="right" />
|
||||
</div>
|
||||
|
||||
{/* Feature text with optional coin icon */}
|
||||
<div className="flex items-center gap-2 flex-1 min-w-0">
|
||||
{showCoinIcon && (
|
||||
<CurrencyDollar
|
||||
size={14}
|
||||
className="text-[#F59E0B] flex-shrink-0"
|
||||
weight="regular"
|
||||
/>
|
||||
)}
|
||||
<span
|
||||
className="text-[#444444] font-medium truncate"
|
||||
style={{
|
||||
fontFamily: "Inter",
|
||||
fontSize: "13px",
|
||||
lineHeight: "16px",
|
||||
letterSpacing: "-0.003em",
|
||||
}}
|
||||
>
|
||||
{getDisplayText(item)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Right side - Delete and drag handle */}
|
||||
<div className="flex items-center gap-2">
|
||||
{/* Delete button */}
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="rounded-md flex items-center justify-center h-[24px] w-[24px] p-1 hover:bg-red-50 hover:text-red-600"
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
onDelete?.(item);
|
||||
}}
|
||||
>
|
||||
<Trash size={16} className="text-[#666666]" weight="regular" />
|
||||
</Button>
|
||||
|
||||
{/* 6-dot drag handle */}
|
||||
<div
|
||||
className="cursor-grab active:cursor-grabbing p-1"
|
||||
style={{ width: "24px", height: "24px" }}
|
||||
>
|
||||
<DotsSixVertical
|
||||
size={16}
|
||||
className="text-[#A8A8A8]"
|
||||
weight="regular"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
115
vite/src/views/products/plan/components/RightPanel.tsx
Normal file
115
vite/src/views/products/plan/components/RightPanel.tsx
Normal file
@@ -0,0 +1,115 @@
|
||||
import { Minus, Plus } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
import { SideAccordion } from "@/components/general/SideAccordion";
|
||||
import { Accordion } from "@/components/ui/accordion";
|
||||
import { isOneOffProduct } from "@/utils/product/priceUtils";
|
||||
import { AttachButton } from "@/views/customers/customer/product/components/AttachButton";
|
||||
import { CustomerProductBadge } from "@/views/customers/customer/product/components/CustomerProductBadge";
|
||||
import { UpdateProductButton } from "../../product/components/UpdateProductButton";
|
||||
import { CreateFreeTrial } from "../../product/free-trial/CreateFreeTrial";
|
||||
import { FreeTrialView } from "../../product/free-trial/FreeTrialView";
|
||||
import { useProductContext } from "../../product/ProductContext";
|
||||
import { ProductProps } from "../../product/ProductProps";
|
||||
import { ProductVersions } from "../../product/ProductVersions";
|
||||
import { EntitiesSidebar } from "../../product/product-item/EntitiesSidebar";
|
||||
|
||||
export default function ProductSidebar() {
|
||||
const { product, setProduct, isCusProductView } = useProductContext();
|
||||
const [freeTrialModalOpen, setFreeTrialModalOpen] = useState(false);
|
||||
const [entitiesOpen, setEntitiesOpen] = useState(false);
|
||||
const [accordionValues, setAccordionValues] = useState([
|
||||
"properties",
|
||||
"versions",
|
||||
"free-trial",
|
||||
"entities",
|
||||
]);
|
||||
|
||||
const handleFreeTrialModalOpen = () => {
|
||||
setFreeTrialModalOpen(!freeTrialModalOpen);
|
||||
};
|
||||
const handleDeleteFreeTrial = async () => {
|
||||
setProduct({ ...product, free_trial: null });
|
||||
};
|
||||
|
||||
const handleAccordionToggle = (value: string) => {
|
||||
setAccordionValues((prev) =>
|
||||
prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex-col gap-4 h-full border-l py-6">
|
||||
<div className="flex items-center gap-2 justify-start px-4">
|
||||
{isCusProductView && <CustomerProductBadge />}
|
||||
</div>
|
||||
|
||||
<Accordion
|
||||
type="multiple"
|
||||
className="w-full flex flex-col"
|
||||
value={accordionValues}
|
||||
onValueChange={setAccordionValues}
|
||||
>
|
||||
<div className="flex w-full border-b mt-[2px] p-4">
|
||||
<SideAccordion title="Properties" value="properties">
|
||||
<ProductProps />
|
||||
</SideAccordion>
|
||||
</div>
|
||||
<div className="flex w-full border-b p-4">
|
||||
<SideAccordion title="Versions" value="versions">
|
||||
<ProductVersions />
|
||||
</SideAccordion>
|
||||
</div>
|
||||
<div className="flex w-full border-b p-4 relative">
|
||||
<SideAccordion
|
||||
title="Entities"
|
||||
value="entities"
|
||||
isOpen={accordionValues.includes("entities")}
|
||||
onToggle={handleAccordionToggle}
|
||||
onClick={() => setEntitiesOpen(!entitiesOpen)}
|
||||
buttonIcon={<Plus size={14} />}
|
||||
>
|
||||
<EntitiesSidebar open={entitiesOpen} setOpen={setEntitiesOpen} />
|
||||
</SideAccordion>
|
||||
</div>
|
||||
|
||||
<CreateFreeTrial
|
||||
open={freeTrialModalOpen}
|
||||
setOpen={setFreeTrialModalOpen}
|
||||
/>
|
||||
|
||||
<div className="flex w-full border-b p-4">
|
||||
<SideAccordion
|
||||
title="Free Trial"
|
||||
value="free-trial"
|
||||
onClick={
|
||||
product.free_trial
|
||||
? handleDeleteFreeTrial
|
||||
: handleFreeTrialModalOpen
|
||||
}
|
||||
buttonIcon={
|
||||
product.free_trial ? <Minus size={14} /> : <Plus size={14} />
|
||||
}
|
||||
disabledReason={
|
||||
isOneOffProduct(product.items, product.is_add_on)
|
||||
? "Can't add a free trial to an a one time product"
|
||||
: undefined
|
||||
}
|
||||
>
|
||||
<div>
|
||||
{product.free_trial ? (
|
||||
<FreeTrialView product={product} />
|
||||
) : (
|
||||
<span className="text-t3">
|
||||
Add a free trial to this product.
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</SideAccordion>
|
||||
</div>
|
||||
<div className="flex gap-2 px-4 py-6 w-full">
|
||||
{isCusProductView ? <AttachButton /> : <UpdateProductButton />}
|
||||
</div>
|
||||
</Accordion>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user