docthub-core-components 3.0.0 → 3.2.1

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 (81) hide show
  1. package/dist/components/overrides/ui/auto-complete.js +466 -0
  2. package/dist/components/overrides/ui/autocomplete-checkbox.js +491 -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.js +187 -0
  73. package/dist/lib/dropdown-manager.js +17 -0
  74. package/dist/lib/get-floating-dropdown-position.js +32 -0
  75. package/dist/lib/get-scroll-parents.js +20 -0
  76. package/dist/lib/slot.js +40 -0
  77. package/dist/lib/utils.js +9 -0
  78. package/dist/src/components/overrides/ui/autocomplete-checkbox.d.ts +16 -1
  79. package/dist/style.css +1 -1
  80. package/dist/util/getInputClasses.js +19 -0
  81. package/package.json +5 -5
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { jsx as s, jsxs as u } from "react/jsx-runtime";
3
+ import { c as v } from "react-compiler-runtime";
4
+ import * as P from "react";
5
+ import { DoctTypography as F } from "../../../ui/typography.js";
6
+ import { cn as I } from "../../../../lib/utils.js";
7
+ import { FooterBrandBlock as L, FooterCopyright as B, FooterNavLink as R, SeeAllLinkList as T } from "./footer-shared.js";
8
+ function q(c) {
9
+ const e = v(28), {
10
+ brand: t,
11
+ columns: o,
12
+ platformPolicies: a,
13
+ enterprisePolicies: l,
14
+ copyrightText: i,
15
+ className: n
16
+ } = c, [k, A] = P.useState(null);
17
+ if (!o.length)
18
+ return null;
19
+ let r;
20
+ e[0] !== n ? (r = I("mt-auto w-full border-t border-black/8 bg-[#F5FBFD]", n), e[0] = n, e[1] = r) : r = e[1];
21
+ let d;
22
+ e[2] !== t ? (d = /* @__PURE__ */ s("div", { className: "min-w-[175px] flex-[1.2] xl:min-w-[175px]", children: /* @__PURE__ */ s(L, { brand: t, variant: "desktop" }) }), e[2] = t, e[3] = d) : d = e[3];
23
+ let f;
24
+ if (e[4] !== o || e[5] !== k) {
25
+ let g;
26
+ e[7] !== k ? (g = (y) => /* @__PURE__ */ s("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ s("div", { className: "flex flex-col gap-5 pb-4", children: y.sections.map((w, C) => /* @__PURE__ */ s("div", { className: I(C > 0 && "border-t border-black/8 pt-4"), children: /* @__PURE__ */ s(V, { section: w, expandedSeeAllSectionId: k, onSeeAllExpandChange: A }) }, w.id)) }) }, y.id), e[7] = k, e[8] = g) : g = e[8], f = o.map(g), e[4] = o, e[5] = k, e[6] = f;
27
+ } else
28
+ f = e[6];
29
+ let p;
30
+ e[9] !== d || e[10] !== f ? (p = /* @__PURE__ */ u("div", { className: "flex gap-4 py-6 xl:gap-6", children: [
31
+ d,
32
+ f
33
+ ] }), e[9] = d, e[10] = f, e[11] = p) : p = e[11];
34
+ let m;
35
+ e[12] !== a ? (m = /* @__PURE__ */ s(E, { title: "PLATFORM POLICIES", policies: a }), e[12] = a, e[13] = m) : m = e[13];
36
+ let x;
37
+ e[14] !== l ? (x = /* @__PURE__ */ s(E, { title: "ENTERPRISE POLICIES", policies: l }), e[14] = l, e[15] = x) : x = e[15];
38
+ let h;
39
+ e[16] !== m || e[17] !== x ? (h = /* @__PURE__ */ u("div", { className: "flex items-start justify-between border-t border-black/8 py-4", children: [
40
+ m,
41
+ x
42
+ ] }), e[16] = m, e[17] = x, e[18] = h) : h = e[18];
43
+ let b;
44
+ e[19] !== i ? (b = /* @__PURE__ */ s(B, { text: i, isMobile: !1, className: "py-2" }), e[19] = i, e[20] = b) : b = e[20];
45
+ let N;
46
+ e[21] !== p || e[22] !== h || e[23] !== b ? (N = /* @__PURE__ */ u("div", { className: "mx-auto w-full max-w-[1160px]", children: [
47
+ p,
48
+ h,
49
+ b
50
+ ] }), e[21] = p, e[22] = h, e[23] = b, e[24] = N) : N = e[24];
51
+ let S;
52
+ return e[25] !== r || e[26] !== N ? (S = /* @__PURE__ */ s("footer", { className: r, children: N }), e[25] = r, e[26] = N, e[27] = S) : S = e[27], S;
53
+ }
54
+ function V(c) {
55
+ const e = v(11), {
56
+ section: t,
57
+ expandedSeeAllSectionId: o,
58
+ onSeeAllExpandChange: a
59
+ } = c;
60
+ let l;
61
+ e[0] !== t.title ? (l = /* @__PURE__ */ s(F, { variant: "body3", weight: "bold", className: "px-1.5 py-2.5 mb-1 !text-[#313233]", children: t.title }), e[0] = t.title, e[1] = l) : l = e[1];
62
+ let i;
63
+ e[2] !== o || e[3] !== a || e[4] !== t.id || e[5] !== t.links || e[6] !== t.sectionVariant ? (i = /* @__PURE__ */ s(T, { links: t.links, sectionVariant: t.sectionVariant, linkClassName: "text-black/68", sectionId: t.id, expandedSectionId: o, onExpandChange: a }), e[2] = o, e[3] = a, e[4] = t.id, e[5] = t.links, e[6] = t.sectionVariant, e[7] = i) : i = e[7];
64
+ let n;
65
+ return e[8] !== l || e[9] !== i ? (n = /* @__PURE__ */ u("div", { className: "flex flex-col", children: [
66
+ l,
67
+ i
68
+ ] }), e[8] = l, e[9] = i, e[10] = n) : n = e[10], n;
69
+ }
70
+ function E(c) {
71
+ const e = v(9), {
72
+ title: t,
73
+ policies: o
74
+ } = c;
75
+ let a;
76
+ e[0] !== t ? (a = /* @__PURE__ */ s(F, { variant: "body3", weight: "bold", className: "py-2 !text-[#313233]", children: t }), e[0] = t, e[1] = a) : a = e[1];
77
+ let l;
78
+ e[2] !== o ? (l = o.map(j), e[2] = o, e[3] = l) : l = e[3];
79
+ let i;
80
+ e[4] !== l ? (i = /* @__PURE__ */ s("div", { className: "flex flex-wrap items-start gap-6", children: l }), e[4] = l, e[5] = i) : i = e[5];
81
+ let n;
82
+ return e[6] !== a || e[7] !== i ? (n = /* @__PURE__ */ u("div", { className: "flex flex-col items-start", children: [
83
+ a,
84
+ i
85
+ ] }), e[6] = a, e[7] = i, e[8] = n) : n = e[8], n;
86
+ }
87
+ function j(c) {
88
+ return /* @__PURE__ */ s(R, { link: c, className: "px-0 py-1 text-black/56" }, c.id);
89
+ }
90
+ export {
91
+ q as FooterDesktop
92
+ };
@@ -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
+ };