@mohasinac/appkit 2.7.57 → 2.7.58

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 (184) hide show
  1. package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +7 -1
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +8 -2
  3. package/dist/client.d.ts +1 -1
  4. package/dist/client.js +1 -1
  5. package/dist/configs/tailwind.d.ts +16 -3
  6. package/dist/configs/tailwind.js +18 -5
  7. package/dist/features/account/components/AddressBook.js +1 -1
  8. package/dist/features/account/components/BuyerAccountGuideView.js +7 -7
  9. package/dist/features/account/components/BuyerAuctionsGuideView.js +7 -7
  10. package/dist/features/account/components/BuyerOrdersGuideView.js +6 -6
  11. package/dist/features/account/components/BuyerShoppingGuideView.js +7 -7
  12. package/dist/features/account/components/UserOffersPanel.js +1 -1
  13. package/dist/features/account/components/UserSupportView.js +4 -4
  14. package/dist/features/admin/components/AdminAdsView.js +1 -1
  15. package/dist/features/admin/components/AdminAllEventEntriesView.js +1 -1
  16. package/dist/features/admin/components/AdminAnalyticsGuideView.js +3 -3
  17. package/dist/features/admin/components/AdminBidsView.js +1 -1
  18. package/dist/features/admin/components/AdminBlogView.js +1 -1
  19. package/dist/features/admin/components/AdminBrandsView.js +1 -1
  20. package/dist/features/admin/components/AdminBundlesView.js +1 -1
  21. package/dist/features/admin/components/AdminCarouselView.js +2 -2
  22. package/dist/features/admin/components/AdminCartsView.js +1 -1
  23. package/dist/features/admin/components/AdminCatalogGuideView.js +5 -5
  24. package/dist/features/admin/components/AdminCategoriesView.js +1 -1
  25. package/dist/features/admin/components/AdminContactEditorView.js +2 -2
  26. package/dist/features/admin/components/AdminContactView.js +1 -1
  27. package/dist/features/admin/components/AdminContentGuideView.js +6 -6
  28. package/dist/features/admin/components/AdminCouponsView.js +1 -1
  29. package/dist/features/admin/components/AdminFaqsView.js +1 -1
  30. package/dist/features/admin/components/AdminFeatureFlagsView.js +1 -1
  31. package/dist/features/admin/components/AdminFeaturesView.js +1 -1
  32. package/dist/features/admin/components/AdminGuideHubView.js +1 -1
  33. package/dist/features/admin/components/AdminHistoryView.js +1 -1
  34. package/dist/features/admin/components/AdminListingScaffold.js +1 -1
  35. package/dist/features/admin/components/AdminNewsletterView.js +1 -1
  36. package/dist/features/admin/components/AdminNotificationsView.js +1 -1
  37. package/dist/features/admin/components/AdminOrdersGuideView.js +5 -5
  38. package/dist/features/admin/components/AdminOrdersView.js +1 -1
  39. package/dist/features/admin/components/AdminPayoutsView.js +1 -1
  40. package/dist/features/admin/components/AdminProductsView.js +1 -1
  41. package/dist/features/admin/components/AdminReturnRequestsView.js +1 -1
  42. package/dist/features/admin/components/AdminReviewsView.js +1 -1
  43. package/dist/features/admin/components/AdminScammerEditorView.js +3 -3
  44. package/dist/features/admin/components/AdminScammersView.js +4 -4
  45. package/dist/features/admin/components/AdminSectionsView.js +1 -1
  46. package/dist/features/admin/components/AdminSessionsView.js +1 -1
  47. package/dist/features/admin/components/AdminSiteSettingsView.js +1 -1
  48. package/dist/features/admin/components/AdminStoreAddressesView.js +1 -1
  49. package/dist/features/admin/components/AdminStoresGuideView.js +6 -6
  50. package/dist/features/admin/components/AdminStoresView.js +1 -1
  51. package/dist/features/admin/components/AdminSublistingCategoriesView.js +1 -1
  52. package/dist/features/admin/components/AdminSupportTicketDetailView.js +4 -4
  53. package/dist/features/admin/components/AdminSupportTicketsView.js +7 -7
  54. package/dist/features/admin/components/AdminTeamGuideView.js +4 -4
  55. package/dist/features/admin/components/AdminTeamView.js +1 -1
  56. package/dist/features/admin/components/AdminTrustGuideView.js +5 -5
  57. package/dist/features/admin/components/AdminUserEditorView.js +1 -1
  58. package/dist/features/admin/components/AdminUsersGuideView.js +5 -5
  59. package/dist/features/admin/components/AdminUsersView.js +1 -1
  60. package/dist/features/admin/components/AdminViewCards.js +1 -1
  61. package/dist/features/admin/components/AdminWishlistsView.js +1 -1
  62. package/dist/features/admin/components/DataTable.js +1 -1
  63. package/dist/features/auctions/components/AuctionBidsTable.js +1 -1
  64. package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
  65. package/dist/features/auctions/components/MarketplaceAuctionCard.js +2 -2
  66. package/dist/features/auctions/components/PlaceBidFormClient.js +1 -1
  67. package/dist/features/auth/components/VerifyEmailView.js +1 -1
  68. package/dist/features/blog/components/BlogListView.js +1 -1
  69. package/dist/features/blog/components/BlogPostView.js +1 -1
  70. package/dist/features/cart/components/CartDrawer.js +1 -1
  71. package/dist/features/categories/components/CategoryDetailPageView.js +1 -1
  72. package/dist/features/checkout/components/CheckoutStepper.js +1 -1
  73. package/dist/features/collections/components/CollectionCard.js +1 -1
  74. package/dist/features/copilot/components/AdminCopilotView.js +2 -2
  75. package/dist/features/events/components/AdminEventsView.js +1 -1
  76. package/dist/features/events/components/EventPollWidget.js +2 -2
  77. package/dist/features/events/components/EventStatusBadge.js +4 -4
  78. package/dist/features/events/components/SpinWheelView.js +1 -1
  79. package/dist/features/faq/components/FAQAccordion.js +2 -2
  80. package/dist/features/forms/Input.js +3 -3
  81. package/dist/features/forms/Select.js +2 -2
  82. package/dist/features/forms/Textarea.js +2 -2
  83. package/dist/features/forms/utils.d.ts +1 -1
  84. package/dist/features/forms/utils.js +1 -1
  85. package/dist/features/homepage/components/CharacterHotspotForm.js +2 -2
  86. package/dist/features/layout/BottomActions.js +2 -2
  87. package/dist/features/layout/ListingLayout.js +3 -3
  88. package/dist/features/layout/TitleBarLayout.js +1 -1
  89. package/dist/features/media/index.d.ts +2 -0
  90. package/dist/features/media/index.js +1 -0
  91. package/dist/features/media/modals/ImageCropModal.js +1 -1
  92. package/dist/features/media/modals/ImageEditor.d.ts +12 -0
  93. package/dist/features/media/modals/ImageEditor.js +73 -0
  94. package/dist/features/media/upload/ImageUpload.d.ts +5 -1
  95. package/dist/features/media/upload/ImageUpload.js +33 -8
  96. package/dist/features/media/upload/MediaUploadField.d.ts +5 -1
  97. package/dist/features/media/upload/MediaUploadField.js +26 -12
  98. package/dist/features/orders/components/OrdersList.js +7 -7
  99. package/dist/features/orders/components/RefundHistoryTable.js +2 -2
  100. package/dist/features/orders/components/RefundRequestView.js +3 -3
  101. package/dist/features/pre-orders/components/PreOrderActionsClient.js +1 -1
  102. package/dist/features/pre-orders/components/PreOrderBadge.js +4 -4
  103. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
  104. package/dist/features/pre-orders/components/PreorderCard.js +2 -2
  105. package/dist/features/products/components/CustomSectionsEditor.js +1 -1
  106. package/dist/features/products/components/MakeOfferButton.js +2 -2
  107. package/dist/features/products/components/PrizeDrawDetailPageView.js +2 -2
  108. package/dist/features/products/components/PrizeDrawItemsEditor.js +3 -3
  109. package/dist/features/products/components/PrizeRevealModal.js +3 -3
  110. package/dist/features/products/components/ProductDetailPageView.js +4 -4
  111. package/dist/features/products/components/ProductFeaturesSelector.js +1 -1
  112. package/dist/features/products/components/ProductGrid.js +3 -3
  113. package/dist/features/promotions/components/CouponCard.js +2 -2
  114. package/dist/features/promotions/components/PromotionsView.js +1 -1
  115. package/dist/features/reviews/components/ReviewDetailShell.js +2 -2
  116. package/dist/features/reviews/components/ReviewsList.js +1 -1
  117. package/dist/features/seller/components/SellerAddressesView.js +2 -2
  118. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +2 -2
  119. package/dist/features/seller/components/SellerAuctionsView.js +1 -1
  120. package/dist/features/seller/components/SellerBidsView.js +1 -1
  121. package/dist/features/seller/components/SellerBundlesView.js +2 -2
  122. package/dist/features/seller/components/SellerClassifiedView.js +3 -3
  123. package/dist/features/seller/components/SellerCouponEditorView.js +2 -2
  124. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  125. package/dist/features/seller/components/SellerDigitalCodesView.js +2 -2
  126. package/dist/features/seller/components/SellerFeaturesView.js +1 -1
  127. package/dist/features/seller/components/SellerLiveView.js +4 -4
  128. package/dist/features/seller/components/SellerOffersPanel.js +2 -2
  129. package/dist/features/seller/components/SellerOffersView.js +1 -1
  130. package/dist/features/seller/components/SellerOrdersView.js +2 -2
  131. package/dist/features/seller/components/SellerPayoutMethodsView.js +2 -2
  132. package/dist/features/seller/components/SellerPayoutsView.js +1 -1
  133. package/dist/features/seller/components/SellerProductsCards.js +1 -1
  134. package/dist/features/seller/components/SellerProductsView.js +1 -1
  135. package/dist/features/seller/components/SellerReviewsView.js +1 -1
  136. package/dist/features/seller/components/SellerShippingConfigsView.js +3 -3
  137. package/dist/features/seller/components/SellerStoreCategoriesView.js +2 -2
  138. package/dist/features/seller/components/SellerTemplatesView.js +2 -2
  139. package/dist/features/seller/components/analytics/SellerTopProducts.js +1 -1
  140. package/dist/features/stores/components/StoreFinanceGuideView.js +2 -2
  141. package/dist/features/stores/components/StoreHeader.js +1 -1
  142. package/dist/features/stores/components/StoreListingsGuideView.js +3 -3
  143. package/dist/features/stores/components/StoreOrdersGuideView.js +4 -4
  144. package/dist/features/stores/components/StoreSettingsGuideView.js +2 -2
  145. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +4 -4
  146. package/dist/features/wishlist/components/WishlistPage.js +1 -1
  147. package/dist/index.d.ts +2 -0
  148. package/dist/index.js +3 -0
  149. package/dist/styles.css +286 -3
  150. package/dist/tailwind-utilities.css +1 -1
  151. package/dist/tokens/motion.d.ts +162 -0
  152. package/dist/tokens/motion.js +89 -0
  153. package/dist/ui/DataTable.js +3 -2
  154. package/dist/ui/components/Accordion.js +2 -1
  155. package/dist/ui/components/Card.d.ts +5 -2
  156. package/dist/ui/components/Card.js +29 -11
  157. package/dist/ui/components/Div.d.ts +2 -16
  158. package/dist/ui/components/Div.js +2 -16
  159. package/dist/ui/components/Layout.d.ts +9 -19
  160. package/dist/ui/components/Layout.js +9 -7
  161. package/dist/ui/components/Modal.js +7 -4
  162. package/dist/ui/components/Motion.d.ts +75 -0
  163. package/dist/ui/components/Motion.js +122 -0
  164. package/dist/ui/components/Semantic.d.ts +81 -14
  165. package/dist/ui/components/Semantic.js +75 -10
  166. package/dist/ui/components/Semantic.style.css +261 -2
  167. package/dist/ui/components/SideDrawer.d.ts +1 -1
  168. package/dist/ui/components/SideDrawer.js +8 -6
  169. package/dist/ui/components/SideModal.d.ts +1 -1
  170. package/dist/ui/components/SideModal.js +11 -9
  171. package/dist/ui/components/StackedViewShell.js +6 -1
  172. package/dist/ui/components/Toast.js +5 -2
  173. package/dist/ui/components/Typography.d.ts +44 -3
  174. package/dist/ui/components/Typography.js +15 -30
  175. package/dist/ui/components/Typography.style.css +24 -0
  176. package/dist/ui/components/VacationBanner.js +2 -1
  177. package/dist/ui/components/surface-tokens.d.ts +70 -0
  178. package/dist/ui/components/surface-tokens.js +68 -0
  179. package/dist/ui/forms/FormShell.d.ts +6 -1
  180. package/dist/ui/forms/FormShell.js +32 -4
  181. package/dist/ui/index.d.ts +9 -2
  182. package/dist/ui/index.js +4 -2
  183. package/dist/validation/schemas.d.ts +28 -28
  184. package/package.json +3 -1
@@ -0,0 +1,122 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { motion, useReducedMotion, AnimatePresence as MotionAnimatePresence, } from "motion/react";
5
+ import { MOTION_PRESETS, SPRING_SNAPPY, EASE_OUT } from "../../tokens/motion";
6
+ // Re-export AnimatePresence for consumer convenience
7
+ export const AnimatePresence = MotionAnimatePresence;
8
+ // ── Reduced motion helper ────────────────────────────────────────────────────
9
+ function useMotionProps(props) {
10
+ const reduced = useReducedMotion();
11
+ if (!reduced)
12
+ return props;
13
+ const { initial, animate, exit, whileHover, whileTap, whileInView, transition, ...rest } = props;
14
+ return { ...rest, initial: false, animate: false };
15
+ }
16
+ export function FadeIn({ delay = 0, duration = 0.3, children, ...props }) {
17
+ const motionProps = useMotionProps({
18
+ initial: { opacity: 0 },
19
+ animate: { opacity: 1 },
20
+ exit: { opacity: 0 },
21
+ transition: { duration, delay },
22
+ ...props,
23
+ });
24
+ return _jsx(motion.div, { ...motionProps, children: children });
25
+ }
26
+ export function SlideUp({ delay = 0, distance = 20, children, ...props }) {
27
+ const motionProps = useMotionProps({
28
+ initial: { opacity: 0, y: distance },
29
+ animate: { opacity: 1, y: 0 },
30
+ exit: { opacity: 0, y: distance },
31
+ transition: { ...SPRING_SNAPPY, delay },
32
+ ...props,
33
+ });
34
+ return _jsx(motion.div, { ...motionProps, children: children });
35
+ }
36
+ const SLIDE_OFFSETS = {
37
+ left: { x: -24, y: 0 },
38
+ right: { x: 24, y: 0 },
39
+ up: { x: 0, y: -20 },
40
+ down: { x: 0, y: 20 },
41
+ };
42
+ export function SlideIn({ direction = "left", delay = 0, distance, children, ...props }) {
43
+ const offset = SLIDE_OFFSETS[direction];
44
+ const scale = distance ? distance / Math.max(Math.abs(offset.x || 1), Math.abs(offset.y || 1)) : 1;
45
+ const motionProps = useMotionProps({
46
+ initial: { opacity: 0, x: offset.x * scale, y: offset.y * scale },
47
+ animate: { opacity: 1, x: 0, y: 0 },
48
+ exit: { opacity: 0, x: offset.x * scale, y: offset.y * scale },
49
+ transition: { ...SPRING_SNAPPY, delay },
50
+ ...props,
51
+ });
52
+ return _jsx(motion.div, { ...motionProps, children: children });
53
+ }
54
+ export function ScaleIn({ delay = 0, children, ...props }) {
55
+ const motionProps = useMotionProps({
56
+ ...MOTION_PRESETS.scaleIn,
57
+ transition: { ...MOTION_PRESETS.scaleIn.transition, delay },
58
+ ...props,
59
+ });
60
+ return _jsx(motion.div, { ...motionProps, children: children });
61
+ }
62
+ export function Collapse({ isOpen, children, ...props }) {
63
+ const reduced = useReducedMotion();
64
+ return (_jsx(MotionAnimatePresence, { initial: false, children: isOpen && (_jsx(motion.div, { initial: reduced ? false : { height: 0, opacity: 0, overflow: "hidden" }, animate: { height: "auto", opacity: 1, overflow: "hidden" }, exit: { height: 0, opacity: 0, overflow: "hidden" }, transition: EASE_OUT, ...props, children: children })) }));
65
+ }
66
+ export function PressScale({ scale = 0.97, children, ...props }) {
67
+ const reduced = useReducedMotion();
68
+ return (_jsx(motion.div, { whileTap: reduced ? undefined : { scale }, transition: { duration: 0.1 }, ...props, children: children }));
69
+ }
70
+ export function HoverLift({ lift = 2, children, ...props }) {
71
+ const reduced = useReducedMotion();
72
+ return (_jsx(motion.div, { whileHover: reduced ? undefined : { y: -lift }, transition: SPRING_SNAPPY, ...props, children: children }));
73
+ }
74
+ export function AnimatedList({ staggerDelay = 0.05, children, ...props }) {
75
+ const reduced = useReducedMotion();
76
+ const items = React.Children.toArray(children);
77
+ return (_jsx(motion.div, { ...props, children: items.map((child, i) => (_jsx(motion.div, { initial: reduced ? false : { opacity: 0, y: 16 }, animate: { opacity: 1, y: 0 }, transition: { ...EASE_OUT, delay: i * staggerDelay }, children: child }, React.isValidElement(child) ? (child.key ?? i) : i))) }));
78
+ }
79
+ export function AnimatedDiv({ delay = 0, children, ...props }) {
80
+ const motionProps = useMotionProps({
81
+ initial: { opacity: 0 },
82
+ animate: { opacity: 1 },
83
+ exit: { opacity: 0 },
84
+ transition: { duration: 0.2, delay },
85
+ ...props,
86
+ });
87
+ return _jsx(motion.div, { ...motionProps, children: children });
88
+ }
89
+ export function AnimatedStack({ delay = 0, children, className, ...props }) {
90
+ const motionProps = useMotionProps({
91
+ initial: { opacity: 0 },
92
+ animate: { opacity: 1 },
93
+ exit: { opacity: 0 },
94
+ transition: { duration: 0.2, delay },
95
+ ...props,
96
+ });
97
+ return (_jsx(motion.div, { ...motionProps, className: ["flex flex-col gap-4", className].filter(Boolean).join(" "), children: children }));
98
+ }
99
+ export function AnimatedRow({ delay = 0, children, className, ...props }) {
100
+ const motionProps = useMotionProps({
101
+ initial: { opacity: 0 },
102
+ animate: { opacity: 1 },
103
+ exit: { opacity: 0 },
104
+ transition: { duration: 0.2, delay },
105
+ ...props,
106
+ });
107
+ return (_jsx(motion.div, { ...motionProps, className: ["flex flex-row gap-4", className].filter(Boolean).join(" "), children: children }));
108
+ }
109
+ export function Draggable({ axis, constraints, dragElastic = 0.1, children, ...props }) {
110
+ const reduced = useReducedMotion();
111
+ const drag = reduced ? false : (axis === true ? true : axis || true);
112
+ return (_jsx(motion.div, { drag: drag, dragConstraints: constraints, dragElastic: dragElastic, ...props, children: children }));
113
+ }
114
+ export function Swipeable({ onSwipeLeft, onSwipeRight, threshold = 50, children, ...props }) {
115
+ const reduced = useReducedMotion();
116
+ return (_jsx(motion.div, { drag: reduced ? false : "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 0.2, onDragEnd: (_e, info) => {
117
+ if (info.offset.x < -threshold)
118
+ onSwipeLeft?.();
119
+ if (info.offset.x > threshold)
120
+ onSwipeRight?.();
121
+ }, ...props, children: children }));
122
+ }
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import type { SurfaceProps } from "./surface-tokens";
2
3
  /**
3
4
  * Semantic HTML Wrapper Components
4
5
  *
@@ -35,7 +36,7 @@ import React from "react";
35
36
  * Use for thematically grouped content that would appear in an outline.
36
37
  * Prefer this over a plain `<div data-section="semantic-div-596">` when the block has a heading.
37
38
  */
38
- export interface SectionProps extends React.HTMLAttributes<HTMLElement> {
39
+ export interface SectionProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
39
40
  children: React.ReactNode;
40
41
  }
41
42
  export declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
@@ -43,24 +44,24 @@ export declare const Section: React.ForwardRefExoticComponent<SectionProps & Rea
43
44
  * Semantic `<article>` element.
44
45
  * Use for self-contained compositions: blog posts, product cards, reviews, forum posts.
45
46
  */
46
- export interface ArticleProps extends React.HTMLAttributes<HTMLElement> {
47
+ export interface ArticleProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
47
48
  children?: React.ReactNode;
48
49
  }
49
- export declare function Article({ className, children, ...props }: ArticleProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare function Article({ className, surface, padding, rounded, border, shadow, children, ...props }: ArticleProps): import("react/jsx-runtime").JSX.Element;
50
51
  /**
51
52
  * Semantic `<main>` element.
52
53
  * Wraps the primary content of the document. Should appear only once per page.
53
54
  */
54
- export interface MainProps extends React.HTMLAttributes<HTMLElement> {
55
+ export interface MainProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
55
56
  children: React.ReactNode;
56
57
  }
57
- export declare function Main({ className, children, ...props }: MainProps): import("react/jsx-runtime").JSX.Element;
58
+ export declare function Main({ className, surface, padding, rounded, border, shadow, children, ...props }: MainProps): import("react/jsx-runtime").JSX.Element;
58
59
  /**
59
60
  * Semantic `<aside>` element.
60
61
  * Use for supplementary content tangentially related to the main content:
61
62
  * sidebars, callout boxes, related-link panels.
62
63
  */
63
- export interface AsideProps extends React.HTMLAttributes<HTMLElement> {
64
+ export interface AsideProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
64
65
  children: React.ReactNode;
65
66
  }
66
67
  export declare const Aside: React.ForwardRefExoticComponent<AsideProps & React.RefAttributes<HTMLElement>>;
@@ -95,18 +96,18 @@ export declare function Nav({ className, children, ...props }: NavProps): import
95
96
  * </Article>
96
97
  * ```
97
98
  */
98
- export interface BlockHeaderProps extends React.HTMLAttributes<HTMLElement> {
99
+ export interface BlockHeaderProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
99
100
  children: React.ReactNode;
100
101
  }
101
- export declare function BlockHeader({ className, children, ...props }: BlockHeaderProps): import("react/jsx-runtime").JSX.Element;
102
+ export declare function BlockHeader({ className, surface, padding, rounded, border, shadow, children, ...props }: BlockHeaderProps): import("react/jsx-runtime").JSX.Element;
102
103
  /**
103
104
  * Semantic `<footer>` element for block-level component footers.
104
105
  * Use inside `Section`, `Article`, or card bodies — NOT as the page-level footer.
105
106
  */
106
- export interface BlockFooterProps extends React.HTMLAttributes<HTMLElement> {
107
+ export interface BlockFooterProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
107
108
  children: React.ReactNode;
108
109
  }
109
- export declare function BlockFooter({ className, children, ...props }: BlockFooterProps): import("react/jsx-runtime").JSX.Element;
110
+ export declare function BlockFooter({ className, surface, padding, rounded, border, shadow, children, ...props }: BlockFooterProps): import("react/jsx-runtime").JSX.Element;
110
111
  /**
111
112
  * Semantic `<ul>` (unordered list) element.
112
113
  *
@@ -144,11 +145,77 @@ export interface LiProps extends React.LiHTMLAttributes<HTMLLIElement> {
144
145
  children: React.ReactNode;
145
146
  }
146
147
  export declare function Li({ className, children, ...props }: LiProps): import("react/jsx-runtime").JSX.Element;
147
- /**
148
- * Aliases for `BlockHeader` and `BlockFooter`.
149
- * Use when importing from the standard `<Header>` / `<Footer>` names.
150
- */
151
148
  export type HeaderProps = BlockHeaderProps;
152
149
  export declare const Header: typeof BlockHeader;
153
150
  export type FooterProps = BlockFooterProps;
154
151
  export declare const Footer: typeof BlockFooter;
152
+ type TableVariant = "default" | "striped" | "bordered";
153
+ type TableSize = "sm" | "md" | "lg";
154
+ export interface TableProps extends Omit<React.TableHTMLAttributes<HTMLTableElement>, "border">, SurfaceProps {
155
+ variant?: TableVariant;
156
+ size?: TableSize;
157
+ stickyHeader?: boolean;
158
+ children: React.ReactNode;
159
+ }
160
+ export declare function Table({ variant, size, stickyHeader, className, surface, padding, rounded, border, shadow, children, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
161
+ export interface TheadProps extends React.HTMLAttributes<HTMLTableSectionElement> {
162
+ children: React.ReactNode;
163
+ }
164
+ export declare function Thead({ className, children, ...props }: TheadProps): import("react/jsx-runtime").JSX.Element;
165
+ export interface TbodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
166
+ children: React.ReactNode;
167
+ }
168
+ export declare function Tbody({ className, children, ...props }: TbodyProps): import("react/jsx-runtime").JSX.Element;
169
+ export interface TrProps extends React.HTMLAttributes<HTMLTableRowElement> {
170
+ hover?: boolean;
171
+ children: React.ReactNode;
172
+ }
173
+ export declare function Tr({ hover, className, children, ...props }: TrProps): import("react/jsx-runtime").JSX.Element;
174
+ type CellAlign = "left" | "center" | "right";
175
+ export interface ThProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
176
+ align?: CellAlign;
177
+ children?: React.ReactNode;
178
+ }
179
+ export declare function Th({ align, className, children, ...props }: ThProps): import("react/jsx-runtime").JSX.Element;
180
+ export interface TdProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
181
+ align?: CellAlign;
182
+ children?: React.ReactNode;
183
+ }
184
+ export declare function Td({ align, className, children, ...props }: TdProps): import("react/jsx-runtime").JSX.Element;
185
+ export interface CodeProps extends React.HTMLAttributes<HTMLElement> {
186
+ color?: "default" | "primary" | "error" | "success";
187
+ children: React.ReactNode;
188
+ }
189
+ export declare function Code({ color, className, children, ...props }: CodeProps): import("react/jsx-runtime").JSX.Element;
190
+ export interface PreProps extends React.HTMLAttributes<HTMLPreElement>, SurfaceProps {
191
+ children: React.ReactNode;
192
+ }
193
+ export declare function Pre({ className, surface, padding, rounded, border, shadow, children, ...props }: PreProps): import("react/jsx-runtime").JSX.Element;
194
+ export interface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElement>, SurfaceProps {
195
+ color?: "default" | "primary" | "info" | "warning";
196
+ children: React.ReactNode;
197
+ }
198
+ export declare function Blockquote({ color, className, surface, padding, rounded, border, shadow, children, ...props }: BlockquoteProps): import("react/jsx-runtime").JSX.Element;
199
+ export interface FigureProps extends React.HTMLAttributes<HTMLElement>, SurfaceProps {
200
+ children: React.ReactNode;
201
+ }
202
+ export declare function Figure({ className, surface, padding, rounded, border, shadow, children, ...props }: FigureProps): import("react/jsx-runtime").JSX.Element;
203
+ export interface FigcaptionProps extends React.HTMLAttributes<HTMLElement> {
204
+ children: React.ReactNode;
205
+ }
206
+ export declare function Figcaption({ className, children, ...props }: FigcaptionProps): import("react/jsx-runtime").JSX.Element;
207
+ type DlVariant = "stacked" | "inline";
208
+ export interface DlProps extends React.HTMLAttributes<HTMLDListElement>, SurfaceProps {
209
+ variant?: DlVariant;
210
+ children: React.ReactNode;
211
+ }
212
+ export declare function Dl({ variant, className, surface, padding, rounded, border, shadow, children, ...props }: DlProps): import("react/jsx-runtime").JSX.Element;
213
+ export interface DtProps extends React.HTMLAttributes<HTMLElement> {
214
+ children: React.ReactNode;
215
+ }
216
+ export declare function Dt({ className, children, ...props }: DtProps): import("react/jsx-runtime").JSX.Element;
217
+ export interface DdProps extends React.HTMLAttributes<HTMLElement> {
218
+ children: React.ReactNode;
219
+ }
220
+ export declare function Dd({ className, children, ...props }: DdProps): import("react/jsx-runtime").JSX.Element;
221
+ export {};
@@ -1,23 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
- export const Section = React.forwardRef(({ className = "", children, ...props }, ref) => (_jsx("section", { className: className, ref: ref, ...props, children: children })));
3
+ import { buildSurfaceClasses } from "./surface-tokens";
4
+ export const Section = React.forwardRef(({ className = "", surface, padding, rounded, border, shadow, children, ...props }, ref) => (_jsx("section", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ref: ref, ...props, children: children })));
4
5
  Section.displayName = "Section";
5
- export function Article({ className = "", children, ...props }) {
6
- return (_jsx("article", { className: className, ...props, children: children }));
6
+ export function Article({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
7
+ return (_jsx("article", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
7
8
  }
8
- export function Main({ className = "", children, ...props }) {
9
- return (_jsx("main", { className: className, ...props, children: children }));
9
+ export function Main({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
10
+ return (_jsx("main", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
10
11
  }
11
- export const Aside = React.forwardRef(({ className = "", children, ...props }, ref) => (_jsx("aside", { className: className, ref: ref, ...props, children: children })));
12
+ export const Aside = React.forwardRef(({ className = "", surface, padding, rounded, border, shadow, children, ...props }, ref) => (_jsx("aside", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ref: ref, ...props, children: children })));
12
13
  Aside.displayName = "Aside";
13
14
  export function Nav({ className = "", children, ...props }) {
14
15
  return (_jsx("nav", { className: className, ...props, children: children }));
15
16
  }
16
- export function BlockHeader({ className = "", children, ...props }) {
17
- return (_jsx("header", { className: className, ...props, children: children }));
17
+ export function BlockHeader({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
18
+ return (_jsx("header", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
18
19
  }
19
- export function BlockFooter({ className = "", children, ...props }) {
20
- return (_jsx("footer", { className: className, ...props, children: children }));
20
+ export function BlockFooter({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
21
+ return (_jsx("footer", { className: [buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
21
22
  }
22
23
  export function Ul({ className = "", children, ...props }) {
23
24
  return (_jsx("ul", { className: className, ...props, children: children }));
@@ -30,3 +31,67 @@ export function Li({ className = "", children, ...props }) {
30
31
  }
31
32
  export const Header = BlockHeader;
32
33
  export const Footer = BlockFooter;
34
+ const TABLE_VARIANT_MAP = {
35
+ default: "appkit-table--default",
36
+ striped: "appkit-table--striped",
37
+ bordered: "appkit-table--bordered",
38
+ };
39
+ const TABLE_SIZE_MAP = {
40
+ sm: "appkit-table--sm",
41
+ md: "appkit-table--md",
42
+ lg: "appkit-table--lg",
43
+ };
44
+ export function Table({ variant = "default", size = "md", stickyHeader = false, className = "", surface, padding, rounded, border, shadow, children, ...props }) {
45
+ return (_jsx("table", { className: ["appkit-table", TABLE_VARIANT_MAP[variant], TABLE_SIZE_MAP[size], stickyHeader ? "appkit-table--sticky-header" : "", buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
46
+ }
47
+ export function Thead({ className = "", children, ...props }) {
48
+ return (_jsx("thead", { className: ["appkit-thead", className].filter(Boolean).join(" "), ...props, children: children }));
49
+ }
50
+ export function Tbody({ className = "", children, ...props }) {
51
+ return (_jsx("tbody", { className: ["appkit-tbody", className].filter(Boolean).join(" "), ...props, children: children }));
52
+ }
53
+ export function Tr({ hover = false, className = "", children, ...props }) {
54
+ return (_jsx("tr", { className: ["appkit-tr", hover ? "appkit-tr--hover" : "", className].filter(Boolean).join(" "), ...props, children: children }));
55
+ }
56
+ export function Th({ align, className = "", children, ...props }) {
57
+ return (_jsx("th", { className: ["appkit-th", align ? `text-${align}` : "", className].filter(Boolean).join(" "), ...props, children: children }));
58
+ }
59
+ export function Td({ align, className = "", children, ...props }) {
60
+ return (_jsx("td", { className: ["appkit-td", align ? `text-${align}` : "", className].filter(Boolean).join(" "), ...props, children: children }));
61
+ }
62
+ const CODE_COLOR_MAP = {
63
+ default: "appkit-code--default",
64
+ primary: "appkit-code--primary",
65
+ error: "appkit-code--error",
66
+ success: "appkit-code--success",
67
+ };
68
+ export function Code({ color = "default", className = "", children, ...props }) {
69
+ return (_jsx("code", { className: ["appkit-code", CODE_COLOR_MAP[color], className].filter(Boolean).join(" "), ...props, children: children }));
70
+ }
71
+ export function Pre({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
72
+ return (_jsx("pre", { className: ["appkit-pre", buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
73
+ }
74
+ const BLOCKQUOTE_COLOR_MAP = {
75
+ default: "appkit-blockquote--default",
76
+ primary: "appkit-blockquote--primary",
77
+ info: "appkit-blockquote--info",
78
+ warning: "appkit-blockquote--warning",
79
+ };
80
+ export function Blockquote({ color = "default", className = "", surface, padding, rounded, border, shadow, children, ...props }) {
81
+ return (_jsx("blockquote", { className: ["appkit-blockquote", BLOCKQUOTE_COLOR_MAP[color], buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
82
+ }
83
+ export function Figure({ className = "", surface, padding, rounded, border, shadow, children, ...props }) {
84
+ return (_jsx("figure", { className: ["appkit-figure", buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
85
+ }
86
+ export function Figcaption({ className = "", children, ...props }) {
87
+ return (_jsx("figcaption", { className: ["appkit-figcaption", className].filter(Boolean).join(" "), ...props, children: children }));
88
+ }
89
+ export function Dl({ variant = "stacked", className = "", surface, padding, rounded, border, shadow, children, ...props }) {
90
+ return (_jsx("dl", { className: ["appkit-dl", variant === "inline" ? "appkit-dl--inline" : "appkit-dl--stacked", buildSurfaceClasses({ surface, padding, rounded, border, shadow }), className].filter(Boolean).join(" "), ...props, children: children }));
91
+ }
92
+ export function Dt({ className = "", children, ...props }) {
93
+ return (_jsx("dt", { className: ["appkit-dt", className].filter(Boolean).join(" "), ...props, children: children }));
94
+ }
95
+ export function Dd({ className = "", children, ...props }) {
96
+ return (_jsx("dd", { className: ["appkit-dd", className].filter(Boolean).join(" "), ...props, children: children }));
97
+ }
@@ -1,6 +1,4 @@
1
1
  /* Semantic — HTML5 landmark wrappers (Section, Article, Main, Aside, Nav, etc.) */
2
- /* Pure passthroughs — no default styles. Exists for style contract compliance. */
3
- /* Consumer themes may add base landmark styles via these hooks. */
4
2
 
5
3
  .appkit-section {}
6
4
  .appkit-article {}
@@ -12,3 +10,264 @@
12
10
  .appkit-ul {}
13
11
  .appkit-ol {}
14
12
  .appkit-li {}
13
+
14
+ /* --- Table family --------------------------------------------------------- */
15
+
16
+ .appkit-table {
17
+ width: 100%;
18
+ border-collapse: collapse;
19
+ text-align: left;
20
+ }
21
+
22
+ .appkit-table--sm .appkit-th,
23
+ .appkit-table--sm .appkit-td { padding: 0.375rem 0.5rem; font-size: 0.8125rem; }
24
+
25
+ .appkit-table--md .appkit-th,
26
+ .appkit-table--md .appkit-td { padding: 0.625rem 0.75rem; font-size: 0.875rem; }
27
+
28
+ .appkit-table--lg .appkit-th,
29
+ .appkit-table--lg .appkit-td { padding: 0.875rem 1rem; font-size: 1rem; }
30
+
31
+ .appkit-thead {}
32
+
33
+ .appkit-th {
34
+ font-weight: 600;
35
+ color: var(--appkit-color-zinc-600, #52525b);
36
+ border-bottom: 1px solid var(--appkit-color-zinc-200, #e4e4e7);
37
+ }
38
+
39
+ .dark .appkit-th {
40
+ color: var(--appkit-color-zinc-400, #a1a1aa);
41
+ border-bottom-color: var(--appkit-color-slate-700, #334155);
42
+ }
43
+
44
+ .appkit-td {
45
+ border-bottom: 1px solid var(--appkit-color-zinc-100, #f4f4f5);
46
+ }
47
+
48
+ .dark .appkit-td {
49
+ border-bottom-color: var(--appkit-color-slate-800, #1e293b);
50
+ }
51
+
52
+ .appkit-table--default .appkit-th {
53
+ background: var(--appkit-color-zinc-50, #fafafa);
54
+ }
55
+
56
+ .dark .appkit-table--default .appkit-th {
57
+ background: var(--appkit-color-slate-900, #0f172a);
58
+ }
59
+
60
+ .appkit-table--striped .appkit-tbody .appkit-tr:nth-child(even) {
61
+ background: var(--appkit-color-zinc-50, #fafafa);
62
+ }
63
+
64
+ .dark .appkit-table--striped .appkit-tbody .appkit-tr:nth-child(even) {
65
+ background: var(--appkit-color-slate-800, #1e293b);
66
+ }
67
+
68
+ .appkit-table--bordered .appkit-th,
69
+ .appkit-table--bordered .appkit-td {
70
+ border: 1px solid var(--appkit-color-zinc-200, #e4e4e7);
71
+ }
72
+
73
+ .dark .appkit-table--bordered .appkit-th,
74
+ .dark .appkit-table--bordered .appkit-td {
75
+ border-color: var(--appkit-color-slate-700, #334155);
76
+ }
77
+
78
+ .appkit-table--sticky-header .appkit-th {
79
+ position: sticky;
80
+ top: 0;
81
+ z-index: 1;
82
+ background: var(--appkit-color-zinc-50, #fafafa);
83
+ }
84
+
85
+ .dark .appkit-table--sticky-header .appkit-th {
86
+ background: var(--appkit-color-slate-900, #0f172a);
87
+ }
88
+
89
+ .appkit-tr--hover:hover {
90
+ background: var(--appkit-color-zinc-50, #fafafa);
91
+ }
92
+
93
+ .dark .appkit-tr--hover:hover {
94
+ background: var(--appkit-color-slate-800, #1e293b);
95
+ }
96
+
97
+ /* --- Code / Pre ----------------------------------------------------------- */
98
+
99
+ .appkit-code {
100
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
101
+ font-size: 0.875em;
102
+ padding: 0.125rem 0.375rem;
103
+ border-radius: 0.25rem;
104
+ }
105
+
106
+ .appkit-code--default {
107
+ background: var(--appkit-color-zinc-100, #f4f4f5);
108
+ color: var(--appkit-color-zinc-800, #27272a);
109
+ }
110
+
111
+ .dark .appkit-code--default {
112
+ background: var(--appkit-color-slate-800, #1e293b);
113
+ color: var(--appkit-color-zinc-200, #e4e4e7);
114
+ }
115
+
116
+ .appkit-code--primary {
117
+ background: var(--appkit-color-primary-50, #eef5ff);
118
+ color: var(--appkit-color-primary-700, #1343de);
119
+ }
120
+
121
+ .dark .appkit-code--primary {
122
+ background: var(--appkit-color-primary-950, #111e58);
123
+ color: var(--appkit-color-primary-300, #8eb9ff);
124
+ }
125
+
126
+ .appkit-code--error {
127
+ background: #fef2f2;
128
+ color: #b91c1c;
129
+ }
130
+
131
+ .dark .appkit-code--error {
132
+ background: #1c0a0a;
133
+ color: #fca5a5;
134
+ }
135
+
136
+ .appkit-code--success {
137
+ background: #f0fdf4;
138
+ color: #15803d;
139
+ }
140
+
141
+ .dark .appkit-code--success {
142
+ background: #052e16;
143
+ color: #86efac;
144
+ }
145
+
146
+ .appkit-pre {
147
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
148
+ font-size: 0.875rem;
149
+ line-height: 1.7;
150
+ margin: 0;
151
+ overflow-x: auto;
152
+ background: var(--appkit-color-zinc-50, #fafafa);
153
+ padding: 1rem;
154
+ border-radius: 0.5rem;
155
+ }
156
+
157
+ .dark .appkit-pre {
158
+ background: var(--appkit-color-slate-900, #0f172a);
159
+ }
160
+
161
+ /* --- Blockquote ----------------------------------------------------------- */
162
+
163
+ .appkit-blockquote {
164
+ margin: 0;
165
+ padding: 0.75rem 1rem;
166
+ border-left: 3px solid;
167
+ font-style: italic;
168
+ }
169
+
170
+ .appkit-blockquote--default {
171
+ border-left-color: var(--appkit-color-zinc-300, #d4d4d8);
172
+ color: var(--appkit-color-zinc-600, #52525b);
173
+ }
174
+
175
+ .dark .appkit-blockquote--default {
176
+ border-left-color: var(--appkit-color-slate-600, #475569);
177
+ color: var(--appkit-color-zinc-400, #a1a1aa);
178
+ }
179
+
180
+ .appkit-blockquote--primary {
181
+ border-left-color: var(--appkit-color-primary);
182
+ color: var(--appkit-color-primary-700, #1343de);
183
+ }
184
+
185
+ .dark .appkit-blockquote--primary {
186
+ color: var(--appkit-color-primary-300, #8eb9ff);
187
+ }
188
+
189
+ .appkit-blockquote--info {
190
+ border-left-color: var(--appkit-color-info, #0284c7);
191
+ color: var(--appkit-color-info, #0284c7);
192
+ }
193
+
194
+ .dark .appkit-blockquote--info {
195
+ border-left-color: var(--appkit-color-info, #38bdf8);
196
+ color: var(--appkit-color-info, #38bdf8);
197
+ }
198
+
199
+ .appkit-blockquote--warning {
200
+ border-left-color: var(--appkit-color-warning, #d97706);
201
+ color: var(--appkit-color-warning, #d97706);
202
+ }
203
+
204
+ .dark .appkit-blockquote--warning {
205
+ border-left-color: var(--appkit-color-warning, #fbbf24);
206
+ color: var(--appkit-color-warning, #fbbf24);
207
+ }
208
+
209
+ /* --- Figure / Figcaption -------------------------------------------------- */
210
+
211
+ .appkit-figure {
212
+ margin: 0;
213
+ }
214
+
215
+ .appkit-figcaption {
216
+ font-size: 0.875rem;
217
+ color: var(--appkit-color-zinc-500, #71717a);
218
+ margin-top: 0.5rem;
219
+ }
220
+
221
+ .dark .appkit-figcaption {
222
+ color: var(--appkit-color-zinc-400, #a1a1aa);
223
+ }
224
+
225
+ /* --- Dl / Dt / Dd (description list) -------------------------------------- */
226
+
227
+ .appkit-dl {
228
+ margin: 0;
229
+ }
230
+
231
+ .appkit-dl--stacked .appkit-dt {
232
+ font-weight: 600;
233
+ color: var(--appkit-color-zinc-700, #3f3f46);
234
+ margin-bottom: 0.25rem;
235
+ }
236
+
237
+ .dark .appkit-dl--stacked .appkit-dt {
238
+ color: var(--appkit-color-zinc-300, #d4d4d8);
239
+ }
240
+
241
+ .appkit-dl--stacked .appkit-dd {
242
+ margin: 0 0 1rem 0;
243
+ color: var(--appkit-color-zinc-600, #52525b);
244
+ }
245
+
246
+ .dark .appkit-dl--stacked .appkit-dd {
247
+ color: var(--appkit-color-zinc-400, #a1a1aa);
248
+ }
249
+
250
+ .appkit-dl--inline {
251
+ display: grid;
252
+ grid-template-columns: auto 1fr;
253
+ gap: 0.25rem 1rem;
254
+ align-items: baseline;
255
+ }
256
+
257
+ .appkit-dl--inline .appkit-dt {
258
+ font-weight: 600;
259
+ color: var(--appkit-color-zinc-700, #3f3f46);
260
+ }
261
+
262
+ .dark .appkit-dl--inline .appkit-dt {
263
+ color: var(--appkit-color-zinc-300, #d4d4d8);
264
+ }
265
+
266
+ .appkit-dl--inline .appkit-dd {
267
+ margin: 0;
268
+ color: var(--appkit-color-zinc-600, #52525b);
269
+ }
270
+
271
+ .dark .appkit-dl--inline .appkit-dd {
272
+ color: var(--appkit-color-zinc-400, #a1a1aa);
273
+ }
@@ -24,4 +24,4 @@ export interface SideDrawerProps {
24
24
  * </SideDrawer>
25
25
  * ```
26
26
  */
27
- export declare function SideDrawer({ isOpen, onClose, title, children, footer, mode, isDirty, side, }: SideDrawerProps): import("react/jsx-runtime").JSX.Element | null;
27
+ export declare function SideDrawer({ isOpen, onClose, title, children, footer, mode, isDirty, side, }: SideDrawerProps): import("react/jsx-runtime").JSX.Element;