@mohasinac/appkit 4.1.0 → 4.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/client/features/maintenance/index.d.ts +2 -0
- package/dist/_internal/client/features/maintenance/index.js +1 -0
- package/dist/_internal/client/features/maintenance/views/CloudLogsListView.d.ts +9 -0
- package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +55 -0
- package/dist/_internal/server/features/auctions/index.d.ts +1 -1
- package/dist/_internal/server/features/auctions/index.js +1 -1
- package/dist/_internal/server/features/auctions/service.js +2 -2
- package/dist/_internal/server/features/maintenance/cloud-logs-data.d.ts +50 -0
- package/dist/_internal/server/features/maintenance/cloud-logs-data.js +152 -0
- package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +4 -12
- package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -3
- package/dist/_internal/server/jobs/core/onProductWrite.js +14 -2
- package/dist/_internal/shared/features/auctions/config.d.ts +1 -1
- package/dist/_internal/shared/features/auctions/config.js +1 -1
- package/dist/_internal/shared/features/auctions/schema.js +1 -1
- package/dist/_internal/shared/features/cart/schema.js +2 -2
- package/dist/_internal/shared/features/events/schema.js +1 -1
- package/dist/_internal/shared/features/orders/schema.js +1 -1
- package/dist/_internal/shared/features/products/schema.js +3 -3
- package/dist/_internal/shared/features/promotions/schema.js +3 -3
- package/dist/_internal/shared/fees/calculator.d.ts +6 -7
- package/dist/client.d.ts +4 -4
- package/dist/client.js +4 -2
- package/dist/constants/api-endpoints.d.ts +9 -6
- package/dist/constants/api-endpoints.js +3 -2
- package/dist/contracts/client-payment-gateway.d.ts +1 -2
- package/dist/features/about/components/AboutView.d.ts +6 -16
- package/dist/features/about/components/AboutView.js +3 -3
- package/dist/features/about/index.d.ts +2 -1
- package/dist/features/about/schemas/firestore.d.ts +47 -0
- package/dist/features/about/schemas/firestore.js +6 -0
- package/dist/features/about/schemas/index.d.ts +210 -0
- package/dist/features/about/schemas/index.js +45 -0
- package/dist/features/account/hooks/useProfile.js +3 -0
- package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +6 -0
- package/dist/features/admin/components/AdminCarouselGroupEditorView.js +50 -0
- package/dist/features/admin/components/AdminCartsView.js +16 -3
- package/dist/features/admin/components/AdminCouponEditorView.js +2 -2
- package/dist/features/admin/components/AdminCouponsView.js +14 -4
- package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -42
- package/dist/features/admin/components/AdminMediaView.js +1 -1
- package/dist/features/admin/components/AdminNotificationsView.js +31 -19
- package/dist/features/admin/components/AdminOrdersView.js +7 -0
- package/dist/features/admin/components/AdminPayoutsView.js +18 -3
- package/dist/features/admin/components/AdminProductsView.js +17 -2
- package/dist/features/admin/components/AdminReviewsView.js +16 -2
- package/dist/features/admin/components/AdminScammersView.js +7 -0
- package/dist/features/admin/components/AdminSectionsView.js +4 -0
- package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
- package/dist/features/admin/components/AdminSiteSettingsView.js +44 -2
- package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminStoreEditorView.js +4 -4
- package/dist/features/admin/components/AdminStoresView.js +1 -1
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +23 -5
- package/dist/features/admin/components/AdminSupportTicketsView.js +20 -2
- package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
- package/dist/features/admin/components/AdminTesterChecklistView.js +8 -0
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/constants/filter-tabs.d.ts +55 -41
- package/dist/features/admin/constants/filter-tabs.js +55 -27
- package/dist/features/admin/schemas/firestore.d.ts +5 -0
- package/dist/features/auctions/actions/bid-actions.js +1 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
- package/dist/features/auctions/components/AuctionsListView.js +8 -1
- package/dist/features/auth/components/LoginForm.js +2 -2
- package/dist/features/auth/components/RegisterForm.js +2 -2
- package/dist/features/auth/permissions/constants.d.ts +16 -0
- package/dist/features/auth/permissions/constants.js +53 -0
- package/dist/features/auth/schemas/firestore.js +1 -0
- package/dist/features/blog/components/BlogFilters.js +1 -1
- package/dist/features/cart/schemas/firestore.d.ts +1 -1
- package/dist/features/categories/schemas/firestore.d.ts +1 -1
- package/dist/features/consultation/components/ConsultationForm.js +1 -1
- package/dist/features/events/components/EventFilters.js +2 -0
- package/dist/features/homepage/components/WelcomeSection.js +2 -2
- package/dist/features/layout/TitleBarLayout.d.ts +2 -2
- package/dist/features/layout/TitleBarLayout.js +4 -4
- package/dist/features/media/AvatarUpload.js +7 -3
- package/dist/features/media/MediaVideo.js +1 -1
- package/dist/features/media/finalize.d.ts +9 -13
- package/dist/features/media/finalize.js +23 -74
- package/dist/features/media/server.d.ts +1 -1
- package/dist/features/media/server.js +1 -1
- package/dist/features/orders/hooks/useOrders.js +16 -4
- package/dist/features/orders/schemas/firestore.d.ts +5 -5
- package/dist/features/payments/schemas/firestore.d.ts +2 -2
- package/dist/features/pre-orders/components/PreOrdersListView.js +7 -0
- package/dist/features/products/components/ArtStickersListView.js +5 -0
- package/dist/features/products/components/ProductDetailPageView.d.ts +7 -1
- package/dist/features/products/components/ProductForm.js +14 -1
- package/dist/features/products/components/ProductsIndexPageView.js +7 -0
- package/dist/features/products/constants/action-defs.d.ts +1 -0
- package/dist/features/products/constants/action-defs.js +1 -0
- package/dist/features/products/schemas/firestore.d.ts +1 -1
- package/dist/features/products/schemas/product-templates.d.ts +1 -1
- package/dist/features/products/types/index.d.ts +4 -0
- package/dist/features/scams/schemas/index.js +2 -2
- package/dist/features/search/components/Search.js +3 -3
- package/dist/features/seller/components/SellerAuctionsView.js +27 -2
- package/dist/features/seller/components/SellerOrdersView.js +1 -1
- package/dist/features/seller/components/SellerPayoutsView.js +24 -10
- package/dist/features/seller/components/SellerPreOrdersView.js +12 -4
- package/dist/features/seller/components/SellerPrizeDrawsView.js +23 -5
- package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
- package/dist/features/seller/components/SellerProductShell.js +1 -1
- package/dist/features/seller/components/SellerProductsView.js +8 -6
- package/dist/features/seller/components/SellerReviewsView.js +27 -6
- package/dist/features/seller/components/index.d.ts +0 -2
- package/dist/features/seller/components/index.js +0 -1
- package/dist/features/stores/components/StoreListingsGuideView.js +2 -1
- package/dist/features/stores/components/StoreProductsView.js +1 -1
- package/dist/features/stores/schemas/firestore.d.ts +11 -0
- package/dist/features/stores/schemas/firestore.js +5 -0
- package/dist/features/stores/schemas/index.d.ts +2 -2
- package/dist/features/tester/actions/checklist-item-actions.d.ts +6 -0
- package/dist/features/tester/actions/checklist-item-actions.js +2 -0
- package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +13 -2
- package/dist/features/tester/components/AdminTesterFeedbackListView.js +2 -1
- package/dist/features/tester/components/AdminTesterFeedbackReportView.js +9 -5
- package/dist/features/tester/components/TesterHubView.js +34 -21
- package/dist/features/tester/repository/tester-checklist-item.repository.js +1 -0
- package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +18 -4
- package/dist/features/tester/repository/tester-checklist-response.repository.js +43 -8
- package/dist/features/tester/schemas/firestore.d.ts +8 -3
- package/dist/features/tester/schemas/firestore.js +6 -0
- package/dist/features/tester/seed-data/bids-tester-seed-data.d.ts +2 -0
- package/dist/features/tester/seed-data/bids-tester-seed-data.js +37 -0
- package/dist/features/tester/seed-data/coupons-tester-seed-data.d.ts +2 -0
- package/dist/features/tester/seed-data/coupons-tester-seed-data.js +76 -0
- package/dist/features/tester/seed-data/events-tester-seed-data.js +50 -2
- package/dist/features/tester/seed-data/index.d.ts +3 -0
- package/dist/features/tester/seed-data/index.js +3 -0
- package/dist/features/tester/seed-data/orders-tester-seed-data.d.ts +2 -0
- package/dist/features/tester/seed-data/orders-tester-seed-data.js +265 -0
- package/dist/features/tester/seed-data/products-tester-seed-data.js +213 -8
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +294 -12
- package/dist/features/tester/utils/phases.d.ts +31 -0
- package/dist/features/tester/utils/phases.js +46 -0
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +1 -1
- package/dist/features/whatsapp-bot/types/index.d.ts +1 -1
- package/dist/features/wishlist/types/index.d.ts +3 -0
- package/dist/index.d.ts +11 -4
- package/dist/index.js +15 -7
- package/dist/next/api/routeHandler.js +6 -10
- package/dist/next/components/NotFoundView.js +2 -1
- package/dist/next/routing/route-map.d.ts +4 -12
- package/dist/next/routing/route-map.js +2 -4
- package/dist/providers/db-firebase/admin.d.ts +1 -0
- package/dist/providers/db-firebase/admin.js +1 -1
- package/dist/schemas/registry.d.ts +2 -2
- package/dist/seed/addresses-seed-data.js +18 -18
- package/dist/seed/bids-seed-data.js +4 -4
- package/dist/seed/blog-posts-seed-data.js +82 -82
- package/dist/seed/carousel-slides-seed-data.js +14 -10
- package/dist/seed/carousels-seed-data.js +3 -3
- package/dist/seed/cart-seed-data.js +92 -92
- package/dist/seed/claimed-coupons-seed-data.js +10 -10
- package/dist/seed/conversations-seed-data.js +75 -75
- package/dist/seed/coupon-usage-seed-data.js +12 -12
- package/dist/seed/coupons-seed-data.js +41 -41
- package/dist/seed/events-seed-data.js +105 -105
- package/dist/seed/grouped-listings-seed-data.d.ts +2 -137
- package/dist/seed/grouped-listings-seed-data.js +79 -143
- package/dist/seed/history-seed-data.js +38 -38
- package/dist/seed/homepage-sections-seed-data.js +9 -9
- package/dist/seed/index.d.ts +1 -1
- package/dist/seed/index.js +1 -1
- package/dist/seed/manifest.js +4 -4
- package/dist/seed/notifications-seed-data.js +56 -56
- package/dist/seed/offers-seed-data.js +91 -91
- package/dist/seed/orders-seed-data.js +125 -106
- package/dist/seed/payouts-seed-data.js +42 -42
- package/dist/seed/products-auctions-seed-data.js +10 -2
- package/dist/seed/products-classifieds-seed-data.js +48 -5
- package/dist/seed/products-digital-codes-seed-data.js +48 -5
- package/dist/seed/products-live-items-seed-data.js +6 -1
- package/dist/seed/products-prize-draws-seed-data.js +58 -5
- package/dist/seed/products-standard-seed-data.js +40 -8
- package/dist/seed/reviews-seed-data.js +42 -23
- package/dist/seed/scammers-seed-data.js +22 -22
- package/dist/seed/sessions-seed-data.js +7 -7
- package/dist/seed/shipments-seed-data.js +10 -10
- package/dist/seed/site-settings-seed-data.js +82 -0
- package/dist/seed/store-addresses-seed-data.js +2 -2
- package/dist/seed/store-extensions-seed-data.js +93 -93
- package/dist/seed/stores-seed-data.js +2 -0
- package/dist/seed/support-tickets-seed-data.js +47 -47
- package/dist/seed/users-seed-data.js +55 -89
- package/dist/seed/wishlists-seed-data.js +22 -22
- package/dist/server.d.ts +2 -1
- package/dist/server.js +5 -5
- package/dist/styles.css +1 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/PageLoader.js +8 -3
- package/dist/ui/components/Select.d.ts +8 -1
- package/dist/ui/components/Select.js +2 -2
- package/dist/ui/components/SiteMark.d.ts +23 -0
- package/dist/ui/components/SiteMark.js +76 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +1 -0
- package/dist/validation/schemas.d.ts +0 -2
- package/dist/validation/schemas.js +0 -2
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +27 -19
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
|
-
import { Spinner } from "./Spinner";
|
|
5
4
|
import { Button } from "./Button";
|
|
6
5
|
import { Text } from "./Typography";
|
|
6
|
+
import { SiteMark } from "./SiteMark";
|
|
7
|
+
import { AnimatedDiv } from "./Motion";
|
|
8
|
+
const SPIN_TRANSITION = { repeat: Infinity, duration: 1.8, ease: "linear" };
|
|
9
|
+
function SpinningMark() {
|
|
10
|
+
return (_jsx(AnimatedDiv, { initial: { rotate: 0 }, animate: { rotate: 360 }, transition: SPIN_TRANSITION, children: _jsx(SiteMark, { size: "lg", title: "Loading" }) }));
|
|
11
|
+
}
|
|
7
12
|
export function PageLoader({ children }) {
|
|
8
13
|
const [timedOut, setTimedOut] = React.useState(false);
|
|
9
14
|
React.useEffect(() => {
|
|
@@ -15,8 +20,8 @@ export function PageLoader({ children }) {
|
|
|
15
20
|
if (timedOut) {
|
|
16
21
|
return (_jsxs("div", { className: "flex min-h-[60vh] flex-col items-center justify-center gap-4 p-8 text-center", children: [_jsx(Text, { className: "text-base font-medium text-[var(--appkit-color-text-muted)]", children: "Something went wrong. Please refresh the page." }), _jsx(Button, { variant: "secondary", onClick: () => window.location.reload(), children: "Refresh" })] }));
|
|
17
22
|
}
|
|
18
|
-
return (_jsxs("div", { className: "flex min-h-[60vh] flex-col items-center justify-center gap-3", children: [_jsx(
|
|
23
|
+
return (_jsxs("div", { className: "flex min-h-[60vh] flex-col items-center justify-center gap-3", children: [_jsx(SpinningMark, {}), _jsx(Text, { className: "text-sm text-[var(--appkit-color-text-muted)]", children: "Loading\u2026" })] }));
|
|
19
24
|
}
|
|
20
25
|
// Skeleton provided — render it behind a floating overlay
|
|
21
|
-
return (_jsxs("div", { className: "relative", children: [_jsx("div", { "aria-hidden": "true", children: children }), _jsx("div", { className: "pointer-events-none fixed inset-0 z-50 flex flex-col items-center justify-center gap-4 bg-white/60 p-8 text-center backdrop-blur-sm bg-[var(--appkit-color-surface)]/60", children: timedOut ? (_jsxs(_Fragment, { children: [_jsx(Text, { className: "text-base font-medium text-[var(--appkit-color-text-muted)]", children: "Something went wrong. Please refresh the page." }), _jsx("div", { className: "pointer-events-auto", children: _jsx(Button, { variant: "secondary", onClick: () => window.location.reload(), children: "Refresh" }) })] })) : (_jsxs(_Fragment, { children: [_jsx(
|
|
26
|
+
return (_jsxs("div", { className: "relative", children: [_jsx("div", { "aria-hidden": "true", children: children }), _jsx("div", { className: "pointer-events-none fixed inset-0 z-50 flex flex-col items-center justify-center gap-4 bg-white/60 p-8 text-center backdrop-blur-sm bg-[var(--appkit-color-surface)]/60", children: timedOut ? (_jsxs(_Fragment, { children: [_jsx(Text, { className: "text-base font-medium text-[var(--appkit-color-text-muted)]", children: "Something went wrong. Please refresh the page." }), _jsx("div", { className: "pointer-events-auto", children: _jsx(Button, { variant: "secondary", onClick: () => window.location.reload(), children: "Refresh" }) })] })) : (_jsxs(_Fragment, { children: [_jsx(SpinningMark, {}), _jsx(Text, { className: "text-sm text-[var(--appkit-color-text-muted)]", children: "Loading\u2026" })] })) })] }));
|
|
22
27
|
}
|
|
@@ -20,5 +20,12 @@ export interface SelectProps<V extends string = string> extends Omit<React.Selec
|
|
|
20
20
|
* chrome. For call sites that already own their own label/wrapper markup.
|
|
21
21
|
*/
|
|
22
22
|
bare?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* className applied to the outer wrapper div — the real flex/grid child
|
|
25
|
+
* when this Select sits inside a Row/flex container. `className` only
|
|
26
|
+
* reaches the inner `<select>` element, so sizing utilities like
|
|
27
|
+
* `flex-shrink-0` / `min-w-*` / `max-w-*` must go here instead.
|
|
28
|
+
*/
|
|
29
|
+
wrapperClassName?: string;
|
|
23
30
|
}
|
|
24
|
-
export declare function Select<V extends string = string>({ options, value, onChange, onValueChange, placeholder, label, error, helperText, disabled, required, className, id, variant, bare, ...props }: SelectProps<V>): React.JSX.Element;
|
|
31
|
+
export declare function Select<V extends string = string>({ options, value, onChange, onValueChange, placeholder, label, error, helperText, disabled, required, className, id, variant, bare, wrapperClassName, ...props }: SelectProps<V>): React.JSX.Element;
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Div } from "./Div";
|
|
5
5
|
import { Label, Text } from "./Typography";
|
|
6
|
-
export function Select({ options, value, onChange, onValueChange, placeholder, label, error, helperText, disabled = false, required, className = "", id, variant = "default", bare = false, ...props }) {
|
|
6
|
+
export function Select({ options, value, onChange, onValueChange, placeholder, label, error, helperText, disabled = false, required, className = "", id, variant = "default", bare = false, wrapperClassName, ...props }) {
|
|
7
7
|
const generatedId = React.useId();
|
|
8
8
|
const inputId = id ?? generatedId;
|
|
9
9
|
const handleChange = (event) => {
|
|
@@ -30,5 +30,5 @@ export function Select({ options, value, onChange, onValueChange, placeholder, l
|
|
|
30
30
|
if (bare) {
|
|
31
31
|
return (_jsx("select", { ...props, id: inputId, value: value, onChange: handleChange, disabled: disabled, "aria-invalid": error ? "true" : undefined, className: selectClassName, children: optionsMarkup }));
|
|
32
32
|
}
|
|
33
|
-
return (_jsxs("div", { className: "appkit-select", "data-section": "select-div-592", children: [label && (_jsx(Label, { htmlFor: inputId, className: "appkit-select__label", required: required, children: label })), _jsxs("div", { className: "relative group", "data-section": "select-div-593", children: [_jsx("select", { ...props, id: inputId, value: value, onChange: handleChange, disabled: disabled, "aria-invalid": error ? "true" : undefined, className: selectClassName, children: optionsMarkup }), _jsx(Div, { className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-[var(--appkit-color-text-faint)]", "data-section": "select-div-594", children: _jsx("svg", { className: "h-4 w-4", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", children: _jsx("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd" }) }) })] }), error ? (_jsx(Text, { size: "sm", variant: "error", className: "appkit-select__error", role: "alert", children: error })) : helperText ? (_jsx(Text, { size: "sm", variant: "secondary", className: "appkit-select__error", children: helperText })) : null] }));
|
|
33
|
+
return (_jsxs("div", { className: ["appkit-select", wrapperClassName].filter(Boolean).join(" "), "data-section": "select-div-592", children: [label && (_jsx(Label, { htmlFor: inputId, className: "appkit-select__label", required: required, children: label })), _jsxs("div", { className: "relative group", "data-section": "select-div-593", children: [_jsx("select", { ...props, id: inputId, value: value, onChange: handleChange, disabled: disabled, "aria-invalid": error ? "true" : undefined, className: selectClassName, children: optionsMarkup }), _jsx(Div, { className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-[var(--appkit-color-text-faint)]", "data-section": "select-div-594", children: _jsx("svg", { className: "h-4 w-4", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", children: _jsx("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd" }) }) })] }), error ? (_jsx(Text, { size: "sm", variant: "error", className: "appkit-select__error", role: "alert", children: error })) : helperText ? (_jsx(Text, { size: "sm", variant: "secondary", className: "appkit-select__error", children: helperText })) : null] }));
|
|
34
34
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type SiteMarkSize = "sm" | "md" | "lg" | "xl" | "hero";
|
|
2
|
+
export type SiteMarkTone = "brand" | "mono" | "inverse" | "on-primary";
|
|
3
|
+
export interface SiteMarkProps {
|
|
4
|
+
/** Responsive height preset. Default `"md"`. */
|
|
5
|
+
size?: SiteMarkSize;
|
|
6
|
+
/**
|
|
7
|
+
* `"brand"` (default) renders the themed gradient mark.
|
|
8
|
+
* `"mono"` renders the mark in `currentColor`.
|
|
9
|
+
* `"inverse"` renders in `var(--appkit-color-text-on-primary)` for use on
|
|
10
|
+
* primary-coloured surfaces.
|
|
11
|
+
* `"on-primary"` renders the mark in `var(--appkit-color-text)`.
|
|
12
|
+
*/
|
|
13
|
+
tone?: SiteMarkTone;
|
|
14
|
+
/** Accessible title; defaults to "LetItRip.in". */
|
|
15
|
+
title?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional admin-uploaded image URL. When present, renders an `<MediaImage>`
|
|
18
|
+
* instead of the SVG mark (so the watermark proxy applies). Falls back to
|
|
19
|
+
* the SVG when empty/undefined.
|
|
20
|
+
*/
|
|
21
|
+
src?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function SiteMark({ size, tone, title, src, }: SiteMarkProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* LetItRip site mark — the icon glyph (distinct from the `SiteLogo` text
|
|
5
|
+
* wordmark). Sourced from `public/logo.svg`'s path data, recolored to follow
|
|
6
|
+
* the active theme via the same `--appkit-logo-stop-*` variables `SiteLogo`
|
|
7
|
+
* uses, so a custom admin theme restyles both consistently.
|
|
8
|
+
*
|
|
9
|
+
* Sizes are responsive presets — the variant catalogue forbids consumer-side
|
|
10
|
+
* className overrides on primitive components.
|
|
11
|
+
*/
|
|
12
|
+
import { useId } from "react";
|
|
13
|
+
import { MediaImage } from "../../features/media/MediaImage";
|
|
14
|
+
const GRADIENT_ID_PREFIX = "appkit-mark-gradient";
|
|
15
|
+
const SIZE_HEIGHTS = {
|
|
16
|
+
sm: "h-5",
|
|
17
|
+
md: "h-7 md:h-9 lg:h-10",
|
|
18
|
+
lg: "h-9 md:h-11 lg:h-12",
|
|
19
|
+
xl: "h-12 md:h-16 lg:h-20",
|
|
20
|
+
hero: "h-16 xl:h-20 2xl:h-24",
|
|
21
|
+
};
|
|
22
|
+
function resolveFill(tone, gradientId) {
|
|
23
|
+
switch (tone) {
|
|
24
|
+
case "mono":
|
|
25
|
+
return "currentColor";
|
|
26
|
+
case "inverse":
|
|
27
|
+
return "var(--appkit-color-text-on-primary)";
|
|
28
|
+
case "on-primary":
|
|
29
|
+
return "var(--appkit-color-text)";
|
|
30
|
+
case "brand":
|
|
31
|
+
default:
|
|
32
|
+
return `url(#${gradientId})`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Path data lifted verbatim from public/logo.svg (viewBox 0 0 236 245),
|
|
36
|
+
// re-based so a shared <g transform> restores the original 54.75/132.32 etc.
|
|
37
|
+
// per-path offsets exactly as authored in the source file.
|
|
38
|
+
const MARK_PATHS = [
|
|
39
|
+
"M0 0 C2.48483036 2.0831585 4.81373709 4.29498295 7.11816406 6.57470703 C9.26769907 8.82057402 9.26769907 8.82057402 12.25488281 10.67626953 C12.25488281 11.33626953 12.25488281 11.99626953 12.25488281 12.67626953 C12.91488281 12.67626953 13.57488281 12.67626953 14.25488281 12.67626953 C14.25488281 13.33626953 14.25488281 13.99626953 14.25488281 14.67626953 C15.24488281 14.34626953 16.23488281 14.01626953 17.25488281 13.67626953 C16.88182172 8.45341422 15.16491455 5.0939269 11.25488281 1.67626953 C6.58084592 -1.32216923 1.6099081 -2.98497415 -3.74511719 -4.32373047 C-0.61755915 -6.53908408 2.11861547 -6.58675662 5.84472656 -5.98779297 C13.93669909 -3.75823814 22.3968031 0.61152686 27.25488281 7.67626953 C27.25488281 8.66626953 27.25488281 9.65626953 27.25488281 10.67626953 C27.91488281 11.00626953 28.57488281 11.33626953 29.25488281 11.67626953 C27.76988281 12.17126953 27.76988281 12.17126953 26.25488281 12.67626953 C26.25488281 13.33626953 26.25488281 13.99626953 26.25488281 14.67626953 C27.73988281 15.17126953 27.73988281 15.17126953 29.25488281 15.67626953 C30.31738281 17.75048828 30.31738281 17.75048828 31.25488281 20.36376953 C32.39145695 23.41940538 33.5425928 26.25168951 35.00488281 29.17626953 C36.25488281 31.67626953 36.25488281 31.67626953 36.25488281 33.67626953 C38.23488281 34.00626953 40.21488281 34.33626953 42.25488281 34.67626953 C42.58488281 35.66626953 42.91488281 36.65626953 43.25488281 37.67626953 C45.25504748 38.8850905 45.25504748 38.8850905 47.25488281 39.67626953 C47.25488281 40.33626953 47.25488281 40.99626953 47.25488281 41.67626953 C47.83238281 41.94439453 48.40988281 42.21251953 49.00488281 42.48876953 C51.25488281 43.67626953 51.25488281 43.67626953 53.19238281 45.17626953 C55.46300556 46.82763153 57.63306899 47.69308935 60.25488281 48.67626953 C61.59538334 49.32840492 62.93149649 49.99006922 64.25488281 50.67626953 C64.60550781 50.24314453 64.95613281 49.81001953 65.31738281 49.36376953 C67.25488281 47.67626953 67.25488281 47.67626953 70.62988281 46.30126953 C74.46240218 44.58324361 76.39626982 42.68940214 79.25488281 39.67626953 C80.58821615 39.00960286 81.92154948 38.3429362 83.25488281 37.67626953 C83.58488281 36.68626953 83.91488281 35.69626953 84.25488281 34.67626953 C85.1971875 34.41587891 86.13949219 34.15548828 87.11035156 33.88720703 C90.48710703 32.94230246 90.48710703 32.94230246 92.11816406 29.77783203 C92.59640625 28.63056641 93.07464844 27.48330078 93.56738281 26.30126953 C94.05851563 25.15916016 94.54964844 24.01705078 95.05566406 22.84033203 C95.96649579 20.43716037 96.73000565 18.18332986 97.25488281 15.67626953 C98.57488281 15.67626953 99.89488281 15.67626953 101.25488281 15.67626953 C100.26488281 14.68626953 99.27488281 13.69626953 98.25488281 12.67626953 C99.52609157 6.32022574 103.2653405 2.51498534 108.25488281 -1.32373047 C115.23260765 -5.25284283 121.28273298 -6.98807629 129.25488281 -6.32373047 C129.58488281 -5.66373047 129.91488281 -5.00373047 130.25488281 -4.32373047 C129.53042969 -4.08138672 128.80597656 -3.83904297 128.05957031 -3.58935547 C117.58141846 -0.14693748 117.58141846 -0.14693748 110.25488281 7.67626953 C109.53007197 11.32901422 109.53007197 11.32901422 109.25488281 14.67626953 C112.38780283 13.39989471 114.38454253 11.65142342 116.71191406 9.23095703 C126.67980382 -0.81263822 137.16324455 -9.33195357 151.78222656 -10.37451172 C155.75507136 -10.29292091 159.45379365 -9.43467682 163.25488281 -8.32373047 C163.63509309 -4.99689055 163.38756188 -3.54316124 161.62988281 -0.63623047 C158.94530942 1.97769625 156.85504725 2.77622842 153.25488281 3.67626953 C153.25488281 3.01626953 153.25488281 2.35626953 153.25488281 1.67626953 C135.06729648 9.19341712 135.06729648 9.19341712 119.25488281 20.67626953 C122.30441673 20.67626953 123.65003141 20.22851291 126.38769531 19.03173828 C127.598125 18.51063477 127.598125 18.51063477 128.83300781 17.97900391 C129.67347656 17.61097656 130.51394531 17.24294922 131.37988281 16.86376953 C147.86044339 9.67626953 147.86044339 9.67626953 154.25488281 9.67626953 C154.58488281 9.01626953 154.91488281 8.35626953 155.25488281 7.67626953 C162.16560009 6.43434353 168.68316741 6.07814949 175.25488281 8.67626953 C175.94238281 10.98876953 175.94238281 10.98876953 176.25488281 13.67626953 C169.55408941 21.61033779 161.11085134 22.67742267 151.25488281 23.67626953 C141.01233038 24.72295372 131.63960378 26.33200701 122.25488281 30.67626953 C121.92488281 31.33626953 121.59488281 31.99626953 121.25488281 32.67626953 C129.8848016 32.99788141 138.29150478 32.29182237 146.86694336 31.38769531 C151.35460269 30.9203089 155.73427243 30.55691348 160.25488281 30.67626953 C160.25488281 30.01626953 160.25488281 29.35626953 160.25488281 28.67626953 C166.94775193 28.20009702 171.03019518 28.27653257 176.25488281 32.67626953 C176.31738281 35.42626953 176.31738281 35.42626953 175.25488281 38.67626953 C166.32351794 45.61808097 152.14682783 43.74992118 141.50488281 43.80126953 C140.51528564 43.80610352 139.52568848 43.8109375 138.50610352 43.81591797 C137.12104614 43.81253418 137.12104614 43.81253418 135.70800781 43.80908203 C134.87430664 43.8079541 134.04060547 43.80682617 133.18164062 43.80566406 C131.25488281 43.67626953 131.25488281 43.67626953 130.25488281 42.67626953 C128.40596335 42.44263072 126.5500025 42.26323318 124.69238281 42.11376953 C123.68046875 42.02998047 122.66855469 41.94619141 121.62597656 41.85986328 C120.84351563 41.79927734 120.06105469 41.73869141 119.25488281 41.67626953 C128.54963644 46.30017475 139.85218553 50.87709946 150.25488281 47.67626953 C152.25488281 50.67626953 152.25488281 50.67626953 152.12988281 53.17626953 C151.03078399 56.31655187 150.19207532 57.13037874 147.25488281 58.67626953 C137.69753358 61.16118033 129.82502805 57.8461373 121.60253906 53.11376953 C119.79534849 52.00720359 118.0180494 50.85171393 116.25488281 49.67626953 C114.26058132 49.69041151 114.26058132 49.69041151 112.12988281 50.11376953 C108.73818842 50.63013326 106.42927822 50.53236266 103.12988281 49.67626953 C96.82760515 48.74715933 91.50053289 53.03227177 86.41503906 56.28173828 C83.49431904 58.49484258 82.57192312 59.43706228 81.25488281 62.67626953 C78.62988281 63.92626953 78.62988281 63.92626953 76.25488281 64.67626953 C77.70894531 66.00658203 77.70894531 66.00658203 79.19238281 67.36376953 C83.81982811 72.00048827 87.34315986 77.34202207 90.96777344 82.76416016 C92.37558669 84.8555853 93.80498322 86.93103215 95.23925781 89.00439453 C95.99094238 90.09119507 95.99094238 90.09119507 96.7578125 91.19995117 C97.74281033 92.62363606 98.72783561 94.04730195 99.71289062 95.47094727 C103.14257716 100.45165823 103.14257716 100.45165823 104.25488281 102.67626953 C100.67189999 101.02258515 97.50293804 98.9093075 94.25488281 96.67626953 C93.47113281 96.14001953 92.68738281 95.60376953 91.87988281 95.05126953 C91.07550781 94.37064453 91.07550781 94.37064453 90.25488281 93.67626953 C90.25488281 93.01626953 90.25488281 92.35626953 90.25488281 91.67626953 C89.59488281 91.67626953 88.93488281 91.67626953 88.25488281 91.67626953 C88.25488281 91.01626953 88.25488281 90.35626953 88.25488281 89.67626953 C87.67738281 89.44939453 87.09988281 89.22251953 86.50488281 88.98876953 C83.67114386 87.33575514 82.22344169 85.2798474 80.25488281 82.67626953 C79.67738281 82.16064453 79.09988281 81.64501953 78.50488281 81.11376953 C77.25488281 79.67626953 77.25488281 79.67626953 77.25488281 75.67626953 C76.59488281 75.67626953 75.93488281 75.67626953 75.25488281 75.67626953 C74.47113281 74.83064453 73.68738281 73.98501953 72.87988281 73.11376953 C72.01363281 72.30939453 71.14738281 71.50501953 70.25488281 70.67626953 C68.18126293 70.92383398 68.18126293 70.92383398 66.25488281 71.67626953 C65.59488281 71.32564453 64.93488281 70.97501953 64.25488281 70.61376953 C63.26488281 70.14970703 63.26488281 70.14970703 62.25488281 69.67626953 C60.02017876 70.4593642 60.02017876 70.4593642 58.25488281 71.67626953 C57.92488281 71.01626953 57.59488281 70.35626953 57.25488281 69.67626953 C52.27622127 73.32037845 52.27622127 73.32037845 49.81738281 78.80126953 C49.63175781 79.42001953 49.44613281 80.03876953 49.25488281 80.67626953 C47.76988281 81.17126953 47.76988281 81.17126953 46.25488281 81.67626953 C45.55366247 82.99175889 44.89126072 84.32821709 44.25488281 85.67626953 C38.58549081 92.46500303 31.3812828 97.54526154 24.25488281 102.67626953 C23.59488281 102.34626953 22.93488281 102.01626953 22.25488281 101.67626953 C22.82335937 100.93763672 23.39183594 100.19900391 23.97753906 99.43798828 C28.48366344 93.5175878 32.67950586 87.55213517 36.62207031 81.23486328 C41.37319349 73.78992147 41.37319349 73.78992147 44.25488281 70.67626953 C44.91488281 70.67626953 45.57488281 70.67626953 46.25488281 70.67626953 C46.56425781 70.05751953 46.87363281 69.43876953 47.19238281 68.80126953 C47.87988281 67.42626953 48.56738281 66.05126953 49.25488281 64.67626953 C48.51238281 64.09876953 47.76988281 63.52126953 47.00488281 62.92626953 C44.25488281 60.67626953 44.25488281 60.67626953 42.40722656 58.73486328 C40.10813113 56.53590994 37.82128362 55.07114385 35.06738281 53.48876953 C30.32432726 50.74571398 30.32432726 50.74571398 29.25488281 49.67626953 C25.74914181 49.85981618 22.26608025 50.19825136 18.77050781 50.52001953 C15.25488281 50.67626953 15.25488281 50.67626953 12.50097656 50.08642578 C9.96848257 49.36693189 9.96848257 49.36693189 7.06738281 51.61376953 C5.67519531 52.63470703 5.67519531 52.63470703 4.25488281 53.67626953 C3.59488281 53.67626953 2.93488281 53.67626953 2.25488281 53.67626953 C2.25488281 54.33626953 2.25488281 54.99626953 2.25488281 55.67626953 C-15.0124365 61.39929286 -15.0124365 61.39929286 -23.24511719 57.48876953 C-25.29450692 55.01242361 -25.46508299 52.82665427 -25.74511719 49.67626953 C-22.74511719 47.67626953 -22.74511719 47.67626953 -19.74511719 47.67626953 C-19.74511719 48.33626953 -19.74511719 48.99626953 -19.74511719 49.67626953 C-6.81294467 47.6102712 -6.81294467 47.6102712 5.25488281 42.67626953 C5.91488281 42.34626953 6.57488281 42.01626953 7.25488281 41.67626953 C5.52542628 41.8186241 3.79632627 41.96531336 2.06738281 42.11376953 C1.10445312 42.19498047 0.14152344 42.27619141 -0.85058594 42.35986328 C-3.66833602 42.6166902 -3.66833602 42.6166902 -6.08935547 43.18554688 C-10.83294902 44.06205203 -15.6219408 43.86083798 -20.43261719 43.86376953 C-21.47095703 43.87601563 -22.50929688 43.88826172 -23.57910156 43.90087891 C-32.41166298 43.91749187 -41.84857916 43.86547033 -48.74511719 37.67626953 C-49.62011719 34.92626953 -49.62011719 34.92626953 -49.74511719 32.67626953 C-44.16259799 29.35051341 -40.24824927 28.2117601 -33.74511719 28.67626953 C-33.74511719 29.33626953 -33.74511719 29.99626953 -33.74511719 30.67626953 C-29.75889353 30.96494829 -25.77238736 31.24934458 -21.78564453 31.53076172 C-19.79924773 31.67240954 -17.81319124 31.81880445 -15.82714844 31.96533203 C-8.78508497 32.46782382 -1.80557629 32.82578514 5.25488281 32.67626953 C-1.32885106 25.20054591 -12.91977793 25.25849266 -22.12011719 24.36376953 C-31.63243982 23.38920966 -41.29369429 22.24730171 -48.74511719 15.67626953 C-49.58886719 12.44580078 -49.58886719 12.44580078 -49.74511719 9.67626953 C-43.72762283 5.66460663 -37.99452826 6.78826929 -31.19824219 7.96923828 C-17.04472556 10.86718682 -3.96788363 17.0179149 9.25488281 22.67626953 C9.25488281 22.01626953 9.25488281 21.35626953 9.25488281 20.67626953 C8.68125 20.41072266 8.10761719 20.14517578 7.51660156 19.87158203 C5.15348508 18.62268109 3.1932774 17.16920701 1.06738281 15.55126953 C-6.63520717 10.06259763 -15.77314376 5.66692734 -24.74511719 2.67626953 C-25.40511719 3.33626953 -26.06511719 3.99626953 -26.74511719 4.67626953 C-34.78303188 0.5814828 -34.78303188 0.5814828 -36.74511719 -4.32373047 C-36.62011719 -6.57373047 -36.62011719 -6.57373047 -35.74511719 -8.32373047 C-22.7394333 -12.65895843 -10.62814346 -8.06180664 0 0 Z M59.25488281 66.67626953 C59.58488281 67.33626953 59.91488281 67.99626953 60.25488281 68.67626953 C60.58488281 68.01626953 60.91488281 67.35626953 61.25488281 66.67626953 C60.59488281 66.67626953 59.93488281 66.67626953 59.25488281 66.67626953 Z M65.25488281 66.67626953 C65.91488281 67.33626953 66.57488281 67.99626953 67.25488281 68.67626953 C67.25488281 68.01626953 67.25488281 67.35626953 67.25488281 66.67626953 C66.59488281 66.67626953 65.93488281 66.67626953 65.25488281 66.67626953 Z",
|
|
40
|
+
"M0 0 C11.50123061 5.04128831 18.88109584 20.83793742 23.78125 31.83984375 C24.94487802 34.85707153 25.28986724 36.81146041 25 40 C25.66 40 26.32 40 27 40 C27.43699219 41.77117188 27.43699219 41.77117188 27.8828125 43.578125 C28.29567317 45.13573572 28.70980279 46.69301048 29.125 48.25 C29.31320313 49.02730469 29.50140625 49.80460937 29.6953125 50.60546875 C30.88058422 54.93911849 31.47518013 56.60026005 35.1796875 59.421875 C36.11039063 59.94265625 37.04109375 60.4634375 38 61 C38 61.66 38 62.32 38 63 C36 64.625 36 64.625 34 66 C34.27617533 67.94074861 34.27617533 67.94074861 35 70 C41.59667903 74.39778602 51.60409644 71.76132638 59.125 70.75 C60.13127441 70.61505127 61.13754883 70.48010254 62.17431641 70.34106445 C80.19233613 67.80382137 97.96122388 62.72047121 114 54 C112.66581275 61.60249892 109.96289683 67.90973878 106.5625 74.8125 C106.07201172 75.83537109 105.58152344 76.85824219 105.07617188 77.91210938 C102.98106784 82.22955048 100.99599164 86.22968334 98 90 C95.21136135 88.90144538 92.51236766 87.76186789 89.81640625 86.4453125 C85.90445434 84.77679219 82.21117166 84.58286571 78 84.6875 C77.23961426 84.6980542 76.47922852 84.7086084 75.69580078 84.71948242 C69.07650068 84.86597404 62.47478114 85.29768738 55.875 85.8125 C54.43640625 85.91727661 54.43640625 85.91727661 52.96875 86.02416992 C47.14873717 86.5361721 42.33145018 87.56885872 37 90 C34.28669502 93.69009477 35.00425995 97.47732336 35.515625 101.81640625 C36.03537249 104.15946147 36.76031909 105.94733994 38 108 C38.66 108.33 39.32 108.66 40 109 C40 109.66 40 110.32 40 111 C38.92234375 111.02191406 37.8446875 111.04382813 36.734375 111.06640625 C32.75680437 111.62137489 32.75680437 111.62137489 30.890625 115.08984375 C30.31675854 116.36054804 29.77047321 117.6440087 29.25 118.9375 C26.31113309 125.79257794 26.31113309 125.79257794 23 128 C22.70867187 127.48203857 22.41734375 126.96407715 22.1171875 126.43041992 C16.96561063 117.30682338 11.89193314 108.32592192 5.4609375 100.03125 C4 98 4 98 3 95 C6.08510827 96.19976433 9.05047042 97.50002556 12 99 C12.25077068 96.48162212 12.48202464 93.96364929 12.69140625 91.44140625 C12.90407581 89.06973688 13.1648404 86.70205499 13.46484375 84.33984375 C14.99188327 69.81115349 11.19069264 57.03242904 4.234375 44.28515625 C3 42 3 42 2 39 C-8.10055106 48.34728963 -11.28506477 62.070344 -12.24609375 75.41796875 C-12.39555548 82.7767611 -11.45360249 89.79688051 -10 97 C-6.30581799 97 -4.22163822 95.71820705 -1 94 C-2.76236511 97.88105541 -5.170002 101.30365427 -7.5625 104.8125 C-12.66808819 112.3730957 -17.3813469 120.13490233 -22 128 C-26.33342663 124.15943091 -28.02017773 119.8323229 -30.2421875 114.58203125 C-31.8078628 111.67977844 -31.8078628 111.67977844 -35.1953125 111.13671875 C-36.58363281 111.06904297 -36.58363281 111.06904297 -38 111 C-37.71125 110.443125 -37.4225 109.88625 -37.125 109.3125 C-34.46273037 103.84005688 -31.86728934 98.32261795 -33.9375 92.25 C-40.10648067 85.5202029 -51.78190353 85.29507464 -60.39746094 84.88623047 C-78.42838713 84.09012281 -78.42838713 84.09012281 -95 90 C-95.66 90 -96.32 90 -97 90 C-100.67339003 83.5576531 -104.04960991 77.00028763 -107.25 70.3125 C-107.59095703 69.61261963 -107.93191406 68.91273926 -108.28320312 68.19165039 C-110.4884527 63.52631996 -111.89095344 59.04163511 -113 54 C-110.01293266 55.12015025 -107.17562008 56.40005073 -104.34375 57.859375 C-84.92165679 67.59695452 -62.76036384 72.02819116 -41.0625 72.1875 C-39.71865234 72.20876953 -39.71865234 72.20876953 -38.34765625 72.23046875 C-35.72907602 72.1593738 -35.72907602 72.1593738 -33 70 C-33.27034634 67.56282742 -33.27034634 67.56282742 -34 65 C-35.485 64.01 -35.485 64.01 -37 63 C-37 62.34 -37 61.68 -37 61 C-36.0615625 60.66613281 -35.123125 60.33226562 -34.15625 59.98828125 C-30.63362223 57.76920014 -30.01190901 56.36218354 -29.00073242 52.40356445 C-28.83549072 51.67226318 -28.67024902 50.94096191 -28.5 50.1875 C-28.09647039 48.64148434 -27.6861991 47.09721415 -27.26953125 45.5546875 C-27.06279785 44.78479492 -26.85606445 44.01490234 -26.64306641 43.22167969 C-21.70228073 26.15214679 -12.36629157 12.36629157 0 0 Z M-3.19921875 28.0625 C-18.88613441 46.58143341 -25.73262204 68.70051067 -24 93 C-23.34052113 97.74135137 -22.23089277 102.37682539 -21 107 C-19.35 106.01 -17.7 105.02 -16 104 C-16.144375 103.04480469 -16.28875 102.08960937 -16.4375 101.10546875 C-19.65870569 78.66887637 -17.00519059 58.73477635 -4.84375 39.14453125 C-2.73907839 36.69651279 -1.05421966 35.93613924 2 35 C16.33895722 50.72505642 19.79198948 70.13700947 19.12695312 90.79150391 C18.86872926 95.28360599 18.09675808 99.64234514 17 104 C18.65 104.99 20.3 105.98 22 107 C24.37892707 99.51974705 25.52235853 92.71902597 25.4375 84.875 C25.42992676 83.87799072 25.42235352 82.88098145 25.41455078 81.85375977 C24.94780501 60.60660661 17.18513768 43.07339146 3.38671875 27.13671875 C0.64111887 24.88610026 -0.83196813 25.84241416 -3.19921875 28.0625 Z",
|
|
41
|
+
"M0 0 C6.45160573 1.32702612 13.00184362 1.4898492 19.5703125 1.734375 C18.0449755 5.15650413 16.01586038 7.7918041 13.6328125 10.671875 C10.9631442 13.90042713 8.64802128 17.09349973 6.5703125 20.734375 C2.14948406 19.11548008 -1.3210797 16.8671974 -5.1484375 14.171875 C-7.50330013 12.68798896 -9.8209885 11.68967323 -12.4296875 10.734375 C-13.28793371 14.08933744 -13.74568841 16.02750188 -12.30859375 19.2421875 C-7.73742301 25.30540358 1.32952848 28.08874227 8.5703125 29.734375 C6.10752449 32.19716301 3.86354268 32.73208755 0.5703125 33.734375 C-0.0896875 33.074375 -0.7496875 32.414375 -1.4296875 31.734375 C-6.56375304 31.04848805 -10.69712174 31.70613253 -15.4296875 33.734375 C-19.96827474 33.12414478 -22.85699078 30.70630153 -25.984375 27.50390625 C-28.78471313 22.13785292 -26.39196929 16.20674747 -24.90039062 10.64941406 C-23.94048696 6.74407985 -23.70863502 2.73582906 -23.4296875 -1.265625 C-15.58304859 -3.8811713 -7.77759071 -1.98656534 0 0 Z",
|
|
42
|
+
"M0 0 C1.36705078 0.00966797 1.36705078 0.00966797 2.76171875 0.01953125 C5.08785508 0.17270715 7.07030826 0.59118823 9.3125 1.1875 C9.36784912 1.75670166 9.42319824 2.32590332 9.48022461 2.91235352 C9.73520715 5.52506224 9.99258678 8.13752968 10.25 10.75 C10.38051758 12.09288086 10.38051758 12.09288086 10.51367188 13.46289062 C10.64418945 14.78256836 10.64418945 14.78256836 10.77734375 16.12890625 C10.86008545 16.99386719 10.94282715 17.85882813 11.02807617 18.75 C11.30790887 21.44733776 11.30790887 21.44733776 12.109375 25.09765625 C12.3125 28.1875 12.3125 28.1875 10.80078125 30.3671875 C10.08277344 30.92664063 9.36476562 31.48609375 8.625 32.0625 C7.91988281 32.63742188 7.21476562 33.21234375 6.48828125 33.8046875 C3.57549273 35.65590318 1.63211024 36.42166374 -1.80078125 35.8125 C-2.52652344 35.60625 -3.25226562 35.4 -4 35.1875 C-9.2896528 33.88905145 -13.53051857 34.46850619 -18.6875 36.1875 C-21.375 34.75 -21.375 34.75 -23.6875 33.1875 C-20.31923157 31.38395285 -16.84679871 30.15155168 -13.25 28.875 C-6.48979783 26.35543682 -6.48979783 26.35543682 -1.6875 21.1875 C-1.03375488 18.18229956 -0.76110446 15.25881341 -0.6875 12.1875 C-6.97542621 14.63280464 -12.21133339 17.76706916 -17.62109375 21.796875 C-19.6875 23.1875 -19.6875 23.1875 -21.6875 23.1875 C-22.90235385 21.46328573 -24.03568704 19.68115116 -25.125 17.875 C-27.11330622 14.58978561 -28.97604346 11.8823727 -31.6875 9.1875 C-31.6875 8.5275 -31.6875 7.8675 -31.6875 7.1875 C-32.3475 7.1875 -33.0075 7.1875 -33.6875 7.1875 C-33.3575 6.1975 -33.0275 5.2075 -32.6875 4.1875 C-32.11829834 4.1373877 -31.54909668 4.08727539 -30.96264648 4.03564453 C-28.34941893 3.80157662 -25.73726061 3.5571142 -23.125 3.3125 C-22.22974609 3.23386719 -21.33449219 3.15523438 -20.41210938 3.07421875 C-13.48049608 2.4140651 -6.93755388 -0.10886318 0 0 Z",
|
|
43
|
+
"M0 0 C2.53200781 2.44544344 4.72817837 4.87187744 6.75 7.75 C13.73777541 17.1246888 22.45557289 23.45831401 32 30 C34.74427299 26.63644416 37.27715166 23.19121517 39.75 19.625 C43.27047998 14.75302489 47.01816203 10.42647541 52 7 C52.66 7 53.32 7 54 7 C54 7.66 54 8.32 54 9 C53.34 9 52.68 9 52 9 C51.72929688 9.85078125 51.45859375 10.7015625 51.1796875 11.578125 C49.98196065 15.05232605 48.57324817 18.37325556 47.125 21.75 C43.59263088 30.24264804 41.75282979 38.9987035 40 48 C38.56260487 48.02712066 37.12506137 48.04645067 35.6875 48.0625 C34.88699219 48.07410156 34.08648437 48.08570313 33.26171875 48.09765625 C31 48 31 48 28 47 C28.33 44.69 28.66 42.38 29 40 C23.34952098 36.22790274 18.78151265 35.24051347 12.0625 34.75 C11.18787109 34.67265625 10.31324219 34.5953125 9.41210938 34.515625 C7.27598915 34.32886039 5.13811556 34.16233445 3 34 C-0.34515739 22.64550234 -0.11377947 11.71928515 0 0 Z",
|
|
44
|
+
"M0 0 C0.66 0 1.32 0 2 0 C2.45979186 26.08041627 2.45979186 26.08041627 -1 33 C-3.5546875 33.2734375 -3.5546875 33.2734375 -6.875 33.375 C-12.72946441 33.71710211 -17.45176129 34.93696182 -22.85546875 37.16015625 C-25 38 -25 38 -27 38 C-26.67 40.64 -26.34 43.28 -26 46 C-28.88211302 46.96070434 -30.69850044 47.10581883 -33.6875 47.0625 C-34.89986328 47.04896484 -34.89986328 47.04896484 -36.13671875 47.03515625 C-36.75160156 47.02355469 -37.36648437 47.01195312 -38 47 C-38.12375 46.07703125 -38.2475 45.1540625 -38.375 44.203125 C-40.06021307 33.11589341 -43.72856035 23.30898624 -48.13330078 13.02978516 C-49.12747013 10.70146853 -50.07385612 8.35614842 -51 6 C-41.31680079 10.33927028 -35.62726817 20.45488907 -30 29 C-22.65364433 24.0879397 -15.65809131 19.05585006 -9.375 12.8125 C-8.64941895 12.1014209 -8.64941895 12.1014209 -7.90917969 11.37597656 C-4.49354817 7.87850468 -2.27057426 4.27997918 0 0 Z",
|
|
45
|
+
"M0 0 C0.70125 0.721875 1.4025 1.44375 2.125 2.1875 C4.08993073 4.16932126 6.13178456 5.94707153 8.3125 7.6875 C9.6428125 8.8321875 9.6428125 8.8321875 11 10 C11 10.66 11 11.32 11 12 C8.7421875 12.26953125 8.7421875 12.26953125 6 12 C3.9453125 10.13671875 3.9453125 10.13671875 2.125 7.6875 C1.50882812 6.88699219 0.89265625 6.08648437 0.2578125 5.26171875 C-0.36480469 4.14216797 -0.36480469 4.14216797 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z",
|
|
46
|
+
"M0 0 C0.99 0.33 1.98 0.66 3 1 C1.44499019 4.81684226 -1.03595495 7.19195732 -4 10 C-4.8125 8.375 -4.8125 8.375 -5 6 C-3.53181864 3.75390165 -1.84147142 1.97621323 0 0 Z",
|
|
47
|
+
"M0 0 C0.99 0.33 1.98 0.66 3 1 C3 1.99 3 2.98 3 4 C2.01 3.67 1.02 3.34 0 3 C0 2.01 0 1.02 0 0 Z",
|
|
48
|
+
"M0 0 C0.66 0 1.32 0 2 0 C2 0.66 2 1.32 2 2 C1.34 2 0.68 2 0 2 C0 1.34 0 0.68 0 0 Z",
|
|
49
|
+
];
|
|
50
|
+
const MARK_TRANSFORMS = [
|
|
51
|
+
"translate(54.7451171875,132.32373046875)",
|
|
52
|
+
"translate(118,0)",
|
|
53
|
+
"translate(185.4296875,93.265625)",
|
|
54
|
+
"translate(66.6875,90.8125)",
|
|
55
|
+
"translate(36,21)",
|
|
56
|
+
"translate(199,22)",
|
|
57
|
+
"translate(110,108)",
|
|
58
|
+
"translate(126,108)",
|
|
59
|
+
"translate(123,146)",
|
|
60
|
+
"translate(75,187)",
|
|
61
|
+
];
|
|
62
|
+
export function SiteMark({ size = "md", tone = "brand", title = "LetItRip.in", src, }) {
|
|
63
|
+
const uid = useId();
|
|
64
|
+
const gradientId = `${GRADIENT_ID_PREFIX}-${uid.replace(/:/g, "")}`;
|
|
65
|
+
const heightCls = SIZE_HEIGHTS[size];
|
|
66
|
+
if (src) {
|
|
67
|
+
return (_jsx(MediaImage, { src: src, alt: title, size: "thumbnail", objectFit: "contain",
|
|
68
|
+
// backed by the catalogued `size` enum; no consumer-provided overrides.
|
|
69
|
+
className: `block w-auto ${heightCls}` }));
|
|
70
|
+
}
|
|
71
|
+
const fill = resolveFill(tone, gradientId);
|
|
72
|
+
const isGradient = tone === "brand";
|
|
73
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 236 245", role: "img", "aria-label": title, "data-testid": "site-mark",
|
|
74
|
+
// backed by the catalogued `size` enum; no consumer-provided overrides.
|
|
75
|
+
className: `block w-auto ${heightCls}`, children: [_jsx("title", { children: title }), isGradient && (_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [_jsx("stop", { offset: "0%", style: { stopColor: "var(--appkit-logo-stop-from)" } }), _jsx("stop", { offset: "55%", style: { stopColor: "var(--appkit-logo-stop-mid)" } }), _jsx("stop", { offset: "100%", style: { stopColor: "var(--appkit-logo-stop-to)" } })] }) })), MARK_PATHS.map((d, i) => (_jsx("path", { d: d, fill: fill, transform: MARK_TRANSFORMS[i] }, i)))] }));
|
|
76
|
+
}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export { Spinner } from "./components/Spinner";
|
|
|
25
25
|
export { PageLoader } from "./components/PageLoader";
|
|
26
26
|
export type { SiteLogoProps } from "./components/SiteLogo";
|
|
27
27
|
export { SiteLogo } from "./components/SiteLogo";
|
|
28
|
+
export type { SiteMarkProps } from "./components/SiteMark";
|
|
29
|
+
export { SiteMark } from "./components/SiteMark";
|
|
28
30
|
export type { SkeletonProps } from "./components/Skeleton";
|
|
29
31
|
export { Skeleton } from "./components/Skeleton";
|
|
30
32
|
export type { ButtonProps } from "./components/Button";
|
package/dist/ui/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { FilterChipGroup } from "./components/FilterChipGroup";
|
|
|
15
15
|
export { Spinner } from "./components/Spinner";
|
|
16
16
|
export { PageLoader } from "./components/PageLoader";
|
|
17
17
|
export { SiteLogo } from "./components/SiteLogo";
|
|
18
|
+
export { SiteMark } from "./components/SiteMark";
|
|
18
19
|
export { Skeleton } from "./components/Skeleton";
|
|
19
20
|
export { Button } from "./components/Button";
|
|
20
21
|
export { IconButton } from "./components/IconButton";
|
|
@@ -24,8 +24,6 @@ export declare const urlSchema: z.ZodString;
|
|
|
24
24
|
export declare const APPROVED_MEDIA_DOMAINS: string[];
|
|
25
25
|
export declare const mediaUrlSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
26
26
|
export declare const dateStringSchema: z.ZodString;
|
|
27
|
-
/** Monetary value in paise — non-negative integer. Use for `price`, `mrp`, `discount`, etc. */
|
|
28
|
-
export declare const priceSchema: z.ZodNumber;
|
|
29
27
|
/** Discount percentage — 0–100. */
|
|
30
28
|
export declare const discountPercentSchema: z.ZodNumber;
|
|
31
29
|
/** Bounded image-array schema factory — caps gallery length. */
|
|
@@ -40,8 +40,6 @@ export const dateStringSchema = z.string().datetime();
|
|
|
40
40
|
// SHARED PRIMITIVES (W2-4 — 2026-05-23)
|
|
41
41
|
// Use these instead of redefining the same validators in feature schemas.
|
|
42
42
|
// ============================================
|
|
43
|
-
/** Monetary value in paise — non-negative integer. Use for `price`, `mrp`, `discount`, etc. */
|
|
44
|
-
export const priceSchema = z.number().int().min(0, "Price must be non-negative (paise)");
|
|
45
43
|
/** Discount percentage — 0–100. */
|
|
46
44
|
export const discountPercentSchema = z.number().min(0).max(100);
|
|
47
45
|
/** Bounded image-array schema factory — caps gallery length. */
|
package/package.json
CHANGED
package/scripts/seed-cli.mjs
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Usage (from consumer project root, e.g. d:/proj/letitrip.in):
|
|
12
12
|
* npx appkit-seed load # load all collections
|
|
13
|
-
* npx appkit-seed load --collections users,
|
|
13
|
+
* npx appkit-seed load --collections users,categories
|
|
14
14
|
* npx appkit-seed delete --yes # purge all (skip confirmation)
|
|
15
15
|
* npx appkit-seed load --dry-run # plan without writing
|
|
16
16
|
* npx appkit-seed status # show seed/existing counts
|
|
@@ -170,9 +170,10 @@ const { encryptPiiFields, addPiiIndices, encryptPayoutDetails, encryptPayoutBank
|
|
|
170
170
|
|
|
171
171
|
const {
|
|
172
172
|
// seed data
|
|
173
|
-
|
|
173
|
+
usersSeedData, addressesSeedData, storeAddressesSeedData,
|
|
174
174
|
categoriesSeedData, storesSeedData, sessionsSeedData,
|
|
175
175
|
productsStandardSeedData, productsAuctionsSeedData, productsPreordersSeedData,
|
|
176
|
+
productsPrizeDrawsSeedData, productsClassifiedsSeedData, productsDigitalCodesSeedData, productsLiveItemsSeedData,
|
|
176
177
|
ordersSeedData, reviewsSeedData, cartsSeedData, bidsSeedData,
|
|
177
178
|
couponsSeedData, couponUsageSeedData,
|
|
178
179
|
eventsSeedData, eventEntriesSeedData, payoutsSeedData,
|
|
@@ -185,9 +186,10 @@ const {
|
|
|
185
186
|
testerChecklistSeedData,
|
|
186
187
|
storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData,
|
|
187
188
|
blogTesterSeedData, eventsTesterSeedData,
|
|
189
|
+
couponsTesterSeedData, bidsTesterSeedData, ordersTesterSeedData,
|
|
188
190
|
// collection constants
|
|
189
|
-
USER_COLLECTION,
|
|
190
|
-
|
|
191
|
+
USER_COLLECTION,
|
|
192
|
+
CATEGORIES_COLLECTION, STORE_COLLECTION,
|
|
191
193
|
PRODUCT_COLLECTION, ORDER_COLLECTION, REVIEW_COLLECTION, BID_COLLECTION,
|
|
192
194
|
COUPONS_COLLECTION, CAROUSELS_COLLECTION, CAROUSEL_SLIDES_COLLECTION,
|
|
193
195
|
HOMEPAGE_SECTIONS_COLLECTION, SITE_SETTINGS_COLLECTION, FAQS_COLLECTION,
|
|
@@ -214,7 +216,6 @@ const COLLECTION_MAP = {
|
|
|
214
216
|
addresses: "addresses",
|
|
215
217
|
storeAddresses: "storeAddresses",
|
|
216
218
|
couponUsage: "couponUsage",
|
|
217
|
-
brands: BRANDS_COLLECTION,
|
|
218
219
|
categories: CATEGORIES_COLLECTION,
|
|
219
220
|
stores: STORE_COLLECTION,
|
|
220
221
|
products: PRODUCT_COLLECTION,
|
|
@@ -247,14 +248,19 @@ const SEED_DATA_MAP = {
|
|
|
247
248
|
users: usersSeedData,
|
|
248
249
|
addresses: addressesSeedData,
|
|
249
250
|
storeAddresses: storeAddressesSeedData,
|
|
250
|
-
brands:
|
|
251
|
+
// SB-UNI-C: brands were merged into categories (categoryType:"brand") — no
|
|
252
|
+
// standalone brands collection/seed exists anymore.
|
|
251
253
|
categories: [...(categoriesSeedData || []), ...(categoriesTesterSeedData || [])],
|
|
252
254
|
stores: [...(storesSeedData || []), ...(storesTesterSeedData || [])],
|
|
253
|
-
products: [
|
|
254
|
-
|
|
255
|
+
products: [
|
|
256
|
+
...(productsStandardSeedData || []), ...(productsAuctionsSeedData || []), ...(productsPreordersSeedData || []),
|
|
257
|
+
...(productsPrizeDrawsSeedData || []), ...(productsClassifiedsSeedData || []), ...(productsDigitalCodesSeedData || []), ...(productsLiveItemsSeedData || []),
|
|
258
|
+
...(productsTesterSeedData || []),
|
|
259
|
+
],
|
|
260
|
+
orders: [...(ordersSeedData || []), ...(ordersTesterSeedData || [])],
|
|
255
261
|
reviews: reviewsSeedData,
|
|
256
|
-
bids: bidsSeedData,
|
|
257
|
-
coupons: couponsSeedData,
|
|
262
|
+
bids: [...(bidsSeedData || []), ...(bidsTesterSeedData || [])],
|
|
263
|
+
coupons: [...(couponsSeedData || []), ...(couponsTesterSeedData || [])],
|
|
258
264
|
couponUsage: couponUsageSeedData,
|
|
259
265
|
carousels: carouselsSeedData,
|
|
260
266
|
carouselSlides: carouselSlidesSeedData,
|
|
@@ -660,15 +666,17 @@ async function cmdDelete() {
|
|
|
660
666
|
const ref = db.collection(USER_COLLECTION).doc(u.uid);
|
|
661
667
|
if ((await ref.get()).exists) { await ref.delete(); stats.deleted++; }
|
|
662
668
|
}
|
|
663
|
-
} else if (colName === "addresses") {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
const
|
|
670
|
-
|
|
671
|
-
|
|
669
|
+
} else if (colName === "addresses" || colName === "storeAddresses") {
|
|
670
|
+
// SB-UNI-A (2026-05-13): both user and store addresses live in the
|
|
671
|
+
// single top-level `addresses` collection now, keyed by `id` — the
|
|
672
|
+
// old per-parent subcollection paths (users/{uid}/addresses,
|
|
673
|
+
// stores/{slug}/addresses) no longer exist, so deleting from them was
|
|
674
|
+
// always a silent no-op. Delete by doc id straight from `addresses`.
|
|
675
|
+
for (const d of seed) {
|
|
676
|
+
if (!d.id) { stats.skipped++; continue; }
|
|
677
|
+
const ref = db.collection("addresses").doc(d.id);
|
|
678
|
+
if ((await ref.get()).exists) { await ref.delete(); stats.deleted++; }
|
|
679
|
+
else stats.skipped++;
|
|
672
680
|
}
|
|
673
681
|
} else if (colName === "couponUsage") {
|
|
674
682
|
const userIds = [...new Set(seed.map((d) => d.userId).filter(Boolean))];
|