@mohasinac/appkit 4.53.1 → 4.54.0-next.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 (220) hide show
  1. package/dist/.build-stamp.json +5 -5
  2. package/dist/_internal/client/theme/ThemeProvider.js +15 -1
  3. package/dist/_internal/server/features/auth/capabilities.js +7 -5
  4. package/dist/_internal/server/features/categories/price-guidance-resolve.d.ts +66 -0
  5. package/dist/_internal/server/features/categories/price-guidance-resolve.js +138 -0
  6. package/dist/_internal/server/features/checkout/supplier-identity.js +28 -6
  7. package/dist/_internal/server/features/price-index/market.d.ts +57 -0
  8. package/dist/_internal/server/features/price-index/market.js +120 -0
  9. package/dist/_internal/server/features/products/list-public.d.ts +12 -0
  10. package/dist/_internal/server/features/products/list-public.js +10 -1
  11. package/dist/_internal/server/features/products/listing-tab-counts.d.ts +25 -1
  12. package/dist/_internal/server/features/products/listing-tab-counts.js +184 -10
  13. package/dist/_internal/server/features/search/index-build/sources.js +43 -2
  14. package/dist/_internal/server/features/stores/tabs.d.ts +7 -2
  15. package/dist/_internal/server/features/stores/tabs.js +5 -3
  16. package/dist/_internal/server/jobs/core/jobRunners.js +0 -10
  17. package/dist/_internal/server/jobs/core/onOrderCreate.js +10 -104
  18. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  19. package/dist/_internal/shared/actions/action-registry.js +128 -0
  20. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +1 -1
  21. package/dist/_internal/shared/features/site-settings/supplier-of-record.d.ts +56 -0
  22. package/dist/_internal/shared/features/site-settings/supplier-of-record.js +57 -0
  23. package/dist/_internal/shared/listing-types/tiers.d.ts +94 -0
  24. package/dist/_internal/shared/listing-types/tiers.js +150 -0
  25. package/dist/_internal/shared/search/match.js +28 -2
  26. package/dist/cli/index.js +0 -2
  27. package/dist/client.d.ts +21 -2
  28. package/dist/client.js +23 -4
  29. package/dist/constants/api-endpoints.d.ts +28 -0
  30. package/dist/constants/api-endpoints.js +14 -0
  31. package/dist/features/account/components/UserOrdersView.js +26 -7
  32. package/dist/features/addresses/utils/postal-autofill.d.ts +39 -0
  33. package/dist/features/addresses/utils/postal-autofill.js +54 -0
  34. package/dist/features/admin/components/AdminStoreEditorView.js +73 -34
  35. package/dist/features/admin/components/OwnerQuickActions.d.ts +29 -0
  36. package/dist/features/admin/components/OwnerQuickActions.js +142 -0
  37. package/dist/features/admin/schemas/admin-editor-forms.d.ts +1 -1
  38. package/dist/features/admin/schemas/admin-editor-forms.js +4 -1
  39. package/dist/features/auctions/components/AuctionDetailPageView.js +8 -7
  40. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -1
  41. package/dist/features/auctions/components/MarketplaceAuctionCard.js +9 -2
  42. package/dist/features/auth/permissions/constants.d.ts +29 -2
  43. package/dist/features/auth/permissions/constants.js +68 -1
  44. package/dist/features/blog/components/BlogFeaturedCard.d.ts +11 -1
  45. package/dist/features/blog/components/BlogFeaturedCard.js +9 -2
  46. package/dist/features/cart/components/CartDrawer.js +3 -2
  47. package/dist/features/cart/components/CartGroupLineRow.js +2 -1
  48. package/dist/features/cart/hooks/useAddToCart.js +10 -5
  49. package/dist/features/cart/utils/pending-ops.d.ts +11 -1
  50. package/dist/features/cart/utils/pending-ops.js +14 -2
  51. package/dist/features/categories/api/[id]/price-guidance/route.js +1 -24
  52. package/dist/features/categories/components/BrandDetailPageView.js +15 -6
  53. package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -1
  54. package/dist/features/categories/components/BrandDetailTabs.js +18 -3
  55. package/dist/features/categories/components/BundleCollage.js +3 -2
  56. package/dist/features/categories/components/BundleItemsPicker.js +3 -4
  57. package/dist/features/categories/components/CategoryDetailPageView.js +19 -8
  58. package/dist/features/categories/components/CategoryDetailTabs.d.ts +7 -1
  59. package/dist/features/categories/components/CategoryDetailTabs.js +29 -7
  60. package/dist/features/categories/components/CategoryGrid.d.ts +11 -1
  61. package/dist/features/categories/components/CategoryGrid.js +9 -2
  62. package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +10 -5
  63. package/dist/features/checkout/actions/checkout-value-otp-actions.js +2 -88
  64. package/dist/features/classified/components/ClassifiedDetailPageView.js +10 -1
  65. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +10 -1
  66. package/dist/features/events/components/EventCard.d.ts +11 -1
  67. package/dist/features/events/components/EventCard.js +9 -2
  68. package/dist/features/layout/AppLayoutShell.js +2 -1
  69. package/dist/features/layout/BottomActions.d.ts +1 -0
  70. package/dist/features/layout/BottomActions.js +330 -0
  71. package/dist/features/layout/BottomChrome.d.ts +45 -0
  72. package/dist/features/layout/BottomChrome.js +5 -17
  73. package/dist/features/layout/SideActionDock.js +36 -13
  74. package/dist/features/layout/index.d.ts +2 -7
  75. package/dist/features/layout/index.js +7 -7
  76. package/dist/features/layout/useIsDesktop.d.ts +36 -0
  77. package/dist/features/layout/useIsDesktop.js +48 -0
  78. package/dist/features/live/components/LiveItemDetailPageView.js +10 -1
  79. package/dist/features/media/messages/en.json +67 -67
  80. package/dist/features/orders/components/YourPurchaseStrip.d.ts +24 -0
  81. package/dist/features/orders/components/YourPurchaseStrip.js +77 -0
  82. package/dist/features/orders/components/index.d.ts +2 -1
  83. package/dist/features/orders/components/index.js +1 -1
  84. package/dist/features/orders/utils/order-announcement-message.d.ts +18 -0
  85. package/dist/features/orders/utils/order-announcement-message.js +16 -0
  86. package/dist/features/orders/utils/payment-proof-message.d.ts +20 -0
  87. package/dist/features/orders/utils/payment-proof-message.js +17 -0
  88. package/dist/features/parts/schemas/firestore.d.ts +227 -0
  89. package/dist/features/parts/schemas/firestore.js +6 -6
  90. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +11 -1
  91. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +10 -3
  92. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +8 -7
  93. package/dist/features/price-index/components/PriceIndexToolView.d.ts +21 -0
  94. package/dist/features/price-index/components/PriceIndexToolView.js +230 -27
  95. package/dist/features/price-index/lookup-target.d.ts +48 -0
  96. package/dist/features/price-index/lookup-target.js +107 -0
  97. package/dist/features/products/api/[id]/route.js +8 -1
  98. package/dist/features/products/api/route.js +16 -4
  99. package/dist/features/products/components/AvailabilityScopeHint.d.ts +22 -0
  100. package/dist/features/products/components/AvailabilityScopeHint.js +27 -0
  101. package/dist/features/products/components/CompareOverlay.d.ts +2 -1
  102. package/dist/features/products/components/CompareOverlay.js +2 -1
  103. package/dist/features/products/components/GroupSettingsPanel.js +2 -1
  104. package/dist/features/products/components/InteractiveProductCard.d.ts +7 -1
  105. package/dist/features/products/components/InteractiveProductCard.js +16 -4
  106. package/dist/features/products/components/MarketplaceBundleCard.d.ts +11 -1
  107. package/dist/features/products/components/MarketplaceBundleCard.js +9 -2
  108. package/dist/features/products/components/MarketplacePrizeDrawCard.d.ts +11 -1
  109. package/dist/features/products/components/MarketplacePrizeDrawCard.js +9 -2
  110. package/dist/features/products/components/ProductDetailPageView.js +34 -4
  111. package/dist/features/products/components/ProductGrid.d.ts +14 -1
  112. package/dist/features/products/components/ProductGrid.js +22 -5
  113. package/dist/features/products/components/ProductsIndexListing.js +2 -2
  114. package/dist/features/products/components/SublistingCarouselSection.js +2 -1
  115. package/dist/features/products/repository/products.repository.d.ts +1 -0
  116. package/dist/features/products/repository/products.repository.js +5 -1
  117. package/dist/features/products/utils/group-member-image.d.ts +9 -2
  118. package/dist/features/products/utils/group-member-image.js +2 -1
  119. package/dist/features/reviews/api/[id]/route.js +83 -23
  120. package/dist/features/reviews/components/PurchaseReviewAffordance.d.ts +6 -0
  121. package/dist/features/reviews/components/PurchaseReviewAffordance.js +42 -0
  122. package/dist/features/reviews/components/ReviewFormDrawer.d.ts +34 -0
  123. package/dist/features/reviews/components/ReviewFormDrawer.js +127 -0
  124. package/dist/features/reviews/components/index.d.ts +4 -0
  125. package/dist/features/reviews/components/index.js +2 -0
  126. package/dist/features/seller/actions/seller-actions.d.ts +1 -1
  127. package/dist/features/seller/actions/seller-actions.js +49 -3
  128. package/dist/features/seller/components/SellerPayoutSettingsView.js +30 -2
  129. package/dist/features/seller/components/SellerProductShell.d.ts +17 -1
  130. package/dist/features/seller/components/SellerProductsView.js +3 -2
  131. package/dist/features/seller/hooks/useStoreListingEntitlements.d.ts +8 -0
  132. package/dist/features/seller/hooks/useStoreListingEntitlements.js +70 -0
  133. package/dist/features/stores/components/InteractiveStoreCard.d.ts +11 -1
  134. package/dist/features/stores/components/InteractiveStoreCard.js +9 -2
  135. package/dist/features/stores/components/StoreAuctionsListing.js +2 -1
  136. package/dist/features/stores/components/index.d.ts +0 -2
  137. package/dist/features/stores/components/index.js +0 -1
  138. package/dist/features/stores/schemas/index.d.ts +1 -1
  139. package/dist/features/stores/schemas/index.js +10 -1
  140. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +114 -2
  141. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +415 -0
  142. package/dist/index.d.ts +8 -27
  143. package/dist/index.js +14 -35
  144. package/dist/next/routing/route-map.d.ts +2 -0
  145. package/dist/next/routing/route-map.js +9 -0
  146. package/dist/providers/shipping-shiprocket/index.d.ts +98 -0
  147. package/dist/providers/shipping-shiprocket/index.js +353 -0
  148. package/dist/schemas/registry.d.ts +2 -2
  149. package/dist/security/csp.d.ts +16 -1
  150. package/dist/security/csp.js +5 -3
  151. package/dist/seed/_helpers/category-forest.js +27 -0
  152. package/dist/seed/_helpers/category-parts-glossary-map.js +1816 -86
  153. package/dist/seed/_helpers/category-parts.d.ts +1 -1
  154. package/dist/seed/_helpers/category-parts.js +13412 -3020
  155. package/dist/seed/categories-seed-data.js +48 -6
  156. package/dist/seed/homepage-sections-seed-data.js +41 -28
  157. package/dist/seed/model-composition-seed-data.js +6 -8
  158. package/dist/seed/part-glossary/chunk0.d.ts +9 -0
  159. package/dist/seed/part-glossary/chunk0.js +35044 -0
  160. package/dist/seed/part-glossary/chunk1.d.ts +9 -0
  161. package/dist/seed/part-glossary/chunk1.js +39955 -0
  162. package/dist/seed/part-glossary/chunk2.d.ts +9 -0
  163. package/dist/seed/part-glossary/chunk2.js +50335 -0
  164. package/dist/seed/part-glossary/chunk3.d.ts +9 -0
  165. package/dist/seed/part-glossary/chunk3.js +52386 -0
  166. package/dist/seed/part-glossary/chunk4.d.ts +9 -0
  167. package/dist/seed/part-glossary/chunk4.js +50549 -0
  168. package/dist/seed/part-glossary-seed-data.d.ts +1 -1
  169. package/dist/seed/part-glossary-seed-data.js +23 -47483
  170. package/dist/seed/products-beyblade-x-seed-data.js +36 -1
  171. package/dist/server.d.ts +6 -8
  172. package/dist/server.js +16 -20
  173. package/dist/styles.css +516 -358
  174. package/dist/tailwind-utilities.css +1 -1
  175. package/dist/tokens/themes/index.d.ts +3 -1
  176. package/dist/tokens/themes/index.js +11 -1
  177. package/dist/tokens/themes/technical-dark.d.ts +30 -0
  178. package/dist/tokens/themes/technical-dark.js +103 -0
  179. package/dist/tokens/themes/technical-light.d.ts +22 -0
  180. package/dist/tokens/themes/technical-light.js +89 -0
  181. package/dist/tokens/tokens.css +155 -0
  182. package/dist/ui/components/GatedPrice.js +30 -3
  183. package/dist/ui/components/GatedPrice.style.css +22 -19
  184. package/dist/ui/components/QuickCreateModal.style.css +78 -78
  185. package/dist/ui/forms/FormShell.style.css +260 -260
  186. package/package.json +1 -1
  187. package/scripts/seed-cli.mjs +133 -27
  188. package/dist/_internal/server/jobs/core/whatsappCatalogImport.d.ts +0 -27
  189. package/dist/_internal/server/jobs/core/whatsappCatalogImport.js +0 -172
  190. package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +0 -35
  191. package/dist/_internal/server/jobs/core/whatsappNotify.js +0 -140
  192. package/dist/features/admin/components/AdminWhatsAppGuideView.d.ts +0 -2
  193. package/dist/features/admin/components/AdminWhatsAppGuideView.js +0 -35
  194. package/dist/features/orders/components/MarketplaceOrderCard.d.ts +0 -36
  195. package/dist/features/orders/components/MarketplaceOrderCard.js +0 -57
  196. package/dist/features/stores/components/StoreWhatsAppGuideView.d.ts +0 -3
  197. package/dist/features/stores/components/StoreWhatsAppGuideView.js +0 -12
  198. package/dist/features/whatsapp-bot/api/send-status/route.d.ts +0 -12
  199. package/dist/features/whatsapp-bot/api/send-status/route.js +0 -38
  200. package/dist/features/whatsapp-bot/api/webhook/route.d.ts +0 -12
  201. package/dist/features/whatsapp-bot/api/webhook/route.js +0 -43
  202. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +0 -6
  203. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +0 -270
  204. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +0 -9
  205. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +0 -7
  206. package/dist/features/whatsapp-bot/components/index.d.ts +0 -3
  207. package/dist/features/whatsapp-bot/components/index.js +0 -2
  208. package/dist/features/whatsapp-bot/helpers/payment-proof-message.d.ts +0 -14
  209. package/dist/features/whatsapp-bot/helpers/payment-proof-message.js +0 -17
  210. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +0 -52
  211. package/dist/features/whatsapp-bot/helpers/whatsapp.js +0 -283
  212. package/dist/features/whatsapp-bot/index.d.ts +0 -3
  213. package/dist/features/whatsapp-bot/index.js +0 -3
  214. package/dist/features/whatsapp-bot/manifest.d.ts +0 -2
  215. package/dist/features/whatsapp-bot/manifest.js +0 -13
  216. package/dist/features/whatsapp-bot/messages/en.json +0 -7
  217. package/dist/features/whatsapp-bot/server.d.ts +0 -7
  218. package/dist/features/whatsapp-bot/server.js +0 -7
  219. package/dist/features/whatsapp-bot/types/index.d.ts +0 -126
  220. package/dist/features/whatsapp-bot/types/index.js +0 -1
@@ -1,78 +1,78 @@
1
- .appkit-quick-create-modal {
2
- position: fixed;
3
- inset: 0;
4
- z-index: var(--appkit-z-modal, 1000);
5
- display: flex;
6
- align-items: stretch;
7
- justify-content: center;
8
- }
9
-
10
- .appkit-quick-create-modal__backdrop {
11
- position: absolute;
12
- inset: 0;
13
- background: rgb(0 0 0 / 0.45);
14
- }
15
-
16
- .appkit-quick-create-modal__panel {
17
- position: relative;
18
- display: flex;
19
- flex-direction: column;
20
- background: var(--appkit-color-surface, #ffffff);
21
- color: var(--appkit-color-foreground, inherit);
22
- width: 100%;
23
- max-width: 560px;
24
- margin: auto;
25
- max-height: 92vh;
26
- border-radius: 0.75rem;
27
- box-shadow: var(--appkit-shadow-lg, 0 20px 40px rgb(0 0 0 / 0.25));
28
- outline: none;
29
- }
30
-
31
- .appkit-quick-create-modal__header {
32
- display: flex;
33
- align-items: center;
34
- justify-content: space-between;
35
- padding: 1rem 1.25rem;
36
- border-bottom: 1px solid var(--appkit-color-border, rgb(0 0 0 / 0.1));
37
- }
38
-
39
- .appkit-quick-create-modal__title {
40
- margin: 0;
41
- font-size: 1.125rem;
42
- font-weight: 600;
43
- }
44
-
45
- .appkit-quick-create-modal__body {
46
- flex: 1 1 auto;
47
- overflow-y: auto;
48
- padding: 1.25rem;
49
- }
50
-
51
- /* Chrome only — layout comes from ActionRow. Re-adding `display: flex` or
52
- `justify-content` here would fight the row this class now decorates. */
53
- .appkit-quick-create-modal__footer {
54
- padding: 1rem 1.25rem;
55
- border-top: 1px solid var(--appkit-color-border, rgb(0 0 0 / 0.1));
56
- }
57
-
58
- .appkit-quick-create-modal__full-link {
59
- font-size: 0.875rem;
60
- color: var(--appkit-color-primary, #6366f1);
61
- text-decoration: underline;
62
- }
63
-
64
- @media (max-width: 640px) {
65
- .appkit-quick-create-modal {
66
- align-items: flex-end;
67
- }
68
- .appkit-quick-create-modal__panel {
69
- max-width: 100%;
70
- margin: 0;
71
- border-radius: 0.75rem 0.75rem 0 0;
72
- max-height: 92vh;
73
- }
74
- }
75
-
76
- [data-theme="default-dark"] .appkit-quick-create-modal__panel {
77
- background: var(--appkit-color-surface-dark, #1e293b);
78
- }
1
+ .appkit-quick-create-modal {
2
+ position: fixed;
3
+ inset: 0;
4
+ z-index: var(--appkit-z-modal, 1000);
5
+ display: flex;
6
+ align-items: stretch;
7
+ justify-content: center;
8
+ }
9
+
10
+ .appkit-quick-create-modal__backdrop {
11
+ position: absolute;
12
+ inset: 0;
13
+ background: rgb(0 0 0 / 0.45);
14
+ }
15
+
16
+ .appkit-quick-create-modal__panel {
17
+ position: relative;
18
+ display: flex;
19
+ flex-direction: column;
20
+ background: var(--appkit-color-surface, #ffffff);
21
+ color: var(--appkit-color-foreground, inherit);
22
+ width: 100%;
23
+ max-width: 560px;
24
+ margin: auto;
25
+ max-height: 92vh;
26
+ border-radius: 0.75rem;
27
+ box-shadow: var(--appkit-shadow-lg, 0 20px 40px rgb(0 0 0 / 0.25));
28
+ outline: none;
29
+ }
30
+
31
+ .appkit-quick-create-modal__header {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: space-between;
35
+ padding: 1rem 1.25rem;
36
+ border-bottom: 1px solid var(--appkit-color-border, rgb(0 0 0 / 0.1));
37
+ }
38
+
39
+ .appkit-quick-create-modal__title {
40
+ margin: 0;
41
+ font-size: 1.125rem;
42
+ font-weight: 600;
43
+ }
44
+
45
+ .appkit-quick-create-modal__body {
46
+ flex: 1 1 auto;
47
+ overflow-y: auto;
48
+ padding: 1.25rem;
49
+ }
50
+
51
+ /* Chrome only — layout comes from ActionRow. Re-adding `display: flex` or
52
+ `justify-content` here would fight the row this class now decorates. */
53
+ .appkit-quick-create-modal__footer {
54
+ padding: 1rem 1.25rem;
55
+ border-top: 1px solid var(--appkit-color-border, rgb(0 0 0 / 0.1));
56
+ }
57
+
58
+ .appkit-quick-create-modal__full-link {
59
+ font-size: 0.875rem;
60
+ color: var(--appkit-color-primary, #6366f1);
61
+ text-decoration: underline;
62
+ }
63
+
64
+ @media (max-width: 640px) {
65
+ .appkit-quick-create-modal {
66
+ align-items: flex-end;
67
+ }
68
+ .appkit-quick-create-modal__panel {
69
+ max-width: 100%;
70
+ margin: 0;
71
+ border-radius: 0.75rem 0.75rem 0 0;
72
+ max-height: 92vh;
73
+ }
74
+ }
75
+
76
+ [data-theme="default-dark"] .appkit-quick-create-modal__panel {
77
+ background: var(--appkit-color-surface-dark, #1e293b);
78
+ }
@@ -1,260 +1,260 @@
1
- /* ─── FormShell ─────────────────────────────────────────────────────────────── */
2
-
3
- .appkit-formshell {
4
- display: flex;
5
- flex-direction: column;
6
- gap: var(--appkit-spacing-6, 1.5rem);
7
- }
8
-
9
- /* Header */
10
- .appkit-formshell__header {
11
- display: flex;
12
- flex-direction: column;
13
- gap: var(--appkit-spacing-4, 1rem);
14
- }
15
-
16
- .appkit-formshell__title {
17
- font-size: var(--appkit-font-size-lg, 1.125rem);
18
- font-weight: 600;
19
- color: var(--appkit-color-text-primary);
20
- }
21
-
22
- /* ─── Step Indicator ──────────────────────────────────────────────────────── */
23
-
24
- .appkit-formshell__step-indicator {
25
- display: flex;
26
- flex-wrap: wrap;
27
- gap: var(--appkit-spacing-1, 0.25rem);
28
- border-bottom: 1px solid var(--appkit-color-border);
29
- padding-bottom: var(--appkit-spacing-3, 0.75rem);
30
- }
31
-
32
- .appkit-formshell__step-btn {
33
- display: flex;
34
- align-items: center;
35
- gap: var(--appkit-spacing-2, 0.5rem);
36
- padding: var(--appkit-spacing-1-5, 0.375rem) var(--appkit-spacing-3, 0.75rem);
37
- border-radius: var(--appkit-radius-md, 0.375rem);
38
- background: transparent;
39
- border: 1px solid transparent;
40
- color: var(--appkit-color-text-secondary);
41
- cursor: pointer;
42
- font-size: var(--appkit-font-size-sm, 0.875rem);
43
- transition: background 0.15s, border-color 0.15s, color 0.15s;
44
- }
45
-
46
- .appkit-formshell__step-btn:hover {
47
- background: var(--appkit-color-surface-hover);
48
- border-color: var(--appkit-color-border);
49
- }
50
-
51
- .appkit-formshell__step-btn--active {
52
- background: var(--appkit-color-primary-subtle, rgb(from var(--appkit-color-primary) r g b / 0.1));
53
- border-color: var(--appkit-color-primary);
54
- color: var(--appkit-color-primary);
55
- font-weight: 500;
56
- }
57
-
58
- .appkit-formshell__step-btn--error {
59
- color: var(--appkit-color-error, #dc2626);
60
- border-color: var(--appkit-color-error, #dc2626);
61
- }
62
-
63
- .appkit-formshell__step-dot {
64
- position: relative;
65
- display: flex;
66
- align-items: center;
67
- justify-content: center;
68
- width: 1.5rem;
69
- height: 1.5rem;
70
- border-radius: 9999px;
71
- background: var(--appkit-color-surface-secondary);
72
- font-size: var(--appkit-font-size-xs, 0.75rem);
73
- font-weight: 600;
74
- flex-shrink: 0;
75
- }
76
-
77
- .appkit-formshell__step-btn--active .appkit-formshell__step-dot {
78
- background: var(--appkit-color-primary);
79
- color: #fff;
80
- }
81
-
82
- .appkit-formshell__step-btn--error .appkit-formshell__step-dot {
83
- background: var(--appkit-color-error, #dc2626);
84
- color: #fff;
85
- }
86
-
87
- /* Red dot badge on step dot */
88
- .appkit-formshell__step-error-badge {
89
- position: absolute;
90
- top: -3px;
91
- right: -3px;
92
- width: 8px;
93
- height: 8px;
94
- border-radius: 9999px;
95
- background: var(--appkit-color-error, #dc2626);
96
- border: 2px solid var(--appkit-color-surface);
97
- }
98
-
99
- /* Inline error count badge (accordion header) */
100
- .appkit-formshell__step-error-badge--inline {
101
- position: static;
102
- width: auto;
103
- height: auto;
104
- border-radius: var(--appkit-radius-full, 9999px);
105
- padding: 0 0.375rem;
106
- font-size: var(--appkit-font-size-xs, 0.75rem);
107
- font-weight: 600;
108
- color: #fff;
109
- line-height: 1.4;
110
- border: none;
111
- }
112
-
113
- .appkit-formshell__step-label {
114
- display: none;
115
- }
116
-
117
- @media (min-width: 640px) {
118
- .appkit-formshell__step-label {
119
- display: inline;
120
- }
121
- }
122
-
123
- /* ─── Error Summary ───────────────────────────────────────────────────────── */
124
-
125
- .appkit-formshell__error-summary {
126
- border: 1px solid var(--appkit-color-error, #dc2626);
127
- border-radius: var(--appkit-radius-md, 0.375rem);
128
- padding: var(--appkit-spacing-3, 0.75rem);
129
- background: rgb(from var(--appkit-color-error, #dc2626) r g b / 0.05);
130
- }
131
-
132
- .appkit-formshell__error-summary__title {
133
- font-weight: 600;
134
- margin-bottom: var(--appkit-spacing-2, 0.5rem);
135
- }
136
-
137
- .appkit-formshell__error-summary__list {
138
- list-style: disc;
139
- padding-left: 1.25rem;
140
- display: flex;
141
- flex-direction: column;
142
- gap: var(--appkit-spacing-1, 0.25rem);
143
- }
144
-
145
- .appkit-formshell__error-summary__step-link {
146
- background: none;
147
- border: none;
148
- padding: 0;
149
- margin: 0;
150
- font: inherit;
151
- color: inherit;
152
- text-align: left;
153
- cursor: pointer;
154
- text-decoration: underline;
155
- text-underline-offset: 2px;
156
- }
157
-
158
- .appkit-formshell__error-summary__step-link:hover {
159
- color: var(--appkit-color-error, #dc2626);
160
- }
161
-
162
- /* ─── Body + Steps ───────────────────────────────────────────────────────── */
163
-
164
- .appkit-formshell__body {
165
- flex: 1;
166
- /* Ensure body content is not hidden under the sticky footer. The footer is
167
- ~56px tall; add generous padding so the last field is always reachable. */
168
- padding-bottom: 5rem;
169
- }
170
-
171
- .appkit-formshell__steps {
172
- display: flex;
173
- flex-direction: column;
174
- gap: var(--appkit-spacing-1, 0.25rem);
175
- }
176
-
177
- .appkit-formshell__step {
178
- border: 1px solid var(--appkit-color-border);
179
- border-radius: var(--appkit-radius-md, 0.375rem);
180
- overflow: hidden;
181
- }
182
-
183
- .appkit-formshell__step--active {
184
- border-color: var(--appkit-color-primary);
185
- }
186
-
187
- .appkit-formshell__step--error {
188
- border-color: var(--appkit-color-error, #dc2626);
189
- }
190
-
191
- /* Mobile accordion button — hidden on lg+ (step indicator handles navigation) */
192
- .appkit-formshell__step-accordion-btn {
193
- display: flex;
194
- align-items: center;
195
- justify-content: space-between;
196
- width: 100%;
197
- padding: var(--appkit-spacing-3, 0.75rem) var(--appkit-spacing-4, 1rem);
198
- background: var(--appkit-color-surface-secondary);
199
- border: none;
200
- cursor: pointer;
201
- font-size: var(--appkit-font-size-sm, 0.875rem);
202
- font-weight: 500;
203
- color: var(--appkit-color-text-primary);
204
- text-align: left;
205
- }
206
-
207
- .appkit-formshell__step-accordion-label {
208
- flex: 1;
209
- }
210
-
211
- /* On lg+ the accordion controls are purely decorative; the step indicator drives navigation */
212
- @media (min-width: 1024px) {
213
- .appkit-formshell--accordion-mobile .appkit-formshell__step-accordion-btn {
214
- display: none;
215
- }
216
-
217
- .appkit-formshell--accordion-mobile .appkit-formshell__step [hidden] {
218
- display: block !important;
219
- }
220
-
221
- .appkit-formshell--accordion-mobile .appkit-formshell__step-content {
222
- display: block !important;
223
- }
224
- }
225
-
226
- .appkit-formshell__step-content {
227
- padding: 0.75rem 1.25rem;
228
- }
229
-
230
- @media (max-width: 639px) {
231
- .appkit-formshell__step-content {
232
- padding: 0.5rem 0.875rem;
233
- }
234
- }
235
- /* --- Footer --------------------------------------------------------------- */
236
-
237
- /*
238
- * `.appkit-formshell__footer`, `__step-nav` and `__actions` were deleted here:
239
- * `ui/forms/FormShell.tsx` is context/state only and renders no footer JSX, so
240
- * nothing had referenced them for a long time. The real form footer lives in
241
- * `features/shell/FormShell.tsx` and is an ActionRow now.
242
- *
243
- * Worth recording: this dead block held the ONLY `flex-wrap: wrap` on any
244
- * action row in the codebase. Every live footer had lost it.
245
- */
246
-
247
- /* ─── Dark mode ──────────────────────────────────────────────────────────── */
248
-
249
- .dark .appkit-formshell__title {
250
- color: var(--appkit-color-text-primary-dark, inherit);
251
- }
252
-
253
- .dark .appkit-formshell__step-accordion-btn {
254
- background: var(--appkit-color-surface-secondary-dark, var(--appkit-color-surface-secondary));
255
- color: var(--appkit-color-text-primary-dark, inherit);
256
- }
257
-
258
- .dark .appkit-formshell__error-summary {
259
- background: rgb(from var(--appkit-color-error, #dc2626) r g b / 0.1);
260
- }
1
+ /* ─── FormShell ─────────────────────────────────────────────────────────────── */
2
+
3
+ .appkit-formshell {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--appkit-spacing-6, 1.5rem);
7
+ }
8
+
9
+ /* Header */
10
+ .appkit-formshell__header {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--appkit-spacing-4, 1rem);
14
+ }
15
+
16
+ .appkit-formshell__title {
17
+ font-size: var(--appkit-font-size-lg, 1.125rem);
18
+ font-weight: 600;
19
+ color: var(--appkit-color-text-primary);
20
+ }
21
+
22
+ /* ─── Step Indicator ──────────────────────────────────────────────────────── */
23
+
24
+ .appkit-formshell__step-indicator {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ gap: var(--appkit-spacing-1, 0.25rem);
28
+ border-bottom: 1px solid var(--appkit-color-border);
29
+ padding-bottom: var(--appkit-spacing-3, 0.75rem);
30
+ }
31
+
32
+ .appkit-formshell__step-btn {
33
+ display: flex;
34
+ align-items: center;
35
+ gap: var(--appkit-spacing-2, 0.5rem);
36
+ padding: var(--appkit-spacing-1-5, 0.375rem) var(--appkit-spacing-3, 0.75rem);
37
+ border-radius: var(--appkit-radius-md, 0.375rem);
38
+ background: transparent;
39
+ border: 1px solid transparent;
40
+ color: var(--appkit-color-text-secondary);
41
+ cursor: pointer;
42
+ font-size: var(--appkit-font-size-sm, 0.875rem);
43
+ transition: background 0.15s, border-color 0.15s, color 0.15s;
44
+ }
45
+
46
+ .appkit-formshell__step-btn:hover {
47
+ background: var(--appkit-color-surface-hover);
48
+ border-color: var(--appkit-color-border);
49
+ }
50
+
51
+ .appkit-formshell__step-btn--active {
52
+ background: var(--appkit-color-primary-subtle, rgb(from var(--appkit-color-primary) r g b / 0.1));
53
+ border-color: var(--appkit-color-primary);
54
+ color: var(--appkit-color-primary);
55
+ font-weight: 500;
56
+ }
57
+
58
+ .appkit-formshell__step-btn--error {
59
+ color: var(--appkit-color-error, #dc2626);
60
+ border-color: var(--appkit-color-error, #dc2626);
61
+ }
62
+
63
+ .appkit-formshell__step-dot {
64
+ position: relative;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ width: 1.5rem;
69
+ height: 1.5rem;
70
+ border-radius: 9999px;
71
+ background: var(--appkit-color-surface-secondary);
72
+ font-size: var(--appkit-font-size-xs, 0.75rem);
73
+ font-weight: 600;
74
+ flex-shrink: 0;
75
+ }
76
+
77
+ .appkit-formshell__step-btn--active .appkit-formshell__step-dot {
78
+ background: var(--appkit-color-primary);
79
+ color: #fff;
80
+ }
81
+
82
+ .appkit-formshell__step-btn--error .appkit-formshell__step-dot {
83
+ background: var(--appkit-color-error, #dc2626);
84
+ color: #fff;
85
+ }
86
+
87
+ /* Red dot badge on step dot */
88
+ .appkit-formshell__step-error-badge {
89
+ position: absolute;
90
+ top: -3px;
91
+ right: -3px;
92
+ width: 8px;
93
+ height: 8px;
94
+ border-radius: 9999px;
95
+ background: var(--appkit-color-error, #dc2626);
96
+ border: 2px solid var(--appkit-color-surface);
97
+ }
98
+
99
+ /* Inline error count badge (accordion header) */
100
+ .appkit-formshell__step-error-badge--inline {
101
+ position: static;
102
+ width: auto;
103
+ height: auto;
104
+ border-radius: var(--appkit-radius-full, 9999px);
105
+ padding: 0 0.375rem;
106
+ font-size: var(--appkit-font-size-xs, 0.75rem);
107
+ font-weight: 600;
108
+ color: #fff;
109
+ line-height: 1.4;
110
+ border: none;
111
+ }
112
+
113
+ .appkit-formshell__step-label {
114
+ display: none;
115
+ }
116
+
117
+ @media (min-width: 640px) {
118
+ .appkit-formshell__step-label {
119
+ display: inline;
120
+ }
121
+ }
122
+
123
+ /* ─── Error Summary ───────────────────────────────────────────────────────── */
124
+
125
+ .appkit-formshell__error-summary {
126
+ border: 1px solid var(--appkit-color-error, #dc2626);
127
+ border-radius: var(--appkit-radius-md, 0.375rem);
128
+ padding: var(--appkit-spacing-3, 0.75rem);
129
+ background: rgb(from var(--appkit-color-error, #dc2626) r g b / 0.05);
130
+ }
131
+
132
+ .appkit-formshell__error-summary__title {
133
+ font-weight: 600;
134
+ margin-bottom: var(--appkit-spacing-2, 0.5rem);
135
+ }
136
+
137
+ .appkit-formshell__error-summary__list {
138
+ list-style: disc;
139
+ padding-left: 1.25rem;
140
+ display: flex;
141
+ flex-direction: column;
142
+ gap: var(--appkit-spacing-1, 0.25rem);
143
+ }
144
+
145
+ .appkit-formshell__error-summary__step-link {
146
+ background: none;
147
+ border: none;
148
+ padding: 0;
149
+ margin: 0;
150
+ font: inherit;
151
+ color: inherit;
152
+ text-align: left;
153
+ cursor: pointer;
154
+ text-decoration: underline;
155
+ text-underline-offset: 2px;
156
+ }
157
+
158
+ .appkit-formshell__error-summary__step-link:hover {
159
+ color: var(--appkit-color-error, #dc2626);
160
+ }
161
+
162
+ /* ─── Body + Steps ───────────────────────────────────────────────────────── */
163
+
164
+ .appkit-formshell__body {
165
+ flex: 1;
166
+ /* Ensure body content is not hidden under the sticky footer. The footer is
167
+ ~56px tall; add generous padding so the last field is always reachable. */
168
+ padding-bottom: 5rem;
169
+ }
170
+
171
+ .appkit-formshell__steps {
172
+ display: flex;
173
+ flex-direction: column;
174
+ gap: var(--appkit-spacing-1, 0.25rem);
175
+ }
176
+
177
+ .appkit-formshell__step {
178
+ border: 1px solid var(--appkit-color-border);
179
+ border-radius: var(--appkit-radius-md, 0.375rem);
180
+ overflow: hidden;
181
+ }
182
+
183
+ .appkit-formshell__step--active {
184
+ border-color: var(--appkit-color-primary);
185
+ }
186
+
187
+ .appkit-formshell__step--error {
188
+ border-color: var(--appkit-color-error, #dc2626);
189
+ }
190
+
191
+ /* Mobile accordion button — hidden on lg+ (step indicator handles navigation) */
192
+ .appkit-formshell__step-accordion-btn {
193
+ display: flex;
194
+ align-items: center;
195
+ justify-content: space-between;
196
+ width: 100%;
197
+ padding: var(--appkit-spacing-3, 0.75rem) var(--appkit-spacing-4, 1rem);
198
+ background: var(--appkit-color-surface-secondary);
199
+ border: none;
200
+ cursor: pointer;
201
+ font-size: var(--appkit-font-size-sm, 0.875rem);
202
+ font-weight: 500;
203
+ color: var(--appkit-color-text-primary);
204
+ text-align: left;
205
+ }
206
+
207
+ .appkit-formshell__step-accordion-label {
208
+ flex: 1;
209
+ }
210
+
211
+ /* On lg+ the accordion controls are purely decorative; the step indicator drives navigation */
212
+ @media (min-width: 1024px) {
213
+ .appkit-formshell--accordion-mobile .appkit-formshell__step-accordion-btn {
214
+ display: none;
215
+ }
216
+
217
+ .appkit-formshell--accordion-mobile .appkit-formshell__step [hidden] {
218
+ display: block !important;
219
+ }
220
+
221
+ .appkit-formshell--accordion-mobile .appkit-formshell__step-content {
222
+ display: block !important;
223
+ }
224
+ }
225
+
226
+ .appkit-formshell__step-content {
227
+ padding: 0.75rem 1.25rem;
228
+ }
229
+
230
+ @media (max-width: 639px) {
231
+ .appkit-formshell__step-content {
232
+ padding: 0.5rem 0.875rem;
233
+ }
234
+ }
235
+ /* --- Footer --------------------------------------------------------------- */
236
+
237
+ /*
238
+ * `.appkit-formshell__footer`, `__step-nav` and `__actions` were deleted here:
239
+ * `ui/forms/FormShell.tsx` is context/state only and renders no footer JSX, so
240
+ * nothing had referenced them for a long time. The real form footer lives in
241
+ * `features/shell/FormShell.tsx` and is an ActionRow now.
242
+ *
243
+ * Worth recording: this dead block held the ONLY `flex-wrap: wrap` on any
244
+ * action row in the codebase. Every live footer had lost it.
245
+ */
246
+
247
+ /* ─── Dark mode ──────────────────────────────────────────────────────────── */
248
+
249
+ .dark .appkit-formshell__title {
250
+ color: var(--appkit-color-text-primary-dark, inherit);
251
+ }
252
+
253
+ .dark .appkit-formshell__step-accordion-btn {
254
+ background: var(--appkit-color-surface-secondary-dark, var(--appkit-color-surface-secondary));
255
+ color: var(--appkit-color-text-primary-dark, inherit);
256
+ }
257
+
258
+ .dark .appkit-formshell__error-summary {
259
+ background: rgb(from var(--appkit-color-error, #dc2626) r g b / 0.1);
260
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "4.53.1",
3
+ "version": "4.54.0-next.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"