@mohasinac/appkit 2.8.4 → 2.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/_internal/client/features/layout/SidebarCollapseToggle.js +2 -0
  2. package/dist/_internal/shared/listing-types/action-tracker.js +0 -2
  3. package/dist/core/unit-of-work.js +0 -1
  4. package/dist/features/account/components/NotificationBell.js +1 -0
  5. package/dist/features/account/components/UserOffersPanel.js +1 -0
  6. package/dist/features/account/components/UserSidebar.js +3 -1
  7. package/dist/features/admin/components/AdminCarouselEditorView.js +3 -1
  8. package/dist/features/admin/components/AdminSidebar.js +3 -1
  9. package/dist/features/admin/components/AdminSiteSettingsView.js +3 -1
  10. package/dist/features/admin/components/AdminSupportTicketDetailView.js +0 -3
  11. package/dist/features/admin/components/DashboardStats.js +5 -1
  12. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +3 -1
  13. package/dist/features/admin/components/analytics/AdminStatCard.js +5 -1
  14. package/dist/features/admin/hooks/useChat.js +1 -0
  15. package/dist/features/auctions/components/AuctionBidsTable.js +5 -1
  16. package/dist/features/auth/hooks/useAuth.js +1 -0
  17. package/dist/features/blog/components/BlogFeaturedCard.js +3 -1
  18. package/dist/features/blog/components/BlogListView.js +5 -1
  19. package/dist/features/blog/components/BlogPostView.js +3 -1
  20. package/dist/features/cart/components/CartDrawer.js +3 -1
  21. package/dist/features/categories/components/BrandDetailPageView.js +5 -1
  22. package/dist/features/categories/components/CategoryDetailPageView.js +3 -1
  23. package/dist/features/categories/components/CategoryGrid.js +5 -1
  24. package/dist/features/categories/components/CategoryTableColumns.js +6 -2
  25. package/dist/features/categories/components/CategoryTree.js +3 -1
  26. package/dist/features/categories/components/ConcernCard.js +3 -1
  27. package/dist/features/collections/components/CollectionCard.js +3 -1
  28. package/dist/features/events/components/EventCard.js +3 -1
  29. package/dist/features/forms/Slider.js +3 -1
  30. package/dist/features/history/hooks/useHistory.js +1 -0
  31. package/dist/features/homepage/components/AdSlot.js +6 -2
  32. package/dist/features/homepage/components/AdvertisementBanner.js +3 -1
  33. package/dist/features/homepage/components/BeforeAfterCard.js +5 -1
  34. package/dist/features/homepage/components/CustomCardsSection.js +5 -1
  35. package/dist/features/homepage/components/HowItWorksSection.js +3 -1
  36. package/dist/features/homepage/components/NewsletterBanner.js +6 -2
  37. package/dist/features/homepage/components/SecurityHighlightsSection.js +3 -1
  38. package/dist/features/homepage/components/StatsCounterSection.js +3 -1
  39. package/dist/features/homepage/components/TrustFeaturesSection.js +3 -1
  40. package/dist/features/layout/AppLayoutShell.js +3 -1
  41. package/dist/features/layout/BottomActionsContext.js +1 -3
  42. package/dist/features/layout/BottomNavbar.js +1 -1
  43. package/dist/features/media/MediaLightbox.js +9 -3
  44. package/dist/features/media/modals/ImageEditor.js +6 -2
  45. package/dist/features/media/upload/MediaUploadField.js +1 -1
  46. package/dist/features/messages/hooks/useConversation.js +2 -0
  47. package/dist/features/messages/hooks/useConversations.js +1 -0
  48. package/dist/features/orders/components/OrdersList.js +3 -1
  49. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
  50. package/dist/features/products/components/CompareOverlay.js +5 -1
  51. package/dist/features/products/components/FeatureBadge.js +3 -1
  52. package/dist/features/products/components/MarketplacePrizeDrawCard.js +1 -1
  53. package/dist/features/products/components/ProductGrid.js +3 -1
  54. package/dist/features/reviews/components/ReviewDetailShell.js +8 -2
  55. package/dist/features/reviews/components/ReviewModal.js +5 -1
  56. package/dist/features/reviews/components/ReviewSummary.js +3 -1
  57. package/dist/features/reviews/components/ReviewsList.js +5 -1
  58. package/dist/features/search/components/Search.js +3 -1
  59. package/dist/features/seller/components/PhysicalLocationModal.js +1 -1
  60. package/dist/features/seller/components/SellerAddressesView.js +2 -1
  61. package/dist/features/seller/components/SellerBidsView.js +3 -1
  62. package/dist/features/seller/components/SellerCouponEditorView.js +3 -1
  63. package/dist/features/seller/components/SellerOffersPanel.js +1 -0
  64. package/dist/features/seller/components/SellerPayoutMethodsView.js +1 -0
  65. package/dist/features/seller/components/SellerProductsView.js +5 -1
  66. package/dist/features/seller/components/SellerReviewsView.js +1 -0
  67. package/dist/features/seller/components/SellerShippingConfigsView.js +1 -0
  68. package/dist/features/seller/components/SellerSidebar.js +12 -4
  69. package/dist/features/seller/components/SellerStoreCategoriesView.js +1 -0
  70. package/dist/features/seller/components/SellerTemplatesView.js +1 -0
  71. package/dist/features/shell/FormShell.js +10 -2
  72. package/dist/features/shell/QuickFormDrawer.js +5 -2
  73. package/dist/features/stores/components/StoreHeader.js +5 -1
  74. package/dist/features/wishlist/components/WishlistPage.js +3 -1
  75. package/dist/providers/db-firebase/admin.js +0 -1
  76. package/dist/ui/DataTable.js +6 -2
  77. package/dist/ui/components/AvatarDisplay.js +3 -1
  78. package/dist/ui/components/BackgroundRenderer.js +4 -2
  79. package/dist/ui/components/Card.js +6 -2
  80. package/dist/ui/components/ImageGallery.js +3 -1
  81. package/dist/ui/components/ImageLightbox.js +3 -1
  82. package/dist/ui/components/PasswordStrengthIndicator.js +3 -1
  83. package/dist/ui/components/Progress.js +6 -2
  84. package/dist/ui/components/RowActionMenu.js +3 -1
  85. package/dist/ui/components/SiteLogo.js +7 -1
  86. package/dist/ui/components/Skeleton.js +3 -1
  87. package/dist/ui/components/Slider.js +3 -1
  88. package/dist/ui/components/TabStrip.js +3 -1
  89. package/package.json +1 -1
@@ -36,7 +36,9 @@ export function BackgroundRenderer({ mode, lightMode, darkMode, }) {
36
36
  opacity: config.overlay.opacity,
37
37
  }
38
38
  : { display: "none" };
39
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: "appkit-bg-renderer", style: getBackgroundStyle(), "data-section": "backgroundrenderer-div-456", children: config.type === "video" && (_jsxs("video", { ref: videoRef, autoPlay: true, loop: true, muted: true, playsInline: true, onLoadedData: () => setIsVideoLoaded(true), className: `appkit-bg-renderer__video ${isVideoLoaded
39
+ return (_jsxs(_Fragment, { children: ["// audit-inline-style-ok: computed style fn", _jsx("div", { className: "appkit-bg-renderer", style: getBackgroundStyle(), "data-section": "backgroundrenderer-div-456", children: config.type === "video" && (_jsxs("video", { ref: videoRef, autoPlay: true, loop: true, muted: true, playsInline: true, onLoadedData: () => setIsVideoLoaded(true), className: `appkit-bg-renderer__video ${isVideoLoaded
40
40
  ? "appkit-bg-renderer__video--loaded"
41
- : "appkit-bg-renderer__video--loading"}`, children: [_jsx("source", { src: config.value, type: "video/mp4" }), "Your browser does not support the video tag."] })) }), _jsx("div", { className: "appkit-bg-renderer__overlay", style: overlayStyle })] }));
41
+ : "appkit-bg-renderer__video--loading"}`, children: [_jsx("source", { src: config.value, type: "video/mp4" }), "Your browser does not support the video tag."] })) })
42
+ // audit-inline-style-ok: pass-through style prop
43
+ , "// audit-inline-style-ok: pass-through style prop", _jsx("div", { className: "appkit-bg-renderer__overlay", style: overlayStyle })] }));
42
44
  }
@@ -53,9 +53,13 @@ export function Card({ children, variant = "flat", padding = "md", hover = false
53
53
  const whileTap = animate === "pressScale" || animate === "both"
54
54
  ? { scale: 0.97 }
55
55
  : undefined;
56
- return (_jsx(motion.div, { className: cls, style: style, onClick: onClick, whileHover: whileHover, whileTap: whileTap, transition: SPRING_SNAPPY, "data-section": "card-div-463", children: children }));
56
+ return (_jsx(motion.div, { className: cls,
57
+ // audit-inline-style-ok: pass-through style prop
58
+ style: style, onClick: onClick, whileHover: whileHover, whileTap: whileTap, transition: SPRING_SNAPPY, "data-section": "card-div-463", children: children }));
57
59
  }
58
- return (_jsx("div", { className: cls, style: style, onClick: onClick, "data-section": "card-div-463", children: children }));
60
+ return (_jsx("div", { className: cls,
61
+ // audit-inline-style-ok: pass-through style prop
62
+ style: style, onClick: onClick, "data-section": "card-div-463", children: children }));
59
63
  }
60
64
  export function CardHeader({ children, className = "" }) {
61
65
  return (_jsx("div", { className: ["appkit-card__header", className].filter(Boolean).join(" "), "data-section": "card-div-464", children: children }));
@@ -91,7 +91,9 @@ export default function ImageGallery({ images, initialIndex = 0, showThumbnails
91
91
  if (images.length === 0) {
92
92
  return (_jsx("div", { className: `appkit-image-gallery ${flex.center} p-8 ${themed.bgTertiary} rounded-lg ${className}`, "data-section": "imagegallery-div-515", children: _jsx(Text, { className: themed.textMuted, children: "No images to display" }) }));
93
93
  }
94
- return (_jsxs("div", { className: `appkit-image-gallery ${className}`, "data-section": "imagegallery-div-516", children: [_jsxs("div", { ref: imageContainerRef, className: `appkit-image-gallery__viewport ${themed.bgSecondary}`, "data-section": "imagegallery-div-517", children: [_jsxs("div", { className: "appkit-image-gallery__image-frame", "data-section": "imagegallery-div-518", children: [_jsx("div", { role: "img", "aria-label": currentImage.alt, className: "appkit-image-gallery__image", style: {
94
+ return (_jsxs("div", { className: `appkit-image-gallery ${className}`, "data-section": "imagegallery-div-516", children: [_jsxs("div", { ref: imageContainerRef, className: `appkit-image-gallery__viewport ${themed.bgSecondary}`, "data-section": "imagegallery-div-517", children: [_jsxs("div", { className: "appkit-image-gallery__image-frame", "data-section": "imagegallery-div-518", children: [_jsx("div", { role: "img", "aria-label": currentImage.alt, className: "appkit-image-gallery__image",
95
+ // audit-inline-style-ok: dynamic CSS
96
+ style: {
95
97
  backgroundImage: `url(${currentImage.src})`,
96
98
  transform: `scale(${scale})`,
97
99
  cursor: allowZoom
@@ -89,7 +89,9 @@ export function ImageLightbox({ images, activeIndex, onClose, onNavigate, showTh
89
89
  const image = images[currentIndex];
90
90
  const hasMultiple = images.length > 1;
91
91
  const iconBtnClass = "w-10 h-10 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-white/30 text-white flex items-center justify-center";
92
- return createPortal(_jsxs("div", { ref: overlayRef, tabIndex: -1, className: "appkit-lightbox", role: "dialog", "aria-modal": "true", "aria-label": "Image lightbox", onKeyDown: handleKeyDown, onWheel: handleWheel, children: [_jsxs("div", { className: "absolute top-0 left-0 right-0 z-10 flex items-center justify-between px-4 py-3 bg-gradient-to-b from-black/60 to-transparent", children: [_jsx(Span, { size: "sm", weight: "medium", className: "text-white/70", children: hasMultiple ? `${currentIndex + 1} / ${images.length}` : "" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => adjustZoom(-ZOOM_STEP), className: iconBtnClass, "aria-label": "Zoom out", disabled: zoom <= MIN_ZOOM, children: _jsx(ZoomOut, { className: "w-4 h-4" }) }), _jsxs("button", { type: "button", onClick: () => { setZoom(100); setRotation(0); }, className: "text-white/70 hover:text-white text-xs font-mono min-w-[3rem] text-center", "aria-label": "Reset zoom", children: [zoom, "%"] }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => adjustZoom(ZOOM_STEP), className: iconBtnClass, "aria-label": "Zoom in", disabled: zoom >= MAX_ZOOM, children: _jsx(ZoomIn, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => setRotation((r) => (r + 90) % 360), className: iconBtnClass, "aria-label": "Rotate 90\u00B0", children: _jsx(RotateCw, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => { setZoom(100); setRotation(0); }, className: iconBtnClass, "aria-label": "Reset", children: _jsx(Maximize2, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onClose, className: CLS_CLOSE_BTN, "aria-label": "Close lightbox", children: _jsx(X, { className: "w-5 h-5" }) })] })] }), hasMultiple && (_jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => navigate(-1), className: "absolute left-4 top-1/2 -translate-y-1/2 w-12 h-12 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-white/30 text-white z-10 flex items-center justify-center", "aria-label": "Previous image", children: _jsx(ChevronLeft, { className: "w-7 h-7" }) })), _jsxs("div", { className: "appkit-lightbox__image-wrap", style: { cursor: zoom > 100 ? "grab" : "default" }, children: [_jsx("img", { src: image.src, alt: image.alt ?? "", className: "appkit-lightbox__img", draggable: false, style: {
92
+ return createPortal(_jsxs("div", { ref: overlayRef, tabIndex: -1, className: "appkit-lightbox", role: "dialog", "aria-modal": "true", "aria-label": "Image lightbox", onKeyDown: handleKeyDown, onWheel: handleWheel, children: [_jsxs("div", { className: "absolute top-0 left-0 right-0 z-10 flex items-center justify-between px-4 py-3 bg-gradient-to-b from-black/60 to-transparent", children: [_jsx(Span, { size: "sm", weight: "medium", className: "text-white/70", children: hasMultiple ? `${currentIndex + 1} / ${images.length}` : "" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => adjustZoom(-ZOOM_STEP), className: iconBtnClass, "aria-label": "Zoom out", disabled: zoom <= MIN_ZOOM, children: _jsx(ZoomOut, { className: "w-4 h-4" }) }), _jsxs("button", { type: "button", onClick: () => { setZoom(100); setRotation(0); }, className: "text-white/70 hover:text-white text-xs font-mono min-w-[3rem] text-center", "aria-label": "Reset zoom", children: [zoom, "%"] }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => adjustZoom(ZOOM_STEP), className: iconBtnClass, "aria-label": "Zoom in", disabled: zoom >= MAX_ZOOM, children: _jsx(ZoomIn, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => setRotation((r) => (r + 90) % 360), className: iconBtnClass, "aria-label": "Rotate 90\u00B0", children: _jsx(RotateCw, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => { setZoom(100); setRotation(0); }, className: iconBtnClass, "aria-label": "Reset", children: _jsx(Maximize2, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onClose, className: CLS_CLOSE_BTN, "aria-label": "Close lightbox", children: _jsx(X, { className: "w-5 h-5" }) })] })] }), hasMultiple && (_jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: () => navigate(-1), className: "absolute left-4 top-1/2 -translate-y-1/2 w-12 h-12 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-white/30 text-white z-10 flex items-center justify-center", "aria-label": "Previous image", children: _jsx(ChevronLeft, { className: "w-7 h-7" }) })), "// audit-inline-style-ok: dynamic CSS", _jsxs("div", { className: "appkit-lightbox__image-wrap", style: { cursor: zoom > 100 ? "grab" : "default" }, children: [_jsx("img", { src: image.src, alt: image.alt ?? "", className: "appkit-lightbox__img", draggable: false,
93
+ // audit-inline-style-ok: dynamic CSS
94
+ style: {
93
95
  transform: `scale(${zoom / 100}) rotate(${rotation}deg)`,
94
96
  transition: "transform 0.2s ease",
95
97
  } }), image.badge && (_jsx(Div, { className: "absolute left-3 top-3 rounded bg-black/70 px-2 py-1 text-xs font-semibold text-white pointer-events-none", children: image.badge }))] }), (image.caption || image.sub) && (_jsxs("div", { className: "flex-shrink-0 text-center px-8 pb-2", children: [image.caption && (_jsx(Text, { size: "sm", variant: "secondary", className: "!text-white/80", children: image.caption })), image.sub && (_jsx(Text, { size: "sm", variant: "secondary", className: "!text-white/50", children: image.sub }))] })), showThumbnails && images.length > 1 && (_jsx("div", { className: "flex-shrink-0 flex gap-2 overflow-x-auto px-4 pb-3 justify-center", children: images.map((thumb, i) => (_jsx("button", { type: "button", onClick: () => {
@@ -30,5 +30,7 @@ export function PasswordStrengthIndicator({ password, minLength = 8, showRequire
30
30
  : strength <= 75
31
31
  ? "bg-yellow-500"
32
32
  : "bg-green-500";
33
- return (_jsxs("div", { className: "appkit-password-strength", "aria-live": "polite", "aria-atomic": "true", "data-section": "passwordstrengthindicator-div-567", children: [_jsxs(Row, { gap: "sm", className: "mb-2", children: [_jsx("div", { className: "appkit-password-strength__track", "data-section": "passwordstrengthindicator-div-568", children: _jsx("div", { className: `appkit-password-strength__fill ${strengthColor}`, style: { width: `${strength}%` }, role: "progressbar", "aria-valuenow": Math.round(strength), "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": `Password strength: ${strengthLabel}` }) }), _jsx(Span, { className: "appkit-password-strength__label", children: strengthLabel })] }), showRequirements ? (_jsx(Ul, { className: "appkit-password-strength__requirements", children: requirements.map((req) => (_jsxs(Li, { className: `appkit-password-strength__requirement ${req.met ? "appkit-password-strength__requirement--met" : ""}`, children: [_jsx(Span, { className: "sr-only", children: req.met ? "Met: " : "Not met: " }), req.label] }, req.label))) })) : null] }));
33
+ return (_jsxs("div", { className: "appkit-password-strength", "aria-live": "polite", "aria-atomic": "true", "data-section": "passwordstrengthindicator-div-567", children: [_jsxs(Row, { gap: "sm", className: "mb-2", children: [_jsx("div", { className: "appkit-password-strength__track", "data-section": "passwordstrengthindicator-div-568", children: _jsx("div", { className: `appkit-password-strength__fill ${strengthColor}`,
34
+ // audit-inline-style-ok: computed percentage
35
+ style: { width: `${strength}%` }, role: "progressbar", "aria-valuenow": Math.round(strength), "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": `Password strength: ${strengthLabel}` }) }), _jsx(Span, { className: "appkit-password-strength__label", children: strengthLabel })] }), showRequirements ? (_jsx(Ul, { className: "appkit-password-strength__requirements", children: requirements.map((req) => (_jsxs(Li, { className: `appkit-password-strength__requirement ${req.met ? "appkit-password-strength__requirement--met" : ""}`, children: [_jsx(Span, { className: "sr-only", children: req.met ? "Met: " : "Not met: " }), req.label] }, req.label))) })) : null] }));
34
36
  }
@@ -13,7 +13,9 @@ export function Progress({ value, max = 100, variant = "primary", size = "md", l
13
13
  warning: "appkit-progress__bar--warning",
14
14
  error: "appkit-progress__bar--error",
15
15
  };
16
- return (_jsxs("div", { className: `appkit-progress ${className}`, "data-section": "progress-div-569", children: [(label || showValue) && (_jsxs("div", { className: "appkit-progress__meta", "data-section": "progress-div-570", children: [label && _jsx(Span, { className: "appkit-progress__label", children: label }), showValue && (_jsxs(Span, { className: "appkit-progress__value", children: [Math.round(percentage), "%"] }))] })), _jsx("div", { className: `appkit-progress__track ${sizeClasses[size]}`, role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max, "aria-label": label || `Progress: ${Math.round(percentage)}%`, "data-section": "progress-div-571", children: _jsx("div", { className: `appkit-progress__bar ${variantClasses[variant]}`, style: { width: `${percentage}%` } }) })] }));
16
+ return (_jsxs("div", { className: `appkit-progress ${className}`, "data-section": "progress-div-569", children: [(label || showValue) && (_jsxs("div", { className: "appkit-progress__meta", "data-section": "progress-div-570", children: [label && _jsx(Span, { className: "appkit-progress__label", children: label }), showValue && (_jsxs(Span, { className: "appkit-progress__value", children: [Math.round(percentage), "%"] }))] })), _jsx("div", { className: `appkit-progress__track ${sizeClasses[size]}`, role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max, "aria-label": label || `Progress: ${Math.round(percentage)}%`, "data-section": "progress-div-571", children: _jsx("div", { className: `appkit-progress__bar ${variantClasses[variant]}`,
17
+ // audit-inline-style-ok: computed percentage
18
+ style: { width: `${percentage}%` } }) })] }));
17
19
  }
18
20
  export function IndeterminateProgress({ variant = "primary", size = "md", label, className = "", }) {
19
21
  const sizeClasses = {
@@ -27,5 +29,7 @@ export function IndeterminateProgress({ variant = "primary", size = "md", label,
27
29
  warning: "appkit-progress__bar--warning",
28
30
  error: "appkit-progress__bar--error",
29
31
  };
30
- return (_jsxs("div", { className: `appkit-progress ${className}`, "data-section": "progress-div-572", children: [label && (_jsx(Span, { className: "appkit-progress__label appkit-progress__label--block", children: label })), _jsx("div", { className: `appkit-progress__track appkit-progress__track--indeterminate ${sizeClasses[size]}`, role: "progressbar", "aria-label": label || "Loading...", "data-section": "progress-div-573", children: _jsx("div", { className: `appkit-progress__bar appkit-progress__bar--indeterminate ${variantClasses[variant]}`, style: { width: "40%" } }) })] }));
32
+ return (_jsxs("div", { className: `appkit-progress ${className}`, "data-section": "progress-div-572", children: [label && (_jsx(Span, { className: "appkit-progress__label appkit-progress__label--block", children: label })), _jsx("div", { className: `appkit-progress__track appkit-progress__track--indeterminate ${sizeClasses[size]}`, role: "progressbar", "aria-label": label || "Loading...", "data-section": "progress-div-573", children: _jsx("div", { className: `appkit-progress__bar appkit-progress__bar--indeterminate ${variantClasses[variant]}`,
33
+ // audit-inline-style-ok: dynamic CSS
34
+ style: { width: "40%" } }) })] }));
31
35
  }
@@ -38,7 +38,9 @@ export function RowActionMenu({ actions, align = "right", }) {
38
38
  setOpen((v) => !v);
39
39
  }, [open, align]);
40
40
  const dropdown = open && pos && mounted
41
- ? createPortal(_jsx("div", { ref: dropdownRef, role: "menu", className: "appkit-row-action-menu__dropdown", style: {
41
+ ? createPortal(_jsx("div", { ref: dropdownRef, role: "menu", className: "appkit-row-action-menu__dropdown",
42
+ // audit-inline-style-ok: dynamic CSS
43
+ style: {
42
44
  position: "fixed",
43
45
  zIndex: "var(--appkit-z-modal)",
44
46
  top: pos.top,
@@ -14,5 +14,11 @@ export function SiteLogo({ className = "h-7", title = "LetItRip.in", variant = "
14
14
  _jsx("img", { src: src, alt: title, "data-testid": "site-logo", className: `block w-auto object-contain ${className}` }));
15
15
  }
16
16
  const fill = variant === "gradient" ? `url(#${GRADIENT_ID})` : "currentColor";
17
- return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 214 56", role: "img", "aria-label": title, "data-testid": "site-logo", className: `block w-auto ${className}`, children: [_jsx("title", { children: title }), variant === "gradient" && (_jsx("defs", { children: _jsxs("linearGradient", { id: GRADIENT_ID, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [_jsx("stop", { offset: "0%", style: { stopColor: "var(--appkit-color-primary-700, #1343de)" } }), _jsx("stop", { offset: "55%", style: { stopColor: "var(--appkit-color-cobalt, #3570fc)" } }), _jsx("stop", { offset: "100%", style: { stopColor: "var(--appkit-color-secondary-400, #84e122)" } })] }) })), _jsx("text", { x: "0", y: "44", fontFamily: "ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif", fontWeight: "800", fontSize: "44", letterSpacing: "-1.5", fill: fill, children: "LetItRip" }), _jsx("rect", { x: "169", y: "5", width: "43", height: "21", rx: "10.5", fill: fill, opacity: "0.12" }), _jsx("text", { x: "174", y: "21", fontFamily: "ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif", fontWeight: "700", fontSize: "15", letterSpacing: "0.2", fill: fill, children: ".in" })] }));
17
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 214 56", role: "img", "aria-label": title, "data-testid": "site-logo", className: `block w-auto ${className}`, children: [_jsx("title", { children: title }), variant === "gradient" && (_jsx("defs", { children: _jsxs("linearGradient", { id: GRADIENT_ID, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [_jsx("stop", { offset: "0%",
18
+ // audit-inline-style-ok: SVG gradient stop
19
+ style: { stopColor: "var(--appkit-color-primary-700, #1343de)" } }), _jsx("stop", { offset: "55%",
20
+ // audit-inline-style-ok: SVG gradient stop
21
+ style: { stopColor: "var(--appkit-color-cobalt, #3570fc)" } }), _jsx("stop", { offset: "100%",
22
+ // audit-inline-style-ok: SVG gradient stop
23
+ style: { stopColor: "var(--appkit-color-secondary-400, #84e122)" } })] }) })), _jsx("text", { x: "0", y: "44", fontFamily: "ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif", fontWeight: "800", fontSize: "44", letterSpacing: "-1.5", fill: fill, children: "LetItRip" }), _jsx("rect", { x: "169", y: "5", width: "43", height: "21", rx: "10.5", fill: fill, opacity: "0.12" }), _jsx("text", { x: "174", y: "21", fontFamily: "ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif", fontWeight: "700", fontSize: "15", letterSpacing: "0.2", fill: fill, children: ".in" })] }));
18
24
  }
@@ -17,5 +17,7 @@ export function Skeleton({ variant = "text", width, height, className = "", anim
17
17
  width: width ?? defaultSize.width,
18
18
  height: height ?? defaultSize.height,
19
19
  };
20
- return (_jsx("div", { className: `appkit-skeleton ${variantClass} ${animationClass} ${className}`, style: style, role: "status", "aria-label": "Loading", "data-section": "skeleton-div-606", children: _jsx("span", { className: "appkit-sr-only", children: "Loading..." }) }));
20
+ return (_jsx("div", { className: `appkit-skeleton ${variantClass} ${animationClass} ${className}`,
21
+ // audit-inline-style-ok: pass-through style prop
22
+ style: style, role: "status", "aria-label": "Loading", "data-section": "skeleton-div-606", children: _jsx("span", { className: "appkit-sr-only", children: "Loading..." }) }));
21
23
  }
@@ -30,7 +30,9 @@ export function Slider({ value: controlledValue, defaultValue = 0, min = 0, max
30
30
  ].join(" "), "data-section": "slider-div-610", children: _jsx("div", { className: [
31
31
  "h-full rounded-full bg-lime-600 dark:bg-pink-500",
32
32
  SIZE_CLASSES[size],
33
- ].join(" "), style: { width: `${Math.max(0, Math.min(100, percentage))}%` } }) }), _jsx("input", { id: inputId, type: "range", min: min, max: max, step: step, value: value, disabled: disabled, onChange: handleChange, onMouseUp: handleChangeEnd, onTouchEnd: handleChangeEnd, className: [
33
+ ].join(" "),
34
+ // audit-inline-style-ok: computed percentage
35
+ style: { width: `${Math.max(0, Math.min(100, percentage))}%` } }) }), _jsx("input", { id: inputId, type: "range", min: min, max: max, step: step, value: value, disabled: disabled, onChange: handleChange, onMouseUp: handleChangeEnd, onTouchEnd: handleChangeEnd, className: [
34
36
  "appkit-slider relative z-10 bg-transparent",
35
37
  disabled ? "appkit-slider--disabled" : "cursor-pointer",
36
38
  SIZE_CLASSES[size],
@@ -42,7 +42,9 @@ export function TabStrip({ tabs, activeKey, onChange, minTabWidth = FLUID_GRID_M
42
42
  }
43
43
  }, [activeKey, scrollOffset, visibleCount, tabs, setScrollOffset]);
44
44
  const visible = tabs.slice(scrollOffset, scrollOffset + visibleCount);
45
- return (_jsxs("div", { ref: containerRef, role: "tablist", className: ["appkit-tab-strip", className ?? ""].join(" ").trim(), children: [hasOverflow && (_jsx("button", { type: "button", onClick: scrollLeft, disabled: !canScrollLeft, "aria-label": "Previous tabs", className: "appkit-tab-strip__arrow", children: "\u2039" })), visible.map((tab) => (_jsxs("button", { type: "button", role: "tab", "aria-selected": tab.key === activeKey, "aria-disabled": tab.disabled, onClick: () => !tab.disabled && onChange(tab.key), style: { minWidth: `${minTabWidth}px` }, className: [
45
+ return (_jsxs("div", { ref: containerRef, role: "tablist", className: ["appkit-tab-strip", className ?? ""].join(" ").trim(), children: [hasOverflow && (_jsx("button", { type: "button", onClick: scrollLeft, disabled: !canScrollLeft, "aria-label": "Previous tabs", className: "appkit-tab-strip__arrow", children: "\u2039" })), visible.map((tab) => (_jsxs("button", { type: "button", role: "tab", "aria-selected": tab.key === activeKey, "aria-disabled": tab.disabled, onClick: () => !tab.disabled && onChange(tab.key),
46
+ // audit-inline-style-ok: computed pixel offset
47
+ style: { minWidth: `${minTabWidth}px` }, className: [
46
48
  "appkit-tab-strip__tab",
47
49
  tab.key === activeKey
48
50
  ? "appkit-tab-strip__tab--active"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "2.8.4",
3
+ "version": "2.8.5",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"