@capillarytech/blaze-ui 6.1.6-beta.1 → 6.1.7

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 (110) hide show
  1. package/CapEmojiPicker/Picker/index.d.ts +6 -0
  2. package/CapEmojiPicker/Picker/index.d.ts.map +1 -0
  3. package/CapEmojiPicker/Picker/index.js +114 -0
  4. package/CapEmojiPicker/Picker/messages.d.ts +21 -0
  5. package/CapEmojiPicker/Picker/messages.d.ts.map +1 -0
  6. package/CapEmojiPicker/Picker/messages.js +24 -0
  7. package/CapEmojiPicker/TriggerButton/_triggerButton.scss +45 -0
  8. package/CapEmojiPicker/TriggerButton/index.d.ts +9 -0
  9. package/CapEmojiPicker/TriggerButton/index.d.ts.map +1 -0
  10. package/CapEmojiPicker/TriggerButton/index.js +35 -0
  11. package/CapEmojiPicker/Wrapper/index.d.ts +4 -0
  12. package/CapEmojiPicker/Wrapper/index.d.ts.map +1 -0
  13. package/CapEmojiPicker/Wrapper/index.js +166 -0
  14. package/CapEmojiPicker/Wrapper/messages.d.ts +13 -0
  15. package/CapEmojiPicker/Wrapper/messages.d.ts.map +1 -0
  16. package/CapEmojiPicker/Wrapper/messages.js +16 -0
  17. package/CapEmojiPicker/Wrapper/useEmojiTriggerPosition.d.ts +18 -0
  18. package/CapEmojiPicker/Wrapper/useEmojiTriggerPosition.d.ts.map +1 -0
  19. package/CapEmojiPicker/Wrapper/useEmojiTriggerPosition.js +108 -0
  20. package/CapEmojiPicker/_capEmojiPicker.css +231 -0
  21. package/CapEmojiPicker/_capEmojiPicker.scss +281 -0
  22. package/CapEmojiPicker/_config.scss +7 -0
  23. package/CapEmojiPicker/assets/sentiment-satsified.svg +3 -0
  24. package/CapEmojiPicker/assets/sentiment-satsified.svg.js +4 -0
  25. package/CapEmojiPicker/constants.d.ts +34 -0
  26. package/CapEmojiPicker/constants.d.ts.map +1 -0
  27. package/CapEmojiPicker/constants.js +18 -0
  28. package/CapEmojiPicker/index.d.ts +4 -0
  29. package/CapEmojiPicker/index.d.ts.map +1 -0
  30. package/CapEmojiPicker/index.js +11 -0
  31. package/CapEmojiPicker/utils.d.ts +20 -0
  32. package/CapEmojiPicker/utils.d.ts.map +1 -0
  33. package/CapEmojiPicker/utils.js +24 -0
  34. package/CapIcon/index.js +12 -12
  35. package/CapIcon/styles.css +17 -21
  36. package/CapIcon/styles.module.scss.js +3 -4
  37. package/CapIcon/styles.scss +10 -15
  38. package/CapSelectFilter/types.d.ts +1 -1
  39. package/CapSelectFilter/types.d.ts.map +1 -1
  40. package/assets/icons/blocks.svg +9 -0
  41. package/assets/icons/closed-lock.svg +1 -0
  42. package/assets/icons/csv.svg +21 -0
  43. package/assets/icons/databricks.svg +7 -0
  44. package/assets/icons/four-join.svg +19 -0
  45. package/assets/icons/http.svg +18 -0
  46. package/assets/icons/kafka.svg +9 -0
  47. package/assets/icons/open-lock.svg +1 -0
  48. package/assets/icons/s3.svg +3 -0
  49. package/assets/icons/sftp.svg +32 -0
  50. package/assets/icons/split-json.svg +9 -0
  51. package/assets/icons/three-join.svg +17 -0
  52. package/assets/icons/two-join.svg +15 -0
  53. package/assets/icons/xml.svg +12 -0
  54. package/assets/svgIcons/Icons/RewardsOutline.js +6 -4
  55. package/assets/svgIcons/Icons/ThreeStars.js +18 -36
  56. package/assets/svgIcons/component.js +0 -27
  57. package/assets/svgIcons/index.js +594 -612
  58. package/index.d.ts +0 -2
  59. package/index.d.ts.map +1 -1
  60. package/index.js +193 -195
  61. package/package.json +3 -2
  62. package/utils/getCapThemeConfig.d.ts +1 -1
  63. package/utils/getCapThemeConfig.d.ts.map +1 -1
  64. package/CapNavigationSPA/CapNavigationSPASidebar/index.d.ts +0 -10
  65. package/CapNavigationSPA/CapNavigationSPASidebar/index.d.ts.map +0 -1
  66. package/CapNavigationSPA/CapNavigationSPASidebar/index.js +0 -373
  67. package/CapNavigationSPA/CapNavigationSPASidebar/styles.css +0 -318
  68. package/CapNavigationSPA/CapNavigationSPASidebar/styles.module.scss.js +0 -56
  69. package/CapNavigationSPA/CapNavigationSPASidebar/styles.scss +0 -385
  70. package/CapNavigationSPA/CapNavigationSPASidebar/types.d.ts +0 -31
  71. package/CapNavigationSPA/CapNavigationSPASidebar/types.d.ts.map +0 -1
  72. package/CapNavigationSPA/CapNavigationSPASidebar/types.js +0 -1
  73. package/CapNavigationSPA/CapNavigationSPATopBar/index.d.ts +0 -10
  74. package/CapNavigationSPA/CapNavigationSPATopBar/index.d.ts.map +0 -1
  75. package/CapNavigationSPA/CapNavigationSPATopBar/index.js +0 -119
  76. package/CapNavigationSPA/CapNavigationSPATopBar/styles.css +0 -141
  77. package/CapNavigationSPA/CapNavigationSPATopBar/styles.module.scss.js +0 -19
  78. package/CapNavigationSPA/CapNavigationSPATopBar/styles.scss +0 -163
  79. package/CapNavigationSPA/CapNavigationSPATopBar/types.d.ts +0 -28
  80. package/CapNavigationSPA/CapNavigationSPATopBar/types.d.ts.map +0 -1
  81. package/CapNavigationSPA/CapNavigationSPATopBar/types.js +0 -1
  82. package/CapNavigationSPA/constants.d.ts +0 -2
  83. package/CapNavigationSPA/constants.d.ts.map +0 -1
  84. package/CapNavigationSPA/constants.js +0 -4
  85. package/CapNavigationSPA/index.d.ts +0 -10
  86. package/CapNavigationSPA/index.d.ts.map +0 -1
  87. package/CapNavigationSPA/index.js +0 -436
  88. package/CapNavigationSPA/messages.d.ts +0 -13
  89. package/CapNavigationSPA/messages.d.ts.map +0 -1
  90. package/CapNavigationSPA/messages.js +0 -16
  91. package/CapNavigationSPA/mockdata.d.ts +0 -6
  92. package/CapNavigationSPA/mockdata.d.ts.map +0 -1
  93. package/CapNavigationSPA/mockdata.js +0 -4
  94. package/CapNavigationSPA/styles.css +0 -59
  95. package/CapNavigationSPA/styles.module.scss.js +0 -10
  96. package/CapNavigationSPA/styles.scss +0 -60
  97. package/CapNavigationSPA/tests/CapNavigationSPA.mockData.d.ts +0 -31
  98. package/CapNavigationSPA/tests/CapNavigationSPA.mockData.d.ts.map +0 -1
  99. package/CapNavigationSPA/types.d.ts +0 -39
  100. package/CapNavigationSPA/types.d.ts.map +0 -1
  101. package/CapNavigationSPA/types.js +0 -1
  102. package/assets/svgIcons/Icons/AiraNav.js +0 -23
  103. package/assets/svgIcons/Icons/CreativesNav.js +0 -22
  104. package/assets/svgIcons/Icons/DataManagement.js +0 -22
  105. package/assets/svgIcons/Icons/EngageNav.js +0 -23
  106. package/assets/svgIcons/Icons/InsightsNav.js +0 -22
  107. package/assets/svgIcons/Icons/LoyaltyTag.js +0 -22
  108. package/assets/svgIcons/Icons/Members.js +0 -22
  109. package/assets/svgIcons/Icons/SidebarCollapse.js +0 -17
  110. package/assets/svgIcons/Icons/SidebarExpand.js +0 -22
@@ -0,0 +1,231 @@
1
+ /* Color Palette */
2
+ /* Fonts */
3
+ /* Backward Compatibility Aliases */
4
+ /* Component Heights */
5
+ /* Border Radius */
6
+ /* Border Width */
7
+ /* Transition */
8
+ /* Timezones Footer */
9
+ /**
10
+ * CapEmojiPicker SCSS Configuration
11
+ *
12
+ * Note: This variable should match the CLS_PREFIX constant in components/CapEmojiPicker/constants.js
13
+ * If you change this value, also update constants.js
14
+ */
15
+ .cap-emoji-picker-wrapper {
16
+ position: relative;
17
+ width: 100%;
18
+ }
19
+ .cap-emoji-picker-wrapper .cap-emoji-picker-trigger-container {
20
+ position: absolute;
21
+ right: 0.285rem;
22
+ bottom: var(--emoji-trigger-bottom, 0.285rem);
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ z-index: 10;
27
+ }
28
+ .cap-emoji-picker-wrapper .cap-emoji-picker-trigger-container.cap-emoji-picker-trigger-textarea {
29
+ right: 0.285rem;
30
+ bottom: var(--emoji-trigger-bottom, 0.285rem);
31
+ }
32
+ .cap-emoji-picker-wrapper .cap-emoji-picker-trigger-container.cap-emoji-picker-trigger-input {
33
+ right: 0.285rem;
34
+ bottom: var(--emoji-trigger-bottom, 0.142rem);
35
+ }
36
+ .cap-emoji-picker-wrapper .cap-emoji-picker-trigger-container.cap-emoji-picker-trigger-search-with-value {
37
+ right: 1.571rem;
38
+ bottom: var(--emoji-trigger-bottom, 0.142rem);
39
+ }
40
+ .cap-emoji-picker-trigger {
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ width: 2rem;
45
+ height: 2rem;
46
+ padding: 0;
47
+ border: none;
48
+ background: transparent;
49
+ cursor: pointer;
50
+ border-radius: 50%;
51
+ transition: background-color 0.2s ease, transform 0.2s ease;
52
+ z-index: 10;
53
+ }
54
+ .cap-emoji-picker-trigger:hover:not(:disabled) {
55
+ background-color: rgba(94, 108, 132, 0.1);
56
+ transform: scale(1.05);
57
+ }
58
+ .cap-emoji-picker-trigger:active:not(:disabled) {
59
+ background-color: rgba(94, 108, 132, 0.15);
60
+ transform: scale(0.95);
61
+ }
62
+ .cap-emoji-picker-trigger:focus-visible {
63
+ outline: none;
64
+ background-color: rgba(94, 108, 132, 0.1);
65
+ }
66
+ .cap-emoji-picker-trigger:focus:not(:focus-visible) {
67
+ outline: none;
68
+ }
69
+ .cap-emoji-picker-trigger:disabled {
70
+ cursor: not-allowed;
71
+ opacity: 0.6;
72
+ }
73
+ .cap-emoji-picker-trigger img {
74
+ width: 1rem;
75
+ height: 1rem;
76
+ display: block;
77
+ pointer-events: none;
78
+ }
79
+ .ant-popover.cap-popover-v2.cap-emoji-picker-popover {
80
+ max-width: none;
81
+ }
82
+ .cap-emoji-picker-popover .ant-popover-inner {
83
+ padding: 0;
84
+ background: #ffffff;
85
+ border-radius: 0.285rem;
86
+ }
87
+ .cap-emoji-picker-popover .ant-popover-content .ant-popover-inner-content {
88
+ padding: 0;
89
+ }
90
+ .cap-emoji-picker-popover .ant-popover-arrow {
91
+ display: none;
92
+ }
93
+ .cap-emoji-picker-popover .ant-popover-inner-content {
94
+ background: #ffffff;
95
+ color: #091e42;
96
+ }
97
+ .cap-emoji-picker-panel {
98
+ width: fit-content;
99
+ background: #ffffff;
100
+ color: #091e42;
101
+ color-scheme: light;
102
+ display: flex;
103
+ flex-direction: column;
104
+ border-radius: 0.285rem;
105
+ overflow: hidden;
106
+ --epr-bg-color: #ffffff;
107
+ --epr-text-color: #091e42;
108
+ --epr-category-label-bg-color: #ffffff;
109
+ --epr-category-label-text-color: #5e6c84;
110
+ --epr-hover-bg-color: #f4f5f7;
111
+ --epr-search-input-bg-color: #ffffff;
112
+ --epr-search-input-text-color: #091e42;
113
+ --epr-search-input-border-color: #e8e8e8;
114
+ --epr-search-input-placeholder-color: #97a0af;
115
+ --epr-picker-border-color: #e8e8e8;
116
+ --epr-preview-bg-color: #ffffff;
117
+ --epr-preview-text-color: #5e6c84;
118
+ --epr-preview-border-color: #e8e8e8;
119
+ }
120
+ .cap-emoji-picker-panel .epr-main {
121
+ background: #ffffff;
122
+ border: none;
123
+ border-radius: 0.285rem;
124
+ }
125
+ .cap-emoji-picker-panel .epr-search-container {
126
+ background: #ffffff;
127
+ }
128
+ .cap-emoji-picker-panel .epr-search {
129
+ background: #ffffff;
130
+ color: #091e42;
131
+ border: none;
132
+ padding: 0.714rem 0.857rem;
133
+ font-size: 1rem;
134
+ }
135
+ .cap-emoji-picker-panel .epr-search::placeholder {
136
+ color: #97a0af;
137
+ }
138
+ .cap-emoji-picker-panel .epr-search:focus {
139
+ outline: none;
140
+ background: #ffffff;
141
+ }
142
+ .cap-emoji-picker-panel .epr-emoji-category-label {
143
+ background: rgba(255, 255, 255, 0.8);
144
+ backdrop-filter: blur(0.214rem);
145
+ color: #5e6c84;
146
+ font-size: 1rem;
147
+ font-weight: 500;
148
+ padding: 0.571rem 1.142rem;
149
+ }
150
+ .cap-emoji-picker-panel .epr-emoji {
151
+ border-radius: 0.428rem;
152
+ }
153
+ .cap-emoji-picker-panel .epr-emoji:hover {
154
+ background: #f4f5f7;
155
+ }
156
+ .cap-emoji-picker-panel .epr-emoji:focus {
157
+ outline: none;
158
+ }
159
+ .cap-emoji-picker-panel .epr-emoji-category-content {
160
+ background: #ffffff;
161
+ }
162
+ .cap-emoji-picker-panel .epr-body {
163
+ background: #ffffff;
164
+ }
165
+ .cap-emoji-picker-panel .epr-skin-tones-list {
166
+ background: transparent;
167
+ }
168
+ .cap-emoji-picker-panel .epr-skin-tone {
169
+ border-radius: 0.285rem;
170
+ padding: 0.285rem;
171
+ }
172
+ .cap-emoji-picker-panel .epr-skin-tone:hover {
173
+ background: #f4f5f7;
174
+ }
175
+ .cap-emoji-picker-panel .epr-preview {
176
+ background: #ffffff;
177
+ border-top: 1px solid #e8e8e8;
178
+ padding: 0.571rem 0.857rem;
179
+ font-size: 0.857rem;
180
+ color: #5e6c84;
181
+ min-height: 2.857rem;
182
+ display: flex;
183
+ align-items: center;
184
+ }
185
+ .cap-emoji-picker-panel .epr-preview-emoji-label {
186
+ color: #5e6c84;
187
+ font-size: 0.857rem;
188
+ }
189
+ .cap-emoji-picker-panel .epr-emoji-img {
190
+ margin-right: 0.571rem;
191
+ }
192
+ .cap-emoji-picker-panel .cap-emoji-picker-error-container {
193
+ width: 350px;
194
+ height: 450px;
195
+ display: flex;
196
+ flex-direction: column;
197
+ align-items: center;
198
+ justify-content: center;
199
+ color: #97a0af;
200
+ padding: 1.428rem;
201
+ text-align: center;
202
+ }
203
+ .cap-emoji-picker-panel .cap-emoji-picker-error-message {
204
+ margin-bottom: 1.142rem;
205
+ font-size: 1.143rem;
206
+ color: #ea213a;
207
+ }
208
+ .cap-emoji-picker-panel .cap-emoji-picker-retry-button {
209
+ padding: 0.571rem 1.142rem;
210
+ background-color: #2466ea;
211
+ color: #ffffff;
212
+ border: none;
213
+ border-radius: 0.285rem;
214
+ cursor: pointer;
215
+ font-size: 1rem;
216
+ transition: background-color 0.2s ease;
217
+ }
218
+ .cap-emoji-picker-panel .cap-emoji-picker-retry-button:hover {
219
+ background-color: rgba(36, 102, 234, 0.85);
220
+ }
221
+ .cap-emoji-picker-panel .cap-emoji-picker-retry-button:active {
222
+ background-color: rgba(36, 102, 234, 0.75);
223
+ }
224
+ .cap-emoji-picker-panel .cap-emoji-picker-loading-container {
225
+ width: 350px;
226
+ height: 450px;
227
+ display: flex;
228
+ align-items: center;
229
+ justify-content: center;
230
+ color: #97a0af;
231
+ }
@@ -0,0 +1,281 @@
1
+ @import '../styles/_variables.scss';
2
+ @import './_config.scss';
3
+
4
+ .#{$clsPrefix}-wrapper {
5
+ position: relative;
6
+ width: 100%;
7
+
8
+ .#{$clsPrefix}-trigger-container {
9
+ position: absolute;
10
+ right: $CAP_SPACE_04;
11
+ bottom: var(--emoji-trigger-bottom, $CAP_SPACE_04);
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ z-index: 10;
16
+
17
+ // TextArea positioning (default: right: 4px, bottom: 4px)
18
+ &.#{$clsPrefix}-trigger-textarea {
19
+ right: $CAP_SPACE_04;
20
+ bottom: var(--emoji-trigger-bottom, $CAP_SPACE_04);
21
+ }
22
+
23
+ // Regular Input positioning (right: 4px, bottom: 2px)
24
+ &.#{$clsPrefix}-trigger-input {
25
+ right: $CAP_SPACE_04;
26
+ bottom: var(--emoji-trigger-bottom, $CAP_SPACE_02);
27
+ }
28
+
29
+ // Search Input with value (right: 22px, bottom: 2px to avoid clear icon)
30
+ // Note: 1.571rem (22px) doesn't have a direct variable match, keeping as is for precise positioning
31
+ &.#{$clsPrefix}-trigger-search-with-value {
32
+ right: 1.571rem;
33
+ bottom: var(--emoji-trigger-bottom, $CAP_SPACE_02);
34
+ }
35
+ }
36
+ }
37
+
38
+ .#{$clsPrefix}-trigger {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ width: $CAP_SPACE_28;
43
+ height: $CAP_SPACE_28;
44
+ padding: 0;
45
+ border: none;
46
+ background: transparent;
47
+ cursor: pointer;
48
+ border-radius: 50%;
49
+ transition:
50
+ background-color 0.2s ease,
51
+ transform 0.2s ease;
52
+ z-index: 10;
53
+
54
+ &:hover:not(:disabled) {
55
+ background-color: rgba($CAP_G04, 0.1); // Light background on hover (rounded)
56
+ transform: scale(1.05);
57
+ }
58
+
59
+ &:active:not(:disabled) {
60
+ background-color: rgba($CAP_G04, 0.15);
61
+ transform: scale(0.95);
62
+ }
63
+
64
+ &:focus-visible {
65
+ outline: none;
66
+ background-color: rgba($CAP_G04, 0.1);
67
+ }
68
+
69
+ &:focus:not(:focus-visible) {
70
+ outline: none;
71
+ }
72
+
73
+ &:disabled {
74
+ cursor: not-allowed;
75
+ opacity: 0.6;
76
+ }
77
+
78
+ img {
79
+ width: 1rem;
80
+ height: 1rem;
81
+ display: block;
82
+ pointer-events: none;
83
+ }
84
+ }
85
+
86
+ // Override max-width constraint from .ant-popover.cap-popover-v2 specifically for emoji picker
87
+ .ant-popover.cap-popover-v2.#{$clsPrefix}-popover {
88
+ max-width: none;
89
+ }
90
+
91
+ .#{$clsPrefix}-popover {
92
+ // Increase specificity for Ant Design overrides by nesting under component class
93
+
94
+ & .ant-popover-inner {
95
+ padding: 0;
96
+ background: $CAP_WHITE;
97
+ border-radius: $CAP_SPACE_04;
98
+ }
99
+
100
+ & .ant-popover-content {
101
+ & .ant-popover-inner-content {
102
+ padding: 0;
103
+ }
104
+ }
105
+
106
+ & .ant-popover-arrow {
107
+ display: none;
108
+ }
109
+
110
+ & .ant-popover-inner-content {
111
+ background: $CAP_WHITE;
112
+ color: $FONT_COLOR_01;
113
+ }
114
+ }
115
+
116
+ .#{$clsPrefix}-panel {
117
+ width: fit-content;
118
+ background: $CAP_WHITE;
119
+ color: $FONT_COLOR_01;
120
+ color-scheme: light;
121
+ display: flex;
122
+ flex-direction: column;
123
+ border-radius: $CAP_SPACE_04;
124
+ overflow: hidden;
125
+
126
+ // emoji-picker-react dependency: ^4.5.0
127
+ // Style emoji-picker-react component to match design system
128
+ // Using CSS variables and class selectors for customization
129
+ & .epr-main {
130
+ background: $CAP_WHITE;
131
+ border: none;
132
+ border-radius: $CAP_SPACE_04;
133
+ }
134
+
135
+ & .epr-search-container {
136
+ background: $CAP_WHITE;
137
+ }
138
+
139
+ & .epr-search {
140
+ background: $CAP_WHITE;
141
+ color: $FONT_COLOR_01;
142
+ border: none;
143
+ padding: 0.714rem $CAP_SPACE_12;
144
+ font-size: $FONT_SIZE_M;
145
+
146
+ &::placeholder {
147
+ color: $CAP_G05;
148
+ }
149
+
150
+ &:focus {
151
+ outline: none;
152
+ background: $CAP_WHITE;
153
+ }
154
+ }
155
+
156
+ & .epr-emoji-category-label {
157
+ background: rgba($CAP_WHITE, 0.8);
158
+ backdrop-filter: blur($CAP_SPACE_03);
159
+ color: $FONT_COLOR_02;
160
+ font-size: $FONT_SIZE_M;
161
+ font-weight: $FONT_WEIGHT_MEDIUM;
162
+ padding: $CAP_SPACE_08 $CAP_SPACE_16;
163
+ }
164
+
165
+ & .epr-emoji {
166
+ border-radius: $CAP_SPACE_06;
167
+
168
+ &:hover {
169
+ background: $CAP_G09;
170
+ }
171
+
172
+ &:focus {
173
+ outline: none;
174
+ }
175
+ }
176
+
177
+ & .epr-emoji-category-content {
178
+ background: $CAP_WHITE;
179
+ }
180
+
181
+ & .epr-body {
182
+ background: $CAP_WHITE;
183
+ }
184
+
185
+ & .epr-skin-tones-list {
186
+ background: transparent;
187
+ }
188
+
189
+ & .epr-skin-tone {
190
+ border-radius: $CAP_SPACE_04;
191
+ padding: $CAP_SPACE_04;
192
+
193
+ &:hover {
194
+ background: $CAP_G09;
195
+ }
196
+ }
197
+
198
+ // Style the built-in preview section
199
+ & .epr-preview {
200
+ background: $CAP_WHITE;
201
+ border-top: 1px solid $CAP_G12;
202
+ padding: $CAP_SPACE_08 $CAP_SPACE_12;
203
+ font-size: $FONT_SIZE_S;
204
+ color: $FONT_COLOR_02;
205
+ min-height: $CAP_SPACE_40;
206
+ display: flex;
207
+ align-items: center;
208
+ }
209
+
210
+ & .epr-preview-emoji-label {
211
+ color: $FONT_COLOR_02;
212
+ font-size: $FONT_SIZE_S;
213
+ }
214
+
215
+ & .epr-emoji-img {
216
+ margin-right: $CAP_SPACE_08;
217
+ }
218
+
219
+ // Override emoji-picker-react CSS variables for theming
220
+ --epr-bg-color: #{$CAP_WHITE};
221
+ --epr-text-color: #{$FONT_COLOR_01};
222
+ --epr-category-label-bg-color: #{$CAP_WHITE};
223
+ --epr-category-label-text-color: #{$FONT_COLOR_02};
224
+ --epr-hover-bg-color: #{$CAP_G09};
225
+ --epr-search-input-bg-color: #{$CAP_WHITE};
226
+ --epr-search-input-text-color: #{$FONT_COLOR_01};
227
+ --epr-search-input-border-color: #{$CAP_G12};
228
+ --epr-search-input-placeholder-color: #{$CAP_G05};
229
+ --epr-picker-border-color: #{$CAP_G12};
230
+ --epr-preview-bg-color: #{$CAP_WHITE};
231
+ --epr-preview-text-color: #{$FONT_COLOR_02};
232
+ --epr-preview-border-color: #{$CAP_G12};
233
+
234
+ // Error state styles
235
+ & .#{$clsPrefix}-error-container {
236
+ width: 350px;
237
+ height: 450px;
238
+ display: flex;
239
+ flex-direction: column;
240
+ align-items: center;
241
+ justify-content: center;
242
+ color: $CAP_G05;
243
+ padding: $CAP_SPACE_20;
244
+ text-align: center;
245
+ }
246
+
247
+ & .#{$clsPrefix}-error-message {
248
+ margin-bottom: $CAP_SPACE_16;
249
+ font-size: $FONT_SIZE_L;
250
+ color: $CAP_RED;
251
+ }
252
+
253
+ & .#{$clsPrefix}-retry-button {
254
+ padding: $CAP_SPACE_08 $CAP_SPACE_16;
255
+ background-color: $FONT_COLOR_05;
256
+ color: $CAP_WHITE;
257
+ border: none;
258
+ border-radius: $CAP_SPACE_04;
259
+ cursor: pointer;
260
+ font-size: $FONT_SIZE_M;
261
+ transition: background-color 0.2s ease;
262
+
263
+ &:hover {
264
+ background-color: rgba($FONT_COLOR_05, 0.85);
265
+ }
266
+
267
+ &:active {
268
+ background-color: rgba($FONT_COLOR_05, 0.75);
269
+ }
270
+ }
271
+
272
+ // Loading state styles
273
+ & .#{$clsPrefix}-loading-container {
274
+ width: 350px;
275
+ height: 450px;
276
+ display: flex;
277
+ align-items: center;
278
+ justify-content: center;
279
+ color: $CAP_G05;
280
+ }
281
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CapEmojiPicker SCSS Configuration
3
+ *
4
+ * Note: This variable should match the CLS_PREFIX constant in components/CapEmojiPicker/constants.js
5
+ * If you change this value, also update constants.js
6
+ */
7
+ $clsPrefix: 'cap-emoji-picker';
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.66667 10.3333C7.25556 10.3333 7.81389 10.2056 8.34167 9.95C8.86944 9.69444 9.29444 9.32222 9.61667 8.83333C9.73889 8.64444 9.75556 8.45833 9.66667 8.275C9.57778 8.09167 9.43333 8 9.23333 8C9.14444 8 9.06389 8.01944 8.99167 8.05833C8.91944 8.09722 8.86111 8.15555 8.81667 8.23333C8.56111 8.57778 8.24444 8.84722 7.86667 9.04167C7.48889 9.23611 7.08889 9.33333 6.66667 9.33333C6.24444 9.33333 5.84444 9.23611 5.46667 9.04167C5.08889 8.84722 4.77222 8.57778 4.51667 8.23333C4.46111 8.15555 4.39722 8.09722 4.325 8.05833C4.25278 8.01944 4.17222 8 4.08333 8C3.88333 8 3.73889 8.08889 3.65 8.26667C3.56111 8.44444 3.57778 8.62222 3.7 8.8C4.02222 9.3 4.44722 9.68056 4.975 9.94167C5.50278 10.2028 6.06667 10.3333 6.66667 10.3333ZM9 6C9.27778 6 9.51389 5.90278 9.70833 5.70833C9.90278 5.51389 10 5.27778 10 5C10 4.72222 9.90278 4.48611 9.70833 4.29167C9.51389 4.09722 9.27778 4 9 4C8.72222 4 8.48611 4.09722 8.29167 4.29167C8.09722 4.48611 8 4.72222 8 5C8 5.27778 8.09722 5.51389 8.29167 5.70833C8.48611 5.90278 8.72222 6 9 6ZM4.33333 6C4.61111 6 4.84722 5.90278 5.04167 5.70833C5.23611 5.51389 5.33333 5.27778 5.33333 5C5.33333 4.72222 5.23611 4.48611 5.04167 4.29167C4.84722 4.09722 4.61111 4 4.33333 4C4.05556 4 3.81944 4.09722 3.625 4.29167C3.43056 4.48611 3.33333 4.72222 3.33333 5C3.33333 5.27778 3.43056 5.51389 3.625 5.70833C3.81944 5.90278 4.05556 6 4.33333 6ZM6.66667 13.3333C5.74444 13.3333 4.87778 13.1583 4.06667 12.8083C3.25556 12.4583 2.55 11.9833 1.95 11.3833C1.35 10.7833 0.875 10.0778 0.525 9.26667C0.175 8.45555 0 7.58889 0 6.66667C0 5.74444 0.175 4.87778 0.525 4.06667C0.875 3.25556 1.35 2.55 1.95 1.95C2.55 1.35 3.25556 0.875 4.06667 0.525C4.87778 0.175 5.74444 0 6.66667 0C7.58889 0 8.45555 0.175 9.26667 0.525C10.0778 0.875 10.7833 1.35 11.3833 1.95C11.9833 2.55 12.4583 3.25556 12.8083 4.06667C13.1583 4.87778 13.3333 5.74444 13.3333 6.66667C13.3333 7.58889 13.1583 8.45555 12.8083 9.26667C12.4583 10.0778 11.9833 10.7833 11.3833 11.3833C10.7833 11.9833 10.0778 12.4583 9.26667 12.8083C8.45555 13.1583 7.58889 13.3333 6.66667 13.3333ZM6.66667 12C8.15555 12 9.41667 11.4833 10.45 10.45C11.4833 9.41667 12 8.15555 12 6.66667C12 5.17778 11.4833 3.91667 10.45 2.88333C9.41667 1.85 8.15555 1.33333 6.66667 1.33333C5.17778 1.33333 3.91667 1.85 2.88333 2.88333C1.85 3.91667 1.33333 5.17778 1.33333 6.66667C1.33333 8.15555 1.85 9.41667 2.88333 10.45C3.91667 11.4833 5.17778 12 6.66667 12Z" fill="#5E6C84"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ const emojiIcon = "data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.66667%2010.3333C7.25556%2010.3333%207.81389%2010.2056%208.34167%209.95C8.86944%209.69444%209.29444%209.32222%209.61667%208.83333C9.73889%208.64444%209.75556%208.45833%209.66667%208.275C9.57778%208.09167%209.43333%208%209.23333%208C9.14444%208%209.06389%208.01944%208.99167%208.05833C8.91944%208.09722%208.86111%208.15555%208.81667%208.23333C8.56111%208.57778%208.24444%208.84722%207.86667%209.04167C7.48889%209.23611%207.08889%209.33333%206.66667%209.33333C6.24444%209.33333%205.84444%209.23611%205.46667%209.04167C5.08889%208.84722%204.77222%208.57778%204.51667%208.23333C4.46111%208.15555%204.39722%208.09722%204.325%208.05833C4.25278%208.01944%204.17222%208%204.08333%208C3.88333%208%203.73889%208.08889%203.65%208.26667C3.56111%208.44444%203.57778%208.62222%203.7%208.8C4.02222%209.3%204.44722%209.68056%204.975%209.94167C5.50278%2010.2028%206.06667%2010.3333%206.66667%2010.3333ZM9%206C9.27778%206%209.51389%205.90278%209.70833%205.70833C9.90278%205.51389%2010%205.27778%2010%205C10%204.72222%209.90278%204.48611%209.70833%204.29167C9.51389%204.09722%209.27778%204%209%204C8.72222%204%208.48611%204.09722%208.29167%204.29167C8.09722%204.48611%208%204.72222%208%205C8%205.27778%208.09722%205.51389%208.29167%205.70833C8.48611%205.90278%208.72222%206%209%206ZM4.33333%206C4.61111%206%204.84722%205.90278%205.04167%205.70833C5.23611%205.51389%205.33333%205.27778%205.33333%205C5.33333%204.72222%205.23611%204.48611%205.04167%204.29167C4.84722%204.09722%204.61111%204%204.33333%204C4.05556%204%203.81944%204.09722%203.625%204.29167C3.43056%204.48611%203.33333%204.72222%203.33333%205C3.33333%205.27778%203.43056%205.51389%203.625%205.70833C3.81944%205.90278%204.05556%206%204.33333%206ZM6.66667%2013.3333C5.74444%2013.3333%204.87778%2013.1583%204.06667%2012.8083C3.25556%2012.4583%202.55%2011.9833%201.95%2011.3833C1.35%2010.7833%200.875%2010.0778%200.525%209.26667C0.175%208.45555%200%207.58889%200%206.66667C0%205.74444%200.175%204.87778%200.525%204.06667C0.875%203.25556%201.35%202.55%201.95%201.95C2.55%201.35%203.25556%200.875%204.06667%200.525C4.87778%200.175%205.74444%200%206.66667%200C7.58889%200%208.45555%200.175%209.26667%200.525C10.0778%200.875%2010.7833%201.35%2011.3833%201.95C11.9833%202.55%2012.4583%203.25556%2012.8083%204.06667C13.1583%204.87778%2013.3333%205.74444%2013.3333%206.66667C13.3333%207.58889%2013.1583%208.45555%2012.8083%209.26667C12.4583%2010.0778%2011.9833%2010.7833%2011.3833%2011.3833C10.7833%2011.9833%2010.0778%2012.4583%209.26667%2012.8083C8.45555%2013.1583%207.58889%2013.3333%206.66667%2013.3333ZM6.66667%2012C8.15555%2012%209.41667%2011.4833%2010.45%2010.45C11.4833%209.41667%2012%208.15555%2012%206.66667C12%205.17778%2011.4833%203.91667%2010.45%202.88333C9.41667%201.85%208.15555%201.33333%206.66667%201.33333C5.17778%201.33333%203.91667%201.85%202.88333%202.88333C1.85%203.91667%201.33333%205.17778%201.33333%206.66667C1.33333%208.15555%201.85%209.41667%202.88333%2010.45C3.91667%2011.4833%205.17778%2012%206.66667%2012Z'%20fill='%235E6C84'/%3e%3c/svg%3e";
2
+ export {
3
+ emojiIcon as default
4
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Class prefix constant for CapEmojiPicker component
3
+ * Used across all CapEmojiPicker sub-components for consistent class naming
4
+ *
5
+ * Note: This constant should match the $clsPrefix variable in _config.scss
6
+ * If you change this value, also update _config.scss
7
+ */
8
+ export declare const CLS_PREFIX = "cap-emoji-picker";
9
+ /**
10
+ * Constants for HTML tag names
11
+ * Used to identify input and textarea elements
12
+ */
13
+ export declare const INPUT_TAG = "INPUT";
14
+ export declare const TEXTAREA_TAG = "TEXTAREA";
15
+ /**
16
+ * CSS selector for input and textarea elements
17
+ * Used to query DOM for input/textarea elements
18
+ */
19
+ export declare const INPUT_TEXTAREA_SELECTOR = "input, textarea";
20
+ /**
21
+ * Emoji picker dimensions
22
+ * Used for both the picker component and loading fallback
23
+ */
24
+ export declare const PICKER_WIDTH = 350;
25
+ export declare const PICKER_HEIGHT = 450;
26
+ /**
27
+ * Default popover placement for emoji picker
28
+ */
29
+ export declare const DEFAULT_POPOVER_PLACEMENT = "rightTop";
30
+ /**
31
+ * Loading fallback text color
32
+ */
33
+ export declare const LOADING_FALLBACK_COLOR = "#999";
34
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../components/CapEmojiPicker/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAAa,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,sBAAsB,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ const CLS_PREFIX = "cap-emoji-picker";
2
+ const INPUT_TAG = "INPUT";
3
+ const TEXTAREA_TAG = "TEXTAREA";
4
+ const INPUT_TEXTAREA_SELECTOR = "input, textarea";
5
+ const PICKER_WIDTH = 350;
6
+ const PICKER_HEIGHT = 450;
7
+ const DEFAULT_POPOVER_PLACEMENT = "rightTop";
8
+ const LOADING_FALLBACK_COLOR = "#999";
9
+ export {
10
+ CLS_PREFIX,
11
+ DEFAULT_POPOVER_PLACEMENT,
12
+ INPUT_TAG,
13
+ INPUT_TEXTAREA_SELECTOR,
14
+ LOADING_FALLBACK_COLOR,
15
+ PICKER_HEIGHT,
16
+ PICKER_WIDTH,
17
+ TEXTAREA_TAG
18
+ };
@@ -0,0 +1,4 @@
1
+ import './_capEmojiPicker.scss';
2
+ declare const CapEmojiPicker: import("react").ComponentType<Omit<import("react-intl").WrappedComponentProps, "intl">>;
3
+ export default CapEmojiPicker;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../components/CapEmojiPicker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAKhC,QAAA,MAAM,cAAc,yFAAU,CAAC;AAM/B,eAAe,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import './_capEmojiPicker.css';/* empty css */
2
+ import Picker from "./Picker/index.js";
3
+ import TriggerButton from "./TriggerButton/index.js";
4
+ import Wrapper from "./Wrapper/index.js";
5
+ const CapEmojiPicker = Wrapper;
6
+ CapEmojiPicker.TriggerButton = TriggerButton;
7
+ CapEmojiPicker.Picker = Picker;
8
+ CapEmojiPicker.Wrapper = Wrapper;
9
+ export {
10
+ CapEmojiPicker as default
11
+ };
@@ -0,0 +1,20 @@
1
+ /** Ref or element that may wrap an input/textarea (e.g. Ant Design Input/TextArea) */
2
+ interface InputRefLike {
3
+ current?: HTMLInputElement | HTMLTextAreaElement | InputRefLike | null;
4
+ input?: HTMLInputElement;
5
+ resizableTextArea?: {
6
+ textArea: HTMLTextAreaElement;
7
+ };
8
+ textAreaRef?: HTMLTextAreaElement;
9
+ }
10
+ type InputRefCandidate = InputRefLike | HTMLInputElement | HTMLTextAreaElement | null;
11
+ /**
12
+ * Resolve the actual input/textarea element from various ref formats
13
+ * Supports both Ant Design Input and Input.TextArea structures
14
+ *
15
+ * @param candidate - The ref or element to resolve
16
+ * @returns The resolved input/textarea element, or null if not found
17
+ */
18
+ declare const resolveInputElement: (candidate: InputRefCandidate) => HTMLInputElement | HTMLTextAreaElement | null;
19
+ export { resolveInputElement };
20
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../components/CapEmojiPicker/utils.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,GAAG,IAAI,CAAC;IACvE,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAA;KAAE,CAAC;IACtD,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,KAAK,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,IAAI,CAAC;AAEtF;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB,GACvB,WAAW,iBAAiB,KAC3B,gBAAgB,GAAG,mBAAmB,GAAG,IA0B3C,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { INPUT_TAG, TEXTAREA_TAG } from "./constants.js";
2
+ const resolveInputElement = (candidate) => {
3
+ var _a;
4
+ if (!candidate) {
5
+ return null;
6
+ }
7
+ const refTarget = candidate.current || candidate;
8
+ if ([INPUT_TAG, TEXTAREA_TAG].includes(refTarget == null ? void 0 : refTarget.tagName)) {
9
+ return refTarget;
10
+ }
11
+ if ((_a = refTarget == null ? void 0 : refTarget.resizableTextArea) == null ? void 0 : _a.textArea) {
12
+ return refTarget.resizableTextArea.textArea;
13
+ }
14
+ if (refTarget == null ? void 0 : refTarget.textAreaRef) {
15
+ return refTarget.textAreaRef;
16
+ }
17
+ if (refTarget == null ? void 0 : refTarget.input) {
18
+ return refTarget.input;
19
+ }
20
+ return refTarget;
21
+ };
22
+ export {
23
+ resolveInputElement
24
+ };