@teja-app/ui 0.0.11 → 0.0.13

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 (246) hide show
  1. package/dist/hooks/index.d.ts +1 -1
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/useSidebar.d.ts +32 -1
  4. package/dist/hooks/useSidebar.d.ts.map +1 -1
  5. package/dist/index.cjs +0 -4879
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.ts +6 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +0 -4863
  10. package/dist/index.js.map +1 -1
  11. package/dist/theme/components/Accordion.d.ts +75 -0
  12. package/dist/theme/components/Accordion.d.ts.map +1 -0
  13. package/dist/theme/components/Badge.d.ts +21 -1
  14. package/dist/theme/components/Badge.d.ts.map +1 -1
  15. package/dist/theme/components/Breadcrumbs.d.ts +53 -0
  16. package/dist/theme/components/Breadcrumbs.d.ts.map +1 -0
  17. package/dist/theme/components/Card.d.ts +37 -2
  18. package/dist/theme/components/Card.d.ts.map +1 -1
  19. package/dist/theme/components/Checkbox.d.ts +6 -1
  20. package/dist/theme/components/Checkbox.d.ts.map +1 -1
  21. package/dist/theme/components/DarkScope.d.ts +54 -0
  22. package/dist/theme/components/DarkScope.d.ts.map +1 -0
  23. package/dist/theme/components/Menu.d.ts +84 -0
  24. package/dist/theme/components/Menu.d.ts.map +1 -0
  25. package/dist/theme/components/OTPInput.d.ts +58 -0
  26. package/dist/theme/components/OTPInput.d.ts.map +1 -0
  27. package/dist/theme/components/PasswordInput.d.ts +48 -0
  28. package/dist/theme/components/PasswordInput.d.ts.map +1 -0
  29. package/dist/{components/PillSelector/PillSelector.types.d.ts → theme/components/PillSelector.d.ts} +21 -2
  30. package/dist/theme/components/PillSelector.d.ts.map +1 -0
  31. package/dist/theme/components/Radio.d.ts +89 -0
  32. package/dist/theme/components/Radio.d.ts.map +1 -0
  33. package/dist/theme/components/SegmentedControl.d.ts.map +1 -1
  34. package/dist/theme/components/SelectableCard.d.ts +34 -0
  35. package/dist/theme/components/SelectableCard.d.ts.map +1 -0
  36. package/dist/theme/components/SidebarNav/SidebarNav.d.ts +20 -0
  37. package/dist/theme/components/SidebarNav/SidebarNav.d.ts.map +1 -0
  38. package/dist/theme/components/SidebarNav/SidebarNavDivider.d.ts +8 -0
  39. package/dist/theme/components/SidebarNav/SidebarNavDivider.d.ts.map +1 -0
  40. package/dist/theme/components/SidebarNav/SidebarNavGroupRow.d.ts +8 -0
  41. package/dist/theme/components/SidebarNav/SidebarNavGroupRow.d.ts.map +1 -0
  42. package/dist/theme/components/SidebarNav/SidebarNavItemRow.d.ts +8 -0
  43. package/dist/theme/components/SidebarNav/SidebarNavItemRow.d.ts.map +1 -0
  44. package/dist/theme/components/SidebarNav/index.d.ts +12 -0
  45. package/dist/theme/components/SidebarNav/index.d.ts.map +1 -0
  46. package/dist/theme/components/SidebarNav/types.d.ts +157 -0
  47. package/dist/theme/components/SidebarNav/types.d.ts.map +1 -0
  48. package/dist/theme/components/Table.d.ts +70 -0
  49. package/dist/theme/components/Table.d.ts.map +1 -0
  50. package/dist/theme/components/Toast.d.ts +79 -0
  51. package/dist/theme/components/Toast.d.ts.map +1 -0
  52. package/dist/theme/components/ToggleChip.d.ts +38 -0
  53. package/dist/theme/components/ToggleChip.d.ts.map +1 -0
  54. package/dist/theme/components/Tooltip.d.ts +40 -0
  55. package/dist/theme/components/Tooltip.d.ts.map +1 -0
  56. package/dist/theme/components/index.d.ts +16 -1
  57. package/dist/theme/components/index.d.ts.map +1 -1
  58. package/dist/theme/index.cjs +15555 -2528
  59. package/dist/theme/index.cjs.map +1 -1
  60. package/dist/theme/index.js +17345 -4334
  61. package/dist/theme/index.js.map +1 -1
  62. package/dist/ui.css +159 -159
  63. package/dist/useSidebar-BWe09WbE.js.map +1 -1
  64. package/dist/useSidebar-d1VZFhxd.cjs.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/components/Alert/Alert.d.ts +0 -13
  67. package/dist/components/Alert/Alert.d.ts.map +0 -1
  68. package/dist/components/Alert/Alert.types.d.ts +0 -17
  69. package/dist/components/Alert/Alert.types.d.ts.map +0 -1
  70. package/dist/components/Alert/index.d.ts +0 -3
  71. package/dist/components/Alert/index.d.ts.map +0 -1
  72. package/dist/components/Avatar/Avatar.d.ts +0 -13
  73. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  74. package/dist/components/Avatar/Avatar.types.d.ts +0 -18
  75. package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
  76. package/dist/components/Avatar/index.d.ts +0 -3
  77. package/dist/components/Avatar/index.d.ts.map +0 -1
  78. package/dist/components/Badge/Badge.d.ts +0 -13
  79. package/dist/components/Badge/Badge.d.ts.map +0 -1
  80. package/dist/components/Badge/Badge.types.d.ts +0 -14
  81. package/dist/components/Badge/Badge.types.d.ts.map +0 -1
  82. package/dist/components/Badge/index.d.ts +0 -3
  83. package/dist/components/Badge/index.d.ts.map +0 -1
  84. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -18
  85. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  86. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +0 -22
  87. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts.map +0 -1
  88. package/dist/components/Breadcrumbs/index.d.ts +0 -3
  89. package/dist/components/Breadcrumbs/index.d.ts.map +0 -1
  90. package/dist/components/Button/Button.d.ts +0 -13
  91. package/dist/components/Button/Button.d.ts.map +0 -1
  92. package/dist/components/Button/Button.types.d.ts +0 -18
  93. package/dist/components/Button/Button.types.d.ts.map +0 -1
  94. package/dist/components/Button/index.d.ts +0 -3
  95. package/dist/components/Button/index.d.ts.map +0 -1
  96. package/dist/components/Card/Card.d.ts +0 -18
  97. package/dist/components/Card/Card.d.ts.map +0 -1
  98. package/dist/components/Card/Card.types.d.ts +0 -16
  99. package/dist/components/Card/Card.types.d.ts.map +0 -1
  100. package/dist/components/Card/index.d.ts +0 -3
  101. package/dist/components/Card/index.d.ts.map +0 -1
  102. package/dist/components/Checkbox/Checkbox.d.ts +0 -13
  103. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  104. package/dist/components/Checkbox/Checkbox.types.d.ts +0 -21
  105. package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
  106. package/dist/components/Checkbox/index.d.ts +0 -3
  107. package/dist/components/Checkbox/index.d.ts.map +0 -1
  108. package/dist/components/Combobox/Combobox.d.ts +0 -24
  109. package/dist/components/Combobox/Combobox.d.ts.map +0 -1
  110. package/dist/components/Combobox/Combobox.types.d.ts +0 -43
  111. package/dist/components/Combobox/Combobox.types.d.ts.map +0 -1
  112. package/dist/components/Combobox/index.d.ts +0 -3
  113. package/dist/components/Combobox/index.d.ts.map +0 -1
  114. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +0 -23
  115. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +0 -1
  116. package/dist/components/ConfirmDialog/ConfirmDialog.types.d.ts +0 -24
  117. package/dist/components/ConfirmDialog/ConfirmDialog.types.d.ts.map +0 -1
  118. package/dist/components/ConfirmDialog/index.d.ts +0 -3
  119. package/dist/components/ConfirmDialog/index.d.ts.map +0 -1
  120. package/dist/components/DateInput/DateInput.d.ts +0 -14
  121. package/dist/components/DateInput/DateInput.d.ts.map +0 -1
  122. package/dist/components/DateInput/DateInput.types.d.ts +0 -39
  123. package/dist/components/DateInput/DateInput.types.d.ts.map +0 -1
  124. package/dist/components/DateInput/index.d.ts +0 -3
  125. package/dist/components/DateInput/index.d.ts.map +0 -1
  126. package/dist/components/Drawer/Drawer.d.ts +0 -27
  127. package/dist/components/Drawer/Drawer.d.ts.map +0 -1
  128. package/dist/components/Drawer/Drawer.types.d.ts +0 -25
  129. package/dist/components/Drawer/Drawer.types.d.ts.map +0 -1
  130. package/dist/components/Drawer/index.d.ts +0 -3
  131. package/dist/components/Drawer/index.d.ts.map +0 -1
  132. package/dist/components/EmptyState/EmptyState.d.ts +0 -34
  133. package/dist/components/EmptyState/EmptyState.d.ts.map +0 -1
  134. package/dist/components/EmptyState/EmptyState.types.d.ts +0 -19
  135. package/dist/components/EmptyState/EmptyState.types.d.ts.map +0 -1
  136. package/dist/components/EmptyState/index.d.ts +0 -3
  137. package/dist/components/EmptyState/index.d.ts.map +0 -1
  138. package/dist/components/Input/Input.d.ts +0 -13
  139. package/dist/components/Input/Input.d.ts.map +0 -1
  140. package/dist/components/Input/Input.types.d.ts +0 -20
  141. package/dist/components/Input/Input.types.d.ts.map +0 -1
  142. package/dist/components/Input/index.d.ts +0 -3
  143. package/dist/components/Input/index.d.ts.map +0 -1
  144. package/dist/components/Modal/Modal.d.ts +0 -28
  145. package/dist/components/Modal/Modal.d.ts.map +0 -1
  146. package/dist/components/Modal/Modal.types.d.ts +0 -29
  147. package/dist/components/Modal/Modal.types.d.ts.map +0 -1
  148. package/dist/components/Modal/index.d.ts +0 -3
  149. package/dist/components/Modal/index.d.ts.map +0 -1
  150. package/dist/components/MultiSelect/MultiSelect.d.ts +0 -26
  151. package/dist/components/MultiSelect/MultiSelect.d.ts.map +0 -1
  152. package/dist/components/MultiSelect/MultiSelect.types.d.ts +0 -51
  153. package/dist/components/MultiSelect/MultiSelect.types.d.ts.map +0 -1
  154. package/dist/components/MultiSelect/index.d.ts +0 -3
  155. package/dist/components/MultiSelect/index.d.ts.map +0 -1
  156. package/dist/components/OTPInput/OTPInput.d.ts +0 -22
  157. package/dist/components/OTPInput/OTPInput.d.ts.map +0 -1
  158. package/dist/components/OTPInput/OTPInput.types.d.ts +0 -19
  159. package/dist/components/OTPInput/OTPInput.types.d.ts.map +0 -1
  160. package/dist/components/OTPInput/index.d.ts +0 -3
  161. package/dist/components/OTPInput/index.d.ts.map +0 -1
  162. package/dist/components/Pagination/Pagination.d.ts +0 -35
  163. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  164. package/dist/components/Pagination/Pagination.types.d.ts +0 -31
  165. package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
  166. package/dist/components/Pagination/index.d.ts +0 -3
  167. package/dist/components/Pagination/index.d.ts.map +0 -1
  168. package/dist/components/PasswordInput/PasswordInput.d.ts +0 -12
  169. package/dist/components/PasswordInput/PasswordInput.d.ts.map +0 -1
  170. package/dist/components/PasswordInput/PasswordInput.types.d.ts +0 -16
  171. package/dist/components/PasswordInput/PasswordInput.types.d.ts.map +0 -1
  172. package/dist/components/PasswordInput/index.d.ts +0 -3
  173. package/dist/components/PasswordInput/index.d.ts.map +0 -1
  174. package/dist/components/PillSelector/PillSelector.d.ts +0 -16
  175. package/dist/components/PillSelector/PillSelector.d.ts.map +0 -1
  176. package/dist/components/PillSelector/PillSelector.types.d.ts.map +0 -1
  177. package/dist/components/PillSelector/index.d.ts +0 -3
  178. package/dist/components/PillSelector/index.d.ts.map +0 -1
  179. package/dist/components/Radio/Radio.d.ts +0 -12
  180. package/dist/components/Radio/Radio.d.ts.map +0 -1
  181. package/dist/components/Radio/Radio.types.d.ts +0 -49
  182. package/dist/components/Radio/Radio.types.d.ts.map +0 -1
  183. package/dist/components/Radio/RadioGroup.d.ts +0 -23
  184. package/dist/components/Radio/RadioGroup.d.ts.map +0 -1
  185. package/dist/components/Radio/index.d.ts +0 -4
  186. package/dist/components/Radio/index.d.ts.map +0 -1
  187. package/dist/components/Select/Select.d.ts +0 -22
  188. package/dist/components/Select/Select.d.ts.map +0 -1
  189. package/dist/components/Select/Select.types.d.ts +0 -42
  190. package/dist/components/Select/Select.types.d.ts.map +0 -1
  191. package/dist/components/Select/index.d.ts +0 -3
  192. package/dist/components/Select/index.d.ts.map +0 -1
  193. package/dist/components/Sidebar/Sidebar.d.ts +0 -36
  194. package/dist/components/Sidebar/Sidebar.d.ts.map +0 -1
  195. package/dist/components/Sidebar/Sidebar.types.d.ts +0 -200
  196. package/dist/components/Sidebar/Sidebar.types.d.ts.map +0 -1
  197. package/dist/components/Sidebar/SidebarDivider.d.ts +0 -12
  198. package/dist/components/Sidebar/SidebarDivider.d.ts.map +0 -1
  199. package/dist/components/Sidebar/SidebarGroup.d.ts +0 -26
  200. package/dist/components/Sidebar/SidebarGroup.d.ts.map +0 -1
  201. package/dist/components/Sidebar/SidebarItem.d.ts +0 -23
  202. package/dist/components/Sidebar/SidebarItem.d.ts.map +0 -1
  203. package/dist/components/Sidebar/index.d.ts +0 -9
  204. package/dist/components/Sidebar/index.d.ts.map +0 -1
  205. package/dist/components/Skeleton/Skeleton.d.ts +0 -22
  206. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  207. package/dist/components/Skeleton/Skeleton.types.d.ts +0 -19
  208. package/dist/components/Skeleton/Skeleton.types.d.ts.map +0 -1
  209. package/dist/components/Skeleton/index.d.ts +0 -3
  210. package/dist/components/Skeleton/index.d.ts.map +0 -1
  211. package/dist/components/Spinner/Spinner.d.ts +0 -13
  212. package/dist/components/Spinner/Spinner.d.ts.map +0 -1
  213. package/dist/components/Spinner/Spinner.types.d.ts +0 -14
  214. package/dist/components/Spinner/Spinner.types.d.ts.map +0 -1
  215. package/dist/components/Spinner/index.d.ts +0 -3
  216. package/dist/components/Spinner/index.d.ts.map +0 -1
  217. package/dist/components/Table/Table.d.ts +0 -44
  218. package/dist/components/Table/Table.d.ts.map +0 -1
  219. package/dist/components/Table/Table.types.d.ts +0 -33
  220. package/dist/components/Table/Table.types.d.ts.map +0 -1
  221. package/dist/components/Table/index.d.ts +0 -3
  222. package/dist/components/Table/index.d.ts.map +0 -1
  223. package/dist/components/Tabs/Tabs.d.ts +0 -43
  224. package/dist/components/Tabs/Tabs.d.ts.map +0 -1
  225. package/dist/components/Tabs/Tabs.types.d.ts +0 -42
  226. package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
  227. package/dist/components/Tabs/index.d.ts +0 -3
  228. package/dist/components/Tabs/index.d.ts.map +0 -1
  229. package/dist/components/Textarea/Textarea.d.ts +0 -13
  230. package/dist/components/Textarea/Textarea.d.ts.map +0 -1
  231. package/dist/components/Textarea/Textarea.types.d.ts +0 -22
  232. package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
  233. package/dist/components/Textarea/index.d.ts +0 -3
  234. package/dist/components/Textarea/index.d.ts.map +0 -1
  235. package/dist/components/Toggle/Toggle.d.ts +0 -20
  236. package/dist/components/Toggle/Toggle.d.ts.map +0 -1
  237. package/dist/components/Toggle/Toggle.types.d.ts +0 -22
  238. package/dist/components/Toggle/Toggle.types.d.ts.map +0 -1
  239. package/dist/components/Toggle/index.d.ts +0 -3
  240. package/dist/components/Toggle/index.d.ts.map +0 -1
  241. package/dist/components/index.d.ts +0 -32
  242. package/dist/components/index.d.ts.map +0 -1
  243. package/dist/style-D6av97Pw.cjs +0 -10406
  244. package/dist/style-D6av97Pw.cjs.map +0 -1
  245. package/dist/style-DyXPy-7b.js +0 -10392
  246. package/dist/style-DyXPy-7b.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Accordion / AccordionItem
3
+ *
4
+ * Design source:
5
+ * - design/screens/app/documents/note-editor/intake.jsx:29-37
6
+ * (NEIntakeBlock collapsible header pattern: surface-1 bg, border-bottom,
7
+ * fontSize:13/fontWeight:600 title, Icon chevronDown size:11 ink-3)
8
+ * - design/screens/app/settings/audit-logs.jsx (chevronDown expander rows)
9
+ *
10
+ * Header: full-width button, ink-1 title (fontSize 13, weight 600),
11
+ * trailing chevronDown Icon (size 11, ink-3), rotate(180deg) when open,
12
+ * transition: transform .15s; hover background: surface-1;
13
+ * borderRadius: r-md.
14
+ * Panel: content region below header; mount/unmount; paddingTop: 8.
15
+ * a11y: header <button aria-expanded>; panel role="region" + aria-labelledby.
16
+ * testId: forwarded as {testId}-header and {testId}-panel.
17
+ */
18
+ import { type ButtonHTMLAttributes, type CSSProperties, type ReactNode } from 'react';
19
+ export interface AccordionProps {
20
+ /** Allow multiple panels to be open simultaneously. Default: false (single-open). */
21
+ multiple?: boolean;
22
+ /** Uncontrolled default open value(s). */
23
+ defaultValue?: string | string[];
24
+ /** Controlled open value(s). */
25
+ value?: string | string[];
26
+ /** Called with the new open value(s) whenever a panel is toggled. */
27
+ onChange?: (value: string | string[]) => void;
28
+ children?: ReactNode;
29
+ /** Extra inline styles on the container. */
30
+ style?: CSSProperties;
31
+ /** Forwarded as data-testid on the root element. */
32
+ testId?: string;
33
+ }
34
+ export interface AccordionItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'title'> {
35
+ /** Unique value used for controlled/uncontrolled open state. */
36
+ value: string;
37
+ /** Header content — string or ReactNode. */
38
+ title: ReactNode;
39
+ /** Panel content. */
40
+ children?: ReactNode;
41
+ /** Forwarded as {testId}-header + {testId}-panel. */
42
+ testId?: string;
43
+ /** Extra inline styles on the outer item wrapper. */
44
+ style?: CSSProperties;
45
+ }
46
+ /**
47
+ * Accordion — collapsible section container.
48
+ *
49
+ * ```tsx
50
+ * <Accordion defaultValue="section-1">
51
+ * <AccordionItem value="section-1" title="Presenting problem" testId="pp">
52
+ * Content here…
53
+ * </AccordionItem>
54
+ * <AccordionItem value="section-2" title="Clinical history">
55
+ * More content…
56
+ * </AccordionItem>
57
+ * </Accordion>
58
+ * ```
59
+ */
60
+ export declare function Accordion({ multiple, defaultValue, value: controlledValue, onChange, children, style, testId, }: AccordionProps): import("react/jsx-runtime").JSX.Element;
61
+ /**
62
+ * AccordionItem — a single collapsible panel within an Accordion.
63
+ *
64
+ * Visual harvest from NEIntakeBlock (intake.jsx:29-37):
65
+ * header row: display:flex, alignItems:center, justifyContent:space-between
66
+ * background:var(--surface-1), borderBottom:1px solid var(--border)
67
+ * title: fontSize:13, fontWeight:600 (ink-1 inherited)
68
+ * icon: chevronDown size:11, color:var(--ink-3), rotates 180° when open
69
+ * transition: transform .15s
70
+ * hover: background:var(--surface-1)
71
+ *
72
+ * a11y: button aria-expanded; panel role="region" aria-labelledby headerId.
73
+ */
74
+ export declare const AccordionItem: import("react").ForwardRefExoticComponent<AccordionItemProps & import("react").RefAttributes<HTMLButtonElement>>;
75
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Accordion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC9D,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,SAAS,CAAC;IACjB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAgB,EAChB,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE,cAAc,2CA8DhB;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,kHAmGzB,CAAC"}
@@ -1,16 +1,36 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
2
  export type BadgeTone = 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'ai';
3
3
  export type BadgeSize = 'sm' | 'md';
4
+ /**
5
+ * Explicit color override for dynamically-computed badge tones.
6
+ * Callers should pass CSS-var strings (e.g. `var(--success-soft)`) but
7
+ * arbitrary CSS color strings are accepted.
8
+ */
9
+ export interface BadgeColors {
10
+ /** Background color. */
11
+ bg: string;
12
+ /** Foreground (text) color. */
13
+ fg: string;
14
+ /** Leading dot color. Falls back to `fg` when omitted. */
15
+ dot?: string;
16
+ }
4
17
  export interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
5
18
  tone?: BadgeTone;
6
19
  size?: BadgeSize;
7
20
  /** Show a leading colored dot. */
8
21
  dot?: boolean;
22
+ /**
23
+ * Explicit color override for dynamically-computed tones.
24
+ * When provided, overrides the `tone` token lookup.
25
+ * Callers should pass CSS-var strings but arbitrary CSS color strings are accepted.
26
+ * Named `tone` prop is still used as a semantic hint for tooling; `colors` wins visually.
27
+ */
28
+ colors?: BadgeColors;
9
29
  children?: ReactNode;
10
30
  /** Forwarded as `data-testid` for e2e selectors. */
11
31
  'data-testid'?: string;
12
32
  /** Alias of `data-testid` to keep the API uniform across primitives. */
13
33
  testId?: string;
14
34
  }
15
- export declare function Badge({ tone, size, dot, children, style, testId, 'data-testid': dataTestId, ...rest }: BadgeProps): import("react/jsx-runtime").JSX.Element;
35
+ export declare function Badge({ tone, size, dot, colors, children, style, testId, 'data-testid': dataTestId, ...rest }: BadgeProps): import("react/jsx-runtime").JSX.Element;
16
36
  //# sourceMappingURL=Badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,IAAI,CAAC;AACT,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AA4BpC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACnF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAgB,EAChB,IAAW,EACX,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EAAE,UAAU,2CAsCZ"}
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,IAAI,CAAC;AACT,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA4BD,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACnF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAgB,EAChB,IAAW,EACX,GAAG,EACH,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,aAAa,EAAE,UAAU,EACzB,GAAG,IAAI,EACR,EAAE,UAAU,2CA0CZ"}
@@ -0,0 +1,53 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface BreadcrumbItem {
3
+ /** Display label */
4
+ label: string;
5
+ /** URL/path for navigation (omit for current page) */
6
+ href?: string;
7
+ /** Optional icon before label */
8
+ icon?: ReactNode;
9
+ }
10
+ export interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {
11
+ /** Breadcrumb items */
12
+ items: BreadcrumbItem[];
13
+ /** Separator between items (default: chevron icon) */
14
+ separator?: ReactNode;
15
+ /** Maximum items to show before collapsing (0 = no collapse) */
16
+ maxItems?: number;
17
+ /** Render function for links (for custom routing, e.g. React Router Link) */
18
+ renderLink?: (item: BreadcrumbItem, children: ReactNode) => ReactNode;
19
+ /** Forwarded as `data-testid` (and `data-test-id`) on the root element.
20
+ * Child items receive `{testId}-item-{index}`. */
21
+ testId?: string;
22
+ }
23
+ /**
24
+ * Breadcrumbs — navigation hierarchy trail.
25
+ *
26
+ * Drop-in replacement for the legacy `@teja-app/ui` Breadcrumbs: identical
27
+ * public prop API (`items`, `separator`, `maxItems`, `renderLink`, `testId`),
28
+ * styled with CSS-var tokens from the `@teja-app/ui/theme` design system.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <Breadcrumbs
33
+ * items={[
34
+ * { label: 'Home', href: '/' },
35
+ * { label: 'Clients', href: '/clients' },
36
+ * { label: 'John Smith', href: '/clients/123' },
37
+ * { label: 'Notes' },
38
+ * ]}
39
+ * />
40
+ * ```
41
+ *
42
+ * @example Custom router integration
43
+ * ```tsx
44
+ * <Breadcrumbs
45
+ * items={items}
46
+ * renderLink={(item, children) => (
47
+ * <Link to={item.href!}>{children}</Link>
48
+ * )}
49
+ * />
50
+ * ```
51
+ */
52
+ export declare const Breadcrumbs: import("react").ForwardRefExoticComponent<BreadcrumbsProps & import("react").RefAttributes<HTMLElement>>;
53
+ //# sourceMappingURL=Breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Breadcrumbs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMtE,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,WAAW,CAAC;IACnE,uBAAuB;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IACtE;uDACmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,0GAkKvB,CAAC"}
@@ -1,10 +1,45 @@
1
- import type { HTMLAttributes, ReactNode } from 'react';
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
2
  export interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
3
  /** Inner padding in pixels. Defaults to 20. */
4
4
  padding?: number;
5
5
  children?: ReactNode;
6
6
  /** Forwarded as `data-testid` on the root div. */
7
7
  testId?: string;
8
+ /**
9
+ * Renders the card in a selected/active state:
10
+ * - border becomes 1px var(--primary) (border-width unchanged, only color changes)
11
+ * - outer ring: 0 0 0 3px var(--primary-ring)
12
+ * - background tint: var(--primary-soft)
13
+ *
14
+ * Harvested from design/screens/app/clients/modals/create-client.jsx:191-213
15
+ * (TypeCard: r-md, 1px border, shadow-xs unselected) and
16
+ * create-inquiry.jsx SourceCard (same pattern).
17
+ */
18
+ selected?: boolean;
19
+ /**
20
+ * Makes the card interactive (pointer cursor, hover surface lift, focus-visible
21
+ * primary ring). Automatically inferred when an `onClick` handler is provided.
22
+ * Renders as a `<button>` when interactive so keyboard activation works natively.
23
+ *
24
+ * Harvested from create-client.jsx TypeCard (cursor:pointer + button element)
25
+ * and create-inquiry.jsx SourceCard (same treatment).
26
+ */
27
+ interactive?: boolean;
8
28
  }
9
- export declare function Card({ padding, children, style, testId, ...rest }: CardProps): import("react/jsx-runtime").JSX.Element;
29
+ /**
30
+ * Card — base surface primitive.
31
+ *
32
+ * Default (no extra props): white surface, r-lg radius, 1px border — identical
33
+ * to the original Card and 100% backward-compatible.
34
+ *
35
+ * Interactive/selected variant: r-md radius to match TypeCard / SourceCard design
36
+ * sources (create-client.jsx:198, create-inquiry.jsx:292). Non-selected interactive
37
+ * cards carry shadow-xs; selected state swaps it for the primary-ring glow.
38
+ *
39
+ * Enhanced:
40
+ * selected — primary ring + tint background (design TypeCard / CoupleCard pattern)
41
+ * interactive — pointer cursor, keyboard activation via <button> root
42
+ * (automatically inferred when onClick is supplied)
43
+ */
44
+ export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLElement>>;
10
45
  //# sourceMappingURL=Card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACjF,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,IAAI,CAAC,EAAE,OAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,2CAajF"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAKnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACjF,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,mGAqFf,CAAC"}
@@ -13,11 +13,16 @@ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement
13
13
  tone?: 'block' | 'inline';
14
14
  /** Custom outer style for the wrapping label. */
15
15
  containerStyle?: CSSProperties;
16
+ /**
17
+ * Tri-state: renders the dash glyph and sets the native input's
18
+ * `indeterminate` DOM property (used by "select all" rows).
19
+ */
20
+ indeterminate?: boolean;
16
21
  /**
17
22
  * Test ID — applied to the wrapping `<label>` as the root. The native
18
23
  * input gets `${testId}-input`, the styled square gets `${testId}-square`.
19
24
  */
20
25
  testId?: string;
21
26
  }
22
- export declare function Checkbox({ label, tone, containerStyle, checked, testId, ...inputProps }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function Checkbox({ label, tone, containerStyle, checked, indeterminate, testId, ...inputProps }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
23
28
  //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E;;;;;;;GAOG;AACH,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,wFAAwF;IACxF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,iDAAiD;IACjD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAe,EACf,cAAc,EACd,OAAO,EACP,MAAM,EACN,GAAG,UAAU,EACd,EAAE,aAAa,2CA2Ef"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E;;;;;;;GAOG;AACH,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,wFAAwF;IACxF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,iDAAiD;IACjD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAe,EACf,cAAc,EACd,OAAO,EACP,aAAqB,EACrB,MAAM,EACN,GAAG,UAAU,EACd,EAAE,aAAa,2CAoGf"}
@@ -0,0 +1,54 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ /**
3
+ * DarkScope — scoped dark-room wrapper.
4
+ *
5
+ * Applies the existing `[data-theme="dark"]` token block (tokens.css:120+)
6
+ * to **a subtree** by setting `data-theme="dark"` on a container div plus
7
+ * `color-scheme: dark` via inline style. Every theme component inside renders
8
+ * dark automatically — no per-component `tone="dark"` prop needed.
9
+ *
10
+ * Primary use-case: Telehealth video room (`/telehealth/$roomId`) where the
11
+ * full viewport must be dark regardless of the user's global theme setting.
12
+ *
13
+ * Design source:
14
+ * - `design/screens/app/sessions/telehealth-room.jsx` — immersive dark video
15
+ * room layout; the root `background: '#0f1117'` is the design's intent; we
16
+ * use `var(--bg)` from the dark token block instead of the hardcoded hex so
17
+ * the full dark palette applies to all children.
18
+ * - `teja-ui/src/theme/tokens.css:120` — `[data-theme="dark"]` block with
19
+ * full dark surface/ink/border/shadow/semantic token overrides.
20
+ *
21
+ * Tokens consumed (all from the `[data-theme="dark"]` block in tokens.css):
22
+ * --bg, --surface-0..3, --sidebar, --border, --border-strong, --divider,
23
+ * --ink-1..5, --primary-soft, --success/warning/danger/info/ai (-soft),
24
+ * --shadow-xs/sm/md/lg/pop (resolved via color-scheme:dark cascade).
25
+ *
26
+ * Decision note: the token-scope approach (data-theme="dark" on a subtree)
27
+ * covers EVERY theme component for free — do NOT add per-component tone="dark"
28
+ * props. See GAP-PRIMITIVES-BUILD-SPEC.md §6.
29
+ */
30
+ export interface DarkScopeProps extends HTMLAttributes<HTMLDivElement> {
31
+ children?: ReactNode;
32
+ /**
33
+ * Forwarded as `data-testid` on the root div for e2e selectors.
34
+ * Also accepts the raw `data-testid` attribute for consistency with
35
+ * components that expose both forms (e.g. Badge).
36
+ */
37
+ testId?: string;
38
+ /** Raw `data-testid` — takes precedence over `testId`. */
39
+ 'data-testid'?: string;
40
+ }
41
+ /**
42
+ * Scoped dark wrapper. Renders a `div` with `data-theme="dark"` so all
43
+ * `@teja-app/ui/theme` components in the subtree pick up dark tokens.
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * <DarkScope style={{ position: 'fixed', inset: 0 }}>
48
+ * <Card>Dark-themed card</Card>
49
+ * <Button variant="primary">Join</Button>
50
+ * </DarkScope>
51
+ * ```
52
+ */
53
+ export declare const DarkScope: import("react").ForwardRefExoticComponent<DarkScopeProps & import("react").RefAttributes<HTMLDivElement>>;
54
+ //# sourceMappingURL=DarkScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DarkScope.d.ts","sourceRoot":"","sources":["../../../src/theme/components/DarkScope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,2GAsBrB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Menu / MenuItem / MenuDivider
3
+ *
4
+ * Design source:
5
+ * - design/screens/app/appointments/modals/flyout.jsx:514 (FlyoutOverflowMenu)
6
+ * - design/components/shell.jsx:524 (NotificationBell dropdown pattern)
7
+ *
8
+ * Panel: position:absolute, top:100%, right:0, marginTop:4, zIndex high,
9
+ * minWidth:220, --surface-0 bg, 1px --border border, --r-md radius,
10
+ * shadow-pop, padding:4.
11
+ * Item: flex, gap:8, 100% width, padding 8px 10px, --r-sm radius,
12
+ * transparent bg, cursor:pointer, fontSize:12.5, --ink-1 / --danger
13
+ * color, hover --surface-1.
14
+ * Divider: hr, border:0, borderTop 1px --divider, margin 4px 2px.
15
+ * Backdrop: fixed inset:0 click-catcher (shell.jsx pattern).
16
+ */
17
+ import { type ButtonHTMLAttributes, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';
18
+ import { type IconName } from './Icon';
19
+ export type MenuPlacement = 'bottom-end' | 'bottom-start' | 'top-end' | 'top-start';
20
+ export interface MenuProps {
21
+ /** Controlled open state. */
22
+ open: boolean;
23
+ /** Called when the menu should close (outside click, Escape, item click). */
24
+ onClose: () => void;
25
+ /**
26
+ * Trigger element — rendered as the anchor. The menu positions itself
27
+ * relative to this via the parent `position:relative` wrapper.
28
+ */
29
+ trigger?: ReactNode;
30
+ children?: ReactNode;
31
+ /** Placement relative to the trigger. Default: bottom-end. */
32
+ placement?: MenuPlacement;
33
+ /** Minimum width of the panel. Default: 220. */
34
+ minWidth?: number;
35
+ /** z-index of the backdrop + panel. Default: 200. */
36
+ zIndex?: number;
37
+ /** Forwarded as `data-testid` on the panel element. */
38
+ testId?: string;
39
+ /** Extra inline styles for the panel. */
40
+ style?: CSSProperties;
41
+ }
42
+ export interface MenuItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
43
+ /** Leading icon name from the Teja icon set. */
44
+ icon?: IconName;
45
+ /** Render in danger (red) color. */
46
+ danger?: boolean;
47
+ children?: ReactNode;
48
+ /** Forwarded as `data-testid`. */
49
+ testId?: string;
50
+ }
51
+ export type MenuDividerProps = Omit<HTMLAttributes<HTMLHRElement>, 'children'>;
52
+ /**
53
+ * Menu — floating action panel.
54
+ *
55
+ * ```tsx
56
+ * const [open, setOpen] = useState(false);
57
+ * <Menu open={open} onClose={() => setOpen(false)} trigger={<IconButton>…</IconButton>}>
58
+ * <MenuItem icon="edit" onClick={…}>Edit</MenuItem>
59
+ * <MenuDivider />
60
+ * <MenuItem icon="trash" danger onClick={…}>Delete</MenuItem>
61
+ * </Menu>
62
+ * ```
63
+ */
64
+ export declare function Menu({ open, onClose, trigger, children, placement, minWidth, zIndex, testId, style, }: MenuProps): import("react/jsx-runtime").JSX.Element;
65
+ /**
66
+ * MenuItem — action row inside a Menu.
67
+ *
68
+ * Harvested from FlyoutOverflowMenu button styling (flyout.jsx:527-539):
69
+ * display:flex, alignItems:center, gap:8, width:100%,
70
+ * padding:8px 10px, border:0, borderRadius:var(--r-sm),
71
+ * background:transparent, cursor:pointer, fontFamily:inherit,
72
+ * fontSize:12.5, color:--ink-1 / --danger, textAlign:left.
73
+ * Icon size:12, color:--ink-3 / --danger.
74
+ * hover: background:--surface-1 (added via data-hover state).
75
+ */
76
+ export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLButtonElement>>;
77
+ /**
78
+ * MenuDivider — horizontal rule between item groups.
79
+ *
80
+ * Harvested from FlyoutOverflowMenu hr (flyout.jsx:525):
81
+ * border:0; borderTop:1px solid var(--divider); margin:4px 2px.
82
+ */
83
+ export declare function MenuDivider({ style, ...rest }: MenuDividerProps): import("react/jsx-runtime").JSX.Element;
84
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/theme/components/Menu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAI7C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpF,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACjE,gDAAgD;IAChD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;AA4B/E;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAwB,EACxB,QAAc,EACd,MAAY,EACZ,MAAM,EACN,KAAK,GACN,EAAE,SAAS,2CAsEX;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,6GA2DnB,CAAC;AAIH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAa/D"}
@@ -0,0 +1,58 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ /**
3
+ * OTPInput — theme-layer, variable-length one-time-code input.
4
+ *
5
+ * Drop-in replacement for the legacy `@teja-app/ui` OTPInput. Preserves the
6
+ * full public prop API (length, value, onChange, error, disabled, autoFocus,
7
+ * label, className) and adds theme-house-style extras: CSS-var tokens, inline
8
+ * style objects, forwardRef, and `testId`.
9
+ *
10
+ * Visual states per cell:
11
+ * - empty neutral border + surface-1 fill
12
+ * - active primary border + ring + blinking caret overlay
13
+ * - filled border-strong + surface-0 fill + ink-1 digit
14
+ * - error danger border + danger-tinted fill + danger digit
15
+ * - disabled reduced opacity, not-allowed cursor
16
+ *
17
+ * Interaction behaviours (preserved from legacy):
18
+ * - Auto-focus first empty cell on mount when autoFocus is true.
19
+ * - Typing a digit auto-advances focus to the next cell.
20
+ * - Backspace on an empty cell jumps back and clears the previous cell.
21
+ * - ArrowLeft / ArrowRight navigate between cells.
22
+ * - Delete clears the current cell without moving focus.
23
+ * - Paste strips non-digits and fills cells left-to-right from paste point.
24
+ * - onFocus selects the cell content for easy overwrite.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const [code, setCode] = useState('');
29
+ * <OTPInput value={code} onChange={setCode} />
30
+ * <OTPInput value={code} onChange={setCode} length={4} error="Invalid code" />
31
+ * ```
32
+ */
33
+ export interface OTPInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
34
+ /** Number of digit cells. Defaults to 6. */
35
+ length?: number;
36
+ /** Current value — a numeric string up to `length` chars. */
37
+ value: string;
38
+ /** Fired on every mutation; receives the joined digit string. */
39
+ onChange: (value: string) => void;
40
+ /** Error message displayed below the cell row. */
41
+ error?: string;
42
+ /** Disables all cells. */
43
+ disabled?: boolean;
44
+ /** Auto-focus the first empty cell on mount. Defaults to false. */
45
+ autoFocus?: boolean;
46
+ /** Screen-reader label for the cell group. Defaults to 'One-time password'. */
47
+ label?: string;
48
+ /** Additional CSS class for the root container. */
49
+ className?: string;
50
+ /**
51
+ * Root `data-testid` / `data-test-id` value. Each cell gets `${testId}-digit-${i}`.
52
+ * Defaults to `otp-input`.
53
+ */
54
+ testId?: string;
55
+ }
56
+ export declare const OTPInput: import("react").ForwardRefExoticComponent<OTPInputProps & import("react").RefAttributes<HTMLDivElement>>;
57
+ export default OTPInput;
58
+ //# sourceMappingURL=OTPInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OTPInput.d.ts","sourceRoot":"","sources":["../../../src/theme/components/OTPInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqGD,eAAO,MAAM,QAAQ,0GA6RpB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import { type FieldChromeProps } from './fieldShell';
3
+ export interface PasswordStrength {
4
+ /** Strength percentage (0–100) */
5
+ strength: number;
6
+ /** Display label */
7
+ label: 'Weak' | 'Medium' | 'Strong' | '';
8
+ /** CSS-var background colour token for the progress bar segment */
9
+ colorVar: string;
10
+ /** CSS-var text colour token for the label */
11
+ textColorVar: string;
12
+ }
13
+ export interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'>, Omit<FieldChromeProps, 'disabled'> {
14
+ /** Show the strength indicator bar + label below the input. */
15
+ showStrengthIndicator?: boolean;
16
+ /**
17
+ * Root test ID. Applied to the outer wrapper as both `data-testid` and
18
+ * `data-test-id`; children are suffixed (`-input`, `-toggle-button`,
19
+ * `-strength`, `-error`, `-hint`).
20
+ */
21
+ testId?: string;
22
+ /**
23
+ * Legacy compat: `fullWidth` is accepted as an alias for `full`.
24
+ * Consumers migrating from legacy Input/PasswordInput can keep using it.
25
+ */
26
+ fullWidth?: boolean;
27
+ /**
28
+ * Legacy compat: `helperText` is accepted as an alias for `hint`.
29
+ */
30
+ helperText?: ReactNode;
31
+ /**
32
+ * Shows a loading spinner in the trailing position (right slot).
33
+ * Preserved from legacy `isLoading` so callers don't regress.
34
+ */
35
+ isLoading?: boolean;
36
+ }
37
+ /**
38
+ * PasswordInput — themed text input with show/hide reveal toggle and an
39
+ * optional password-strength indicator bar. Drop-in replacement for the legacy
40
+ * `@teja-app/ui` `PasswordInput`; swap the import path and remove Tailwind
41
+ * class overrides.
42
+ *
43
+ * @example
44
+ * <PasswordInput label="Password" placeholder="Enter password" />
45
+ * <PasswordInput label="Password" showStrengthIndicator value={pw} onChange={…} />
46
+ */
47
+ export declare const PasswordInput: import("react").ForwardRefExoticComponent<PasswordInputProps & import("react").RefAttributes<HTMLInputElement>>;
48
+ //# sourceMappingURL=PasswordInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordInput.d.ts","sourceRoot":"","sources":["../../../src/theme/components/PasswordInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AA2CtB,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAC;IACzC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AAyCD,MAAM,WAAW,kBACf,SAAQ,IAAI,CACV,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB,EACC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACpC,+DAA+D;IAC/D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+CD;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,iHAgKzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode, HTMLAttributes } from 'react';
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
2
  export type PillSelectorSize = 'sm' | 'md' | 'lg';
3
3
  export interface PillOption {
4
4
  /** Unique value for the option */
@@ -25,5 +25,24 @@ export interface PillSelectorProps extends Omit<HTMLAttributes<HTMLDivElement>,
25
25
  fullWidth?: boolean;
26
26
  /** Disable the selector */
27
27
  disabled?: boolean;
28
+ /** Forwarded as `data-testid` on the root div. */
29
+ testId?: string;
28
30
  }
29
- //# sourceMappingURL=PillSelector.types.d.ts.map
31
+ /**
32
+ * PillSelector — segmented pill chooser for multi- or single-select chip UI.
33
+ *
34
+ * Preserves the exact legacy public API from `teja-ui/src/components/PillSelector/`.
35
+ * Styled with CSS-var tokens from the `@teja-app/ui/theme` design system.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * const [selected, setSelected] = useState<string[]>([]);
40
+ * <PillSelector
41
+ * options={[{ value: 'a', label: 'Option A' }, { value: 'b', label: 'Option B' }]}
42
+ * selected={selected}
43
+ * onChange={setSelected}
44
+ * />
45
+ * ```
46
+ */
47
+ export declare const PillSelector: import("react").ForwardRefExoticComponent<PillSelectorProps & import("react").RefAttributes<HTMLDivElement>>;
48
+ //# sourceMappingURL=PillSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillSelector.d.ts","sourceRoot":"","sources":["../../../src/theme/components/PillSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI5F,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,wBAAwB;IACxB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5C,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,8GAiIxB,CAAC"}