@hachej/boring-ui-kit 0.4.12 → 0.4.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 (48) hide show
  1. package/package.json +2 -2
  2. package/r/agent-target.json +4 -4
  3. package/r/app-shell.json +9 -9
  4. package/r/board-viewer.json +12 -6
  5. package/r/button.json +1 -1
  6. package/r/diagram-viewer.json +8 -2
  7. package/r/dock.json +1 -1
  8. package/r/documents.json +14 -12
  9. package/r/feedback-preview.json +1 -1
  10. package/r/feedback.json +6 -6
  11. package/r/file-tree.json +5 -5
  12. package/r/highlights.json +3 -3
  13. package/r/html-viewer.json +3 -3
  14. package/r/looks-viewer.json +9 -3
  15. package/r/maquette-viewer.json +9 -3
  16. package/r/markdown-editor.json +3 -3
  17. package/r/mockup-viewer.json +14 -2
  18. package/r/pi-ambient.json +10 -10
  19. package/r/pi-app.json +31 -20
  20. package/r/pi-artifacts.json +3 -3
  21. package/r/pi-chat-approval.json +1 -1
  22. package/r/pi-chat-attachments.json +1 -1
  23. package/r/pi-chat-markdown.json +2 -2
  24. package/r/pi-chat-mentions.json +1 -1
  25. package/r/pi-chat-pickers.json +1 -1
  26. package/r/pi-chat-plugins.json +11 -11
  27. package/r/pi-chat-question.json +1 -1
  28. package/r/pi-chat-slash.json +1 -1
  29. package/r/pi-chat-subagent.json +1 -1
  30. package/r/pi-chat-voice.json +2 -2
  31. package/r/pi-chat.json +5 -5
  32. package/r/pi-workspace.json +4 -4
  33. package/r/placed-agent.json +4 -4
  34. package/r/provider-setup.json +2 -2
  35. package/r/record-viewer.json +8 -2
  36. package/r/registry.json +396 -203
  37. package/r/requests-board.json +1 -1
  38. package/r/shared-chat.json +6 -6
  39. package/r/task-list-viewer.json +2 -2
  40. package/r/version-history.json +3 -3
  41. package/r/viewer-code.json +36 -0
  42. package/r/viewer-frame.json +447 -0
  43. package/r/viewer-html.json +32 -0
  44. package/r/viewer-image.json +36 -0
  45. package/r/viewer-markdown.json +47 -0
  46. package/r/viewer-pdf.json +45 -0
  47. package/r/viewers.json +8 -491
  48. package/r/windows.json +1 -1
package/r/registry.json CHANGED
@@ -153,7 +153,7 @@
153
153
  "lucide-react@^1.51.0"
154
154
  ],
155
155
  "registryDependencies": [
156
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
156
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
157
157
  "dropdown-menu",
158
158
  "button",
159
159
  "toggle",
@@ -181,8 +181,8 @@
181
181
  "title": "Markdown editor",
182
182
  "description": "A host-owned styled wrapper over the concrete borrowed Markdown controller.",
183
183
  "dependencies": [
184
- "@hachej/boring-ui-kit@^0.4.12",
185
- "@hachej/boring-files@^0.4.12",
184
+ "@hachej/boring-ui-kit@^0.4.13",
185
+ "@hachej/boring-files@^0.4.13",
186
186
  "react@^19.0.0",
187
187
  "react-dom@^19.0.0",
188
188
  "marked@^17.0.6",
@@ -338,7 +338,7 @@
338
338
  },
339
339
  "docs": "Create and own a MarkdownController from @hachej/boring-ui-kit/markdown. Pass it to MarkdownEditor. The wrapper does not acquire resources or dispose the controller. Check the repository release notes for available npm versions; local tarball tests do not establish registry availability.",
340
340
  "registryDependencies": [
341
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
341
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
342
342
  "button",
343
343
  "toggle",
344
344
  "dropdown-menu"
@@ -350,8 +350,8 @@
350
350
  "title": "HTML source and passive preview",
351
351
  "description": "Exact HTML source editing with a reconstructed passive preview and borrowed controller. Browser security qualification remains separate.",
352
352
  "dependencies": [
353
- "@hachej/boring-ui-kit@^0.4.12",
354
- "@hachej/boring-files@^0.4.12",
353
+ "@hachej/boring-ui-kit@^0.4.13",
354
+ "@hachej/boring-files@^0.4.13",
355
355
  "react@^19.0.0",
356
356
  "react-dom@^19.0.0"
357
357
  ],
@@ -399,7 +399,7 @@
399
399
  }
400
400
  },
401
401
  "registryDependencies": [
402
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json"
402
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json"
403
403
  ]
404
404
  },
405
405
  {
@@ -408,9 +408,9 @@
408
408
  "title": "Pi chat",
409
409
  "description": "A complete Tailwind chat over the borrowed native chat controller: composer, messages, one collapsible activity block per turn (tool calls and reasoning), message queue, history and feedback cards for the opt-in feedback tool (lists, and Show offers that the host page resolves). Chat only: no layout. Owned, editable source; no AI SDK. The question, approval, sub-agent and artifact cards are separate items (pi-chat-question, pi-chat-approval, pi-chat-subagent, pi-artifacts); without them a question or an approval shows a \"waiting for your answer\" notice, a sub-agent call is an ordinary tool step and no artifact is offered. The optional pi-ambient and pi-workspace blocks build on it.",
410
410
  "dependencies": [
411
- "@hachej/boring-ui-kit@^0.4.12",
412
- "@hachej/boring-files@^0.4.12",
413
- "@hachej/boring-feedback@^0.4.12",
411
+ "@hachej/boring-ui-kit@^0.4.13",
412
+ "@hachej/boring-files@^0.4.13",
413
+ "@hachej/boring-feedback@^0.4.13",
414
414
  "react@^19.0.0",
415
415
  "react-dom@^19.0.0",
416
416
  "@base-ui/react@1.9.0",
@@ -423,8 +423,8 @@
423
423
  "zod@^4.6.5"
424
424
  ],
425
425
  "registryDependencies": [
426
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
427
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
426
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
427
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
428
428
  "dialog",
429
429
  "tooltip",
430
430
  "trace",
@@ -664,7 +664,7 @@
664
664
  "entities@^8.1.0"
665
665
  ],
666
666
  "registryDependencies": [
667
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
667
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
668
668
  "button",
669
669
  "checkbox",
670
670
  "table"
@@ -687,7 +687,7 @@
687
687
  "lucide-react@^1.51.0"
688
688
  ],
689
689
  "registryDependencies": [
690
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
690
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
691
691
  "badge",
692
692
  "button",
693
693
  "input-group",
@@ -711,7 +711,7 @@
711
711
  "lucide-react@^1.51.0"
712
712
  ],
713
713
  "registryDependencies": [
714
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
714
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
715
715
  "item"
716
716
  ],
717
717
  "files": [
@@ -732,7 +732,7 @@
732
732
  "lucide-react@^1.51.0"
733
733
  ],
734
734
  "registryDependencies": [
735
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
735
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
736
736
  "button",
737
737
  "dropdown-menu"
738
738
  ],
@@ -750,12 +750,12 @@
750
750
  "title": "Pi chat voice messages",
751
751
  "description": "Hold-to-record voice messages: the recorder hook over the kit's voice capture, the composer's record button and the pending voice bubble, plus useHoldToRecord. Plug it in with `voiceMessage={{ ...config, ...voiceMessagePlugin }}`; without it pi-chat has no voice button.",
752
752
  "dependencies": [
753
- "@hachej/boring-ui-kit@^0.4.12",
753
+ "@hachej/boring-ui-kit@^0.4.13",
754
754
  "react@^19.0.0",
755
755
  "lucide-react@^1.51.0"
756
756
  ],
757
757
  "registryDependencies": [
758
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
758
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
759
759
  "bubble",
760
760
  "button",
761
761
  "message",
@@ -790,7 +790,7 @@
790
790
  "lucide-react@^1.51.0"
791
791
  ],
792
792
  "registryDependencies": [
793
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
793
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
794
794
  "button",
795
795
  "input"
796
796
  ],
@@ -813,7 +813,7 @@
813
813
  "@earendil-works/pi-ai@~1.2.0"
814
814
  ],
815
815
  "registryDependencies": [
816
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
816
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
817
817
  "alert",
818
818
  "button",
819
819
  "card",
@@ -840,7 +840,7 @@
840
840
  "@earendil-works/pi-ai@~1.2.0"
841
841
  ],
842
842
  "registryDependencies": [
843
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
843
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
844
844
  "badge",
845
845
  "button",
846
846
  "item"
@@ -864,7 +864,7 @@
864
864
  "@earendil-works/pi-ai@~1.2.0"
865
865
  ],
866
866
  "registryDependencies": [
867
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
867
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
868
868
  "alert",
869
869
  "badge",
870
870
  "button",
@@ -896,7 +896,7 @@
896
896
  "@earendil-works/pi-durable@~1.2.0"
897
897
  ],
898
898
  "registryDependencies": [
899
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
899
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
900
900
  "button",
901
901
  "item"
902
902
  ],
@@ -922,17 +922,17 @@
922
922
  "react@^19.0.0"
923
923
  ],
924
924
  "registryDependencies": [
925
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
926
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-markdown.json",
927
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-slash.json",
928
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-mentions.json",
929
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-pickers.json",
930
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-voice.json",
931
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-attachments.json",
932
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-question.json",
933
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-approval.json",
934
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-subagent.json",
935
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-artifacts.json"
925
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
926
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-markdown.json",
927
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-slash.json",
928
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-mentions.json",
929
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-pickers.json",
930
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-voice.json",
931
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-attachments.json",
932
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-question.json",
933
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-approval.json",
934
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-subagent.json",
935
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-artifacts.json"
936
936
  ],
937
937
  "files": [
938
938
  {
@@ -948,7 +948,7 @@
948
948
  "title": "Pi ambient agent",
949
949
  "description": "AmbientChat, a compact floating agent bar that grows into a chat window over an existing page, and AgentNotifications, toasts for finished, failed and waiting tasks (with the one guarded browser Notification helper). A block over the pi-chat item; its in-window artifact panel uses the pi-workspace layout.",
950
950
  "dependencies": [
951
- "@hachej/boring-ui-kit@^0.4.12",
951
+ "@hachej/boring-ui-kit@^0.4.13",
952
952
  "react@^19.0.0",
953
953
  "react-dom@^19.0.0",
954
954
  "@earendil-works/pi-durable@~1.2.0",
@@ -956,14 +956,14 @@
956
956
  "lucide-react@^1.51.0"
957
957
  ],
958
958
  "registryDependencies": [
959
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
960
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
961
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-plugins.json",
962
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-question.json",
963
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-artifacts.json",
964
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-workspace.json",
965
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
966
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
959
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
960
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
961
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-plugins.json",
962
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-question.json",
963
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-artifacts.json",
964
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-workspace.json",
965
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
966
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
967
967
  "message-scroller",
968
968
  "button",
969
969
  "toggle",
@@ -999,7 +999,7 @@
999
999
  "react@^19.0.0"
1000
1000
  ],
1001
1001
  "registryDependencies": [
1002
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json"
1002
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json"
1003
1003
  ],
1004
1004
  "files": [
1005
1005
  {
@@ -1019,10 +1019,10 @@
1019
1019
  "react-dom@^19.0.0"
1020
1020
  ],
1021
1021
  "registryDependencies": [
1022
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1023
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
1024
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
1025
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/dock.json",
1022
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1023
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
1024
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
1025
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/dock.json",
1026
1026
  "badge",
1027
1027
  "card"
1028
1028
  ],
@@ -1051,7 +1051,7 @@
1051
1051
  "zod@^4.6.5"
1052
1052
  ],
1053
1053
  "registryDependencies": [
1054
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/viewers.json",
1054
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
1055
1055
  "badge",
1056
1056
  "toggle",
1057
1057
  "tooltip"
@@ -1076,6 +1076,16 @@
1076
1076
  "path": "registry/mockup-viewer/mockup-tailwind.ts",
1077
1077
  "type": "registry:lib",
1078
1078
  "target": "components/mockup-viewer/mockup-tailwind.ts"
1079
+ },
1080
+ {
1081
+ "path": "registry/mockup-viewer/mockup-path.ts",
1082
+ "type": "registry:lib",
1083
+ "target": "components/mockup-viewer/mockup-path.ts"
1084
+ },
1085
+ {
1086
+ "path": "registry/mockup-viewer/mockup-kind.tsx",
1087
+ "type": "registry:component",
1088
+ "target": "components/mockup-viewer/mockup-kind.tsx"
1079
1089
  }
1080
1090
  ]
1081
1091
  },
@@ -1089,7 +1099,7 @@
1089
1099
  "lucide-react@^1.51.0"
1090
1100
  ],
1091
1101
  "registryDependencies": [
1092
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/mockup-viewer.json",
1102
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/mockup-viewer.json",
1093
1103
  "alert",
1094
1104
  "button",
1095
1105
  "card",
@@ -1105,6 +1115,11 @@
1105
1115
  "path": "registry/looks-viewer/looks.ts",
1106
1116
  "type": "registry:lib",
1107
1117
  "target": "components/looks-viewer/looks.ts"
1118
+ },
1119
+ {
1120
+ "path": "registry/looks-viewer/looks-kind.tsx",
1121
+ "type": "registry:component",
1122
+ "target": "components/looks-viewer/looks-kind.tsx"
1108
1123
  }
1109
1124
  ]
1110
1125
  },
@@ -1118,7 +1133,7 @@
1118
1133
  "lucide-react@^1.51.0"
1119
1134
  ],
1120
1135
  "registryDependencies": [
1121
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1136
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1122
1137
  "table",
1123
1138
  "badge",
1124
1139
  "item",
@@ -1141,6 +1156,11 @@
1141
1156
  "path": "registry/record-viewer/record-viewer.tsx",
1142
1157
  "type": "registry:component",
1143
1158
  "target": "components/record-viewer/record-viewer.tsx"
1159
+ },
1160
+ {
1161
+ "path": "registry/record-viewer/records-kind.tsx",
1162
+ "type": "registry:component",
1163
+ "target": "components/record-viewer/records-kind.tsx"
1144
1164
  }
1145
1165
  ]
1146
1166
  },
@@ -1154,7 +1174,7 @@
1154
1174
  "lucide-react@^1.51.0"
1155
1175
  ],
1156
1176
  "registryDependencies": [
1157
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1177
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1158
1178
  "alert",
1159
1179
  "badge"
1160
1180
  ],
@@ -1178,6 +1198,11 @@
1178
1198
  "path": "registry/diagram-viewer/diagram-viewer.tsx",
1179
1199
  "type": "registry:component",
1180
1200
  "target": "components/diagram-viewer/diagram-viewer.tsx"
1201
+ },
1202
+ {
1203
+ "path": "registry/diagram-viewer/diagram-kind.tsx",
1204
+ "type": "registry:component",
1205
+ "target": "components/diagram-viewer/diagram-kind.tsx"
1181
1206
  }
1182
1207
  ]
1183
1208
  },
@@ -1191,8 +1216,8 @@
1191
1216
  "lucide-react@^1.51.0"
1192
1217
  ],
1193
1218
  "registryDependencies": [
1194
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1195
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/diagram-viewer.json",
1219
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1220
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/diagram-viewer.json",
1196
1221
  "alert",
1197
1222
  "badge",
1198
1223
  "bubble",
@@ -1231,6 +1256,11 @@
1231
1256
  "path": "registry/maquette-viewer/maquette-viewer.tsx",
1232
1257
  "type": "registry:component",
1233
1258
  "target": "components/maquette-viewer/maquette-viewer.tsx"
1259
+ },
1260
+ {
1261
+ "path": "registry/maquette-viewer/maquette-kind.tsx",
1262
+ "type": "registry:component",
1263
+ "target": "components/maquette-viewer/maquette-kind.tsx"
1234
1264
  }
1235
1265
  ],
1236
1266
  "css": {
@@ -1269,16 +1299,16 @@
1269
1299
  "title": "Board viewer",
1270
1300
  "description": "A board@1 artifact kind for *.board.json. Lazy native tldraw projection of maquette screens, sandboxed HTML mock-ups, goto arrows and notes. Conditional board-file autosave; phone viewing without accidental frame edits. Hosts supply their resource client, asset URLs and license key.",
1271
1301
  "dependencies": [
1272
- "@hachej/boring-ui-kit@^0.4.12",
1273
- "@hachej/boring-files@^0.4.12",
1302
+ "@hachej/boring-ui-kit@^0.4.13",
1303
+ "@hachej/boring-files@^0.4.13",
1274
1304
  "react@^19.0.0",
1275
1305
  "lucide-react@1.51.0",
1276
1306
  "tldraw@5.5.2"
1277
1307
  ],
1278
1308
  "registryDependencies": [
1279
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/maquette-viewer.json",
1280
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/mockup-viewer.json",
1281
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-artifacts.json",
1309
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/maquette-viewer.json",
1310
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/mockup-viewer.json",
1311
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-artifacts.json",
1282
1312
  "button",
1283
1313
  "alert",
1284
1314
  "card",
@@ -1304,6 +1334,11 @@
1304
1334
  "path": "registry/board-viewer/board-props.ts",
1305
1335
  "type": "registry:lib",
1306
1336
  "target": "components/board-viewer/board-props.ts"
1337
+ },
1338
+ {
1339
+ "path": "registry/board-viewer/board-kind.tsx",
1340
+ "type": "registry:component",
1341
+ "target": "components/board-viewer/board-kind.tsx"
1307
1342
  }
1308
1343
  ]
1309
1344
  },
@@ -1313,16 +1348,16 @@
1313
1348
  "title": "Shared chat",
1314
1349
  "description": "Optional multi-party host log presentation over PiChat's generic composition seams. No agent runtime or speaking policy.",
1315
1350
  "dependencies": [
1316
- "@hachej/boring-ui-kit@^0.4.12",
1351
+ "@hachej/boring-ui-kit@^0.4.13",
1317
1352
  "react@^19.0.0",
1318
1353
  "lucide-react@^1.51.0"
1319
1354
  ],
1320
1355
  "registryDependencies": [
1321
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
1322
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-plugins.json",
1323
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-markdown.json",
1324
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-mentions.json",
1325
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1356
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
1357
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-plugins.json",
1358
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-markdown.json",
1359
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-mentions.json",
1360
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1326
1361
  "avatar",
1327
1362
  "badge",
1328
1363
  "button",
@@ -1386,29 +1421,34 @@
1386
1421
  "title": "Pi agent app",
1387
1422
  "description": "AgentWorkspace: a whole agent page in one component. Left: the sessions pane (search, New, rename, archive, delete; collapsible, a drawer on a narrow screen). Center: PiChat. Right: the artifact viewers (artifact panel with versions, file viewer, auto-open of new artifacts) in the ArtifactWorkspace panel, a full-screen sheet on a phone. layout=\"embedded\" drops the left column for one compact top bar (title, History, Library, New) that joins an app-shell screen header. Props are data and callbacks; hooks for the conversations handler (useConversations), the chat transport (useRemoteChat) and saved resources (useSaved).",
1388
1423
  "dependencies": [
1389
- "@hachej/boring-ui-kit@^0.4.12",
1390
- "@hachej/boring-files@^0.4.12",
1424
+ "@hachej/boring-ui-kit@^0.4.13",
1425
+ "@hachej/boring-files@^0.4.13",
1391
1426
  "react@^19.0.0",
1392
1427
  "react-dom@^19.0.0",
1393
1428
  "lucide-react@^1.51.0"
1394
1429
  ],
1395
1430
  "registryDependencies": [
1396
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1397
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
1398
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-plugins.json",
1399
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-artifacts.json",
1400
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-workspace.json",
1401
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/viewers.json",
1402
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/maquette-viewer.json",
1403
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/diagram-viewer.json",
1404
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/mockup-viewer.json",
1405
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/record-viewer.json",
1406
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
1407
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
1431
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1432
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
1433
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-plugins.json",
1434
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-artifacts.json",
1435
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-workspace.json",
1436
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
1437
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-markdown.json",
1438
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-html.json",
1439
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-image.json",
1440
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-pdf.json",
1441
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-code.json",
1442
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/maquette-viewer.json",
1443
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/diagram-viewer.json",
1444
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/mockup-viewer.json",
1445
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/record-viewer.json",
1446
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
1447
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
1408
1448
  "drawer",
1409
1449
  "dialog",
1410
1450
  "button",
1411
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/file-tree.json",
1451
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/file-tree.json",
1412
1452
  "dropdown-menu",
1413
1453
  "scroll-area",
1414
1454
  "separator",
@@ -1486,6 +1526,11 @@
1486
1526
  "path": "registry/pi-app/use-revision-attachments.ts",
1487
1527
  "type": "registry:hook",
1488
1528
  "target": "components/pi-app/use-revision-attachments.ts"
1529
+ },
1530
+ {
1531
+ "path": "registry/pi-app/viewer-kinds.tsx",
1532
+ "type": "registry:component",
1533
+ "target": "components/pi-app/viewer-kinds.tsx"
1489
1534
  }
1490
1535
  ]
1491
1536
  },
@@ -1500,10 +1545,10 @@
1500
1545
  "lucide-react@^1.51.0"
1501
1546
  ],
1502
1547
  "registryDependencies": [
1503
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-app.json",
1504
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-ambient.json",
1505
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/app-shell.json",
1506
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
1548
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-app.json",
1549
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-ambient.json",
1550
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/app-shell.json",
1551
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
1507
1552
  "button"
1508
1553
  ],
1509
1554
  "files": [
@@ -1520,21 +1565,21 @@
1520
1565
  "title": "App shell: layouts, list/detail and agent layer",
1521
1566
  "description": "AppShell with three layouts. B \"workspace\" puts a ListDetail on a screen (phone: the list, then the detail as a stack step with Back; wide: a 20rem list and the detail side by side, sidebar as an icon rail). C \"chat\" wraps the app's own AgentWorkspace (untouched, passed as the nav item's render; install the pi-app item yourself) in the same sidebar, account menu and header; it takes no shell agent. A \"screen\": one screen at a time, every screen kept mounted. On a phone bottom tabs (at most four; more give three plus a « Plus » sheet) and an avatar button that opens the account sheet; on a wide screen the shadcn sidebar (icon rail, NavUser). One header per screen through useScreenHeader (title, subtitle, back, up to two actions, the rest behind « … »). The account menu holds « Améliorer l'app » (the improve agent), the app's own entries and sign out. AppSheet is the one bottom sheet (one open at a time, Back closes it). It mounts the AgentLayer: one agent's PiChat above the app (phone: a drawer with peek, half and full snap points; wide: a right panel), the improve agent in the same layer, optional push-to-talk and point mode. Also useAgentContext and readAgentContext (the screen on show travels as `context` with each submit) and useBackLayer, the one Back manager. Built on explicitly pinned Base UI drawer and dropdown-menu recipes, plus the sidebar and avatar of the host's own shadcn style.",
1522
1567
  "dependencies": [
1523
- "@hachej/boring-feedback@^0.4.12",
1524
- "@hachej/boring-ui-kit@^0.4.12",
1568
+ "@hachej/boring-feedback@^0.4.13",
1569
+ "@hachej/boring-ui-kit@^0.4.13",
1525
1570
  "@base-ui/react@^1.9.0",
1526
1571
  "react@^19.0.0",
1527
1572
  "react-dom@^19.0.0",
1528
1573
  "lucide-react@^1.51.0"
1529
1574
  ],
1530
1575
  "registryDependencies": [
1531
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
1532
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-plugins.json",
1533
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-voice.json",
1534
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/dock.json",
1535
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/feedback.json",
1536
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
1537
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
1576
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
1577
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-plugins.json",
1578
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-voice.json",
1579
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/dock.json",
1580
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/feedback.json",
1581
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
1582
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
1538
1583
  "drawer",
1539
1584
  "sidebar",
1540
1585
  "avatar",
@@ -1667,115 +1712,69 @@
1667
1712
  ]
1668
1713
  },
1669
1714
  {
1670
- "name": "viewers",
1715
+ "name": "viewer-frame",
1671
1716
  "type": "registry:component",
1672
- "title": "Viewers",
1673
- "description": "The standard viewer top bar (title, status, viewer controls, Refresh, Share, Copy, Download, Open in new tab, Close, overflow menu) with Tailwind panes over it: the Markdown editor with a formatting toolbar and prose styling, the passive HTML preview and source editor, an image viewer with zoom and pan, a PDF viewer, and LocalFileViewer for browser-only files. Owned, editable source over the borrowed controllers; no AI SDK.",
1717
+ "title": "Viewer frame",
1718
+ "description": "The standard viewer top bar every viewer draws in (title, status, viewer controls, Refresh, Share, Copy, Download, Open in new tab, Close, overflow menu), its window labels, download, share and media helpers and the sandboxed interactive HTML frame. The viewers' styles live here. Each viewer is its own item (viewer-markdown, viewer-html, viewer-image, viewer-pdf, viewer-code) with a cheap kind module and a view loaded on first open.",
1674
1719
  "dependencies": [
1675
- "@hachej/boring-ui-kit@^0.4.12",
1676
- "@hachej/boring-files@^0.4.12",
1720
+ "@hachej/boring-ui-kit@^0.4.13",
1677
1721
  "react@^19.0.0",
1678
1722
  "react-dom@^19.0.0",
1679
- "marked@^17.0.6",
1680
- "@tiptap/core@^3.31.4",
1681
- "@tiptap/react@^3.31.4",
1682
- "@tiptap/pm@^3.31.4",
1683
- "@tiptap/starter-kit@^3.31.4",
1684
- "@tiptap/markdown@^3.31.4",
1685
- "@tiptap/extensions@^3.31.4",
1686
- "@tiptap/extension-list@^3.31.4",
1687
- "@tiptap/extension-table@^3.31.4",
1688
- "@tiptap/extension-image@^3.31.4",
1689
- "@tiptap/extension-highlight@^3.31.4",
1690
- "@tiptap/extension-bubble-menu@^3.31.4",
1691
- "@tiptap/extension-floating-menu@^3.31.4",
1692
- "lucide-react@^1.51.0",
1693
- "pdfjs-dist@6.3.289"
1723
+ "lucide-react@^1.51.0"
1694
1724
  ],
1695
1725
  "registryDependencies": [
1696
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
1697
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
1698
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
1726
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
1727
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
1728
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
1699
1729
  "button",
1700
1730
  "toggle",
1701
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/version-history.json",
1731
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/version-history.json",
1702
1732
  "toggle-group",
1703
1733
  "dialog",
1704
1734
  "textarea",
1705
1735
  "badge",
1706
- "dropdown-menu",
1707
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/markdown-editor.json"
1736
+ "dropdown-menu"
1708
1737
  ],
1709
1738
  "files": [
1710
1739
  {
1711
- "path": "registry/viewers/download.ts",
1740
+ "path": "registry/viewer-frame/download.ts",
1712
1741
  "type": "registry:lib",
1713
- "target": "components/viewers/download.ts"
1714
- },
1715
- {
1716
- "path": "registry/viewers/html-pane.tsx",
1717
- "type": "registry:component",
1718
- "target": "components/viewers/html-pane.tsx"
1742
+ "target": "components/viewer-frame/download.ts"
1719
1743
  },
1720
1744
  {
1721
- "path": "registry/viewers/image-pane.tsx",
1745
+ "path": "registry/viewer-frame/interactive-html.tsx",
1722
1746
  "type": "registry:component",
1723
- "target": "components/viewers/image-pane.tsx"
1747
+ "target": "components/viewer-frame/interactive-html.tsx"
1724
1748
  },
1725
1749
  {
1726
- "path": "registry/viewers/interactive-html.tsx",
1727
- "type": "registry:component",
1728
- "target": "components/viewers/interactive-html.tsx"
1729
- },
1730
- {
1731
- "path": "registry/viewers/local-file-viewer.tsx",
1732
- "type": "registry:component",
1733
- "target": "components/viewers/local-file-viewer.tsx"
1734
- },
1735
- {
1736
- "path": "registry/viewers/markdown-pane.tsx",
1737
- "type": "registry:component",
1738
- "target": "components/viewers/markdown-pane.tsx"
1739
- },
1740
- {
1741
- "path": "registry/viewers/media.ts",
1750
+ "path": "registry/viewer-frame/media.ts",
1742
1751
  "type": "registry:lib",
1743
- "target": "components/viewers/media.ts"
1744
- },
1745
- {
1746
- "path": "registry/viewers/menu.tsx",
1747
- "type": "registry:component",
1748
- "target": "components/viewers/menu.tsx"
1752
+ "target": "components/viewer-frame/media.ts"
1749
1753
  },
1750
1754
  {
1751
- "path": "registry/viewers/pdf-pane.tsx",
1755
+ "path": "registry/viewer-frame/menu.tsx",
1752
1756
  "type": "registry:component",
1753
- "target": "components/viewers/pdf-pane.tsx"
1757
+ "target": "components/viewer-frame/menu.tsx"
1754
1758
  },
1755
1759
  {
1756
- "path": "registry/viewers/pdf-pages.tsx",
1757
- "type": "registry:component",
1758
- "target": "components/viewers/pdf-pages.tsx"
1759
- },
1760
- {
1761
- "path": "registry/viewers/share.ts",
1760
+ "path": "registry/viewer-frame/share.ts",
1762
1761
  "type": "registry:lib",
1763
- "target": "components/viewers/share.ts"
1762
+ "target": "components/viewer-frame/share.ts"
1764
1763
  },
1765
1764
  {
1766
- "path": "registry/viewers/viewer-frame.tsx",
1765
+ "path": "registry/viewer-frame/viewer-frame.tsx",
1767
1766
  "type": "registry:component",
1768
- "target": "components/viewers/viewer-frame.tsx"
1767
+ "target": "components/viewer-frame/viewer-frame.tsx"
1769
1768
  },
1770
1769
  {
1771
- "path": "registry/viewers/viewer-window.ts",
1770
+ "path": "registry/viewer-frame/viewer-window.ts",
1772
1771
  "type": "registry:lib",
1773
- "target": "components/viewers/viewer-window.ts"
1772
+ "target": "components/viewer-frame/viewer-window.ts"
1774
1773
  },
1775
1774
  {
1776
- "path": "registry/viewers/viewer-labels-fr.ts",
1775
+ "path": "registry/viewer-frame/viewer-labels-fr.ts",
1777
1776
  "type": "registry:lib",
1778
- "target": "components/viewers/viewer-labels-fr.ts"
1777
+ "target": "components/viewer-frame/viewer-labels-fr.ts"
1779
1778
  }
1780
1779
  ],
1781
1780
  "css": {
@@ -2150,6 +2149,198 @@
2150
2149
  }
2151
2150
  }
2152
2151
  },
2152
+ {
2153
+ "name": "viewer-markdown",
2154
+ "type": "registry:component",
2155
+ "title": "Markdown viewer",
2156
+ "description": "The Markdown kind: `markdownKind` (match, loader) and `MarkdownPane`, the tiptap editor with a formatting toolbar and prose styling over the kit's revisioned Markdown controller, in the viewer frame. The pane and tiptap load the first time a Markdown file opens.",
2157
+ "dependencies": [
2158
+ "@hachej/boring-ui-kit@^0.4.13",
2159
+ "react@^19.0.0",
2160
+ "lucide-react@^1.51.0",
2161
+ "marked@^17.0.6",
2162
+ "@tiptap/core@^3.31.4",
2163
+ "@tiptap/react@^3.31.4",
2164
+ "@tiptap/pm@^3.31.4",
2165
+ "@tiptap/starter-kit@^3.31.4",
2166
+ "@tiptap/markdown@^3.31.4",
2167
+ "@tiptap/extensions@^3.31.4",
2168
+ "@tiptap/extension-list@^3.31.4",
2169
+ "@tiptap/extension-table@^3.31.4",
2170
+ "@tiptap/extension-image@^3.31.4",
2171
+ "@tiptap/extension-highlight@^3.31.4",
2172
+ "@tiptap/extension-bubble-menu@^3.31.4",
2173
+ "@tiptap/extension-floating-menu@^3.31.4"
2174
+ ],
2175
+ "registryDependencies": [
2176
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2177
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/markdown-editor.json",
2178
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2179
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
2180
+ "button",
2181
+ "dropdown-menu"
2182
+ ],
2183
+ "files": [
2184
+ {
2185
+ "path": "registry/viewer-markdown/markdown-kind.ts",
2186
+ "type": "registry:lib",
2187
+ "target": "components/viewer-markdown/markdown-kind.ts"
2188
+ },
2189
+ {
2190
+ "path": "registry/viewer-markdown/markdown-pane.tsx",
2191
+ "type": "registry:component",
2192
+ "target": "components/viewer-markdown/markdown-pane.tsx"
2193
+ }
2194
+ ]
2195
+ },
2196
+ {
2197
+ "name": "viewer-html",
2198
+ "type": "registry:component",
2199
+ "title": "HTML viewer",
2200
+ "description": "The HTML kind: `htmlKind` (match, loader) and `HtmlPane`, the passive HTML preview (sandboxed when the host opts in) and source editor, in the viewer frame. The pane loads the first time an HTML file opens.",
2201
+ "dependencies": [
2202
+ "@hachej/boring-ui-kit@^0.4.13",
2203
+ "react@^19.0.0",
2204
+ "lucide-react@^1.51.0"
2205
+ ],
2206
+ "registryDependencies": [
2207
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2208
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2209
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
2210
+ "button"
2211
+ ],
2212
+ "files": [
2213
+ {
2214
+ "path": "registry/viewer-html/html-kind.ts",
2215
+ "type": "registry:lib",
2216
+ "target": "components/viewer-html/html-kind.ts"
2217
+ },
2218
+ {
2219
+ "path": "registry/viewer-html/html-pane.tsx",
2220
+ "type": "registry:component",
2221
+ "target": "components/viewer-html/html-pane.tsx"
2222
+ }
2223
+ ]
2224
+ },
2225
+ {
2226
+ "name": "viewer-image",
2227
+ "type": "registry:component",
2228
+ "title": "Image viewer",
2229
+ "description": "The image kind: `imageKind` (match on PNG, JPEG, GIF, WebP and SVG, loader) and `ImagePane`, zoom and pan in the viewer frame. The pane loads the first time an image opens.",
2230
+ "dependencies": [
2231
+ "react@^19.0.0",
2232
+ "lucide-react@^1.51.0"
2233
+ ],
2234
+ "registryDependencies": [
2235
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2236
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2237
+ "button"
2238
+ ],
2239
+ "files": [
2240
+ {
2241
+ "path": "registry/viewer-image/image-kind.ts",
2242
+ "type": "registry:lib",
2243
+ "target": "components/viewer-image/image-kind.ts"
2244
+ },
2245
+ {
2246
+ "path": "registry/viewer-image/image-types.ts",
2247
+ "type": "registry:lib",
2248
+ "target": "components/viewer-image/image-types.ts"
2249
+ },
2250
+ {
2251
+ "path": "registry/viewer-image/image-pane.tsx",
2252
+ "type": "registry:component",
2253
+ "target": "components/viewer-image/image-pane.tsx"
2254
+ }
2255
+ ]
2256
+ },
2257
+ {
2258
+ "name": "viewer-pdf",
2259
+ "type": "registry:component",
2260
+ "title": "PDF viewer",
2261
+ "description": "The PDF kind: `pdfKind` (match, loader) and `PdfPane` in the viewer frame (the browser's viewer, or pdf.js pages where there is none), and LocalFileViewer for browser-only files. The pane loads the first time a PDF opens.",
2262
+ "dependencies": [
2263
+ "@hachej/boring-files@^0.4.13",
2264
+ "react@^19.0.0",
2265
+ "lucide-react@^1.51.0",
2266
+ "pdfjs-dist@6.3.289"
2267
+ ],
2268
+ "registryDependencies": [
2269
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2270
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-image.json",
2271
+ "badge",
2272
+ "button"
2273
+ ],
2274
+ "files": [
2275
+ {
2276
+ "path": "registry/viewer-pdf/pdf-kind.ts",
2277
+ "type": "registry:lib",
2278
+ "target": "components/viewer-pdf/pdf-kind.ts"
2279
+ },
2280
+ {
2281
+ "path": "registry/viewer-pdf/pdf-pane.tsx",
2282
+ "type": "registry:component",
2283
+ "target": "components/viewer-pdf/pdf-pane.tsx"
2284
+ },
2285
+ {
2286
+ "path": "registry/viewer-pdf/pdf-pages.tsx",
2287
+ "type": "registry:component",
2288
+ "target": "components/viewer-pdf/pdf-pages.tsx"
2289
+ },
2290
+ {
2291
+ "path": "registry/viewer-pdf/local-file-viewer.tsx",
2292
+ "type": "registry:component",
2293
+ "target": "components/viewer-pdf/local-file-viewer.tsx"
2294
+ }
2295
+ ]
2296
+ },
2297
+ {
2298
+ "name": "viewer-code",
2299
+ "type": "registry:component",
2300
+ "title": "Code viewers",
2301
+ "description": "The SVG and CSV kinds: `svgKind` (a preview from a blob URL, or its source) and `csvKind` (a table), drawn inside the artifact panel's bar. Each view loads the first time its artifact opens; other code stays in the panel's code block.",
2302
+ "dependencies": [
2303
+ "react@^19.0.0",
2304
+ "lucide-react@^1.51.0"
2305
+ ],
2306
+ "registryDependencies": [
2307
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2308
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
2309
+ "table"
2310
+ ],
2311
+ "files": [
2312
+ {
2313
+ "path": "registry/viewer-code/code-kinds.ts",
2314
+ "type": "registry:lib",
2315
+ "target": "components/viewer-code/code-kinds.ts"
2316
+ },
2317
+ {
2318
+ "path": "registry/viewer-code/svg-view.tsx",
2319
+ "type": "registry:component",
2320
+ "target": "components/viewer-code/svg-view.tsx"
2321
+ },
2322
+ {
2323
+ "path": "registry/viewer-code/csv-table.tsx",
2324
+ "type": "registry:component",
2325
+ "target": "components/viewer-code/csv-table.tsx"
2326
+ }
2327
+ ]
2328
+ },
2329
+ {
2330
+ "name": "viewers",
2331
+ "type": "registry:component",
2332
+ "title": "Viewers",
2333
+ "description": "Deprecated aggregate: installs every viewer item (viewer-frame, viewer-markdown, viewer-html, viewer-image, viewer-pdf, viewer-code). Add the items you use instead.",
2334
+ "files": [],
2335
+ "registryDependencies": [
2336
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
2337
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-markdown.json",
2338
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-html.json",
2339
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-image.json",
2340
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-pdf.json",
2341
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-code.json"
2342
+ ]
2343
+ },
2153
2344
  {
2154
2345
  "name": "provider-setup",
2155
2346
  "type": "registry:component",
@@ -2161,8 +2352,8 @@
2161
2352
  "lucide-react@^1.51.0"
2162
2353
  ],
2163
2354
  "registryDependencies": [
2164
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
2165
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
2355
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
2356
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2166
2357
  "button",
2167
2358
  "input",
2168
2359
  "label",
@@ -2183,9 +2374,9 @@
2183
2374
  "title": "Feedback",
2184
2375
  "description": "Feedback from the chat composer: one Feedback button starts feedback mode on the application page (hover, click to pin a numbered note, hold ⌥ to use the app, optional voice), and one chip carries the notes to the next message. FeedbackBar, NoteBubble, FeedbackChip with its review, useComposerFeedback for the pi-chat composer, and PickerOverlay styles. Optional, not mounted by default: PointButton, AnnotateSheet, FeedbackList and FeedbackReport. Picking, masking, anchoring and placement stay in @hachej/boring-feedback/page and /ui, so restyling cannot weaken them.",
2185
2376
  "dependencies": [
2186
- "@hachej/boring-feedback@^0.4.12",
2187
- "@hachej/boring-ui-kit@^0.4.12",
2188
- "@hachej/boring-files@^0.4.12",
2377
+ "@hachej/boring-feedback@^0.4.13",
2378
+ "@hachej/boring-ui-kit@^0.4.13",
2379
+ "@hachej/boring-files@^0.4.13",
2189
2380
  "react@^19.0.0",
2190
2381
  "react-dom@^19.0.0",
2191
2382
  "lucide-react@^1.51.0"
@@ -2653,9 +2844,9 @@
2653
2844
  }
2654
2845
  },
2655
2846
  "registryDependencies": [
2656
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
2657
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat-voice.json",
2658
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
2847
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
2848
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat-voice.json",
2849
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2659
2850
  "button",
2660
2851
  "toggle",
2661
2852
  "badge",
@@ -2671,7 +2862,7 @@
2671
2862
  "title": "Feedback preview",
2672
2863
  "description": "PreviewBanner: a live, reversible preview of a change in the page (Approve / Discard) over `@hachej/boring-feedback/preview`, whose subagent calls models through a host gateway. Separate from `feedback` so annotation-only apps do not install the model SDK; install `feedback` first (its styles cover the banner).",
2673
2864
  "dependencies": [
2674
- "@hachej/boring-feedback@^0.4.12",
2865
+ "@hachej/boring-feedback@^0.4.13",
2675
2866
  "@earendil-works/pi-ai@~1.2.0",
2676
2867
  "react@^19.0.0"
2677
2868
  ],
@@ -2695,8 +2886,8 @@
2695
2886
  "title": "Consumer task-list viewer",
2696
2887
  "description": "A consumer-defined task-list schema and controller over the shared text buffer, with a restylable borrowed React renderer.",
2697
2888
  "dependencies": [
2698
- "@hachej/boring-ui-kit@^0.4.12",
2699
- "@hachej/boring-files@^0.4.12",
2889
+ "@hachej/boring-ui-kit@^0.4.13",
2890
+ "@hachej/boring-files@^0.4.13",
2700
2891
  "react@^19.0.0",
2701
2892
  "react-dom@^19.0.0",
2702
2893
  "zod@^4.6.5"
@@ -2752,12 +2943,12 @@
2752
2943
  "title": "Version history rows",
2753
2944
  "description": "Shared view-only version rows and menu metadata with relative time, provenance and Current. No file reads, publication or restoration.",
2754
2945
  "dependencies": [
2755
- "@hachej/boring-files@^0.4.12",
2946
+ "@hachej/boring-files@^0.4.13",
2756
2947
  "react@^19.0.0"
2757
2948
  ],
2758
2949
  "registryDependencies": [
2759
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
2760
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
2950
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
2951
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
2761
2952
  "button"
2762
2953
  ],
2763
2954
  "files": [
@@ -2774,15 +2965,15 @@
2774
2965
  "title": "File tree",
2775
2966
  "description": "Browse, search, upload and inspect retained versions through one revisionProvider binding. Uses the consumer's shadcn Button and dropdown-menu with shared version-history rows; Base UI style only.",
2776
2967
  "dependencies": [
2777
- "@hachej/boring-ui-kit@^0.4.12",
2778
- "@hachej/boring-files@^0.4.12",
2968
+ "@hachej/boring-ui-kit@^0.4.13",
2969
+ "@hachej/boring-files@^0.4.13",
2779
2970
  "react@^19.0.0",
2780
2971
  "lucide-react@^1.51.0"
2781
2972
  ],
2782
2973
  "registryDependencies": [
2783
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
2784
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
2785
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/version-history.json",
2974
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
2975
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2976
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/version-history.json",
2786
2977
  "button",
2787
2978
  "dropdown-menu",
2788
2979
  "collapsible",
@@ -2807,20 +2998,22 @@
2807
2998
  "title": "Documents: the Library, a file and its revisions",
2808
2999
  "description": "The workspace's Library as the list, the chosen file in its viewer and its retained revisions beside it (an older one opens read-only). DocumentSheet opens one document over the app for a host's « Voir la fiche », with an optional « Toutes les fiches ». Every read goes through one revisionProvider binding.",
2809
3000
  "dependencies": [
2810
- "@hachej/boring-ui-kit@^0.4.12",
2811
- "@hachej/boring-files@^0.4.12",
3001
+ "@hachej/boring-ui-kit@^0.4.13",
3002
+ "@hachej/boring-files@^0.4.13",
2812
3003
  "react@^19.0.0",
2813
3004
  "lucide-react@^1.51.0"
2814
3005
  ],
2815
3006
  "registryDependencies": [
2816
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/theme.json",
2817
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
2818
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/button.json",
2819
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-artifacts.json",
2820
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-app.json",
2821
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/app-shell.json",
2822
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/file-tree.json",
2823
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/viewers.json",
3007
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/theme.json",
3008
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
3009
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/button.json",
3010
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-artifacts.json",
3011
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-app.json",
3012
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/app-shell.json",
3013
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/file-tree.json",
3014
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-frame.json",
3015
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-image.json",
3016
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/viewer-pdf.json",
2824
3017
  "drawer",
2825
3018
  "button",
2826
3019
  "scroll-area",
@@ -2860,15 +3053,15 @@
2860
3053
  "title": "Point and dictate on app data",
2861
3054
  "description": "Tap explicitly marked JSON app context, dictate once and show the same app agent’s native reply without opening chat. Host-controlled presentation; no feedback report or second controller.",
2862
3055
  "dependencies": [
2863
- "@hachej/boring-ui-kit@^0.4.12",
2864
- "@hachej/boring-feedback@^0.4.12",
3056
+ "@hachej/boring-ui-kit@^0.4.13",
3057
+ "@hachej/boring-feedback@^0.4.13",
2865
3058
  "@earendil-works/pi-durable@~1.2.0",
2866
3059
  "react@^19.0.0",
2867
3060
  "react-dom@^19.0.0"
2868
3061
  ],
2869
3062
  "registryDependencies": [
2870
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/app-shell.json",
2871
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/pi-chat.json",
3063
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/app-shell.json",
3064
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/pi-chat.json",
2872
3065
  "button",
2873
3066
  "card",
2874
3067
  "message",
@@ -2893,7 +3086,7 @@
2893
3086
  "title": "Requests board",
2894
3087
  "description": "Host-fed compact requests and responsive list/detail with questions and decisions.",
2895
3088
  "registryDependencies": [
2896
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
3089
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2897
3090
  "badge",
2898
3091
  "button",
2899
3092
  "input",
@@ -2930,13 +3123,13 @@
2930
3123
  "title": "Anchored highlights",
2931
3124
  "description": "Exact Markdown highlights and comments in a conditional workspace sidecar.",
2932
3125
  "dependencies": [
2933
- "@hachej/boring-ui-kit@^0.4.12",
2934
- "@hachej/boring-files@^0.4.12",
3126
+ "@hachej/boring-ui-kit@^0.4.13",
3127
+ "@hachej/boring-files@^0.4.13",
2935
3128
  "react@^19.0.0",
2936
3129
  "react-dom@^19.0.0"
2937
3130
  ],
2938
3131
  "registryDependencies": [
2939
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/markdown-editor.json",
3132
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/markdown-editor.json",
2940
3133
  "button",
2941
3134
  "textarea",
2942
3135
  "label",
@@ -2962,7 +3155,7 @@
2962
3155
  "lucide-react@^1.51.0"
2963
3156
  ],
2964
3157
  "registryDependencies": [
2965
- "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.12/r/utils.json",
3158
+ "https://cdn.jsdelivr.net/npm/@hachej/boring-ui-kit@0.4.13/r/utils.json",
2966
3159
  "button",
2967
3160
  "card",
2968
3161
  "badge",