@mohasinac/appkit 3.7.0 → 3.8.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 (40) hide show
  1. package/dist/_internal/server/features/categories/data.js +2 -2
  2. package/dist/_internal/shared/actions/action-registry.js +8 -0
  3. package/dist/constants/api-endpoints.d.ts +3 -0
  4. package/dist/constants/api-endpoints.js +1 -0
  5. package/dist/features/admin/components/AdminBidsView.js +6 -6
  6. package/dist/features/admin/components/AdminBrandsView.js +2 -2
  7. package/dist/features/admin/components/AdminPrizeDrawsView.js +3 -3
  8. package/dist/features/admin/components/AdminReviewsView.js +5 -5
  9. package/dist/features/admin/components/AdminSublistingCategoriesView.js +1 -1
  10. package/dist/features/auth/repository/session.repository.d.ts +2 -0
  11. package/dist/features/auth/repository/session.repository.js +4 -1
  12. package/dist/features/categories/api/route.js +2 -2
  13. package/dist/features/categories/components/CategoriesIndexListing.js +1 -1
  14. package/dist/features/events/repository/event-entry.repository.js +1 -0
  15. package/dist/features/events/schemas/firestore.d.ts +3 -1
  16. package/dist/features/events/schemas/firestore.js +1 -0
  17. package/dist/features/layout/BottomNavbar.js +1 -1
  18. package/dist/features/layout/NavItem.js +1 -1
  19. package/dist/features/layout/NavbarLayout.js +2 -2
  20. package/dist/features/products/constants/sieve.d.ts +0 -6
  21. package/dist/features/products/constants/sieve.js +4 -2
  22. package/dist/features/products/repository/products.repository.d.ts +20 -0
  23. package/dist/features/products/repository/products.repository.js +5 -0
  24. package/dist/features/promotions/components/CouponsIndexListing.js +16 -3
  25. package/dist/features/search/hooks/useNavSuggestions.js +20 -1
  26. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  27. package/dist/features/stores/components/StoreDetailLayoutView.js +1 -1
  28. package/dist/features/stores/repository/store.repository.js +3 -0
  29. package/dist/features/tester/components/AdminTesterFeedbackView.js +22 -2
  30. package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +8 -0
  31. package/dist/features/tester/repository/tester-checklist-response.repository.js +98 -0
  32. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +1 -1
  33. package/dist/seed/bids-seed-data.js +63 -184
  34. package/dist/styles.css +19 -19
  35. package/dist/tailwind-utilities.css +1 -1
  36. package/dist/tokens/themes/default-dark.js +9 -9
  37. package/dist/tokens/themes/default-light.js +9 -9
  38. package/dist/tokens/tokens.css +18 -18
  39. package/dist/ui/components/ListingToolbar.js +1 -1
  40. package/package.json +1 -1
@@ -82,15 +82,15 @@ export const DEFAULT_DARK_THEME = {
82
82
  "appkit-space-20": "5rem",
83
83
  "appkit-space-24": "6rem",
84
84
  "appkit-text-2xs": "0.625rem",
85
- "appkit-text-xs": "0.75rem",
86
- "appkit-text-sm": "0.875rem",
87
- "appkit-text-base": "1rem",
88
- "appkit-text-lg": "1.125rem",
89
- "appkit-text-xl": "1.25rem",
90
- "appkit-text-2xl": "1.5rem",
91
- "appkit-text-3xl": "1.875rem",
92
- "appkit-text-4xl": "2.25rem",
93
- "appkit-text-5xl": "3rem",
85
+ "appkit-text-xs": "0.6875rem",
86
+ "appkit-text-sm": "0.8125rem",
87
+ "appkit-text-base": "0.9375rem",
88
+ "appkit-text-lg": "1rem",
89
+ "appkit-text-xl": "1.125rem",
90
+ "appkit-text-2xl": "1.375rem",
91
+ "appkit-text-3xl": "1.625rem",
92
+ "appkit-text-4xl": "1.875rem",
93
+ "appkit-text-5xl": "2.5rem",
94
94
  },
95
95
  gradients: {
96
96
  brand: "linear-gradient(to right, var(--appkit-color-primary), var(--appkit-color-secondary))",
@@ -89,15 +89,15 @@ export const DEFAULT_LIGHT_THEME = {
89
89
  "appkit-space-20": "5rem",
90
90
  "appkit-space-24": "6rem",
91
91
  "appkit-text-2xs": "0.625rem",
92
- "appkit-text-xs": "0.75rem",
93
- "appkit-text-sm": "0.875rem",
94
- "appkit-text-base": "1rem",
95
- "appkit-text-lg": "1.125rem",
96
- "appkit-text-xl": "1.25rem",
97
- "appkit-text-2xl": "1.5rem",
98
- "appkit-text-3xl": "1.875rem",
99
- "appkit-text-4xl": "2.25rem",
100
- "appkit-text-5xl": "3rem",
92
+ "appkit-text-xs": "0.6875rem",
93
+ "appkit-text-sm": "0.8125rem",
94
+ "appkit-text-base": "0.9375rem",
95
+ "appkit-text-lg": "1rem",
96
+ "appkit-text-xl": "1.125rem",
97
+ "appkit-text-2xl": "1.375rem",
98
+ "appkit-text-3xl": "1.625rem",
99
+ "appkit-text-4xl": "1.875rem",
100
+ "appkit-text-5xl": "2.5rem",
101
101
  },
102
102
  gradients: {
103
103
  brand: "linear-gradient(to right, var(--appkit-color-primary), var(--appkit-color-secondary))",
@@ -429,15 +429,15 @@
429
429
  --appkit-space-24: 6rem;
430
430
 
431
431
  --appkit-text-2xs: 0.625rem;
432
- --appkit-text-xs: 0.75rem;
433
- --appkit-text-sm: 0.875rem;
434
- --appkit-text-base: 1rem;
435
- --appkit-text-lg: 1.125rem;
436
- --appkit-text-xl: 1.25rem;
437
- --appkit-text-2xl: 1.5rem;
438
- --appkit-text-3xl: 1.875rem;
439
- --appkit-text-4xl: 2.25rem;
440
- --appkit-text-5xl: 3rem;
432
+ --appkit-text-xs: 0.6875rem;
433
+ --appkit-text-sm: 0.8125rem;
434
+ --appkit-text-base: 0.9375rem;
435
+ --appkit-text-lg: 1rem;
436
+ --appkit-text-xl: 1.125rem;
437
+ --appkit-text-2xl: 1.375rem;
438
+ --appkit-text-3xl: 1.625rem;
439
+ --appkit-text-4xl: 1.875rem;
440
+ --appkit-text-5xl: 2.5rem;
441
441
  }
442
442
 
443
443
  /* --- Theme — Cobalt Night ([data-theme="cobalt-night"]) ------------------- */
@@ -522,15 +522,15 @@
522
522
  --appkit-font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Consolas", monospace;
523
523
 
524
524
  --appkit-text-2xs: 0.625rem; /* 10px */
525
- --appkit-text-xs: 0.75rem; /* 12px */
526
- --appkit-text-sm: 0.875rem; /* 14px */
527
- --appkit-text-base: 1rem; /* 16px */
528
- --appkit-text-lg: 1.125rem; /* 18px */
529
- --appkit-text-xl: 1.25rem; /* 20px */
530
- --appkit-text-2xl: 1.5rem; /* 24px */
531
- --appkit-text-3xl: 1.875rem; /* 30px */
532
- --appkit-text-4xl: 2.25rem; /* 36px */
533
- --appkit-text-5xl: 3rem; /* 48px */
525
+ --appkit-text-xs: 0.6875rem; /* 11px */
526
+ --appkit-text-sm: 0.8125rem; /* 13px */
527
+ --appkit-text-base: 0.9375rem; /* 15px */
528
+ --appkit-text-lg: 1rem; /* 16px */
529
+ --appkit-text-xl: 1.125rem; /* 18px */
530
+ --appkit-text-2xl: 1.375rem; /* 22px */
531
+ --appkit-text-3xl: 1.625rem; /* 26px */
532
+ --appkit-text-4xl: 1.875rem; /* 30px */
533
+ --appkit-text-5xl: 2.5rem; /* 40px */
534
534
 
535
535
  --appkit-leading-tight: 1.15;
536
536
  --appkit-leading-snug: 1.375;
@@ -36,7 +36,7 @@ export function ListingToolbar({ filterCount = 0, onFiltersClick, searchValue =
36
36
  const allSelected = bulkTotalCount > 0 && bulkSelectedCount === bulkTotalCount;
37
37
  return (_jsx(StickyToolbar, { dataTestId: "listing-toolbar", offset: "header", tone: "translucent", border: true, padding: "none", z: "above-toolbar", className: `py-2 px-3 sm:py-2.5 sm:px-4 ${className}`, children: _jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-2.5", children: [bulkMode ? (_jsxs("div", { className: "flex flex-1 items-center gap-2", children: [_jsxs("button", { type: "button", onClick: onBulkSelectAll, className: "flex items-center gap-1.5 rounded-lg border border-[var(--appkit-color-border)] px-3 py-1.5 text-sm font-medium text-[var(--appkit-color-text-muted)] hover:bg-zinc-50 hover:bg-[var(--appkit-color-surface-elevated)] transition-colors", children: [allSelected
38
38
  ? _jsx(CheckSquare, { className: "h-4 w-4 text-[var(--appkit-color-primary)]" })
39
- : _jsx(Square, { className: "h-4 w-4" }), allSelected ? l.deselectAll : l.selectAll(bulkTotalCount)] }), _jsx(Span, { size: "sm", color: "muted", children: l.selected(bulkSelectedCount) }), _jsx("button", { type: "button", onClick: onBulkClear, className: CLS_CLEAR_LINK, children: l.clearSelection })] })) : onSearchChange ? (_jsxs("div", { className: "flex flex-1 items-center overflow-hidden rounded-lg border border-[var(--appkit-color-border)] bg-[var(--appkit-color-surface)] min-w-0", children: [_jsx("input", { type: "text", value: searchValue, onChange: (e) => onSearchChange(e.target.value), onKeyDown: handleKeyDown, placeholder: searchPlaceholder, className: "min-w-0 flex-1 bg-transparent px-3 py-2 text-sm text-[var(--appkit-color-text)] placeholder-zinc-400 outline-none" }), _jsx("button", { type: "button", onClick: onSearchCommit, className: "flex shrink-0 items-center justify-center px-2.5 py-2 text-zinc-400 hover:text-[var(--appkit-color-primary)] transition-colors", "aria-label": l.search, children: _jsx(Search, { className: "h-4 w-4" }) })] })) : null, _jsxs("div", { className: "flex items-center gap-1.5 sm:gap-2 shrink-0", children: [onFiltersClick && (_jsxs("button", { type: "button", onClick: onFiltersClick, className: "relative flex shrink-0 items-center gap-1.5 rounded-lg border border-[var(--appkit-color-border)] px-2.5 py-1.5 sm:px-3.5 sm:py-2 text-sm font-medium text-[var(--appkit-color-text-muted)] hover:bg-zinc-50 hover:bg-[var(--appkit-color-surface-elevated)] transition-colors", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), _jsx("span", { className: "hidden sm:inline", children: l.filters }), filterCount > 0 && (_jsx(Span, { weight: "bold", className: "absolute -top-1.5 -right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-[var(--appkit-color-primary)] text-[10px] text-white", children: filterCount }))] })), sortOptions && sortValue !== undefined && onSortChange && (_jsxs(Div, { className: "flex items-center gap-1.5 text-[var(--appkit-color-text-muted)]", children: [_jsx(Span, { size: "xs", className: "hidden md:inline whitespace-nowrap", children: l.sort }), _jsx(SortDropdown, { value: sortValue, onChange: onSortChange, options: sortOptions })] })), !hideViewToggle && onViewChange && (_jsxs("div", { className: "flex items-center rounded-lg border border-[var(--appkit-color-border)] overflow-hidden", children: [_jsx("button", { type: "button", onClick: () => onViewChange("grid"), "aria-label": l.gridView, className: `${VIEW_BTN_BASE} ${view === "grid" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(LayoutGrid, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: () => onViewChange("list"), "aria-label": l.listView, className: `${VIEW_BTN_BASE} ${view === "list" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(List, { className: "h-4 w-4" }) }), showTableView && (_jsx("button", { type: "button", onClick: () => onViewChange("table"), "aria-label": l.tableView, className: `${VIEW_BTN_BASE} ${view === "table" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(Table2, { className: "h-4 w-4" }) }))] })), onResetAll && hasActiveState && (_jsx("button", { type: "button", onClick: onResetAll, "aria-label": l.resetAll, title: l.resetAll, className: CLS_CLEAR_ICON_BTN, children: _jsx(RotateCcw, { className: "h-4 w-4" }) })), toggles && toggles.length > 0 && (_jsx("div", { className: "flex items-center gap-1", children: toggles.map((t) => (_jsx("button", { type: "button", role: "switch", "aria-checked": t.active, onClick: () => t.onChange(!t.active), className: `rounded-full border px-2.5 py-1 text-xs font-medium transition-colors whitespace-nowrap ${t.active
39
+ : _jsx(Square, { className: "h-4 w-4" }), allSelected ? l.deselectAll : l.selectAll(bulkTotalCount)] }), _jsx(Span, { size: "sm", color: "muted", children: l.selected(bulkSelectedCount) }), _jsx("button", { type: "button", onClick: onBulkClear, className: CLS_CLEAR_LINK, children: l.clearSelection })] })) : onSearchChange ? (_jsxs("div", { className: "flex flex-1 items-center overflow-hidden rounded-lg border border-[var(--appkit-color-border)] bg-[var(--appkit-color-surface)] min-w-0", children: [_jsx("input", { type: "text", value: searchValue, onChange: (e) => onSearchChange(e.target.value), onKeyDown: handleKeyDown, placeholder: searchPlaceholder, className: "min-w-0 flex-1 bg-transparent px-3 py-2 text-sm text-[var(--appkit-color-text)] placeholder-zinc-400 outline-none" }), _jsx("button", { type: "button", onClick: onSearchCommit, className: "flex shrink-0 items-center justify-center px-2.5 py-2 text-zinc-400 hover:text-[var(--appkit-color-primary)] transition-colors", "aria-label": l.search, children: _jsx(Search, { className: "h-4 w-4" }) })] })) : null, _jsxs("div", { className: "flex flex-wrap items-center gap-1.5 sm:gap-2 sm:shrink-0", children: [onFiltersClick && (_jsxs("button", { type: "button", onClick: onFiltersClick, className: "relative flex shrink-0 items-center gap-1.5 rounded-lg border border-[var(--appkit-color-border)] px-2.5 py-1.5 sm:px-3.5 sm:py-2 text-sm font-medium text-[var(--appkit-color-text-muted)] hover:bg-zinc-50 hover:bg-[var(--appkit-color-surface-elevated)] transition-colors", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), _jsx("span", { className: "hidden sm:inline", children: l.filters }), filterCount > 0 && (_jsx(Span, { weight: "bold", className: "absolute -top-1.5 -right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-[var(--appkit-color-primary)] text-[10px] text-white", children: filterCount }))] })), sortOptions && sortValue !== undefined && onSortChange && (_jsxs(Div, { className: "flex items-center gap-1.5 text-[var(--appkit-color-text-muted)]", children: [_jsx(Span, { size: "xs", className: "hidden md:inline whitespace-nowrap", children: l.sort }), _jsx(SortDropdown, { value: sortValue, onChange: onSortChange, options: sortOptions })] })), !hideViewToggle && onViewChange && (_jsxs("div", { className: "flex items-center rounded-lg border border-[var(--appkit-color-border)] overflow-hidden", children: [_jsx("button", { type: "button", onClick: () => onViewChange("grid"), "aria-label": l.gridView, className: `${VIEW_BTN_BASE} ${view === "grid" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(LayoutGrid, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: () => onViewChange("list"), "aria-label": l.listView, className: `${VIEW_BTN_BASE} ${view === "list" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(List, { className: "h-4 w-4" }) }), showTableView && (_jsx("button", { type: "button", onClick: () => onViewChange("table"), "aria-label": l.tableView, className: `${VIEW_BTN_BASE} ${view === "table" ? VIEW_BTN_ACTIVE : VIEW_BTN_INACTIVE}`, children: _jsx(Table2, { className: "h-4 w-4" }) }))] })), onResetAll && hasActiveState && (_jsx("button", { type: "button", onClick: onResetAll, "aria-label": l.resetAll, title: l.resetAll, className: CLS_CLEAR_ICON_BTN, children: _jsx(RotateCcw, { className: "h-4 w-4" }) })), toggles && toggles.length > 0 && (_jsx("div", { className: "flex items-center gap-1", children: toggles.map((t) => (_jsx("button", { type: "button", role: "switch", "aria-checked": t.active, onClick: () => t.onChange(!t.active), className: `rounded-full border px-2.5 py-1 text-xs font-medium transition-colors whitespace-nowrap ${t.active
40
40
  ? "border-transparent bg-[var(--appkit-color-primary)] text-white"
41
41
  : "border-[var(--appkit-color-border)] text-[var(--appkit-color-text-muted)] hover:bg-zinc-50 hover:bg-[var(--appkit-color-surface-elevated)]"}`, children: t.label }, t.label))) })), extra] })] }) }));
42
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"