@abcagency/hc-ui-components 1.3.14 → 1.3.16

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 (166) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
  2. package/dist/apis/hcApi.js +1 -1
  3. package/dist/apis/hcApi.js.map +1 -1
  4. package/dist/clientToken.js.map +1 -1
  5. package/dist/components/HireControlMap.js +15 -5
  6. package/dist/components/HireControlMap.js.map +1 -1
  7. package/dist/components/modules/accordions/MapAccordionItem.js +11 -1
  8. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
  9. package/dist/components/modules/accordions/default.js.map +1 -1
  10. package/dist/components/modules/accordions/filterItem.js +2 -1
  11. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  12. package/dist/components/modules/accordions/filters.js +0 -3
  13. package/dist/components/modules/accordions/filters.js.map +1 -1
  14. package/dist/components/modules/buttons/button-group-apply.js +36 -15
  15. package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
  16. package/dist/components/modules/buttons/commute-pill.js.map +1 -1
  17. package/dist/components/modules/buttons/default.js.map +1 -1
  18. package/dist/components/modules/buttons/items-pill.js.map +1 -1
  19. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
  20. package/dist/components/modules/buttons/show-all-button.js.map +1 -1
  21. package/dist/components/modules/cards/default.js.map +1 -1
  22. package/dist/components/modules/cards/filter.js.map +1 -1
  23. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
  24. package/dist/components/modules/filter/commute.js +22 -6
  25. package/dist/components/modules/filter/commute.js.map +1 -1
  26. package/dist/components/modules/filter/index.js +7 -0
  27. package/dist/components/modules/filter/index.js.map +1 -1
  28. package/dist/components/modules/filter/item.js +16 -1
  29. package/dist/components/modules/filter/item.js.map +1 -1
  30. package/dist/components/modules/filter/location.js +1 -1
  31. package/dist/components/modules/filter/location.js.map +1 -1
  32. package/dist/components/modules/filter/points-of-interest.js.map +1 -1
  33. package/dist/components/modules/filter/radio-item.js +7 -0
  34. package/dist/components/modules/filter/radio-item.js.map +1 -1
  35. package/dist/components/modules/filter/search.js.map +1 -1
  36. package/dist/components/modules/filter/sort.js.map +1 -1
  37. package/dist/components/modules/grid.js.map +1 -1
  38. package/dist/components/modules/icon.js.map +1 -1
  39. package/dist/components/modules/jobListing/listing-details.js +6 -0
  40. package/dist/components/modules/jobListing/listing-details.js.map +1 -1
  41. package/dist/components/modules/maps/info-window-card.js.map +1 -1
  42. package/dist/components/modules/maps/info-window-content.js +20 -0
  43. package/dist/components/modules/maps/info-window-content.js.map +1 -1
  44. package/dist/components/modules/maps/list/field-mapper.js.map +1 -1
  45. package/dist/components/modules/maps/list/header-item.js.map +1 -1
  46. package/dist/components/modules/maps/list/header.js.map +1 -1
  47. package/dist/components/modules/maps/list/index.js +21 -12
  48. package/dist/components/modules/maps/list/index.js.map +1 -1
  49. package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -1
  50. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -1
  51. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -1
  52. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -1
  53. package/dist/components/modules/maps/list/list-item/index.js +12 -2
  54. package/dist/components/modules/maps/list/list-item/index.js.map +1 -1
  55. package/dist/components/modules/maps/map-list.js.map +1 -1
  56. package/dist/components/modules/maps/map-marker.js +10 -0
  57. package/dist/components/modules/maps/map-marker.js.map +1 -1
  58. package/dist/components/modules/maps/map.js.map +1 -1
  59. package/dist/components/modules/maps/place-marker.js.map +1 -1
  60. package/dist/components/modules/maps/tabs.js.map +1 -1
  61. package/dist/constants/eventTypes.js +16 -0
  62. package/dist/constants/eventTypes.js.map +1 -0
  63. package/dist/constants/placeTypes.js.map +1 -1
  64. package/dist/contexts/mapContext.js +9 -27
  65. package/dist/contexts/mapContext.js.map +1 -1
  66. package/dist/contexts/mapListContext.js +57 -38
  67. package/dist/contexts/mapListContext.js.map +1 -1
  68. package/dist/contexts/placesContext.js.map +1 -1
  69. package/dist/contexts/trackEventContext.js +20 -0
  70. package/dist/contexts/trackEventContext.js.map +1 -0
  71. package/dist/hooks/useList.js +1 -13
  72. package/dist/hooks/useList.js.map +1 -1
  73. package/dist/services/apis/hcApi.js +1 -1
  74. package/dist/services/apis/hcApi.js.map +1 -1
  75. package/dist/services/clientToken.js.map +1 -1
  76. package/dist/services/configService.js.map +1 -1
  77. package/dist/services/googlePlacesNearbyService.js.map +1 -1
  78. package/dist/services/listingAggregatorService.js +43 -16
  79. package/dist/services/listingAggregatorService.js.map +1 -1
  80. package/dist/services/listingEntityService.js.map +1 -1
  81. package/dist/services/listingService.js.map +1 -1
  82. package/dist/services/recruiterService.js.map +1 -1
  83. package/dist/util/filterUtil.js.map +1 -1
  84. package/dist/util/loading.js.map +1 -1
  85. package/dist/util/localStorageUtil.js.map +1 -1
  86. package/dist/util/mapIconUtil.js.map +1 -1
  87. package/dist/util/mapUtil.js.map +1 -1
  88. package/dist/util/sortUtil.js.map +1 -1
  89. package/dist/util/stringUtils.js.map +1 -1
  90. package/jsconfig.json +7 -7
  91. package/package.json +60 -60
  92. package/postcss.config.js +13 -13
  93. package/preset.default.js +15 -15
  94. package/rollup.config.mjs +88 -87
  95. package/src/apis/hcApi.js +93 -93
  96. package/src/clientToken.js +9 -9
  97. package/src/components/HireControlMap.js +129 -124
  98. package/src/components/modules/accordions/MapAccordionItem.js +74 -72
  99. package/src/components/modules/accordions/default.js +171 -171
  100. package/src/components/modules/accordions/filterItem.js +55 -53
  101. package/src/components/modules/accordions/filters.js +47 -47
  102. package/src/components/modules/buttons/button-group-apply.js +123 -116
  103. package/src/components/modules/buttons/commute-pill.js +22 -22
  104. package/src/components/modules/buttons/default.js +194 -194
  105. package/src/components/modules/buttons/items-pill.js +35 -35
  106. package/src/components/modules/buttons/pill-wrapper.js +27 -27
  107. package/src/components/modules/buttons/show-all-button.js +20 -20
  108. package/src/components/modules/cards/default.js +167 -167
  109. package/src/components/modules/cards/filter.js +56 -56
  110. package/src/components/modules/dialogs/apply-dialog.js +48 -48
  111. package/src/components/modules/filter/commute.js +154 -149
  112. package/src/components/modules/filter/index.js +89 -87
  113. package/src/components/modules/filter/item.js +87 -76
  114. package/src/components/modules/filter/location.js +71 -71
  115. package/src/components/modules/filter/points-of-interest.js +44 -44
  116. package/src/components/modules/filter/radio-item.js +57 -53
  117. package/src/components/modules/filter/search.js +92 -92
  118. package/src/components/modules/filter/sort.js +83 -83
  119. package/src/components/modules/grid.js +54 -54
  120. package/src/components/modules/icon.js +33 -33
  121. package/src/components/modules/jobListing/listing-details.js +99 -95
  122. package/src/components/modules/maps/info-window-card.js +17 -17
  123. package/src/components/modules/maps/info-window-content.js +81 -74
  124. package/src/components/modules/maps/list/field-mapper.js +112 -112
  125. package/src/components/modules/maps/list/header-item.js +91 -91
  126. package/src/components/modules/maps/list/header.js +47 -47
  127. package/src/components/modules/maps/list/index.js +112 -107
  128. package/src/components/modules/maps/list/item-expand-card/index.js +22 -22
  129. package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -50
  130. package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -68
  131. package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
  132. package/src/components/modules/maps/list/list-item/index.js +135 -133
  133. package/src/components/modules/maps/map-list.js +74 -74
  134. package/src/components/modules/maps/map-marker.js +88 -86
  135. package/src/components/modules/maps/map.js +230 -230
  136. package/src/components/modules/maps/place-marker.js +41 -41
  137. package/src/components/modules/maps/tabs.js +81 -81
  138. package/src/constants/eventTypes.js +13 -0
  139. package/src/constants/placeTypes.js +8 -8
  140. package/src/contexts/mapContext.js +101 -115
  141. package/src/contexts/mapListContext.js +242 -222
  142. package/src/contexts/placesContext.js +102 -102
  143. package/src/contexts/trackEventContext.js +14 -0
  144. package/src/hooks/useList.js +89 -100
  145. package/src/index.js +3 -3
  146. package/src/services/configService.js +16 -16
  147. package/src/services/googlePlacesNearbyService.js +33 -33
  148. package/src/services/listingAggregatorService.js +50 -45
  149. package/src/services/listingEntityService.js +15 -15
  150. package/src/services/listingService.js +26 -26
  151. package/src/services/recruiterService.js +17 -17
  152. package/src/styles/index.css +23 -23
  153. package/src/util/arrayUtil.js +3 -3
  154. package/src/util/fieldMapper.js +22 -22
  155. package/src/util/filterUtil.js +195 -195
  156. package/src/util/loading.js +17 -17
  157. package/src/util/localStorageUtil.js +26 -26
  158. package/src/util/mapIconUtil.js +180 -180
  159. package/src/util/mapUtil.js +91 -91
  160. package/src/util/sortUtil.js +32 -32
  161. package/src/util/stringUtils.js +6 -6
  162. package/src/util/urlFilterUtil.js +90 -90
  163. package/tailwind.config.js +126 -126
  164. package/.editorconfig +0 -12
  165. package/.eslintrc +0 -105
  166. package/.prettierignore +0 -3
@@ -1,35 +1,35 @@
1
- import React from 'react';
2
- import { forwardRef } from 'react';
3
-
4
- import Button from '~/components/modules/buttons/default';
5
-
6
- export const ButtonItemsPill = forwardRef((
7
- {
8
- className,
9
- activeItemsCount,
10
- ...props
11
- },
12
- ref
13
- ) => {
14
- return (
15
- <Button.Btn
16
- ref={ref}
17
- size="none"
18
- variant="none"
19
- className={`
20
- hc-relative hc-z-[2] hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20
21
- ${className ?? ''}
22
- `}
23
- {...props}
24
- >
25
- {activeItemsCount > 9 ? '9+' : activeItemsCount}
26
- <Button.Icon
27
- icon="uil:times"
28
- size="hc-size-3.5"
29
- />
30
- </Button.Btn>
31
- );
32
- });
33
-
34
- ButtonItemsPill.displayName = 'ButtonItemsPill';
35
- export default ButtonItemsPill;
1
+ import React from 'react';
2
+ import { forwardRef } from 'react';
3
+
4
+ import Button from '~/components/modules/buttons/default';
5
+
6
+ export const ButtonItemsPill = forwardRef((
7
+ {
8
+ className,
9
+ activeItemsCount,
10
+ ...props
11
+ },
12
+ ref
13
+ ) => {
14
+ return (
15
+ <Button.Btn
16
+ ref={ref}
17
+ size="none"
18
+ variant="none"
19
+ className={`
20
+ hc-relative hc-z-[2] hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20
21
+ ${className ?? ''}
22
+ `}
23
+ {...props}
24
+ >
25
+ {activeItemsCount > 9 ? '9+' : activeItemsCount}
26
+ <Button.Icon
27
+ icon="uil:times"
28
+ size="hc-size-3.5"
29
+ />
30
+ </Button.Btn>
31
+ );
32
+ });
33
+
34
+ ButtonItemsPill.displayName = 'ButtonItemsPill';
35
+ export default ButtonItemsPill;
@@ -1,27 +1,27 @@
1
- import React, { forwardRef } from 'react';
2
-
3
- import Button from '~/components/modules/buttons/default';
4
-
5
- export const PillWrapper = forwardRef((
6
- {
7
- className,
8
- children,
9
- ...props
10
- },
11
- ref
12
- ) => {
13
- return (
14
- <Button.Btn
15
- ref={ref}
16
- size="none"
17
- variant="none"
18
- className={`hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20 ${className}`}
19
- {...props}
20
- >
21
- {children}
22
- </Button.Btn>
23
- );
24
- });
25
-
26
- PillWrapper.displayName = 'PillWrapper';
27
- export default PillWrapper;
1
+ import React, { forwardRef } from 'react';
2
+
3
+ import Button from '~/components/modules/buttons/default';
4
+
5
+ export const PillWrapper = forwardRef((
6
+ {
7
+ className,
8
+ children,
9
+ ...props
10
+ },
11
+ ref
12
+ ) => {
13
+ return (
14
+ <Button.Btn
15
+ ref={ref}
16
+ size="none"
17
+ variant="none"
18
+ className={`hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20 ${className}`}
19
+ {...props}
20
+ >
21
+ {children}
22
+ </Button.Btn>
23
+ );
24
+ });
25
+
26
+ PillWrapper.displayName = 'PillWrapper';
27
+ export default PillWrapper;
@@ -1,20 +1,20 @@
1
- import React from 'react';
2
-
3
- const ShowAllButton = ({ mapInteracted, markerConfigs, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {
4
- if (!mapInteracted || !markerConfigs) {
5
- return null;
6
- }
7
-
8
- return (
9
- <button
10
- style={{ fontFamily: 'Roboto, Arial, sans-serif', fontSize: '14px', fontWeight: '500' }}
11
- className="hc-absolute hc-bottom-10 hc-left-2.5 hc-z-10 hc-flex hc-items-center hc-justify-center hc-pl-2 hc-pb-1 hc-pt-1.5 hc-pr-3 hc-bg-white hc-text-black hc-border-none hc-rounded-full hc-shadow hc-cursor-pointer hc-text-sm hc-font-medium"
12
- onClick={() => { setMapInteracted(false); fitBounds(mapRef.current, true); if (listingCount < 2) { setSelectedFilters({}); setQuery(null); }; }}
13
- >
14
- <img src={pinIconUrl} alt="Pin Icon" className="hc-size-5" />
15
- Show All
16
- </button>
17
- );
18
- };
19
-
20
- export default ShowAllButton;
1
+ import React from 'react';
2
+
3
+ const ShowAllButton = ({ mapInteracted, markerConfigs, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {
4
+ if (!mapInteracted || !markerConfigs) {
5
+ return null;
6
+ }
7
+
8
+ return (
9
+ <button
10
+ style={{ fontFamily: 'Roboto, Arial, sans-serif', fontSize: '14px', fontWeight: '500' }}
11
+ className="hc-absolute hc-bottom-10 hc-left-2.5 hc-z-10 hc-flex hc-items-center hc-justify-center hc-pl-2 hc-pb-1 hc-pt-1.5 hc-pr-3 hc-bg-white hc-text-black hc-border-none hc-rounded-full hc-shadow hc-cursor-pointer hc-text-sm hc-font-medium"
12
+ onClick={() => { setMapInteracted(false); fitBounds(mapRef.current, true); if (listingCount < 2) { setSelectedFilters({}); setQuery(null); }; }}
13
+ >
14
+ <img src={pinIconUrl} alt="Pin Icon" className="hc-size-5" />
15
+ Show All
16
+ </button>
17
+ );
18
+ };
19
+
20
+ export default ShowAllButton;
@@ -1,167 +1,167 @@
1
- import React, { forwardRef } from 'react';
2
- import { Link } from 'react-router-dom';
3
- import { twMerge } from 'tailwind-merge';
4
-
5
- const cardClasses = (className, hasShadow) => twMerge(
6
- 'hc-relative hc-flex hc-flex-wrap hc-flex-col hc-bg-clip-border hc-break-words hc-bg-white hc-border hc-border-gray-100',
7
- hasShadow ? 'hc-shadow-lg' : '',
8
- className ?? ''
9
- );
10
-
11
- const Card = ({ children }) => {
12
- return (
13
- <>{children}</>
14
- );
15
- };
16
-
17
- export const CardDefault = forwardRef((
18
- {
19
- as = 'div',
20
- className,
21
- hasShadow = false,
22
- image,
23
- body,
24
- children,
25
- footer,
26
- ...rest
27
- },
28
- ref
29
- ) => {
30
- const Container = as;
31
-
32
- return (
33
- <Container
34
- ref={ref}
35
- className={cardClasses(className, hasShadow)}
36
- {...rest}
37
- >
38
- {image}
39
- {children}
40
- {body}
41
- {footer}
42
- </Container>
43
- );
44
- });
45
-
46
- const CardLink = ({
47
- as = 'link',
48
- href,
49
- className,
50
- hasShadow = false,
51
- image,
52
- body,
53
- children,
54
- footer,
55
- ...rest
56
- }) => {
57
- const Container = as === 'link' ? Link : as;
58
-
59
- return (
60
- <Container
61
- to={href}
62
- className={twMerge(
63
- cardClasses(className, hasShadow),
64
- 'hc-group hc-transition hover:hc-shadow-xl hover:hc-border-indigo-300 focus:hc-shadow-xl focus:hc-border-indigo-300'
65
- )}
66
- {...rest}
67
- >
68
- {image && image}
69
- {children}
70
- {body && body}
71
- {footer && footer}
72
- </Container>
73
- );
74
- };
75
-
76
- export const CardImage = ({
77
- image,
78
- alt,
79
- className,
80
- imageClassName,
81
- ...rest
82
- }) => {
83
- return (
84
- <div
85
- className={twMerge(
86
- 'hc-w-full',
87
- className ?? ''
88
- )}
89
- >
90
- <img
91
- src={typeof image === 'string' ? image : image.src}
92
- width={image.width ? image.width : null}
93
- height={image.height ? image.height : null}
94
- alt={alt ?? ''}
95
- className={twMerge(
96
- 'hc-w-full hc-h-auto',
97
- imageClassName ?? ''
98
- )}
99
- {...rest}
100
- />
101
- </div>
102
- );
103
- };
104
-
105
- export const CardBody = ({
106
- children,
107
- className
108
- }) => {
109
- return (
110
- <div
111
- className={twMerge(
112
- 'hc-flex-auto hc-p-4 md:hc-px-6 lg:hc-px-8',
113
- className ?? ''
114
- )}
115
- >
116
- {children}
117
- </div>
118
- );
119
- };
120
-
121
- export const CardTitle = ({
122
- as = 'h3',
123
- children,
124
- className,
125
- ...rest
126
- }) => {
127
- const Title = as;
128
-
129
- return (
130
- <Title
131
- className={twMerge(
132
- 'hc-text-2xl hc-font-bold',
133
- className ?? ''
134
- )}
135
- {...rest}
136
- >
137
- {children}
138
- </Title>
139
- );
140
- };
141
-
142
- export const CardFooter = ({
143
- children,
144
- className
145
- }) => {
146
- return (
147
- <div
148
- className={twMerge(
149
- 'hc-py-2 hc-px-4 md:hc-px-6 lg:hc-px-8 hc-bg-gray-100',
150
- className ?? ''
151
- )}
152
- >
153
- {children}
154
- </div>
155
- );
156
- };
157
-
158
- Card.Default = CardDefault;
159
- Card.Link = CardLink;
160
- Card.Image = CardImage;
161
- Card.Body = CardBody;
162
- Card.Title = CardTitle;
163
- Card.Footer = CardFooter;
164
-
165
- CardDefault.displayName = 'Card:Default';
166
-
167
- export default Card;
1
+ import React, { forwardRef } from 'react';
2
+ import { Link } from 'react-router-dom';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ const cardClasses = (className, hasShadow) => twMerge(
6
+ 'hc-relative hc-flex hc-flex-wrap hc-flex-col hc-bg-clip-border hc-break-words hc-bg-white hc-border hc-border-gray-100',
7
+ hasShadow ? 'hc-shadow-lg' : '',
8
+ className ?? ''
9
+ );
10
+
11
+ const Card = ({ children }) => {
12
+ return (
13
+ <>{children}</>
14
+ );
15
+ };
16
+
17
+ export const CardDefault = forwardRef((
18
+ {
19
+ as = 'div',
20
+ className,
21
+ hasShadow = false,
22
+ image,
23
+ body,
24
+ children,
25
+ footer,
26
+ ...rest
27
+ },
28
+ ref
29
+ ) => {
30
+ const Container = as;
31
+
32
+ return (
33
+ <Container
34
+ ref={ref}
35
+ className={cardClasses(className, hasShadow)}
36
+ {...rest}
37
+ >
38
+ {image}
39
+ {children}
40
+ {body}
41
+ {footer}
42
+ </Container>
43
+ );
44
+ });
45
+
46
+ const CardLink = ({
47
+ as = 'link',
48
+ href,
49
+ className,
50
+ hasShadow = false,
51
+ image,
52
+ body,
53
+ children,
54
+ footer,
55
+ ...rest
56
+ }) => {
57
+ const Container = as === 'link' ? Link : as;
58
+
59
+ return (
60
+ <Container
61
+ to={href}
62
+ className={twMerge(
63
+ cardClasses(className, hasShadow),
64
+ 'hc-group hc-transition hover:hc-shadow-xl hover:hc-border-indigo-300 focus:hc-shadow-xl focus:hc-border-indigo-300'
65
+ )}
66
+ {...rest}
67
+ >
68
+ {image && image}
69
+ {children}
70
+ {body && body}
71
+ {footer && footer}
72
+ </Container>
73
+ );
74
+ };
75
+
76
+ export const CardImage = ({
77
+ image,
78
+ alt,
79
+ className,
80
+ imageClassName,
81
+ ...rest
82
+ }) => {
83
+ return (
84
+ <div
85
+ className={twMerge(
86
+ 'hc-w-full',
87
+ className ?? ''
88
+ )}
89
+ >
90
+ <img
91
+ src={typeof image === 'string' ? image : image.src}
92
+ width={image.width ? image.width : null}
93
+ height={image.height ? image.height : null}
94
+ alt={alt ?? ''}
95
+ className={twMerge(
96
+ 'hc-w-full hc-h-auto',
97
+ imageClassName ?? ''
98
+ )}
99
+ {...rest}
100
+ />
101
+ </div>
102
+ );
103
+ };
104
+
105
+ export const CardBody = ({
106
+ children,
107
+ className
108
+ }) => {
109
+ return (
110
+ <div
111
+ className={twMerge(
112
+ 'hc-flex-auto hc-p-4 md:hc-px-6 lg:hc-px-8',
113
+ className ?? ''
114
+ )}
115
+ >
116
+ {children}
117
+ </div>
118
+ );
119
+ };
120
+
121
+ export const CardTitle = ({
122
+ as = 'h3',
123
+ children,
124
+ className,
125
+ ...rest
126
+ }) => {
127
+ const Title = as;
128
+
129
+ return (
130
+ <Title
131
+ className={twMerge(
132
+ 'hc-text-2xl hc-font-bold',
133
+ className ?? ''
134
+ )}
135
+ {...rest}
136
+ >
137
+ {children}
138
+ </Title>
139
+ );
140
+ };
141
+
142
+ export const CardFooter = ({
143
+ children,
144
+ className
145
+ }) => {
146
+ return (
147
+ <div
148
+ className={twMerge(
149
+ 'hc-py-2 hc-px-4 md:hc-px-6 lg:hc-px-8 hc-bg-gray-100',
150
+ className ?? ''
151
+ )}
152
+ >
153
+ {children}
154
+ </div>
155
+ );
156
+ };
157
+
158
+ Card.Default = CardDefault;
159
+ Card.Link = CardLink;
160
+ Card.Image = CardImage;
161
+ Card.Body = CardBody;
162
+ Card.Title = CardTitle;
163
+ Card.Footer = CardFooter;
164
+
165
+ CardDefault.displayName = 'Card:Default';
166
+
167
+ export default Card;
@@ -1,56 +1,56 @@
1
- import React from 'react';
2
-
3
- import Card from '~/components/modules/cards/default';
4
- import Icon from '~/components/modules/icon';
5
-
6
- const CardFilter = ({
7
- as,
8
- className,
9
- children,
10
- ...rest
11
- }) => {
12
- return (
13
- <Card.Default
14
- as={as}
15
- className={`
16
- hc-bg-uiAccent/5 hc-border hc-border-uiAccent/20 hc-rounded
17
- ${className ?? ''}
18
- `}
19
- {...rest}
20
- >
21
- <Card.Body className="!hc-p-3">
22
- {children}
23
- </Card.Body>
24
- </Card.Default>
25
- );
26
- };
27
-
28
- export const CardTitle = ({
29
- as,
30
- children,
31
- icon,
32
- className,
33
- ...rest
34
- }) => {
35
- return (
36
- <Card.Title
37
- as={as}
38
- className={`
39
- hc-flex hc-items-center hc-gap-2 hc-mb-2 hc-text-xs hc-uppercase hc-font-bold hc-text-uiText
40
- ${className ?? ''}
41
- `}
42
- {...rest}
43
- >
44
- <Icon
45
- icon={icon}
46
- size="hc-size-5"
47
- className="hc-text-uiAccent/30"
48
- />
49
- {children}
50
- </Card.Title>
51
- );
52
- };
53
-
54
- CardFilter.Title = CardTitle;
55
-
56
- export default CardFilter;
1
+ import React from 'react';
2
+
3
+ import Card from '~/components/modules/cards/default';
4
+ import Icon from '~/components/modules/icon';
5
+
6
+ const CardFilter = ({
7
+ as,
8
+ className,
9
+ children,
10
+ ...rest
11
+ }) => {
12
+ return (
13
+ <Card.Default
14
+ as={as}
15
+ className={`
16
+ hc-bg-uiAccent/5 hc-border hc-border-uiAccent/20 hc-rounded
17
+ ${className ?? ''}
18
+ `}
19
+ {...rest}
20
+ >
21
+ <Card.Body className="!hc-p-3">
22
+ {children}
23
+ </Card.Body>
24
+ </Card.Default>
25
+ );
26
+ };
27
+
28
+ export const CardTitle = ({
29
+ as,
30
+ children,
31
+ icon,
32
+ className,
33
+ ...rest
34
+ }) => {
35
+ return (
36
+ <Card.Title
37
+ as={as}
38
+ className={`
39
+ hc-flex hc-items-center hc-gap-2 hc-mb-2 hc-text-xs hc-uppercase hc-font-bold hc-text-uiText
40
+ ${className ?? ''}
41
+ `}
42
+ {...rest}
43
+ >
44
+ <Icon
45
+ icon={icon}
46
+ size="hc-size-5"
47
+ className="hc-text-uiAccent/30"
48
+ />
49
+ {children}
50
+ </Card.Title>
51
+ );
52
+ };
53
+
54
+ CardFilter.Title = CardTitle;
55
+
56
+ export default CardFilter;