@alfadocs/ui-kit 0.0.12
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/LICENSE +96 -0
- package/README.md +152 -0
- package/dist/_chunks/accordion-Dgcd38U_.js +117 -0
- package/dist/_chunks/accordion-Dgcd38U_.js.map +1 -0
- package/dist/_chunks/accordion.agent-Cz-yglRa.js +17 -0
- package/dist/_chunks/accordion.agent-Cz-yglRa.js.map +1 -0
- package/dist/_chunks/agenda-card-B2gq-gTq.js +130 -0
- package/dist/_chunks/agenda-card-B2gq-gTq.js.map +1 -0
- package/dist/_chunks/agenda-tray-twa8g_87.js +119 -0
- package/dist/_chunks/agenda-tray-twa8g_87.js.map +1 -0
- package/dist/_chunks/ai-prompt-input-C6IY_Eds.js +379 -0
- package/dist/_chunks/ai-prompt-input-C6IY_Eds.js.map +1 -0
- package/dist/_chunks/alert-C5ud6CfE.js +187 -0
- package/dist/_chunks/alert-C5ud6CfE.js.map +1 -0
- package/dist/_chunks/apexcharts-theme-cpBYmCcr.js +17 -0
- package/dist/_chunks/apexcharts-theme-cpBYmCcr.js.map +1 -0
- package/dist/_chunks/app-frame-CmIUp9BD.js +129 -0
- package/dist/_chunks/app-frame-CmIUp9BD.js.map +1 -0
- package/dist/_chunks/aspect-ratio-Bo3cZXmR.js +56 -0
- package/dist/_chunks/aspect-ratio-Bo3cZXmR.js.map +1 -0
- package/dist/_chunks/audio-recorder-GkGNtW2X.js +375 -0
- package/dist/_chunks/audio-recorder-GkGNtW2X.js.map +1 -0
- package/dist/_chunks/audio-visualiser-CIO3yy23.js +138 -0
- package/dist/_chunks/audio-visualiser-CIO3yy23.js.map +1 -0
- package/dist/_chunks/autocomplete.agent-kb0nmr6F.js +371 -0
- package/dist/_chunks/autocomplete.agent-kb0nmr6F.js.map +1 -0
- package/dist/_chunks/avatar-BsV7vRA6.js +113 -0
- package/dist/_chunks/avatar-BsV7vRA6.js.map +1 -0
- package/dist/_chunks/badge--CmSr7ok.js +104 -0
- package/dist/_chunks/badge--CmSr7ok.js.map +1 -0
- package/dist/_chunks/balance-cell-renderer-BQwN51rT.js +997 -0
- package/dist/_chunks/balance-cell-renderer-BQwN51rT.js.map +1 -0
- package/dist/_chunks/breadcrumb-DnO6eHSS.js +292 -0
- package/dist/_chunks/breadcrumb-DnO6eHSS.js.map +1 -0
- package/dist/_chunks/button-CXL8bA8G.js +119 -0
- package/dist/_chunks/button-CXL8bA8G.js.map +1 -0
- package/dist/_chunks/button-group-CI7LFxt3.js +120 -0
- package/dist/_chunks/button-group-CI7LFxt3.js.map +1 -0
- package/dist/_chunks/button.agent-BuGZBktn.js +17 -0
- package/dist/_chunks/button.agent-BuGZBktn.js.map +1 -0
- package/dist/_chunks/calendar-BIXVzhkL.js +998 -0
- package/dist/_chunks/calendar-BIXVzhkL.js.map +1 -0
- package/dist/_chunks/card-n97MNPP2.js +158 -0
- package/dist/_chunks/card-n97MNPP2.js.map +1 -0
- package/dist/_chunks/chart.agent-DkmVXNsI.js +267 -0
- package/dist/_chunks/chart.agent-DkmVXNsI.js.map +1 -0
- package/dist/_chunks/chat-container-SR3UWxbL.js +174 -0
- package/dist/_chunks/chat-container-SR3UWxbL.js.map +1 -0
- package/dist/_chunks/chat-container.agent-Dhw9xCJt.js +22 -0
- package/dist/_chunks/chat-container.agent-Dhw9xCJt.js.map +1 -0
- package/dist/_chunks/chat-input-aphxDjZL.js +221 -0
- package/dist/_chunks/chat-input-aphxDjZL.js.map +1 -0
- package/dist/_chunks/chat-message-CdJSD18D.js +228 -0
- package/dist/_chunks/chat-message-CdJSD18D.js.map +1 -0
- package/dist/_chunks/check-DPdL_Sm7.js +12 -0
- package/dist/_chunks/check-DPdL_Sm7.js.map +1 -0
- package/dist/_chunks/checkbox-CfiZ0FZc.js +116 -0
- package/dist/_chunks/checkbox-CfiZ0FZc.js.map +1 -0
- package/dist/_chunks/checkbox-group-D1aqVI0-.js +145 -0
- package/dist/_chunks/checkbox-group-D1aqVI0-.js.map +1 -0
- package/dist/_chunks/chevron-down-BX_NP2Yh.js +12 -0
- package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +1 -0
- package/dist/_chunks/chevron-left-CX1jqD2M.js +12 -0
- package/dist/_chunks/chevron-left-CX1jqD2M.js.map +1 -0
- package/dist/_chunks/chevron-right-BrpYejk0.js +12 -0
- package/dist/_chunks/chevron-right-BrpYejk0.js.map +1 -0
- package/dist/_chunks/chevron-up-zOEDrmBB.js +12 -0
- package/dist/_chunks/chevron-up-zOEDrmBB.js.map +1 -0
- package/dist/_chunks/chevrons-right-d9MwesPG.js +26 -0
- package/dist/_chunks/chevrons-right-d9MwesPG.js.map +1 -0
- package/dist/_chunks/circle-BkqTgYmt.js +12 -0
- package/dist/_chunks/circle-BkqTgYmt.js.map +1 -0
- package/dist/_chunks/circle-alert-ChA9opNA.js +16 -0
- package/dist/_chunks/circle-alert-ChA9opNA.js.map +1 -0
- package/dist/_chunks/circle-check-9AeSgJD_.js +15 -0
- package/dist/_chunks/circle-check-9AeSgJD_.js.map +1 -0
- package/dist/_chunks/circle-x-Du2CmjaU.js +16 -0
- package/dist/_chunks/circle-x-Du2CmjaU.js.map +1 -0
- package/dist/_chunks/clock-21AGPWJ5.js +15 -0
- package/dist/_chunks/clock-21AGPWJ5.js.map +1 -0
- package/dist/_chunks/collapsible-jBFm7Ah8.js +66 -0
- package/dist/_chunks/collapsible-jBFm7Ah8.js.map +1 -0
- package/dist/_chunks/color-picker-CiotzQJF.js +554 -0
- package/dist/_chunks/color-picker-CiotzQJF.js.map +1 -0
- package/dist/_chunks/combobox.agent-B6RwDSct.js +349 -0
- package/dist/_chunks/combobox.agent-B6RwDSct.js.map +1 -0
- package/dist/_chunks/command-palette.agent-B87_OkmC.js +350 -0
- package/dist/_chunks/command-palette.agent-B87_OkmC.js.map +1 -0
- package/dist/_chunks/compose-refs-C0k0tdqF.js +10 -0
- package/dist/_chunks/compose-refs-C0k0tdqF.js.map +1 -0
- package/dist/_chunks/copy-B00HK7tj.js +15 -0
- package/dist/_chunks/copy-B00HK7tj.js.map +1 -0
- package/dist/_chunks/createLucideIcon-CrFbzy84.js +117 -0
- package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +1 -0
- package/dist/_chunks/date-picker-CdPuI3dK.js +1726 -0
- package/dist/_chunks/date-picker-CdPuI3dK.js.map +1 -0
- package/dist/_chunks/date-range-picker-DfK4cjln.js +183 -0
- package/dist/_chunks/date-range-picker-DfK4cjln.js.map +1 -0
- package/dist/_chunks/date-time-picker-CX_FMsLG.js +202 -0
- package/dist/_chunks/date-time-picker-CX_FMsLG.js.map +1 -0
- package/dist/_chunks/description-list-C5UPZgX6.js +187 -0
- package/dist/_chunks/description-list-C5UPZgX6.js.map +1 -0
- package/dist/_chunks/dialog.agent-B276rAQF.js +147 -0
- package/dist/_chunks/dialog.agent-B276rAQF.js.map +1 -0
- package/dist/_chunks/dropdown-menu-CJKvK7VG.js +210 -0
- package/dist/_chunks/dropdown-menu-CJKvK7VG.js.map +1 -0
- package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js +17 -0
- package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js.map +1 -0
- package/dist/_chunks/ellipsis-rgGdiK_9.js +16 -0
- package/dist/_chunks/ellipsis-rgGdiK_9.js.map +1 -0
- package/dist/_chunks/empty-state-DiG7vYBM.js +303 -0
- package/dist/_chunks/empty-state-DiG7vYBM.js.map +1 -0
- package/dist/_chunks/eye-off-xEXDAh5z.js +29 -0
- package/dist/_chunks/eye-off-xEXDAh5z.js.map +1 -0
- package/dist/_chunks/file-text-DSNuv2B8.js +24 -0
- package/dist/_chunks/file-text-DSNuv2B8.js.map +1 -0
- package/dist/_chunks/file-upload.agent-BMow5yDY.js +649 -0
- package/dist/_chunks/file-upload.agent-BMow5yDY.js.map +1 -0
- package/dist/_chunks/flag-ChP784EM.js +635 -0
- package/dist/_chunks/flag-ChP784EM.js.map +1 -0
- package/dist/_chunks/floating-action-button-BM9ib-Wf.js +95 -0
- package/dist/_chunks/floating-action-button-BM9ib-Wf.js.map +1 -0
- package/dist/_chunks/form-field-B4bwrccN.js +121 -0
- package/dist/_chunks/form-field-B4bwrccN.js.map +1 -0
- package/dist/_chunks/form-field-context-94LwgYTQ.js +19 -0
- package/dist/_chunks/form-field-context-94LwgYTQ.js.map +1 -0
- package/dist/_chunks/freemium-paywall-DVyNsQHS.js +197 -0
- package/dist/_chunks/freemium-paywall-DVyNsQHS.js.map +1 -0
- package/dist/_chunks/globe-BkEFMNSg.js +16 -0
- package/dist/_chunks/globe-BkEFMNSg.js.map +1 -0
- package/dist/_chunks/group-options-BvKhQ3xb.js +16 -0
- package/dist/_chunks/group-options-BvKhQ3xb.js.map +1 -0
- package/dist/_chunks/header-BpKaSL_v.js +310 -0
- package/dist/_chunks/header-BpKaSL_v.js.map +1 -0
- package/dist/_chunks/icon-button-C1vpylg3.js +45 -0
- package/dist/_chunks/icon-button-C1vpylg3.js.map +1 -0
- package/dist/_chunks/icon-button-group-tERESY-n.js +204 -0
- package/dist/_chunks/icon-button-group-tERESY-n.js.map +1 -0
- package/dist/_chunks/index-4xgbg-sn.js +317 -0
- package/dist/_chunks/index-4xgbg-sn.js.map +1 -0
- package/dist/_chunks/index-CJE9uQmb.js +646 -0
- package/dist/_chunks/index-CJE9uQmb.js.map +1 -0
- package/dist/_chunks/index-CeY1nNvd.js +2853 -0
- package/dist/_chunks/index-CeY1nNvd.js.map +1 -0
- package/dist/_chunks/index-D2ZczOXr.js +48 -0
- package/dist/_chunks/index-D2ZczOXr.js.map +1 -0
- package/dist/_chunks/info-B9XNKn05.js +16 -0
- package/dist/_chunks/info-B9XNKn05.js.map +1 -0
- package/dist/_chunks/input-surface-D5OMCB1W.js +32 -0
- package/dist/_chunks/input-surface-D5OMCB1W.js.map +1 -0
- package/dist/_chunks/isSameDay-ecuM8PBB.js +39 -0
- package/dist/_chunks/isSameDay-ecuM8PBB.js.map +1 -0
- package/dist/_chunks/isSameMonth-5wNF2f4I.js +1307 -0
- package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +1 -0
- package/dist/_chunks/kbd-0iPlQjgC.js +220 -0
- package/dist/_chunks/kbd-0iPlQjgC.js.map +1 -0
- package/dist/_chunks/key-value-pair--Je59tAF.js +75 -0
- package/dist/_chunks/key-value-pair--Je59tAF.js.map +1 -0
- package/dist/_chunks/leo-sidebar-9A9AWBxX.js +755 -0
- package/dist/_chunks/leo-sidebar-9A9AWBxX.js.map +1 -0
- package/dist/_chunks/list-n8vI8Yvn.js +356 -0
- package/dist/_chunks/list-n8vI8Yvn.js.map +1 -0
- package/dist/_chunks/log-out-616hnn2-.js +16 -0
- package/dist/_chunks/log-out-616hnn2-.js.map +1 -0
- package/dist/_chunks/logo-BlIdYz3n.js +140 -0
- package/dist/_chunks/logo-BlIdYz3n.js.map +1 -0
- package/dist/_chunks/mail-C8irm52s.js +15 -0
- package/dist/_chunks/mail-C8irm52s.js.map +1 -0
- package/dist/_chunks/message-card-g5VS5Q80.js +275 -0
- package/dist/_chunks/message-card-g5VS5Q80.js.map +1 -0
- package/dist/_chunks/message-tray-CAk-iibU.js +302 -0
- package/dist/_chunks/message-tray-CAk-iibU.js.map +1 -0
- package/dist/_chunks/multi-select.agent-Cf4pU636.js +449 -0
- package/dist/_chunks/multi-select.agent-Cf4pU636.js.map +1 -0
- package/dist/_chunks/navigation-menu-DBDsAmXc.js +208 -0
- package/dist/_chunks/navigation-menu-DBDsAmXc.js.map +1 -0
- package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js +7 -0
- package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +1 -0
- package/dist/_chunks/notification-card-CQxJporb.js +255 -0
- package/dist/_chunks/notification-card-CQxJporb.js.map +1 -0
- package/dist/_chunks/notification-tray-CNWPuPZp.js +324 -0
- package/dist/_chunks/notification-tray-CNWPuPZp.js.map +1 -0
- package/dist/_chunks/number-input-B1Th0DdC.js +248 -0
- package/dist/_chunks/number-input-B1Th0DdC.js.map +1 -0
- package/dist/_chunks/otp-input-CmoBuZ4K.js +188 -0
- package/dist/_chunks/otp-input-CmoBuZ4K.js.map +1 -0
- package/dist/_chunks/pagination.agent-B5KLDCMN.js +379 -0
- package/dist/_chunks/pagination.agent-B5KLDCMN.js.map +1 -0
- package/dist/_chunks/password-input-DnjNh-hQ.js +193 -0
- package/dist/_chunks/password-input-DnjNh-hQ.js.map +1 -0
- package/dist/_chunks/patient-shell-BNrTtcbu.js +193 -0
- package/dist/_chunks/patient-shell-BNrTtcbu.js.map +1 -0
- package/dist/_chunks/payment-form-Cf7U6r5L.js +579 -0
- package/dist/_chunks/payment-form-Cf7U6r5L.js.map +1 -0
- package/dist/_chunks/payment-form.agent-BkEnRerR.js +26 -0
- package/dist/_chunks/payment-form.agent-BkEnRerR.js.map +1 -0
- package/dist/_chunks/pdf-viewer.agent-DXjgDItg.js +858 -0
- package/dist/_chunks/pdf-viewer.agent-DXjgDItg.js.map +1 -0
- package/dist/_chunks/phone-input-C2dtIuxW.js +427 -0
- package/dist/_chunks/phone-input-C2dtIuxW.js.map +1 -0
- package/dist/_chunks/plus-CYKNmfuA.js +15 -0
- package/dist/_chunks/plus-CYKNmfuA.js.map +1 -0
- package/dist/_chunks/popover-D1woU9mP.js +222 -0
- package/dist/_chunks/popover-D1woU9mP.js.map +1 -0
- package/dist/_chunks/popover.agent-C0qOx9WT.js +13 -0
- package/dist/_chunks/popover.agent-C0qOx9WT.js.map +1 -0
- package/dist/_chunks/printer-CeVEWfQq.js +22 -0
- package/dist/_chunks/printer-CeVEWfQq.js.map +1 -0
- package/dist/_chunks/privacy-lock-Bk5mIqMq.js +130 -0
- package/dist/_chunks/privacy-lock-Bk5mIqMq.js.map +1 -0
- package/dist/_chunks/progress-DL3-izuO.js +252 -0
- package/dist/_chunks/progress-DL3-izuO.js.map +1 -0
- package/dist/_chunks/progress.agent-CXkHURjX.js +22 -0
- package/dist/_chunks/progress.agent-CXkHURjX.js.map +1 -0
- package/dist/_chunks/purify.es-DpIUMBYC.js +561 -0
- package/dist/_chunks/purify.es-DpIUMBYC.js.map +1 -0
- package/dist/_chunks/radio-group-CXN9qNPe.js +185 -0
- package/dist/_chunks/radio-group-CXN9qNPe.js.map +1 -0
- package/dist/_chunks/react-day-picker-DQKDiJ37.js +1824 -0
- package/dist/_chunks/react-day-picker-DQKDiJ37.js.map +1 -0
- package/dist/_chunks/registry-C9nwlNyL.js +21 -0
- package/dist/_chunks/registry-C9nwlNyL.js.map +1 -0
- package/dist/_chunks/resizable.agent-DVk_jJur.js +435 -0
- package/dist/_chunks/resizable.agent-DVk_jJur.js.map +1 -0
- package/dist/_chunks/rich-text-editor.agent-BOjF4Xao.js +835 -0
- package/dist/_chunks/rich-text-editor.agent-BOjF4Xao.js.map +1 -0
- package/dist/_chunks/safe-image-src-DstKgCo7.js +14 -0
- package/dist/_chunks/safe-image-src-DstKgCo7.js.map +1 -0
- package/dist/_chunks/scroll-area-DXn-YWHY.js +144 -0
- package/dist/_chunks/scroll-area-DXn-YWHY.js.map +1 -0
- package/dist/_chunks/search-BonnQsHv.js +15 -0
- package/dist/_chunks/search-BonnQsHv.js.map +1 -0
- package/dist/_chunks/search-bar-DgSOAajC.js +396 -0
- package/dist/_chunks/search-bar-DgSOAajC.js.map +1 -0
- package/dist/_chunks/search-input-D4tC_Prn.js +197 -0
- package/dist/_chunks/search-input-D4tC_Prn.js.map +1 -0
- package/dist/_chunks/select-B4m4upMg.js +320 -0
- package/dist/_chunks/select-B4m4upMg.js.map +1 -0
- package/dist/_chunks/send-CySZIRPJ.js +21 -0
- package/dist/_chunks/send-CySZIRPJ.js.map +1 -0
- package/dist/_chunks/separator-DExI4amU.js +58 -0
- package/dist/_chunks/separator-DExI4amU.js.map +1 -0
- package/dist/_chunks/sheet-D6XOx0fK.js +188 -0
- package/dist/_chunks/sheet-D6XOx0fK.js.map +1 -0
- package/dist/_chunks/sheet.agent-DwQlBqK9.js +13 -0
- package/dist/_chunks/sheet.agent-DwQlBqK9.js.map +1 -0
- package/dist/_chunks/sidebar-r645O-k9.js +1076 -0
- package/dist/_chunks/sidebar-r645O-k9.js.map +1 -0
- package/dist/_chunks/sidebar.agent-B0fnH9CC.js +17 -0
- package/dist/_chunks/sidebar.agent-B0fnH9CC.js.map +1 -0
- package/dist/_chunks/sign-in-with-alfadocs-button-Gu7Qk2gq.js +88 -0
- package/dist/_chunks/sign-in-with-alfadocs-button-Gu7Qk2gq.js.map +1 -0
- package/dist/_chunks/signature-capture.agent-L_1_-zVR.js +485 -0
- package/dist/_chunks/signature-capture.agent-L_1_-zVR.js.map +1 -0
- package/dist/_chunks/skeleton-vbTWUntB.js +95 -0
- package/dist/_chunks/skeleton-vbTWUntB.js.map +1 -0
- package/dist/_chunks/slider-B3DBwmcm.js +273 -0
- package/dist/_chunks/slider-B3DBwmcm.js.map +1 -0
- package/dist/_chunks/slot-grid-DL_Tuj0p.js +491 -0
- package/dist/_chunks/slot-grid-DL_Tuj0p.js.map +1 -0
- package/dist/_chunks/sparkline.agent-BDTXzTy9.js +238 -0
- package/dist/_chunks/sparkline.agent-BDTXzTy9.js.map +1 -0
- package/dist/_chunks/spinner-77xUGpuX.js +163 -0
- package/dist/_chunks/spinner-77xUGpuX.js.map +1 -0
- package/dist/_chunks/square-CZoGU14v.js +14 -0
- package/dist/_chunks/square-CZoGU14v.js.map +1 -0
- package/dist/_chunks/square-check-big-Jr-0202D.js +18 -0
- package/dist/_chunks/square-check-big-Jr-0202D.js.map +1 -0
- package/dist/_chunks/stat-CrumvZWf.js +208 -0
- package/dist/_chunks/stat-CrumvZWf.js.map +1 -0
- package/dist/_chunks/stepper-C-sIpRRU.js +7 -0
- package/dist/_chunks/stepper-C-sIpRRU.js.map +1 -0
- package/dist/_chunks/stepper-accordion-BkvqQWPI.js +232 -0
- package/dist/_chunks/stepper-accordion-BkvqQWPI.js.map +1 -0
- package/dist/_chunks/stepper-calendar-BQMjrwzo.js +569 -0
- package/dist/_chunks/stepper-calendar-BQMjrwzo.js.map +1 -0
- package/dist/_chunks/stepper-progress-Bwfl-0rV.js +128 -0
- package/dist/_chunks/stepper-progress-Bwfl-0rV.js.map +1 -0
- package/dist/_chunks/streaming-text-Cu9YQe_1.js +104 -0
- package/dist/_chunks/streaming-text-Cu9YQe_1.js.map +1 -0
- package/dist/_chunks/suggestion-chip-XkxDJiPW.js +157 -0
- package/dist/_chunks/suggestion-chip-XkxDJiPW.js.map +1 -0
- package/dist/_chunks/switch-DyC0ThNT.js +137 -0
- package/dist/_chunks/switch-DyC0ThNT.js.map +1 -0
- package/dist/_chunks/tabs.agent-FsGU3sZL.js +347 -0
- package/dist/_chunks/tabs.agent-FsGU3sZL.js.map +1 -0
- package/dist/_chunks/tag-BucAvfTX.js +194 -0
- package/dist/_chunks/tag-BucAvfTX.js.map +1 -0
- package/dist/_chunks/task-card-uxjApfcg.js +112 -0
- package/dist/_chunks/task-card-uxjApfcg.js.map +1 -0
- package/dist/_chunks/task-tray-BdfM3p8N.js +99 -0
- package/dist/_chunks/task-tray-BdfM3p8N.js.map +1 -0
- package/dist/_chunks/text-area-CKxZ7cS3.js +152 -0
- package/dist/_chunks/text-area-CKxZ7cS3.js.map +1 -0
- package/dist/_chunks/text-input-D16CcMlL.js +187 -0
- package/dist/_chunks/text-input-D16CcMlL.js.map +1 -0
- package/dist/_chunks/theme-root-vapFjsnt.js +18 -0
- package/dist/_chunks/theme-root-vapFjsnt.js.map +1 -0
- package/dist/_chunks/time-picker-BapZq0OY.js +321 -0
- package/dist/_chunks/time-picker-BapZq0OY.js.map +1 -0
- package/dist/_chunks/timeline-D3VOf4RT.js +219 -0
- package/dist/_chunks/timeline-D3VOf4RT.js.map +1 -0
- package/dist/_chunks/timestamp-BLM-jjdw.js +108 -0
- package/dist/_chunks/timestamp-BLM-jjdw.js.map +1 -0
- package/dist/_chunks/toast-DSCqnDRl.js +884 -0
- package/dist/_chunks/toast-DSCqnDRl.js.map +1 -0
- package/dist/_chunks/tooltip-DF6WjD1r.js +97 -0
- package/dist/_chunks/tooltip-DF6WjD1r.js.map +1 -0
- package/dist/_chunks/tooth-scheme.agent-CFKl3iQr.js +762 -0
- package/dist/_chunks/tooth-scheme.agent-CFKl3iQr.js.map +1 -0
- package/dist/_chunks/transcript-panel-aI14fHYA.js +265 -0
- package/dist/_chunks/transcript-panel-aI14fHYA.js.map +1 -0
- package/dist/_chunks/triangle-alert-CBPUIzQo.js +22 -0
- package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +1 -0
- package/dist/_chunks/typing-indicator-BTVDEpnd.js +81 -0
- package/dist/_chunks/typing-indicator-BTVDEpnd.js.map +1 -0
- package/dist/_chunks/use-debounced-callback-BisrB-Fq.js +28 -0
- package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +1 -0
- package/dist/_chunks/use-direction-D6rvvG9G.js +40 -0
- package/dist/_chunks/use-direction-D6rvvG9G.js.map +1 -0
- package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js +15 -0
- package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +1 -0
- package/dist/_chunks/use-theme-BMUhembX.js +148 -0
- package/dist/_chunks/use-theme-BMUhembX.js.map +1 -0
- package/dist/_chunks/user-CPxpqFjJ.js +15 -0
- package/dist/_chunks/user-CPxpqFjJ.js.map +1 -0
- package/dist/_chunks/warning-stack-Cyf_81SL.js +179 -0
- package/dist/_chunks/warning-stack-Cyf_81SL.js.map +1 -0
- package/dist/_chunks/workflow-map-Uf-hHAO3.js +1337 -0
- package/dist/_chunks/workflow-map-Uf-hHAO3.js.map +1 -0
- package/dist/_chunks/x-CCcI3eJp.js +15 -0
- package/dist/_chunks/x-CCcI3eJp.js.map +1 -0
- package/dist/agent/index.d.ts +5 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/registry.d.ts +26 -0
- package/dist/agent/registry.d.ts.map +1 -0
- package/dist/agent/types.d.ts +148 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent-catalog.json +813 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts +12 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +1 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts +14 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +1 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts +13 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +1 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts +12 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +1 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts +12 -0
- package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +1 -0
- package/dist/brand/logo-asset/index.d.ts +6 -0
- package/dist/brand/logo-asset/index.d.ts.map +1 -0
- package/dist/components/_shared/calendar-chevron.d.ts +4 -0
- package/dist/components/_shared/calendar-chevron.d.ts.map +1 -0
- package/dist/components/_shared/compose-refs.d.ts +3 -0
- package/dist/components/_shared/compose-refs.d.ts.map +1 -0
- package/dist/components/_shared/date-locale.d.ts +5 -0
- package/dist/components/_shared/date-locale.d.ts.map +1 -0
- package/dist/components/_shared/date-picker-variants.d.ts +10 -0
- package/dist/components/_shared/date-picker-variants.d.ts.map +1 -0
- package/dist/components/_shared/date-utils.d.ts +3 -0
- package/dist/components/_shared/date-utils.d.ts.map +1 -0
- package/dist/components/_shared/group-options.d.ts +6 -0
- package/dist/components/_shared/group-options.d.ts.map +1 -0
- package/dist/components/_shared/index.d.ts +15 -0
- package/dist/components/_shared/index.d.ts.map +1 -0
- package/dist/components/_shared/input-surface.d.ts +23 -0
- package/dist/components/_shared/input-surface.d.ts.map +1 -0
- package/dist/components/_shared/normalize-diacritics.d.ts +2 -0
- package/dist/components/_shared/normalize-diacritics.d.ts.map +1 -0
- package/dist/components/_shared/option.d.ts +8 -0
- package/dist/components/_shared/option.d.ts.map +1 -0
- package/dist/components/_shared/safe-html.d.ts +30 -0
- package/dist/components/_shared/safe-html.d.ts.map +1 -0
- package/dist/components/_shared/safe-image-src.d.ts +3 -0
- package/dist/components/_shared/safe-image-src.d.ts.map +1 -0
- package/dist/components/_shared/stepper.d.ts +17 -0
- package/dist/components/_shared/stepper.d.ts.map +1 -0
- package/dist/components/_shared/time.d.ts +6 -0
- package/dist/components/_shared/time.d.ts.map +1 -0
- package/dist/components/_shared/use-debounced-callback.d.ts +6 -0
- package/dist/components/_shared/use-debounced-callback.d.ts.map +1 -0
- package/dist/components/_shared/use-direction.d.ts +19 -0
- package/dist/components/_shared/use-direction.d.ts.map +1 -0
- package/dist/components/accordion/accordion.agent.d.ts +3 -0
- package/dist/components/accordion/accordion.agent.d.ts.map +1 -0
- package/dist/components/accordion/accordion.d.ts +41 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/index.d.ts +4 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/index.js +10 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/agenda-card/agenda-card.d.ts +36 -0
- package/dist/components/agenda-card/agenda-card.d.ts.map +1 -0
- package/dist/components/agenda-card/index.d.ts +3 -0
- package/dist/components/agenda-card/index.d.ts.map +1 -0
- package/dist/components/agenda-card/index.js +6 -0
- package/dist/components/agenda-card/index.js.map +1 -0
- package/dist/components/agenda-tray/agenda-tray.d.ts +24 -0
- package/dist/components/agenda-tray/agenda-tray.d.ts.map +1 -0
- package/dist/components/agenda-tray/index.d.ts +3 -0
- package/dist/components/agenda-tray/index.d.ts.map +1 -0
- package/dist/components/agenda-tray/index.js +5 -0
- package/dist/components/agenda-tray/index.js.map +1 -0
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +49 -0
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -0
- package/dist/components/ai-prompt-input/index.d.ts +3 -0
- package/dist/components/ai-prompt-input/index.d.ts.map +1 -0
- package/dist/components/ai-prompt-input/index.js +5 -0
- package/dist/components/ai-prompt-input/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts +23 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +5 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/app-frame/app-frame.d.ts +33 -0
- package/dist/components/app-frame/app-frame.d.ts.map +1 -0
- package/dist/components/app-frame/index.d.ts +3 -0
- package/dist/components/app-frame/index.d.ts.map +1 -0
- package/dist/components/app-frame/index.js +5 -0
- package/dist/components/app-frame/index.js.map +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +16 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio/index.d.ts +4 -0
- package/dist/components/aspect-ratio/index.d.ts.map +1 -0
- package/dist/components/aspect-ratio/index.js +7 -0
- package/dist/components/aspect-ratio/index.js.map +1 -0
- package/dist/components/audio-recorder/audio-recorder.d.ts +26 -0
- package/dist/components/audio-recorder/audio-recorder.d.ts.map +1 -0
- package/dist/components/audio-recorder/index.d.ts +3 -0
- package/dist/components/audio-recorder/index.d.ts.map +1 -0
- package/dist/components/audio-recorder/index.js +5 -0
- package/dist/components/audio-recorder/index.js.map +1 -0
- package/dist/components/audio-visualiser/audio-visualiser.d.ts +18 -0
- package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +1 -0
- package/dist/components/audio-visualiser/index.d.ts +3 -0
- package/dist/components/audio-visualiser/index.d.ts.map +1 -0
- package/dist/components/audio-visualiser/index.js +5 -0
- package/dist/components/audio-visualiser/index.js.map +1 -0
- package/dist/components/autocomplete/autocomplete.agent.d.ts +3 -0
- package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -0
- package/dist/components/autocomplete/autocomplete.d.ts +41 -0
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/components/autocomplete/index.d.ts +4 -0
- package/dist/components/autocomplete/index.d.ts.map +1 -0
- package/dist/components/autocomplete/index.js +7 -0
- package/dist/components/autocomplete/index.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +29 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +7 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.d.ts +20 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +5 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +51 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.js +10 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/button/button.agent.d.ts +3 -0
- package/dist/components/button/button.agent.d.ts.map +1 -0
- package/dist/components/button/button.d.ts +21 -0
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/button/icon-button.d.ts +29 -0
- package/dist/components/button/icon-button.d.ts.map +1 -0
- package/dist/components/button/index.d.ts +4 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +9 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button-group/button-group.d.ts +29 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.d.ts.map +1 -0
- package/dist/components/button-group/index.js +5 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/calendar/calendar.agent.d.ts +4 -0
- package/dist/components/calendar/calendar.agent.d.ts.map +1 -0
- package/dist/components/calendar/calendar.d.ts +226 -0
- package/dist/components/calendar/calendar.d.ts.map +1 -0
- package/dist/components/calendar/contrast-warning.d.ts +20 -0
- package/dist/components/calendar/contrast-warning.d.ts.map +1 -0
- package/dist/components/calendar/index.d.ts +4 -0
- package/dist/components/calendar/index.d.ts.map +1 -0
- package/dist/components/calendar/index.js +7 -0
- package/dist/components/calendar/index.js.map +1 -0
- package/dist/components/card/card.d.ts +29 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +5 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/chart/chart.agent.d.ts +4 -0
- package/dist/components/chart/chart.agent.d.ts.map +1 -0
- package/dist/components/chart/chart.d.ts +45 -0
- package/dist/components/chart/chart.d.ts.map +1 -0
- package/dist/components/chart/index.d.ts +4 -0
- package/dist/components/chart/index.d.ts.map +1 -0
- package/dist/components/chart/index.js +7 -0
- package/dist/components/chart/index.js.map +1 -0
- package/dist/components/chat-container/chat-container.agent.d.ts +4 -0
- package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -0
- package/dist/components/chat-container/chat-container.d.ts +36 -0
- package/dist/components/chat-container/chat-container.d.ts.map +1 -0
- package/dist/components/chat-container/index.d.ts +4 -0
- package/dist/components/chat-container/index.d.ts.map +1 -0
- package/dist/components/chat-container/index.js +7 -0
- package/dist/components/chat-container/index.js.map +1 -0
- package/dist/components/chat-input/chat-input.d.ts +32 -0
- package/dist/components/chat-input/chat-input.d.ts.map +1 -0
- package/dist/components/chat-input/index.d.ts +3 -0
- package/dist/components/chat-input/index.d.ts.map +1 -0
- package/dist/components/chat-input/index.js +5 -0
- package/dist/components/chat-input/index.js.map +1 -0
- package/dist/components/chat-message/chat-message.d.ts +36 -0
- package/dist/components/chat-message/chat-message.d.ts.map +1 -0
- package/dist/components/chat-message/index.d.ts +3 -0
- package/dist/components/chat-message/index.d.ts.map +1 -0
- package/dist/components/chat-message/index.js +5 -0
- package/dist/components/chat-message/index.js.map +1 -0
- package/dist/components/checkbox/checkbox-group-context.d.ts +9 -0
- package/dist/components/checkbox/checkbox-group-context.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +18 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/index.d.ts +4 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +7 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts +30 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -0
- package/dist/components/checkbox-group/index.d.ts +3 -0
- package/dist/components/checkbox-group/index.d.ts.map +1 -0
- package/dist/components/checkbox-group/index.js +5 -0
- package/dist/components/checkbox-group/index.js.map +1 -0
- package/dist/components/collapsible/collapsible.d.ts +18 -0
- package/dist/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible/index.d.ts +3 -0
- package/dist/components/collapsible/index.d.ts.map +1 -0
- package/dist/components/collapsible/index.js +7 -0
- package/dist/components/collapsible/index.js.map +1 -0
- package/dist/components/color-picker/color-picker.d.ts +18 -0
- package/dist/components/color-picker/color-picker.d.ts.map +1 -0
- package/dist/components/color-picker/color-utils.d.ts +32 -0
- package/dist/components/color-picker/color-utils.d.ts.map +1 -0
- package/dist/components/color-picker/index.d.ts +6 -0
- package/dist/components/color-picker/index.d.ts.map +1 -0
- package/dist/components/color-picker/index.js +7 -0
- package/dist/components/color-picker/index.js.map +1 -0
- package/dist/components/color-picker/palettes.d.ts +16 -0
- package/dist/components/color-picker/palettes.d.ts.map +1 -0
- package/dist/components/combobox/combobox.agent.d.ts +3 -0
- package/dist/components/combobox/combobox.agent.d.ts.map +1 -0
- package/dist/components/combobox/combobox.d.ts +46 -0
- package/dist/components/combobox/combobox.d.ts.map +1 -0
- package/dist/components/combobox/index.d.ts +4 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/combobox/index.js +10 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/command-palette/command-palette.agent.d.ts +3 -0
- package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -0
- package/dist/components/command-palette/command-palette.d.ts +81 -0
- package/dist/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/components/command-palette/index.d.ts +4 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/command-palette/index.js +17 -0
- package/dist/components/command-palette/index.js.map +1 -0
- package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +23 -0
- package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts +18 -0
- package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts +11 -0
- package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts +13 -0
- package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts +10 -0
- package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts +13 -0
- package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts +7 -0
- package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts +6 -0
- package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts +18 -0
- package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts +7 -0
- package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +1 -0
- package/dist/components/data-table/data-table.agent.d.ts +4 -0
- package/dist/components/data-table/data-table.agent.d.ts.map +1 -0
- package/dist/components/data-table/data-table.d.ts +78 -0
- package/dist/components/data-table/data-table.d.ts.map +1 -0
- package/dist/components/data-table/hooks/use-total-row.d.ts +16 -0
- package/dist/components/data-table/hooks/use-total-row.d.ts.map +1 -0
- package/dist/components/data-table/index.d.ts +27 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/index.js +19 -0
- package/dist/components/data-table/index.js.map +1 -0
- package/dist/components/data-table/toolbar.d.ts +49 -0
- package/dist/components/data-table/toolbar.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.d.ts +37 -0
- package/dist/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/index.d.ts.map +1 -0
- package/dist/components/date-picker/index.js +5 -0
- package/dist/components/date-picker/index.js.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +42 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/components/date-range-picker/index.d.ts +3 -0
- package/dist/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/components/date-range-picker/index.js +5 -0
- package/dist/components/date-range-picker/index.js.map +1 -0
- package/dist/components/date-time-picker/date-time-picker.d.ts +35 -0
- package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -0
- package/dist/components/date-time-picker/index.d.ts +3 -0
- package/dist/components/date-time-picker/index.d.ts.map +1 -0
- package/dist/components/date-time-picker/index.js +5 -0
- package/dist/components/date-time-picker/index.js.map +1 -0
- package/dist/components/description-list/description-list.d.ts +25 -0
- package/dist/components/description-list/description-list.d.ts.map +1 -0
- package/dist/components/description-list/index.d.ts +3 -0
- package/dist/components/description-list/index.d.ts.map +1 -0
- package/dist/components/description-list/index.js +5 -0
- package/dist/components/description-list/index.js.map +1 -0
- package/dist/components/dialog/dialog.agent.d.ts +10 -0
- package/dist/components/dialog/dialog.agent.d.ts.map +1 -0
- package/dist/components/dialog/dialog.d.ts +34 -0
- package/dist/components/dialog/dialog.d.ts.map +1 -0
- package/dist/components/dialog/index.d.ts +4 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +6 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts +3 -0
- package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +54 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +4 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.js +7 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.d.ts +30 -0
- package/dist/components/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state/index.d.ts +3 -0
- package/dist/components/empty-state/index.d.ts.map +1 -0
- package/dist/components/empty-state/index.js +5 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/file-upload/file-upload.agent.d.ts +3 -0
- package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -0
- package/dist/components/file-upload/file-upload.d.ts +33 -0
- package/dist/components/file-upload/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload/index.d.ts +4 -0
- package/dist/components/file-upload/index.d.ts.map +1 -0
- package/dist/components/file-upload/index.js +6 -0
- package/dist/components/file-upload/index.js.map +1 -0
- package/dist/components/flag/flag.d.ts +29 -0
- package/dist/components/flag/flag.d.ts.map +1 -0
- package/dist/components/flag/index.d.ts +3 -0
- package/dist/components/flag/index.d.ts.map +1 -0
- package/dist/components/flag/index.js +7 -0
- package/dist/components/flag/index.js.map +1 -0
- package/dist/components/floating-action-button/floating-action-button.d.ts +24 -0
- package/dist/components/floating-action-button/floating-action-button.d.ts.map +1 -0
- package/dist/components/floating-action-button/index.d.ts +2 -0
- package/dist/components/floating-action-button/index.d.ts.map +1 -0
- package/dist/components/floating-action-button/index.js +5 -0
- package/dist/components/floating-action-button/index.js.map +1 -0
- package/dist/components/form-field/form-field-context.d.ts +12 -0
- package/dist/components/form-field/form-field-context.d.ts.map +1 -0
- package/dist/components/form-field/form-field.d.ts +24 -0
- package/dist/components/form-field/form-field.d.ts.map +1 -0
- package/dist/components/form-field/index.d.ts +4 -0
- package/dist/components/form-field/index.d.ts.map +1 -0
- package/dist/components/form-field/index.js +8 -0
- package/dist/components/form-field/index.js.map +1 -0
- package/dist/components/freemium-paywall/freemium-paywall.d.ts +45 -0
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -0
- package/dist/components/freemium-paywall/index.d.ts +3 -0
- package/dist/components/freemium-paywall/index.d.ts.map +1 -0
- package/dist/components/freemium-paywall/index.js +5 -0
- package/dist/components/freemium-paywall/index.js.map +1 -0
- package/dist/components/header/header.d.ts +39 -0
- package/dist/components/header/header.d.ts.map +1 -0
- package/dist/components/header/index.d.ts +3 -0
- package/dist/components/header/index.d.ts.map +1 -0
- package/dist/components/header/index.js +12 -0
- package/dist/components/header/index.js.map +1 -0
- package/dist/components/icon-button-group/icon-button-group.d.ts +246 -0
- package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -0
- package/dist/components/icon-button-group/index.d.ts +3 -0
- package/dist/components/icon-button-group/index.d.ts.map +1 -0
- package/dist/components/icon-button-group/index.js +5 -0
- package/dist/components/icon-button-group/index.js.map +1 -0
- package/dist/components/index.d.ts +111 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/kbd/index.d.ts +3 -0
- package/dist/components/kbd/index.d.ts.map +1 -0
- package/dist/components/kbd/index.js +6 -0
- package/dist/components/kbd/index.js.map +1 -0
- package/dist/components/kbd/kbd.d.ts +38 -0
- package/dist/components/kbd/kbd.d.ts.map +1 -0
- package/dist/components/key-value-pair/index.d.ts +3 -0
- package/dist/components/key-value-pair/index.d.ts.map +1 -0
- package/dist/components/key-value-pair/index.js +5 -0
- package/dist/components/key-value-pair/index.js.map +1 -0
- package/dist/components/key-value-pair/key-value-pair.d.ts +21 -0
- package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -0
- package/dist/components/list/index.d.ts +3 -0
- package/dist/components/list/index.d.ts.map +1 -0
- package/dist/components/list/index.js +5 -0
- package/dist/components/list/index.js.map +1 -0
- package/dist/components/list/list.d.ts +42 -0
- package/dist/components/list/list.d.ts.map +1 -0
- package/dist/components/logo/index.d.ts +3 -0
- package/dist/components/logo/index.d.ts.map +1 -0
- package/dist/components/logo/index.js +5 -0
- package/dist/components/logo/index.js.map +1 -0
- package/dist/components/logo/logo.d.ts +35 -0
- package/dist/components/logo/logo.d.ts.map +1 -0
- package/dist/components/message-card/index.d.ts +3 -0
- package/dist/components/message-card/index.d.ts.map +1 -0
- package/dist/components/message-card/index.js +6 -0
- package/dist/components/message-card/index.js.map +1 -0
- package/dist/components/message-card/message-card.d.ts +73 -0
- package/dist/components/message-card/message-card.d.ts.map +1 -0
- package/dist/components/message-tray/index.d.ts +3 -0
- package/dist/components/message-tray/index.d.ts.map +1 -0
- package/dist/components/message-tray/index.js +5 -0
- package/dist/components/message-tray/index.js.map +1 -0
- package/dist/components/message-tray/message-tray.d.ts +40 -0
- package/dist/components/message-tray/message-tray.d.ts.map +1 -0
- package/dist/components/multi-select/index.d.ts +4 -0
- package/dist/components/multi-select/index.d.ts.map +1 -0
- package/dist/components/multi-select/index.js +7 -0
- package/dist/components/multi-select/index.js.map +1 -0
- package/dist/components/multi-select/multi-select.agent.d.ts +3 -0
- package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -0
- package/dist/components/multi-select/multi-select.d.ts +30 -0
- package/dist/components/multi-select/multi-select.d.ts.map +1 -0
- package/dist/components/navigation-menu/index.d.ts +3 -0
- package/dist/components/navigation-menu/index.d.ts.map +1 -0
- package/dist/components/navigation-menu/index.js +13 -0
- package/dist/components/navigation-menu/index.js.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +30 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -0
- package/dist/components/notification-card/index.d.ts +3 -0
- package/dist/components/notification-card/index.d.ts.map +1 -0
- package/dist/components/notification-card/index.js +6 -0
- package/dist/components/notification-card/index.js.map +1 -0
- package/dist/components/notification-card/notification-card.d.ts +62 -0
- package/dist/components/notification-card/notification-card.d.ts.map +1 -0
- package/dist/components/notification-tray/index.d.ts +3 -0
- package/dist/components/notification-tray/index.d.ts.map +1 -0
- package/dist/components/notification-tray/index.js +5 -0
- package/dist/components/notification-tray/index.js.map +1 -0
- package/dist/components/notification-tray/notification-tray.d.ts +38 -0
- package/dist/components/notification-tray/notification-tray.d.ts.map +1 -0
- package/dist/components/number-input/index.d.ts +5 -0
- package/dist/components/number-input/index.d.ts.map +1 -0
- package/dist/components/number-input/index.js +6 -0
- package/dist/components/number-input/index.js.map +1 -0
- package/dist/components/number-input/number-input.d.ts +34 -0
- package/dist/components/number-input/number-input.d.ts.map +1 -0
- package/dist/components/number-input/use-locale-number.d.ts +15 -0
- package/dist/components/number-input/use-locale-number.d.ts.map +1 -0
- package/dist/components/otp-input/index.d.ts +3 -0
- package/dist/components/otp-input/index.d.ts.map +1 -0
- package/dist/components/otp-input/index.js +5 -0
- package/dist/components/otp-input/index.js.map +1 -0
- package/dist/components/otp-input/otp-input.d.ts +13 -0
- package/dist/components/otp-input/otp-input.d.ts.map +1 -0
- package/dist/components/pagination/index.d.ts +4 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pagination/index.js +13 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.agent.d.ts +3 -0
- package/dist/components/pagination/pagination.agent.d.ts.map +1 -0
- package/dist/components/pagination/pagination.d.ts +64 -0
- package/dist/components/pagination/pagination.d.ts.map +1 -0
- package/dist/components/password-input/index.d.ts +3 -0
- package/dist/components/password-input/index.d.ts.map +1 -0
- package/dist/components/password-input/index.js +5 -0
- package/dist/components/password-input/index.js.map +1 -0
- package/dist/components/password-input/password-input.d.ts +22 -0
- package/dist/components/password-input/password-input.d.ts.map +1 -0
- package/dist/components/payment-form/index.d.ts +4 -0
- package/dist/components/payment-form/index.d.ts.map +1 -0
- package/dist/components/payment-form/index.js +12 -0
- package/dist/components/payment-form/index.js.map +1 -0
- package/dist/components/payment-form/payment-form.agent.d.ts +4 -0
- package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -0
- package/dist/components/payment-form/payment-form.d.ts +68 -0
- package/dist/components/payment-form/payment-form.d.ts.map +1 -0
- package/dist/components/pdf-viewer/index.d.ts +4 -0
- package/dist/components/pdf-viewer/index.d.ts.map +1 -0
- package/dist/components/pdf-viewer/index.js +6 -0
- package/dist/components/pdf-viewer/index.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts +4 -0
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts +36 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
- package/dist/components/phone-input/index.d.ts +3 -0
- package/dist/components/phone-input/index.d.ts.map +1 -0
- package/dist/components/phone-input/index.js +8 -0
- package/dist/components/phone-input/index.js.map +1 -0
- package/dist/components/phone-input/phone-input.d.ts +50 -0
- package/dist/components/phone-input/phone-input.d.ts.map +1 -0
- package/dist/components/popover/index.d.ts +4 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +7 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.agent.d.ts +3 -0
- package/dist/components/popover/popover.agent.d.ts.map +1 -0
- package/dist/components/popover/popover.d.ts +37 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/privacy-lock/index.d.ts +3 -0
- package/dist/components/privacy-lock/index.d.ts.map +1 -0
- package/dist/components/privacy-lock/index.js +5 -0
- package/dist/components/privacy-lock/index.js.map +1 -0
- package/dist/components/privacy-lock/privacy-lock.d.ts +35 -0
- package/dist/components/privacy-lock/privacy-lock.d.ts.map +1 -0
- package/dist/components/progress/index.d.ts +4 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/index.js +7 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.agent.d.ts +4 -0
- package/dist/components/progress/progress.agent.d.ts.map +1 -0
- package/dist/components/progress/progress.d.ts +20 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/radio-group/index.d.ts +5 -0
- package/dist/components/radio-group/index.d.ts.map +1 -0
- package/dist/components/radio-group/index.js +6 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group-context.d.ts +7 -0
- package/dist/components/radio-group/radio-group-context.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.d.ts +19 -0
- package/dist/components/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group/radio.d.ts +16 -0
- package/dist/components/radio-group/radio.d.ts.map +1 -0
- package/dist/components/resizable/index.d.ts +6 -0
- package/dist/components/resizable/index.d.ts.map +1 -0
- package/dist/components/resizable/index.js +10 -0
- package/dist/components/resizable/index.js.map +1 -0
- package/dist/components/resizable/resizable-context.d.ts +25 -0
- package/dist/components/resizable/resizable-context.d.ts.map +1 -0
- package/dist/components/resizable/resizable.agent.d.ts +3 -0
- package/dist/components/resizable/resizable.agent.d.ts.map +1 -0
- package/dist/components/resizable/resizable.d.ts +32 -0
- package/dist/components/resizable/resizable.d.ts.map +1 -0
- package/dist/components/rich-text-editor/index.d.ts +4 -0
- package/dist/components/rich-text-editor/index.d.ts.map +1 -0
- package/dist/components/rich-text-editor/index.js +10 -0
- package/dist/components/rich-text-editor/index.js.map +1 -0
- package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts +4 -0
- package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -0
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +45 -0
- package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -0
- package/dist/components/scroll-area/index.d.ts +4 -0
- package/dist/components/scroll-area/index.d.ts.map +1 -0
- package/dist/components/scroll-area/index.js +10 -0
- package/dist/components/scroll-area/index.js.map +1 -0
- package/dist/components/scroll-area/scroll-area.d.ts +29 -0
- package/dist/components/scroll-area/scroll-area.d.ts.map +1 -0
- package/dist/components/search-bar/index.d.ts +3 -0
- package/dist/components/search-bar/index.d.ts.map +1 -0
- package/dist/components/search-bar/index.js +6 -0
- package/dist/components/search-bar/index.js.map +1 -0
- package/dist/components/search-bar/search-bar.d.ts +59 -0
- package/dist/components/search-bar/search-bar.d.ts.map +1 -0
- package/dist/components/search-input/index.d.ts +3 -0
- package/dist/components/search-input/index.d.ts.map +1 -0
- package/dist/components/search-input/index.js +5 -0
- package/dist/components/search-input/index.js.map +1 -0
- package/dist/components/search-input/search-input.d.ts +28 -0
- package/dist/components/search-input/search-input.d.ts.map +1 -0
- package/dist/components/select/index.d.ts +5 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +15 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.d.ts +78 -0
- package/dist/components/select/select.d.ts.map +1 -0
- package/dist/components/separator/index.d.ts +3 -0
- package/dist/components/separator/index.d.ts.map +1 -0
- package/dist/components/separator/index.js +5 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.d.ts +26 -0
- package/dist/components/separator/separator.d.ts.map +1 -0
- package/dist/components/sheet/index.d.ts +4 -0
- package/dist/components/sheet/index.d.ts.map +1 -0
- package/dist/components/sheet/index.js +7 -0
- package/dist/components/sheet/index.js.map +1 -0
- package/dist/components/sheet/sheet.agent.d.ts +3 -0
- package/dist/components/sheet/sheet.agent.d.ts.map +1 -0
- package/dist/components/sheet/sheet.d.ts +34 -0
- package/dist/components/sheet/sheet.d.ts.map +1 -0
- package/dist/components/sidebar/index.d.ts +4 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +25 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/sidebar/sidebar.agent.d.ts +3 -0
- package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.d.ts +174 -0
- package/dist/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/sign-in-with-alfadocs-button/index.d.ts +3 -0
- package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +1 -0
- package/dist/components/sign-in-with-alfadocs-button/index.js +5 -0
- package/dist/components/sign-in-with-alfadocs-button/index.js.map +1 -0
- package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts +23 -0
- package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -0
- package/dist/components/signature-capture/index.d.ts +4 -0
- package/dist/components/signature-capture/index.d.ts.map +1 -0
- package/dist/components/signature-capture/index.js +6 -0
- package/dist/components/signature-capture/index.js.map +1 -0
- package/dist/components/signature-capture/signature-capture.agent.d.ts +4 -0
- package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -0
- package/dist/components/signature-capture/signature-capture.d.ts +53 -0
- package/dist/components/signature-capture/signature-capture.d.ts.map +1 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +5 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +29 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/index.d.ts.map +1 -0
- package/dist/components/slider/index.js +5 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/slider/slider.d.ts +31 -0
- package/dist/components/slider/slider.d.ts.map +1 -0
- package/dist/components/slot-grid/index.d.ts +3 -0
- package/dist/components/slot-grid/index.d.ts.map +1 -0
- package/dist/components/slot-grid/index.js +7 -0
- package/dist/components/slot-grid/index.js.map +1 -0
- package/dist/components/slot-grid/slot-grid.d.ts +82 -0
- package/dist/components/slot-grid/slot-grid.d.ts.map +1 -0
- package/dist/components/sparkline/index.d.ts +6 -0
- package/dist/components/sparkline/index.d.ts.map +1 -0
- package/dist/components/sparkline/index.js +7 -0
- package/dist/components/sparkline/index.js.map +1 -0
- package/dist/components/sparkline/sparkline.agent.d.ts +4 -0
- package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -0
- package/dist/components/sparkline/sparkline.d.ts +39 -0
- package/dist/components/sparkline/sparkline.d.ts.map +1 -0
- package/dist/components/sparkline/use-linear-trend.d.ts +7 -0
- package/dist/components/sparkline/use-linear-trend.d.ts.map +1 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +5 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +18 -0
- package/dist/components/spinner/spinner.d.ts.map +1 -0
- package/dist/components/stat/index.d.ts +3 -0
- package/dist/components/stat/index.d.ts.map +1 -0
- package/dist/components/stat/index.js +5 -0
- package/dist/components/stat/index.js.map +1 -0
- package/dist/components/stat/stat.d.ts +32 -0
- package/dist/components/stat/stat.d.ts.map +1 -0
- package/dist/components/stepper-accordion/index.d.ts +4 -0
- package/dist/components/stepper-accordion/index.d.ts.map +1 -0
- package/dist/components/stepper-accordion/index.js +5 -0
- package/dist/components/stepper-accordion/index.js.map +1 -0
- package/dist/components/stepper-accordion/stepper-accordion.d.ts +32 -0
- package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -0
- package/dist/components/stepper-calendar/index.d.ts +3 -0
- package/dist/components/stepper-calendar/index.d.ts.map +1 -0
- package/dist/components/stepper-calendar/index.js +5 -0
- package/dist/components/stepper-calendar/index.js.map +1 -0
- package/dist/components/stepper-calendar/stepper-calendar.d.ts +44 -0
- package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +1 -0
- package/dist/components/stepper-progress/index.d.ts +3 -0
- package/dist/components/stepper-progress/index.d.ts.map +1 -0
- package/dist/components/stepper-progress/index.js +5 -0
- package/dist/components/stepper-progress/index.js.map +1 -0
- package/dist/components/stepper-progress/stepper-progress.d.ts +28 -0
- package/dist/components/stepper-progress/stepper-progress.d.ts.map +1 -0
- package/dist/components/streaming-text/index.d.ts +3 -0
- package/dist/components/streaming-text/index.d.ts.map +1 -0
- package/dist/components/streaming-text/index.js +5 -0
- package/dist/components/streaming-text/index.js.map +1 -0
- package/dist/components/streaming-text/streaming-text.d.ts +23 -0
- package/dist/components/streaming-text/streaming-text.d.ts.map +1 -0
- package/dist/components/suggestion-chip/index.d.ts +3 -0
- package/dist/components/suggestion-chip/index.d.ts.map +1 -0
- package/dist/components/suggestion-chip/index.js +6 -0
- package/dist/components/suggestion-chip/index.js.map +1 -0
- package/dist/components/suggestion-chip/suggestion-chip.d.ts +28 -0
- package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +1 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +5 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.d.ts +21 -0
- package/dist/components/switch/switch.d.ts.map +1 -0
- package/dist/components/tabs/index.d.ts +4 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +9 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.agent.d.ts +3 -0
- package/dist/components/tabs/tabs.agent.d.ts.map +1 -0
- package/dist/components/tabs/tabs.d.ts +63 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tag/index.d.ts +3 -0
- package/dist/components/tag/index.d.ts.map +1 -0
- package/dist/components/tag/index.js +5 -0
- package/dist/components/tag/index.js.map +1 -0
- package/dist/components/tag/tag.d.ts +25 -0
- package/dist/components/tag/tag.d.ts.map +1 -0
- package/dist/components/task-card/index.d.ts +3 -0
- package/dist/components/task-card/index.d.ts.map +1 -0
- package/dist/components/task-card/index.js +6 -0
- package/dist/components/task-card/index.js.map +1 -0
- package/dist/components/task-card/task-card.d.ts +40 -0
- package/dist/components/task-card/task-card.d.ts.map +1 -0
- package/dist/components/task-tray/index.d.ts +3 -0
- package/dist/components/task-tray/index.d.ts.map +1 -0
- package/dist/components/task-tray/index.js +5 -0
- package/dist/components/task-tray/index.js.map +1 -0
- package/dist/components/task-tray/task-tray.d.ts +28 -0
- package/dist/components/task-tray/task-tray.d.ts.map +1 -0
- package/dist/components/text-area/index.d.ts +3 -0
- package/dist/components/text-area/index.d.ts.map +1 -0
- package/dist/components/text-area/index.js +5 -0
- package/dist/components/text-area/index.js.map +1 -0
- package/dist/components/text-area/text-area.d.ts +19 -0
- package/dist/components/text-area/text-area.d.ts.map +1 -0
- package/dist/components/text-input/index.d.ts +3 -0
- package/dist/components/text-input/index.d.ts.map +1 -0
- package/dist/components/text-input/index.js +5 -0
- package/dist/components/text-input/index.js.map +1 -0
- package/dist/components/text-input/text-input.d.ts +22 -0
- package/dist/components/text-input/text-input.d.ts.map +1 -0
- package/dist/components/theme-root/index.d.ts +3 -0
- package/dist/components/theme-root/index.d.ts.map +1 -0
- package/dist/components/theme-root/index.js +5 -0
- package/dist/components/theme-root/index.js.map +1 -0
- package/dist/components/theme-root/theme-root.d.ts +16 -0
- package/dist/components/theme-root/theme-root.d.ts.map +1 -0
- package/dist/components/time-picker/index.d.ts +3 -0
- package/dist/components/time-picker/index.d.ts.map +1 -0
- package/dist/components/time-picker/index.js +5 -0
- package/dist/components/time-picker/index.js.map +1 -0
- package/dist/components/time-picker/time-picker.d.ts +38 -0
- package/dist/components/time-picker/time-picker.d.ts.map +1 -0
- package/dist/components/timeline/index.d.ts +3 -0
- package/dist/components/timeline/index.d.ts.map +1 -0
- package/dist/components/timeline/index.js +5 -0
- package/dist/components/timeline/index.js.map +1 -0
- package/dist/components/timeline/timeline.d.ts +47 -0
- package/dist/components/timeline/timeline.d.ts.map +1 -0
- package/dist/components/timestamp/index.d.ts +3 -0
- package/dist/components/timestamp/index.d.ts.map +1 -0
- package/dist/components/timestamp/index.js +5 -0
- package/dist/components/timestamp/index.js.map +1 -0
- package/dist/components/timestamp/timestamp.d.ts +51 -0
- package/dist/components/timestamp/timestamp.d.ts.map +1 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +9 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast.d.ts +32 -0
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +6 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +31 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooth-scheme/index.d.ts +5 -0
- package/dist/components/tooth-scheme/index.d.ts.map +1 -0
- package/dist/components/tooth-scheme/index.js +20 -0
- package/dist/components/tooth-scheme/index.js.map +1 -0
- package/dist/components/tooth-scheme/tooth-data.d.ts +91 -0
- package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -0
- package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +4 -0
- package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -0
- package/dist/components/tooth-scheme/tooth-scheme.d.ts +34 -0
- package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -0
- package/dist/components/transcript-panel/index.d.ts +3 -0
- package/dist/components/transcript-panel/index.d.ts.map +1 -0
- package/dist/components/transcript-panel/index.js +5 -0
- package/dist/components/transcript-panel/index.js.map +1 -0
- package/dist/components/transcript-panel/transcript-panel.d.ts +25 -0
- package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -0
- package/dist/components/typing-indicator/index.d.ts +3 -0
- package/dist/components/typing-indicator/index.d.ts.map +1 -0
- package/dist/components/typing-indicator/index.js +5 -0
- package/dist/components/typing-indicator/index.js.map +1 -0
- package/dist/components/typing-indicator/typing-indicator.d.ts +17 -0
- package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -0
- package/dist/components/warning-stack/index.d.ts +2 -0
- package/dist/components/warning-stack/index.d.ts.map +1 -0
- package/dist/components/warning-stack/index.js +5 -0
- package/dist/components/warning-stack/index.js.map +1 -0
- package/dist/components/warning-stack/warning-stack.d.ts +42 -0
- package/dist/components/warning-stack/warning-stack.d.ts.map +1 -0
- package/dist/components/workflow/index.d.ts +9 -0
- package/dist/components/workflow/index.d.ts.map +1 -0
- package/dist/components/workflow/index.js +14 -0
- package/dist/components/workflow/index.js.map +1 -0
- package/dist/components/workflow/workflow-card.d.ts +25 -0
- package/dist/components/workflow/workflow-card.d.ts.map +1 -0
- package/dist/components/workflow/workflow-editor.d.ts +29 -0
- package/dist/components/workflow/workflow-editor.d.ts.map +1 -0
- package/dist/components/workflow/workflow-map.d.ts +26 -0
- package/dist/components/workflow/workflow-map.d.ts.map +1 -0
- package/dist/components/workflow/workflow-types.d.ts +128 -0
- package/dist/components/workflow/workflow-types.d.ts.map +1 -0
- package/dist/fonts/SpaceGrotesk-VF.woff2 +0 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +12 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-prefers-reduced-motion.d.ts +10 -0
- package/dist/hooks/use-prefers-reduced-motion.d.ts.map +1 -0
- package/dist/hooks/use-theme.d.ts +51 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/i18n/config.d.ts +4 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +2763 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/resources.d.ts +2809 -0
- package/dist/i18n/resources.d.ts.map +1 -0
- package/dist/index.js +434 -0
- package/dist/index.js.map +1 -0
- package/dist/locales/ar.json +1 -0
- package/dist/locales/de.json +921 -0
- package/dist/locales/en.json +945 -0
- package/dist/locales/it.json +921 -0
- package/dist/option/index.js +2 -0
- package/dist/option/index.js.map +1 -0
- package/dist/patterns/leo-assistant/index.d.ts +20 -0
- package/dist/patterns/leo-assistant/index.d.ts.map +1 -0
- package/dist/patterns/leo-assistant/index.js +8 -0
- package/dist/patterns/leo-assistant/index.js.map +1 -0
- package/dist/patterns/leo-assistant/leo-chat-surface.d.ts +3 -0
- package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +1 -0
- package/dist/patterns/leo-assistant/leo-embedded.d.ts +13 -0
- package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +1 -0
- package/dist/patterns/leo-assistant/leo-popout.d.ts +13 -0
- package/dist/patterns/leo-assistant/leo-popout.d.ts.map +1 -0
- package/dist/patterns/leo-assistant/leo-sidebar.d.ts +38 -0
- package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -0
- package/dist/patterns/leo-assistant/leo-types.d.ts +122 -0
- package/dist/patterns/leo-assistant/leo-types.d.ts.map +1 -0
- package/dist/patterns/patient-shell/index.d.ts +12 -0
- package/dist/patterns/patient-shell/index.d.ts.map +1 -0
- package/dist/patterns/patient-shell/index.js +5 -0
- package/dist/patterns/patient-shell/index.js.map +1 -0
- package/dist/patterns/patient-shell/patient-shell.d.ts +62 -0
- package/dist/patterns/patient-shell/patient-shell.d.ts.map +1 -0
- package/dist/safe-html/index.js +66 -0
- package/dist/safe-html/index.js.map +1 -0
- package/dist/tokens/apexcharts-theme.d.ts +3 -0
- package/dist/tokens/apexcharts-theme.d.ts.map +1 -0
- package/dist/tokens/themes/bridges/stripe-appearance.d.ts +10 -0
- package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +1 -0
- package/dist/tokens.css +3 -0
- package/package.json +330 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooth-scheme.agent-CFKl3iQr.js","sources":["../../src/components/tooth-scheme/tooth-data.ts","../../src/components/tooth-scheme/tooth-scheme.tsx","../../src/components/tooth-scheme/tooth-scheme.agent.ts"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* ToothScheme — data model + lookup tables. */\n/* */\n/* FDI ISO 3950 is the canonical internal id. This module exposes */\n/* conversion tables to Universal (ADA) and a simplified Palmer-style */\n/* quadrant+position string so consuming UIs can toggle numbering. */\n/* */\n/* Why simplified Palmer? True Palmer notation uses quadrant bracket */\n/* glyphs (\"⌐\", \"¬\", \"L\", \"J\") that do not render reliably in every */\n/* browser/font combination. We emit a readable `UR3` / `LL6` form */\n/* instead and document the deviation in the component MDX. */\n/* ------------------------------------------------------------------ */\n\n/* ------------------------------------------------------------------ */\n/* Core types */\n/* ------------------------------------------------------------------ */\n\nexport type FdiId = string; // '11'–'48' permanent, '51'–'85' primary\n\nexport type Dentition = 'permanent' | 'primary' | 'mixed';\nexport type Numbering = 'fdi' | 'universal' | 'palmer';\nexport type ToothMode = 'interactive' | 'display';\nexport type Surface = 'mesial' | 'distal' | 'occlusal' | 'buccal' | 'lingual';\nexport type ToothCondition =\n | 'caries'\n | 'filled'\n | 'crowned'\n | 'missing'\n | 'implant'\n | 'rootCanal';\n\nexport interface ToothState {\n conditions: ToothCondition[];\n surfaces: Surface[];\n notes?: string;\n}\n\nexport type ToothChart = Record<FdiId, ToothState>;\n\nexport type Anatomy = 'incisor' | 'canine' | 'premolar' | 'molar';\nexport type Arch = 'upper' | 'lower';\nexport type Side = 'right' | 'left'; // patient's side (NOT viewer's)\nexport type Quadrant = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport interface ToothMeta {\n fdi: FdiId;\n /** '1'–'32' for permanent, 'A'–'T' for primary. */\n universal: string;\n /** Simplified Palmer quadrant-and-position string, e.g. 'UR3', 'LL6'. */\n palmer: string;\n quadrant: Quadrant;\n /** 1–8 (permanent) or 1–5 (primary), counted from the midline outward. */\n positionInQuadrant: number;\n anatomy: Anatomy;\n arch: Arch;\n side: Side;\n dentition: 'permanent' | 'primary';\n}\n\n/* ------------------------------------------------------------------ */\n/* Layout orders */\n/* */\n/* Layout reads from the viewer's perspective, top-left to bottom- */\n/* right. The chart is FIXED in clinical convention: the patient's */\n/* right side sits on the viewer's left, regardless of document `dir`. */\n/* ------------------------------------------------------------------ */\n\n/**\n * 32 permanent teeth in visual layout order:\n * upper row: 18..11 (patient upper-right, outermost → midline), then 21..28 (upper-left, midline → outermost)\n * lower row: 48..41 (patient lower-right, outermost → midline), then 31..38 (lower-left, midline → outermost)\n */\nexport const PERMANENT_TEETH: FdiId[] = [\n // upper\n '18', '17', '16', '15', '14', '13', '12', '11',\n '21', '22', '23', '24', '25', '26', '27', '28',\n // lower\n '48', '47', '46', '45', '44', '43', '42', '41',\n '31', '32', '33', '34', '35', '36', '37', '38',\n];\n\n/**\n * 20 primary teeth in visual layout order:\n * upper row: 55..51 (upper-right outermost → midline), then 61..65\n * lower row: 85..81, then 71..75\n */\nexport const PRIMARY_TEETH: FdiId[] = [\n // upper\n '55', '54', '53', '52', '51',\n '61', '62', '63', '64', '65',\n // lower\n '85', '84', '83', '82', '81',\n '71', '72', '73', '74', '75',\n];\n\n/* ------------------------------------------------------------------ */\n/* Anatomy by position */\n/* ------------------------------------------------------------------ */\n\nfunction permanentAnatomy(positionInQuadrant: number): Anatomy {\n if (positionInQuadrant <= 2) return 'incisor';\n if (positionInQuadrant === 3) return 'canine';\n if (positionInQuadrant <= 5) return 'premolar';\n return 'molar';\n}\n\nfunction primaryAnatomy(positionInQuadrant: number): Anatomy {\n if (positionInQuadrant <= 2) return 'incisor';\n if (positionInQuadrant === 3) return 'canine';\n // Primary dentition has no premolars — positions 4 & 5 are molars.\n return 'molar';\n}\n\n/* ------------------------------------------------------------------ */\n/* Palmer helper */\n/* ------------------------------------------------------------------ */\n\nfunction palmerCode(quadrant: Quadrant, position: number): string {\n // Permanent: 1=UR, 2=UL, 3=LL, 4=LR. Primary: 5=UR, 6=UL, 7=LL, 8=LR.\n // Mapping is identical within each dentition ring; the number is what\n // changes, so we fold 5→1, 6→2, 7→3, 8→4 to derive the quadrant code.\n const normalised = ((quadrant - 1) % 4) + 1;\n const code =\n normalised === 1 ? 'UR'\n : normalised === 2 ? 'UL'\n : normalised === 3 ? 'LL'\n : 'LR';\n return `${code}${position}`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Universal (ADA) conversion */\n/* */\n/* Permanent — Universal numbers 1..32 run clockwise from the */\n/* patient's upper-right 3rd molar (FDI 18 = Universal 1), across */\n/* the upper arch (18→11 = 1→8, 21→28 = 9→16), then down the left */\n/* lower arch (38→31 = 17→24) and across the right lower (41→48 = */\n/* 25→32). */\n/* */\n/* Primary — Universal letters A..T walk the same path: */\n/* 55→51 = A→E, 61→65 = F→J, 75→71 = K→O, 81→85 = P→T. */\n/* ------------------------------------------------------------------ */\n\nfunction permanentUniversal(quadrant: Quadrant, position: number): string {\n switch (quadrant) {\n case 1:\n // 18→1, 17→2, …, 11→8\n return String(1 + (8 - position));\n case 2:\n // 21→9, 22→10, …, 28→16\n return String(8 + position);\n case 3:\n // 38→17, 37→18, …, 31→24\n return String(17 + (8 - position));\n case 4:\n // 41→25, 42→26, …, 48→32\n return String(24 + position);\n default:\n return '';\n }\n}\n\nfunction primaryUniversal(quadrant: Quadrant, position: number): string {\n const letters = 'ABCDEFGHIJKLMNOPQRST';\n let index = -1;\n switch (quadrant) {\n case 5:\n // 55→A, 54→B, 53→C, 52→D, 51→E\n index = 0 + (5 - position);\n break;\n case 6:\n // 61→F, 62→G, 63→H, 64→I, 65→J\n index = 5 + (position - 1);\n break;\n case 7:\n // 75→K, 74→L, 73→M, 72→N, 71→O\n index = 10 + (5 - position);\n break;\n case 8:\n // 81→P, 82→Q, 83→R, 84→S, 85→T\n index = 15 + (position - 1);\n break;\n default:\n index = -1;\n }\n return index >= 0 ? letters[index] : '';\n}\n\n/* ------------------------------------------------------------------ */\n/* Meta builder */\n/* ------------------------------------------------------------------ */\n\nfunction buildMeta(fdi: FdiId): ToothMeta {\n const quadrant = Number(fdi[0]) as Quadrant;\n const position = Number(fdi[1]);\n const isPrimary = quadrant >= 5;\n const anatomy = isPrimary ? primaryAnatomy(position) : permanentAnatomy(position);\n const arch: Arch = quadrant === 1 || quadrant === 2 || quadrant === 5 || quadrant === 6 ? 'upper' : 'lower';\n const side: Side = quadrant === 1 || quadrant === 4 || quadrant === 5 || quadrant === 8 ? 'right' : 'left';\n const universal = isPrimary ? primaryUniversal(quadrant, position) : permanentUniversal(quadrant, position);\n const palmer = palmerCode(quadrant, position);\n return {\n fdi,\n universal,\n palmer,\n quadrant,\n positionInQuadrant: position,\n anatomy,\n arch,\n side,\n dentition: isPrimary ? 'primary' : 'permanent',\n };\n}\n\nexport const FDI_TO_META: Record<FdiId, ToothMeta> = [\n ...PERMANENT_TEETH,\n ...PRIMARY_TEETH,\n].reduce<Record<FdiId, ToothMeta>>((acc, fdi) => {\n acc[fdi] = buildMeta(fdi);\n return acc;\n}, {});\n\nexport const FDI_TO_UNIVERSAL: Record<FdiId, string> = Object.fromEntries(\n Object.entries(FDI_TO_META).map(([fdi, meta]) => [fdi, meta.universal]),\n);\n\nexport const FDI_TO_PALMER: Record<FdiId, string> = Object.fromEntries(\n Object.entries(FDI_TO_META).map(([fdi, meta]) => [fdi, meta.palmer]),\n);\n\n/* ------------------------------------------------------------------ */\n/* Condition → token + pattern */\n/* */\n/* Every condition carries BOTH a colour AND a fill pattern so */\n/* colour-blind clinicians can distinguish states in the SVG (and in */\n/* black-and-white prints) — colour is never the sole channel. */\n/* ------------------------------------------------------------------ */\n\n/** CSS variable name (without the leading `var(...)`) that drives a condition's colour. */\nexport const CONDITION_TOKENS: Record<ToothCondition, string> = {\n caries: '--destructive',\n filled: '--info',\n crowned: '--warning',\n missing: '--muted-foreground',\n implant: '--accent',\n rootCanal: '--primary',\n};\n\n/**\n * Convenience: the `fill=\"var(--destructive)\"` string ready to paste onto\n * an SVG attribute. Kept in sync with `CONDITION_TOKENS`.\n */\nexport const CONDITION_COLORS: Record<ToothCondition, string> = {\n caries: 'var(--destructive)',\n filled: 'var(--info)',\n crowned: 'var(--warning)',\n missing: 'var(--muted-foreground)',\n implant: 'var(--accent)',\n rootCanal: 'var(--primary)',\n};\n\n/** SVG `<pattern>` ids declared in `<defs>`. `missing` renders an X glyph instead of a pattern. */\nexport const CONDITION_PATTERNS: Record<ToothCondition, string> = {\n caries: 'tooth-scheme-pattern-diagonal',\n filled: 'tooth-scheme-pattern-dots',\n crowned: 'tooth-scheme-pattern-crosshatch',\n missing: 'tooth-scheme-pattern-blank',\n implant: 'tooth-scheme-pattern-vertical',\n rootCanal: 'tooth-scheme-pattern-horizontal',\n};\n\n/* ------------------------------------------------------------------ */\n/* SVG shape paths — one per anatomy class */\n/* */\n/* Artistry is deliberately minimal for this first pass: each tooth is */\n/* a rounded rectangle with a small anatomy cue (cusp notch for */\n/* molars, pointed tip for canines, narrower body for incisors). The */\n/* shapes accept a `translate(x, y)` on the enclosing `<g>` and draw */\n/* within a 30×50 bounding box (22×50 for incisors). */\n/* ------------------------------------------------------------------ */\n\nexport interface ToothShape {\n /** Visual width inside the enclosing `<g>`. */\n width: number;\n /** Visual height inside the enclosing `<g>`. */\n height: number;\n /** SVG `d` attribute for the crown outline. */\n path: string;\n /** Optional inner decorative path (occlusal surface on molars, etc.). */\n innerPath?: string;\n}\n\nexport const TOOTH_SHAPES: Record<Anatomy, ToothShape> = {\n incisor: {\n width: 22,\n height: 50,\n // Narrow rounded rectangle — slightly wider at the occlusal/biting edge.\n path: 'M4 4 C4 2 6 0 8 0 L14 0 C16 0 18 2 18 4 L20 44 C20 47 18 50 14 50 L8 50 C4 50 2 47 2 44 Z',\n },\n canine: {\n width: 26,\n height: 50,\n // Pointed cusp at the bottom — canines present a single prominent cusp.\n path: 'M4 4 C4 2 6 0 8 0 L18 0 C20 0 22 2 22 4 L24 40 L13 50 L2 40 Z',\n },\n premolar: {\n width: 28,\n height: 50,\n // Wider rounded rectangle with a subtle horizontal notch hinting at two cusps.\n path: 'M4 4 C4 2 6 0 8 0 L20 0 C22 0 24 2 24 4 L26 44 C26 47 24 50 20 50 L8 50 C4 50 2 47 2 44 Z',\n innerPath: 'M6 34 L22 34',\n },\n molar: {\n width: 32,\n height: 50,\n // Widest rounded rectangle with a cross-notch hinting at the occlusal fissure pattern.\n path: 'M4 4 C4 2 6 0 8 0 L24 0 C26 0 28 2 28 4 L30 44 C30 47 28 50 24 50 L8 50 C4 50 2 47 2 44 Z',\n innerPath: 'M6 32 L26 32 M16 22 L16 42',\n },\n};\n\n/* ------------------------------------------------------------------ */\n/* Viewport layout helpers */\n/* ------------------------------------------------------------------ */\n\nexport const TOOTH_GAP = 4;\nexport const TOOTH_ROW_GAP = 24;\nexport const TOOTH_HIT_PAD = 4;\n\nexport interface PositionedTooth {\n fdi: FdiId;\n meta: ToothMeta;\n shape: ToothShape;\n x: number;\n y: number;\n}\n\n/**\n * Produce the positioned list of teeth for a given dentition. The layout\n * is a two-row grid reading viewer-left-to-right across the upper arch,\n * then viewer-left-to-right across the lower arch. Clinical convention\n * is preserved: the patient's right sits on the viewer's left in both\n * arches, regardless of document direction.\n */\nexport function layoutTeeth(dentition: Dentition): {\n teeth: PositionedTooth[];\n width: number;\n height: number;\n} {\n const ids: FdiId[] =\n dentition === 'primary'\n ? PRIMARY_TEETH\n : dentition === 'mixed'\n ? [...PERMANENT_TEETH, ...PRIMARY_TEETH]\n : PERMANENT_TEETH;\n\n // Upper / lower partition is inferred from meta.arch.\n const upper: FdiId[] = [];\n const lower: FdiId[] = [];\n for (const id of ids) {\n const meta = FDI_TO_META[id];\n if (meta.arch === 'upper') upper.push(id);\n else lower.push(id);\n }\n\n const rowHeight = 50;\n const maxPerRow = Math.max(upper.length, lower.length);\n\n // Centre each row on the widest one.\n function positionRow(row: FdiId[], yOffset: number): PositionedTooth[] {\n const rowWidth = row.reduce((acc, id) => {\n const shape = TOOTH_SHAPES[FDI_TO_META[id].anatomy];\n return acc + shape.width + TOOTH_GAP;\n }, 0);\n const fullRowWidth = row.length > 0 ? rowWidth - TOOTH_GAP : 0;\n\n const maxRowWidth = (function computeMax(): number {\n const bigger = upper.length >= lower.length ? upper : lower;\n const biggerWidth = bigger.reduce((acc, id) => {\n const shape = TOOTH_SHAPES[FDI_TO_META[id].anatomy];\n return acc + shape.width + TOOTH_GAP;\n }, 0);\n return biggerWidth - TOOTH_GAP;\n })();\n\n const startX = (maxRowWidth - fullRowWidth) / 2;\n let cursor = startX;\n return row.map((id) => {\n const meta = FDI_TO_META[id];\n const shape = TOOTH_SHAPES[meta.anatomy];\n const tooth: PositionedTooth = {\n fdi: id,\n meta,\n shape,\n x: cursor,\n y: yOffset,\n };\n cursor += shape.width + TOOTH_GAP;\n return tooth;\n });\n }\n\n const upperRow = positionRow(upper, 0);\n const lowerRow = positionRow(lower, rowHeight + TOOTH_ROW_GAP);\n\n // Compute the true content width / height for the viewBox.\n const maxRowWidth = Math.max(\n upperRow.reduce((acc, t) => Math.max(acc, t.x + t.shape.width), 0),\n lowerRow.reduce((acc, t) => Math.max(acc, t.x + t.shape.width), 0),\n );\n\n // Fall back to a reasonable default if a row is empty.\n const width = maxRowWidth > 0 ? maxRowWidth : maxPerRow * 30;\n const height = rowHeight * 2 + TOOTH_ROW_GAP;\n\n return { teeth: [...upperRow, ...lowerRow], width, height };\n}\n\n/* ------------------------------------------------------------------ */\n/* Labels by numbering */\n/* ------------------------------------------------------------------ */\n\nexport function labelFor(id: FdiId, numbering: Numbering): string {\n switch (numbering) {\n case 'universal':\n return FDI_TO_UNIVERSAL[id] ?? id;\n case 'palmer':\n return FDI_TO_PALMER[id] ?? id;\n case 'fdi':\n default:\n return id;\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Chart helpers */\n/* ------------------------------------------------------------------ */\n\nexport function emptyChart(): ToothChart {\n return {};\n}\n\nexport function chartFromConditions(\n conditions: Partial<Record<FdiId, ToothCondition[]>>,\n): ToothChart {\n const chart: ToothChart = {};\n for (const [id, list] of Object.entries(conditions)) {\n if (!list || list.length === 0) continue;\n chart[id] = { conditions: list, surfaces: [] };\n }\n return chart;\n}\n","/* ------------------------------------------------------------------ */\n/* ToothScheme — in-house SVG dental chart. */\n/* */\n/* - The ONLY Domain-Specific component without a third-party engine. */\n/* No DentalChart.js, no toothchart, no canvas — `src/docs/08-third- */\n/* party.mdx §Dental chart` flags every candidate as rejected (jQuery */\n/* dependency, abandoned, poor a11y), so we draw SVG ourselves. */\n/* */\n/* - Colour-not-alone: each `ToothCondition` has a translated label, a */\n/* token colour AND a `<pattern>` fill. Pattern ids live in */\n/* `CONDITION_PATTERNS`; the six `<pattern>` nodes live once per */\n/* mounted chart inside a single `<defs>` block. */\n/* */\n/* - Chart orientation is FIXED to clinical convention: the patient's */\n/* right side sits on the viewer's left in both upper and lower */\n/* arches, regardless of document `dir`. RTL mirrors the surrounding */\n/* chrome (labels, controls) but NEVER the anatomy — a mirrored */\n/* chart would invert every diagnosis recorded against it. */\n/* */\n/* TODO: */\n/* - SVG artistry is deliberately minimal (rounded-rect crowns with */\n/* anatomy cues). A future pass should replace each `<path>` with */\n/* a clinically-correct crown outline from the dental design team. */\n/* - Surface selection sub-control (mesial / distal / occlusal / …) */\n/* is stubbed via the data model only; the interactive surface */\n/* picker will land in a follow-up. */\n/* - Condition editing is a single-step cycle on Space/Enter — good */\n/* enough for demos and stories; a richer picker belongs in a */\n/* popover and will reuse Radix Popover when it's wired in. */\n/* ------------------------------------------------------------------ */\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n CONDITION_COLORS,\n CONDITION_PATTERNS,\n CONDITION_TOKENS,\n FDI_TO_META,\n PERMANENT_TEETH,\n PRIMARY_TEETH,\n TOOTH_HIT_PAD,\n chartFromConditions,\n labelFor,\n layoutTeeth,\n type Dentition,\n type FdiId,\n type Numbering,\n type ToothChart,\n type ToothCondition,\n type ToothMode,\n type ToothState,\n} from './tooth-data';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface ToothSchemeProps {\n /** Which teeth to render. Default `'permanent'`. */\n dentition?: Dentition;\n /** Numbering system shown on each tooth label. Default `'fdi'`. */\n numbering?: Numbering;\n /** `'interactive'` enables selection + keyboard nav; `'display'` is read-only. Default `'interactive'`. */\n mode?: ToothMode;\n /** Controlled chart state — the full `Record<FdiId, ToothState>`. */\n value?: ToothChart;\n /** Uncontrolled initial chart state. */\n defaultValue?: ToothChart;\n /** Fired whenever the chart changes — always emits FDI ids. */\n onChange?: (next: ToothChart) => void;\n /** Fired when a tooth is focused or clicked. */\n onSelect?: (toothId: FdiId) => void;\n /** Shortcut for pre-populating conditions: `{ '16': ['caries'], '36': ['filled'] }`. */\n conditions?: Partial<Record<FdiId, ToothCondition[]>>;\n /** Accessible label override for the chart region. */\n ariaLabel?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\nexport interface ToothSchemeHandle {\n /** Programmatically focus a tooth by FDI id. */\n focusTooth: (id: FdiId) => void;\n /** Read the current chart state. */\n getChart: () => ToothChart;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst rootVariants = cva(\n [\n 'tooth-scheme-alfadocs',\n 'inline-flex flex-col',\n 'gap-[var(--spacing-sm)]',\n 'bg-[var(--background)] text-[var(--foreground)]',\n ].join(' '),\n);\n\nconst svgVariants = cva(\n [\n 'block max-w-full h-auto',\n 'text-[var(--foreground)]',\n ].join(' '),\n);\n\n// `group` here is load-bearing — the focus-ring <rect> below uses\n// `group-focus-visible:opacity-100` to appear when the parent <g> takes\n// focus. Without this class the selector never fires and keyboard users\n// see no focus indicator (a11y-critical-fixes.mdx).\nconst toothGroupVariants = cva(\n [\n 'group cursor-pointer',\n 'focus:outline-none',\n 'transition-[fill,stroke,opacity] duration-[var(--animation-duration)]',\n 'motion-reduce:transition-none',\n ].join(' '),\n);\n\nconst legendVariants = cva(\n [\n 'flex flex-wrap items-center',\n 'gap-[var(--spacing-sm)]',\n 'type-meta text-[var(--muted-foreground)]',\n ].join(' '),\n);\n\nconst legendItemVariants = cva(\n [\n 'inline-flex items-center',\n 'gap-[var(--spacing-xs)]',\n ].join(' '),\n);\n\nconst legendSwatchVariants = cva(\n [\n 'inline-block',\n 'inline-size-[0.75rem] block-size-[0.75rem]',\n 'rounded-[var(--radius-xs)]',\n 'border border-[color:var(--border)]',\n ].join(' '),\n);\n\nconst liveRegionVariants = cva(\n [\n 'sr-only',\n ].join(' '),\n);\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction isControlled(props: Pick<ToothSchemeProps, 'value'>): boolean {\n return props.value !== undefined;\n}\n\nfunction emptyState(): ToothState {\n return { conditions: [], surfaces: [] };\n}\n\nfunction cycleCondition(current: ToothCondition[] | undefined): ToothCondition[] {\n if (!current || current.length === 0) return ['caries'];\n return [];\n}\n\nfunction sanitiseIdSuffix(raw: string): string {\n return raw.replace(/[^a-zA-Z0-9-_]/g, '');\n}\n\n/* ------------------------------------------------------------------ */\n/* Patterns <defs> */\n/* ------------------------------------------------------------------ */\n\ninterface PatternDefsProps {\n idPrefix: string;\n}\n\nfunction PatternDefs({ idPrefix }: PatternDefsProps): JSX.Element {\n // We namespace pattern ids per-instance so multiple ToothScheme charts\n // on a page don't collide. References inside the component use\n // `${idPrefix}-${CONDITION_PATTERNS[condition]}`.\n const pid = (id: string): string => `${idPrefix}-${id}`;\n return (\n <defs>\n <pattern\n id={pid(CONDITION_PATTERNS.caries)}\n patternUnits=\"userSpaceOnUse\"\n width=\"6\"\n height=\"6\"\n patternTransform=\"rotate(45)\"\n >\n <line\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"6\"\n stroke={CONDITION_COLORS.caries}\n strokeWidth=\"2\"\n />\n </pattern>\n <pattern\n id={pid(CONDITION_PATTERNS.filled)}\n patternUnits=\"userSpaceOnUse\"\n width=\"5\"\n height=\"5\"\n >\n <circle cx=\"2.5\" cy=\"2.5\" r=\"1\" fill={CONDITION_COLORS.filled} />\n </pattern>\n <pattern\n id={pid(CONDITION_PATTERNS.crowned)}\n patternUnits=\"userSpaceOnUse\"\n width=\"6\"\n height=\"6\"\n >\n <path\n d=\"M0 0 L6 6 M6 0 L0 6\"\n stroke={CONDITION_COLORS.crowned}\n strokeWidth=\"1\"\n />\n </pattern>\n <pattern\n id={pid(CONDITION_PATTERNS.implant)}\n patternUnits=\"userSpaceOnUse\"\n width=\"4\"\n height=\"4\"\n >\n <line\n x1=\"1\"\n y1=\"0\"\n x2=\"1\"\n y2=\"4\"\n stroke={CONDITION_COLORS.implant}\n strokeWidth=\"1\"\n />\n </pattern>\n <pattern\n id={pid(CONDITION_PATTERNS.rootCanal)}\n patternUnits=\"userSpaceOnUse\"\n width=\"4\"\n height=\"4\"\n >\n <line\n x1=\"0\"\n y1=\"1\"\n x2=\"4\"\n y2=\"1\"\n stroke={CONDITION_COLORS.rootCanal}\n strokeWidth=\"1\"\n />\n </pattern>\n {/* `missing` does not need a pattern — the renderer draws an X glyph. */}\n </defs>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Legend */\n/* ------------------------------------------------------------------ */\n\nconst ALL_CONDITIONS: ToothCondition[] = [\n 'caries',\n 'filled',\n 'crowned',\n 'missing',\n 'implant',\n 'rootCanal',\n];\n\ninterface LegendProps {\n idPrefix: string;\n}\n\nfunction Legend({ idPrefix: _idPrefix }: LegendProps): JSX.Element {\n const { t } = useTranslation();\n return (\n <ul\n className={legendVariants()}\n data-testid=\"tooth-scheme-legend\"\n aria-label={t('toothScheme.legendLabel')}\n >\n {ALL_CONDITIONS.map((condition) => (\n <li key={condition} className={legendItemVariants()}>\n <span\n className={legendSwatchVariants()}\n aria-hidden=\"true\"\n data-condition={condition}\n data-token={CONDITION_TOKENS[condition]}\n data-testid={`tooth-scheme-legend-swatch-${condition}`}\n />\n <span>{t(`toothScheme.condition.${condition}`)}</span>\n </li>\n ))}\n </ul>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const ToothScheme = forwardRef<ToothSchemeHandle, ToothSchemeProps>(\n (\n {\n dentition = 'permanent',\n numbering = 'fdi',\n mode = 'interactive',\n value,\n defaultValue,\n onChange,\n onSelect,\n conditions,\n ariaLabel,\n className,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const rawId = useId();\n const idPrefix = useMemo(\n () => `ts-${sanitiseIdSuffix(rawId)}`,\n [rawId],\n );\n\n // Chart state — controlled / uncontrolled.\n const [internalChart, setInternalChart] = useState<ToothChart>(() => {\n if (value !== undefined) return value;\n if (defaultValue !== undefined) return defaultValue;\n if (conditions) return chartFromConditions(conditions);\n return {};\n });\n\n const chart: ToothChart = isControlled({ value }) ? (value as ToothChart) : internalChart;\n\n // Keep uncontrolled chart in sync when `conditions` shortcut updates.\n useEffect(() => {\n if (isControlled({ value })) return;\n if (conditions === undefined) return;\n setInternalChart(chartFromConditions(conditions));\n // Intentionally depend on a stable key — swapping the entire prop\n // snapshot is the consumer's signal to reset.\n }, [conditions, value]);\n\n // Layout.\n const layout = useMemo(() => layoutTeeth(dentition), [dentition]);\n const visibleIds = useMemo(\n () => layout.teeth.map((t) => t.fdi),\n [layout],\n );\n\n // Roving tabindex: which tooth owns `tabindex=\"0\"`.\n const firstId: FdiId | undefined = visibleIds[0];\n const [focusedId, setFocusedId] = useState<FdiId | undefined>(firstId);\n useEffect(() => {\n if (!focusedId || !visibleIds.includes(focusedId)) {\n setFocusedId(firstId);\n }\n }, [firstId, focusedId, visibleIds]);\n\n // Live-region announcement text.\n const [announcement, setAnnouncement] = useState<string>('');\n\n const svgRef = useRef<SVGSVGElement>(null);\n\n const commitChart = useCallback(\n (next: ToothChart) => {\n if (!isControlled({ value })) {\n setInternalChart(next);\n }\n onChange?.(next);\n },\n [onChange, value],\n );\n\n const focusToothById = useCallback((id: FdiId) => {\n const svg = svgRef.current;\n if (!svg) return;\n const node = svg.querySelector<SVGGElement>(`g[data-fdi=\"${id}\"]`);\n if (node) {\n node.focus();\n setFocusedId(id);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n (): ToothSchemeHandle => ({\n focusTooth: (id: FdiId) => {\n focusToothById(id);\n },\n getChart: () => chart,\n }),\n [chart, focusToothById],\n );\n\n /* ------------------------------------------------------------- */\n /* Keyboard navigation */\n /* ------------------------------------------------------------- */\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<SVGGElement>, id: FdiId) => {\n if (mode !== 'interactive') return;\n const meta = FDI_TO_META[id];\n if (!meta) return;\n\n // Resolve the ordered list of visible ids for Left/Right.\n const order = visibleIds;\n const currentIndex = order.indexOf(id);\n\n switch (event.key) {\n case 'ArrowRight': {\n event.preventDefault();\n const nextIndex = Math.min(order.length - 1, currentIndex + 1);\n focusToothById(order[nextIndex]);\n return;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const nextIndex = Math.max(0, currentIndex - 1);\n focusToothById(order[nextIndex]);\n return;\n }\n case 'ArrowUp':\n case 'ArrowDown': {\n event.preventDefault();\n // Map to the opposing arch, same FDI position where possible.\n // Permanent: 1 ↔ 4, 2 ↔ 3. Primary: 5 ↔ 8, 6 ↔ 7.\n const quadrantMap: Record<number, number> = {\n 1: 4,\n 4: 1,\n 2: 3,\n 3: 2,\n 5: 8,\n 8: 5,\n 6: 7,\n 7: 6,\n };\n const targetQuadrant = quadrantMap[meta.quadrant];\n if (!targetQuadrant) return;\n const candidate = `${targetQuadrant}${meta.positionInQuadrant}`;\n if (order.includes(candidate)) {\n focusToothById(candidate);\n }\n return;\n }\n case 'Home': {\n event.preventDefault();\n // First tooth in the same quadrant (visible).\n const inQuadrant = order.filter(\n (other) => FDI_TO_META[other].quadrant === meta.quadrant,\n );\n if (inQuadrant.length > 0) {\n focusToothById(inQuadrant[0]);\n }\n return;\n }\n case 'End': {\n event.preventDefault();\n const inQuadrant = order.filter(\n (other) => FDI_TO_META[other].quadrant === meta.quadrant,\n );\n if (inQuadrant.length > 0) {\n focusToothById(inQuadrant[inQuadrant.length - 1]);\n }\n return;\n }\n case ' ':\n case 'Enter': {\n event.preventDefault();\n const prev = chart[id]?.conditions;\n const nextConditions = cycleCondition(prev);\n const next: ToothChart = { ...chart };\n if (nextConditions.length === 0) {\n delete next[id];\n setAnnouncement(t('toothScheme.deselected', { id }));\n } else {\n next[id] = {\n ...(chart[id] ?? emptyState()),\n conditions: nextConditions,\n };\n setAnnouncement(\n t('toothScheme.selected', {\n id,\n conditions: nextConditions\n .map((c) => t(`toothScheme.condition.${c}`))\n .join(', '),\n }),\n );\n }\n commitChart(next);\n onSelect?.(id);\n return;\n }\n default:\n return;\n }\n },\n [chart, commitChart, focusToothById, mode, onSelect, t, visibleIds],\n );\n\n const handleClick = useCallback(\n (id: FdiId) => {\n if (mode !== 'interactive') return;\n setFocusedId(id);\n const prev = chart[id]?.conditions;\n const nextConditions = cycleCondition(prev);\n const next: ToothChart = { ...chart };\n if (nextConditions.length === 0) {\n delete next[id];\n setAnnouncement(t('toothScheme.deselected', { id }));\n } else {\n next[id] = {\n ...(chart[id] ?? emptyState()),\n conditions: nextConditions,\n };\n setAnnouncement(\n t('toothScheme.selected', {\n id,\n conditions: nextConditions\n .map((c) => t(`toothScheme.condition.${c}`))\n .join(', '),\n }),\n );\n }\n commitChart(next);\n onSelect?.(id);\n },\n [chart, commitChart, mode, onSelect, t],\n );\n\n /* ------------------------------------------------------------- */\n /* Rendering */\n /* ------------------------------------------------------------- */\n\n const viewBoxWidth = layout.width + 4; // small padding for stroke\n const viewBoxHeight = layout.height + 4;\n\n const regionLabel = ariaLabel ?? t('toothScheme.ariaLabel');\n\n return (\n <RadixTooltip.Provider delayDuration={200}>\n <div\n role=\"region\"\n aria-label={regionLabel}\n className={[rootVariants(), className].filter(Boolean).join(' ')}\n data-component=\"tooth-scheme\"\n data-testid=\"tooth-scheme-root\"\n data-dentition={dentition}\n data-numbering={numbering}\n data-mode={mode}\n >\n <svg\n ref={svgRef}\n viewBox={`0 0 ${viewBoxWidth} ${viewBoxHeight}`}\n className={svgVariants()}\n role=\"group\"\n aria-label={regionLabel}\n data-testid=\"tooth-scheme-svg\"\n focusable=\"false\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <PatternDefs idPrefix={idPrefix} />\n\n {layout.teeth.map((tooth) => {\n const state = chart[tooth.fdi];\n const primaryCondition: ToothCondition | undefined =\n state?.conditions?.[0];\n\n const anatomyLabel = t(\n `toothScheme.anatomy.${tooth.meta.anatomy}`,\n );\n const conditionSuffix = primaryCondition\n ? `, ${t(`toothScheme.condition.${primaryCondition}`)}`\n : '';\n const label = t('toothScheme.toothLabel', {\n id: labelFor(tooth.fdi, numbering),\n anatomy: anatomyLabel,\n conditionSuffix,\n });\n\n const tabIndex =\n mode === 'interactive'\n ? tooth.fdi === focusedId\n ? 0\n : -1\n : undefined;\n\n const fillColour: string =\n primaryCondition && primaryCondition !== 'missing'\n ? `url(#${idPrefix}-${CONDITION_PATTERNS[primaryCondition]})`\n : 'var(--muted)';\n\n const strokeColour: string =\n primaryCondition && primaryCondition !== 'missing'\n ? CONDITION_COLORS[primaryCondition]\n : 'var(--border)';\n\n const tooltipContent = primaryCondition\n ? `${anatomyLabel} · ${t(`toothScheme.condition.${primaryCondition}`)}`\n : anatomyLabel;\n\n const labelText = labelFor(tooth.fdi, numbering);\n\n return (\n <RadixTooltip.Root key={tooth.fdi}>\n <RadixTooltip.Trigger asChild>\n <g\n data-fdi={tooth.fdi}\n data-anatomy={tooth.meta.anatomy}\n data-arch={tooth.meta.arch}\n data-side={tooth.meta.side}\n data-quadrant={tooth.meta.quadrant}\n data-condition={primaryCondition ?? 'none'}\n data-testid={`tooth-${tooth.fdi}`}\n transform={`translate(${tooth.x}, ${tooth.y})`}\n tabIndex={tabIndex}\n role={mode === 'interactive' ? 'button' : undefined}\n aria-label={label}\n aria-pressed={\n mode === 'interactive'\n ? (primaryCondition !== undefined)\n : undefined\n }\n className={toothGroupVariants()}\n onClick={\n mode === 'interactive'\n ? () => handleClick(tooth.fdi)\n : undefined\n }\n onFocus={() => setFocusedId(tooth.fdi)}\n onKeyDown={(event) => handleKeyDown(event, tooth.fdi)}\n >\n {/* Invisible ≥44px hit target (WCAG 2.5.5). */}\n <rect\n x={-TOOTH_HIT_PAD}\n y={-TOOTH_HIT_PAD}\n width={tooth.shape.width + TOOTH_HIT_PAD * 2}\n height={tooth.shape.height + TOOTH_HIT_PAD * 2}\n fill=\"transparent\"\n />\n {/* Crown outline. */}\n <path\n d={tooth.shape.path}\n fill={fillColour}\n stroke={strokeColour}\n strokeWidth=\"1.5\"\n vectorEffect=\"non-scaling-stroke\"\n />\n {tooth.shape.innerPath ? (\n <path\n d={tooth.shape.innerPath}\n fill=\"none\"\n stroke=\"var(--muted-foreground)\"\n strokeWidth=\"0.75\"\n vectorEffect=\"non-scaling-stroke\"\n />\n ) : null}\n {/* Focus ring — drawn as a rect so it tracks the hit\n area. `group` on the parent <g> makes this\n group-focus-visible selector fire when a keyboard\n user focuses the tooth. In forced-colors mode the\n ring falls back to `CanvasText` so it stays visible\n when `var(--ring)` is remapped. */}\n <rect\n x={-TOOTH_HIT_PAD}\n y={-TOOTH_HIT_PAD}\n width={tooth.shape.width + TOOTH_HIT_PAD * 2}\n height={tooth.shape.height + TOOTH_HIT_PAD * 2}\n fill=\"none\"\n stroke=\"var(--ring)\"\n strokeWidth=\"var(--focus-ring-width)\"\n className={[\n 'opacity-0',\n 'group-focus-visible:opacity-100',\n 'forced-colors:stroke-[CanvasText]',\n ].join(' ')}\n data-testid={`tooth-${tooth.fdi}-focus-ring`}\n pointerEvents=\"none\"\n rx=\"4\"\n />\n {/* Missing-tooth X glyph. */}\n {primaryCondition === 'missing' ? (\n <path\n d={`M2 2 L${tooth.shape.width - 2} ${tooth.shape.height - 2} M${tooth.shape.width - 2} 2 L2 ${tooth.shape.height - 2}`}\n stroke={CONDITION_COLORS.missing}\n strokeWidth=\"2\"\n fill=\"none\"\n />\n ) : null}\n {/* Tooth number label — sits below (upper arch) or above (lower) the crown. */}\n <text\n x={tooth.shape.width / 2}\n y={\n tooth.meta.arch === 'upper'\n ? tooth.shape.height + 12\n : -4\n }\n textAnchor=\"middle\"\n fontSize=\"10\"\n fill=\"var(--muted-foreground)\"\n className=\"select-none\"\n aria-hidden=\"true\"\n >\n {labelText}\n </text>\n </g>\n </RadixTooltip.Trigger>\n <RadixTooltip.Portal>\n <RadixTooltip.Content\n side=\"top\"\n sideOffset={6}\n className=\"z-[var(--z-tooltip)] rounded-[var(--radius-sm)] bg-[var(--foreground)] text-[var(--background)] ps-[var(--spacing-xs)] pe-[var(--spacing-xs)] pt-[calc(var(--spacing-xs)/2)] pb-[calc(var(--spacing-xs)/2)] text-[var(--font-size-xs)]\"\n >\n {tooltipContent}\n <RadixTooltip.Arrow className=\"fill-[var(--foreground)]\" />\n </RadixTooltip.Content>\n </RadixTooltip.Portal>\n </RadixTooltip.Root>\n );\n })}\n </svg>\n\n <Legend idPrefix={idPrefix} />\n\n <div\n className={liveRegionVariants()}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n data-testid=\"tooth-scheme-live\"\n >\n {announcement}\n </div>\n </div>\n </RadixTooltip.Provider>\n );\n },\n);\n\nToothScheme.displayName = 'ToothScheme';\n\n/* ------------------------------------------------------------------ */\n/* Re-exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n rootVariants as toothSchemeVariants,\n PERMANENT_TEETH,\n PRIMARY_TEETH,\n};\nexport type {\n Dentition,\n FdiId,\n Numbering,\n ToothChart,\n ToothCondition,\n ToothMode,\n ToothState,\n} from './tooth-data';\n","import type { AgentAdapter } from '../../agent/types';\nimport type { ToothSchemeHandle } from './tooth-scheme';\n\nexport const toothSchemeAgent: AgentAdapter<ToothSchemeHandle> = {\n id: 'tooth-scheme',\n capabilities: ['pick'],\n state: {\n chart: {\n type: 'object',\n description: 'Current dental chart state — tooth conditions keyed by FDI id.',\n read: (handle) => handle.getChart(),\n },\n },\n actions: {\n focus_tooth: {\n safety: 'read',\n argsType: '{ id: FdiId }',\n description: 'Move focus to a specific tooth by FDI id.',\n invoke: (handle, args: { id: Parameters<ToothSchemeHandle['focusTooth']>[0] }) => {\n handle.focusTooth(args.id);\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'tooth-scheme' },\n item: {\n attr: 'data-fdi',\n description: 'Each rendered tooth `<g>` carries its FDI id as `data-fdi`. Tests still use `data-testid=\"tooth-<fdi>\"` separately.',\n },\n },\n};\n"],"names":["PERMANENT_TEETH","PRIMARY_TEETH","permanentAnatomy","positionInQuadrant","primaryAnatomy","palmerCode","quadrant","position","normalised","permanentUniversal","primaryUniversal","letters","index","buildMeta","fdi","isPrimary","anatomy","arch","side","universal","palmer","FDI_TO_META","acc","FDI_TO_UNIVERSAL","meta","FDI_TO_PALMER","CONDITION_TOKENS","CONDITION_COLORS","CONDITION_PATTERNS","TOOTH_SHAPES","TOOTH_GAP","TOOTH_ROW_GAP","TOOTH_HIT_PAD","layoutTeeth","dentition","ids","upper","lower","id","rowHeight","maxPerRow","positionRow","row","yOffset","rowWidth","shape","fullRowWidth","cursor","tooth","upperRow","lowerRow","maxRowWidth","t","width","height","labelFor","numbering","emptyChart","chartFromConditions","conditions","chart","list","rootVariants","cva","svgVariants","toothGroupVariants","legendVariants","legendItemVariants","legendSwatchVariants","liveRegionVariants","isControlled","props","emptyState","cycleCondition","current","sanitiseIdSuffix","raw","PatternDefs","idPrefix","pid","jsx","ALL_CONDITIONS","Legend","_idPrefix","useTranslation","condition","ToothScheme","forwardRef","mode","value","defaultValue","onChange","onSelect","ariaLabel","className","ref","rawId","useId","useMemo","internalChart","setInternalChart","useState","useEffect","layout","visibleIds","firstId","focusedId","setFocusedId","announcement","setAnnouncement","svgRef","useRef","commitChart","useCallback","next","focusToothById","svg","node","useImperativeHandle","handleKeyDown","event","order","currentIndex","nextIndex","targetQuadrant","candidate","inQuadrant","other","prev","_a","nextConditions","c","handleClick","viewBoxWidth","viewBoxHeight","regionLabel","RadixTooltip","jsxs","state","primaryCondition","anatomyLabel","conditionSuffix","label","tabIndex","fillColour","strokeColour","tooltipContent","labelText","toothSchemeAgent","handle","args"],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { jsxs as m, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as $, useState as j, useRef as I, useId as A, useMemo as z, useCallback as L, useLayoutEffect as K, Fragment as P } from "react";
|
|
3
|
+
import { c as D } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as O } from "react-i18next";
|
|
5
|
+
import { u as V } from "./index-CJE9uQmb.js";
|
|
6
|
+
import { S as F } from "./search-input-D4tC_Prn.js";
|
|
7
|
+
const _ = D(
|
|
8
|
+
[
|
|
9
|
+
"flex flex-col w-full min-h-0",
|
|
10
|
+
"rounded-[var(--radius-md)] border border-border",
|
|
11
|
+
"bg-background",
|
|
12
|
+
"focus-within:border-[color:var(--primary)]"
|
|
13
|
+
].join(" "),
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
size: {
|
|
17
|
+
sm: "text-[length:var(--font-size-sm)]",
|
|
18
|
+
md: "text-[length:var(--font-size-base)]",
|
|
19
|
+
lg: "text-[length:var(--font-size-lg)]"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: { size: "md" }
|
|
23
|
+
}
|
|
24
|
+
), H = 100, B = 8;
|
|
25
|
+
function M(t, a) {
|
|
26
|
+
const n = Math.max(0, Math.floor(t)), i = Math.floor(n / 60), l = n % 60, u = (h) => new Intl.NumberFormat(a, { minimumIntegerDigits: 2 }).format(h);
|
|
27
|
+
return `${u(i)}:${u(l)}`;
|
|
28
|
+
}
|
|
29
|
+
function U(t) {
|
|
30
|
+
const a = Math.max(0, Math.floor(t)), n = Math.floor(a / 60), i = a % 60;
|
|
31
|
+
return `PT${n}M${i}S`;
|
|
32
|
+
}
|
|
33
|
+
function G(t) {
|
|
34
|
+
let a = 0;
|
|
35
|
+
for (let n = 0; n < t.length; n += 1)
|
|
36
|
+
a = a * 31 + t.charCodeAt(n) | 0;
|
|
37
|
+
return Math.abs(a) % B;
|
|
38
|
+
}
|
|
39
|
+
const Q = [
|
|
40
|
+
"bg-[color:var(--transcript-speaker-1)]",
|
|
41
|
+
"bg-[color:var(--transcript-speaker-2)]",
|
|
42
|
+
"bg-[color:var(--transcript-speaker-3)]",
|
|
43
|
+
"bg-[color:var(--transcript-speaker-4)]",
|
|
44
|
+
"bg-[color:var(--transcript-speaker-5)]",
|
|
45
|
+
"bg-[color:var(--transcript-speaker-6)]",
|
|
46
|
+
"bg-[color:var(--transcript-speaker-7)]",
|
|
47
|
+
"bg-[color:var(--transcript-speaker-8)]"
|
|
48
|
+
];
|
|
49
|
+
function Y(t) {
|
|
50
|
+
return t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
51
|
+
}
|
|
52
|
+
function Z({ text: t, query: a }) {
|
|
53
|
+
if (!a) return t;
|
|
54
|
+
const n = Y(a);
|
|
55
|
+
return t.split(new RegExp(`(${n})`, "gi")).map(
|
|
56
|
+
(l, u) => l.toLocaleLowerCase() === a.toLocaleLowerCase() ? /* @__PURE__ */ s(
|
|
57
|
+
"mark",
|
|
58
|
+
{
|
|
59
|
+
className: "bg-[color:var(--warning)]/30 text-[color:var(--foreground)] rounded-[var(--radius-sm)]",
|
|
60
|
+
children: l
|
|
61
|
+
},
|
|
62
|
+
u
|
|
63
|
+
) : /* @__PURE__ */ s(P, { children: l }, u)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
const q = $(
|
|
67
|
+
({
|
|
68
|
+
lines: t,
|
|
69
|
+
currentTime: a = 0,
|
|
70
|
+
onSeek: n,
|
|
71
|
+
searchable: i = !0,
|
|
72
|
+
size: l = "md",
|
|
73
|
+
className: u,
|
|
74
|
+
...h
|
|
75
|
+
}, R) => {
|
|
76
|
+
const { t: c, i18n: v } = O(), [d, T] = j(""), b = I(null), w = I(null), S = A(), p = z(() => {
|
|
77
|
+
if (!Number.isFinite(a)) return -1;
|
|
78
|
+
for (let e = 0; e < t.length; e += 1) {
|
|
79
|
+
const r = t[e];
|
|
80
|
+
if (r.start <= a && a < r.end) return e;
|
|
81
|
+
}
|
|
82
|
+
return -1;
|
|
83
|
+
}, [t, a]), y = z(() => {
|
|
84
|
+
if (!d) return 0;
|
|
85
|
+
let e = 0;
|
|
86
|
+
const r = d.toLocaleLowerCase();
|
|
87
|
+
for (const o of t) {
|
|
88
|
+
const f = o.text.toLocaleLowerCase();
|
|
89
|
+
let g = f.indexOf(r);
|
|
90
|
+
for (; g !== -1; )
|
|
91
|
+
e += 1, g = f.indexOf(r, g + r.length);
|
|
92
|
+
}
|
|
93
|
+
return e;
|
|
94
|
+
}, [t, d]), E = L(
|
|
95
|
+
(e) => {
|
|
96
|
+
var r;
|
|
97
|
+
(e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "f" && i && (e.preventDefault(), (r = w.current) == null || r.focus());
|
|
98
|
+
},
|
|
99
|
+
[i]
|
|
100
|
+
), N = t.length > H, x = V({
|
|
101
|
+
count: N ? t.length : 0,
|
|
102
|
+
getScrollElement: () => b.current,
|
|
103
|
+
estimateSize: () => 48,
|
|
104
|
+
overscan: 8,
|
|
105
|
+
getItemKey: (e) => e
|
|
106
|
+
});
|
|
107
|
+
K(() => {
|
|
108
|
+
if (p < 0) return;
|
|
109
|
+
const e = b.current;
|
|
110
|
+
if (!e) return;
|
|
111
|
+
const r = e.querySelector(
|
|
112
|
+
`[data-line-index="${p}"]`
|
|
113
|
+
);
|
|
114
|
+
if (!r) return;
|
|
115
|
+
const o = typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
116
|
+
r.scrollIntoView({
|
|
117
|
+
block: "center",
|
|
118
|
+
behavior: o ? "auto" : "smooth"
|
|
119
|
+
});
|
|
120
|
+
}, [p]);
|
|
121
|
+
const k = L(
|
|
122
|
+
(e, r, o) => {
|
|
123
|
+
const f = r === p, g = G(e.speaker), C = typeof e.confidence == "number" && e.confidence < 0.6;
|
|
124
|
+
return /* @__PURE__ */ m(
|
|
125
|
+
"li",
|
|
126
|
+
{
|
|
127
|
+
ref: o == null ? void 0 : o.liRef,
|
|
128
|
+
"data-line-index": r,
|
|
129
|
+
"data-index": o == null ? void 0 : o.dataIndex,
|
|
130
|
+
"aria-current": f ? "true" : void 0,
|
|
131
|
+
style: o == null ? void 0 : o.style,
|
|
132
|
+
className: [
|
|
133
|
+
"flex items-start gap-[var(--spacing-sm)]",
|
|
134
|
+
"ps-[var(--spacing-sm)] pe-[var(--spacing-sm)] pt-[var(--spacing-sm)] pb-[var(--spacing-sm)]",
|
|
135
|
+
f ? "bg-[color:var(--accent)]/12 border-s-[3px] border-[color:var(--primary)]" : "border-s-[3px] border-transparent",
|
|
136
|
+
o != null && o.absolutePositioning ? "absolute start-0 end-0 top-0 w-full" : ""
|
|
137
|
+
].filter(Boolean).join(" "),
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ s(
|
|
140
|
+
"button",
|
|
141
|
+
{
|
|
142
|
+
type: "button",
|
|
143
|
+
onClick: () => n == null ? void 0 : n(e.start),
|
|
144
|
+
"aria-label": c("ui.chat.transcript.seekTo", {
|
|
145
|
+
time: M(e.start, v.language)
|
|
146
|
+
}),
|
|
147
|
+
className: [
|
|
148
|
+
"inline-flex items-center justify-center",
|
|
149
|
+
"font-[family-name:var(--font-mono)]",
|
|
150
|
+
"type-meta",
|
|
151
|
+
"tabular-nums",
|
|
152
|
+
"text-[color:var(--muted-foreground)]",
|
|
153
|
+
"rounded-[var(--radius-sm)]",
|
|
154
|
+
"ps-[var(--spacing-xs)] pe-[var(--spacing-xs)] pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]",
|
|
155
|
+
// WCAG 2.5.5 target size: 44×44 default, 48×48 in accessible
|
|
156
|
+
// themes — matches the DS `--min-target-size` token.
|
|
157
|
+
"min-h-[var(--min-target-size)] min-w-[var(--min-target-size)]",
|
|
158
|
+
"hover:bg-muted/20",
|
|
159
|
+
"focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid",
|
|
160
|
+
"focus-visible:outline-[color:var(--ring)] focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
161
|
+
"forced-colors:focus-visible:outline-[CanvasText]"
|
|
162
|
+
].join(" "),
|
|
163
|
+
children: /* @__PURE__ */ s("time", { dir: "ltr", dateTime: U(e.start), children: M(e.start, v.language) })
|
|
164
|
+
}
|
|
165
|
+
),
|
|
166
|
+
/* @__PURE__ */ m("div", { className: "flex-1 min-w-0", children: [
|
|
167
|
+
/* @__PURE__ */ m("div", { className: "flex items-center gap-[var(--spacing-xs)]", children: [
|
|
168
|
+
/* @__PURE__ */ s(
|
|
169
|
+
"span",
|
|
170
|
+
{
|
|
171
|
+
"aria-hidden": "true",
|
|
172
|
+
className: `inline-block size-2 rounded-[var(--radius-full)] ${Q[g]}`
|
|
173
|
+
}
|
|
174
|
+
),
|
|
175
|
+
/* @__PURE__ */ s("strong", { className: "type-title-item", children: c("ui.chat.transcript.speaker", { name: e.speaker }) }),
|
|
176
|
+
C ? /* @__PURE__ */ m("span", { className: "type-meta italic text-[color:var(--muted-foreground)]", children: [
|
|
177
|
+
"(",
|
|
178
|
+
c("ui.chat.transcript.lowConfidence"),
|
|
179
|
+
")"
|
|
180
|
+
] }) : null
|
|
181
|
+
] }),
|
|
182
|
+
/* @__PURE__ */ s(
|
|
183
|
+
"span",
|
|
184
|
+
{
|
|
185
|
+
dir: "auto",
|
|
186
|
+
className: [
|
|
187
|
+
"block",
|
|
188
|
+
C ? "underline decoration-dotted decoration-[color:var(--muted-foreground)]" : ""
|
|
189
|
+
].join(" "),
|
|
190
|
+
children: /* @__PURE__ */ s(Z, { text: e.text, query: d })
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
] })
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
r
|
|
197
|
+
);
|
|
198
|
+
},
|
|
199
|
+
[p, v.language, n, d, c]
|
|
200
|
+
);
|
|
201
|
+
return /* @__PURE__ */ m(
|
|
202
|
+
"div",
|
|
203
|
+
{
|
|
204
|
+
ref: R,
|
|
205
|
+
onKeyDown: E,
|
|
206
|
+
className: _({ size: l, className: u }),
|
|
207
|
+
...h,
|
|
208
|
+
children: [
|
|
209
|
+
i ? /* @__PURE__ */ m("div", { className: "ps-[var(--spacing-sm)] pe-[var(--spacing-sm)] pt-[var(--spacing-sm)] pb-[var(--spacing-xs)] flex items-center gap-[var(--spacing-sm)] border-b border-border", children: [
|
|
210
|
+
/* @__PURE__ */ s(
|
|
211
|
+
F,
|
|
212
|
+
{
|
|
213
|
+
ref: w,
|
|
214
|
+
id: S,
|
|
215
|
+
placeholder: c("ui.chat.transcript.search"),
|
|
216
|
+
"aria-label": c("ui.chat.transcript.search"),
|
|
217
|
+
"aria-keyshortcuts": "Meta+F Control+F",
|
|
218
|
+
debounceMs: 150,
|
|
219
|
+
onChange: (e) => T(e),
|
|
220
|
+
size: "sm"
|
|
221
|
+
}
|
|
222
|
+
),
|
|
223
|
+
d ? /* @__PURE__ */ s(
|
|
224
|
+
"span",
|
|
225
|
+
{
|
|
226
|
+
role: "status",
|
|
227
|
+
"aria-live": "polite",
|
|
228
|
+
className: "type-meta text-[color:var(--muted-foreground)] tabular-nums",
|
|
229
|
+
children: y === 0 ? c("ui.chat.transcript.noMatches") : c("ui.chat.transcript.matchCount", { count: y })
|
|
230
|
+
}
|
|
231
|
+
) : null
|
|
232
|
+
] }) : null,
|
|
233
|
+
/* @__PURE__ */ s(
|
|
234
|
+
"div",
|
|
235
|
+
{
|
|
236
|
+
ref: b,
|
|
237
|
+
className: "flex-1 min-h-0 overflow-y-auto overflow-x-hidden",
|
|
238
|
+
children: N ? /* @__PURE__ */ s(
|
|
239
|
+
"ol",
|
|
240
|
+
{
|
|
241
|
+
className: "relative list-none ps-0 m-0",
|
|
242
|
+
style: { blockSize: `${x.getTotalSize()}px` },
|
|
243
|
+
children: x.getVirtualItems().map((e) => {
|
|
244
|
+
const r = t[e.index];
|
|
245
|
+
return r ? k(r, e.index, {
|
|
246
|
+
liRef: x.measureElement,
|
|
247
|
+
dataIndex: e.index,
|
|
248
|
+
style: { transform: `translateY(${e.start}px)` },
|
|
249
|
+
absolutePositioning: !0
|
|
250
|
+
}) : null;
|
|
251
|
+
})
|
|
252
|
+
}
|
|
253
|
+
) : /* @__PURE__ */ s("ol", { className: "list-none ps-0 m-0", children: t.map((e, r) => k(e, r)) })
|
|
254
|
+
}
|
|
255
|
+
)
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
);
|
|
261
|
+
q.displayName = "TranscriptPanel";
|
|
262
|
+
export {
|
|
263
|
+
q as T
|
|
264
|
+
};
|
|
265
|
+
//# sourceMappingURL=transcript-panel-aI14fHYA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-panel-aI14fHYA.js","sources":["../../src/components/transcript-panel/transcript-panel.tsx"],"sourcesContent":["import {\n forwardRef,\n Fragment,\n useCallback,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { SearchInput } from '../search-input';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface TranscriptLine {\n speaker: string;\n text: string;\n /** Seconds, floating-point — matches HTMLMediaElement.currentTime. */\n start: number;\n end: number;\n /** 0..1 — rendered with a dotted underline when below 0.6. */\n confidence?: number;\n}\n\nexport interface TranscriptPanelProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>,\n VariantProps<typeof rootVariants> {\n lines: TranscriptLine[];\n /** Current playback time in seconds — drives the active line highlight. */\n currentTime?: number;\n onSeek?: (seconds: number) => void;\n /** Show the search bar. */\n searchable?: boolean;\n}\n\nconst rootVariants = cva(\n [\n 'flex flex-col w-full min-h-0',\n 'rounded-[var(--radius-md)] border border-border',\n 'bg-background',\n 'focus-within:border-[color:var(--primary)]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'text-[length:var(--font-size-sm)]',\n md: 'text-[length:var(--font-size-base)]',\n lg: 'text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst VIRTUALIZATION_THRESHOLD = 100;\nconst SPEAKER_SLOT_COUNT = 8;\n\nfunction formatTime(seconds: number, locale: string): string {\n const total = Math.max(0, Math.floor(seconds));\n const m = Math.floor(total / 60);\n const s = total % 60;\n const fmt = (n: number) =>\n new Intl.NumberFormat(locale, { minimumIntegerDigits: 2 }).format(n);\n return `${fmt(m)}:${fmt(s)}`;\n}\n\n/** ISO-8601 duration (PT#M#S) for <time datetime=\"...\">. */\nfunction secondsToIsoDuration(seconds: number): string {\n const total = Math.max(0, Math.floor(seconds));\n const m = Math.floor(total / 60);\n const s = total % 60;\n return `PT${m}M${s}S`;\n}\n\n/** Deterministic speaker slot (0..7) based on name hash. */\nfunction speakerSlot(name: string): number {\n let hash = 0;\n for (let i = 0; i < name.length; i += 1) {\n hash = (hash * 31 + name.charCodeAt(i)) | 0;\n }\n return Math.abs(hash) % SPEAKER_SLOT_COUNT;\n}\n\n/** Per-slot background classes. Indices align with the speaker palette tokens\n * in tokens/index.css. Static strings so Tailwind can pick them up at build. */\nconst SPEAKER_BG_CLASSES = [\n 'bg-[color:var(--transcript-speaker-1)]',\n 'bg-[color:var(--transcript-speaker-2)]',\n 'bg-[color:var(--transcript-speaker-3)]',\n 'bg-[color:var(--transcript-speaker-4)]',\n 'bg-[color:var(--transcript-speaker-5)]',\n 'bg-[color:var(--transcript-speaker-6)]',\n 'bg-[color:var(--transcript-speaker-7)]',\n 'bg-[color:var(--transcript-speaker-8)]',\n] as const;\n\n/** Escape a literal string for safe use inside a RegExp. */\nfunction escapeRegExp(input: string): string {\n return input.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\ninterface HighlightedTextProps {\n text: string;\n query: string;\n}\n\n/** Renders text with <mark> wrapping around case-insensitive matches.\n * No dangerouslySetInnerHTML — splits text nodes only. */\nfunction HighlightedText({ text, query }: HighlightedTextProps): ReactNode {\n if (!query) return text;\n const escaped = escapeRegExp(query);\n const parts = text.split(new RegExp(`(${escaped})`, 'gi'));\n return parts.map((part, i) =>\n part.toLocaleLowerCase() === query.toLocaleLowerCase() ? (\n <mark\n key={i}\n className=\"bg-[color:var(--warning)]/30 text-[color:var(--foreground)] rounded-[var(--radius-sm)]\"\n >\n {part}\n </mark>\n ) : (\n <Fragment key={i}>{part}</Fragment>\n ),\n );\n}\n\nexport const TranscriptPanel = forwardRef<HTMLDivElement, TranscriptPanelProps>(\n (\n {\n lines,\n currentTime = 0,\n onSeek,\n searchable = true,\n size = 'md',\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const [query, setQuery] = useState('');\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const searchInputRef = useRef<HTMLInputElement | null>(null);\n const searchId = useId();\n\n /* Active-line index */\n const activeIndex = useMemo(() => {\n if (!Number.isFinite(currentTime)) return -1;\n for (let i = 0; i < lines.length; i += 1) {\n const line = lines[i];\n if (line.start <= currentTime && currentTime < line.end) return i;\n }\n return -1;\n }, [lines, currentTime]);\n\n /* Match count for search */\n const matchCount = useMemo(() => {\n if (!query) return 0;\n let count = 0;\n const needle = query.toLocaleLowerCase();\n for (const line of lines) {\n const hay = line.text.toLocaleLowerCase();\n let idx = hay.indexOf(needle);\n while (idx !== -1) {\n count += 1;\n idx = hay.indexOf(needle, idx + needle.length);\n }\n }\n return count;\n }, [lines, query]);\n\n /* Ctrl/Cmd+F shortcut — focuses the search field when focus is within. */\n const handleRootKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'f' && searchable) {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n },\n [searchable],\n );\n\n /* Virtualisation above 100 lines */\n const virtualized = lines.length > VIRTUALIZATION_THRESHOLD;\n const virtualizer = useVirtualizer({\n count: virtualized ? lines.length : 0,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => 48,\n overscan: 8,\n getItemKey: (i) => i,\n });\n\n /* Auto-scroll active line into view when it changes. */\n useLayoutEffect(() => {\n if (activeIndex < 0) return;\n const scroller = scrollRef.current;\n if (!scroller) return;\n const target = scroller.querySelector(\n `[data-line-index=\"${activeIndex}\"]`,\n ) as HTMLElement | null;\n if (!target) return;\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n target.scrollIntoView({\n block: 'center',\n behavior: prefersReducedMotion ? 'auto' : 'smooth',\n });\n }, [activeIndex]);\n\n const renderLine = useCallback(\n (\n line: TranscriptLine,\n index: number,\n extras?: {\n liRef?: (node: HTMLLIElement | null) => void;\n dataIndex?: number;\n // Style is an inline-style escape hatch — virtualizer offsets\n // cannot be expressed as static Tailwind. See 23-constraints §4.\n style?: CSSProperties;\n absolutePositioning?: boolean;\n },\n ) => {\n const isActive = index === activeIndex;\n const slot = speakerSlot(line.speaker);\n const lowConfidence =\n typeof line.confidence === 'number' && line.confidence < 0.6;\n return (\n <li\n key={index}\n ref={extras?.liRef}\n data-line-index={index}\n data-index={extras?.dataIndex}\n aria-current={isActive ? 'true' : undefined}\n // Inline style — permitted per 23-constraints\n // §Runtime-computed dimensions (virtualizer translateY).\n style={extras?.style}\n className={[\n 'flex items-start gap-[var(--spacing-sm)]',\n 'ps-[var(--spacing-sm)] pe-[var(--spacing-sm)] pt-[var(--spacing-sm)] pb-[var(--spacing-sm)]',\n isActive\n ? 'bg-[color:var(--accent)]/12 border-s-[3px] border-[color:var(--primary)]'\n : 'border-s-[3px] border-transparent',\n extras?.absolutePositioning\n ? 'absolute start-0 end-0 top-0 w-full'\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <button\n type=\"button\"\n onClick={() => onSeek?.(line.start)}\n aria-label={t('ui.chat.transcript.seekTo', {\n time: formatTime(line.start, i18n.language),\n })}\n className={[\n 'inline-flex items-center justify-center',\n 'font-[family-name:var(--font-mono)]',\n 'type-meta',\n 'tabular-nums',\n 'text-[color:var(--muted-foreground)]',\n 'rounded-[var(--radius-sm)]',\n 'ps-[var(--spacing-xs)] pe-[var(--spacing-xs)] pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]',\n // WCAG 2.5.5 target size: 44×44 default, 48×48 in accessible\n // themes — matches the DS `--min-target-size` token.\n 'min-h-[var(--min-target-size)] min-w-[var(--min-target-size)]',\n 'hover:bg-muted/20',\n 'focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid',\n 'focus-visible:outline-[color:var(--ring)] focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' ')}\n >\n <time dir=\"ltr\" dateTime={secondsToIsoDuration(line.start)}>\n {formatTime(line.start, i18n.language)}\n </time>\n </button>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-[var(--spacing-xs)]\">\n <span\n aria-hidden=\"true\"\n className={`inline-block size-2 rounded-[var(--radius-full)] ${SPEAKER_BG_CLASSES[slot]}`}\n />\n <strong className=\"type-title-item\">\n {t('ui.chat.transcript.speaker', { name: line.speaker })}\n </strong>\n {lowConfidence ? (\n <span className=\"type-meta italic text-[color:var(--muted-foreground)]\">\n ({t('ui.chat.transcript.lowConfidence')})\n </span>\n ) : null}\n </div>\n <span\n dir=\"auto\"\n className={[\n 'block',\n lowConfidence\n ? 'underline decoration-dotted decoration-[color:var(--muted-foreground)]'\n : '',\n ].join(' ')}\n >\n <HighlightedText text={line.text} query={query} />\n </span>\n </div>\n </li>\n );\n },\n [activeIndex, i18n.language, onSeek, query, t],\n );\n\n return (\n <div\n ref={ref}\n onKeyDown={handleRootKeyDown}\n className={rootVariants({ size, className })}\n {...rest}\n >\n {searchable ? (\n <div className=\"ps-[var(--spacing-sm)] pe-[var(--spacing-sm)] pt-[var(--spacing-sm)] pb-[var(--spacing-xs)] flex items-center gap-[var(--spacing-sm)] border-b border-border\">\n <SearchInput\n ref={searchInputRef}\n id={searchId}\n placeholder={t('ui.chat.transcript.search')}\n aria-label={t('ui.chat.transcript.search')}\n aria-keyshortcuts=\"Meta+F Control+F\"\n debounceMs={150}\n onChange={(v) => setQuery(v)}\n size=\"sm\"\n />\n {query ? (\n <span\n role=\"status\"\n aria-live=\"polite\"\n className=\"type-meta text-[color:var(--muted-foreground)] tabular-nums\"\n >\n {matchCount === 0\n ? t('ui.chat.transcript.noMatches')\n : t('ui.chat.transcript.matchCount', { count: matchCount })}\n </span>\n ) : null}\n </div>\n ) : null}\n\n <div\n ref={scrollRef}\n className=\"flex-1 min-h-0 overflow-y-auto overflow-x-hidden\"\n >\n {virtualized ? (\n <ol\n className=\"relative list-none ps-0 m-0\"\n // Inline style — permitted per 23-constraints\n // §Runtime-computed dimensions (virtualizer total size).\n style={{ blockSize: `${virtualizer.getTotalSize()}px` }}\n >\n {virtualizer.getVirtualItems().map((vi) => {\n const line = lines[vi.index];\n if (!line) return null;\n // Put the measureElement ref on the <li> directly — a <div>\n // child of <ol> is invalid and breaks list semantics for\n // assistive tech.\n return renderLine(line, vi.index, {\n liRef: virtualizer.measureElement,\n dataIndex: vi.index,\n style: { transform: `translateY(${vi.start}px)` },\n absolutePositioning: true,\n });\n })}\n </ol>\n ) : (\n <ol className=\"list-none ps-0 m-0\">\n {lines.map((line, index) => renderLine(line, index))}\n </ol>\n )}\n </div>\n </div>\n );\n },\n);\n\nTranscriptPanel.displayName = 'TranscriptPanel';\n"],"names":["rootVariants","cva","VIRTUALIZATION_THRESHOLD","SPEAKER_SLOT_COUNT","formatTime","seconds","locale","total","m","s","fmt","n","secondsToIsoDuration","speakerSlot","name","hash","i","SPEAKER_BG_CLASSES","escapeRegExp","input","HighlightedText","text","query","escaped","part","jsx","Fragment","TranscriptPanel","forwardRef","lines","currentTime","onSeek","searchable","size","className","rest","ref","t","i18n","useTranslation","setQuery","useState","scrollRef","useRef","searchInputRef","searchId","useId","activeIndex","useMemo","line","matchCount","count","needle","hay","idx","handleRootKeyDown","useCallback","_a","virtualized","virtualizer","useVirtualizer","useLayoutEffect","scroller","target","prefersReducedMotion","renderLine","index","extras","isActive","slot","lowConfidence","jsxs","SearchInput","v","vi"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { c as e } from "./createLucideIcon-CrFbzy84.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license lucide-react v1.8.0 - ISC
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the ISC license.
|
|
6
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
const a = [
|
|
9
|
+
[
|
|
10
|
+
"path",
|
|
11
|
+
{
|
|
12
|
+
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
13
|
+
key: "wmoenq"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
17
|
+
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
18
|
+
], o = e("triangle-alert", a);
|
|
19
|
+
export {
|
|
20
|
+
o as T
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=triangle-alert-CBPUIzQo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triangle-alert-CBPUIzQo.js","sources":["../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", __iconNode);\n\nexport { __iconNode, TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n"],"names":["__iconNode","TriangleAlert","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAC7C,GACMC,IAAgBC,EAAiB,kBAAkBF,CAAU;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsxs as r, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as f } from "react";
|
|
3
|
+
import { c as i } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as u } from "react-i18next";
|
|
5
|
+
const g = i(
|
|
6
|
+
[
|
|
7
|
+
"inline-flex items-center",
|
|
8
|
+
"text-[color:var(--muted-foreground)]"
|
|
9
|
+
].join(" "),
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
density: {
|
|
13
|
+
default: "gap-[var(--spacing-sm)]",
|
|
14
|
+
compact: "gap-[var(--spacing-xs)]"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
sm: "text-[length:var(--font-size-xs)]",
|
|
18
|
+
md: "text-[length:var(--font-size-sm)]",
|
|
19
|
+
lg: "text-[length:var(--font-size-base)]"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: { density: "default", size: "md" }
|
|
23
|
+
}
|
|
24
|
+
), v = i("inline-flex items-center", {
|
|
25
|
+
variants: {
|
|
26
|
+
density: {
|
|
27
|
+
default: "gap-[var(--spacing-xs)]",
|
|
28
|
+
compact: "gap-[calc(var(--spacing)*0.75)]"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: { density: "default" }
|
|
32
|
+
}), e = i(
|
|
33
|
+
[
|
|
34
|
+
"inline-block rounded-[var(--radius-full)]",
|
|
35
|
+
"bg-[color:currentColor]",
|
|
36
|
+
// Accessible themes set --animation-duration:0ms; reduced-motion falls back via media query below
|
|
37
|
+
"motion-safe:animate-[typing-indicator-dot_var(--animation-duration-typing,1.4s)_ease-in-out_infinite]",
|
|
38
|
+
"motion-reduce:opacity-60",
|
|
39
|
+
"[.theme-accessible_&]:animate-none [.theme-accessible_&]:opacity-60",
|
|
40
|
+
"forced-colors:bg-[CanvasText]"
|
|
41
|
+
].join(" "),
|
|
42
|
+
{
|
|
43
|
+
variants: {
|
|
44
|
+
size: {
|
|
45
|
+
sm: "size-[6px]",
|
|
46
|
+
md: "size-[8px]",
|
|
47
|
+
lg: "size-[10px]"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
defaultVariants: { size: "md" }
|
|
51
|
+
}
|
|
52
|
+
), x = f(
|
|
53
|
+
({ size: a = "md", density: n = "default", label: l, hideLabel: s = !1, className: c, ...m }, d) => {
|
|
54
|
+
const { t: p } = u(), o = l ?? p("ui.chat.typing");
|
|
55
|
+
return /* @__PURE__ */ r(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
ref: d,
|
|
59
|
+
role: "status",
|
|
60
|
+
"aria-live": "polite",
|
|
61
|
+
"aria-atomic": "true",
|
|
62
|
+
"aria-label": s ? o : void 0,
|
|
63
|
+
className: g({ size: a, density: n, className: c }),
|
|
64
|
+
...m,
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ r("span", { "aria-hidden": "true", className: v({ density: n }), children: [
|
|
67
|
+
/* @__PURE__ */ t("span", { className: `${e({ size: a })} [animation-delay:0ms]` }),
|
|
68
|
+
/* @__PURE__ */ t("span", { className: `${e({ size: a })} [animation-delay:200ms]` }),
|
|
69
|
+
/* @__PURE__ */ t("span", { className: `${e({ size: a })} [animation-delay:400ms]` })
|
|
70
|
+
] }),
|
|
71
|
+
s ? null : /* @__PURE__ */ t("span", { className: "font-medium", children: o })
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
x.displayName = "TypingIndicator";
|
|
78
|
+
export {
|
|
79
|
+
x as T
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=typing-indicator-BTVDEpnd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-indicator-BTVDEpnd.js","sources":["../../src/components/typing-indicator/typing-indicator.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\nconst indicatorVariants = cva(\n [\n 'inline-flex items-center',\n 'text-[color:var(--muted-foreground)]',\n ].join(' '),\n {\n variants: {\n density: {\n default: 'gap-[var(--spacing-sm)]',\n compact: 'gap-[var(--spacing-xs)]',\n },\n size: {\n sm: 'text-[length:var(--font-size-xs)]',\n md: 'text-[length:var(--font-size-sm)]',\n lg: 'text-[length:var(--font-size-base)]',\n },\n },\n defaultVariants: { density: 'default', size: 'md' },\n },\n);\n\nconst dotsVariants = cva('inline-flex items-center', {\n variants: {\n density: {\n default: 'gap-[var(--spacing-xs)]',\n compact: 'gap-[calc(var(--spacing)*0.75)]',\n },\n },\n defaultVariants: { density: 'default' },\n});\n\nconst dotVariants = cva(\n [\n 'inline-block rounded-[var(--radius-full)]',\n 'bg-[color:currentColor]',\n // Accessible themes set --animation-duration:0ms; reduced-motion falls back via media query below\n 'motion-safe:animate-[typing-indicator-dot_var(--animation-duration-typing,1.4s)_ease-in-out_infinite]',\n 'motion-reduce:opacity-60',\n '[.theme-accessible_&]:animate-none [.theme-accessible_&]:opacity-60',\n 'forced-colors:bg-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'size-[6px]',\n md: 'size-[8px]',\n lg: 'size-[10px]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\ntype NativeDivProps = Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'aria-live' | 'aria-atomic'>;\n\nexport interface TypingIndicatorProps\n extends NativeDivProps,\n VariantProps<typeof indicatorVariants> {\n /** Optional override. When omitted, uses t('ui.chat.typing'). */\n label?: string;\n /** Hide the visible label, keeping only the animated dots. The label still\n * carries the accessible name via aria-label. */\n hideLabel?: boolean;\n}\n\nexport const TypingIndicator = forwardRef<HTMLDivElement, TypingIndicatorProps>(\n (\n { size = 'md', density = 'default', label, hideLabel = false, className, ...rest },\n ref,\n ) => {\n const { t } = useTranslation();\n const resolvedLabel = label ?? t('ui.chat.typing');\n\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={hideLabel ? resolvedLabel : undefined}\n className={indicatorVariants({ size, density, className })}\n {...rest}\n >\n <span aria-hidden=\"true\" className={dotsVariants({ density })}>\n <span className={`${dotVariants({ size })} [animation-delay:0ms]`} />\n <span className={`${dotVariants({ size })} [animation-delay:200ms]`} />\n <span className={`${dotVariants({ size })} [animation-delay:400ms]`} />\n </span>\n {!hideLabel ? (\n <span className=\"font-medium\">{resolvedLabel}</span>\n ) : null}\n </div>\n );\n },\n);\n\nTypingIndicator.displayName = 'TypingIndicator';\n"],"names":["indicatorVariants","cva","dotsVariants","dotVariants","TypingIndicator","forwardRef","size","density","label","hideLabel","className","rest","ref","t","useTranslation","resolvedLabel","jsxs","jsx"],"mappings":";;;;AAIA,MAAMA,IAAoBC;AAAA,EACxB;AAAA,IACE;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MAAA;AAAA,MAEX,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,SAAS,WAAW,MAAM,KAAA;AAAA,EAAK;AAEtD,GAEMC,IAAeD,EAAI,4BAA4B;AAAA,EACnD,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,iBAAiB,EAAE,SAAS,UAAA;AAC9B,CAAC,GAEKE,IAAcF;AAAA,EAClB;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,MAAM,KAAA;AAAA,EAAK;AAElC,GAcaG,IAAkBC;AAAA,EAC7B,CACE,EAAE,MAAAC,IAAO,MAAM,SAAAC,IAAU,WAAW,OAAAC,GAAO,WAAAC,IAAY,IAAO,WAAAC,GAAW,GAAGC,EAAA,GAC5EC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAgBP,KAASK,EAAE,gBAAgB;AAEjD,WACE,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAJ;AAAA,QACA,MAAK;AAAA,QACL,aAAU;AAAA,QACV,eAAY;AAAA,QACZ,cAAYH,IAAYM,IAAgB;AAAA,QACxC,WAAWf,EAAkB,EAAE,MAAAM,GAAM,SAAAC,GAAS,WAAAG,GAAW;AAAA,QACxD,GAAGC;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAK,EAAC,QAAA,EAAK,eAAY,QAAO,WAAWd,EAAa,EAAE,SAAAK,GAAS,GAC1D,UAAA;AAAA,YAAA,gBAAAU,EAAC,QAAA,EAAK,WAAW,GAAGd,EAAY,EAAE,MAAAG,EAAA,CAAM,CAAC,0BAA0B;AAAA,YACnE,gBAAAW,EAAC,UAAK,WAAW,GAAGd,EAAY,EAAE,MAAAG,EAAA,CAAM,CAAC,4BAA4B;AAAA,YACrE,gBAAAW,EAAC,UAAK,WAAW,GAAGd,EAAY,EAAE,MAAAG,EAAA,CAAM,CAAC,2BAAA,CAA4B;AAAA,UAAA,GACvE;AAAA,UACEG,IAEE,OADF,gBAAAQ,EAAC,UAAK,WAAU,eAAe,aAAc;AAAA,QAC3C;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AAEAb,EAAgB,cAAc;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useRef as o, useEffect as a, useCallback as m, useMemo as T } from "react";
|
|
2
|
+
function d(u, s) {
|
|
3
|
+
const t = o(u), n = o(null), r = o(null);
|
|
4
|
+
a(() => {
|
|
5
|
+
t.current = u;
|
|
6
|
+
}, [u]);
|
|
7
|
+
const e = m(() => {
|
|
8
|
+
n.current !== null && (clearTimeout(n.current), n.current = null), r.current = null;
|
|
9
|
+
}, []), f = m(() => {
|
|
10
|
+
n.current !== null && (clearTimeout(n.current), n.current = null);
|
|
11
|
+
const c = r.current;
|
|
12
|
+
r.current = null, c && t.current(...c);
|
|
13
|
+
}, []);
|
|
14
|
+
return a(() => e, [e]), T(() => {
|
|
15
|
+
const l = (...R) => {
|
|
16
|
+
r.current = R, n.current !== null && clearTimeout(n.current), n.current = setTimeout(() => {
|
|
17
|
+
n.current = null;
|
|
18
|
+
const i = r.current;
|
|
19
|
+
r.current = null, i && t.current(...i);
|
|
20
|
+
}, s);
|
|
21
|
+
};
|
|
22
|
+
return l.cancel = e, l.flush = f, l;
|
|
23
|
+
}, [s, e, f]);
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
d as u
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=use-debounced-callback-BisrB-Fq.js.map
|