docthub-core-components 2.99.2 → 3.1.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 (88) hide show
  1. package/dist/components/overrides/ui/auto-complete.js +466 -0
  2. package/dist/components/overrides/ui/autocomplete-checkbox.js +480 -0
  3. package/dist/components/overrides/ui/chips/doct-chip.js +157 -0
  4. package/dist/components/overrides/ui/circular-progress.js +32 -0
  5. package/dist/components/overrides/ui/composed/address-form-section.js +67 -0
  6. package/dist/components/overrides/ui/composed/contact-form-section.js +56 -0
  7. package/dist/components/overrides/ui/composed/search-filter-section.js +132 -0
  8. package/dist/components/overrides/ui/composed/user-registration-section.js +77 -0
  9. package/dist/components/overrides/ui/currencyInput/currency-input.js +69 -0
  10. package/dist/components/overrides/ui/doct-animation-loader.js +13 -0
  11. package/dist/components/overrides/ui/expandable-card.js +115 -0
  12. package/dist/components/overrides/ui/footer/doct-footer.js +35 -0
  13. package/dist/components/overrides/ui/footer/footer-desktop.js +92 -0
  14. package/dist/components/overrides/ui/footer/footer-mobile.js +123 -0
  15. package/dist/components/overrides/ui/footer/footer-routes.js +87 -0
  16. package/dist/components/overrides/ui/footer/footer-shared.js +137 -0
  17. package/dist/components/overrides/ui/footer/presets.js +269 -0
  18. package/dist/components/overrides/ui/inputs/labeled-input.js +92 -0
  19. package/dist/components/overrides/ui/inputs/otp-input.js +101 -0
  20. package/dist/components/overrides/ui/inputs/password-input.js +77 -0
  21. package/dist/components/overrides/ui/inputs/phone-input.js +336 -0
  22. package/dist/components/overrides/ui/navigation-menu/doct-navigation-menu.js +22 -0
  23. package/dist/components/overrides/ui/navigation-menu/individual-nav-routes.js +46 -0
  24. package/dist/components/overrides/ui/navigation-menu/individual-navigation-menu-desktop.js +109 -0
  25. package/dist/components/overrides/ui/navigation-menu/individual-navigation-menu-mobile.js +231 -0
  26. package/dist/components/overrides/ui/navigation-menu/individual-navigation-menu.js +44 -0
  27. package/dist/components/overrides/ui/navigation-menu/nav-env.js +64 -0
  28. package/dist/components/overrides/ui/navigation-menu/navigation-menu-adapter.js +55 -0
  29. package/dist/components/overrides/ui/navigation-menu/navigation-menu-internal.js +36 -0
  30. package/dist/components/overrides/ui/navigation-menu/organization-nav-routes.js +34 -0
  31. package/dist/components/overrides/ui/navigation-menu/organization-navigation-menu-desktop.js +109 -0
  32. package/dist/components/overrides/ui/navigation-menu/organization-navigation-menu-mobile.js +231 -0
  33. package/dist/components/overrides/ui/navigation-menu/organization-navigation-menu.js +44 -0
  34. package/dist/components/overrides/ui/navigation-menu/presets.js +238 -0
  35. package/dist/components/overrides/ui/navigation-menu/types.js +6 -0
  36. package/dist/components/overrides/ui/pickers/date-picker-field.js +361 -0
  37. package/dist/components/overrides/ui/pickers/date-range-picker-field.js +288 -0
  38. package/dist/components/overrides/ui/pickers/day-picker-bounds.js +38 -0
  39. package/dist/components/overrides/ui/pickers/select-field.js +158 -0
  40. package/dist/components/overrides/ui/search/auto-complete.js +64 -0
  41. package/dist/components/overrides/ui/search/search-input.js +65 -0
  42. package/dist/components/overrides/ui/showcase/component-section.js +45 -0
  43. package/dist/components/ui/alert.js +94 -0
  44. package/dist/components/ui/avatar.js +69 -0
  45. package/dist/components/ui/badge.js +37 -0
  46. package/dist/components/ui/breadcrumb.js +117 -0
  47. package/dist/components/ui/button.js +223 -0
  48. package/dist/components/ui/calendar.js +100 -0
  49. package/dist/components/ui/checkbox.js +57 -0
  50. package/dist/components/ui/collapsible.js +25 -0
  51. package/dist/components/ui/command.js +132 -0
  52. package/dist/components/ui/dialog.js +230 -0
  53. package/dist/components/ui/drawer.js +119 -0
  54. package/dist/components/ui/dropdown-menu.js +216 -0
  55. package/dist/components/ui/input.js +48 -0
  56. package/dist/components/ui/label.js +22 -0
  57. package/dist/components/ui/popover.js +181 -0
  58. package/dist/components/ui/progress.js +91 -0
  59. package/dist/components/ui/radio-group.js +49 -0
  60. package/dist/components/ui/select.js +169 -0
  61. package/dist/components/ui/skeleton.js +91 -0
  62. package/dist/components/ui/spinner.js +32 -0
  63. package/dist/components/ui/tabs.js +68 -0
  64. package/dist/components/ui/textarea.js +73 -0
  65. package/dist/components/ui/timeline.js +177 -0
  66. package/dist/components/ui/toast.js +82 -0
  67. package/dist/components/ui/tooltip.js +91 -0
  68. package/dist/components/ui/typography.js +213 -0
  69. package/dist/hooks/use-exclusive-dropdown.js +53 -0
  70. package/dist/hooks/use-mobile.js +19 -0
  71. package/dist/hooks/useAutocompleteCheckbox.js +204 -0
  72. package/dist/index.esm.js +7173 -7126
  73. package/dist/index.js +187 -0
  74. package/dist/lib/dropdown-manager.js +17 -0
  75. package/dist/lib/get-floating-dropdown-position.js +32 -0
  76. package/dist/lib/get-scroll-parents.js +20 -0
  77. package/dist/lib/slot.js +40 -0
  78. package/dist/lib/utils.js +9 -0
  79. package/dist/src/components/ui/alert.d.ts +1 -1
  80. package/dist/src/components/ui/button.d.ts +1 -1
  81. package/dist/src/components/ui/command.d.ts +3 -3
  82. package/dist/src/components/ui/timeline.d.ts +1 -1
  83. package/dist/src/index.d.ts +15 -15
  84. package/dist/src/lib/get-floating-dropdown-position.d.ts +9 -1
  85. package/dist/src/lib/get-scroll-parents.d.ts +6 -0
  86. package/dist/style.css +1 -1
  87. package/dist/util/getInputClasses.js +19 -0
  88. package/package.json +131 -132
@@ -0,0 +1,123 @@
1
+ "use client";
2
+ import { jsx as p, jsxs as A } from "react/jsx-runtime";
3
+ import { c as y } from "react-compiler-runtime";
4
+ import { Collapsible as I } from "@base-ui/react/collapsible";
5
+ import { ChevronDown as P } from "lucide-react";
6
+ import * as _ from "react";
7
+ import { DoctTypography as V } from "../../../ui/typography.js";
8
+ import { cn as N } from "../../../../lib/utils.js";
9
+ import { FooterBrandBlock as $, FooterCopyright as j, SeeAllLinkList as B } from "./footer-shared.js";
10
+ function J(u) {
11
+ const e = y(30), {
12
+ brand: t,
13
+ columns: n,
14
+ platformPolicies: i,
15
+ enterprisePolicies: o,
16
+ copyrightText: f,
17
+ className: h
18
+ } = u, [l, m] = _.useState(null);
19
+ let k;
20
+ e[0] !== n ? (k = n.flatMap(D), e[0] = n, e[1] = k) : k = e[1];
21
+ const g = k;
22
+ if (!g.length)
23
+ return null;
24
+ let x;
25
+ e[2] !== h ? (x = N("mt-auto w-full border-y border-black/8 bg-[#F5FBFD]", h), e[2] = h, e[3] = x) : x = e[3];
26
+ let s;
27
+ e[4] !== t ? (s = /* @__PURE__ */ p($, { brand: t, variant: "mobile" }), e[4] = t, e[5] = s) : s = e[5];
28
+ let S;
29
+ if (e[6] !== l || e[7] !== g) {
30
+ let w;
31
+ e[9] !== l ? (w = (E) => /* @__PURE__ */ p(M, { section: E, expandedSeeAllSectionId: l, onSeeAllExpandChange: m }, E.id), e[9] = l, e[10] = w) : w = e[10], S = g.map(w), e[6] = l, e[7] = g, e[8] = S;
32
+ } else
33
+ S = e[8];
34
+ let a;
35
+ e[11] !== l || e[12] !== i ? (a = /* @__PURE__ */ p(F, { title: "Platform Policies", policies: i, expandedSeeAllSectionId: l, onSeeAllExpandChange: m }), e[11] = l, e[12] = i, e[13] = a) : a = e[13];
36
+ let c;
37
+ e[14] !== o || e[15] !== l ? (c = /* @__PURE__ */ p(F, { title: "Enterprise Policies", policies: o, expandedSeeAllSectionId: l, onSeeAllExpandChange: m }), e[14] = o, e[15] = l, e[16] = c) : c = e[16];
38
+ let r;
39
+ e[17] !== S || e[18] !== a || e[19] !== c ? (r = /* @__PURE__ */ A("div", { className: "mt-4 w-full", children: [
40
+ S,
41
+ a,
42
+ c
43
+ ] }), e[17] = S, e[18] = a, e[19] = c, e[20] = r) : r = e[20];
44
+ let b;
45
+ e[21] !== f ? (b = /* @__PURE__ */ p(j, { text: f, isMobile: !0, className: "mt-2 pt-1" }), e[21] = f, e[22] = b) : b = e[22];
46
+ let d;
47
+ e[23] !== s || e[24] !== r || e[25] !== b ? (d = /* @__PURE__ */ A("div", { className: "mx-auto w-full max-w-6xl px-4 py-3", children: [
48
+ s,
49
+ r,
50
+ b
51
+ ] }), e[23] = s, e[24] = r, e[25] = b, e[26] = d) : d = e[26];
52
+ let C;
53
+ return e[27] !== x || e[28] !== d ? (C = /* @__PURE__ */ p("footer", { className: x, children: d }), e[27] = x, e[28] = d, e[29] = C) : C = e[29], C;
54
+ }
55
+ function D(u) {
56
+ return u.sections;
57
+ }
58
+ function v(u) {
59
+ const e = y(22), {
60
+ title: t,
61
+ links: n,
62
+ sectionVariant: i,
63
+ linkClassName: o,
64
+ sectionId: f,
65
+ expandedSeeAllSectionId: h,
66
+ onSeeAllExpandChange: l
67
+ } = u, m = o === void 0 ? "w-full text-black/68" : o, [k, g] = _.useState(!1);
68
+ let x;
69
+ e[0] === Symbol.for("react.memo_cache_sentinel") ? (x = () => g(L), e[0] = x) : x = e[0];
70
+ let s;
71
+ e[1] !== t ? (s = /* @__PURE__ */ p(V, { as: "p", variant: "body3", weight: "bold", className: "text-black/68", children: t }), e[1] = t, e[2] = s) : s = e[2];
72
+ const S = k && "rotate-180";
73
+ let a;
74
+ e[3] !== S ? (a = N("h-5 w-5 shrink-0 text-neutral-56 transition-transform duration-200", S), e[3] = S, e[4] = a) : a = e[4];
75
+ let c;
76
+ e[5] !== a ? (c = /* @__PURE__ */ p(P, { className: a, "aria-hidden": "true" }), e[5] = a, e[6] = c) : c = e[6];
77
+ let r;
78
+ e[7] !== s || e[8] !== c ? (r = /* @__PURE__ */ A("button", { type: "button", className: "flex w-full items-center justify-between py-3.5", onClick: x, children: [
79
+ s,
80
+ c
81
+ ] }), e[7] = s, e[8] = c, e[9] = r) : r = e[9];
82
+ let b;
83
+ e[10] === Symbol.for("react.memo_cache_sentinel") ? (b = N("pb-4", "overflow-hidden data-[closed]:animate-collapsible-up data-[open]:animate-collapsible-down"), e[10] = b) : b = e[10];
84
+ let d;
85
+ e[11] !== h || e[12] !== m || e[13] !== n || e[14] !== l || e[15] !== f || e[16] !== i ? (d = /* @__PURE__ */ p(I.Panel, { className: b, children: /* @__PURE__ */ p(B, { links: n, sectionVariant: i, linkClassName: m, className: "space-y-2", sectionId: f, expandedSectionId: h, onExpandChange: l }) }), e[11] = h, e[12] = m, e[13] = n, e[14] = l, e[15] = f, e[16] = i, e[17] = d) : d = e[17];
86
+ let C;
87
+ return e[18] !== k || e[19] !== r || e[20] !== d ? (C = /* @__PURE__ */ A(I.Root, { open: k, onOpenChange: g, className: "w-full border-t border-black/8", children: [
88
+ r,
89
+ d
90
+ ] }), e[18] = k, e[19] = r, e[20] = d, e[21] = C) : C = e[21], C;
91
+ }
92
+ function L(u) {
93
+ return !u;
94
+ }
95
+ function M(u) {
96
+ const e = y(7), {
97
+ section: t,
98
+ expandedSeeAllSectionId: n,
99
+ onSeeAllExpandChange: i
100
+ } = u;
101
+ let o;
102
+ return e[0] !== n || e[1] !== i || e[2] !== t.id || e[3] !== t.links || e[4] !== t.sectionVariant || e[5] !== t.title ? (o = /* @__PURE__ */ p(v, { title: t.title, links: t.links, sectionVariant: t.sectionVariant, sectionId: t.id, expandedSeeAllSectionId: n, onSeeAllExpandChange: i }), e[0] = n, e[1] = i, e[2] = t.id, e[3] = t.links, e[4] = t.sectionVariant, e[5] = t.title, e[6] = o) : o = e[6], o;
103
+ }
104
+ function F(u) {
105
+ const e = y(9), {
106
+ title: t,
107
+ policies: n,
108
+ expandedSeeAllSectionId: i,
109
+ onSeeAllExpandChange: o
110
+ } = u;
111
+ let f;
112
+ if (e[0] !== t) {
113
+ let m;
114
+ e[2] === Symbol.for("react.memo_cache_sentinel") ? (m = /\s+/g, e[2] = m) : m = e[2], f = t.toLowerCase().replace(m, "-"), e[0] = t, e[1] = f;
115
+ } else
116
+ f = e[1];
117
+ const h = f;
118
+ let l;
119
+ return e[3] !== i || e[4] !== o || e[5] !== n || e[6] !== h || e[7] !== t ? (l = /* @__PURE__ */ p(v, { title: t, links: n, linkClassName: "w-full text-black/56", sectionId: h, expandedSeeAllSectionId: i, onSeeAllExpandChange: o }), e[3] = i, e[4] = o, e[5] = n, e[6] = h, e[7] = t, e[8] = l) : l = e[8], l;
120
+ }
121
+ export {
122
+ J as FooterMobile
123
+ };
@@ -0,0 +1,87 @@
1
+ "use client";
2
+ import { resolveNavEnv as e } from "../navigation-menu/nav-env.js";
3
+ const t = {
4
+ jobs: "https://jobs.dochub.in/",
5
+ courses: "https://courses.dochub.in/",
6
+ events: "https://events.dochub.in/",
7
+ logbook: "https://dev.dochub.in/logbook",
8
+ "resume-builder": "https://dev.dochub.in/resume-builder",
9
+ exhibitor: "https://dev.dochub.in/healthcare-career-app/",
10
+ healthcareNews: "https://news.dochub.in/",
11
+ coursePages: "https://dev.dochub.in/course-pages/",
12
+ jobRolePages: "https://dev.dochub.in/jobrole-pages/",
13
+ recruiterSolution: "https://dev.dochub.in/recruiter/",
14
+ instituteSolution: "https://dev.dochub.in/institute/",
15
+ eventOrganizerSolution: "https://dev.dochub.in/event-organizer/",
16
+ membershipManagement: "https://dev.dochub.in/membership-management/",
17
+ qrCheckInApp: "https://dev.dochub.in/qr-check-in-app/",
18
+ enterpriseSolutions: "https://dev.dochub.in/enterprise-solutions/",
19
+ aboutUs: "https://dev.dochub.in/about-us/",
20
+ mediaReleases: "https://dev.dochub.in/media-releases/",
21
+ contactUs: "https://dev.dochub.in/contact-us/",
22
+ healthcareCareerApp: "https://dev.dochub.in/healthcare-career-app/",
23
+ docthubHome: "https://dev.dochub.in/",
24
+ termsConditions: "https://dev.dochub.in/terms-conditions/",
25
+ privacyPolicy: "https://dev.dochub.in/privacy-policy/",
26
+ cookiesPolicy: "https://dev.dochub.in/cookies-policy/",
27
+ paymentPolicy: "https://dev.dochub.in/payment-policy/",
28
+ disclaimerPolicy: "https://dev.dochub.in/disclaimer-policy/",
29
+ blogs: "https://blogs.dochub.in/",
30
+ jobsDropYourResume: "https://jobs.dochub.in/drop-your-resume",
31
+ // Due to removing localization, `/en` is omitted from enterprise login/register URLs (QA + PROD).
32
+ enterpriseLogin: "https://enterprise.ibns.in/login/",
33
+ // When domain is changed to enterprise.dochub.in, update the URL
34
+ enterpriseRegister: "https://enterprise.ibns.in/register/",
35
+ enterpriseTermsConditions: "https://enterprise.dochub.in/enterprise-terms-conditions/",
36
+ enterprisePrivacyPolicy: "https://enterprise.dochub.in/enterprise-privacy-policy/",
37
+ enterprisePaymentPolicy: "https://enterprise.dochub.in/enterprise-payment-policy/",
38
+ libraryPlaceholder: "#",
39
+ contactSupportPlaceholder: "#",
40
+ courseAfter12thPlaceholder: "https://dev.dochub.in/explore-courses-after-12th"
41
+ }, o = {
42
+ jobs: "https://jobs.docthub.com/",
43
+ courses: "https://courses.docthub.com/",
44
+ events: "https://events.docthub.com/",
45
+ logbook: "https://www.docthub.com/logbook",
46
+ "resume-builder": "https://www.docthub.com/resume-builder",
47
+ exhibitor: "https://www.docthub.com/healthcare-career-app/",
48
+ healthcareNews: "https://news.docthub.com/",
49
+ coursePages: "https://www.docthub.com/course-pages",
50
+ jobRolePages: "https://www.docthub.com/jobrole-pages",
51
+ recruiterSolution: "https://www.docthub.com/recruiter",
52
+ instituteSolution: "https://www.docthub.com/institute",
53
+ eventOrganizerSolution: "https://www.docthub.com/event-organizer",
54
+ membershipManagement: "https://www.docthub.com/membership-management",
55
+ qrCheckInApp: "https://www.docthub.com/qr-check-in-app",
56
+ enterpriseSolutions: "https://www.docthub.com/enterprise-solutions",
57
+ aboutUs: "https://www.docthub.com/about-us",
58
+ mediaReleases: "https://www.docthub.com/media-releases",
59
+ contactUs: "https://www.docthub.com/contact-us",
60
+ healthcareCareerApp: "https://www.docthub.com/healthcare-career-app",
61
+ docthubHome: "https://www.docthub.com/",
62
+ termsConditions: "https://www.docthub.com/terms-conditions",
63
+ privacyPolicy: "https://www.docthub.com/privacy-policy",
64
+ cookiesPolicy: "https://www.docthub.com/cookies-policy",
65
+ paymentPolicy: "https://www.docthub.com/payment-policy",
66
+ disclaimerPolicy: "https://www.docthub.com/disclaimer-policy",
67
+ blogs: "https://blogs.docthub.com/",
68
+ jobsDropYourResume: "https://jobs.docthub.com/drop-your-resume",
69
+ // Due to removing localization, `/en` is omitted from enterprise login/register URLs (QA + PROD).
70
+ enterpriseLogin: "https://enterprise.docthub.com/login/",
71
+ enterpriseRegister: "https://enterprise.docthub.com/register/",
72
+ enterpriseTermsConditions: "https://enterprise.docthub.com/enterprise-terms-conditions/",
73
+ enterprisePrivacyPolicy: "https://enterprise.docthub.com/enterprise-privacy-policy/",
74
+ enterprisePaymentPolicy: "https://enterprise.docthub.com/enterprise-payment-policy/",
75
+ libraryPlaceholder: "#",
76
+ contactSupportPlaceholder: "#",
77
+ courseAfter12thPlaceholder: "https://www.docthub.com/explore-courses-after-12th"
78
+ };
79
+ function c() {
80
+ return e() === "production" ? o : t;
81
+ }
82
+ e();
83
+ export {
84
+ o as FOOTER_ROUTES_PROD,
85
+ t as FOOTER_ROUTES_QA,
86
+ c as getFooterRoutes
87
+ };
@@ -0,0 +1,137 @@
1
+ "use client";
2
+ import { jsx as a, jsxs as B } from "react/jsx-runtime";
3
+ import { c as y } from "react-compiler-runtime";
4
+ import { ChevronDown as F } from "lucide-react";
5
+ import * as j from "react";
6
+ import { DoctButton as I } from "../../../ui/button.js";
7
+ import { DoctTypography as C } from "../../../ui/typography.js";
8
+ import { cn as g } from "../../../../lib/utils.js";
9
+ function _(u) {
10
+ const e = y(11), {
11
+ link: t,
12
+ className: f
13
+ } = u, o = t.href ? "a" : "button", i = t.href ? void 0 : "button", l = t.href, c = t.onClick;
14
+ let n;
15
+ e[0] !== f ? (n = g("rounded-xl px-1.5 text-left transition-colors !text-[#4F5151]", "hover:text-[#0091af] active:text-[#007890]", "focus-visible:outline-none focus-visible:rounded-md focus-visible:border focus-visible:border-black/12", f), e[0] = f, e[1] = n) : n = e[1];
16
+ let d;
17
+ e[2] !== t.label ? (d = /* @__PURE__ */ a(C, { as: "p", variant: "textLabel3", weight: "medium", color: "inherit", children: t.label }), e[2] = t.label, e[3] = d) : d = e[3];
18
+ let r;
19
+ return e[4] !== o || e[5] !== t.href || e[6] !== t.onClick || e[7] !== i || e[8] !== n || e[9] !== d ? (r = /* @__PURE__ */ a(o, { type: i, href: l, onClick: c, className: n, children: d }), e[4] = o, e[5] = t.href, e[6] = t.onClick, e[7] = i, e[8] = n, e[9] = d, e[10] = r) : r = e[10], r;
20
+ }
21
+ const $ = {
22
+ default: 10,
23
+ compact: 6
24
+ };
25
+ function q(u) {
26
+ const e = y(25), {
27
+ links: t,
28
+ sectionVariant: f,
29
+ linkClassName: o,
30
+ className: i,
31
+ sectionId: l,
32
+ expandedSectionId: c,
33
+ onExpandChange: n
34
+ } = u, [d, r] = j.useState(!1), m = l !== void 0 && c !== void 0 && n !== void 0, s = m ? c === l : d;
35
+ let h;
36
+ e[0] !== s || e[1] !== m || e[2] !== n || e[3] !== l ? (h = () => {
37
+ m && l ? n(s ? null : l) : m || r(D);
38
+ }, e[0] = s, e[1] = m, e[2] = n, e[3] = l, e[4] = h) : h = e[4];
39
+ const x = h, b = f ? $[f] : void 0, p = b !== void 0 && t.length > b;
40
+ let v;
41
+ e[5] !== s || e[6] !== p || e[7] !== b || e[8] !== t ? (v = p && !s ? t.slice(0, b) : t, e[5] = s, e[6] = p, e[7] = b, e[8] = t, e[9] = v) : v = e[9];
42
+ const A = v;
43
+ let N;
44
+ e[10] !== i ? (N = g("flex flex-col gap-3", i), e[10] = i, e[11] = N) : N = e[11];
45
+ let k;
46
+ if (e[12] !== o || e[13] !== A) {
47
+ let S;
48
+ e[15] !== o ? (S = (E) => /* @__PURE__ */ a(_, { link: E, className: o }, E.id), e[15] = o, e[16] = S) : S = e[16], k = A.map(S), e[12] = o, e[13] = A, e[14] = k;
49
+ } else
50
+ k = e[14];
51
+ let w;
52
+ e[17] !== s || e[18] !== x || e[19] !== p ? (w = p ? /* @__PURE__ */ B("button", { type: "button", onClick: x, className: g("flex items-center gap-0.5 rounded-xl px-1.5 text-left transition-colors", "focus-visible:outline-none focus-visible:rounded-md focus-visible:border focus-visible:border-black/12"), "aria-expanded": s, children: [
53
+ /* @__PURE__ */ a(C, { variant: "textLabel3", weight: "medium", color: "inherit", children: s ? "See Less" : "See All" }),
54
+ /* @__PURE__ */ a(F, { className: g("h-4 w-4 shrink-0 transition-transform duration-200", s && "rotate-180"), "aria-hidden": "true" })
55
+ ] }) : null, e[17] = s, e[18] = x, e[19] = p, e[20] = w) : w = e[20];
56
+ let L;
57
+ return e[21] !== N || e[22] !== k || e[23] !== w ? (L = /* @__PURE__ */ B("div", { className: N, children: [
58
+ k,
59
+ w
60
+ ] }), e[21] = N, e[22] = k, e[23] = w, e[24] = L) : L = e[24], L;
61
+ }
62
+ function D(u) {
63
+ return !u;
64
+ }
65
+ function M(u) {
66
+ const e = y(8), {
67
+ appLink: t
68
+ } = u;
69
+ let f;
70
+ e[0] !== t ? (f = () => {
71
+ t.onClick ? t.onClick() : t.href && window.open(t.href, "_blank", "noopener,noreferrer");
72
+ }, e[0] = t, e[1] = f) : f = e[1];
73
+ const o = f;
74
+ let i;
75
+ e[2] !== t.icon ? (i = /* @__PURE__ */ a("span", { className: "flex h-5 w-5 items-center justify-center", children: t.icon }), e[2] = t.icon, e[3] = i) : i = e[3];
76
+ let l;
77
+ return e[4] !== t.label || e[5] !== o || e[6] !== i ? (l = /* @__PURE__ */ a(I, { variant: "primary", size: "medium", fullWidth: !0, className: "gap-2 items-center justify-center focus-visible:ring-brandBlue focus-visible:ring-offset-0", icon: i, onClick: o, children: t.label }), e[4] = t.label, e[5] = o, e[6] = i, e[7] = l) : l = e[7], l;
78
+ }
79
+ function H(u) {
80
+ const e = y(20), {
81
+ brand: t,
82
+ variant: f
83
+ } = u;
84
+ if (!t)
85
+ return null;
86
+ const {
87
+ logo: o,
88
+ logoSrc: i,
89
+ logoAlt: l,
90
+ tagline: c,
91
+ socialLinks: n,
92
+ appLinks: d
93
+ } = t, r = f === "mobile";
94
+ let m;
95
+ e[0] !== o || e[1] !== l || e[2] !== i ? (m = o ?? (i ? /* @__PURE__ */ a("img", { src: i, alt: l ?? "Brand", className: "h-[18px] w-auto", loading: "lazy" }) : null), e[0] = o, e[1] = l, e[2] = i, e[3] = m) : m = e[3];
96
+ let s;
97
+ e[4] !== m ? (s = /* @__PURE__ */ a("div", { className: "flex h-[33px] w-full items-center", children: m }), e[4] = m, e[5] = s) : s = e[5];
98
+ let h;
99
+ e[6] !== r || e[7] !== c ? (h = c ? /* @__PURE__ */ a(C, { as: "p", variant: "body3", weight: "regular", className: g("pt-3 pb-6 text-black/80", r ? "max-w-[260px]" : "max-w-[175px]"), children: c }) : null, e[6] = r, e[7] = c, e[8] = h) : h = e[8];
100
+ let x;
101
+ e[9] !== r || e[10] !== n ? (x = n != null && n.length ? /* @__PURE__ */ a("div", { className: g("flex items-center pb-4", r ? "gap-3" : "gap-1.5"), children: n.map((v) => /* @__PURE__ */ a("a", { href: v.href, "aria-label": v.ariaLabel, className: g("inline-flex items-center justify-center rounded-lg border border-black/8 bg-white", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brandBlue", r ? "h-9 w-9" : "h-7 w-7"), children: v.icon }, v.id)) }) : null, e[9] = r, e[10] = n, e[11] = x) : x = e[11];
102
+ let b;
103
+ e[12] !== d || e[13] !== r ? (b = d != null && d.length ? /* @__PURE__ */ B("div", { className: "w-full", children: [
104
+ /* @__PURE__ */ a(C, { as: "p", variant: "body3", weight: "bold", className: "py-4 text-black/80", children: "Get Career App" }),
105
+ /* @__PURE__ */ a("div", { className: g("flex w-full", r ? "flex-row gap-2" : "flex-col gap-1.5"), children: d.map(T) })
106
+ ] }) : null, e[12] = d, e[13] = r, e[14] = b) : b = e[14];
107
+ let p;
108
+ return e[15] !== s || e[16] !== h || e[17] !== x || e[18] !== b ? (p = /* @__PURE__ */ B("div", { className: "flex h-full flex-col items-start", children: [
109
+ s,
110
+ h,
111
+ x,
112
+ b
113
+ ] }), e[15] = s, e[16] = h, e[17] = x, e[18] = b, e[19] = p) : p = e[19], p;
114
+ }
115
+ function T(u) {
116
+ return /* @__PURE__ */ a(M, { appLink: u }, u.id);
117
+ }
118
+ function J(u) {
119
+ const e = y(8), {
120
+ text: t,
121
+ isMobile: f,
122
+ className: o
123
+ } = u, i = f ? "text-center" : "border-t border-black/8 text-center";
124
+ let l;
125
+ e[0] !== o || e[1] !== i ? (l = g(i, o), e[0] = o, e[1] = i, e[2] = l) : l = e[2];
126
+ let c;
127
+ e[3] !== t ? (c = /* @__PURE__ */ a(C, { as: "p", variant: "body4", weight: "regular", color: "#6C6E6F", className: "py-1", children: t }), e[3] = t, e[4] = c) : c = e[4];
128
+ let n;
129
+ return e[5] !== l || e[6] !== c ? (n = /* @__PURE__ */ a("div", { className: l, children: c }), e[5] = l, e[6] = c, e[7] = n) : n = e[7], n;
130
+ }
131
+ export {
132
+ M as FooterAppButton,
133
+ H as FooterBrandBlock,
134
+ J as FooterCopyright,
135
+ _ as FooterNavLink,
136
+ q as SeeAllLinkList
137
+ };
@@ -0,0 +1,269 @@
1
+ "use client";
2
+ import { jsx as o } from "react/jsx-runtime";
3
+ import { getFooterRoutes as r } from "./footer-routes.js";
4
+ const i = {
5
+ linkedin: "https://www.linkedin.com/company/docthub2017/",
6
+ facebook: "https://www.facebook.com/docthub/",
7
+ instagram: "https://www.instagram.com/docthub/",
8
+ x: "https://twitter.com/docthub",
9
+ youtube: "https://www.youtube.com/c/Docthub1/videos",
10
+ googlePlay: "https://play.google.com/store/search?q=docthub&c=apps&hl=en",
11
+ appStore: "https://apps.apple.com/in/app/docthub-healthcare-career-app/id1625281489"
12
+ }, t = [{
13
+ id: "linkedin",
14
+ href: i.linkedin,
15
+ ariaLabel: "Docthub on LinkedIn",
16
+ icon: /* @__PURE__ */ o("img", { src: "/footer/linkedin.svg", alt: "", "aria-hidden": "true", className: "h-[18px] w-[18px]", loading: "lazy" })
17
+ }, {
18
+ id: "facebook",
19
+ href: i.facebook,
20
+ ariaLabel: "Docthub on Facebook",
21
+ icon: /* @__PURE__ */ o("img", { src: "/footer/facebook.svg", alt: "", "aria-hidden": "true", className: "h-[18px] w-[18px]", loading: "lazy" })
22
+ }, {
23
+ id: "instagram",
24
+ href: i.instagram,
25
+ ariaLabel: "Docthub on Instagram",
26
+ icon: /* @__PURE__ */ o("img", { src: "/footer/instagram-icon.svg", alt: "", "aria-hidden": "true", className: "h-[18px] w-[18px]", loading: "lazy" })
27
+ }, {
28
+ id: "x",
29
+ href: i.x,
30
+ ariaLabel: "Docthub on X",
31
+ icon: /* @__PURE__ */ o("img", { src: "/footer/x-twitter.svg", alt: "", "aria-hidden": "true", className: "h-[18px] w-[18px]", loading: "lazy" })
32
+ }, {
33
+ id: "youtube",
34
+ href: i.youtube,
35
+ ariaLabel: "Docthub on YouTube",
36
+ icon: /* @__PURE__ */ o("img", { src: "/footer/youtube.svg", alt: "", "aria-hidden": "true", className: "h-[18px] w-[18px]", loading: "lazy" })
37
+ }], d = {
38
+ logo: /* @__PURE__ */ o("img", { src: "/footer/docthub-trademark-logo.svg", alt: "Docthub", className: "h-[18px] w-auto", loading: "lazy" }),
39
+ logoAlt: "Docthub",
40
+ tagline: "Empowering Healthcare Fraternity",
41
+ socialLinks: t,
42
+ appLinks: [{
43
+ id: "google-play",
44
+ label: "Google Play",
45
+ href: i.googlePlay,
46
+ icon: /* @__PURE__ */ o("img", { src: "/footer/play-store.svg", alt: "", "aria-hidden": "true", className: "h-5 w-5", loading: "lazy" })
47
+ }, {
48
+ id: "app-store",
49
+ label: "App Store",
50
+ href: i.appStore,
51
+ icon: /* @__PURE__ */ o("img", { src: "/footer/apple.svg", alt: "", "aria-hidden": "true", className: "h-5 w-5", loading: "lazy" })
52
+ }]
53
+ };
54
+ function a() {
55
+ const e = r();
56
+ return [{
57
+ id: "explore",
58
+ sections: [{
59
+ id: "explore",
60
+ title: "Explore",
61
+ sectionVariant: "default",
62
+ links: [{
63
+ id: "jobs",
64
+ label: "Jobs",
65
+ href: e.jobs
66
+ }, {
67
+ id: "courses",
68
+ label: "Courses",
69
+ href: e.courses
70
+ }, {
71
+ id: "events",
72
+ label: "Events",
73
+ href: e.events
74
+ }]
75
+ }]
76
+ }, {
77
+ id: "professional-tools",
78
+ sections: [{
79
+ id: "professional-tools",
80
+ title: "Professional Tools",
81
+ sectionVariant: "default",
82
+ links: [{
83
+ id: "logbook",
84
+ label: "Logbook",
85
+ href: e.logbook
86
+ }, {
87
+ id: "resume-builder",
88
+ label: "Resume Builder",
89
+ href: e["resume-builder"]
90
+ }, {
91
+ id: "exhibitor",
92
+ label: "Exhibitor",
93
+ href: e.exhibitor
94
+ }]
95
+ }]
96
+ }, {
97
+ id: "knowledge-hub",
98
+ sections: [{
99
+ id: "knowledge-hub",
100
+ title: "Knowledge Hub",
101
+ sectionVariant: "default",
102
+ links: [
103
+ // Hidden until dedicated page is ready:
104
+ // { id: "library", label: "Library", href: routes.libraryPlaceholder },
105
+ {
106
+ id: "news",
107
+ label: "News",
108
+ href: e.healthcareNews
109
+ },
110
+ {
111
+ id: "course-pages",
112
+ label: "Course Pages",
113
+ href: e.coursePages
114
+ },
115
+ {
116
+ id: "job-role-pages",
117
+ label: "Job Role Pages",
118
+ href: e.jobRolePages
119
+ }
120
+ ]
121
+ }]
122
+ }, {
123
+ id: "for-organizations",
124
+ sections: [{
125
+ id: "for-organizations",
126
+ title: "For Organizations",
127
+ sectionVariant: "default",
128
+ links: [{
129
+ id: "recruiter-solution",
130
+ label: "Recruiter Solution",
131
+ href: e.recruiterSolution
132
+ }, {
133
+ id: "institute-solution",
134
+ label: "Institute Solution",
135
+ href: e.instituteSolution
136
+ }, {
137
+ id: "event-organizer-solution",
138
+ label: "Event Organizer Solution",
139
+ href: e.eventOrganizerSolution
140
+ }, {
141
+ id: "membership-management",
142
+ label: "Membership Management",
143
+ href: e.membershipManagement
144
+ }, {
145
+ id: "qr-check-in-app",
146
+ label: "QR Check-In App",
147
+ href: e.qrCheckInApp
148
+ }, {
149
+ id: "explore-enterprise",
150
+ label: "Explore Docthub Enterprise",
151
+ href: e.enterpriseSolutions
152
+ }]
153
+ }, {
154
+ id: "enterprise-access",
155
+ title: "Enterprise Access",
156
+ sectionVariant: "compact",
157
+ links: [
158
+ {
159
+ id: "enterprise-login",
160
+ label: "Enterprise Login",
161
+ href: e.enterpriseLogin
162
+ },
163
+ {
164
+ id: "create-enterprise-account",
165
+ label: "Create Enterprise / Business Account",
166
+ href: e.enterpriseRegister
167
+ }
168
+ // Hidden for now:
169
+ // { id: "contact-support", label: "Contact Support", href: routes.contactSupportPlaceholder },
170
+ ]
171
+ }]
172
+ }, {
173
+ id: "company",
174
+ sections: [{
175
+ id: "company",
176
+ title: "Company",
177
+ sectionVariant: "default",
178
+ links: [{
179
+ id: "about-docthub",
180
+ label: "About Docthub",
181
+ href: e.aboutUs
182
+ }, {
183
+ id: "media-release",
184
+ label: "Media Release",
185
+ href: e.mediaReleases
186
+ }, {
187
+ id: "blogs",
188
+ label: "Blogs",
189
+ href: e.blogs
190
+ }, {
191
+ id: "contact-us",
192
+ label: "Contact Us",
193
+ href: e.contactUs
194
+ }, {
195
+ id: "docthub-home",
196
+ label: "Docthub Home",
197
+ href: e.docthubHome
198
+ }]
199
+ }, {
200
+ id: "additional-links",
201
+ title: "Additional Links",
202
+ sectionVariant: "compact",
203
+ links: [{
204
+ id: "healthcare-career-app",
205
+ label: "Healthcare Career App",
206
+ href: e.healthcareCareerApp
207
+ }, {
208
+ id: "drop-your-resume",
209
+ label: "Drop Your Resume",
210
+ href: e.jobsDropYourResume
211
+ }, {
212
+ id: "course-after-12th",
213
+ label: "Course After 12th",
214
+ href: e.courseAfter12thPlaceholder
215
+ }]
216
+ }]
217
+ }];
218
+ }
219
+ a();
220
+ function l() {
221
+ const e = r();
222
+ return [{
223
+ id: "terms-of-use",
224
+ label: "Terms of Use",
225
+ href: e.termsConditions
226
+ }, {
227
+ id: "privacy-policy",
228
+ label: "Privacy Policy",
229
+ href: e.privacyPolicy
230
+ }, {
231
+ id: "cookies-policy",
232
+ label: "Cookies Policy",
233
+ href: e.cookiesPolicy
234
+ }, {
235
+ id: "payment-policy",
236
+ label: "Payment Policy",
237
+ href: e.paymentPolicy
238
+ }, {
239
+ id: "disclaimer",
240
+ label: "Disclaimer",
241
+ href: e.disclaimerPolicy
242
+ }];
243
+ }
244
+ l();
245
+ function s() {
246
+ const e = r();
247
+ return [{
248
+ id: "enterprise-terms",
249
+ label: "Enterprise Terms",
250
+ href: e.enterpriseTermsConditions
251
+ }, {
252
+ id: "enterprise-privacy-policy",
253
+ label: "Enterprise Privacy Policy",
254
+ href: e.enterprisePrivacyPolicy
255
+ }, {
256
+ id: "enterprise-payment-policy",
257
+ label: "Enterprise Payment Policy",
258
+ href: e.enterprisePaymentPolicy
259
+ }];
260
+ }
261
+ s();
262
+ const h = "©2026 Docthub. All rights reserved.";
263
+ export {
264
+ d as consumerFooterBrand,
265
+ h as consumerFooterCopyrightText,
266
+ a as getConsumerFooterColumns,
267
+ s as getConsumerFooterEnterprisePolicies,
268
+ l as getConsumerFooterPlatformPolicies
269
+ };