@alfadocs/ui-kit 0.70.0 → 0.71.0
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.
- package/dist/_chunks/address-fields-CPbFJ8e8.js +246 -0
- package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js → ai-prompt-input-V4DdOeqv.js} +2 -2
- package/dist/_chunks/{alia-sidebar-B47qRQb5.js → alia-sidebar-DvIUzIX9.js} +107 -106
- package/dist/_chunks/{anatomy-scheme-CJB6dI6p.js → anatomy-scheme-CXSk11UJ.js} +2 -2
- package/dist/_chunks/{app-frame-BYx1gcV7.js → app-frame-DIEMIC5V.js} +67 -56
- package/dist/_chunks/{appointment-card-C06aZqA7.js → appointment-card-DVaeJNVB.js} +82 -98
- package/dist/_chunks/{appointment-timeline-BJM0S_Fg.js → appointment-timeline-PJgnrjFb.js} +159 -157
- package/dist/_chunks/{appointment-tray-DRRw5ROi.js → appointment-tray-B16QPGbm.js} +2 -2
- package/dist/_chunks/{audio-recorder-Cpdk5qpQ.js → audio-recorder-DNDsOLqO.js} +2 -2
- package/dist/_chunks/{autocomplete-DOeGouCL.js → autocomplete-BrONKN8l.js} +168 -146
- package/dist/_chunks/{bishop-score-DnYWtZa_.js → bishop-score-Cym_TeQY.js} +2 -2
- package/dist/_chunks/{booking-DUBI0oqt.js → booking-C7do4vaR.js} +4 -4
- package/dist/_chunks/{button-group-Ciq6J4IW.js → button-group-CvEnVzY7.js} +32 -35
- package/dist/_chunks/{care-plan-card-C5sTfY9G.js → care-plan-card-DzPDYgtK.js} +3 -3
- package/dist/_chunks/{care-plan-entry-card-CXnxGCWA.js → care-plan-entry-card-CEnQy7YP.js} +3 -3
- package/dist/_chunks/care-plan-header-DcXFXWit.js +198 -0
- package/dist/_chunks/{chat-message-3V54YipB.js → chat-message-DzpcJR-q.js} +25 -23
- package/dist/_chunks/city-input-Dkgaak7I.js +169 -0
- package/dist/_chunks/clipboard-list-S7s-MXQq.js +25 -0
- package/dist/_chunks/{combobox-Clum7gJ1.js → combobox-DnqSF0IH.js} +131 -114
- package/dist/_chunks/connection-status-CY1HV8Wg.js +108 -0
- package/dist/_chunks/control-room-rail-FAQZrGVL.js +333 -0
- package/dist/_chunks/country-select-BwUZQvTa.js +709 -0
- package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js +410 -0
- package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-DmrgYSEX.js} +4 -4
- package/dist/_chunks/entity-summary-CaM1Y-xE.js +291 -0
- package/dist/_chunks/field-array-siUZzfYe.js +146 -0
- package/dist/_chunks/{field-value-NXYczdpO.js → field-value-3jMM0uDx.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-CF2ISaYQ.js → gestational-age-calculator-DKzEV5Qi.js} +2 -2
- package/dist/_chunks/iban-input-B0TWzR1R.js +436 -0
- package/dist/_chunks/icon-picker-0B7KhrF1.js +272 -0
- package/dist/_chunks/image-cropper-D9jqJy19.js +367 -0
- package/dist/_chunks/{link-cell-renderer-CTXqtXV-.js → link-cell-renderer-De_SLjSq.js} +262 -261
- package/dist/_chunks/list-checks-BUs75d_o.js +18 -0
- package/dist/_chunks/{marketplace-app-shell-Skhfp6vK.js → marketplace-app-shell-BGqkywsi.js} +3 -3
- package/dist/_chunks/message-card-DsHFFiL1.js +319 -0
- package/dist/_chunks/{message-tray-DwrBLJlf.js → message-tray-C0a6CL1_.js} +172 -135
- package/dist/_chunks/{multi-select-BdHHDrRN.js → multi-select-WE4S9FIF.js} +75 -63
- package/dist/_chunks/nav-grid-9xphY3FM.js +169 -0
- package/dist/_chunks/notes-panel-DXiMfuvp.js +320 -0
- package/dist/_chunks/notification-card-BMqNzCIt.js +290 -0
- package/dist/_chunks/{notification-tray-AEun6DN2.js → notification-tray-BmUlCx3g.js} +201 -166
- package/dist/_chunks/{operator-hero-CR0Rqh4-.js → operator-hero-BO8TqzX2.js} +2 -2
- package/dist/_chunks/panel-header-D313n_9-.js +105 -0
- package/dist/_chunks/{patient-details-Dlhqb5ig.js → patient-details-DgfTJimE.js} +280 -196
- package/dist/_chunks/{patient-search-Be6cLrHR.js → patient-search-CSWQKOSP.js} +2 -2
- package/dist/_chunks/{patient-shell-DV3XEtIB.js → patient-shell-BMwsIKlW.js} +3 -3
- package/dist/_chunks/{patient-summary-card-WySCMwwA.js → patient-summary-card-D4NdgYJB.js} +27 -12
- package/dist/_chunks/{patient-table-CHxf3Oqk.js → patient-table-CERknpd8.js} +3 -3
- package/dist/_chunks/{payment-request-card-BcZJwu9z.js → payment-request-card-Blf-MFNY.js} +2 -2
- package/dist/_chunks/permission-matrix-Bw5oexUt.js +174 -0
- package/dist/_chunks/position-grid-CcvqHaKN.js +169 -0
- package/dist/_chunks/postal-code-input-UCOYuRY2.js +192 -0
- package/dist/_chunks/{practice-results-C6qDfxos.js → practice-results-El5Z-oVp.js} +2 -2
- package/dist/_chunks/{pregnancy-dating-CRVWswD-.js → pregnancy-dating-CunHrOpO.js} +2 -2
- package/dist/_chunks/{product-hub-panel-e6pW220e.js → product-hub-panel-DtU7KXxm.js} +257 -217
- package/dist/_chunks/province-select-D_TZvix3.js +261 -0
- package/dist/_chunks/{public-header.agent-DqkqA-ca.js → public-header.agent-TxmC_x1I.js} +2 -2
- package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js +553 -0
- package/dist/_chunks/reviews-panel-DxkSrgMl.js +559 -0
- package/dist/_chunks/rich-text-editor-C8tyGjfb.js +2621 -0
- package/dist/_chunks/{scroll-area-5wNK0Cyz.js → scroll-area-BZOvUhwQ.js} +2 -2
- package/dist/_chunks/{select-DMLG44F5.js → select-KsyRr8WH.js} +114 -102
- package/dist/_chunks/{sheet-BxsE7eQm.js → sheet-umkfZjF6.js} +53 -42
- package/dist/_chunks/{sidebar-DY9jGjgt.js → sidebar-QCp9wHNP.js} +125 -113
- package/dist/_chunks/{tabs-BxcOziCo.js → tabs-CYZVKKDl.js} +2 -2
- package/dist/_chunks/task-card-DCdsI0ZT.js +189 -0
- package/dist/_chunks/{task-tray-qOEQflu4.js → task-tray-DNVejijD.js} +2 -2
- package/dist/_chunks/tasks-panel-C9odmawT.js +757 -0
- package/dist/_chunks/token-insert-menu-CFQqTe_n.js +147 -0
- package/dist/_chunks/{ai-tools-rail-B5NEghsp.js → tool-rail-BZx0-yIr.js} +152 -139
- package/dist/_chunks/{tooth-scheme-BhQoPNBD.js → tooth-scheme-DJZtzfeY.js} +470 -468
- package/dist/_chunks/{transcript-panel-3THQX6nJ.js → transcript-panel-CHGHHHdT.js} +95 -83
- package/dist/_chunks/{unit-converter-YEpD9evj.js → unit-converter-CwlZbfdn.js} +2 -2
- package/dist/_chunks/{workflow-map-Dy8mLCqF.js → workflow-map-M8MBBHQm.js} +106 -118
- package/dist/agent-catalog.json +2062 -226
- package/dist/agent-i18n/en.json +206 -8
- package/dist/components/_shared/option.d.ts +2 -0
- package/dist/components/_shared/patient-fields.d.ts +1 -1
- package/dist/components/address-fields/address-fields.agent.d.ts +9 -0
- package/dist/components/address-fields/address-fields.d.ts +29 -0
- package/dist/components/address-fields/index.d.ts +5 -0
- package/dist/components/address-fields/index.js +6 -0
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/anatomy-scheme/index.js +1 -1
- package/dist/components/app-frame/app-frame.d.ts +2 -2
- package/dist/components/app-frame/index.js +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/autocomplete.d.ts +10 -0
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/care-plan-header.d.ts +16 -5
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/city-input/city-input.agent.d.ts +8 -0
- package/dist/components/city-input/city-input.d.ts +57 -0
- package/dist/components/city-input/index.d.ts +5 -0
- package/dist/components/city-input/index.js +6 -0
- package/dist/components/combobox/combobox.d.ts +17 -0
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/connection-status/connection-status.agent.d.ts +4 -0
- package/dist/components/connection-status/connection-status.d.ts +36 -0
- package/dist/components/connection-status/index.d.ts +4 -0
- package/dist/components/connection-status/index.js +6 -0
- package/dist/components/control-room-rail/control-room-context.d.ts +5 -5
- package/dist/components/control-room-rail/control-room-rail.agent.d.ts +4 -0
- package/dist/components/control-room-rail/control-room-rail.d.ts +5 -5
- package/dist/components/control-room-rail/index.d.ts +1 -0
- package/dist/components/control-room-rail/index.js +4 -3
- package/dist/components/counter/counter.d.ts +1 -1
- package/dist/components/country-select/country-select.agent.d.ts +8 -0
- package/dist/components/country-select/country-select.d.ts +51 -0
- package/dist/components/country-select/index.d.ts +6 -0
- package/dist/components/country-select/index.js +9 -0
- package/dist/components/country-select/iso-3166.d.ts +15 -0
- package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts +34 -0
- package/dist/components/data-table/index.d.ts +2 -0
- package/dist/components/data-table/index.js +13 -11
- package/dist/components/entity-summary/entity-summary.agent.d.ts +4 -0
- package/dist/components/entity-summary/entity-summary.d.ts +53 -4
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/field-array/field-array.agent.d.ts +4 -0
- package/dist/components/field-array/field-array.d.ts +45 -0
- package/dist/components/field-array/index.d.ts +4 -0
- package/dist/components/field-array/index.js +6 -0
- package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/iban-input/iban-input.agent.d.ts +4 -0
- package/dist/components/iban-input/iban-input.d.ts +51 -0
- package/dist/components/iban-input/index.d.ts +5 -0
- package/dist/components/iban-input/index.js +13 -0
- package/dist/components/iban-input/is-valid-iban.d.ts +31 -0
- package/dist/components/icon-picker/icon-picker.agent.d.ts +4 -0
- package/dist/components/icon-picker/icon-picker.d.ts +41 -0
- package/dist/components/icon-picker/index.d.ts +4 -0
- package/dist/components/icon-picker/index.js +6 -0
- package/dist/components/image-cropper/crop-geometry.d.ts +30 -0
- package/dist/components/image-cropper/image-cropper.agent.d.ts +4 -0
- package/dist/components/image-cropper/image-cropper.d.ts +32 -0
- package/dist/components/image-cropper/index.d.ts +5 -0
- package/dist/components/image-cropper/index.js +11 -0
- package/dist/components/index.d.ts +16 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-card/message-card.d.ts +14 -0
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/message-tray/message-tray.d.ts +4 -0
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/nav-grid/index.d.ts +4 -0
- package/dist/components/nav-grid/index.js +7 -0
- package/dist/components/nav-grid/nav-grid.agent.d.ts +4 -0
- package/dist/components/nav-grid/nav-grid.d.ts +41 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.agent.d.ts +4 -0
- package/dist/components/notes-panel/notes-panel.d.ts +30 -0
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-card/notification-card.d.ts +15 -0
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/notification-tray/notification-tray.d.ts +4 -0
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/panel-header/index.d.ts +3 -0
- package/dist/components/panel-header/index.js +7 -0
- package/dist/components/panel-header/panel-header.d.ts +41 -0
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/permission-matrix/index.d.ts +4 -0
- package/dist/components/permission-matrix/index.js +7 -0
- package/dist/components/permission-matrix/permission-matrix.agent.d.ts +4 -0
- package/dist/components/permission-matrix/permission-matrix.d.ts +47 -0
- package/dist/components/position-grid/index.d.ts +4 -0
- package/dist/components/position-grid/index.js +7 -0
- package/dist/components/position-grid/position-grid.agent.d.ts +4 -0
- package/dist/components/position-grid/position-grid.d.ts +39 -0
- package/dist/components/postal-code-input/index.d.ts +5 -0
- package/dist/components/postal-code-input/index.js +6 -0
- package/dist/components/postal-code-input/postal-code-input.agent.d.ts +8 -0
- package/dist/components/postal-code-input/postal-code-input.d.ts +27 -0
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/product-hub-tray/product-hub-tray.d.ts +13 -1
- package/dist/components/province-select/index.d.ts +6 -0
- package/dist/components/province-select/index.js +7 -0
- package/dist/components/province-select/it-provinces.d.ts +8 -0
- package/dist/components/province-select/province-select.agent.d.ts +8 -0
- package/dist/components/province-select/province-select.d.ts +38 -0
- package/dist/components/public-footer/public-footer.d.ts +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/editor-toolbar.d.ts +17 -0
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/scroll-area/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/select.d.ts +8 -2
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/skeleton/skeleton.d.ts +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.d.ts +14 -6
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.d.ts +4 -0
- package/dist/components/tasks-panel/index.js +6 -0
- package/dist/components/tasks-panel/tasks-panel.agent.d.ts +4 -0
- package/dist/components/tasks-panel/tasks-panel.d.ts +152 -0
- package/dist/components/token-insert-menu/index.d.ts +4 -0
- package/dist/components/token-insert-menu/index.js +6 -0
- package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts +4 -0
- package/dist/components/token-insert-menu/token-insert-menu.d.ts +33 -0
- package/dist/components/tool-rail/index.d.ts +4 -0
- package/dist/components/tool-rail/index.js +6 -0
- package/dist/components/tool-rail/tool-rail.agent.d.ts +4 -0
- package/dist/components/{ai-tools-rail/ai-tools-rail.d.ts → tool-rail/tool-rail.d.ts} +29 -12
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/tooth-scheme/tooth-scheme.d.ts +9 -0
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/transcript-panel/transcript-panel.d.ts +2 -2
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/use-edge-resize.d.ts +2 -2
- package/dist/i18n/locales/ar.d.ts +167 -2
- package/dist/i18n/locales/ar.js +157 -5
- package/dist/i18n/locales/de.d.ts +167 -2
- package/dist/i18n/locales/de.js +159 -5
- package/dist/i18n/locales/el.d.ts +167 -2
- package/dist/i18n/locales/el.js +164 -5
- package/dist/i18n/locales/en.d.ts +167 -2
- package/dist/i18n/locales/en.js +170 -5
- package/dist/i18n/locales/es.d.ts +167 -2
- package/dist/i18n/locales/es.js +156 -5
- package/dist/i18n/locales/fr.d.ts +167 -2
- package/dist/i18n/locales/fr.js +159 -5
- package/dist/i18n/locales/hi.d.ts +167 -2
- package/dist/i18n/locales/hi.js +155 -5
- package/dist/i18n/locales/it.d.ts +167 -2
- package/dist/i18n/locales/it.js +159 -5
- package/dist/i18n/locales/ja.d.ts +167 -2
- package/dist/i18n/locales/ja.js +160 -5
- package/dist/i18n/locales/nl.d.ts +167 -2
- package/dist/i18n/locales/nl.js +152 -5
- package/dist/i18n/locales/pl.d.ts +167 -2
- package/dist/i18n/locales/pl.js +160 -5
- package/dist/i18n/locales/pt.d.ts +167 -2
- package/dist/i18n/locales/pt.js +164 -5
- package/dist/i18n/locales/ro.d.ts +167 -2
- package/dist/i18n/locales/ro.js +164 -5
- package/dist/i18n/locales/ru.d.ts +167 -2
- package/dist/i18n/locales/ru.js +157 -5
- package/dist/i18n/locales/sq.d.ts +167 -2
- package/dist/i18n/locales/sq.js +161 -5
- package/dist/i18n/locales/sv.d.ts +167 -2
- package/dist/i18n/locales/sv.js +159 -5
- package/dist/i18n/locales/tr.d.ts +167 -2
- package/dist/i18n/locales/tr.js +157 -5
- package/dist/i18n/locales/zh.d.ts +167 -2
- package/dist/i18n/locales/zh.js +152 -5
- package/dist/index.js +823 -755
- package/dist/locales/ar.json +170 -5
- package/dist/locales/de.json +170 -5
- package/dist/locales/el.json +170 -5
- package/dist/locales/en.json +170 -5
- package/dist/locales/es.json +170 -5
- package/dist/locales/fr.json +170 -5
- package/dist/locales/hi.json +170 -5
- package/dist/locales/it.json +170 -5
- package/dist/locales/ja.json +170 -5
- package/dist/locales/nl.json +170 -5
- package/dist/locales/pl.json +170 -5
- package/dist/locales/pt.json +170 -5
- package/dist/locales/ro.json +170 -5
- package/dist/locales/ru.json +170 -5
- package/dist/locales/sq.json +170 -5
- package/dist/locales/sv.json +170 -5
- package/dist/locales/tr.json +170 -5
- package/dist/locales/zh.json +170 -5
- package/dist/patterns/alia-assistant/alia-types.d.ts +9 -0
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +9 -1
- package/package.json +65 -5
- package/dist/_chunks/care-plan-header-BUwqDTtz.js +0 -206
- package/dist/_chunks/control-room-rail-Y8ryLYsP.js +0 -229
- package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +0 -328
- package/dist/_chunks/entity-summary-BxRjFh_4.js +0 -138
- package/dist/_chunks/message-card-Bx4GmLvf.js +0 -277
- package/dist/_chunks/notes-panel-ay8_lPrA.js +0 -158
- package/dist/_chunks/notification-card-D2jiKSJJ.js +0 -259
- package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +0 -558
- package/dist/_chunks/reviews-panel-Dq7LMDcH.js +0 -555
- package/dist/_chunks/rich-text-editor-DlCqPixb.js +0 -2158
- package/dist/_chunks/task-card-BwY9jaV1.js +0 -124
- package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +0 -4
- package/dist/components/ai-tools-rail/index.d.ts +0 -4
- package/dist/components/ai-tools-rail/index.js +0 -6
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type IbanReason } from './is-valid-iban';
|
|
2
|
+
/** Agent-readiness curated handle for IbanInput. */
|
|
3
|
+
export interface IbanInputHandle {
|
|
4
|
+
getValue: () => string;
|
|
5
|
+
setValue: (value: string) => void;
|
|
6
|
+
clear: () => void;
|
|
7
|
+
focus: () => void;
|
|
8
|
+
isValid: () => boolean;
|
|
9
|
+
}
|
|
10
|
+
/** Structured payload emitted on every keystroke alongside the raw value. */
|
|
11
|
+
export interface IbanChangeMeta {
|
|
12
|
+
/** Structurally complete AND the mod-97-10 checksum matches. */
|
|
13
|
+
isValid: boolean;
|
|
14
|
+
/** Whether the value has reached its country's expected length. */
|
|
15
|
+
isComplete: boolean;
|
|
16
|
+
/** Why the value is (in)valid — drives consumer messaging. */
|
|
17
|
+
reason: IbanReason;
|
|
18
|
+
}
|
|
19
|
+
export interface IbanInputProps {
|
|
20
|
+
/** Controlled value (raw, uppercased, no spaces). Pair with onChange. */
|
|
21
|
+
value?: string;
|
|
22
|
+
/** Uncontrolled initial value. Normalised on mount. */
|
|
23
|
+
defaultValue?: string;
|
|
24
|
+
/** Fires on every keystroke with the normalised raw string + meta. */
|
|
25
|
+
onChange?: (raw: string, meta: IbanChangeMeta) => void;
|
|
26
|
+
size?: 'sm' | 'md' | 'lg';
|
|
27
|
+
tone?: 'default' | 'error';
|
|
28
|
+
/** When the invalid tone + error string surface. Never marks partial input invalid. */
|
|
29
|
+
validateOn?: 'change' | 'blur' | 'submit';
|
|
30
|
+
/** Controlled escape hatch to force the invalid state (e.g. bank rejection). */
|
|
31
|
+
showError?: boolean;
|
|
32
|
+
/** Overrides the kit's default i18n error string. */
|
|
33
|
+
errorMessage?: string;
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
readOnly?: boolean;
|
|
36
|
+
required?: boolean;
|
|
37
|
+
placeholder?: string;
|
|
38
|
+
/** Render the format caption when NOT inside a FormField. */
|
|
39
|
+
showFormatHint?: boolean;
|
|
40
|
+
id?: string;
|
|
41
|
+
name?: string;
|
|
42
|
+
className?: string;
|
|
43
|
+
'aria-label'?: string;
|
|
44
|
+
}
|
|
45
|
+
declare const wrapperVariants: (props?: ({
|
|
46
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
47
|
+
tone?: "default" | "error" | null | undefined;
|
|
48
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
49
|
+
export declare const IbanInput: import("react").ForwardRefExoticComponent<IbanInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
50
|
+
export { wrapperVariants as ibanWrapperVariants };
|
|
51
|
+
//# sourceMappingURL=iban-input.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { IbanInput, ibanWrapperVariants } from './iban-input';
|
|
2
|
+
export type { IbanInputProps, IbanInputHandle, IbanChangeMeta, } from './iban-input';
|
|
3
|
+
export { ibanInputAgent } from './iban-input.agent';
|
|
4
|
+
export { classifyIban, isValidIban, ibanMod97, IBAN_LENGTHS, MIN_IBAN_LENGTH, MAX_IBAN_LENGTH, type IbanReason, } from './is-valid-iban';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { I as n, a as I, M as i, b, c as N, i as p, d as r, w as t, e as A } from "../../_chunks/iban-input-B0TWzR1R.js";
|
|
2
|
+
export {
|
|
3
|
+
n as IBAN_LENGTHS,
|
|
4
|
+
I as IbanInput,
|
|
5
|
+
i as MAX_IBAN_LENGTH,
|
|
6
|
+
b as MIN_IBAN_LENGTH,
|
|
7
|
+
N as classifyIban,
|
|
8
|
+
p as ibanInputAgent,
|
|
9
|
+
r as ibanMod97,
|
|
10
|
+
t as ibanWrapperVariants,
|
|
11
|
+
A as isValidIban
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Why an IBAN is (in)valid — drives the component's error messaging. */
|
|
2
|
+
export type IbanReason = 'valid' | 'empty' | 'incomplete' | 'badFormat' | 'badChecksum';
|
|
3
|
+
/**
|
|
4
|
+
* Published IBAN lengths by ISO-3166 alpha-2 country code (the SEPA zone plus
|
|
5
|
+
* the common non-SEPA registry entries). Used to decide when a typed value is
|
|
6
|
+
* "complete" so the component never flags a partially-entered IBAN as invalid.
|
|
7
|
+
*/
|
|
8
|
+
export declare const IBAN_LENGTHS: Record<string, number>;
|
|
9
|
+
/** The shortest registered IBAN (Norway, 15) — the completeness floor for an
|
|
10
|
+
* unknown country code. */
|
|
11
|
+
export declare const MIN_IBAN_LENGTH = 15;
|
|
12
|
+
/** The longest registered IBAN (34) — the hard input cap. */
|
|
13
|
+
export declare const MAX_IBAN_LENGTH = 34;
|
|
14
|
+
/**
|
|
15
|
+
* ISO 7064 mod-97-10. Moves the leading 4 characters (country + check digits)
|
|
16
|
+
* to the end, maps letters A–Z to 10–35, and reduces the resulting decimal
|
|
17
|
+
* string modulo 97 in chunks (avoids BigInt). A valid IBAN yields `1`.
|
|
18
|
+
*
|
|
19
|
+
* Assumes `value` is already normalised to `[A-Z0-9]` (uppercase, no spaces).
|
|
20
|
+
*/
|
|
21
|
+
export declare function ibanMod97(value: string): number;
|
|
22
|
+
/**
|
|
23
|
+
* Classify a normalised (uppercased, `[A-Z0-9]`, ≤34-char) IBAN string. Returns
|
|
24
|
+
* `'incomplete'` while the value is shorter than its country expects so the
|
|
25
|
+
* caller can stay silent mid-entry, and only `'badFormat'` / `'badChecksum'`
|
|
26
|
+
* once the value is structurally complete.
|
|
27
|
+
*/
|
|
28
|
+
export declare function classifyIban(raw: string): IbanReason;
|
|
29
|
+
/** Convenience boolean wrapper around {@link classifyIban}. */
|
|
30
|
+
export declare function isValidIban(raw: string): boolean;
|
|
31
|
+
//# sourceMappingURL=is-valid-iban.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** One selectable glyph. `label` is the accessible name (consumer-localised);
|
|
3
|
+
* `node` is the rendered lucide/SVG element. */
|
|
4
|
+
export interface IconPickerIcon {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
node: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/** Agent-readiness curated handle for IconPicker. */
|
|
10
|
+
export interface IconPickerHandle {
|
|
11
|
+
getValue: () => string;
|
|
12
|
+
setValue: (id: string) => void;
|
|
13
|
+
isOpen: () => boolean;
|
|
14
|
+
open: () => void;
|
|
15
|
+
close: () => void;
|
|
16
|
+
getQuery: () => string;
|
|
17
|
+
setQuery: (query: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface IconPickerProps {
|
|
20
|
+
/** The glyph set. `label` is each glyph's accessible name. */
|
|
21
|
+
icons: IconPickerIcon[];
|
|
22
|
+
/** Controlled selected icon id. Pair with onChange. */
|
|
23
|
+
value?: string;
|
|
24
|
+
/** Uncontrolled initial selected icon id. */
|
|
25
|
+
defaultValue?: string;
|
|
26
|
+
/** Fires with the chosen icon id when a glyph is picked. */
|
|
27
|
+
onChange?: (id: string) => void;
|
|
28
|
+
/** Shown on the trigger when nothing is selected. */
|
|
29
|
+
placeholder?: ReactNode;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
id?: string;
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Trigger accessible name. Defaults to the bundled `iconPicker.trigger`. */
|
|
34
|
+
'aria-label'?: string;
|
|
35
|
+
}
|
|
36
|
+
declare const optionVariants: (props?: ({
|
|
37
|
+
selected?: boolean | null | undefined;
|
|
38
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
39
|
+
export declare const IconPicker: import("react").ForwardRefExoticComponent<IconPickerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
40
|
+
export { optionVariants as iconPickerOptionVariants };
|
|
41
|
+
//# sourceMappingURL=icon-picker.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Normalised crop rectangle (each field in the closed interval [0, 1]). */
|
|
2
|
+
export interface CropRect {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const clamp01: (v: number) => number;
|
|
9
|
+
/**
|
|
10
|
+
* Clamp a rectangle so it stays within the unit box and never shrinks below
|
|
11
|
+
* `minSize` on either axis.
|
|
12
|
+
*/
|
|
13
|
+
export declare function clampRect(rect: CropRect, minSize: number): CropRect;
|
|
14
|
+
/**
|
|
15
|
+
* Coerce a rectangle's height to honour a pixel aspect ratio
|
|
16
|
+
* (`width_px / height_px`), anchored at its top-inline-start corner. `boxW` /
|
|
17
|
+
* `boxH` are the displayed image box's pixel dimensions. A non-positive aspect
|
|
18
|
+
* or unmeasured box returns the rectangle unchanged.
|
|
19
|
+
*/
|
|
20
|
+
export declare function applyAspect(rect: CropRect, aspect: number | undefined, boxW: number, boxH: number): CropRect;
|
|
21
|
+
/** A sensible centred default — an 80% box, aspect-coerced when one is set. */
|
|
22
|
+
export declare function defaultCrop(aspect: number | undefined, boxW: number, boxH: number): CropRect;
|
|
23
|
+
/** Round each field to whole percentages — used for the live-region readout. */
|
|
24
|
+
export declare function toPercent(rect: CropRect): {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=crop-geometry.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type CropRect } from './crop-geometry';
|
|
2
|
+
/** Agent-readiness curated handle for ImageCropper. */
|
|
3
|
+
export interface ImageCropperHandle {
|
|
4
|
+
getCrop: () => CropRect;
|
|
5
|
+
setCrop: (rect: CropRect) => void;
|
|
6
|
+
reset: () => void;
|
|
7
|
+
focus: () => void;
|
|
8
|
+
}
|
|
9
|
+
export interface ImageCropperProps {
|
|
10
|
+
/** Source of the image to crop (object URL, data URL, or remote src). */
|
|
11
|
+
src: string;
|
|
12
|
+
/** Accessible description of the image being cropped (consumer-supplied). */
|
|
13
|
+
alt: string;
|
|
14
|
+
/** Pixel aspect ratio (width / height) to lock the crop to. Omit for free-form. */
|
|
15
|
+
aspect?: number;
|
|
16
|
+
/** Controlled crop rect in normalised [0,1] coordinates. Pair with onChange. */
|
|
17
|
+
value?: CropRect;
|
|
18
|
+
/** Uncontrolled initial crop rect. */
|
|
19
|
+
defaultValue?: CropRect;
|
|
20
|
+
/** Fires with the new normalised crop rect on every move/resize. */
|
|
21
|
+
onChange?: (rect: CropRect) => void;
|
|
22
|
+
/** Smallest crop edge as a fraction of the image (default 0.1). */
|
|
23
|
+
minSize?: number;
|
|
24
|
+
/** Normalised step applied per arrow-key press (default 0.02). */
|
|
25
|
+
keyboardStep?: number;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
id?: string;
|
|
28
|
+
className?: string;
|
|
29
|
+
'aria-label'?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare const ImageCropper: import("react").ForwardRefExoticComponent<ImageCropperProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
32
|
+
//# sourceMappingURL=image-cropper.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ImageCropper } from './image-cropper';
|
|
2
|
+
export type { ImageCropperProps, ImageCropperHandle } from './image-cropper';
|
|
3
|
+
export { imageCropperAgent } from './image-cropper.agent';
|
|
4
|
+
export { clampRect, applyAspect, defaultCrop, toPercent, clamp01, type CropRect, } from './crop-geometry';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { I as p, a as r, c as s, b as t, d as c, i as o, t as m } from "../../_chunks/image-cropper-D9jqJy19.js";
|
|
2
|
+
export {
|
|
3
|
+
p as ImageCropper,
|
|
4
|
+
r as applyAspect,
|
|
5
|
+
s as clamp01,
|
|
6
|
+
t as clampRect,
|
|
7
|
+
c as defaultCrop,
|
|
8
|
+
o as imageCropperAgent,
|
|
9
|
+
m as toPercent
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -10,6 +10,11 @@ export { SafeHtml, sanitiseHtml } from './_shared/safe-html';
|
|
|
10
10
|
export type { SafeHtmlProps, SafeHtmlProfile } from './_shared/safe-html';
|
|
11
11
|
export type { OptionShape } from './_shared/option';
|
|
12
12
|
export * from './address-autocomplete';
|
|
13
|
+
export * from './address-fields';
|
|
14
|
+
export * from './city-input';
|
|
15
|
+
export * from './country-select';
|
|
16
|
+
export * from './postal-code-input';
|
|
17
|
+
export * from './province-select';
|
|
13
18
|
export * from './autocomplete';
|
|
14
19
|
export * from './checkbox';
|
|
15
20
|
export * from './checkbox-group';
|
|
@@ -26,6 +31,13 @@ export * from './bishop-score';
|
|
|
26
31
|
export * from './fetal-weight';
|
|
27
32
|
export * from './hcg-doubling';
|
|
28
33
|
export * from './email-input';
|
|
34
|
+
export * from './iban-input';
|
|
35
|
+
export * from './field-array';
|
|
36
|
+
export * from './icon-picker';
|
|
37
|
+
export * from './image-cropper';
|
|
38
|
+
export * from './permission-matrix';
|
|
39
|
+
export * from './position-grid';
|
|
40
|
+
export * from './token-insert-menu';
|
|
29
41
|
export * from './file-upload';
|
|
30
42
|
export * from './form-field';
|
|
31
43
|
export * from './multi-select';
|
|
@@ -54,6 +66,7 @@ export * from './calculator-dialog';
|
|
|
54
66
|
export * from './cycle-calculator';
|
|
55
67
|
export * from './card';
|
|
56
68
|
export * from './carousel';
|
|
69
|
+
export * from './connection-status';
|
|
57
70
|
export * from './contact-card';
|
|
58
71
|
export * from './counter';
|
|
59
72
|
export * from './data-table';
|
|
@@ -75,12 +88,12 @@ export * from './stat';
|
|
|
75
88
|
export * from './tag';
|
|
76
89
|
export * from './timeline';
|
|
77
90
|
export * from './timestamp';
|
|
78
|
-
export * from './ai-tools-rail';
|
|
79
91
|
export * from './control-room-rail';
|
|
80
92
|
export * from './breadcrumb';
|
|
81
93
|
export * from './command-palette';
|
|
82
94
|
export * from './header';
|
|
83
95
|
export * from './navigation-menu';
|
|
96
|
+
export * from './nav-grid';
|
|
84
97
|
export * from './link';
|
|
85
98
|
export * from './pagination';
|
|
86
99
|
export * from './public-footer';
|
|
@@ -119,12 +132,14 @@ export * from './sheet';
|
|
|
119
132
|
export * from './spinner';
|
|
120
133
|
export * from './task-card';
|
|
121
134
|
export * from './task-tray';
|
|
135
|
+
export * from './tasks-panel';
|
|
122
136
|
export * from './toast';
|
|
123
137
|
export * from './tooltip';
|
|
124
138
|
export * from './warning-stack';
|
|
125
139
|
export * from './app-frame';
|
|
126
140
|
export * from './aspect-ratio';
|
|
127
141
|
export * from './collapsible';
|
|
142
|
+
export * from './panel-header';
|
|
128
143
|
export * from './resizable';
|
|
129
144
|
export * from './scroll-area';
|
|
130
145
|
export * from './separator';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as a } from "../../_chunks/message-card-
|
|
1
|
+
import { M as a } from "../../_chunks/message-card-DsHFFiL1.js";
|
|
2
2
|
import { m as o } from "../../_chunks/message-card.agent-ZLhx3Bs5.js";
|
|
3
3
|
import { i as f } from "../../_chunks/is-safe-url-DkETxeHz.js";
|
|
4
4
|
export {
|
|
@@ -39,6 +39,19 @@ export interface MessageCardProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
39
39
|
* controls (used by dashboards / sidebars).
|
|
40
40
|
*/
|
|
41
41
|
variant?: 'compact' | 'dashboard';
|
|
42
|
+
/**
|
|
43
|
+
* Fires when the read/unread status ball (the corner badge on the avatar) is
|
|
44
|
+
* activated. Supply to make the ball an interactive toggle; omit and it
|
|
45
|
+
* renders as a static read-state indicator.
|
|
46
|
+
*/
|
|
47
|
+
onToggleRead?: (item: MessageItem) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Row chrome for the `compact` variant (ignored for `dashboard`). `'flat'`
|
|
50
|
+
* (default) — chrome-less row inside a bordered tray. `'elevated'` — own
|
|
51
|
+
* card chrome (border + `--shadow-sm`), matching `AppointmentCard` /
|
|
52
|
+
* `ClinicalNoteCard` for rail feeds (e.g. the Inbox).
|
|
53
|
+
*/
|
|
54
|
+
surface?: 'flat' | 'elevated';
|
|
42
55
|
/** Visual density. */
|
|
43
56
|
size?: 'sm' | 'md';
|
|
44
57
|
/** Fires when the row / title is activated. */
|
|
@@ -67,6 +80,7 @@ declare const cardVariants: (props?: ({
|
|
|
67
80
|
variant?: "compact" | "dashboard" | null | undefined;
|
|
68
81
|
size?: "sm" | "md" | null | undefined;
|
|
69
82
|
state?: "read" | "unread" | null | undefined;
|
|
83
|
+
surface?: "flat" | "elevated" | null | undefined;
|
|
70
84
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
71
85
|
export declare const MessageCard: import("react").ForwardRefExoticComponent<MessageCardProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
72
86
|
//# sourceMappingURL=message-card.d.ts.map
|
|
@@ -18,6 +18,10 @@ export interface MessageTrayHandle {
|
|
|
18
18
|
selectItem: (id: string) => void;
|
|
19
19
|
markRead: (id: string) => void;
|
|
20
20
|
dismiss: (id: string) => void;
|
|
21
|
+
/** Request the host to mark every message as read (mirrors onMarkAllRead). */
|
|
22
|
+
markAllRead: () => void;
|
|
23
|
+
/** Navigate to the full inbox (mirrors onViewAll). */
|
|
24
|
+
viewAll: () => void;
|
|
21
25
|
}
|
|
22
26
|
export interface MessageTrayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'children' | 'role' | 'id'>, VariantProps<typeof messageTrayVariants> {
|
|
23
27
|
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface NavGridItem {
|
|
3
|
+
/** Stable, opaque id. Emitted as `data-nav-item-id`; agents target it. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Localised tile label — supplied by the consumer (never bundled here). */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Optional localised supporting text shown under the label. */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** Decorative leading glyph. Rendered `aria-hidden`. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
/** When set, the tile is a navigating anchor (kit Link). */
|
|
12
|
+
href?: string;
|
|
13
|
+
/** When `href` is absent, the tile is a button firing this handler. */
|
|
14
|
+
onSelect?: () => void;
|
|
15
|
+
/** Render the tile non-interactive and visually muted. */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Agent-readiness curated handle for NavGrid. */
|
|
19
|
+
export interface NavGridHandle {
|
|
20
|
+
getItemCount: () => number;
|
|
21
|
+
/** Activate the tile with the given id (navigate, or fire its onSelect). */
|
|
22
|
+
openItem: (id: string) => void;
|
|
23
|
+
}
|
|
24
|
+
export interface NavGridProps {
|
|
25
|
+
/** Tiles to render. label / description / icon are consumer-supplied props. */
|
|
26
|
+
items: NavGridItem[];
|
|
27
|
+
/** REQUIRED — the nav landmark's accessible name (e.g. "Settings sections"). */
|
|
28
|
+
ariaLabel: string;
|
|
29
|
+
/** Column count. Omit for the responsive default (1 → 2 → 3 at sm / lg). */
|
|
30
|
+
columns?: 1 | 2 | 3 | 4;
|
|
31
|
+
/** `label` sorts tiles by `label.localeCompare`; `none` (default) preserves order. */
|
|
32
|
+
sort?: 'label' | 'none';
|
|
33
|
+
id?: string;
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
declare const tileVariants: (props?: ({
|
|
37
|
+
disabled?: boolean | null | undefined;
|
|
38
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
39
|
+
export declare const NavGrid: import("react").ForwardRefExoticComponent<NavGridProps & import("react").RefAttributes<HTMLElement>>;
|
|
40
|
+
export { tileVariants as navGridTileVariants };
|
|
41
|
+
//# sourceMappingURL=nav-grid.d.ts.map
|
|
@@ -3,6 +3,31 @@ import type { ClinicalNoteCardProps } from '../clinical-note-card';
|
|
|
3
3
|
import type { RichTextEditorProps, RichTextEditorToolbar, RedactorFactory } from '../rich-text-editor';
|
|
4
4
|
/** One note in the panel — the data subset of `ClinicalNoteCard`. */
|
|
5
5
|
export type NotesPanelNote = Pick<ClinicalNoteCardProps, 'id' | 'dateIso' | 'createdAtIso' | 'author' | 'clinical' | 'attachedTo' | 'content' | 'contentFormat' | 'pinned' | 'flagged'>;
|
|
6
|
+
/**
|
|
7
|
+
* Curated agent handle for NotesPanel. Reads the note timeline's STRUCTURE
|
|
8
|
+
* (ids + pinned / flagged / clinical flags — never the note body or author,
|
|
9
|
+
* both PHI) and drives the composer + per-note toggles. See
|
|
10
|
+
* `notes-panel.agent.ts`.
|
|
11
|
+
*/
|
|
12
|
+
export interface NotesPanelHandle {
|
|
13
|
+
/** Timeline snapshot — ids + flags only, never note content (PHI). */
|
|
14
|
+
getNotes: () => Array<{
|
|
15
|
+
id?: string;
|
|
16
|
+
pinned: boolean;
|
|
17
|
+
flagged: boolean;
|
|
18
|
+
clinical: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
/** Whether the composer is mounted (onAddNote is wired). */
|
|
21
|
+
canAddNote: () => boolean;
|
|
22
|
+
/** Whether clinical notes may be written (the permission gate). */
|
|
23
|
+
canAddClinical: () => boolean;
|
|
24
|
+
/** Commit a new note with explicit content (mirrors the composer's submit). */
|
|
25
|
+
addNote: (submission: NotesPanelSubmission) => void;
|
|
26
|
+
/** Toggle a note's pinned state (mirrors onTogglePin). */
|
|
27
|
+
togglePin: (id: string) => void;
|
|
28
|
+
/** Toggle a note's flagged state (mirrors onToggleFlag). */
|
|
29
|
+
toggleFlag: (id: string) => void;
|
|
30
|
+
}
|
|
6
31
|
/** Payload handed to `onAddNote` when the composer commits. */
|
|
7
32
|
export interface NotesPanelSubmission {
|
|
8
33
|
/** The note body — rich HTML (`composer='rich'`) or plain text. */
|
|
@@ -11,6 +36,11 @@ export interface NotesPanelSubmission {
|
|
|
11
36
|
clinical: boolean;
|
|
12
37
|
}
|
|
13
38
|
export interface NotesPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'children'> {
|
|
39
|
+
/**
|
|
40
|
+
* Stable instance id. Surfaced on the root as `data-component-id` so an
|
|
41
|
+
* agent / MCP UI bridge can address this specific notes panel.
|
|
42
|
+
*/
|
|
43
|
+
id?: string;
|
|
14
44
|
/** Notes to render, newest-first by convention. Pinned notes lead. */
|
|
15
45
|
notes: NotesPanelNote[];
|
|
16
46
|
/** Commit a new note. Omit to hide the composer (read-only timeline). */
|
|
@@ -27,10 +27,24 @@ export interface NotificationCardProps extends Omit<HTMLAttributes<HTMLDivElemen
|
|
|
27
27
|
* controls (used by dashboards / sidebars).
|
|
28
28
|
*/
|
|
29
29
|
variant?: 'compact' | 'dashboard';
|
|
30
|
+
/**
|
|
31
|
+
* Row chrome for the `compact` variant (ignored for `dashboard`, which
|
|
32
|
+
* always carries its own card border). `'flat'` (default) — chrome-less row
|
|
33
|
+
* for use inside a bordered tray. `'elevated'` — each row carries its own
|
|
34
|
+
* card chrome (border + `--shadow-sm`), matching `AppointmentCard` /
|
|
35
|
+
* `ClinicalNoteCard` for placing rows directly on a rail (e.g. the Inbox).
|
|
36
|
+
*/
|
|
37
|
+
surface?: 'flat' | 'elevated';
|
|
30
38
|
/** Visual density. */
|
|
31
39
|
size?: 'sm' | 'md';
|
|
32
40
|
/** Fires when the card title / body is activated. */
|
|
33
41
|
onActivate?: (item: NotificationItem) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Fires when the read/unread status ball (the corner badge on the category
|
|
44
|
+
* icon) is activated. Supply to make the ball an interactive toggle; omit and
|
|
45
|
+
* it renders as a static read-state indicator.
|
|
46
|
+
*/
|
|
47
|
+
onToggleRead?: (item: NotificationItem) => void;
|
|
34
48
|
/** Fires when the dismiss control is activated. */
|
|
35
49
|
onDismiss?: (item: NotificationItem) => void;
|
|
36
50
|
/**
|
|
@@ -55,6 +69,7 @@ declare const cardVariants: (props?: ({
|
|
|
55
69
|
variant?: "compact" | "dashboard" | null | undefined;
|
|
56
70
|
size?: "sm" | "md" | null | undefined;
|
|
57
71
|
state?: "read" | "unread" | null | undefined;
|
|
72
|
+
surface?: "flat" | "elevated" | null | undefined;
|
|
58
73
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
59
74
|
export declare function isSafeNotificationUrl(url: string): boolean;
|
|
60
75
|
export declare const NotificationCard: import("react").ForwardRefExoticComponent<NotificationCardProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -18,6 +18,10 @@ export interface NotificationTrayHandle {
|
|
|
18
18
|
selectItem: (id: string) => void;
|
|
19
19
|
markRead: (id: string) => void;
|
|
20
20
|
dismiss: (id: string) => void;
|
|
21
|
+
/** Request the host to mark every notification as read (mirrors onMarkAllRead). */
|
|
22
|
+
markAllRead: () => void;
|
|
23
|
+
/** Navigate to the full notification list (mirrors onViewAll). */
|
|
24
|
+
viewAll: () => void;
|
|
21
25
|
}
|
|
22
26
|
export interface NotificationTrayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'children' | 'role' | 'id'>, VariantProps<typeof notificationTrayVariants> {
|
|
23
27
|
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
/**
|
|
4
|
+
* Provides rail-injected actions that every descendant `PanelHeader`
|
|
5
|
+
* appends to its action cluster, after the panel's own `actions`. The
|
|
6
|
+
* rail (or any host) wraps the panel subtree once; standalone panels
|
|
7
|
+
* render without a provider and inject nothing.
|
|
8
|
+
*/
|
|
9
|
+
export declare function PanelHeaderActionsProvider({ actions, children, }: {
|
|
10
|
+
actions: ReactNode;
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
/** Reads the rail-injected actions for the current subtree (default `null`). */
|
|
14
|
+
export declare function usePanelHeaderActions(): ReactNode;
|
|
15
|
+
declare const headerVariants: (props?: ({
|
|
16
|
+
sticky?: boolean | null | undefined;
|
|
17
|
+
divider?: boolean | null | undefined;
|
|
18
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
19
|
+
export interface PanelHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'>, VariantProps<typeof headerVariants> {
|
|
20
|
+
/** Heading content. Already translated upstream. */
|
|
21
|
+
title: ReactNode;
|
|
22
|
+
/** Optional leading glyph — auto `aria-hidden` and sized to `--spacing` 4. */
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
/** `id` applied to the heading so panels can wire `aria-labelledby`. */
|
|
25
|
+
headingId?: string;
|
|
26
|
+
/** Semantic heading level. Default `2`. */
|
|
27
|
+
headingLevel?: 2 | 3;
|
|
28
|
+
/** Panel-owned actions, rendered inline-end of the title row. */
|
|
29
|
+
actions?: ReactNode;
|
|
30
|
+
/** Optional second row, typically filter controls. */
|
|
31
|
+
filters?: ReactNode;
|
|
32
|
+
/** Pin to the top of the scroll region. Default `false`. */
|
|
33
|
+
sticky?: boolean;
|
|
34
|
+
/** Bottom hairline. Default `true`. */
|
|
35
|
+
divider?: boolean;
|
|
36
|
+
/** Type scale of the heading. Default `'card'`. */
|
|
37
|
+
titleScale?: 'card' | 'section';
|
|
38
|
+
}
|
|
39
|
+
export declare const PanelHeader: import("react").ForwardRefExoticComponent<PanelHeaderProps & import("react").RefAttributes<HTMLElement>>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=panel-header.d.ts.map
|