@mohasinac/appkit 2.7.22 → 2.7.24

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 (51) hide show
  1. package/dist/client.d.ts +4 -0
  2. package/dist/client.js +3 -0
  3. package/dist/features/auth/consent-otp.js +8 -8
  4. package/dist/features/auth/permissions/constants.d.ts +1 -1
  5. package/dist/features/auth/permissions/constants.js +2 -0
  6. package/dist/features/before-after/messages/en.json +7 -7
  7. package/dist/features/collections/messages/en.json +9 -9
  8. package/dist/features/consultation/messages/en.json +24 -24
  9. package/dist/features/contact/email.js +179 -179
  10. package/dist/features/corporate/messages/en.json +25 -25
  11. package/dist/features/loyalty/messages/en.json +18 -18
  12. package/dist/features/media/messages/en.json +63 -63
  13. package/dist/features/pre-orders/messages/en.json +12 -12
  14. package/dist/features/site-settings/components/ActionPermissionsManager.d.ts +7 -0
  15. package/dist/features/site-settings/components/ActionPermissionsManager.js +99 -0
  16. package/dist/features/site-settings/components/NavPermissionsManager.d.ts +18 -0
  17. package/dist/features/site-settings/components/NavPermissionsManager.js +33 -0
  18. package/dist/features/whatsapp-bot/messages/en.json +6 -6
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.js +3 -0
  21. package/dist/next/routing/route-map.d.ts +4 -0
  22. package/dist/next/routing/route-map.js +2 -0
  23. package/dist/styles.css +21 -21
  24. package/dist/tailwind-utilities.css +1 -1
  25. package/dist/tokens/tokens.css +436 -436
  26. package/dist/ui/components/ActiveFilterChips.style.css +66 -66
  27. package/dist/ui/components/AvatarDisplay.style.css +46 -46
  28. package/dist/ui/components/BackgroundRenderer.style.css +31 -31
  29. package/dist/ui/components/Breadcrumb.style.css +60 -60
  30. package/dist/ui/components/CountdownDisplay.style.css +4 -4
  31. package/dist/ui/components/Div.style.css +6 -6
  32. package/dist/ui/components/EmptyState.style.css +28 -28
  33. package/dist/ui/components/FlowDiagram.style.css +77 -77
  34. package/dist/ui/components/FormGrid.style.css +32 -32
  35. package/dist/ui/components/ImageGallery.style.css +163 -163
  36. package/dist/ui/components/ImageLightbox.style.css +58 -58
  37. package/dist/ui/components/ItemRow.style.css +33 -33
  38. package/dist/ui/components/Layout.style.css +229 -229
  39. package/dist/ui/components/Menu.style.css +6 -6
  40. package/dist/ui/components/NavigationLoader.style.css +19 -19
  41. package/dist/ui/components/ResponsiveView.style.css +69 -69
  42. package/dist/ui/components/RoleBadge.style.css +7 -7
  43. package/dist/ui/components/SectionTabs.style.css +164 -164
  44. package/dist/ui/components/Semantic.style.css +14 -14
  45. package/dist/ui/components/SkipToMain.style.css +34 -34
  46. package/dist/ui/components/SortDropdown.style.css +12 -12
  47. package/dist/ui/components/StatusBadge.style.css +5 -5
  48. package/dist/ui/components/UnsavedChangesModal.style.css +33 -33
  49. package/dist/ui/components/ViewToggle.style.css +50 -50
  50. package/dist/ui/components/index.style.css +78 -78
  51. package/package.json +1 -1
@@ -1,32 +1,32 @@
1
- /* appkit/src/ui/components/FormGrid.style.css */
2
-
3
- .appkit-form-grid {
4
- display: flex;
5
- flex-wrap: wrap;
6
- /* gap is driven by the inline style prop */
7
- }
8
-
9
- /* -- FormField --------------------------------------- */
10
-
11
- .appkit-form-field {
12
- display: flex;
13
- flex-direction: column;
14
- gap: 0.375rem; /* ~6px (gap-1.5) */
15
- }
16
-
17
- /* fluid: grows to fill, wraps below min width */
18
- .appkit-form-field--auto {
19
- flex: 1 1 var(--appkit-form-grid-min-field, 280px);
20
- min-width: var(--appkit-form-grid-min-field, 280px);
21
- }
22
-
23
- /* always spans full container width */
24
- .appkit-form-field--full {
25
- width: 100%;
26
- }
27
-
28
- /* fixed half width, still respects min-field constraint */
29
- .appkit-form-field--half {
30
- width: 50%;
31
- min-width: var(--appkit-form-grid-min-field, 280px);
32
- }
1
+ /* appkit/src/ui/components/FormGrid.style.css */
2
+
3
+ .appkit-form-grid {
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ /* gap is driven by the inline style prop */
7
+ }
8
+
9
+ /* -- FormField --------------------------------------- */
10
+
11
+ .appkit-form-field {
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: 0.375rem; /* ~6px (gap-1.5) */
15
+ }
16
+
17
+ /* fluid: grows to fill, wraps below min width */
18
+ .appkit-form-field--auto {
19
+ flex: 1 1 var(--appkit-form-grid-min-field, 280px);
20
+ min-width: var(--appkit-form-grid-min-field, 280px);
21
+ }
22
+
23
+ /* always spans full container width */
24
+ .appkit-form-field--full {
25
+ width: 100%;
26
+ }
27
+
28
+ /* fixed half width, still respects min-field constraint */
29
+ .appkit-form-field--half {
30
+ width: 50%;
31
+ min-width: var(--appkit-form-grid-min-field, 280px);
32
+ }
@@ -1,163 +1,163 @@
1
- /* ImageGallery — swipeable image viewer with thumbnails, captions, zoom */
2
-
3
- .appkit-image-gallery {
4
- /* root container — no structural styles needed, className pass-through */
5
- }
6
-
7
- .appkit-image-gallery__viewport {
8
- position: relative;
9
- border-radius: 0.5rem;
10
- overflow: hidden;
11
- touch-action: pan-y;
12
- user-select: none;
13
- }
14
-
15
- .appkit-image-gallery__image-frame {
16
- position: relative;
17
- aspect-ratio: 16 / 9;
18
- overflow: hidden;
19
- }
20
-
21
- @media (min-width: 768px) {
22
- .appkit-image-gallery__image-frame {
23
- aspect-ratio: 16 / 10;
24
- }
25
- }
26
-
27
- .appkit-image-gallery__image {
28
- width: 100%;
29
- height: 100%;
30
- background-position: center;
31
- background-size: contain;
32
- background-repeat: no-repeat;
33
- transition: transform 0.2s ease;
34
- }
35
-
36
- .appkit-image-gallery__nav-btn {
37
- position: absolute;
38
- top: 50%;
39
- transform: translateY(-50%);
40
- padding: 0.5rem;
41
- border-radius: 9999px;
42
- background-opacity: 0.8;
43
- backdrop-filter: blur(4px);
44
- transition: all 0.15s ease;
45
- touch-action: manipulation;
46
- }
47
-
48
- .appkit-image-gallery__nav-btn:focus {
49
- outline: none;
50
- box-shadow: 0 0 0 2px var(--appkit-color-secondary);
51
- }
52
-
53
- .appkit-image-gallery__nav-btn:disabled {
54
- opacity: 0.5;
55
- cursor: not-allowed;
56
- }
57
-
58
- .appkit-image-gallery__nav-btn--prev {
59
- left: 0.5rem;
60
- }
61
-
62
- .appkit-image-gallery__nav-btn--next {
63
- right: 0.5rem;
64
- }
65
-
66
- @media (min-width: 768px) {
67
- .appkit-image-gallery__nav-btn {
68
- padding: 0.75rem;
69
- }
70
- .appkit-image-gallery__nav-btn--prev {
71
- left: 1rem;
72
- }
73
- .appkit-image-gallery__nav-btn--next {
74
- right: 1rem;
75
- }
76
- }
77
-
78
- .appkit-image-gallery__counter,
79
- .appkit-image-gallery__zoom-indicator {
80
- position: absolute;
81
- padding: 0.25rem 0.75rem;
82
- border-radius: 9999px;
83
- background-opacity: 0.8;
84
- backdrop-filter: blur(4px);
85
- font-size: 0.75rem;
86
- font-weight: 500;
87
- }
88
-
89
- @media (min-width: 768px) {
90
- .appkit-image-gallery__counter,
91
- .appkit-image-gallery__zoom-indicator {
92
- font-size: 0.875rem;
93
- }
94
- }
95
-
96
- .appkit-image-gallery__counter {
97
- bottom: 0.5rem;
98
- right: 0.5rem;
99
- }
100
-
101
- @media (min-width: 768px) {
102
- .appkit-image-gallery__counter {
103
- bottom: 1rem;
104
- right: 1rem;
105
- }
106
- }
107
-
108
- .appkit-image-gallery__zoom-indicator {
109
- top: 0.5rem;
110
- right: 0.5rem;
111
- }
112
-
113
- @media (min-width: 768px) {
114
- .appkit-image-gallery__zoom-indicator {
115
- top: 1rem;
116
- right: 1rem;
117
- }
118
- }
119
-
120
- .appkit-image-gallery__caption {
121
- padding: 1rem;
122
- border-top: 1px solid;
123
- }
124
-
125
- .appkit-image-gallery__thumbnail {
126
- flex-shrink: 0;
127
- width: 4rem;
128
- height: 4rem;
129
- border-radius: 0.5rem;
130
- overflow: hidden;
131
- border-width: 2px;
132
- transition: all 0.15s ease;
133
- scroll-snap-align: center;
134
- touch-action: manipulation;
135
- }
136
-
137
- @media (min-width: 768px) {
138
- .appkit-image-gallery__thumbnail {
139
- width: 5rem;
140
- height: 5rem;
141
- }
142
- }
143
-
144
- .appkit-image-gallery__thumbnail--active {
145
- border-color: var(--appkit-color-secondary-600);
146
- box-shadow: 0 0 0 2px var(--appkit-color-secondary-200);
147
- }
148
-
149
- :is(.dark) .appkit-image-gallery__thumbnail--active {
150
- box-shadow: 0 0 0 2px var(--appkit-color-secondary-800);
151
- }
152
-
153
- .appkit-image-gallery__help {
154
- margin-top: 0.5rem;
155
- text-align: center;
156
- font-size: 0.75rem;
157
- }
158
-
159
- @media (min-width: 768px) {
160
- .appkit-image-gallery__help {
161
- display: none;
162
- }
163
- }
1
+ /* ImageGallery — swipeable image viewer with thumbnails, captions, zoom */
2
+
3
+ .appkit-image-gallery {
4
+ /* root container — no structural styles needed, className pass-through */
5
+ }
6
+
7
+ .appkit-image-gallery__viewport {
8
+ position: relative;
9
+ border-radius: 0.5rem;
10
+ overflow: hidden;
11
+ touch-action: pan-y;
12
+ user-select: none;
13
+ }
14
+
15
+ .appkit-image-gallery__image-frame {
16
+ position: relative;
17
+ aspect-ratio: 16 / 9;
18
+ overflow: hidden;
19
+ }
20
+
21
+ @media (min-width: 768px) {
22
+ .appkit-image-gallery__image-frame {
23
+ aspect-ratio: 16 / 10;
24
+ }
25
+ }
26
+
27
+ .appkit-image-gallery__image {
28
+ width: 100%;
29
+ height: 100%;
30
+ background-position: center;
31
+ background-size: contain;
32
+ background-repeat: no-repeat;
33
+ transition: transform 0.2s ease;
34
+ }
35
+
36
+ .appkit-image-gallery__nav-btn {
37
+ position: absolute;
38
+ top: 50%;
39
+ transform: translateY(-50%);
40
+ padding: 0.5rem;
41
+ border-radius: 9999px;
42
+ background-opacity: 0.8;
43
+ backdrop-filter: blur(4px);
44
+ transition: all 0.15s ease;
45
+ touch-action: manipulation;
46
+ }
47
+
48
+ .appkit-image-gallery__nav-btn:focus {
49
+ outline: none;
50
+ box-shadow: 0 0 0 2px var(--appkit-color-secondary);
51
+ }
52
+
53
+ .appkit-image-gallery__nav-btn:disabled {
54
+ opacity: 0.5;
55
+ cursor: not-allowed;
56
+ }
57
+
58
+ .appkit-image-gallery__nav-btn--prev {
59
+ left: 0.5rem;
60
+ }
61
+
62
+ .appkit-image-gallery__nav-btn--next {
63
+ right: 0.5rem;
64
+ }
65
+
66
+ @media (min-width: 768px) {
67
+ .appkit-image-gallery__nav-btn {
68
+ padding: 0.75rem;
69
+ }
70
+ .appkit-image-gallery__nav-btn--prev {
71
+ left: 1rem;
72
+ }
73
+ .appkit-image-gallery__nav-btn--next {
74
+ right: 1rem;
75
+ }
76
+ }
77
+
78
+ .appkit-image-gallery__counter,
79
+ .appkit-image-gallery__zoom-indicator {
80
+ position: absolute;
81
+ padding: 0.25rem 0.75rem;
82
+ border-radius: 9999px;
83
+ background-opacity: 0.8;
84
+ backdrop-filter: blur(4px);
85
+ font-size: 0.75rem;
86
+ font-weight: 500;
87
+ }
88
+
89
+ @media (min-width: 768px) {
90
+ .appkit-image-gallery__counter,
91
+ .appkit-image-gallery__zoom-indicator {
92
+ font-size: 0.875rem;
93
+ }
94
+ }
95
+
96
+ .appkit-image-gallery__counter {
97
+ bottom: 0.5rem;
98
+ right: 0.5rem;
99
+ }
100
+
101
+ @media (min-width: 768px) {
102
+ .appkit-image-gallery__counter {
103
+ bottom: 1rem;
104
+ right: 1rem;
105
+ }
106
+ }
107
+
108
+ .appkit-image-gallery__zoom-indicator {
109
+ top: 0.5rem;
110
+ right: 0.5rem;
111
+ }
112
+
113
+ @media (min-width: 768px) {
114
+ .appkit-image-gallery__zoom-indicator {
115
+ top: 1rem;
116
+ right: 1rem;
117
+ }
118
+ }
119
+
120
+ .appkit-image-gallery__caption {
121
+ padding: 1rem;
122
+ border-top: 1px solid;
123
+ }
124
+
125
+ .appkit-image-gallery__thumbnail {
126
+ flex-shrink: 0;
127
+ width: 4rem;
128
+ height: 4rem;
129
+ border-radius: 0.5rem;
130
+ overflow: hidden;
131
+ border-width: 2px;
132
+ transition: all 0.15s ease;
133
+ scroll-snap-align: center;
134
+ touch-action: manipulation;
135
+ }
136
+
137
+ @media (min-width: 768px) {
138
+ .appkit-image-gallery__thumbnail {
139
+ width: 5rem;
140
+ height: 5rem;
141
+ }
142
+ }
143
+
144
+ .appkit-image-gallery__thumbnail--active {
145
+ border-color: var(--appkit-color-secondary-600);
146
+ box-shadow: 0 0 0 2px var(--appkit-color-secondary-200);
147
+ }
148
+
149
+ :is(.dark) .appkit-image-gallery__thumbnail--active {
150
+ box-shadow: 0 0 0 2px var(--appkit-color-secondary-800);
151
+ }
152
+
153
+ .appkit-image-gallery__help {
154
+ margin-top: 0.5rem;
155
+ text-align: center;
156
+ font-size: 0.75rem;
157
+ }
158
+
159
+ @media (min-width: 768px) {
160
+ .appkit-image-gallery__help {
161
+ display: none;
162
+ }
163
+ }
@@ -1,58 +1,58 @@
1
- /* appkit/src/ui/components/ImageLightbox.style.css */
2
-
3
- .appkit-lightbox {
4
- position: fixed;
5
- inset: 0;
6
- z-index: 9999;
7
- background: rgba(0, 0, 0, 0.95);
8
- display: flex;
9
- flex-direction: column;
10
- align-items: center;
11
- justify-content: center;
12
- outline: none;
13
- }
14
-
15
- /* -- Counter ----------------------------------------- */
16
-
17
- .appkit-lightbox__counter {
18
- position: absolute;
19
- top: 1rem;
20
- left: 50%;
21
- transform: translateX(-50%);
22
- color: rgba(255, 255, 255, 0.7);
23
- font-size: 0.875rem;
24
- font-weight: 500;
25
- }
26
-
27
- /* -- Image area -------------------------------------- */
28
-
29
- .appkit-lightbox__image-wrap {
30
- flex: 1;
31
- display: flex;
32
- align-items: center;
33
- justify-content: center;
34
- padding: 4rem;
35
- width: 100%;
36
- height: 100%;
37
- position: relative;
38
- }
39
-
40
- .appkit-lightbox__img {
41
- max-height: 100%;
42
- max-width: 100%;
43
- object-fit: contain;
44
- user-select: none;
45
- }
46
-
47
- /* -- Zoom hint --------------------------------------- */
48
-
49
- .appkit-lightbox__zoom-hint {
50
- position: absolute;
51
- bottom: 1rem;
52
- right: 1rem;
53
- color: rgba(255, 255, 255, 0.4);
54
- display: flex;
55
- align-items: center;
56
- gap: 0.25rem;
57
- font-size: 0.75rem;
58
- }
1
+ /* appkit/src/ui/components/ImageLightbox.style.css */
2
+
3
+ .appkit-lightbox {
4
+ position: fixed;
5
+ inset: 0;
6
+ z-index: 9999;
7
+ background: rgba(0, 0, 0, 0.95);
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: center;
11
+ justify-content: center;
12
+ outline: none;
13
+ }
14
+
15
+ /* -- Counter ----------------------------------------- */
16
+
17
+ .appkit-lightbox__counter {
18
+ position: absolute;
19
+ top: 1rem;
20
+ left: 50%;
21
+ transform: translateX(-50%);
22
+ color: rgba(255, 255, 255, 0.7);
23
+ font-size: 0.875rem;
24
+ font-weight: 500;
25
+ }
26
+
27
+ /* -- Image area -------------------------------------- */
28
+
29
+ .appkit-lightbox__image-wrap {
30
+ flex: 1;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ padding: 4rem;
35
+ width: 100%;
36
+ height: 100%;
37
+ position: relative;
38
+ }
39
+
40
+ .appkit-lightbox__img {
41
+ max-height: 100%;
42
+ max-width: 100%;
43
+ object-fit: contain;
44
+ user-select: none;
45
+ }
46
+
47
+ /* -- Zoom hint --------------------------------------- */
48
+
49
+ .appkit-lightbox__zoom-hint {
50
+ position: absolute;
51
+ bottom: 1rem;
52
+ right: 1rem;
53
+ color: rgba(255, 255, 255, 0.4);
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 0.25rem;
57
+ font-size: 0.75rem;
58
+ }
@@ -1,33 +1,33 @@
1
- .appkit-item-row {
2
- display: flex;
3
- align-items: flex-start;
4
- gap: 1rem;
5
- }
6
-
7
- .appkit-item-row__thumbnail {
8
- flex-shrink: 0;
9
- }
10
-
11
- .appkit-item-row__content {
12
- min-width: 0;
13
- flex: 1;
14
- }
15
-
16
- .appkit-item-row__title {
17
- display: -webkit-box;
18
- -webkit-line-clamp: 2;
19
- -webkit-box-orient: vertical;
20
- overflow: hidden;
21
- }
22
-
23
- .appkit-item-row__subtitle {
24
- margin-top: 0.125rem;
25
- }
26
-
27
- .appkit-item-row__actions {
28
- margin-top: 0.5rem;
29
- }
30
-
31
- .appkit-item-row__right {
32
- flex-shrink: 0;
33
- }
1
+ .appkit-item-row {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ gap: 1rem;
5
+ }
6
+
7
+ .appkit-item-row__thumbnail {
8
+ flex-shrink: 0;
9
+ }
10
+
11
+ .appkit-item-row__content {
12
+ min-width: 0;
13
+ flex: 1;
14
+ }
15
+
16
+ .appkit-item-row__title {
17
+ display: -webkit-box;
18
+ -webkit-line-clamp: 2;
19
+ -webkit-box-orient: vertical;
20
+ overflow: hidden;
21
+ }
22
+
23
+ .appkit-item-row__subtitle {
24
+ margin-top: 0.125rem;
25
+ }
26
+
27
+ .appkit-item-row__actions {
28
+ margin-top: 0.5rem;
29
+ }
30
+
31
+ .appkit-item-row__right {
32
+ flex-shrink: 0;
33
+ }