@mohasinac/appkit 3.3.5 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/_internal/client/features/classified/ClassifiedDetailView.js +2 -1
  2. package/dist/_internal/client/features/digital-code/DigitalCodeDetailView.js +2 -1
  3. package/dist/_internal/client/features/live/LiveItemDetailView.js +2 -1
  4. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +1 -1
  5. package/dist/_internal/client/features/lottery/LotteryDetailView.js +2 -1
  6. package/dist/_internal/client/features/lottery/LotteryListView.js +2 -1
  7. package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +2 -1
  8. package/dist/_internal/server/features/checkout/actions.js +0 -1
  9. package/dist/_internal/server/features/lottery/actions.js +0 -2
  10. package/dist/_internal/server/features/reviews/actions.js +1 -1
  11. package/dist/features/about/components/AboutView.js +1 -1
  12. package/dist/features/about/components/FAQPageView.js +0 -2
  13. package/dist/features/about/components/FeesView.js +13 -1
  14. package/dist/features/about/components/HowCheckoutWorksView.js +17 -3
  15. package/dist/features/about/components/HowEmiWorksView.d.ts +3 -0
  16. package/dist/features/about/components/HowEmiWorksView.js +117 -0
  17. package/dist/features/about/components/PublicProfileView.js +1 -4
  18. package/dist/features/about/components/TrackOrderView.js +1 -1
  19. package/dist/features/about/index.d.ts +2 -0
  20. package/dist/features/about/index.js +1 -0
  21. package/dist/features/account/components/AddressesIndexListing.js +1 -1
  22. package/dist/features/account/components/BecomeSellerView.d.ts +1 -1
  23. package/dist/features/account/components/BecomeSellerView.js +1 -1
  24. package/dist/features/account/components/NotificationBell.js +1 -2
  25. package/dist/features/account/components/UserSupportView.js +0 -1
  26. package/dist/features/admin/components/AdminAdsView.js +3 -3
  27. package/dist/features/admin/components/AdminBlogEditorView.js +2 -2
  28. package/dist/features/admin/components/AdminBundleEditorView.js +0 -4
  29. package/dist/features/admin/components/AdminCarouselEditorView.js +3 -3
  30. package/dist/features/admin/components/AdminCarouselView.js +3 -2
  31. package/dist/features/admin/components/AdminGuideHubView.js +2 -2
  32. package/dist/features/admin/components/AdminMediaView.js +2 -4
  33. package/dist/features/admin/components/AdminProductsView.js +2 -2
  34. package/dist/features/admin/components/AdminSiteSettingsView.js +1 -1
  35. package/dist/features/admin/components/AdminUserEditorView.d.ts +1 -1
  36. package/dist/features/admin/components/AdminUserEditorView.js +1 -1
  37. package/dist/features/admin/components/QuickActionsPanel.js +2 -2
  38. package/dist/features/auctions/components/AuctionBidsTable.js +1 -1
  39. package/dist/features/auctions/components/AuctionDetailPageView.js +1 -1
  40. package/dist/features/blog/components/BlogFeaturedCard.js +2 -1
  41. package/dist/features/blog/components/BlogIndexListing.js +1 -1
  42. package/dist/features/blog/components/BlogListView.js +2 -1
  43. package/dist/features/blog/components/BlogPostForm.js +1 -1
  44. package/dist/features/blog/components/BlogPostView.js +2 -1
  45. package/dist/features/cart/components/CartDrawer.js +2 -1
  46. package/dist/features/categories/components/BrandDetailPageView.js +2 -1
  47. package/dist/features/categories/components/BundleCollage.js +2 -3
  48. package/dist/features/categories/components/CategoriesIndexListing.js +1 -5
  49. package/dist/features/categories/components/CategoryDetailPageView.js +2 -2
  50. package/dist/features/categories/components/CategoryGrid.js +2 -1
  51. package/dist/features/categories/components/CategoryProductsView.d.ts +1 -1
  52. package/dist/features/categories/components/CategoryProductsView.js +1 -1
  53. package/dist/features/categories/components/ConcernCard.js +2 -1
  54. package/dist/features/collections/components/CollectionCard.js +2 -1
  55. package/dist/features/consultation/components/ConsultationForm.js +0 -1
  56. package/dist/features/contact/components/ContactInfoSidebar.js +2 -2
  57. package/dist/features/copilot/components/AdminCopilotView.js +0 -9
  58. package/dist/features/events/components/EventFormDrawer.d.ts +1 -1
  59. package/dist/features/events/components/EventFormDrawer.js +1 -1
  60. package/dist/features/events/components/EventLeaderboard.js +1 -1
  61. package/dist/features/events/components/EventPollWidget.js +2 -2
  62. package/dist/features/events/components/EventsIndexListing.js +1 -1
  63. package/dist/features/faq/actions/faq-actions.d.ts +2 -10
  64. package/dist/features/faq/actions/faq-actions.js +0 -4
  65. package/dist/features/forms/Slider.js +1 -1
  66. package/dist/features/homepage/components/AdSlot.js +2 -1
  67. package/dist/features/homepage/components/BeforeAfterCard.js +1 -1
  68. package/dist/features/homepage/components/CustomCardsSection.js +2 -3
  69. package/dist/features/homepage/components/FeaturedBundlesSection.js +2 -3
  70. package/dist/features/homepage/components/GoogleReviewsSection.js +4 -3
  71. package/dist/features/homepage/components/HeroBanner.js +0 -1
  72. package/dist/features/homepage/components/HowItWorksInfoView.js +1 -1
  73. package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
  74. package/dist/features/homepage/components/SectionCarousel.js +1 -2
  75. package/dist/features/homepage/components/SiteFeaturesSection.js +1 -1
  76. package/dist/features/homepage/components/SocialFeedSection.js +2 -5
  77. package/dist/features/homepage/components/SocialPostCard.js +4 -3
  78. package/dist/features/homepage/components/TrustIndicatorsSection.js +1 -1
  79. package/dist/features/media/MediaPickerModal.js +2 -3
  80. package/dist/features/media/upload/MediaUploadList.js +2 -2
  81. package/dist/features/orders/components/MarketplaceOrderCard.js +7 -4
  82. package/dist/features/orders/components/OrdersList.js +2 -1
  83. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -0
  84. package/dist/features/products/api/route.js +1 -2
  85. package/dist/features/products/components/BidHistory.js +1 -1
  86. package/dist/features/products/components/CompareOverlay.js +2 -3
  87. package/dist/features/products/components/CustomSectionTabContent.js +2 -2
  88. package/dist/features/products/components/FeatureBadge.js +0 -6
  89. package/dist/features/products/components/GroupSettingsPanel.js +2 -3
  90. package/dist/features/products/components/MarketplaceBundleCard.js +2 -1
  91. package/dist/features/products/components/MarketplacePrizeDrawCard.js +2 -3
  92. package/dist/features/products/components/PrizeDrawCollage.js +2 -3
  93. package/dist/features/products/components/PrizeDrawEntryActions.d.ts +1 -1
  94. package/dist/features/products/components/PrizeDrawEntryActions.js +3 -3
  95. package/dist/features/products/components/PrizeRevealModal.js +3 -4
  96. package/dist/features/products/components/ProductDetailActions.d.ts +1 -1
  97. package/dist/features/products/components/ProductDetailActions.js +1 -1
  98. package/dist/features/products/components/ProductDetailPageView.d.ts +3 -1
  99. package/dist/features/products/components/ProductDetailPageView.js +3 -2
  100. package/dist/features/products/components/ProductFeatureBadges.d.ts +7 -1
  101. package/dist/features/products/components/ProductFeatureBadges.js +16 -3
  102. package/dist/features/products/components/ProductGalleryClient.js +1 -1
  103. package/dist/features/products/components/ProductGradingTab.js +2 -2
  104. package/dist/features/products/components/ProductsIndexPageView.js +2 -2
  105. package/dist/features/products/components/ShowGroupSection.js +1 -1
  106. package/dist/features/products/components/SublistingCarouselSection.js +3 -4
  107. package/dist/features/promotions/components/CouponsIndexListing.d.ts +1 -1
  108. package/dist/features/promotions/components/CouponsIndexListing.js +1 -1
  109. package/dist/features/reviews/components/ReviewDetailShell.js +4 -3
  110. package/dist/features/reviews/components/ReviewModal.js +2 -1
  111. package/dist/features/reviews/components/ReviewsIndexListing.js +1 -1
  112. package/dist/features/reviews/components/ReviewsList.js +2 -1
  113. package/dist/features/scams/components/ScamAwarenessModal.js +2 -2
  114. package/dist/features/search/components/Search.js +1 -1
  115. package/dist/features/search/components/SearchView.d.ts +1 -1
  116. package/dist/features/search/components/SearchView.js +1 -1
  117. package/dist/features/seller/components/SellerAddressesView.js +1 -5
  118. package/dist/features/seller/components/SellerGoogleReviewsView.js +1 -1
  119. package/dist/features/seller/components/SellerPayoutMethodsView.js +1 -1
  120. package/dist/features/seller/components/SellerPreOrdersView.js +3 -2
  121. package/dist/features/shell/QuickFormDrawer.js +1 -1
  122. package/dist/features/shell/StepForm.js +1 -1
  123. package/dist/features/stores/components/InteractiveStoreCard.js +1 -2
  124. package/dist/features/stores/components/StoreAboutView.js +2 -2
  125. package/dist/features/stores/components/StoreCapabilitiesGuideView.js +2 -2
  126. package/dist/features/stores/components/StoreFinanceGuideView.js +2 -2
  127. package/dist/features/stores/components/StoreGuideHubView.js +2 -2
  128. package/dist/features/stores/components/StoreListingsGuideView.js +2 -2
  129. package/dist/features/stores/components/StoreNavTabs.js +2 -2
  130. package/dist/features/stores/components/StoreOrdersGuideView.js +2 -2
  131. package/dist/features/stores/components/StoreSettingsGuideView.js +3 -3
  132. package/dist/features/wishlist/components/WishlistView.js +0 -7
  133. package/dist/index.d.ts +2 -0
  134. package/dist/index.js +3 -0
  135. package/dist/next/ErrorBoundary.js +2 -2
  136. package/dist/next/routing/route-map.d.ts +2 -0
  137. package/dist/next/routing/route-map.js +1 -0
  138. package/dist/seed/factories/product.factory.js +0 -32
  139. package/dist/seed/faq-seed-data.js +23 -4
  140. package/dist/styles.css +1 -1
  141. package/dist/tailwind-utilities.css +1 -1
  142. package/dist/tokens/index.js +6 -458
  143. package/dist/ui/DataTable.js +0 -21
  144. package/dist/ui/components/Anchor.d.ts +12 -3
  145. package/dist/ui/components/Anchor.js +18 -2
  146. package/dist/ui/components/Breadcrumb.js +2 -1
  147. package/dist/ui/components/Div.d.ts +1 -1
  148. package/dist/ui/components/Div.js +2 -0
  149. package/dist/ui/components/FormActionBar.js +2 -1
  150. package/dist/ui/components/ListingLayout.d.ts +1 -1
  151. package/dist/ui/components/ListingLayout.js +1 -1
  152. package/dist/ui/components/Motion.js +1 -1
  153. package/dist/ui/components/QuickCreateModal.js +2 -1
  154. package/dist/ui/components/SlottedListingView.d.ts +1 -1
  155. package/dist/ui/components/SlottedListingView.js +1 -2
  156. package/dist/ui/components/Typography.d.ts +1 -1
  157. package/dist/ui/components/Typography.js +1 -0
  158. package/dist/ui/components/surface-tokens.d.ts +1 -1
  159. package/dist/ui/components/surface-tokens.js +4 -0
  160. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import React from "react";
4
4
  import { ChevronRight } from "lucide-react";
5
5
  import { Button } from "./Button";
6
+ import { TextLink } from "./TextLink";
6
7
  export function FormActionBar({ title, breadcrumbs, onSaveDraft, onPublish, publishLabel = "Publish", onPreview, onDiscard, isDirty, isSubmitting, className, }) {
7
- return (_jsxs("div", { className: `appkit-form-action-bar${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "appkit-form-action-bar__meta", children: [breadcrumbs && breadcrumbs.length > 0 && (_jsx("div", { className: "appkit-form-action-bar__breadcrumbs", children: breadcrumbs.map((crumb, i) => (_jsxs(React.Fragment, { children: [i > 0 && _jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0" }), crumb.href ? (_jsx("a", { href: crumb.href, className: "hover:underline truncate", children: crumb.label })) : (_jsx("span", { className: "truncate", children: crumb.label }))] }, i))) })), title && (_jsxs("div", { className: "appkit-form-action-bar__title", children: [isDirty && (_jsx("span", { className: "appkit-form-action-bar__dirty-dot mr-1.5", "aria-label": "Unsaved changes" })), title] }))] }), _jsxs("div", { className: "appkit-form-action-bar__actions", children: [isDirty && onDiscard && (_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: onDiscard, disabled: isSubmitting, children: "Discard" })), onPreview && (_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onPreview, disabled: isSubmitting, children: "Preview" })), onSaveDraft && (_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onSaveDraft, isLoading: isSubmitting, disabled: isSubmitting, children: "Save draft" })), _jsx(Button, { type: "button", size: "sm", onClick: onPublish, isLoading: isSubmitting, disabled: isSubmitting, children: publishLabel })] })] }));
8
+ return (_jsxs("div", { className: `appkit-form-action-bar${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "appkit-form-action-bar__meta", children: [breadcrumbs && breadcrumbs.length > 0 && (_jsx("div", { className: "appkit-form-action-bar__breadcrumbs", children: breadcrumbs.map((crumb, i) => (_jsxs(React.Fragment, { children: [i > 0 && _jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0" }), crumb.href ? (_jsx(TextLink, { href: crumb.href, variant: "inherit", truncate: true, children: crumb.label })) : (_jsx("span", { className: "truncate", children: crumb.label }))] }, i))) })), title && (_jsxs("div", { className: "appkit-form-action-bar__title", children: [isDirty && (_jsx("span", { className: "appkit-form-action-bar__dirty-dot mr-1.5", "aria-label": "Unsaved changes" })), title] }))] }), _jsxs("div", { className: "appkit-form-action-bar__actions", children: [isDirty && onDiscard && (_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: onDiscard, disabled: isSubmitting, children: "Discard" })), onPreview && (_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onPreview, disabled: isSubmitting, children: "Preview" })), onSaveDraft && (_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: onSaveDraft, isLoading: isSubmitting, disabled: isSubmitting, children: "Save draft" })), _jsx(Button, { type: "button", size: "sm", onClick: onPublish, isLoading: isSubmitting, disabled: isSubmitting, children: publishLabel })] })] }));
8
9
  }
@@ -69,4 +69,4 @@ export interface ListingLayoutProps {
69
69
  /** When provided, the entire layout is replaced with this view (detail/edit mode). */
70
70
  detailView?: ReactNode;
71
71
  }
72
- export declare function ListingLayout({ headerSlot, statusTabsSlot, filterContent, filterActiveCount, onFilterApply, onFilterClear, filterTitle, activeFiltersSlot, resultCountSlot, searchSlot, sortSlot, viewToggleSlot, actionsSlot, selectedCount, onClearSelection, bulkActionItems, toolbarPaginationSlot, paginationSlot, children, isDashboard, defaultSidebarOpen, filterPendingCount, className, loading, errorSlot, labels, portal, overlays, detailView, }: ListingLayoutProps): import("react").JSX.Element;
72
+ export declare function ListingLayout({ headerSlot, statusTabsSlot, filterContent, filterActiveCount, onFilterApply, onFilterClear, filterTitle, activeFiltersSlot, resultCountSlot, searchSlot, sortSlot, viewToggleSlot, actionsSlot, selectedCount, onClearSelection, bulkActionItems, toolbarPaginationSlot, paginationSlot, children, isDashboard, defaultSidebarOpen, filterPendingCount, className, loading: _loading, errorSlot, labels, portal, overlays, detailView, }: ListingLayoutProps): import("react").JSX.Element;
@@ -35,7 +35,7 @@ const DEFAULT_LABELS = {
35
35
  hideFilters: "Hide filters",
36
36
  filterActiveCount: (count) => `${count} active`,
37
37
  };
38
- export function ListingLayout({ headerSlot, statusTabsSlot, filterContent, filterActiveCount = 0, onFilterApply, onFilterClear, filterTitle, activeFiltersSlot, resultCountSlot, searchSlot, sortSlot, viewToggleSlot, actionsSlot, selectedCount = 0, onClearSelection, bulkActionItems, toolbarPaginationSlot, paginationSlot, children, isDashboard, defaultSidebarOpen = false, filterPendingCount, className = "", loading = false, errorSlot, labels, portal, overlays, detailView, }) {
38
+ export function ListingLayout({ headerSlot, statusTabsSlot, filterContent, filterActiveCount = 0, onFilterApply, onFilterClear, filterTitle, activeFiltersSlot, resultCountSlot, searchSlot, sortSlot, viewToggleSlot, actionsSlot, selectedCount = 0, onClearSelection, bulkActionItems, toolbarPaginationSlot, paginationSlot, children, isDashboard, defaultSidebarOpen = false, filterPendingCount, className = "", loading: _loading = false, errorSlot, labels, portal, overlays, detailView, }) {
39
39
  // useState must run unconditionally on every render — these were
40
40
  // previously declared after the detail-view early return below, which
41
41
  // skipped both hook calls whenever `detailView` was passed, violating the
@@ -10,7 +10,7 @@ function useMotionProps(props) {
10
10
  const reduced = useReducedMotion();
11
11
  if (!reduced)
12
12
  return props;
13
- const { initial, animate, exit, whileHover, whileTap, whileInView, transition, ...rest } = props;
13
+ const { initial: _initial, animate: _animate, exit: _exit, whileHover: _whileHover, whileTap: _whileTap, whileInView: _whileInView, transition: _transition, ...rest } = props;
14
14
  return { ...rest, initial: false, animate: false };
15
15
  }
16
16
  export function FadeIn({ delay = 0, duration = 0.3, children, ...props }) {
@@ -6,6 +6,7 @@ import { Button } from "./Button";
6
6
  import { Div } from "./Div";
7
7
  import { Heading } from "./Typography";
8
8
  import { Row } from "./Layout";
9
+ import { TextLink } from "./TextLink";
9
10
  export function QuickCreateModal({ isOpen, title, onSave, onSaved, onCancel, children, fullPageHref, saveLabel = "Save", cancelLabel = "Cancel", isSaving = false, saveDisabled = false, }) {
10
11
  const [busy, setBusy] = React.useState(false);
11
12
  const titleId = React.useId();
@@ -44,5 +45,5 @@ export function QuickCreateModal({ isOpen, title, onSave, onSaved, onCancel, chi
44
45
  if (!isOpen || typeof document === "undefined")
45
46
  return null;
46
47
  const saving = busy || isSaving;
47
- return createPortal(_jsxs(Div, { className: "appkit-quick-create-modal", role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, children: [_jsx(Div, { className: "appkit-quick-create-modal__backdrop", "aria-hidden": "true", onClick: () => !saving && onCancel() }), _jsxs(Div, { ref: panelRef, tabIndex: -1, className: "appkit-quick-create-modal__panel", children: [_jsxs(Div, { className: "appkit-quick-create-modal__header", children: [_jsx(Heading, { level: 2, id: titleId, className: "appkit-quick-create-modal__title", children: title }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onCancel, "aria-label": "Close", disabled: saving, children: "\u00D7" })] }), _jsx(Div, { className: "appkit-quick-create-modal__body", children: children }), _jsxs(Div, { className: "appkit-quick-create-modal__footer", children: [fullPageHref ? (_jsx("a", { href: fullPageHref, target: "_blank", rel: "noreferrer", className: "appkit-quick-create-modal__full-link", children: "Add more details \u2192" })) : (_jsx("span", {})), _jsxs(Row, { className: "appkit-quick-create-modal__actions", children: [_jsx(Button, { variant: "ghost", type: "button", onClick: onCancel, disabled: saving, children: cancelLabel }), _jsx(Button, { variant: "primary", type: "button", onClick: handleSave, disabled: saving || saveDisabled, isLoading: saving, children: saveLabel })] })] })] })] }), document.body);
48
+ return createPortal(_jsxs(Div, { className: "appkit-quick-create-modal", role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, children: [_jsx(Div, { className: "appkit-quick-create-modal__backdrop", "aria-hidden": "true", onClick: () => !saving && onCancel() }), _jsxs(Div, { ref: panelRef, tabIndex: -1, className: "appkit-quick-create-modal__panel", children: [_jsxs(Div, { className: "appkit-quick-create-modal__header", children: [_jsx(Heading, { level: 2, id: titleId, className: "appkit-quick-create-modal__title", children: title }), _jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onCancel, "aria-label": "Close", disabled: saving, children: "\u00D7" })] }), _jsx(Div, { className: "appkit-quick-create-modal__body", children: children }), _jsxs(Div, { className: "appkit-quick-create-modal__footer", children: [fullPageHref ? (_jsx(TextLink, { variant: "none", href: fullPageHref, target: "_blank", rel: "noreferrer", className: "appkit-quick-create-modal__full-link", children: "Add more details \u2192" })) : (_jsx("span", {})), _jsxs(Row, { className: "appkit-quick-create-modal__actions", children: [_jsx(Button, { variant: "ghost", type: "button", onClick: onCancel, disabled: saving, children: cancelLabel }), _jsx(Button, { variant: "primary", type: "button", onClick: handleSave, disabled: saving || saveDisabled, isLoading: saving, children: saveLabel })] })] })] })] }), document.body);
48
49
  }
@@ -58,4 +58,4 @@ export interface SlottedListingViewProps {
58
58
  isLoading?: boolean;
59
59
  className?: string;
60
60
  }
61
- export declare function SlottedListingView({ title, labels, portal, renderHeader, renderTabs, renderSearch, renderSort, renderFilters, renderActiveFilters, renderBulkActions, renderTable, renderPagination, overlays, manageSearch, manageSelection, manageSort, inlineToolbar, total, isLoading, className, }: SlottedListingViewProps): React.JSX.Element;
61
+ export declare function SlottedListingView({ title, labels, portal, renderHeader, renderTabs, renderSearch, renderSort, renderFilters, renderActiveFilters, renderBulkActions, renderTable, renderPagination, overlays, manageSearch: _manageSearch, manageSelection, manageSort: _manageSort, inlineToolbar, total, isLoading, className, }: SlottedListingViewProps): React.JSX.Element;
@@ -25,8 +25,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
25
25
  import { useState } from "react";
26
26
  import { Div } from "./Div";
27
27
  import { Heading } from "./Typography";
28
- export function SlottedListingView({ title, labels = {}, portal, renderHeader, renderTabs, renderSearch, renderSort, renderFilters, renderActiveFilters, renderBulkActions, renderTable, renderPagination, overlays, manageSearch, manageSelection, manageSort = false, inlineToolbar = false, total = 0, isLoading = false, className = "", }) {
29
- const effectiveManageSearch = manageSearch ?? (portal === "admin" || portal === "seller" || portal === "user");
28
+ export function SlottedListingView({ title, labels = {}, portal, renderHeader, renderTabs, renderSearch, renderSort, renderFilters, renderActiveFilters, renderBulkActions, renderTable, renderPagination, overlays, manageSearch: _manageSearch, manageSelection, manageSort: _manageSort = false, inlineToolbar = false, total = 0, isLoading = false, className = "", }) {
30
29
  const effectiveManageSelection = manageSelection ?? (portal === "admin" || portal === "seller");
31
30
  const [search, setSearch] = useState("");
32
31
  const [selectedIds, setSelectedIds] = useState([]);
@@ -175,7 +175,7 @@ export declare function Caption({ variant, color, weight, className, children, .
175
175
  /** Inline-decorations allowed on Span (pill chips, code-like wraps, etc). */
176
176
  type SpanRounded = "none" | "default" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
177
177
  type SpanBorder = "none" | "default" | "subtle" | "strong";
178
- type SpanPadding = "none" | "2xs" | "x-xs" | "x-sm" | "x-md" | "y-2xs" | "y-xs" | "y-sm" | "inline-sm" | "inline" | "pill-2xs" | "pill-xs" | "pill-sm" | "pill-sm-tall" | "pill-md" | "pill-lg";
178
+ type SpanPadding = "none" | "1" | "2xs" | "x-xs" | "x-sm" | "x-md" | "y-2xs" | "y-xs" | "y-sm" | "inline-sm" | "inline" | "pill-2xs" | "pill-xs" | "pill-sm" | "pill-sm-tall" | "pill-md" | "pill-lg";
179
179
  type SpanBg = "none" | "muted" | "subtle" | "default" | "success-surface" | "danger-surface" | "warning-surface" | "info-surface" | "overlay-xs" | "overlay-sm" | "overlay-md" | "overlay-lg" | "overlay-xl";
180
180
  type SpanLayout = "inline" | "inline-flex" | "flex" | "inline-flex-center" | "flex-center" | "inline-block" | "block";
181
181
  type SpanGap = "none" | "2xs" | "xs" | "sm" | "md" | "lg";
@@ -231,6 +231,7 @@ const SPAN_ROUNDED_MAP = {
231
231
  };
232
232
  const SPAN_PADDING_MAP = {
233
233
  none: "",
234
+ "1": "p-1",
234
235
  "2xs": "p-2",
235
236
  "x-xs": "px-2",
236
237
  "x-sm": "px-3",
@@ -216,7 +216,7 @@ export declare const PADDING_PRESETS: {
216
216
  readonly "content-banner": "py-10 md:py-12 lg:py-16";
217
217
  };
218
218
  export type PaddingPresetKey = PaddingKey;
219
- export type XPaddingKey = "none" | "x-xs" | "x-sm" | "x-md" | "x-5" | "x-lg" | "x-xl" | "x-sm-md" | "x-sm-lg-md" | "x-md-lg" | "x-md-xl" | "x-md-2xl" | "x-page";
219
+ export type XPaddingKey = "none" | "x-xs" | "x-sm" | "x-md" | "x-5" | "x-lg" | "x-xl" | "x-sm-md" | "x-sm-lg-md" | "x-md-lg" | "x-md-xl" | "x-md-2xl" | "x-page" | "l-xl";
220
220
  type YPaddingKey = "none" | "y-2xs" | "y-2xs-tall" | "y-xs" | "y-xs-tall" | "y-sm" | "y-sm-tall" | "y-md" | "y-md-lg" | "y-lg" | "y-xl" | "y-2xl" | "y-3xl" | "y-4xl" | "y-5xl" | "y-6xl" | "y-2-5xl" | "t-2xs" | "b-2xs" | "t-xs" | "b-xs" | "t-sm" | "b-sm" | "t-md" | "b-md" | "b-md-lg" | "b-lg" | "t-md-b-lg";
221
221
  export declare const X_ONLY_MAP: Record<XPaddingKey, string>;
222
222
  export type OverflowKey = "auto" | "hidden" | "scroll" | "visible" | "x-auto" | "x-hidden" | "y-auto" | "y-hidden";
@@ -210,6 +210,10 @@ export const X_ONLY_MAP = {
210
210
  "x-md-2xl": "px-4 sm:px-8",
211
211
  /** Responsive: `px-4 sm:px-6 lg:px-8` — canonical page-container horizontal padding. */
212
212
  "x-page": "px-4 sm:px-6 lg:px-8",
213
+ // Asymmetric left one-sided value (for sites that pad just one edge, e.g. a
214
+ // selection-checkbox gutter).
215
+ /** Asymmetric: `pl-8` — reserves a left gutter (e.g. for an overlaid selection checkbox). */
216
+ "l-xl": "pl-8",
213
217
  };
214
218
  const Y_ONLY_MAP = {
215
219
  none: "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "3.3.5",
3
+ "version": "3.4.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"