@treeal/ds 0.1.0 → 0.1.2

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 (116) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/components/Select/Select.d.ts +24 -0
  3. package/dist/components/Select/Select.d.ts.map +1 -0
  4. package/dist/components/Select/index.d.ts +3 -0
  5. package/dist/components/Select/index.d.ts.map +1 -0
  6. package/dist/components/Tab/Tab.d.ts +22 -0
  7. package/dist/components/Tab/Tab.d.ts.map +1 -0
  8. package/dist/components/Tab/index.d.ts +3 -0
  9. package/dist/components/Tab/index.d.ts.map +1 -0
  10. package/dist/components/index.d.ts +5 -0
  11. package/dist/components/index.d.ts.map +1 -1
  12. package/dist/index.cjs.js +1 -1
  13. package/dist/index.cjs10.js +1 -1
  14. package/dist/index.cjs10.js.map +1 -1
  15. package/dist/index.cjs11.js +1 -1
  16. package/dist/index.cjs11.js.map +1 -1
  17. package/dist/index.cjs12.js +1 -1
  18. package/dist/index.cjs12.js.map +1 -1
  19. package/dist/index.cjs13.js +1 -1
  20. package/dist/index.cjs13.js.map +1 -1
  21. package/dist/index.cjs14.js +1 -1
  22. package/dist/index.cjs14.js.map +1 -1
  23. package/dist/index.cjs15.js +1 -1
  24. package/dist/index.cjs15.js.map +1 -1
  25. package/dist/index.cjs16.js +1 -1
  26. package/dist/index.cjs16.js.map +1 -1
  27. package/dist/index.cjs17.js +1 -1
  28. package/dist/index.cjs18.js +1 -1
  29. package/dist/index.cjs19.js +1 -1
  30. package/dist/index.cjs20.js +1 -1
  31. package/dist/index.cjs21.js +1 -1
  32. package/dist/index.cjs22.js +1 -1
  33. package/dist/index.cjs23.js +1 -1
  34. package/dist/index.cjs24.js +2 -0
  35. package/dist/index.cjs24.js.map +1 -0
  36. package/dist/index.cjs25.js +2 -0
  37. package/dist/index.cjs25.js.map +1 -0
  38. package/dist/index.cjs26.js +2 -0
  39. package/dist/index.cjs26.js.map +1 -0
  40. package/dist/index.cjs27.js +2 -0
  41. package/dist/index.cjs27.js.map +1 -0
  42. package/dist/index.cjs28.js +2 -0
  43. package/dist/index.cjs28.js.map +1 -0
  44. package/dist/index.cjs3.js +1 -1
  45. package/dist/index.cjs3.js.map +1 -1
  46. package/dist/index.cjs4.js +1 -1
  47. package/dist/index.cjs4.js.map +1 -1
  48. package/dist/index.cjs5.js +1 -1
  49. package/dist/index.cjs5.js.map +1 -1
  50. package/dist/index.cjs6.js +1 -1
  51. package/dist/index.cjs6.js.map +1 -1
  52. package/dist/index.cjs7.js +1 -1
  53. package/dist/index.cjs7.js.map +1 -1
  54. package/dist/index.cjs8.js +1 -1
  55. package/dist/index.cjs8.js.map +1 -1
  56. package/dist/index.cjs9.js +1 -1
  57. package/dist/index.cjs9.js.map +1 -1
  58. package/dist/index.esm.js +29 -24
  59. package/dist/index.esm.js.map +1 -1
  60. package/dist/index.esm10.js +66 -226
  61. package/dist/index.esm10.js.map +1 -1
  62. package/dist/index.esm11.js +221 -160
  63. package/dist/index.esm11.js.map +1 -1
  64. package/dist/index.esm12.js +157 -73
  65. package/dist/index.esm12.js.map +1 -1
  66. package/dist/index.esm13.js +54 -209
  67. package/dist/index.esm13.js.map +1 -1
  68. package/dist/index.esm14.js +90 -23
  69. package/dist/index.esm14.js.map +1 -1
  70. package/dist/index.esm15.js +35 -31
  71. package/dist/index.esm15.js.map +1 -1
  72. package/dist/index.esm16.js +219 -61
  73. package/dist/index.esm16.js.map +1 -1
  74. package/dist/index.esm17.js +38 -60
  75. package/dist/index.esm17.js.map +1 -1
  76. package/dist/index.esm18.js +22 -38
  77. package/dist/index.esm18.js.map +1 -1
  78. package/dist/index.esm19.js +102 -22
  79. package/dist/index.esm19.js.map +1 -1
  80. package/dist/index.esm20.js +22 -20
  81. package/dist/index.esm20.js.map +1 -1
  82. package/dist/index.esm21.js +20 -48
  83. package/dist/index.esm21.js.map +1 -1
  84. package/dist/index.esm22.js +59 -21
  85. package/dist/index.esm22.js.map +1 -1
  86. package/dist/index.esm23.js +60 -102
  87. package/dist/index.esm23.js.map +1 -1
  88. package/dist/index.esm24.js +26 -0
  89. package/dist/index.esm24.js.map +1 -0
  90. package/dist/index.esm25.js +52 -0
  91. package/dist/index.esm25.js.map +1 -0
  92. package/dist/index.esm26.js +34 -0
  93. package/dist/index.esm26.js.map +1 -0
  94. package/dist/index.esm27.js +26 -0
  95. package/dist/index.esm27.js.map +1 -0
  96. package/dist/index.esm28.js +16 -0
  97. package/dist/index.esm28.js.map +1 -0
  98. package/dist/index.esm3.js +89 -53
  99. package/dist/index.esm3.js.map +1 -1
  100. package/dist/index.esm4.js +58 -111
  101. package/dist/index.esm4.js.map +1 -1
  102. package/dist/index.esm5.js +106 -60
  103. package/dist/index.esm5.js.map +1 -1
  104. package/dist/index.esm6.js +60 -28
  105. package/dist/index.esm6.js.map +1 -1
  106. package/dist/index.esm7.js +26 -171
  107. package/dist/index.esm7.js.map +1 -1
  108. package/dist/index.esm8.js +167 -54
  109. package/dist/index.esm8.js.map +1 -1
  110. package/dist/index.esm9.js +62 -71
  111. package/dist/index.esm9.js.map +1 -1
  112. package/package.json +1 -1
  113. package/dist/index.cjs2.js +0 -2
  114. package/dist/index.cjs2.js.map +0 -1
  115. package/dist/index.esm2.js +0 -98
  116. package/dist/index.esm2.js.map +0 -1
@@ -1,182 +1,37 @@
1
- import { jsxs as i, jsx as n } from "react/jsx-runtime";
2
- import e from "./index.esm17.js";
3
- function b() {
4
- return /* @__PURE__ */ i("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
5
- /* @__PURE__ */ n("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
6
- /* @__PURE__ */ n("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
7
- ] });
8
- }
9
- function x() {
10
- return /* @__PURE__ */ i("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", children: [
11
- /* @__PURE__ */ n("line", { x1: "4", y1: "6", x2: "20", y2: "6" }),
12
- /* @__PURE__ */ n("line", { x1: "4", y1: "12", x2: "20", y2: "12" }),
13
- /* @__PURE__ */ n("line", { x1: "4", y1: "18", x2: "20", y2: "18" })
14
- ] });
15
- }
16
- function C() {
17
- return /* @__PURE__ */ n("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M4 6l4 4 4-4" }) });
18
- }
19
- function k({
20
- workspaceName: a = "Workspace",
21
- workspaceAccount: l = "Conta Atual",
22
- fullWidth: t = !1
1
+ import { jsxs as p, jsx as n } from "react/jsx-runtime";
2
+ import s from "./index.esm24.js";
3
+ function d({
4
+ variant: t = "outline",
5
+ size: e = "sm",
6
+ iconLeft: l,
7
+ iconRight: o,
8
+ disabled: a,
9
+ className: r,
10
+ children: c,
11
+ ...i
23
12
  }) {
24
- return /* @__PURE__ */ i(
13
+ const m = a ? "disabled" : t, u = [
14
+ s.button,
15
+ s[e],
16
+ s[m],
17
+ r
18
+ ].filter(Boolean).join(" ");
19
+ return /* @__PURE__ */ p(
25
20
  "button",
26
21
  {
27
- type: "button",
28
- className: [e.workspace, t ? e.workspaceFull : ""].filter(Boolean).join(" "),
29
- "aria-label": `Trocar workspace: ${a}`,
22
+ className: u,
23
+ disabled: a,
24
+ "aria-disabled": a,
25
+ ...i,
30
26
  children: [
31
- /* @__PURE__ */ i("div", { className: e.workspaceLeft, children: [
32
- /* @__PURE__ */ n("span", { className: e.statusDot, "aria-hidden": "true" }),
33
- /* @__PURE__ */ i("div", { className: e.workspaceCol, children: [
34
- /* @__PURE__ */ n("p", { className: e.workspaceAccount, children: l }),
35
- /* @__PURE__ */ n("p", { className: e.workspaceName, children: a })
36
- ] })
37
- ] }),
38
- /* @__PURE__ */ n("span", { className: e.workspaceArrow, children: /* @__PURE__ */ n(C, {}) })
27
+ l && /* @__PURE__ */ n("span", { className: s.icon, children: l }),
28
+ /* @__PURE__ */ n("span", { className: s.label, children: c }),
29
+ o && /* @__PURE__ */ n("span", { className: s.icon, children: o })
39
30
  ]
40
31
  }
41
32
  );
42
33
  }
43
- function f({
44
- userName: a,
45
- userRole: l,
46
- userAvatar: t
47
- }) {
48
- const o = a ? a.split(" ").slice(0, 2).map((s) => s[0]).join("").toUpperCase() : "?";
49
- return /* @__PURE__ */ i("div", { className: e.navUser, children: [
50
- /* @__PURE__ */ n("div", { className: e.avatar, children: t ? /* @__PURE__ */ n(
51
- "img",
52
- {
53
- src: t,
54
- alt: a ?? "Avatar",
55
- className: e.avatarImg
56
- }
57
- ) : /* @__PURE__ */ n("span", { className: e.avatarInitials, children: o }) }),
58
- (a || l) && /* @__PURE__ */ i("div", { className: e.userText, children: [
59
- a && /* @__PURE__ */ n("p", { className: e.userName, children: a }),
60
- l && /* @__PURE__ */ n("p", { className: e.userRole, children: l })
61
- ] })
62
- ] });
63
- }
64
- function y({
65
- variant: a = "Default",
66
- pageTitle: l = "Portal de Gestão",
67
- workspaceName: t,
68
- workspaceAccount: o,
69
- userName: s,
70
- userRole: h,
71
- userAvatar: p,
72
- onMenuToggle: v,
73
- onNotifications: u,
74
- primaryAction: r,
75
- className: N
76
- }) {
77
- const c = a === "Default", m = a === "Mobile", d = a === "MobileOpen", w = [
78
- e.header,
79
- c ? e.variantDefault : "",
80
- m ? e.variantMobile : "",
81
- d ? e.variantMobileOpen : "",
82
- N
83
- ].filter(Boolean).join(" ");
84
- return /* @__PURE__ */ i("header", { className: w, children: [
85
- !d && /* @__PURE__ */ n(
86
- "h1",
87
- {
88
- className: [
89
- e.pageTitle,
90
- c ? e.pageTitleDesktop : e.pageTitleMobile
91
- ].join(" "),
92
- children: l
93
- }
94
- ),
95
- c && /* @__PURE__ */ i("div", { className: e.actions, children: [
96
- /* @__PURE__ */ n(
97
- k,
98
- {
99
- workspaceName: t,
100
- workspaceAccount: o
101
- }
102
- ),
103
- /* @__PURE__ */ n(
104
- "button",
105
- {
106
- type: "button",
107
- className: e.bellBtn,
108
- onClick: u,
109
- "aria-label": "Notificações",
110
- children: /* @__PURE__ */ n(b, {})
111
- }
112
- ),
113
- /* @__PURE__ */ n(
114
- f,
115
- {
116
- userName: s,
117
- userRole: h,
118
- userAvatar: p
119
- }
120
- )
121
- ] }),
122
- m && /* @__PURE__ */ i("div", { className: e.actions, children: [
123
- /* @__PURE__ */ n(
124
- "button",
125
- {
126
- type: "button",
127
- className: e.bellBtn,
128
- onClick: u,
129
- "aria-label": "Notificações",
130
- children: /* @__PURE__ */ n(b, {})
131
- }
132
- ),
133
- /* @__PURE__ */ i(
134
- "button",
135
- {
136
- type: "button",
137
- className: e.menuBtn,
138
- onClick: v,
139
- "aria-label": "Abrir menu",
140
- "aria-expanded": !1,
141
- children: [
142
- /* @__PURE__ */ n("span", { className: e.menuIcon, children: /* @__PURE__ */ n(x, {}) }),
143
- "Menu"
144
- ]
145
- }
146
- )
147
- ] }),
148
- d && /* @__PURE__ */ i("div", { className: [e.actions, e.actionsMobileOpen].join(" "), children: [
149
- r && /* @__PURE__ */ n(
150
- "button",
151
- {
152
- type: "button",
153
- className: e.ctaBtn,
154
- onClick: r.onClick,
155
- children: r.label
156
- }
157
- ),
158
- /* @__PURE__ */ i("div", { className: e.mainActions, children: [
159
- /* @__PURE__ */ n(
160
- k,
161
- {
162
- workspaceName: t,
163
- workspaceAccount: o,
164
- fullWidth: !0
165
- }
166
- ),
167
- /* @__PURE__ */ n(
168
- f,
169
- {
170
- userName: s,
171
- userRole: h,
172
- userAvatar: p
173
- }
174
- )
175
- ] })
176
- ] })
177
- ] });
178
- }
179
34
  export {
180
- y as Header
35
+ d as Button
181
36
  };
182
37
  //# sourceMappingURL=index.esm7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm7.js","sources":["../components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './Header.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type HeaderVariant = 'Default' | 'Mobile' | 'MobileOpen';\n\nexport interface HeaderProps {\n variant?: HeaderVariant;\n /** Page / section title shown on the left */\n pageTitle?: string;\n /** Workspace display name (e.g. \"Best Buy Eletronics\") */\n workspaceName?: string;\n /** Workspace account label (defaults to \"Conta Atual\") */\n workspaceAccount?: string;\n /** Logged-in user display name */\n userName?: string;\n /** Logged-in user role / subtitle */\n userRole?: string;\n /** Avatar image URL — falls back to initials */\n userAvatar?: string;\n /** Called when the Mobile hamburger \"Menu\" button is clicked */\n onMenuToggle?: () => void;\n /** Called when the bell notification button is clicked */\n onNotifications?: () => void;\n /** Primary CTA in MobileOpen expanded panel */\n primaryAction?: { label: string; onClick: () => void };\n className?: string;\n}\n\n// ─── Inline SVG icons ─────────────────────────────────────────────────────────\n\nfunction IconBell() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n </svg>\n );\n}\n\nfunction IconMenu() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" aria-hidden=\"true\">\n <line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\" />\n <line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\" />\n <line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\" />\n </svg>\n );\n}\n\nfunction IconChevronDown() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n );\n}\n\n// ─── Sub-components ───────────────────────────────────────────────────────────\n\nfunction WorkspaceSwitcher({\n workspaceName = 'Workspace',\n workspaceAccount = 'Conta Atual',\n fullWidth = false,\n}: {\n workspaceName?: string;\n workspaceAccount?: string;\n fullWidth?: boolean;\n}) {\n return (\n <button\n type=\"button\"\n className={[styles.workspace, fullWidth ? styles.workspaceFull : ''].filter(Boolean).join(' ')}\n aria-label={`Trocar workspace: ${workspaceName}`}\n >\n <div className={styles.workspaceLeft}>\n <span className={styles.statusDot} aria-hidden=\"true\" />\n <div className={styles.workspaceCol}>\n <p className={styles.workspaceAccount}>{workspaceAccount}</p>\n <p className={styles.workspaceName}>{workspaceName}</p>\n </div>\n </div>\n <span className={styles.workspaceArrow}>\n <IconChevronDown />\n </span>\n </button>\n );\n}\n\nfunction UserInfo({\n userName,\n userRole,\n userAvatar,\n}: {\n userName?: string;\n userRole?: string;\n userAvatar?: string;\n}) {\n const initials = userName\n ? userName\n .split(' ')\n .slice(0, 2)\n .map((w) => w[0])\n .join('')\n .toUpperCase()\n : '?';\n\n return (\n <div className={styles.navUser}>\n <div className={styles.avatar}>\n {userAvatar ? (\n <img\n src={userAvatar}\n alt={userName ?? 'Avatar'}\n className={styles.avatarImg}\n />\n ) : (\n <span className={styles.avatarInitials}>{initials}</span>\n )}\n </div>\n {(userName || userRole) && (\n <div className={styles.userText}>\n {userName && <p className={styles.userName}>{userName}</p>}\n {userRole && <p className={styles.userRole}>{userRole}</p>}\n </div>\n )}\n </div>\n );\n}\n\n// ─── Header ───────────────────────────────────────────────────────────────────\n\nexport function Header({\n variant = 'Default',\n pageTitle = 'Portal de Gestão',\n workspaceName,\n workspaceAccount,\n userName,\n userRole,\n userAvatar,\n onMenuToggle,\n onNotifications,\n primaryAction,\n className,\n}: HeaderProps) {\n const isDefault = variant === 'Default';\n const isMobile = variant === 'Mobile';\n const isMobileOpen = variant === 'MobileOpen';\n\n const rootClass = [\n styles.header,\n isDefault ? styles.variantDefault : '',\n isMobile ? styles.variantMobile : '',\n isMobileOpen ? styles.variantMobileOpen : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <header className={rootClass}>\n {/* Page title — Default + Mobile only */}\n {!isMobileOpen && (\n <h1\n className={[\n styles.pageTitle,\n isDefault ? styles.pageTitleDesktop : styles.pageTitleMobile,\n ].join(' ')}\n >\n {pageTitle}\n </h1>\n )}\n\n {/* ── Default actions ─────────────────────────────────────────────── */}\n {isDefault && (\n <div className={styles.actions}>\n <WorkspaceSwitcher\n workspaceName={workspaceName}\n workspaceAccount={workspaceAccount}\n />\n <button\n type=\"button\"\n className={styles.bellBtn}\n onClick={onNotifications}\n aria-label=\"Notificações\"\n >\n <IconBell />\n </button>\n <UserInfo\n userName={userName}\n userRole={userRole}\n userAvatar={userAvatar}\n />\n </div>\n )}\n\n {/* ── Mobile actions ──────────────────────────────────────────────── */}\n {isMobile && (\n <div className={styles.actions}>\n <button\n type=\"button\"\n className={styles.bellBtn}\n onClick={onNotifications}\n aria-label=\"Notificações\"\n >\n <IconBell />\n </button>\n <button\n type=\"button\"\n className={styles.menuBtn}\n onClick={onMenuToggle}\n aria-label=\"Abrir menu\"\n aria-expanded={false}\n >\n <span className={styles.menuIcon}>\n <IconMenu />\n </span>\n Menu\n </button>\n </div>\n )}\n\n {/* ── MobileOpen expanded panel ────────────────────────────────────── */}\n {isMobileOpen && (\n <div className={[styles.actions, styles.actionsMobileOpen].join(' ')}>\n {/* CTA */}\n {primaryAction && (\n <button\n type=\"button\"\n className={styles.ctaBtn}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </button>\n )}\n\n {/* Workspace + User */}\n <div className={styles.mainActions}>\n <WorkspaceSwitcher\n workspaceName={workspaceName}\n workspaceAccount={workspaceAccount}\n fullWidth\n />\n <UserInfo\n userName={userName}\n userRole={userRole}\n userAvatar={userAvatar}\n />\n </div>\n </div>\n )}\n </header>\n );\n}\n"],"names":["IconBell","jsx","IconMenu","IconChevronDown","WorkspaceSwitcher","workspaceName","workspaceAccount","fullWidth","jsxs","styles","UserInfo","userName","userRole","userAvatar","initials","w","Header","variant","pageTitle","onMenuToggle","onNotifications","primaryAction","className","isDefault","isMobile","isMobileOpen","rootClass"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm7.js","sources":["../components/Button/Button.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './Button.module.css';\n\nexport type ButtonVariant = 'outline' | 'fill' | 'secondary' | 'text';\nexport type ButtonSize = 'sm' | 'md';\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Visual variant. Defaults to 'outline'. */\n variant?: ButtonVariant;\n /**\n * Size of the button.\n * - sm → min-height 36px (Figma size=\"36\")\n * - md → min-height 48px (Figma size=\"48\")\n * Defaults to 'sm'.\n */\n size?: ButtonSize;\n /** Node rendered before the label. Sized to 24×24 px by the stylesheet. */\n iconLeft?: React.ReactNode;\n /** Node rendered after the label. Sized to 24×24 px by the stylesheet. */\n iconRight?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport function Button({\n variant = 'outline',\n size = 'sm',\n iconLeft,\n iconRight,\n disabled,\n className,\n children,\n ...props\n}: ButtonProps) {\n // When the button is disabled, the disabled visual variant takes over\n const visualVariant = disabled ? 'disabled' : variant;\n\n const classNames = [\n styles.button,\n styles[size],\n styles[visualVariant],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n className={classNames}\n disabled={disabled}\n aria-disabled={disabled}\n {...props}\n >\n {iconLeft && <span className={styles.icon}>{iconLeft}</span>}\n <span className={styles.label}>{children}</span>\n {iconRight && <span className={styles.icon}>{iconRight}</span>}\n </button>\n );\n}\n"],"names":["Button","variant","size","iconLeft","iconRight","disabled","className","children","props","visualVariant","classNames","styles","jsxs","jsx"],"mappings":";;AAwBO,SAASA,EAAO;AAAA,EACrB,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAgB;AAEd,QAAMC,IAAgBJ,IAAW,aAAaJ,GAExCS,IAAa;AAAA,IACjBC,EAAO;AAAA,IACPA,EAAOT,CAAI;AAAA,IACXS,EAAOF,CAAa;AAAA,IACpBH;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWF;AAAA,MACX,UAAAL;AAAA,MACA,iBAAeA;AAAA,MACd,GAAGG;AAAA,MAEH,UAAA;AAAA,QAAAL,KAAY,gBAAAU,EAAC,QAAA,EAAK,WAAWF,EAAO,MAAO,UAAAR,GAAS;AAAA,QACrD,gBAAAU,EAAC,QAAA,EAAK,WAAWF,EAAO,OAAQ,UAAAJ,GAAS;AAAA,QACxCH,KAAa,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAO,MAAO,UAAAP,EAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG7D;"}
@@ -1,69 +1,182 @@
1
- import { jsxs as n, jsx as a } from "react/jsx-runtime";
2
- import { useId as D } from "react";
3
- import e from "./index.esm15.js";
4
- function E({
5
- state: i = "Default",
6
- label: o,
7
- placeholder: p,
8
- message: s,
9
- iconLabel: c,
10
- iconLeft: m,
11
- iconRight: t,
12
- value: h,
13
- onChange: b,
14
- id: u,
15
- className: f,
16
- ...v
1
+ import { jsxs as i, jsx as n } from "react/jsx-runtime";
2
+ import e from "./index.esm22.js";
3
+ function b() {
4
+ return /* @__PURE__ */ i("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
5
+ /* @__PURE__ */ n("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
6
+ /* @__PURE__ */ n("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
7
+ ] });
8
+ }
9
+ function x() {
10
+ return /* @__PURE__ */ i("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", children: [
11
+ /* @__PURE__ */ n("line", { x1: "4", y1: "6", x2: "20", y2: "6" }),
12
+ /* @__PURE__ */ n("line", { x1: "4", y1: "12", x2: "20", y2: "12" }),
13
+ /* @__PURE__ */ n("line", { x1: "4", y1: "18", x2: "20", y2: "18" })
14
+ ] });
15
+ }
16
+ function C() {
17
+ return /* @__PURE__ */ n("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M4 6l4 4 4-4" }) });
18
+ }
19
+ function k({
20
+ workspaceName: a = "Workspace",
21
+ workspaceAccount: l = "Conta Atual",
22
+ fullWidth: t = !1
23
+ }) {
24
+ return /* @__PURE__ */ i(
25
+ "button",
26
+ {
27
+ type: "button",
28
+ className: [e.workspace, t ? e.workspaceFull : ""].filter(Boolean).join(" "),
29
+ "aria-label": `Trocar workspace: ${a}`,
30
+ children: [
31
+ /* @__PURE__ */ i("div", { className: e.workspaceLeft, children: [
32
+ /* @__PURE__ */ n("span", { className: e.statusDot, "aria-hidden": "true" }),
33
+ /* @__PURE__ */ i("div", { className: e.workspaceCol, children: [
34
+ /* @__PURE__ */ n("p", { className: e.workspaceAccount, children: l }),
35
+ /* @__PURE__ */ n("p", { className: e.workspaceName, children: a })
36
+ ] })
37
+ ] }),
38
+ /* @__PURE__ */ n("span", { className: e.workspaceArrow, children: /* @__PURE__ */ n(C, {}) })
39
+ ]
40
+ }
41
+ );
42
+ }
43
+ function f({
44
+ userName: a,
45
+ userRole: l,
46
+ userAvatar: t
17
47
  }) {
18
- const N = D(), r = u ?? N, l = i === "Disabled", d = i === "Error", j = [
19
- e.field,
20
- i === "Hover" ? e.hover : "",
21
- i === "Active" ? e.active : "",
22
- l ? e.disabled : "",
23
- d ? e.error : "",
24
- f
48
+ const o = a ? a.split(" ").slice(0, 2).map((s) => s[0]).join("").toUpperCase() : "?";
49
+ return /* @__PURE__ */ i("div", { className: e.navUser, children: [
50
+ /* @__PURE__ */ n("div", { className: e.avatar, children: t ? /* @__PURE__ */ n(
51
+ "img",
52
+ {
53
+ src: t,
54
+ alt: a ?? "Avatar",
55
+ className: e.avatarImg
56
+ }
57
+ ) : /* @__PURE__ */ n("span", { className: e.avatarInitials, children: o }) }),
58
+ (a || l) && /* @__PURE__ */ i("div", { className: e.userText, children: [
59
+ a && /* @__PURE__ */ n("p", { className: e.userName, children: a }),
60
+ l && /* @__PURE__ */ n("p", { className: e.userRole, children: l })
61
+ ] })
62
+ ] });
63
+ }
64
+ function y({
65
+ variant: a = "Default",
66
+ pageTitle: l = "Portal de Gestão",
67
+ workspaceName: t,
68
+ workspaceAccount: o,
69
+ userName: s,
70
+ userRole: h,
71
+ userAvatar: p,
72
+ onMenuToggle: v,
73
+ onNotifications: u,
74
+ primaryAction: r,
75
+ className: N
76
+ }) {
77
+ const c = a === "Default", m = a === "Mobile", d = a === "MobileOpen", w = [
78
+ e.header,
79
+ c ? e.variantDefault : "",
80
+ m ? e.variantMobile : "",
81
+ d ? e.variantMobileOpen : "",
82
+ N
25
83
  ].filter(Boolean).join(" ");
26
- return /* @__PURE__ */ n("div", { className: e.wrapper, children: [
27
- o && /* @__PURE__ */ n("div", { className: e.labelRow, children: [
28
- /* @__PURE__ */ a(
29
- "label",
84
+ return /* @__PURE__ */ i("header", { className: w, children: [
85
+ !d && /* @__PURE__ */ n(
86
+ "h1",
87
+ {
88
+ className: [
89
+ e.pageTitle,
90
+ c ? e.pageTitleDesktop : e.pageTitleMobile
91
+ ].join(" "),
92
+ children: l
93
+ }
94
+ ),
95
+ c && /* @__PURE__ */ i("div", { className: e.actions, children: [
96
+ /* @__PURE__ */ n(
97
+ k,
98
+ {
99
+ workspaceName: t,
100
+ workspaceAccount: o
101
+ }
102
+ ),
103
+ /* @__PURE__ */ n(
104
+ "button",
30
105
  {
31
- htmlFor: r,
32
- className: [e.label, l ? e.labelDisabled : ""].filter(Boolean).join(" "),
33
- children: o
106
+ type: "button",
107
+ className: e.bellBtn,
108
+ onClick: u,
109
+ "aria-label": "Notificações",
110
+ children: /* @__PURE__ */ n(b, {})
34
111
  }
35
112
  ),
36
- c && /* @__PURE__ */ a("span", { className: e.labelIcon, "aria-hidden": "true", children: c })
113
+ /* @__PURE__ */ n(
114
+ f,
115
+ {
116
+ userName: s,
117
+ userRole: h,
118
+ userAvatar: p
119
+ }
120
+ )
37
121
  ] }),
38
- /* @__PURE__ */ n("div", { className: j, children: [
39
- m && /* @__PURE__ */ a("span", { className: e.icon, "aria-hidden": "true", children: m }),
40
- /* @__PURE__ */ a(
41
- "input",
122
+ m && /* @__PURE__ */ i("div", { className: e.actions, children: [
123
+ /* @__PURE__ */ n(
124
+ "button",
42
125
  {
43
- id: r,
44
- className: e.input,
45
- placeholder: p,
46
- disabled: l,
47
- value: h,
48
- onChange: b,
49
- "aria-invalid": d,
50
- "aria-describedby": s ? `${r}-message` : void 0,
51
- ...v
126
+ type: "button",
127
+ className: e.bellBtn,
128
+ onClick: u,
129
+ "aria-label": "Notificações",
130
+ children: /* @__PURE__ */ n(b, {})
52
131
  }
53
132
  ),
54
- t && /* @__PURE__ */ a("span", { className: e.icon, "aria-hidden": "true", children: t })
133
+ /* @__PURE__ */ i(
134
+ "button",
135
+ {
136
+ type: "button",
137
+ className: e.menuBtn,
138
+ onClick: v,
139
+ "aria-label": "Abrir menu",
140
+ "aria-expanded": !1,
141
+ children: [
142
+ /* @__PURE__ */ n("span", { className: e.menuIcon, children: /* @__PURE__ */ n(x, {}) }),
143
+ "Menu"
144
+ ]
145
+ }
146
+ )
55
147
  ] }),
56
- s && /* @__PURE__ */ a(
57
- "p",
58
- {
59
- id: `${r}-message`,
60
- className: [e.message, d ? e.messageError : ""].filter(Boolean).join(" "),
61
- children: s
62
- }
63
- )
148
+ d && /* @__PURE__ */ i("div", { className: [e.actions, e.actionsMobileOpen].join(" "), children: [
149
+ r && /* @__PURE__ */ n(
150
+ "button",
151
+ {
152
+ type: "button",
153
+ className: e.ctaBtn,
154
+ onClick: r.onClick,
155
+ children: r.label
156
+ }
157
+ ),
158
+ /* @__PURE__ */ i("div", { className: e.mainActions, children: [
159
+ /* @__PURE__ */ n(
160
+ k,
161
+ {
162
+ workspaceName: t,
163
+ workspaceAccount: o,
164
+ fullWidth: !0
165
+ }
166
+ ),
167
+ /* @__PURE__ */ n(
168
+ f,
169
+ {
170
+ userName: s,
171
+ userRole: h,
172
+ userAvatar: p
173
+ }
174
+ )
175
+ ] })
176
+ ] })
64
177
  ] });
65
178
  }
66
179
  export {
67
- E as Input
180
+ y as Header
68
181
  };
69
182
  //# sourceMappingURL=index.esm8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm8.js","sources":["../components/Input/Input.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport styles from './Input.module.css';\n\nexport type InputState = 'Default' | 'Hover' | 'Active' | 'Disabled' | 'Error';\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n /** Visual/interaction state. Defaults to 'Default'. */\n state?: InputState;\n /** Label text rendered above the field. */\n label?: string;\n placeholder?: string;\n /** Helper or error message rendered below the field. */\n message?: string;\n /** Info icon rendered beside the label. */\n iconLabel?: React.ReactNode;\n /** Icon rendered inside the field, left side (24×24 slot). */\n iconLeft?: React.ReactNode;\n /** Icon rendered inside the field, right side (24×24 slot). */\n iconRight?: React.ReactNode;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport function Input({\n state = 'Default',\n label,\n placeholder,\n message,\n iconLabel,\n iconLeft,\n iconRight,\n value,\n onChange,\n id: idProp,\n className,\n ...props\n}: InputProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n\n const isDisabled = state === 'Disabled';\n const isError = state === 'Error';\n\n const fieldClass = [\n styles.field,\n state === 'Hover' ? styles.hover : '',\n state === 'Active' ? styles.active : '',\n isDisabled ? styles.disabled : '',\n isError ? styles.error : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={styles.wrapper}>\n {label && (\n <div className={styles.labelRow}>\n <label\n htmlFor={id}\n className={[styles.label, isDisabled ? styles.labelDisabled : '']\n .filter(Boolean)\n .join(' ')}\n >\n {label}\n </label>\n {iconLabel && (\n <span className={styles.labelIcon} aria-hidden=\"true\">\n {iconLabel}\n </span>\n )}\n </div>\n )}\n\n <div className={fieldClass}>\n {iconLeft && (\n <span className={styles.icon} aria-hidden=\"true\">\n {iconLeft}\n </span>\n )}\n <input\n id={id}\n className={styles.input}\n placeholder={placeholder}\n disabled={isDisabled}\n value={value}\n onChange={onChange}\n aria-invalid={isError}\n aria-describedby={message ? `${id}-message` : undefined}\n {...props}\n />\n {iconRight && (\n <span className={styles.icon} aria-hidden=\"true\">\n {iconRight}\n </span>\n )}\n </div>\n\n {message && (\n <p\n id={`${id}-message`}\n className={[styles.message, isError ? styles.messageError : '']\n .filter(Boolean)\n .join(' ')}\n >\n {message}\n </p>\n )}\n </div>\n );\n}\n"],"names":["Input","state","label","placeholder","message","iconLabel","iconLeft","iconRight","value","onChange","idProp","className","props","generatedId","useId","id","isDisabled","isError","fieldClass","styles","jsxs","jsx"],"mappings":";;;AAwBO,SAASA,EAAM;AAAA,EACpB,OAAAC,IAAQ;AAAA,EACR,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,WAAAC;AAAA,EACA,GAAGC;AACL,GAAe;AACb,QAAMC,IAAcC,EAAA,GACdC,IAAKL,KAAUG,GAEfG,IAAaf,MAAU,YACvBgB,IAAUhB,MAAU,SAEpBiB,IAAa;AAAA,IACjBC,EAAO;AAAA,IACPlB,MAAU,UAAUkB,EAAO,QAAQ;AAAA,IACnClB,MAAU,WAAWkB,EAAO,SAAS;AAAA,IACrCH,IAAaG,EAAO,WAAW;AAAA,IAC/BF,IAAUE,EAAO,QAAQ;AAAA,IACzBR;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,SACpB,UAAA;AAAA,IAAAjB,KACC,gBAAAkB,EAAC,OAAA,EAAI,WAAWD,EAAO,UACrB,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASN;AAAA,UACT,WAAW,CAACI,EAAO,OAAOH,IAAaG,EAAO,gBAAgB,EAAE,EAC7D,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UAEV,UAAAjB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEFG,uBACE,QAAA,EAAK,WAAWc,EAAO,WAAW,eAAY,QAC5C,UAAAd,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IAGF,gBAAAe,EAAC,OAAA,EAAI,WAAWF,GACb,UAAA;AAAA,MAAAZ,uBACE,QAAA,EAAK,WAAWa,EAAO,MAAM,eAAY,QACvC,UAAAb,EAAA,CACH;AAAA,MAEF,gBAAAe;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAAN;AAAA,UACA,WAAWI,EAAO;AAAA,UAClB,aAAAhB;AAAA,UACA,UAAUa;AAAA,UACV,OAAAR;AAAA,UACA,UAAAC;AAAA,UACA,gBAAcQ;AAAA,UACd,oBAAkBb,IAAU,GAAGW,CAAE,aAAa;AAAA,UAC7C,GAAGH;AAAA,QAAA;AAAA,MAAA;AAAA,MAELL,uBACE,QAAA,EAAK,WAAWY,EAAO,MAAM,eAAY,QACvC,UAAAZ,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IAECH,KACC,gBAAAiB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,GAAGN,CAAE;AAAA,QACT,WAAW,CAACI,EAAO,SAASF,IAAUE,EAAO,eAAe,EAAE,EAC3D,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QAEV,UAAAf;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.esm8.js","sources":["../components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './Header.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type HeaderVariant = 'Default' | 'Mobile' | 'MobileOpen';\n\nexport interface HeaderProps {\n variant?: HeaderVariant;\n /** Page / section title shown on the left */\n pageTitle?: string;\n /** Workspace display name (e.g. \"Best Buy Eletronics\") */\n workspaceName?: string;\n /** Workspace account label (defaults to \"Conta Atual\") */\n workspaceAccount?: string;\n /** Logged-in user display name */\n userName?: string;\n /** Logged-in user role / subtitle */\n userRole?: string;\n /** Avatar image URL — falls back to initials */\n userAvatar?: string;\n /** Called when the Mobile hamburger \"Menu\" button is clicked */\n onMenuToggle?: () => void;\n /** Called when the bell notification button is clicked */\n onNotifications?: () => void;\n /** Primary CTA in MobileOpen expanded panel */\n primaryAction?: { label: string; onClick: () => void };\n className?: string;\n}\n\n// ─── Inline SVG icons ─────────────────────────────────────────────────────────\n\nfunction IconBell() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n </svg>\n );\n}\n\nfunction IconMenu() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" aria-hidden=\"true\">\n <line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\" />\n <line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\" />\n <line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\" />\n </svg>\n );\n}\n\nfunction IconChevronDown() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n );\n}\n\n// ─── Sub-components ───────────────────────────────────────────────────────────\n\nfunction WorkspaceSwitcher({\n workspaceName = 'Workspace',\n workspaceAccount = 'Conta Atual',\n fullWidth = false,\n}: {\n workspaceName?: string;\n workspaceAccount?: string;\n fullWidth?: boolean;\n}) {\n return (\n <button\n type=\"button\"\n className={[styles.workspace, fullWidth ? styles.workspaceFull : ''].filter(Boolean).join(' ')}\n aria-label={`Trocar workspace: ${workspaceName}`}\n >\n <div className={styles.workspaceLeft}>\n <span className={styles.statusDot} aria-hidden=\"true\" />\n <div className={styles.workspaceCol}>\n <p className={styles.workspaceAccount}>{workspaceAccount}</p>\n <p className={styles.workspaceName}>{workspaceName}</p>\n </div>\n </div>\n <span className={styles.workspaceArrow}>\n <IconChevronDown />\n </span>\n </button>\n );\n}\n\nfunction UserInfo({\n userName,\n userRole,\n userAvatar,\n}: {\n userName?: string;\n userRole?: string;\n userAvatar?: string;\n}) {\n const initials = userName\n ? userName\n .split(' ')\n .slice(0, 2)\n .map((w) => w[0])\n .join('')\n .toUpperCase()\n : '?';\n\n return (\n <div className={styles.navUser}>\n <div className={styles.avatar}>\n {userAvatar ? (\n <img\n src={userAvatar}\n alt={userName ?? 'Avatar'}\n className={styles.avatarImg}\n />\n ) : (\n <span className={styles.avatarInitials}>{initials}</span>\n )}\n </div>\n {(userName || userRole) && (\n <div className={styles.userText}>\n {userName && <p className={styles.userName}>{userName}</p>}\n {userRole && <p className={styles.userRole}>{userRole}</p>}\n </div>\n )}\n </div>\n );\n}\n\n// ─── Header ───────────────────────────────────────────────────────────────────\n\nexport function Header({\n variant = 'Default',\n pageTitle = 'Portal de Gestão',\n workspaceName,\n workspaceAccount,\n userName,\n userRole,\n userAvatar,\n onMenuToggle,\n onNotifications,\n primaryAction,\n className,\n}: HeaderProps) {\n const isDefault = variant === 'Default';\n const isMobile = variant === 'Mobile';\n const isMobileOpen = variant === 'MobileOpen';\n\n const rootClass = [\n styles.header,\n isDefault ? styles.variantDefault : '',\n isMobile ? styles.variantMobile : '',\n isMobileOpen ? styles.variantMobileOpen : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <header className={rootClass}>\n {/* Page title — Default + Mobile only */}\n {!isMobileOpen && (\n <h1\n className={[\n styles.pageTitle,\n isDefault ? styles.pageTitleDesktop : styles.pageTitleMobile,\n ].join(' ')}\n >\n {pageTitle}\n </h1>\n )}\n\n {/* ── Default actions ─────────────────────────────────────────────── */}\n {isDefault && (\n <div className={styles.actions}>\n <WorkspaceSwitcher\n workspaceName={workspaceName}\n workspaceAccount={workspaceAccount}\n />\n <button\n type=\"button\"\n className={styles.bellBtn}\n onClick={onNotifications}\n aria-label=\"Notificações\"\n >\n <IconBell />\n </button>\n <UserInfo\n userName={userName}\n userRole={userRole}\n userAvatar={userAvatar}\n />\n </div>\n )}\n\n {/* ── Mobile actions ──────────────────────────────────────────────── */}\n {isMobile && (\n <div className={styles.actions}>\n <button\n type=\"button\"\n className={styles.bellBtn}\n onClick={onNotifications}\n aria-label=\"Notificações\"\n >\n <IconBell />\n </button>\n <button\n type=\"button\"\n className={styles.menuBtn}\n onClick={onMenuToggle}\n aria-label=\"Abrir menu\"\n aria-expanded={false}\n >\n <span className={styles.menuIcon}>\n <IconMenu />\n </span>\n Menu\n </button>\n </div>\n )}\n\n {/* ── MobileOpen expanded panel ────────────────────────────────────── */}\n {isMobileOpen && (\n <div className={[styles.actions, styles.actionsMobileOpen].join(' ')}>\n {/* CTA */}\n {primaryAction && (\n <button\n type=\"button\"\n className={styles.ctaBtn}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </button>\n )}\n\n {/* Workspace + User */}\n <div className={styles.mainActions}>\n <WorkspaceSwitcher\n workspaceName={workspaceName}\n workspaceAccount={workspaceAccount}\n fullWidth\n />\n <UserInfo\n userName={userName}\n userRole={userRole}\n userAvatar={userAvatar}\n />\n </div>\n </div>\n )}\n </header>\n );\n}\n"],"names":["IconBell","jsx","IconMenu","IconChevronDown","WorkspaceSwitcher","workspaceName","workspaceAccount","fullWidth","jsxs","styles","UserInfo","userName","userRole","userAvatar","initials","w","Header","variant","pageTitle","onMenuToggle","onNotifications","primaryAction","className","isDefault","isMobile","isMobileOpen","rootClass"],"mappings":"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"}