@mieweb/ui 0.8.0-dev.0 → 0.8.0-dev.10

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 (227) hide show
  1. package/README.md +162 -739
  2. package/agent/mieweb-ui.instructions.md +34 -16
  3. package/dist/CsvBlock-HMAZ7YK5.cjs +15 -0
  4. package/dist/{CsvBlock-OTFG3PYZ.cjs.map → CsvBlock-HMAZ7YK5.cjs.map} +1 -1
  5. package/dist/CsvBlock-RPGHFTVD.js +6 -0
  6. package/dist/{CsvBlock-PUSTBQ5B.js.map → CsvBlock-RPGHFTVD.js.map} +1 -1
  7. package/dist/SurveyBlock-ID55AT3R.js +6 -0
  8. package/dist/{SurveyBlock-JLHS3YQD.js.map → SurveyBlock-ID55AT3R.js.map} +1 -1
  9. package/dist/SurveyBlock-K6HKI7AD.cjs +15 -0
  10. package/dist/{SurveyBlock-M2ZRTGVJ.cjs.map → SurveyBlock-K6HKI7AD.cjs.map} +1 -1
  11. package/dist/{chunk-RZJXCI53.js → chunk-22CYDCXA.js} +3 -3
  12. package/dist/{chunk-RZJXCI53.js.map → chunk-22CYDCXA.js.map} +1 -1
  13. package/dist/{chunk-OTQ72WX3.js → chunk-2BPIVWAK.js} +3 -3
  14. package/dist/{chunk-OTQ72WX3.js.map → chunk-2BPIVWAK.js.map} +1 -1
  15. package/dist/{chunk-6EWJGRC3.js → chunk-3JWAABYI.js} +6 -6
  16. package/dist/chunk-3JWAABYI.js.map +1 -0
  17. package/dist/{chunk-5J5PEUUA.js → chunk-4KFVGIY6.js} +4 -4
  18. package/dist/{chunk-5J5PEUUA.js.map → chunk-4KFVGIY6.js.map} +1 -1
  19. package/dist/{chunk-A5YOIJKL.js → chunk-4KZIXV2J.js} +12 -12
  20. package/dist/{chunk-A5YOIJKL.js.map → chunk-4KZIXV2J.js.map} +1 -1
  21. package/dist/{chunk-WIYQI35R.cjs → chunk-4SIGL6QC.cjs} +4 -4
  22. package/dist/{chunk-WIYQI35R.cjs.map → chunk-4SIGL6QC.cjs.map} +1 -1
  23. package/dist/{chunk-4AE2L6AO.cjs → chunk-7FTBPLA6.cjs} +8 -8
  24. package/dist/chunk-7FTBPLA6.cjs.map +1 -0
  25. package/dist/{chunk-IILJGFI5.js → chunk-7IBZA7G6.js} +7 -5
  26. package/dist/chunk-7IBZA7G6.js.map +1 -0
  27. package/dist/{chunk-LQHI44OZ.cjs → chunk-7SFGEE4M.cjs} +16 -16
  28. package/dist/{chunk-LQHI44OZ.cjs.map → chunk-7SFGEE4M.cjs.map} +1 -1
  29. package/dist/{chunk-JHZW3Y62.js → chunk-7ZP3NNII.js} +3 -3
  30. package/dist/chunk-7ZP3NNII.js.map +1 -0
  31. package/dist/{chunk-SPWVKDGC.cjs → chunk-ABTO4RD6.cjs} +5 -5
  32. package/dist/{chunk-SPWVKDGC.cjs.map → chunk-ABTO4RD6.cjs.map} +1 -1
  33. package/dist/{chunk-ELYGV32O.cjs → chunk-AHHFFXJR.cjs} +4 -4
  34. package/dist/{chunk-ELYGV32O.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
  35. package/dist/{chunk-MYFZYUPR.cjs → chunk-AOHJILLU.cjs} +38 -3
  36. package/dist/chunk-AOHJILLU.cjs.map +1 -0
  37. package/dist/{chunk-XBKOZRDO.js → chunk-ATOWMVZH.js} +3 -3
  38. package/dist/{chunk-XBKOZRDO.js.map → chunk-ATOWMVZH.js.map} +1 -1
  39. package/dist/{chunk-BOW7ZGI2.cjs → chunk-BT7SXNZU.cjs} +169 -9
  40. package/dist/chunk-BT7SXNZU.cjs.map +1 -0
  41. package/dist/{chunk-DX64KLSN.js → chunk-CLQUCPV6.js} +4 -4
  42. package/dist/{chunk-DX64KLSN.js.map → chunk-CLQUCPV6.js.map} +1 -1
  43. package/dist/{chunk-4PIW3Y5M.js → chunk-CLRWVJOD.js} +4 -4
  44. package/dist/{chunk-4PIW3Y5M.js.map → chunk-CLRWVJOD.js.map} +1 -1
  45. package/dist/{chunk-RYQ3S3KO.cjs → chunk-D6UXVOPS.cjs} +23 -20
  46. package/dist/chunk-D6UXVOPS.cjs.map +1 -0
  47. package/dist/{chunk-5JZIDILK.cjs → chunk-FK4ZV5VO.cjs} +3 -3
  48. package/dist/chunk-FK4ZV5VO.cjs.map +1 -0
  49. package/dist/{chunk-SK7H3Z67.cjs → chunk-FTDNNKHE.cjs} +14 -14
  50. package/dist/chunk-FTDNNKHE.cjs.map +1 -0
  51. package/dist/{chunk-FDV7EQWH.js → chunk-GPZDP2IA.js} +21 -18
  52. package/dist/chunk-GPZDP2IA.js.map +1 -0
  53. package/dist/{chunk-I2ECTLON.cjs → chunk-HXSA6QC5.cjs} +3 -3
  54. package/dist/{chunk-I2ECTLON.cjs.map → chunk-HXSA6QC5.cjs.map} +1 -1
  55. package/dist/{chunk-DCBMTFLE.js → chunk-HZ4MBUC3.js} +3 -3
  56. package/dist/{chunk-DCBMTFLE.js.map → chunk-HZ4MBUC3.js.map} +1 -1
  57. package/dist/{chunk-U3JU6BI5.cjs → chunk-JEIW7BSV.cjs} +3 -3
  58. package/dist/{chunk-U3JU6BI5.cjs.map → chunk-JEIW7BSV.cjs.map} +1 -1
  59. package/dist/{chunk-4CUFXCC5.cjs → chunk-JIU6CVPF.cjs} +3 -3
  60. package/dist/{chunk-4CUFXCC5.cjs.map → chunk-JIU6CVPF.cjs.map} +1 -1
  61. package/dist/{chunk-56QJHQ5C.cjs → chunk-K5GQPTTA.cjs} +4 -4
  62. package/dist/{chunk-56QJHQ5C.cjs.map → chunk-K5GQPTTA.cjs.map} +1 -1
  63. package/dist/{chunk-XMECP2MD.js → chunk-KFEN2SRZ.js} +3 -3
  64. package/dist/{chunk-XMECP2MD.js.map → chunk-KFEN2SRZ.js.map} +1 -1
  65. package/dist/{chunk-EKRT7K2K.js → chunk-KLLRTTC5.js} +11 -11
  66. package/dist/chunk-KLLRTTC5.js.map +1 -0
  67. package/dist/{chunk-L6D4CKLV.cjs → chunk-KOISIOUB.cjs} +103 -3
  68. package/dist/chunk-KOISIOUB.cjs.map +1 -0
  69. package/dist/{chunk-IYXCFIMP.js → chunk-LCCJIEPO.js} +10 -10
  70. package/dist/chunk-LCCJIEPO.js.map +1 -0
  71. package/dist/{chunk-LZU7YBXG.js → chunk-LZVPVY5P.js} +168 -9
  72. package/dist/chunk-LZVPVY5P.js.map +1 -0
  73. package/dist/{chunk-YMHOF6WA.cjs → chunk-MYAU2ZUC.cjs} +3 -3
  74. package/dist/{chunk-YMHOF6WA.cjs.map → chunk-MYAU2ZUC.cjs.map} +1 -1
  75. package/dist/{chunk-JHGMZX4I.cjs → chunk-NFKX6QJP.cjs} +5 -5
  76. package/dist/{chunk-JHGMZX4I.cjs.map → chunk-NFKX6QJP.cjs.map} +1 -1
  77. package/dist/{chunk-KVE7PQ5P.cjs → chunk-NPW226H5.cjs} +8 -8
  78. package/dist/{chunk-KVE7PQ5P.cjs.map → chunk-NPW226H5.cjs.map} +1 -1
  79. package/dist/{chunk-EPQPUFS6.cjs → chunk-NYJIXR4Y.cjs} +6 -6
  80. package/dist/chunk-NYJIXR4Y.cjs.map +1 -0
  81. package/dist/{chunk-FDUA6OGN.js → chunk-PFKRHNYV.js} +8 -8
  82. package/dist/chunk-PFKRHNYV.js.map +1 -0
  83. package/dist/{chunk-ZZJ4ZVYR.cjs → chunk-PJ6CC53R.cjs} +3 -3
  84. package/dist/{chunk-ZZJ4ZVYR.cjs.map → chunk-PJ6CC53R.cjs.map} +1 -1
  85. package/dist/{chunk-N3Y43KOB.js → chunk-Q4NRKKIW.js} +11 -4
  86. package/dist/chunk-Q4NRKKIW.js.map +1 -0
  87. package/dist/{chunk-SEPYBAML.js → chunk-RVGTI4F6.js} +3 -3
  88. package/dist/{chunk-SEPYBAML.js.map → chunk-RVGTI4F6.js.map} +1 -1
  89. package/dist/{chunk-5Y5FSR4N.js → chunk-SCXELRRZ.js} +3 -3
  90. package/dist/{chunk-5Y5FSR4N.js.map → chunk-SCXELRRZ.js.map} +1 -1
  91. package/dist/{chunk-K4S4FAYX.cjs → chunk-SNSA6NWD.cjs} +4 -4
  92. package/dist/{chunk-K4S4FAYX.cjs.map → chunk-SNSA6NWD.cjs.map} +1 -1
  93. package/dist/{chunk-XWYKLEKG.js → chunk-SRMTRD7F.js} +10 -4
  94. package/dist/chunk-SRMTRD7F.js.map +1 -0
  95. package/dist/{chunk-AESFOMSH.js → chunk-SZ6H4RJG.js} +103 -3
  96. package/dist/chunk-SZ6H4RJG.js.map +1 -0
  97. package/dist/{chunk-5U6GETAW.js → chunk-TQDZLRIE.js} +3 -3
  98. package/dist/chunk-TQDZLRIE.js.map +1 -0
  99. package/dist/{chunk-QGZC43L7.js → chunk-UBOVDAD7.js} +4 -4
  100. package/dist/{chunk-QGZC43L7.js.map → chunk-UBOVDAD7.js.map} +1 -1
  101. package/dist/{chunk-7L7OPISJ.cjs → chunk-UEDTZYGI.cjs} +11 -5
  102. package/dist/chunk-UEDTZYGI.cjs.map +1 -0
  103. package/dist/{chunk-DG7KE4YJ.cjs → chunk-VA3WQ5KJ.cjs} +3 -3
  104. package/dist/{chunk-DG7KE4YJ.cjs.map → chunk-VA3WQ5KJ.cjs.map} +1 -1
  105. package/dist/{chunk-H7QSGFMZ.cjs → chunk-VKNCQIVN.cjs} +11 -4
  106. package/dist/chunk-VKNCQIVN.cjs.map +1 -0
  107. package/dist/{chunk-XO3WLK65.js → chunk-VVDE4CHU.js} +3 -3
  108. package/dist/{chunk-XO3WLK65.js.map → chunk-VVDE4CHU.js.map} +1 -1
  109. package/dist/{chunk-XS35KPBZ.cjs → chunk-WIAQQNFU.cjs} +4 -4
  110. package/dist/{chunk-XS35KPBZ.cjs.map → chunk-WIAQQNFU.cjs.map} +1 -1
  111. package/dist/{chunk-QHTDWIED.js → chunk-WKUDITGD.js} +4 -4
  112. package/dist/{chunk-QHTDWIED.js.map → chunk-WKUDITGD.js.map} +1 -1
  113. package/dist/{chunk-BOOJDRJO.js → chunk-WSNMQQ4P.js} +38 -3
  114. package/dist/chunk-WSNMQQ4P.js.map +1 -0
  115. package/dist/{chunk-DWCYEPTT.js → chunk-XNU4NTVE.js} +3 -3
  116. package/dist/{chunk-DWCYEPTT.js.map → chunk-XNU4NTVE.js.map} +1 -1
  117. package/dist/{chunk-FF235PKY.cjs → chunk-XWZEECEX.cjs} +3 -3
  118. package/dist/chunk-XWZEECEX.cjs.map +1 -0
  119. package/dist/{chunk-26DPQUSB.cjs → chunk-ZONEAWPR.cjs} +12 -12
  120. package/dist/chunk-ZONEAWPR.cjs.map +1 -0
  121. package/dist/{chunk-U5TTXN45.cjs → chunk-ZSGEGISB.cjs} +8 -6
  122. package/dist/chunk-ZSGEGISB.cjs.map +1 -0
  123. package/dist/components/Alert/index.cjs +5 -5
  124. package/dist/components/Alert/index.js +1 -1
  125. package/dist/components/AudioPlayer/index.cjs +6 -6
  126. package/dist/components/AudioPlayer/index.js +1 -1
  127. package/dist/components/Autocomplete/index.cjs +3 -3
  128. package/dist/components/Autocomplete/index.js +2 -2
  129. package/dist/components/Avatar/index.cjs +5 -5
  130. package/dist/components/Avatar/index.js +1 -1
  131. package/dist/components/Breadcrumb/index.cjs +3 -3
  132. package/dist/components/Breadcrumb/index.js +1 -1
  133. package/dist/components/CountryCodeDropdown/index.cjs +5 -5
  134. package/dist/components/CountryCodeDropdown/index.js +2 -2
  135. package/dist/components/DateInput/index.cjs +3 -3
  136. package/dist/components/DateInput/index.js +2 -2
  137. package/dist/components/Dropdown/index.cjs +12 -8
  138. package/dist/components/Dropdown/index.d.cts +38 -2
  139. package/dist/components/Dropdown/index.d.ts +38 -2
  140. package/dist/components/Dropdown/index.js +2 -2
  141. package/dist/components/FloatingWindow/index.cjs +3 -3
  142. package/dist/components/FloatingWindow/index.js +1 -1
  143. package/dist/components/GlossaryTooltip/index.cjs +3 -3
  144. package/dist/components/GlossaryTooltip/index.js +2 -2
  145. package/dist/components/Markdown/index.cjs +9 -9
  146. package/dist/components/Markdown/index.js +3 -3
  147. package/dist/components/MediaEditor/index.cjs +9 -9
  148. package/dist/components/MediaEditor/index.js +4 -4
  149. package/dist/components/Pagination/index.cjs +4 -4
  150. package/dist/components/Pagination/index.js +1 -1
  151. package/dist/components/QuickAction/index.cjs +6 -6
  152. package/dist/components/QuickAction/index.js +1 -1
  153. package/dist/components/RichTextEditor/index.cjs +6 -6
  154. package/dist/components/RichTextEditor/index.js +3 -3
  155. package/dist/components/SectionSpyNav/index.cjs +2 -2
  156. package/dist/components/SectionSpyNav/index.js +1 -1
  157. package/dist/components/Select/index.cjs +4 -4
  158. package/dist/components/Select/index.js +2 -2
  159. package/dist/components/Slider/index.cjs +5 -5
  160. package/dist/components/Slider/index.js +1 -1
  161. package/dist/components/SourceTip/index.cjs +3 -3
  162. package/dist/components/SourceTip/index.js +2 -2
  163. package/dist/components/SuperChat/index.cjs +263 -105
  164. package/dist/components/SuperChat/index.cjs.map +1 -1
  165. package/dist/components/SuperChat/index.d.cts +13 -5
  166. package/dist/components/SuperChat/index.d.ts +13 -5
  167. package/dist/components/SuperChat/index.js +254 -96
  168. package/dist/components/SuperChat/index.js.map +1 -1
  169. package/dist/components/SuperChat/plugins/index.cjs +6 -6
  170. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  171. package/dist/components/SuperChat/plugins/index.d.cts +2 -2
  172. package/dist/components/SuperChat/plugins/index.d.ts +2 -2
  173. package/dist/components/SuperChat/plugins/index.js +5 -5
  174. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  175. package/dist/components/TranscriptView/index.cjs +3 -3
  176. package/dist/components/TranscriptView/index.js +1 -1
  177. package/dist/esheet.cjs +7 -7
  178. package/dist/esheet.js +4 -4
  179. package/dist/hooks/index.cjs +2 -2
  180. package/dist/hooks/index.d.cts +1 -1
  181. package/dist/hooks/index.d.ts +1 -1
  182. package/dist/hooks/index.js +1 -1
  183. package/dist/index.cjs +772 -734
  184. package/dist/index.cjs.map +1 -1
  185. package/dist/index.d.cts +52 -15
  186. package/dist/index.d.ts +52 -15
  187. package/dist/index.js +527 -494
  188. package/dist/index.js.map +1 -1
  189. package/dist/styles/init.css +25 -0
  190. package/dist/styles.css +1 -1
  191. package/dist/tailwind-preset.cjs +4 -4
  192. package/dist/tailwind-preset.js +1 -1
  193. package/dist/{types-BoTeTPdH.d.ts → types-9vK_YdEb.d.ts} +12 -1
  194. package/dist/{types-DyIB9HYT.d.cts → types-DZDroUW8.d.cts} +12 -1
  195. package/dist/{useAnchoredPosition-C7PNglzD.d.ts → useAnchoredPosition-CKwLSQW8.d.cts} +10 -3
  196. package/dist/{useAnchoredPosition-C7PNglzD.d.cts → useAnchoredPosition-CKwLSQW8.d.ts} +10 -3
  197. package/package.json +5 -2
  198. package/dist/CsvBlock-OTFG3PYZ.cjs +0 -15
  199. package/dist/CsvBlock-PUSTBQ5B.js +0 -6
  200. package/dist/SurveyBlock-JLHS3YQD.js +0 -6
  201. package/dist/SurveyBlock-M2ZRTGVJ.cjs +0 -15
  202. package/dist/chunk-26DPQUSB.cjs.map +0 -1
  203. package/dist/chunk-4AE2L6AO.cjs.map +0 -1
  204. package/dist/chunk-5JZIDILK.cjs.map +0 -1
  205. package/dist/chunk-5U6GETAW.js.map +0 -1
  206. package/dist/chunk-6EWJGRC3.js.map +0 -1
  207. package/dist/chunk-7L7OPISJ.cjs.map +0 -1
  208. package/dist/chunk-AESFOMSH.js.map +0 -1
  209. package/dist/chunk-BOOJDRJO.js.map +0 -1
  210. package/dist/chunk-BOW7ZGI2.cjs.map +0 -1
  211. package/dist/chunk-EKRT7K2K.js.map +0 -1
  212. package/dist/chunk-EPQPUFS6.cjs.map +0 -1
  213. package/dist/chunk-FDUA6OGN.js.map +0 -1
  214. package/dist/chunk-FDV7EQWH.js.map +0 -1
  215. package/dist/chunk-FF235PKY.cjs.map +0 -1
  216. package/dist/chunk-H7QSGFMZ.cjs.map +0 -1
  217. package/dist/chunk-IILJGFI5.js.map +0 -1
  218. package/dist/chunk-IYXCFIMP.js.map +0 -1
  219. package/dist/chunk-JHZW3Y62.js.map +0 -1
  220. package/dist/chunk-L6D4CKLV.cjs.map +0 -1
  221. package/dist/chunk-LZU7YBXG.js.map +0 -1
  222. package/dist/chunk-MYFZYUPR.cjs.map +0 -1
  223. package/dist/chunk-N3Y43KOB.js.map +0 -1
  224. package/dist/chunk-RYQ3S3KO.cjs.map +0 -1
  225. package/dist/chunk-SK7H3Z67.cjs.map +0 -1
  226. package/dist/chunk-U5TTXN45.cjs.map +0 -1
  227. package/dist/chunk-XWYKLEKG.js.map +0 -1
@@ -10,12 +10,15 @@ This project uses the `@mieweb/ui` component library. Follow these rules for ALL
10
10
 
11
11
  ## Rule 1: Tables start with DataVis NITRO
12
12
 
13
+ > **Tables and data grids start with DataVis NITRO.** Use `Table` only for a few static rows the user will not sort, filter, page or export. Never hand-roll grid features on a plain table; `AGGrid` is deprecated.
14
+
13
15
  When asked to create a table, data grid, or any tabular data view:
14
16
 
15
- - **Always start with `DataVisNitroGrid` from `@mieweb/ui/datavis`.** It is the default for every table — propose it first, every time.
16
- - If the human **explicitly insists** on a plain, simple table after you propose DataVis NITRO, fall back to the `Table` component from `@mieweb/ui` (`Table` + `TableHeader`/`TableBody`/`TableRow`/`TableCell`). Do not choose `Table` on your own.
17
+ - **Propose `DataVisNitroGrid` from `@mieweb/ui/datavis` first, every time.**
18
+ - Use the `Table` component from `@mieweb/ui` (`Table` + `TableHeader`/`TableBody`/`TableRow`/`TableCell`) only when the data meets the criterion above — a few static rows, no sorting, filtering, paging or export — or when the human explicitly asks for a plain table after you have proposed NITRO.
17
19
  - **`AGGrid` is deprecated.** Never import from `@mieweb/ui/ag-grid` in new code.
18
20
  - **Never hand-roll a data grid** from raw `<table>`, `<div>` grids, or a third-party grid library.
21
+ - Full comparison: the [Grids family page](https://ui.mieweb.org/?path=/docs/components-grids-overview--docs).
19
22
 
20
23
  ```tsx
21
24
  import { DataVisNitroSource, DataVisNitroGrid } from '@mieweb/ui/datavis';
@@ -47,19 +50,19 @@ import { Button, ButtonGroup } from '@mieweb/ui';
47
50
 
48
51
  ## Rule 3: Use an existing @mieweb/ui component before writing your own
49
52
 
50
- Before writing any UI element, check whether `@mieweb/ui` already provides it. It ships 126+ components, including:
53
+ Before writing any UI element, check whether `@mieweb/ui` already provides it. The Storybook sidebar is organised as _Tier / Family / Component_ (the live count is in `catalog-manifest.json` next to the published Storybook, or `pnpm catalog:check` in the repo); every family has an **Overview** page with a comparison table — read it before choosing. Families include:
51
54
 
52
- | Category | Components |
53
- | ---------- | ------------------------------------------------------------------------------------------------------------- |
54
- | Actions | `Button`, `ButtonGroup` (see Rule 2), `Dropdown`, `CommandPalette`, `QuickAction` |
55
- | Forms | `Input`, `Textarea`, `Select`, `Checkbox`, `Radio`, `Switch`, `Slider`, `PhoneInput`, `DateInput` |
56
- | Display | `Table` (only if the human insists — see Rule 1), `Badge`, `Avatar`, `Card`, `CountBadge`, `Text`, `Timeline` |
57
- | Feedback | `Alert`, `Toast`, `Spinner`, `Skeleton`, `Progress`, `LoadingPage`, `ErrorPage` |
58
- | Navigation | `Tabs`, `Breadcrumb`, `Pagination`, `Sidebar`, `AppHeader`, `PageHeader`, `StepIndicator` |
59
- | Overlays | `Modal`, `Tooltip`, `DropzoneOverlay` |
60
- | Media | `AudioPlayer`, `AudioRecorder`, `RecordButton`, `DocumentScanner` |
61
- | Messaging | `MessageBubble`, `MessageList`, `MessageComposer` |
62
- | Grids | `DataVisNitroGrid` (default for all tables) — `AGGrid` is **deprecated** |
55
+ | Tier / Family | Components |
56
+ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
57
+ | Inputs / Actions | `Button`, `ButtonGroup` (see Rule 2), `Toggle`, `CopyButton`, `QuickAction`, `RowActionToolbar` |
58
+ | Inputs / Text, Choice, Date & time | `Input`, `Textarea`, `PhoneInput`, `Select`, `Dropdown`, `Autocomplete`, `Checkbox`, `Radio`, `Switch`, `Slider`, `DateInput`, `DateRangePicker` |
59
+ | Components / Grids | `DataVisNitroGrid` (default for all tables), `Table` (see Rule 1), `Pagination`, `Sparkline` — `AGGrid` is **deprecated** |
60
+ | Components / Data display, Layout | `Badge`, `Avatar`, `CountBadge`, `Timeline`, `Card`, `Accordion`, `AppHeader`, `PageHeader`, `Text` (Foundations) |
61
+ | Components / Feedback, Loading | `Alert`, `Toast`, `AlertDialog`, `NotificationCenter`, `ErrorPage`, `Spinner`, `Skeleton`, `Progress`, `LoadingPage` |
62
+ | Components / Overlays, Navigation | `Modal`, `Sheet`, `Tooltip`, `DockablePanel`, `Sidebar`, `Tabs`, `Breadcrumb`, `StepIndicator`, `CommandPalette` |
63
+ | Modules | Dashboards, Media (`AudioPlayer`, `AudioRecorder`, `DocumentScanner`), Editors (`RichEditor`, `Markdown`), Chat, Voice, Files |
64
+ | Healthcare | `ProblemList`, `MedicationList`, `AllergyList`, `CodeLookup`, `OrderEditor`, `Assessment`, `PatientHeader` |
65
+ | BlueHive (product-specific) | Orders, Employers, Billing, Providers, Services — reuse only if your app shares the BlueHive data model |
63
66
 
64
67
  Raw HTML that duplicates a component is a violation, even if it looks right:
65
68
 
@@ -164,6 +167,21 @@ Tailwind: on Tailwind 4, add an `@source` for `@mieweb/ui` so library classes ar
164
167
 
165
168
  If JSDoc, the console, or the docs mark something deprecated (`AGGrid` today), do not use it in new code and do not suppress the warning. Use the documented replacement.
166
169
 
167
- ## Rule 14: When no component exists
170
+ ## Rule 14: When existing components do not meet the need
171
+
172
+ Before creating or materially extending a reusable component, read the
173
+ [upstream contribution guide](https://github.com/mieweb/ui/blob/main/CONTRIBUTING.md)
174
+ and follow its
175
+ [Developing Components From a Consuming Application](https://github.com/mieweb/ui/blob/main/CONTRIBUTING.md#developing-components-from-a-consuming-application)
176
+ process, including the alternatives audit, contribution-ready implementation,
177
+ submodule workflow, and PR requirements. If the guide is unavailable, report that
178
+ limitation and obtain it before proceeding with the contribution workflow.
179
+
180
+ Present the gap and supporting evidence before implementation. Obtain approval
181
+ before introducing a submodule or changing the consuming project's dependency
182
+ strategy. Keep project-specific behavior local, and do not create a generic
183
+ abstraction solely to make it contributable.
168
184
 
169
- First verify it truly doesn't exist — check https://ui.mieweb.org (Storybook) rather than guessing. Then build it locally, but in `@mieweb/ui` style: Tailwind utility classes with the library's design tokens, ARIA labels on interactive elements, and externalized user-facing text. Prefer composing existing primitives (`Card`, `Text`, `Badge`) over new bespoke markup. If the pattern is generic, propose contributing it upstream to `@mieweb/ui`.
185
+ Follow the repository's permissions and approval requirements for commits,
186
+ pushes, and PR creation. Do not treat these instructions as authorization to
187
+ publish changes.
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkSNSA6NWD_cjs = require('./chunk-SNSA6NWD.cjs');
4
+ require('./chunk-YIXTGWT4.cjs');
5
+ require('./chunk-RDGRKYQ5.cjs');
6
+ require('./chunk-S5RVSXDV.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "CsvBlock", {
11
+ enumerable: true,
12
+ get: function () { return chunkSNSA6NWD_cjs.CsvBlock; }
13
+ });
14
+ //# sourceMappingURL=CsvBlock-HMAZ7YK5.cjs.map
15
+ //# sourceMappingURL=CsvBlock-HMAZ7YK5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"CsvBlock-OTFG3PYZ.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"CsvBlock-HMAZ7YK5.cjs"}
@@ -0,0 +1,6 @@
1
+ export { CsvBlock } from './chunk-4KFVGIY6.js';
2
+ import './chunk-NLBT5O2X.js';
3
+ import './chunk-D2GID3YK.js';
4
+ import './chunk-TQONQSJO.js';
5
+ //# sourceMappingURL=CsvBlock-RPGHFTVD.js.map
6
+ //# sourceMappingURL=CsvBlock-RPGHFTVD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"CsvBlock-PUSTBQ5B.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"CsvBlock-RPGHFTVD.js"}
@@ -0,0 +1,6 @@
1
+ export { SurveyBlock } from './chunk-XNU4NTVE.js';
2
+ import './chunk-NLBT5O2X.js';
3
+ import './chunk-D2GID3YK.js';
4
+ import './chunk-TQONQSJO.js';
5
+ //# sourceMappingURL=SurveyBlock-ID55AT3R.js.map
6
+ //# sourceMappingURL=SurveyBlock-ID55AT3R.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SurveyBlock-JLHS3YQD.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SurveyBlock-ID55AT3R.js"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkJIU6CVPF_cjs = require('./chunk-JIU6CVPF.cjs');
4
+ require('./chunk-YIXTGWT4.cjs');
5
+ require('./chunk-RDGRKYQ5.cjs');
6
+ require('./chunk-S5RVSXDV.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "SurveyBlock", {
11
+ enumerable: true,
12
+ get: function () { return chunkJIU6CVPF_cjs.SurveyBlock; }
13
+ });
14
+ //# sourceMappingURL=SurveyBlock-K6HKI7AD.cjs.map
15
+ //# sourceMappingURL=SurveyBlock-K6HKI7AD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SurveyBlock-M2ZRTGVJ.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SurveyBlock-K6HKI7AD.cjs"}
@@ -1,4 +1,4 @@
1
- import { AudioPlayer } from './chunk-XO3WLK65.js';
1
+ import { AudioPlayer } from './chunk-VVDE4CHU.js';
2
2
  import { cn } from './chunk-TQONQSJO.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
  import * as React2 from 'react';
@@ -1399,5 +1399,5 @@ function AIMessageDisplay({
1399
1399
  }
1400
1400
 
1401
1401
  export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, CollapsiblePill, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon };
1402
- //# sourceMappingURL=chunk-RZJXCI53.js.map
1403
- //# sourceMappingURL=chunk-RZJXCI53.js.map
1402
+ //# sourceMappingURL=chunk-22CYDCXA.js.map
1403
+ //# sourceMappingURL=chunk-22CYDCXA.js.map