@alfadocs/ui-kit 0.1.6 → 0.1.8
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/README.md +18 -0
- package/dist/_chunks/{balance-cell-renderer-BRWt3neo.js → balance-cell-renderer-BWm3knY9.js} +2 -2
- package/dist/_chunks/{chat-container-BZvQ3_yT.js → chat-container-Cm3SlR2p.js} +12 -12
- package/dist/_chunks/{chat-input-DsIrWM4f.js → chat-input-DreOPP8A.js} +36 -31
- package/dist/_chunks/{dropdown-menu-JNo66A-j.js → dropdown-menu-Cw3EyPZv.js} +35 -31
- package/dist/_chunks/{leo-sidebar-Bh3dPDTQ.js → leo-sidebar-nbHib2D-.js} +97 -89
- package/dist/_chunks/{notification-tray-Bq-08ReD.js → notification-tray-B7U5YZYg.js} +5 -2
- package/dist/_chunks/{patient-shell-DP54y6rc.js → patient-shell-7cXqIMFg.js} +2 -2
- package/dist/_chunks/{popover-DvAtFOi-.js → popover-C3CTUsqh.js} +20 -16
- package/dist/_chunks/{privacy-lock-DS6QRo2N.js → privacy-lock-CQpgkLec.js} +23 -23
- package/dist/_chunks/{suggestion-chip-6AB40rxz.js → suggestion-chip-BNJ2M8Os.js} +3 -3
- package/dist/_chunks/{theme-toggle-COHFwO2H.js → theme-toggle-BHiMMEQN.js} +2 -2
- package/dist/_chunks/{workflow-map-DGJwVcO-.js → workflow-map-XeqHDFvp.js} +2 -2
- package/dist/agent-catalog.json +1 -1
- package/dist/components/chat-container/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/suggestion-chip/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/index.js +12 -12
- package/dist/patterns/leo-assistant/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/accordion-B6fyINUk.js.map +0 -1
- package/dist/_chunks/accordion.agent-Cz-yglRa.js.map +0 -1
- package/dist/_chunks/agenda-card-DIWDvWum.js.map +0 -1
- package/dist/_chunks/agenda-tray-BqQZwiHc.js.map +0 -1
- package/dist/_chunks/ai-prompt-input-CI27KmZ1.js.map +0 -1
- package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
- package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +0 -1
- package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
- package/dist/_chunks/aspect-ratio-CxsdG8vk.js.map +0 -1
- package/dist/_chunks/audio-recorder-B-8SKgKn.js.map +0 -1
- package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
- package/dist/_chunks/autocomplete.agent-DqOy0_1P.js.map +0 -1
- package/dist/_chunks/avatar-Dcr6XuDQ.js.map +0 -1
- package/dist/_chunks/badge-mrstWxve.js.map +0 -1
- package/dist/_chunks/balance-cell-renderer-BRWt3neo.js.map +0 -1
- package/dist/_chunks/breadcrumb-D6xpsP7n.js.map +0 -1
- package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
- package/dist/_chunks/button-group-CONver7M.js.map +0 -1
- package/dist/_chunks/button.agent-BuGZBktn.js.map +0 -1
- package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
- package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
- package/dist/_chunks/chart.agent-BdS-_8MO.js.map +0 -1
- package/dist/_chunks/chat-container-BZvQ3_yT.js.map +0 -1
- package/dist/_chunks/chat-container.agent-Dhw9xCJt.js.map +0 -1
- package/dist/_chunks/chat-input-DsIrWM4f.js.map +0 -1
- package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
- package/dist/_chunks/check-DPdL_Sm7.js.map +0 -1
- package/dist/_chunks/checkbox-DNK4qS2_.js.map +0 -1
- package/dist/_chunks/checkbox-group-CWpGZEF6.js.map +0 -1
- package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +0 -1
- package/dist/_chunks/chevron-left-CX1jqD2M.js.map +0 -1
- package/dist/_chunks/chevron-right-BrpYejk0.js.map +0 -1
- package/dist/_chunks/chevron-up-zOEDrmBB.js.map +0 -1
- package/dist/_chunks/chevrons-right-d9MwesPG.js.map +0 -1
- package/dist/_chunks/circle-BkqTgYmt.js.map +0 -1
- package/dist/_chunks/circle-alert-ChA9opNA.js.map +0 -1
- package/dist/_chunks/circle-check-9AeSgJD_.js.map +0 -1
- package/dist/_chunks/circle-x-Du2CmjaU.js.map +0 -1
- package/dist/_chunks/clock-21AGPWJ5.js.map +0 -1
- package/dist/_chunks/collapsible-D4LOdLxp.js.map +0 -1
- package/dist/_chunks/color-picker-e9PmpaGH.js.map +0 -1
- package/dist/_chunks/combobox.agent-ByobCLJ_.js.map +0 -1
- package/dist/_chunks/command-palette.agent-js2rxgeR.js.map +0 -1
- package/dist/_chunks/compose-refs-C0k0tdqF.js.map +0 -1
- package/dist/_chunks/copy-B00HK7tj.js.map +0 -1
- package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +0 -1
- package/dist/_chunks/date-picker-DYXNsWmM.js.map +0 -1
- package/dist/_chunks/date-range-picker-BcNDJI7m.js.map +0 -1
- package/dist/_chunks/date-time-picker-CmGiTU__.js.map +0 -1
- package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
- package/dist/_chunks/dialog.agent-DEG_fVzG.js.map +0 -1
- package/dist/_chunks/dropdown-menu-JNo66A-j.js.map +0 -1
- package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js.map +0 -1
- package/dist/_chunks/ellipsis-rgGdiK_9.js.map +0 -1
- package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
- package/dist/_chunks/eye-off-xEXDAh5z.js.map +0 -1
- package/dist/_chunks/file-text-DSNuv2B8.js.map +0 -1
- package/dist/_chunks/file-upload.agent-B9AN82LA.js.map +0 -1
- package/dist/_chunks/flag-DZ6V7-hU.js.map +0 -1
- package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
- package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
- package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
- package/dist/_chunks/freemium-paywall-CkefGLM_.js.map +0 -1
- package/dist/_chunks/globe-BkEFMNSg.js.map +0 -1
- package/dist/_chunks/group-options-BvKhQ3xb.js.map +0 -1
- package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
- package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
- package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +0 -1
- package/dist/_chunks/index-4xgbg-sn.js.map +0 -1
- package/dist/_chunks/index-CJE9uQmb.js.map +0 -1
- package/dist/_chunks/index-CeY1nNvd.js.map +0 -1
- package/dist/_chunks/index-D2ZczOXr.js.map +0 -1
- package/dist/_chunks/info-B9XNKn05.js.map +0 -1
- package/dist/_chunks/input-surface-u4QB0lxe.js.map +0 -1
- package/dist/_chunks/isSameDay-ecuM8PBB.js.map +0 -1
- package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +0 -1
- package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
- package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
- package/dist/_chunks/leo-sidebar-Bh3dPDTQ.js.map +0 -1
- package/dist/_chunks/list-B1ozIjQe.js.map +0 -1
- package/dist/_chunks/live-region-C41SO3cA.js.map +0 -1
- package/dist/_chunks/log-out-616hnn2-.js.map +0 -1
- package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
- package/dist/_chunks/mail-C8irm52s.js.map +0 -1
- package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
- package/dist/_chunks/message-card-qAp2-WQK.js.map +0 -1
- package/dist/_chunks/message-tray-VaLpQU5t.js.map +0 -1
- package/dist/_chunks/multi-select.agent-CNsyW3n9.js.map +0 -1
- package/dist/_chunks/navigation-menu-EVFau1O2.js.map +0 -1
- package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +0 -1
- package/dist/_chunks/notification-card-BF2_veHy.js.map +0 -1
- package/dist/_chunks/notification-tray-Bq-08ReD.js.map +0 -1
- package/dist/_chunks/number-input-DjpT_RXJ.js.map +0 -1
- package/dist/_chunks/otp-input-De5_Ih7B.js.map +0 -1
- package/dist/_chunks/pagination.agent-oEaqmtx5.js.map +0 -1
- package/dist/_chunks/password-input-DJDVznWH.js.map +0 -1
- package/dist/_chunks/patient-shell-DP54y6rc.js.map +0 -1
- package/dist/_chunks/payment-form-hcl-gGrp.js.map +0 -1
- package/dist/_chunks/payment-form.agent-BkEnRerR.js.map +0 -1
- package/dist/_chunks/pdf-viewer.agent-CfIHhcHx.js.map +0 -1
- package/dist/_chunks/phone-input-DE_39q65.js.map +0 -1
- package/dist/_chunks/plus-CYKNmfuA.js.map +0 -1
- package/dist/_chunks/popover-DvAtFOi-.js.map +0 -1
- package/dist/_chunks/popover.agent-C0qOx9WT.js.map +0 -1
- package/dist/_chunks/printer-CeVEWfQq.js.map +0 -1
- package/dist/_chunks/privacy-lock-DS6QRo2N.js.map +0 -1
- package/dist/_chunks/progress-B4Of_pzz.js.map +0 -1
- package/dist/_chunks/progress.agent-CXkHURjX.js.map +0 -1
- package/dist/_chunks/purify.es-DpIUMBYC.js.map +0 -1
- package/dist/_chunks/radio-cs8N1wJi.js.map +0 -1
- package/dist/_chunks/radio-group-BIUbpWml.js.map +0 -1
- package/dist/_chunks/react-day-picker-C04L_28V.js.map +0 -1
- package/dist/_chunks/registry-C9nwlNyL.js.map +0 -1
- package/dist/_chunks/resizable.agent-DBpPGNdy.js.map +0 -1
- package/dist/_chunks/rich-text-editor.agent-COSb5_2D.js.map +0 -1
- package/dist/_chunks/safe-image-src-DstKgCo7.js.map +0 -1
- package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
- package/dist/_chunks/search-BonnQsHv.js.map +0 -1
- package/dist/_chunks/search-bar-fcGqDFW3.js.map +0 -1
- package/dist/_chunks/search-input-BVMCONyN.js.map +0 -1
- package/dist/_chunks/select-IY_JQa-F.js.map +0 -1
- package/dist/_chunks/send-CySZIRPJ.js.map +0 -1
- package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
- package/dist/_chunks/sheet-BhNpLHc9.js.map +0 -1
- package/dist/_chunks/sheet.agent-DwQlBqK9.js.map +0 -1
- package/dist/_chunks/sidebar-OVzwN3jE.js.map +0 -1
- package/dist/_chunks/sidebar.agent-B0fnH9CC.js.map +0 -1
- package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
- package/dist/_chunks/signature-capture.agent-C38VPXxg.js.map +0 -1
- package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
- package/dist/_chunks/skip-link-DmZ3c6cb.js.map +0 -1
- package/dist/_chunks/slider-DjyRt3Mp.js.map +0 -1
- package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
- package/dist/_chunks/sparkline.agent-C_xp3NRB.js.map +0 -1
- package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
- package/dist/_chunks/square-CZoGU14v.js.map +0 -1
- package/dist/_chunks/square-check-big-Jr-0202D.js.map +0 -1
- package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
- package/dist/_chunks/stepper-C-sIpRRU.js.map +0 -1
- package/dist/_chunks/stepper-accordion-CGog0JSF.js.map +0 -1
- package/dist/_chunks/stepper-calendar-_fLOAjus.js.map +0 -1
- package/dist/_chunks/stepper-progress-rE7tn7WY.js.map +0 -1
- package/dist/_chunks/streaming-text-BgjCTVOw.js.map +0 -1
- package/dist/_chunks/suggestion-chip-6AB40rxz.js.map +0 -1
- package/dist/_chunks/switch-aN2EYxHh.js.map +0 -1
- package/dist/_chunks/tabs.agent-BpbVA-Zh.js.map +0 -1
- package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
- package/dist/_chunks/task-card-yW7tKlG4.js.map +0 -1
- package/dist/_chunks/task-tray-BzahI5FQ.js.map +0 -1
- package/dist/_chunks/text-area-DmKSd2DG.js.map +0 -1
- package/dist/_chunks/text-input-CRHvl5zk.js.map +0 -1
- package/dist/_chunks/theme-root-DDb0TJjd.js.map +0 -1
- package/dist/_chunks/theme-toggle-COHFwO2H.js.map +0 -1
- package/dist/_chunks/time-picker-D-EueWUG.js.map +0 -1
- package/dist/_chunks/timeline-RgAIzpMd.js.map +0 -1
- package/dist/_chunks/timestamp-BV2lC-wV.js.map +0 -1
- package/dist/_chunks/toast-lOhJDKOH.js.map +0 -1
- package/dist/_chunks/tooltip-DHik5yRI.js.map +0 -1
- package/dist/_chunks/tooth-scheme.agent-BlDyu-Gx.js.map +0 -1
- package/dist/_chunks/transcript-panel-CNbVGG9L.js.map +0 -1
- package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +0 -1
- package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
- package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +0 -1
- package/dist/_chunks/use-direction-D6rvvG9G.js.map +0 -1
- package/dist/_chunks/use-locale-BuXR_Zl9.js.map +0 -1
- package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +0 -1
- package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
- package/dist/_chunks/user-CPxpqFjJ.js.map +0 -1
- package/dist/_chunks/visually-hidden-Bw7vBHLm.js.map +0 -1
- package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
- package/dist/_chunks/workflow-map-DGJwVcO-.js.map +0 -1
- package/dist/_chunks/x-CCcI3eJp.js.map +0 -1
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/registry.d.ts.map +0 -1
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +0 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +0 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +0 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +0 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +0 -1
- package/dist/brand/logo-asset/index.d.ts.map +0 -1
- package/dist/components/_shared/calendar-chevron.d.ts.map +0 -1
- package/dist/components/_shared/compose-refs.d.ts.map +0 -1
- package/dist/components/_shared/date-locale.d.ts.map +0 -1
- package/dist/components/_shared/date-picker-variants.d.ts.map +0 -1
- package/dist/components/_shared/date-utils.d.ts.map +0 -1
- package/dist/components/_shared/group-options.d.ts.map +0 -1
- package/dist/components/_shared/index.d.ts.map +0 -1
- package/dist/components/_shared/input-surface.d.ts.map +0 -1
- package/dist/components/_shared/normalize-diacritics.d.ts.map +0 -1
- package/dist/components/_shared/option.d.ts.map +0 -1
- package/dist/components/_shared/safe-html.d.ts.map +0 -1
- package/dist/components/_shared/safe-image-src.d.ts.map +0 -1
- package/dist/components/_shared/stepper.d.ts.map +0 -1
- package/dist/components/_shared/time.d.ts.map +0 -1
- package/dist/components/_shared/use-debounced-callback.d.ts.map +0 -1
- package/dist/components/_shared/use-direction.d.ts.map +0 -1
- package/dist/components/_shared/use-focus-trap.d.ts.map +0 -1
- package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +0 -1
- package/dist/components/accordion/accordion.agent.d.ts.map +0 -1
- package/dist/components/accordion/accordion.d.ts.map +0 -1
- package/dist/components/accordion/index.d.ts.map +0 -1
- package/dist/components/accordion/index.js.map +0 -1
- package/dist/components/agenda-card/agenda-card.d.ts.map +0 -1
- package/dist/components/agenda-card/index.d.ts.map +0 -1
- package/dist/components/agenda-card/index.js.map +0 -1
- package/dist/components/agenda-tray/agenda-tray.d.ts.map +0 -1
- package/dist/components/agenda-tray/index.d.ts.map +0 -1
- package/dist/components/agenda-tray/index.js.map +0 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +0 -1
- package/dist/components/ai-prompt-input/index.d.ts.map +0 -1
- package/dist/components/ai-prompt-input/index.js.map +0 -1
- package/dist/components/alert/alert.d.ts.map +0 -1
- package/dist/components/alert/index.d.ts.map +0 -1
- package/dist/components/alert/index.js.map +0 -1
- package/dist/components/app-frame/app-frame.d.ts.map +0 -1
- package/dist/components/app-frame/index.d.ts.map +0 -1
- package/dist/components/app-frame/index.js.map +0 -1
- package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
- package/dist/components/aspect-ratio/index.d.ts.map +0 -1
- package/dist/components/aspect-ratio/index.js.map +0 -1
- package/dist/components/audio-recorder/audio-recorder.d.ts.map +0 -1
- package/dist/components/audio-recorder/index.d.ts.map +0 -1
- package/dist/components/audio-recorder/index.js.map +0 -1
- package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +0 -1
- package/dist/components/audio-visualiser/index.d.ts.map +0 -1
- package/dist/components/audio-visualiser/index.js.map +0 -1
- package/dist/components/autocomplete/autocomplete.agent.d.ts.map +0 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +0 -1
- package/dist/components/autocomplete/index.d.ts.map +0 -1
- package/dist/components/autocomplete/index.js.map +0 -1
- package/dist/components/avatar/avatar.d.ts.map +0 -1
- package/dist/components/avatar/index.d.ts.map +0 -1
- package/dist/components/avatar/index.js.map +0 -1
- package/dist/components/badge/badge.d.ts.map +0 -1
- package/dist/components/badge/index.d.ts.map +0 -1
- package/dist/components/badge/index.js.map +0 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +0 -1
- package/dist/components/breadcrumb/index.d.ts.map +0 -1
- package/dist/components/breadcrumb/index.js.map +0 -1
- package/dist/components/button/button.agent.d.ts.map +0 -1
- package/dist/components/button/button.d.ts.map +0 -1
- package/dist/components/button/icon-button.d.ts.map +0 -1
- package/dist/components/button/index.d.ts.map +0 -1
- package/dist/components/button/index.js.map +0 -1
- package/dist/components/button-group/button-group.d.ts.map +0 -1
- package/dist/components/button-group/index.d.ts.map +0 -1
- package/dist/components/button-group/index.js.map +0 -1
- package/dist/components/calendar/calendar.agent.d.ts.map +0 -1
- package/dist/components/calendar/calendar.d.ts.map +0 -1
- package/dist/components/calendar/contrast-warning.d.ts.map +0 -1
- package/dist/components/calendar/index.d.ts.map +0 -1
- package/dist/components/calendar/index.js.map +0 -1
- package/dist/components/card/card.d.ts.map +0 -1
- package/dist/components/card/index.d.ts.map +0 -1
- package/dist/components/card/index.js.map +0 -1
- package/dist/components/chart/chart.agent.d.ts.map +0 -1
- package/dist/components/chart/chart.d.ts.map +0 -1
- package/dist/components/chart/index.d.ts.map +0 -1
- package/dist/components/chart/index.js.map +0 -1
- package/dist/components/chat-container/chat-container.agent.d.ts.map +0 -1
- package/dist/components/chat-container/chat-container.d.ts.map +0 -1
- package/dist/components/chat-container/index.d.ts.map +0 -1
- package/dist/components/chat-container/index.js.map +0 -1
- package/dist/components/chat-input/chat-input.d.ts.map +0 -1
- package/dist/components/chat-input/index.d.ts.map +0 -1
- package/dist/components/chat-input/index.js.map +0 -1
- package/dist/components/chat-message/chat-message.d.ts.map +0 -1
- package/dist/components/chat-message/index.d.ts.map +0 -1
- package/dist/components/chat-message/index.js.map +0 -1
- package/dist/components/checkbox/checkbox-group-context.d.ts.map +0 -1
- package/dist/components/checkbox/checkbox.d.ts.map +0 -1
- package/dist/components/checkbox/index.d.ts.map +0 -1
- package/dist/components/checkbox/index.js.map +0 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +0 -1
- package/dist/components/checkbox-group/index.d.ts.map +0 -1
- package/dist/components/checkbox-group/index.js.map +0 -1
- package/dist/components/collapsible/collapsible.d.ts.map +0 -1
- package/dist/components/collapsible/index.d.ts.map +0 -1
- package/dist/components/collapsible/index.js.map +0 -1
- package/dist/components/color-picker/color-picker.d.ts.map +0 -1
- package/dist/components/color-picker/color-utils.d.ts.map +0 -1
- package/dist/components/color-picker/index.d.ts.map +0 -1
- package/dist/components/color-picker/index.js.map +0 -1
- package/dist/components/color-picker/palettes.d.ts.map +0 -1
- package/dist/components/combobox/combobox.agent.d.ts.map +0 -1
- package/dist/components/combobox/combobox.d.ts.map +0 -1
- package/dist/components/combobox/index.d.ts.map +0 -1
- package/dist/components/combobox/index.js.map +0 -1
- package/dist/components/command-palette/command-palette.agent.d.ts.map +0 -1
- package/dist/components/command-palette/command-palette.d.ts.map +0 -1
- package/dist/components/command-palette/index.d.ts.map +0 -1
- package/dist/components/command-palette/index.js.map +0 -1
- package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +0 -1
- package/dist/components/data-table/data-table.agent.d.ts.map +0 -1
- package/dist/components/data-table/data-table.d.ts.map +0 -1
- package/dist/components/data-table/hooks/use-total-row.d.ts.map +0 -1
- package/dist/components/data-table/index.d.ts.map +0 -1
- package/dist/components/data-table/index.js.map +0 -1
- package/dist/components/data-table/toolbar.d.ts.map +0 -1
- package/dist/components/date-picker/date-picker.d.ts.map +0 -1
- package/dist/components/date-picker/index.d.ts.map +0 -1
- package/dist/components/date-picker/index.js.map +0 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +0 -1
- package/dist/components/date-range-picker/index.d.ts.map +0 -1
- package/dist/components/date-range-picker/index.js.map +0 -1
- package/dist/components/date-time-picker/date-time-picker.d.ts.map +0 -1
- package/dist/components/date-time-picker/index.d.ts.map +0 -1
- package/dist/components/date-time-picker/index.js.map +0 -1
- package/dist/components/description-list/description-list.d.ts.map +0 -1
- package/dist/components/description-list/index.d.ts.map +0 -1
- package/dist/components/description-list/index.js.map +0 -1
- package/dist/components/dialog/dialog.agent.d.ts.map +0 -1
- package/dist/components/dialog/dialog.d.ts.map +0 -1
- package/dist/components/dialog/index.d.ts.map +0 -1
- package/dist/components/dialog/index.js.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
- package/dist/components/dropdown-menu/index.d.ts.map +0 -1
- package/dist/components/dropdown-menu/index.js.map +0 -1
- package/dist/components/empty-state/empty-state.d.ts.map +0 -1
- package/dist/components/empty-state/index.d.ts.map +0 -1
- package/dist/components/empty-state/index.js.map +0 -1
- package/dist/components/file-upload/file-upload.agent.d.ts.map +0 -1
- package/dist/components/file-upload/file-upload.d.ts.map +0 -1
- package/dist/components/file-upload/index.d.ts.map +0 -1
- package/dist/components/file-upload/index.js.map +0 -1
- package/dist/components/flag/flag.d.ts.map +0 -1
- package/dist/components/flag/index.d.ts.map +0 -1
- package/dist/components/flag/index.js.map +0 -1
- package/dist/components/floating-action-button/floating-action-button.d.ts.map +0 -1
- package/dist/components/floating-action-button/index.d.ts.map +0 -1
- package/dist/components/floating-action-button/index.js.map +0 -1
- package/dist/components/form-field/form-field-context.d.ts.map +0 -1
- package/dist/components/form-field/form-field.d.ts.map +0 -1
- package/dist/components/form-field/index.d.ts.map +0 -1
- package/dist/components/form-field/index.js.map +0 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +0 -1
- package/dist/components/freemium-paywall/index.d.ts.map +0 -1
- package/dist/components/freemium-paywall/index.js.map +0 -1
- package/dist/components/header/header.d.ts.map +0 -1
- package/dist/components/header/index.d.ts.map +0 -1
- package/dist/components/header/index.js.map +0 -1
- package/dist/components/icon-button/index.d.ts.map +0 -1
- package/dist/components/icon-button/index.js.map +0 -1
- package/dist/components/icon-button-group/icon-button-group.d.ts.map +0 -1
- package/dist/components/icon-button-group/index.d.ts.map +0 -1
- package/dist/components/icon-button-group/index.js.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/kbd/index.d.ts.map +0 -1
- package/dist/components/kbd/index.js.map +0 -1
- package/dist/components/kbd/kbd.d.ts.map +0 -1
- package/dist/components/key-value-pair/index.d.ts.map +0 -1
- package/dist/components/key-value-pair/index.js.map +0 -1
- package/dist/components/key-value-pair/key-value-pair.d.ts.map +0 -1
- package/dist/components/list/index.d.ts.map +0 -1
- package/dist/components/list/index.js.map +0 -1
- package/dist/components/list/list.d.ts.map +0 -1
- package/dist/components/live-region/index.d.ts.map +0 -1
- package/dist/components/live-region/index.js.map +0 -1
- package/dist/components/live-region/live-region.d.ts.map +0 -1
- package/dist/components/logo/index.d.ts.map +0 -1
- package/dist/components/logo/index.js.map +0 -1
- package/dist/components/logo/logo.d.ts.map +0 -1
- package/dist/components/matrix-rain/index.d.ts.map +0 -1
- package/dist/components/matrix-rain/index.js.map +0 -1
- package/dist/components/matrix-rain/matrix-rain.d.ts.map +0 -1
- package/dist/components/message-card/index.d.ts.map +0 -1
- package/dist/components/message-card/index.js.map +0 -1
- package/dist/components/message-card/message-card.d.ts.map +0 -1
- package/dist/components/message-tray/index.d.ts.map +0 -1
- package/dist/components/message-tray/index.js.map +0 -1
- package/dist/components/message-tray/message-tray.d.ts.map +0 -1
- package/dist/components/multi-select/index.d.ts.map +0 -1
- package/dist/components/multi-select/index.js.map +0 -1
- package/dist/components/multi-select/multi-select.agent.d.ts.map +0 -1
- package/dist/components/multi-select/multi-select.d.ts.map +0 -1
- package/dist/components/navigation-menu/index.d.ts.map +0 -1
- package/dist/components/navigation-menu/index.js.map +0 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +0 -1
- package/dist/components/notification-card/index.d.ts.map +0 -1
- package/dist/components/notification-card/index.js.map +0 -1
- package/dist/components/notification-card/notification-card.d.ts.map +0 -1
- package/dist/components/notification-tray/index.d.ts.map +0 -1
- package/dist/components/notification-tray/index.js.map +0 -1
- package/dist/components/notification-tray/notification-tray.d.ts.map +0 -1
- package/dist/components/number-input/index.d.ts.map +0 -1
- package/dist/components/number-input/index.js.map +0 -1
- package/dist/components/number-input/number-input.d.ts.map +0 -1
- package/dist/components/number-input/use-locale-number.d.ts.map +0 -1
- package/dist/components/otp-input/index.d.ts.map +0 -1
- package/dist/components/otp-input/index.js.map +0 -1
- package/dist/components/otp-input/otp-input.d.ts.map +0 -1
- package/dist/components/pagination/index.d.ts.map +0 -1
- package/dist/components/pagination/index.js.map +0 -1
- package/dist/components/pagination/pagination.agent.d.ts.map +0 -1
- package/dist/components/pagination/pagination.d.ts.map +0 -1
- package/dist/components/password-input/index.d.ts.map +0 -1
- package/dist/components/password-input/index.js.map +0 -1
- package/dist/components/password-input/password-input.d.ts.map +0 -1
- package/dist/components/payment-form/index.d.ts.map +0 -1
- package/dist/components/payment-form/index.js.map +0 -1
- package/dist/components/payment-form/payment-form.agent.d.ts.map +0 -1
- package/dist/components/payment-form/payment-form.d.ts.map +0 -1
- package/dist/components/pdf-viewer/index.d.ts.map +0 -1
- package/dist/components/pdf-viewer/index.js.map +0 -1
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +0 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +0 -1
- package/dist/components/phone-input/index.d.ts.map +0 -1
- package/dist/components/phone-input/index.js.map +0 -1
- package/dist/components/phone-input/phone-input.d.ts.map +0 -1
- package/dist/components/popover/index.d.ts.map +0 -1
- package/dist/components/popover/index.js.map +0 -1
- package/dist/components/popover/popover.agent.d.ts.map +0 -1
- package/dist/components/popover/popover.d.ts.map +0 -1
- package/dist/components/privacy-lock/index.d.ts.map +0 -1
- package/dist/components/privacy-lock/index.js.map +0 -1
- package/dist/components/privacy-lock/privacy-lock.d.ts.map +0 -1
- package/dist/components/progress/index.d.ts.map +0 -1
- package/dist/components/progress/index.js.map +0 -1
- package/dist/components/progress/progress.agent.d.ts.map +0 -1
- package/dist/components/progress/progress.d.ts.map +0 -1
- package/dist/components/radio/index.d.ts.map +0 -1
- package/dist/components/radio/index.js.map +0 -1
- package/dist/components/radio-group/index.d.ts.map +0 -1
- package/dist/components/radio-group/index.js.map +0 -1
- package/dist/components/radio-group/radio-group-context.d.ts.map +0 -1
- package/dist/components/radio-group/radio-group.d.ts.map +0 -1
- package/dist/components/radio-group/radio.d.ts.map +0 -1
- package/dist/components/resizable/index.d.ts.map +0 -1
- package/dist/components/resizable/index.js.map +0 -1
- package/dist/components/resizable/resizable-context.d.ts.map +0 -1
- package/dist/components/resizable/resizable.agent.d.ts.map +0 -1
- package/dist/components/resizable/resizable.d.ts.map +0 -1
- package/dist/components/rich-text-editor/index.d.ts.map +0 -1
- package/dist/components/rich-text-editor/index.js.map +0 -1
- package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +0 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +0 -1
- package/dist/components/scroll-area/index.d.ts.map +0 -1
- package/dist/components/scroll-area/index.js.map +0 -1
- package/dist/components/scroll-area/scroll-area.d.ts.map +0 -1
- package/dist/components/search-bar/index.d.ts.map +0 -1
- package/dist/components/search-bar/index.js.map +0 -1
- package/dist/components/search-bar/search-bar.d.ts.map +0 -1
- package/dist/components/search-input/index.d.ts.map +0 -1
- package/dist/components/search-input/index.js.map +0 -1
- package/dist/components/search-input/search-input.d.ts.map +0 -1
- package/dist/components/select/index.d.ts.map +0 -1
- package/dist/components/select/index.js.map +0 -1
- package/dist/components/select/select.d.ts.map +0 -1
- package/dist/components/separator/index.d.ts.map +0 -1
- package/dist/components/separator/index.js.map +0 -1
- package/dist/components/separator/separator.d.ts.map +0 -1
- package/dist/components/sheet/index.d.ts.map +0 -1
- package/dist/components/sheet/index.js.map +0 -1
- package/dist/components/sheet/sheet.agent.d.ts.map +0 -1
- package/dist/components/sheet/sheet.d.ts.map +0 -1
- package/dist/components/sidebar/index.d.ts.map +0 -1
- package/dist/components/sidebar/index.js.map +0 -1
- package/dist/components/sidebar/sidebar.agent.d.ts.map +0 -1
- package/dist/components/sidebar/sidebar.d.ts.map +0 -1
- package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +0 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js.map +0 -1
- package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +0 -1
- package/dist/components/signature-capture/index.d.ts.map +0 -1
- package/dist/components/signature-capture/index.js.map +0 -1
- package/dist/components/signature-capture/signature-capture.agent.d.ts.map +0 -1
- package/dist/components/signature-capture/signature-capture.d.ts.map +0 -1
- package/dist/components/skeleton/index.d.ts.map +0 -1
- package/dist/components/skeleton/index.js.map +0 -1
- package/dist/components/skeleton/skeleton.d.ts.map +0 -1
- package/dist/components/skip-link/index.d.ts.map +0 -1
- package/dist/components/skip-link/index.js.map +0 -1
- package/dist/components/skip-link/skip-link.d.ts.map +0 -1
- package/dist/components/slider/index.d.ts.map +0 -1
- package/dist/components/slider/index.js.map +0 -1
- package/dist/components/slider/slider.d.ts.map +0 -1
- package/dist/components/slot-grid/index.d.ts.map +0 -1
- package/dist/components/slot-grid/index.js.map +0 -1
- package/dist/components/slot-grid/slot-grid.d.ts.map +0 -1
- package/dist/components/sparkline/index.d.ts.map +0 -1
- package/dist/components/sparkline/index.js.map +0 -1
- package/dist/components/sparkline/sparkline.agent.d.ts.map +0 -1
- package/dist/components/sparkline/sparkline.d.ts.map +0 -1
- package/dist/components/sparkline/use-linear-trend.d.ts.map +0 -1
- package/dist/components/spinner/index.d.ts.map +0 -1
- package/dist/components/spinner/index.js.map +0 -1
- package/dist/components/spinner/spinner.d.ts.map +0 -1
- package/dist/components/stat/index.d.ts.map +0 -1
- package/dist/components/stat/index.js.map +0 -1
- package/dist/components/stat/stat.d.ts.map +0 -1
- package/dist/components/stepper-accordion/index.d.ts.map +0 -1
- package/dist/components/stepper-accordion/index.js.map +0 -1
- package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +0 -1
- package/dist/components/stepper-calendar/index.d.ts.map +0 -1
- package/dist/components/stepper-calendar/index.js.map +0 -1
- package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +0 -1
- package/dist/components/stepper-progress/index.d.ts.map +0 -1
- package/dist/components/stepper-progress/index.js.map +0 -1
- package/dist/components/stepper-progress/stepper-progress.d.ts.map +0 -1
- package/dist/components/streaming-text/index.d.ts.map +0 -1
- package/dist/components/streaming-text/index.js.map +0 -1
- package/dist/components/streaming-text/streaming-text.d.ts.map +0 -1
- package/dist/components/suggestion-chip/index.d.ts.map +0 -1
- package/dist/components/suggestion-chip/index.js.map +0 -1
- package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +0 -1
- package/dist/components/switch/index.d.ts.map +0 -1
- package/dist/components/switch/index.js.map +0 -1
- package/dist/components/switch/switch.d.ts.map +0 -1
- package/dist/components/tabs/index.d.ts.map +0 -1
- package/dist/components/tabs/index.js.map +0 -1
- package/dist/components/tabs/tabs.agent.d.ts.map +0 -1
- package/dist/components/tabs/tabs.d.ts.map +0 -1
- package/dist/components/tag/index.d.ts.map +0 -1
- package/dist/components/tag/index.js.map +0 -1
- package/dist/components/tag/tag.d.ts.map +0 -1
- package/dist/components/task-card/index.d.ts.map +0 -1
- package/dist/components/task-card/index.js.map +0 -1
- package/dist/components/task-card/task-card.d.ts.map +0 -1
- package/dist/components/task-tray/index.d.ts.map +0 -1
- package/dist/components/task-tray/index.js.map +0 -1
- package/dist/components/task-tray/task-tray.d.ts.map +0 -1
- package/dist/components/text-area/index.d.ts.map +0 -1
- package/dist/components/text-area/index.js.map +0 -1
- package/dist/components/text-area/text-area.d.ts.map +0 -1
- package/dist/components/text-input/index.d.ts.map +0 -1
- package/dist/components/text-input/index.js.map +0 -1
- package/dist/components/text-input/text-input.d.ts.map +0 -1
- package/dist/components/theme-root/index.d.ts.map +0 -1
- package/dist/components/theme-root/index.js.map +0 -1
- package/dist/components/theme-root/theme-root.d.ts.map +0 -1
- package/dist/components/theme-toggle/index.d.ts.map +0 -1
- package/dist/components/theme-toggle/index.js.map +0 -1
- package/dist/components/theme-toggle/theme-toggle.d.ts.map +0 -1
- package/dist/components/time-picker/index.d.ts.map +0 -1
- package/dist/components/time-picker/index.js.map +0 -1
- package/dist/components/time-picker/time-picker.d.ts.map +0 -1
- package/dist/components/timeline/index.d.ts.map +0 -1
- package/dist/components/timeline/index.js.map +0 -1
- package/dist/components/timeline/timeline.d.ts.map +0 -1
- package/dist/components/timestamp/index.d.ts.map +0 -1
- package/dist/components/timestamp/index.js.map +0 -1
- package/dist/components/timestamp/timestamp.d.ts.map +0 -1
- package/dist/components/toast/index.d.ts.map +0 -1
- package/dist/components/toast/index.js.map +0 -1
- package/dist/components/toast/toast.d.ts.map +0 -1
- package/dist/components/tooltip/index.d.ts.map +0 -1
- package/dist/components/tooltip/index.js.map +0 -1
- package/dist/components/tooltip/tooltip.d.ts.map +0 -1
- package/dist/components/tooth-scheme/index.d.ts.map +0 -1
- package/dist/components/tooth-scheme/index.js.map +0 -1
- package/dist/components/tooth-scheme/tooth-data.d.ts.map +0 -1
- package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +0 -1
- package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +0 -1
- package/dist/components/transcript-panel/index.d.ts.map +0 -1
- package/dist/components/transcript-panel/index.js.map +0 -1
- package/dist/components/transcript-panel/transcript-panel.d.ts.map +0 -1
- package/dist/components/typing-indicator/index.d.ts.map +0 -1
- package/dist/components/typing-indicator/index.js.map +0 -1
- package/dist/components/typing-indicator/typing-indicator.d.ts.map +0 -1
- package/dist/components/visually-hidden/index.d.ts.map +0 -1
- package/dist/components/visually-hidden/index.js.map +0 -1
- package/dist/components/visually-hidden/visually-hidden.d.ts.map +0 -1
- package/dist/components/warning-stack/index.d.ts.map +0 -1
- package/dist/components/warning-stack/index.js.map +0 -1
- package/dist/components/warning-stack/warning-stack.d.ts.map +0 -1
- package/dist/components/workflow/index.d.ts.map +0 -1
- package/dist/components/workflow/index.js.map +0 -1
- package/dist/components/workflow/workflow-card.d.ts.map +0 -1
- package/dist/components/workflow/workflow-editor.d.ts.map +0 -1
- package/dist/components/workflow/workflow-map.d.ts.map +0 -1
- package/dist/components/workflow/workflow-types.d.ts.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/use-locale.d.ts.map +0 -1
- package/dist/hooks/use-media-query.d.ts.map +0 -1
- package/dist/hooks/use-prefers-reduced-motion.d.ts.map +0 -1
- package/dist/hooks/use-theme.d.ts.map +0 -1
- package/dist/i18n/config.d.ts.map +0 -1
- package/dist/i18n/config.js.map +0 -1
- package/dist/i18n/resources.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/option/index.js.map +0 -1
- package/dist/patterns/leo-assistant/index.d.ts.map +0 -1
- package/dist/patterns/leo-assistant/index.js.map +0 -1
- package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +0 -1
- package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +0 -1
- package/dist/patterns/leo-assistant/leo-popout.d.ts.map +0 -1
- package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +0 -1
- package/dist/patterns/leo-assistant/leo-types.d.ts.map +0 -1
- package/dist/patterns/patient-shell/index.d.ts.map +0 -1
- package/dist/patterns/patient-shell/index.js.map +0 -1
- package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
- package/dist/safe-html/index.js.map +0 -1
- package/dist/tokens/apexcharts-theme.d.ts.map +0 -1
- package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"floating-action-button-Cnw-f6AG.js","sources":["../../src/components/floating-action-button/floating-action-button.tsx"],"sourcesContent":["import {\n forwardRef,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\nconst fabVariants = cva(\n [\n // `relative` anchors the `::before` hit-target expansion on `sm`.\n 'ds:relative ds:inline-flex ds:items-center ds:justify-center',\n 'ds:font-medium ds:whitespace-nowrap',\n 'ds:rounded-full',\n 'ds:shadow-[var(--shadow-lg)] ds:hover:shadow-[var(--shadow-xl)] ds:active:shadow-[var(--shadow-md)]',\n 'ds:transition-[box-shadow,background-color,transform]',\n 'ds:duration-[var(--animation-duration)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n // Under Windows High Contrast Mode the `shadow-*` affordance is stripped.\n // Repaint a solid edge + swap the focus ring to CanvasText so the FAB\n // remains identifiable and its focus state stays visible.\n 'ds:forced-colors:border ds:forced-colors:border-[ButtonBorder] ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:disabled:shadow-[var(--shadow-md)]',\n 'ds:motion-reduce:transition-none',\n ].join(' '),\n {\n variants: {\n variant: {\n primary:\n 'ds:bg-primary ds:text-primary-foreground ds:hover:bg-primary-hover',\n secondary:\n 'ds:bg-accent ds:text-accent-foreground ds:hover:bg-accent-hover',\n },\n size: {\n // `sm` is 40x40 which sits below the 44/48 px WCAG 2.5.5 target.\n // Mirror Button's pseudo-expansion pattern: below the `sm:` (640 px)\n // breakpoint, a `::before` rectangle enlarges the hit area to\n // `--min-target-size` (44 default, 48 accessible). Above the\n // breakpoint (desktop / trackpad), the physical 40 px circle is\n // enough — the pseudo hides.\n sm: 'ds:h-10 ds:w-10 ds:text-[length:var(--font-size-sm)] ds:[&_svg]:size-5 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"] ds:sm:before:hidden',\n md: 'ds:h-14 ds:w-14 ds:text-[length:var(--font-size-base)] ds:[&_svg]:size-6',\n lg: 'ds:h-16 ds:w-16 ds:text-[length:var(--font-size-lg)] ds:[&_svg]:size-7',\n },\n extended: {\n true: 'ds:w-auto ds:gap-[var(--spacing-sm)]',\n false: '',\n },\n position: {\n 'bottom-end':\n 'ds:fixed ds:z-[var(--z-fixed)] ds:bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] ds:end-[var(--spacing-lg)]',\n 'bottom-start':\n 'ds:fixed ds:z-[var(--z-fixed)] ds:bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] ds:start-[var(--spacing-lg)]',\n 'top-end':\n 'ds:fixed ds:z-[var(--z-fixed)] ds:top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] ds:end-[var(--spacing-lg)]',\n 'top-start':\n 'ds:fixed ds:z-[var(--z-fixed)] ds:top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] ds:start-[var(--spacing-lg)]',\n static: '',\n },\n },\n compoundVariants: [\n { extended: true, size: 'sm', class: 'ds:ps-3 ds:pe-4' },\n { extended: true, size: 'md', class: 'ds:ps-4 ds:pe-5' },\n { extended: true, size: 'lg', class: 'ds:ps-5 ds:pe-6' },\n ],\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n extended: false,\n position: 'bottom-end',\n },\n },\n);\n\ntype FabBaseProps = ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof fabVariants>;\n\ninterface CircularFabProps extends FabBaseProps {\n extended?: false;\n icon: ReactNode;\n 'aria-label': string;\n children?: never;\n}\n\ninterface ExtendedFabProps extends FabBaseProps {\n extended: true;\n icon?: ReactNode;\n children: ReactNode;\n}\n\nexport type FloatingActionButtonProps = CircularFabProps | ExtendedFabProps;\n\nexport const FloatingActionButton = forwardRef<\n HTMLButtonElement,\n FloatingActionButtonProps\n>((props, ref) => {\n const {\n variant,\n size,\n extended,\n position,\n className,\n icon,\n children,\n type,\n ...rest\n } = props;\n const { t } = useTranslation();\n\n const ariaLabel =\n rest['aria-label'] ??\n (!extended ? t('ui.common.add', { defaultValue: 'Add' }) : undefined);\n\n return (\n <button\n ref={ref}\n type={type ?? 'button'}\n className={fabVariants({ variant, size, extended, position, className })}\n data-component=\"floating-action-button\"\n {...rest}\n aria-label={ariaLabel}\n >\n {icon ? (\n <span aria-hidden=\"true\" className=\"ds:inline-flex ds:items-center ds:justify-center\">\n {icon}\n </span>\n ) : null}\n {extended ? <span className=\"ds:inline-flex\">{children}</span> : null}\n </button>\n );\n});\n\nFloatingActionButton.displayName = 'FloatingActionButton';\n"],"names":["fabVariants","cva","FloatingActionButton","forwardRef","props","ref","variant","size","extended","position","className","icon","children","type","rest","t","useTranslation","ariaLabel","jsxs","jsx"],"mappings":";;;;AAQA,MAAMA,IAAcC;AAAA,EAClB;AAAA;AAAA,IAEE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,cACE;AAAA,QACF,gBACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,IAEF,kBAAkB;AAAA,MAChB,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,kBAAA;AAAA,MACrC,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,kBAAA;AAAA,MACrC,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,kBAAA;AAAA,IAAkB;AAAA,IAEzD,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ,GAoBaC,IAAuBC,EAGlC,CAACC,GAAOC,MAAQ;AAChB,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDV,GACE,EAAE,GAAAW,EAAA,IAAMC,EAAA,GAERC,IACJH,EAAK,YAAY,MACfN,IAAyD,SAA9CO,EAAE,iBAAiB,EAAE,cAAc,MAAA,CAAO;AAEzD,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAb;AAAA,MACA,MAAMQ,KAAQ;AAAA,MACd,WAAWb,EAAY,EAAE,SAAAM,GAAS,MAAAC,GAAM,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW;AAAA,MACvE,kBAAe;AAAA,MACd,GAAGI;AAAA,MACJ,cAAYG;AAAA,MAEX,UAAA;AAAA,QAAAN,sBACE,QAAA,EAAK,eAAY,QAAO,WAAU,oDAChC,aACH,IACE;AAAA,QACHH,IAAW,gBAAAW,EAAC,QAAA,EAAK,WAAU,kBAAkB,UAAAP,GAAS,IAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvE,CAAC;AAEDV,EAAqB,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-BfsPLTSc.js","sources":["../../src/components/form-field/form-field.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle } from 'lucide-react';\nimport {\n FormFieldContext,\n type FormFieldContextShape,\n} from './form-field-context';\n\nconst fieldVariants = cva('ds:text-start', {\n variants: {\n orientation: {\n vertical: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n horizontal:\n 'ds:grid ds:grid-cols-[minmax(0,var(--form-label-inline-size))_minmax(0,1fr)] ds:items-start ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-xs)]',\n },\n disabled: {\n true: 'ds:opacity-50 ds:cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n disabled: false,\n },\n});\n\nconst slotsVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]', {\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'ds:min-w-0',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\ntype RequiredIndicator =\n | { required?: boolean; optional?: never }\n | { required?: never; optional?: boolean };\n\ninterface BaseFormFieldProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>,\n Omit<VariantProps<typeof fieldVariants>, 'disabled'> {\n label: string;\n description?: string;\n error?: string;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nexport type FormFieldProps = BaseFormFieldProps & RequiredIndicator;\n\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(\n (props, ref) => {\n const {\n label,\n description,\n error,\n required = false,\n optional = false,\n orientation = 'vertical',\n disabled = false,\n className,\n children,\n ...rest\n } = props as BaseFormFieldProps & {\n required?: boolean;\n optional?: boolean;\n };\n\n const { t } = useTranslation();\n const id = useId();\n const helpId = `${id}-help`;\n const errorId = `${id}-error`;\n const invalid = Boolean(error);\n\n const describedBy = useMemo(\n () =>\n [description ? helpId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' '),\n [description, error, helpId, errorId],\n );\n\n const ctx: FormFieldContextShape = useMemo(\n () => ({\n id,\n helpId,\n errorId,\n describedBy,\n invalid,\n required,\n disabled,\n }),\n [id, helpId, errorId, describedBy, invalid, required, disabled],\n );\n\n return (\n <FormFieldContext.Provider value={ctx}>\n <div\n ref={ref}\n className={fieldVariants({ orientation, disabled, className })}\n data-component=\"form-field\"\n {...rest}\n >\n <label\n htmlFor={id}\n className=\"type-label ds:text-foreground\"\n >\n {label}\n {required && (\n <span\n aria-hidden=\"true\"\n className=\"ds:text-destructive ds:ms-[var(--spacing-xs)]\"\n >\n *\n </span>\n )}\n {optional && (\n <span className=\"ds:text-muted-foreground ds:ms-[var(--spacing-xs)] ds:font-normal\">\n ({t('ui.common.optional', 'optional')})\n </span>\n )}\n </label>\n <div className={slotsVariants({ orientation })}>\n {children}\n {description && (\n <p id={helpId} className=\"type-body-sm ds:text-muted-foreground\">\n {description}\n </p>\n )}\n {error && (\n <p\n id={errorId}\n role=\"alert\"\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive\"\n >\n <AlertCircle\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:shrink-0\"\n />\n <span>{error}</span>\n </p>\n )}\n </div>\n </div>\n </FormFieldContext.Provider>\n );\n },\n);\n\nFormField.displayName = 'FormField';\n"],"names":["fieldVariants","cva","slotsVariants","FormField","forwardRef","props","ref","label","description","error","required","optional","orientation","disabled","className","children","rest","t","useTranslation","id","useId","helpId","errorId","invalid","describedBy","useMemo","ctx","jsx","FormFieldContext","jsxs","AlertCircle"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-context-94LwgYTQ.js","sources":["../../src/components/form-field/form-field-context.ts"],"sourcesContent":["import { createContext, useContext, useId } from 'react';\n\nexport interface FormFieldContextShape {\n id: string;\n helpId: string;\n errorId: string;\n describedBy: string;\n invalid: boolean;\n required: boolean;\n disabled: boolean;\n}\n\nexport const FormFieldContext = createContext<FormFieldContextShape | null>(null);\n\nexport function useFormField(): FormFieldContextShape {\n const ctx = useContext(FormFieldContext);\n const fallbackId = useId();\n\n if (ctx) {\n return ctx;\n }\n\n return {\n id: fallbackId,\n helpId: `${fallbackId}-help`,\n errorId: `${fallbackId}-error`,\n describedBy: '',\n invalid: false,\n required: false,\n disabled: false,\n };\n}\n"],"names":["FormFieldContext","createContext","useFormField","ctx","useContext","fallbackId","useId"],"mappings":";AAYO,MAAMA,IAAmBC,EAA4C,IAAI;AAEzE,SAASC,IAAsC;AACpD,QAAMC,IAAMC,EAAWJ,CAAgB,GACjCK,IAAaC,EAAA;AAEnB,SAAIH,KAIG;AAAA,IACL,IAAIE;AAAA,IACJ,QAAQ,GAAGA,CAAU;AAAA,IACrB,SAAS,GAAGA,CAAU;AAAA,IACtB,aAAa;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"freemium-paywall-CkefGLM_.js","sources":["../../src/components/freemium-paywall/freemium-paywall.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useState,\n type ReactNode,\n} from 'react';\nimport * as RadixAlertDialog from '@radix-ui/react-alert-dialog';\nimport * as RadixRadioGroup from '@radix-ui/react-radio-group';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AlertTriangle, Check } from 'lucide-react';\nimport { Button } from '../button';\nimport { Progress } from '../progress';\nimport { formatPaymentAmount } from '../payment-form';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface FreemiumPlan {\n id: string;\n /** Translation key for the plan name (e.g. `app.paywall.plans.pro`). */\n nameKey: string;\n /** Amount in minor units (cents, centesimi). */\n priceAmount: number;\n /** ISO 4217 currency code. */\n currency: string;\n /** Translation key for the cadence suffix (e.g. `app.paywall.period.month`). */\n perKey?: string;\n /** Per-line feature translation keys. */\n featuresKeys?: string[];\n}\n\nconst contentVariants = cva(\n [\n 'ds:fixed ds:z-[var(--z-modal)] ds:overflow-auto',\n 'ds:bg-[color:var(--popover)] ds:text-[color:var(--popover-foreground)]',\n 'ds:border ds:border-border ds:shadow-[var(--shadow-lg)]',\n // forced-colors: keep the dialog boundary visible under Windows High\n // Contrast, where `var(--border)` may collapse to system colours.\n 'ds:forced-colors:border-[CanvasText]',\n 'ds:focus:outline-none',\n ].join(' '),\n {\n variants: {\n layout: {\n centered:\n 'ds:start-1/2 ds:top-1/2 ds:-translate-x-1/2 ds:-translate-y-1/2 ds:rtl:translate-x-1/2 ds:rounded-[var(--radius-md)] ds:max-w-[var(--dialog-width-xl)] ds:w-[calc(100vw-2rem)] ds:max-h-[90vh]',\n sheet:\n 'ds:inset-inline-0 ds:bottom-0 ds:w-full ds:max-h-[90vh] ds:rounded-t-[var(--radius-md)]',\n },\n density: {\n compact: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n full: 'ds:ps-[var(--spacing-lg)] ds:pe-[var(--spacing-lg)] ds:pt-[var(--spacing-lg)] ds:pb-[var(--spacing-lg)]',\n },\n },\n defaultVariants: { layout: 'centered', density: 'full' },\n },\n);\n\nexport interface FreemiumPaywallProps\n extends VariantProps<typeof contentVariants> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n plans: FreemiumPlan[];\n /** Currently-selected plan id (controlled) or default. */\n selectedPlanId?: string;\n defaultSelectedPlanId?: string;\n onSelectedPlanChange?: (id: string) => void;\n /** Usage indicator values — omit the object to hide the bar. */\n usage?: { used: number; limit: number };\n /** Fires on upgrade. */\n onUpgrade: (planId: string) => void;\n /** Fires when the user dismisses via Not Now. */\n onCancel?: () => void;\n /** Title override; defaults to t('ui.paywall.title'). */\n title?: ReactNode;\n /** Description override; defaults to t('ui.paywall.description'). */\n description?: ReactNode;\n className?: string;\n}\n\nexport const FreemiumPaywall = forwardRef<HTMLDivElement, FreemiumPaywallProps>(\n (\n {\n open,\n onOpenChange,\n plans,\n selectedPlanId,\n defaultSelectedPlanId,\n onSelectedPlanChange,\n usage,\n onUpgrade,\n onCancel,\n title,\n description,\n layout = 'centered',\n density = 'full',\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const titleId = useId();\n const descId = useId();\n\n const isControlled = selectedPlanId !== undefined;\n const [internalSelected, setInternalSelected] = useState<string>(\n defaultSelectedPlanId ?? plans[0]?.id ?? '',\n );\n const currentSelected = isControlled\n ? selectedPlanId ?? ''\n : internalSelected;\n\n const handleSelectedChange = (next: string) => {\n if (!isControlled) setInternalSelected(next);\n onSelectedPlanChange?.(next);\n };\n\n const handleCancel = () => {\n onCancel?.();\n onOpenChange(false);\n };\n\n const handleUpgrade = () => {\n if (!currentSelected) return;\n onUpgrade(currentSelected);\n };\n\n const usagePercent = usage\n ? Math.min(100, Math.max(0, (usage.used / Math.max(1, usage.limit)) * 100))\n : 0;\n const usageFull = usage ? usage.used >= usage.limit : false;\n\n return (\n <RadixAlertDialog.Root open={open} onOpenChange={onOpenChange}>\n <RadixAlertDialog.Portal>\n <RadixAlertDialog.Overlay\n className={[\n 'ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]',\n 'ds:bg-[color:var(--foreground)]/40',\n 'ds:motion-safe:data-[state=open]:animate-in ds:motion-safe:data-[state=closed]:animate-out',\n 'ds:[.theme-accessible_&]:animate-none',\n ].join(' ')}\n />\n <RadixAlertDialog.Content\n ref={ref}\n aria-labelledby={titleId}\n aria-describedby={descId}\n className={contentVariants({ layout, density, className })}\n data-component=\"freemium-paywall\"\n >\n <RadixAlertDialog.Title id={titleId} asChild>\n <h2 className=\"type-title-card\">\n {title ?? t('ui.paywall.title')}\n </h2>\n </RadixAlertDialog.Title>\n <RadixAlertDialog.Description id={descId} asChild>\n <p className=\"ds:mt-[var(--spacing-xs)] ds:text-[color:var(--muted-foreground)]\">\n {description ?? t('ui.paywall.description')}\n </p>\n </RadixAlertDialog.Description>\n\n {usage ? (\n <div className=\"ds:mt-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:mb-[var(--spacing-xs)]\">\n {usageFull ? (\n <AlertTriangle\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:text-[color:var(--destructive)]\"\n />\n ) : null}\n <span\n className={[\n 'type-body-sm',\n usageFull\n ? 'ds:text-[color:var(--destructive)]'\n : 'ds:text-[color:var(--muted-foreground)]',\n ].join(' ')}\n >\n {usageFull\n ? t('ui.paywall.usageFull')\n : t('ui.paywall.usageLabel', {\n used: usage.used,\n limit: usage.limit,\n })}\n </span>\n </div>\n <Progress\n value={usagePercent}\n max={100}\n ariaLabel={t('ui.paywall.usageLabel', {\n used: usage.used,\n limit: usage.limit,\n })}\n className={usageFull ? 'ds:[&_[role=progressbar]>*]:bg-[color:var(--destructive)]' : ''}\n />\n </div>\n ) : null}\n\n <RadixRadioGroup.Root\n value={currentSelected}\n onValueChange={handleSelectedChange}\n aria-label={t('ui.paywall.title')}\n className=\"ds:mt-[var(--spacing-md)] ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n {plans.map((plan) => {\n // Reuse the payment-form helper — it knows about\n // zero-decimal currencies (JPY, KRW, VND …) and applies\n // the right divisor. Raw `/ 100` would 100× the price in\n // those currencies.\n const formattedPrice = formatPaymentAmount(\n plan.priceAmount,\n plan.currency,\n i18n.language,\n );\n const period = plan.perKey ? t(plan.perKey) : undefined;\n const priceLine = period\n ? t('ui.paywall.pricePer', { price: formattedPrice, period })\n : formattedPrice;\n const planName = t(plan.nameKey);\n return (\n <RadixRadioGroup.Item\n key={plan.id}\n value={plan.id}\n className={[\n 'ds:group ds:relative ds:flex ds:flex-col ds:items-stretch',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:text-start ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]',\n 'ds:data-[state=checked]:border-[color:var(--primary)]',\n 'ds:data-[state=checked]:bg-[color:var(--primary)]/5',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n ].join(' ')}\n >\n <span className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <span className=\"ds:font-semibold\">{planName}</span>\n <span className=\"ds:tabular-nums\">{priceLine}</span>\n </span>\n {plan.featuresKeys && plan.featuresKeys.length > 0 ? (\n <ul\n aria-label={t('ui.paywall.features')}\n className=\"ds:mt-[var(--spacing-xs)] ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\"\n >\n {plan.featuresKeys.map((key, i) => (\n <li\n key={i}\n className=\"ds:flex ds:items-start ds:gap-[var(--spacing-xs)] type-body-sm\"\n >\n <Check\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:shrink-0 ds:text-[color:var(--primary)] ds:mt-[1px]\"\n />\n <span>{t(key)}</span>\n </li>\n ))}\n </ul>\n ) : null}\n </RadixRadioGroup.Item>\n );\n })}\n </RadixRadioGroup.Root>\n\n <div className=\"ds:mt-[var(--spacing-lg)] ds:flex ds:items-center ds:gap-[var(--spacing-sm)] ds:justify-end\">\n <RadixAlertDialog.Cancel asChild>\n <Button intent=\"outline\" onClick={handleCancel}>\n {t('ui.paywall.notNow')}\n </Button>\n </RadixAlertDialog.Cancel>\n <RadixAlertDialog.Action asChild>\n <Button intent=\"primary\" onClick={handleUpgrade}>\n {t('ui.paywall.upgrade')}\n </Button>\n </RadixAlertDialog.Action>\n </div>\n </RadixAlertDialog.Content>\n </RadixAlertDialog.Portal>\n </RadixAlertDialog.Root>\n );\n },\n);\n\nFreemiumPaywall.displayName = 'FreemiumPaywall';\n"],"names":["contentVariants","cva","FreemiumPaywall","forwardRef","open","onOpenChange","plans","selectedPlanId","defaultSelectedPlanId","onSelectedPlanChange","usage","onUpgrade","onCancel","title","description","layout","density","className","ref","t","i18n","useTranslation","titleId","useId","descId","isControlled","internalSelected","setInternalSelected","useState","_a","currentSelected","handleSelectedChange","next","handleCancel","handleUpgrade","usagePercent","usageFull","jsx","RadixAlertDialog","jsxs","AlertTriangle","Progress","RadixRadioGroup","plan","formattedPrice","formatPaymentAmount","period","priceLine","planName","key","i","Check","Button"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globe-BkEFMNSg.js","sources":["../../node_modules/lucide-react/dist/esm/icons/globe.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 [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.js.map\n"],"names":["__iconNode","Globe","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,mDAAmD,KAAK,SAAQ,CAAE;AAAA,EAChF,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMC,IAAQC,EAAiB,SAASF,CAAU;","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"group-options-BvKhQ3xb.js","sources":["../../src/components/_shared/group-options.ts"],"sourcesContent":["import type { OptionShape } from './option';\n\nexport function groupOptions<T extends string>(\n options: OptionShape<T>[],\n): Array<{ group: string | undefined; items: OptionShape<T>[] }> {\n const hasAnyGroup = options.some((o) => o.group);\n if (!hasAnyGroup) return [{ group: undefined, items: options }];\n const buckets = new Map<string, OptionShape<T>[]>();\n for (const option of options) {\n const key = option.group ?? '';\n const list = buckets.get(key);\n if (list) list.push(option);\n else buckets.set(key, [option]);\n }\n return Array.from(buckets.entries()).map(([group, items]) => ({\n group: group || undefined,\n items,\n }));\n}\n"],"names":["groupOptions","options","buckets","option","key","list","group","items"],"mappings":"AAEO,SAASA,EACdC,GAC+D;AAE/D,MAAI,CADgBA,EAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,EAC7B,QAAO,CAAC,EAAE,OAAO,QAAW,OAAOA,GAAS;AAC9D,QAAMC,wBAAc,IAAA;AACpB,aAAWC,KAAUF,GAAS;AAC5B,UAAMG,IAAMD,EAAO,SAAS,IACtBE,IAAOH,EAAQ,IAAIE,CAAG;AAC5B,IAAIC,IAAMA,EAAK,KAAKF,CAAM,IACrBD,EAAQ,IAAIE,GAAK,CAACD,CAAM,CAAC;AAAA,EAChC;AACA,SAAO,MAAM,KAAKD,EAAQ,QAAA,CAAS,EAAE,IAAI,CAAC,CAACI,GAAOC,CAAK,OAAO;AAAA,IAC5D,OAAOD,KAAS;AAAA,IAChB,OAAAC;AAAA,EAAA,EACA;AACJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header-BGn1mRp8.js","sources":["../../node_modules/lucide-react/dist/esm/icons/menu.js","../../src/components/header/header.tsx"],"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 [\"path\", { d: \"M4 5h16\", key: \"1tepv9\" }],\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 19h16\", key: \"1djgab\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.js.map\n","import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type AnchorHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Menu } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst rootVariants = cva(\n [\n 'ds:w-full',\n // Fixed height — a Header is always the `lg` token (64px). Using `h-*`\n // (not `min-h-*`) pins the row regardless of how Storybook's Canvas /\n // docs wrapper stretches the story's layout.\n 'ds:h-[var(--header-height-lg)]',\n // `flex items-stretch` lets the inner div fill the full cross-axis so\n // the flex-centered content sits on the true vertical midline.\n 'ds:flex ds:items-stretch',\n // Pin to the top of the page — `sticky` keeps the Header in normal\n // document flow (so content below isn't occluded and the docs Canvas\n // doesn't leak the Header over adjacent preview blocks) but stays\n // anchored to the viewport while the nearest scroll ancestor scrolls.\n 'ds:sticky ds:inset-block-start-0 ds:z-[var(--z-sticky)]',\n 'ds:bg-[var(--background)]',\n 'ds:text-[color:var(--foreground)]',\n // Shadow recipe follows `Brand/Shadows` — one tier between states, never\n // two. Resting: flat, no shadow. Scrolled: --shadow-md (tooltip/menu tier)\n // paired with a 1-px --border so elevation still reads without the shadow\n // in forced-colors / print, where UAs strip box-shadow. Transition is\n // gated on `motion-reduce` so users opting out of motion still get the\n // static elevation without animated lift.\n 'ds:transition-[border-color,box-shadow] ds:motion-reduce:transition-none',\n 'ds:border-block-end ds:border-transparent',\n 'ds:data-[scrolled=true]:border-[color:var(--border)]',\n 'ds:data-[scrolled=true]:shadow-[var(--shadow-md)]',\n // Windows HCM: always show the border — forced-colors strips box-shadow\n // entirely, so the border is the only separation cue the user gets.\n 'ds:forced-colors:border-[color:CanvasText]',\n // Print: strip shadow, keep border so the header still reads as a\n // bounded surface on paper.\n 'ds:print:shadow-none ds:print:border-[color:var(--border)]',\n ].join(' '),\n {\n variants: {\n variant: {\n // Brand surface — primary-tinted background with primary-foreground\n // ink. Token rescopes are narrowed to `start` + `end` slots so chrome\n // (IconButton outline border, Logo monochrome, focus rings) re-tints\n // automatically. The `center` slot is excluded because SearchBar paints\n // its own `var(--background)` surface and must keep the document's\n // --foreground / --muted-foreground for its icon, placeholder, border,\n // kbd chip, and hover state.\n //\n // Contrast: --primary-foreground (#fff) over --primary (violet-500) is\n // 4.6:1 — passes WCAG AA for normal text. Muted-foreground is also set\n // to pure primary-foreground so any muted text in the header clears AA.\n //\n // Dark-mode override: in dark mode --primary is magenta-500 — using it\n // as the full-width header surface puts a hot-pink bar at the top of\n // every page, which the Apr 2026 brand guide's own dark mockups never\n // do (fuchsia is reserved for CTAs). We shift the header bg to\n // --background (blue-500) in dark so the header blends with the Dark\n // Blue brand surface at the same level as the Sidebar; separation\n // from the main canvas (which we offset to blue-700) is carried by\n // the existing scroll-shadow + border. White --primary-foreground ink\n // on blue-500 clears AAA (~12.8:1).\n brand: [\n 'ds:bg-[var(--primary)] ds:text-[color:var(--primary-foreground)]',\n 'ds:[.theme-dark_&]:bg-[var(--background)]',\n 'ds:[&_[data-header-slot=start]]:[--foreground:var(--primary-foreground)]',\n 'ds:[&_[data-header-slot=start]]:[--muted-foreground:var(--primary-foreground)]',\n 'ds:[&_[data-header-slot=start]]:[--border:color-mix(in_srgb,var(--primary-foreground)_40%,transparent)]',\n 'ds:[&_[data-header-slot=start]]:[--muted:color-mix(in_srgb,var(--primary-foreground)_16%,transparent)]',\n 'ds:[&_[data-header-slot=start]]:[--ring:var(--primary-foreground)]',\n 'ds:[&_[data-header-slot=end]]:[--foreground:var(--primary-foreground)]',\n 'ds:[&_[data-header-slot=end]]:[--muted-foreground:var(--primary-foreground)]',\n 'ds:[&_[data-header-slot=end]]:[--border:color-mix(in_srgb,var(--primary-foreground)_40%,transparent)]',\n 'ds:[&_[data-header-slot=end]]:[--muted:color-mix(in_srgb,var(--primary-foreground)_16%,transparent)]',\n 'ds:[&_[data-header-slot=end]]:[--ring:var(--primary-foreground)]',\n ].join(' '),\n // Light surface — plain page background with primary-coloured chrome.\n // Start + end slots rescope --foreground, --border, --ring to --primary\n // so IconButton borders/icons render in the brand hue while the\n // HeaderBrand wordmark keeps its bicolor artwork and the SearchBar\n // (center slot) is untouched.\n light: [\n 'ds:bg-[var(--background)] ds:text-[color:var(--foreground)]',\n 'ds:[&_[data-header-slot=start]]:[--foreground:var(--primary)]',\n 'ds:[&_[data-header-slot=start]]:[--border:var(--primary)]',\n 'ds:[&_[data-header-slot=start]]:[--ring:var(--primary)]',\n 'ds:[&_[data-header-slot=end]]:[--foreground:var(--primary)]',\n 'ds:[&_[data-header-slot=end]]:[--border:var(--primary)]',\n 'ds:[&_[data-header-slot=end]]:[--ring:var(--primary)]',\n ].join(' '),\n },\n },\n defaultVariants: {\n variant: 'brand',\n },\n },\n);\n\nconst innerVariants = cva(\n [\n 'ds:flex ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:w-full ds:h-full',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n ].join(' '),\n);\n\nconst slotStartVariants = cva('ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]');\nconst slotCenterVariants = cva(\n 'ds:hidden ds:md:flex ds:flex-1 ds:min-w-0 ds:items-center ds:justify-center ds:gap-[var(--spacing-sm)]',\n);\nconst slotEndVariants = cva('ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]');\n\nconst brandVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:text-[length:var(--font-size-base)] ds:font-[var(--font-weight-semibold)]',\n // `leading-none` zeros the anchor's line-height so the Logo SVG sits at\n // the geometric centre of the flex cross-axis — otherwise the residual\n // line-box above ascenders / below descenders nudges the SVG upward.\n 'ds:leading-none',\n // Inherit foreground from the Header root so the `brand` variant's\n // --primary-foreground ink cascades here without an override prop.\n 'ds:text-[color:currentColor]',\n 'ds:no-underline',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:min-h-[var(--min-target-size)]',\n ].join(' '),\n);\n\nconst brandDividerVariants = cva(\n [\n 'ds:hidden ds:md:inline-block',\n 'ds:border-inline-start ds:border-[color:var(--border)]',\n 'ds:self-stretch ds:my-[var(--spacing-xs)]',\n ].join(' '),\n);\n\nconst skipLinkVariants = cva(\n [\n 'ds:sr-only ds:focus:not-sr-only',\n 'ds:focus:absolute ds:focus:inset-inline-start-[var(--spacing-sm)] ds:focus:inset-block-start-[var(--spacing-sm)]',\n 'ds:focus:z-[calc(var(--z-sticky)+1)]',\n 'ds:focus:ps-[var(--spacing-sm)] ds:focus:pe-[var(--spacing-sm)] ds:focus:pbs-[var(--spacing-xs)] ds:focus:pbe-[var(--spacing-xs)]',\n 'ds:focus:bg-[var(--background)] ds:focus:text-[color:var(--foreground)]',\n 'ds:focus:border ds:focus:border-[color:var(--border)]',\n 'ds:focus:rounded-[var(--radius-sm)]',\n 'ds:focus:outline-[length:var(--focus-ring-width)] ds:focus:outline-solid ds:focus:outline-[color:var(--ring)]',\n 'ds:forced-colors:focus:outline-[CanvasText]',\n ].join(' '),\n);\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nexport interface HeaderProps\n extends Omit<HTMLAttributes<HTMLElement>, 'role' | 'children'>,\n VariantProps<typeof rootVariants> {\n children: ReactNode;\n /** Override the default landmark name. */\n 'aria-label'?: string;\n /** Enable the scroll-linked border + shadow (default `true`). */\n scrollLinkedElevation?: boolean;\n}\n\nexport const Header = forwardRef<HTMLElement, HeaderProps>(\n (\n {\n variant = 'brand',\n className,\n children,\n scrollLinkedElevation = true,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const label = ariaLabel ?? t('navigation.header.label', 'Page header');\n\n /* ---- Scroll-linked border / shadow ---------------------------- */\n const sentinelRef = useRef<HTMLDivElement | null>(null);\n const [scrolled, setScrolled] = useState(false);\n useEffect(() => {\n if (!scrollLinkedElevation) return undefined;\n const sentinel = sentinelRef.current;\n if (!sentinel) return undefined;\n if (typeof IntersectionObserver === 'undefined') return undefined;\n const io = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n // When the sentinel scrolls out of view (isIntersecting=false),\n // the user has scrolled past the top — flip the elevation on.\n setScrolled(!entry.isIntersecting);\n },\n { threshold: 0 },\n );\n io.observe(sentinel);\n return () => io.disconnect();\n }, [scrollLinkedElevation]);\n\n return (\n <>\n {/* 1px sentinel above the sticky header so the IntersectionObserver\n fires when the user scrolls past the top. Kept outside the\n <header> so it doesn't affect landmark semantics. */}\n {scrollLinkedElevation ? (\n <div\n ref={sentinelRef}\n aria-hidden=\"true\"\n className=\"ds:block ds:h-px ds:w-full\"\n />\n ) : null}\n <header\n ref={ref}\n role=\"banner\"\n aria-label={label}\n data-component=\"header\"\n data-scrolled={scrolled ? 'true' : undefined}\n className={rootVariants({ variant, className })}\n {...rest}\n >\n <div className={innerVariants()}>{children}</div>\n </header>\n </>\n );\n },\n);\nHeader.displayName = 'Header';\n\n/* ------------------------------------------------------------------ */\n/* Slot wrappers */\n/* ------------------------------------------------------------------ */\n\nexport const HeaderStart = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-header-slot=\"start\"\n className={[slotStartVariants(), className].filter(Boolean).join(' ')}\n {...props}\n />\n ),\n);\nHeaderStart.displayName = 'HeaderStart';\n\nexport const HeaderCenter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-header-slot=\"center\"\n className={[slotCenterVariants(), className].filter(Boolean).join(' ')}\n {...props}\n />\n ),\n);\nHeaderCenter.displayName = 'HeaderCenter';\n\nexport const HeaderEnd = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-header-slot=\"end\"\n className={[slotEndVariants(), className].filter(Boolean).join(' ')}\n {...props}\n />\n ),\n);\nHeaderEnd.displayName = 'HeaderEnd';\n\n/* ------------------------------------------------------------------ */\n/* Brand */\n/* ------------------------------------------------------------------ */\n\nexport interface HeaderBrandProps\n extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {\n /** Logo slot — an <svg> / <img>. Must carry its own accessible name via aria-label on the wrapping component OR a visible wordmark child. */\n logo?: ReactNode;\n /** Visible wordmark / product name. Sits after the logo. */\n children?: ReactNode;\n /** Destination href. Defaults to \"/\". */\n href?: string;\n}\n\nexport const HeaderBrand = forwardRef<HTMLAnchorElement, HeaderBrandProps>(\n ({ logo, children, href = '/', className, ...props }, ref) => {\n if (import.meta.env.DEV && !props['aria-label'] && !children) {\n // eslint-disable-next-line no-console\n console.warn(\n 'HeaderBrand: pass `aria-label` or visible children — a logo-only brand link without a name has no accessible name.',\n );\n }\n return (\n <a\n ref={ref}\n href={href}\n className={[brandVariants(), className].filter(Boolean).join(' ')}\n {...props}\n >\n {logo ? (\n <span aria-hidden={children ? 'true' : undefined} className=\"ds:inline-flex ds:items-center\">\n {logo}\n </span>\n ) : null}\n {children ? <span className=\"ds:truncate\">{children}</span> : null}\n </a>\n );\n },\n);\nHeaderBrand.displayName = 'HeaderBrand';\n\n/* ------------------------------------------------------------------ */\n/* Brand divider */\n/* ------------------------------------------------------------------ */\n\nexport function HeaderBrandDivider({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>): ReactNode {\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={[brandDividerVariants(), className].filter(Boolean).join(' ')}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Menu button (mobile drawer trigger) */\n/* ------------------------------------------------------------------ */\n\nexport interface HeaderMenuButtonProps {\n onMenuOpen: () => void;\n 'aria-label'?: string;\n className?: string;\n}\n\nexport const HeaderMenuButton = forwardRef<HTMLButtonElement, HeaderMenuButtonProps>(\n ({ onMenuOpen, 'aria-label': ariaLabel, className }, ref) => {\n const { t } = useTranslation();\n return (\n <IconButton\n ref={ref}\n // Show on mobile; hide above md breakpoint.\n className={['ds:md:hidden', className].filter(Boolean).join(' ')}\n icon={<Menu aria-hidden />}\n aria-label={ariaLabel ?? t('navigation.sidebar.open', 'Open menu')}\n onClick={onMenuOpen}\n />\n );\n },\n);\nHeaderMenuButton.displayName = 'HeaderMenuButton';\n\n/* ------------------------------------------------------------------ */\n/* SkipLink */\n/* ------------------------------------------------------------------ */\n\nexport interface HeaderSkipLinkProps\n extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {\n href: string;\n children?: ReactNode;\n}\n\nexport const HeaderSkipLink = forwardRef<HTMLAnchorElement, HeaderSkipLinkProps>(\n ({ href, children, className, ...props }, ref) => {\n const { t } = useTranslation();\n return (\n <a\n ref={ref}\n href={href}\n className={[skipLinkVariants(), className].filter(Boolean).join(' ')}\n {...props}\n >\n {children ?? t('navigation.nav.skipToContent', 'Skip to content')}\n </a>\n );\n },\n);\nHeaderSkipLink.displayName = 'HeaderSkipLink';\n"],"names":["__iconNode","Menu","createLucideIcon","rootVariants","cva","innerVariants","slotStartVariants","slotCenterVariants","slotEndVariants","brandVariants","brandDividerVariants","skipLinkVariants","Header","forwardRef","variant","className","children","scrollLinkedElevation","ariaLabel","rest","ref","t","useTranslation","label","sentinelRef","useRef","scrolled","setScrolled","useState","useEffect","sentinel","io","entries","entry","jsxs","Fragment","jsx","HeaderStart","props","HeaderCenter","HeaderEnd","HeaderBrand","logo","href","HeaderBrandDivider","HeaderMenuButton","onMenuOpen","IconButton","HeaderSkipLink"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-Wnnde5lc.js","sources":["../../src/components/button/icon-button.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Tooltip } from '../tooltip';\n\nconst iconButtonVariants = cva('ds:p-0', {\n variants: {\n size: {\n sm: 'ds:w-8 ds:h-8',\n md: 'ds:w-10 ds:h-10',\n lg: 'ds:w-12 ds:h-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type IconButtonProps = Omit<\n ButtonProps,\n 'startIcon' | 'endIcon' | 'children' | 'size' | 'flipIconInRtl'\n> &\n VariantProps<typeof iconButtonVariants> & {\n icon: React.ReactNode;\n tooltip?: string;\n 'aria-label'?: string;\n /**\n * Mirror the icon horizontally in RTL. Default `false` — only enable\n * for directional glyphs (arrows, chevrons). See Button.flipIconInRtl.\n */\n flipIconInRtl?: boolean;\n };\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n { icon, size, intent = 'outline', className, tooltip, flipIconInRtl = false, ...props },\n ref,\n ) => {\n const ariaLabel = props['aria-label'] || tooltip;\n\n if (import.meta.env.DEV && !ariaLabel) {\n console.warn('IconButton: aria-label or tooltip prop is required for accessibility.');\n }\n\n const iconSizeClass =\n size === 'sm' ? 'ds:size-4' : size === 'lg' ? 'ds:size-5' : 'ds:size-[18px]';\n const iconFlipClass = flipIconInRtl ? 'ds:rtl:rotate-180' : '';\n\n const button = (\n <Button\n ref={ref}\n size={size}\n intent={intent}\n className={iconButtonVariants({ size, className })}\n aria-label={ariaLabel}\n data-component=\"icon-button\"\n {...props}\n >\n <span\n aria-hidden=\"true\"\n className={`ds:inline-flex ds:items-center ds:justify-center ${iconSizeClass} ${iconFlipClass}`.trim()}\n >\n {icon}\n </span>\n </Button>\n );\n\n if (tooltip) {\n return <Tooltip label={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n },\n);\n\nIconButton.displayName = 'IconButton';\n"],"names":["iconButtonVariants","cva","IconButton","forwardRef","icon","size","intent","className","tooltip","flipIconInRtl","props","ref","ariaLabel","iconSizeClass","iconFlipClass","button","jsx","Button","Tooltip"],"mappings":";;;;;AAKA,MAAMA,IAAqBC,EAAI,UAAU;AAAA,EACvC,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAiBYC,IAAaC;AAAA,EACxB,CACE,EAAE,MAAAC,GAAM,MAAAC,GAAM,QAAAC,IAAS,WAAW,WAAAC,GAAW,SAAAC,GAAS,eAAAC,IAAgB,IAAO,GAAGC,EAAA,GAChFC,MACG;AACH,UAAMC,IAAYF,EAAM,YAAY,KAAKF,GAMnCK,IACJR,MAAS,OAAO,cAAcA,MAAS,OAAO,cAAc,kBACxDS,IAAgBL,IAAgB,sBAAsB,IAEtDM,IACJ,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,MAAAN;AAAA,QACA,QAAAC;AAAA,QACA,WAAWN,EAAmB,EAAE,MAAAK,GAAM,WAAAE,GAAW;AAAA,QACjD,cAAYK;AAAA,QACZ,kBAAe;AAAA,QACd,GAAGF;AAAA,QAEJ,UAAA,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAW,oDAAoDH,CAAa,IAAIC,CAAa,GAAG,KAAA;AAAA,YAE/F,UAAAV;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAIJ,WAAII,sBACMU,GAAA,EAAQ,OAAOV,GAAU,UAAAO,GAAO,IAGnCA;AAAA,EACT;AACF;AAEAb,EAAW,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-group-DeV3FpNY.js","sources":["../../src/components/icon-button-group/icon-button-group.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useLayoutEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { IconButton, type IconButtonProps } from '../button/icon-button';\nimport type { ButtonProps } from '../button/button';\n\ntype ButtonIntent = NonNullable<ButtonProps['intent']>;\n\n// Intentionally does NOT compose `@radix-ui/react-toggle-group`. Radix\n// ToggleGroup's render shape makes it hard to layer shared-border chrome\n// across children (first-child / last-child / internal-divider CSS), and\n// the three-mode + three-role matrix (group / toolbar / radiogroup × momentary\n// / toggle-single / toggle-multi) is broader than Radix's single / multi\n// contract. The roving-tabindex implementation below mirrors Radix's pattern\n// so keyboard semantics stay consistent. See 05-accessibility.mdx for the\n// WAI-ARIA toolbar / radiogroup references.\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst iconButtonGroupVariants = cva(\n [\n 'ds:inline-flex ds:isolate',\n // Hairline border around the group unifies the children into one\n // visual unit. Internal child dividers are drawn via the per-child\n // class list below.\n 'ds:border ds:border-border',\n 'ds:rounded-[var(--radius-md)]',\n // Ensure the focus ring of a pressed child sits above its siblings.\n 'ds:[&>*]:relative ds:[&>*:focus-visible]:z-10',\n ].join(' '),\n {\n variants: {\n orientation: {\n horizontal: [\n 'ds:flex-row',\n // Flatten internal corners on children so the outer radius owns\n // the rounded edges.\n 'ds:[&>*:not(:first-child)]:rounded-s-none',\n 'ds:[&>*:not(:last-child)]:rounded-e-none',\n // Internal divider — logical so it flips in RTL.\n 'ds:[&>*:not(:first-child)]:border-s',\n 'ds:[&>*:not(:first-child)]:border-border',\n // The children already own an outer border (from IconButton's\n // own border in secondary/outline variants). Collapse the doubled\n // border so we don't get a 2px seam.\n 'ds:[&>*]:border-0',\n ].join(' '),\n vertical: [\n 'ds:flex-col',\n // Vertical groups flow block-wise. Reading direction doesn't\n // invert vertical stacks in any locale this DS targets, so the\n // physical `rounded-t/b` is intentional.\n 'ds:[&>*:not(:first-child)]:rounded-t-none',\n 'ds:[&>*:not(:last-child)]:rounded-b-none',\n 'ds:[&>*:not(:first-child)]:border-t',\n 'ds:[&>*:not(:first-child)]:border-border',\n 'ds:[&>*]:border-0',\n ].join(' '),\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type IconButtonGroupRole = 'group' | 'toolbar' | 'radiogroup';\nexport type IconButtonGroupMode =\n | 'momentary'\n | 'toggle-single'\n | 'toggle-multi';\n\ntype SharedPropsBase = {\n /** Forwarded to every child that does not set its own `size`. */\n size?: 'sm' | 'md' | 'lg';\n orientation?: 'horizontal' | 'vertical';\n /** Disables every child. Uses `aria-disabled` on children (not the HTML\n * attribute) so each child still takes focus — matches WAI-ARIA toolbar\n * guidance. Visual disabled styling picks up the `aria-disabled:*`\n * variant declared on the Button base class. */\n disabled?: boolean;\n /** Intent applied to every child that does not set its own `intent`.\n * Defaults to `outline` — grouped icon buttons are peers, not a row\n * of solid-primary CTAs. */\n intent?: ButtonIntent;\n children: ReactNode;\n};\n\n// At least one of `aria-label` / `aria-labelledby` must be present. This\n// discriminated pair makes the TypeScript compiler reject a group with\n// neither — see the a11y acceptance criteria in the user story.\ntype AccessibleNameProps =\n | { 'aria-label': string; 'aria-labelledby'?: never }\n | { 'aria-label'?: never; 'aria-labelledby': string };\n\ntype SharedProps = SharedPropsBase & AccessibleNameProps;\n\n// Role + mode combinations are not all valid. Encoded via a discriminated\n// union so the compiler rejects nonsensical pairings (e.g. a multi-select\n// radiogroup).\ntype GroupRoleProps =\n | { role?: 'group'; mode?: 'momentary' | 'toggle-single' | 'toggle-multi' }\n | { role: 'toolbar'; mode?: 'momentary' | 'toggle-single' | 'toggle-multi' }\n | { role: 'radiogroup'; mode: 'toggle-single' };\n\ntype MomentaryProps = SharedProps & {\n mode?: 'momentary';\n value?: never;\n defaultValue?: never;\n onValueChange?: never;\n};\n\ntype ToggleSingleProps = SharedProps & {\n mode: 'toggle-single';\n value?: string;\n defaultValue?: string;\n onValueChange?: (next: string) => void;\n};\n\ntype ToggleMultiProps = SharedProps & {\n mode: 'toggle-multi';\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (next: string[]) => void;\n};\n\nexport type IconButtonGroupProps = (\n | MomentaryProps\n | ToggleSingleProps\n | ToggleMultiProps\n) &\n GroupRoleProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'onChange' | 'children'> &\n VariantProps<typeof iconButtonGroupVariants>;\n\n/* ------------------------------------------------------------------ */\n/* IconButtonGroup */\n/* ------------------------------------------------------------------ */\n\nexport const IconButtonGroup = forwardRef<HTMLDivElement, IconButtonGroupProps>(\n (props, ref) => {\n const {\n size,\n orientation = 'horizontal',\n role = 'group',\n mode = 'momentary',\n disabled = false,\n intent = 'outline',\n className,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props as IconButtonGroupProps & { className?: string };\n\n if (import.meta.env.DEV && !ariaLabel && !ariaLabelledBy) {\n // eslint-disable-next-line no-console\n console.warn(\n 'IconButtonGroup: `aria-label` or `aria-labelledby` is required for accessibility.',\n );\n }\n\n /* ---- Controlled / uncontrolled value for toggle modes --------- */\n const [internalValue, setInternalValue] = useState<string | string[]>(\n () => {\n if (mode === 'toggle-single') {\n const p = props as ToggleSingleProps;\n return p.defaultValue ?? '';\n }\n if (mode === 'toggle-multi') {\n const p = props as ToggleMultiProps;\n return p.defaultValue ?? [];\n }\n return '';\n },\n );\n\n const resolvedValue: string | string[] = (() => {\n if (mode === 'toggle-single') {\n const p = props as ToggleSingleProps;\n return p.value !== undefined ? p.value : internalValue;\n }\n if (mode === 'toggle-multi') {\n const p = props as ToggleMultiProps;\n return p.value !== undefined ? p.value : internalValue;\n }\n return '';\n })();\n\n const commitValue = useCallback(\n (next: string | string[]) => {\n if (mode === 'toggle-single') {\n const p = props as ToggleSingleProps;\n if (p.value === undefined) setInternalValue(next as string);\n p.onValueChange?.(next as string);\n } else if (mode === 'toggle-multi') {\n const p = props as ToggleMultiProps;\n if (p.value === undefined) setInternalValue(next as string[]);\n p.onValueChange?.(next as string[]);\n }\n },\n [mode, props],\n );\n\n /* ---- Roving tabindex state — only active in toolbar / radiogroup - */\n const rovingTabindex = role === 'toolbar' || role === 'radiogroup';\n const buttonsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n\n const registerIndex = useCallback(\n (index: number, el: HTMLButtonElement | null) => {\n buttonsRef.current[index] = el;\n },\n [],\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [isRTL, setIsRTL] = useState(false);\n // `useLayoutEffect` so the direction is correct BEFORE the first paint\n // (otherwise a user pressing an arrow key on the first frame after mount\n // would hit the default-LTR mapping even in an RTL document).\n useLayoutEffect(() => {\n if (typeof window === 'undefined') return;\n const node = rootRef.current;\n if (!node) return;\n // Read the computed direction from the group's own wrapper so a\n // scoped `dir='rtl'` on any ancestor (not just <html>) flips arrow\n // navigation. `getComputedStyle` walks up automatically.\n const dir = window.getComputedStyle(node).direction;\n setIsRTL(dir === 'rtl');\n }, []);\n\n /* ---- Arrow-key navigation for roving tabindex ----------------- */\n const handleRootKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (!rovingTabindex) return;\n const count = buttonsRef.current.filter(Boolean).length;\n if (count === 0) return;\n\n const forwardKey =\n orientation === 'vertical'\n ? 'ArrowDown'\n : isRTL\n ? 'ArrowLeft'\n : 'ArrowRight';\n const backwardKey =\n orientation === 'vertical'\n ? 'ArrowUp'\n : isRTL\n ? 'ArrowRight'\n : 'ArrowLeft';\n\n let next: number | null = null;\n if (event.key === forwardKey) next = (focusIndex + 1) % count;\n else if (event.key === backwardKey)\n next = (focusIndex - 1 + count) % count;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = count - 1;\n\n if (next === null) return;\n // Skip over disabled children.\n const maxAttempts = count;\n let attempts = 0;\n let candidate = next;\n while (attempts < maxAttempts) {\n const el = buttonsRef.current[candidate];\n if (el && el.getAttribute('aria-disabled') !== 'true' && !el.disabled) {\n break;\n }\n candidate =\n event.key === backwardKey || event.key === 'End'\n ? (candidate - 1 + count) % count\n : (candidate + 1) % count;\n attempts += 1;\n }\n event.preventDefault();\n setFocusIndex(candidate);\n buttonsRef.current[candidate]?.focus();\n // WAI-ARIA radiogroup pattern: arrow keys MOVE focus AND CHANGE\n // the selected radio in one action. toolbar pattern (and plain\n // group) only moves focus.\n if (role === 'radiogroup' && mode === 'toggle-single') {\n const child = childArrayRef.current[candidate];\n if (child && typeof child === 'object' && 'props' in child) {\n const cValue = (\n child as ReactElement<{ value?: string }>\n ).props.value;\n if (cValue) commitValue(cValue);\n }\n }\n },\n [rovingTabindex, orientation, isRTL, focusIndex, role, mode, commitValue],\n );\n\n /* ---- Build enhanced children ---------------------------------- */\n const childArray = Children.toArray(children);\n // Mirror into a ref so the keydown handler (referenced from Memo deps)\n // can read the latest child list without inflating the dep array.\n const childArrayRef = useRef<ReturnType<typeof Children.toArray>>([]);\n childArrayRef.current = childArray;\n\n const enhanced = childArray.map((child, index) => {\n if (!isValidElement(child)) {\n if (import.meta.env.DEV) {\n // eslint-disable-next-line no-console\n console.warn(\n 'IconButtonGroup: children should be <IconButton> elements.',\n );\n }\n return child;\n }\n\n const childEl = child as ReactElement<\n IconButtonProps & {\n value?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n }\n >;\n\n // DEV-time sanity: warn if we got something that isn't an IconButton.\n // `React.cloneElement` would still work, but IconButton-specific\n // props (::before target size, forwarded tooltip) wouldn't apply.\n if (import.meta.env.DEV && childEl.type !== IconButton) {\n // eslint-disable-next-line no-console\n console.warn(\n 'IconButtonGroup: each child should be a DS <IconButton>. Other elements break target-size + focus-ring contracts.',\n );\n }\n\n const childValue = childEl.props.value;\n\n // Compute aria-pressed / aria-checked for toggle modes.\n const { ariaPressed, ariaChecked } = computeToggleAria(\n mode,\n role,\n childValue,\n resolvedValue,\n );\n\n const groupDisabled = disabled === true;\n const childDisabled = childEl.props.disabled === true;\n\n // Click handling — wrap so aria-disabled (group-level) blocks\n // activation, then forward to the child's own onClick.\n const wrappedOnClick: React.MouseEventHandler<HTMLButtonElement> = (\n event,\n ) => {\n // aria-disabled is advisory; the native click still fires. Block\n // it explicitly when the GROUP (not the child) is disabled.\n if (groupDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Forward to the child's own handler first so consumers can run\n // analytics / preventDefault.\n childEl.props.onClick?.(event);\n if (event.defaultPrevented) return;\n if (!childValue) return;\n if (mode === 'toggle-single') {\n // Contract: exactly one pressed. Clicking the pressed one is a\n // no-op. This matches Radix ToggleGroup type='single' and the\n // radiogroup pattern.\n if (resolvedValue === childValue) return;\n commitValue(childValue);\n } else if (mode === 'toggle-multi') {\n const list = resolvedValue as string[];\n const next = list.includes(childValue)\n ? list.filter((v) => v !== childValue)\n : [...list, childValue];\n commitValue(next);\n }\n };\n\n // cloneElement's typed overload rejects `ref` as a prop, so we\n // build the override bag as `unknown` and cast to the element's\n // prop type. React at runtime routes `ref` via its usual channel.\n const setMergedRef = (node: HTMLButtonElement | null) => {\n registerIndex(index, node);\n const originalRef = (\n childEl as unknown as { ref?: React.Ref<HTMLButtonElement> }\n ).ref;\n if (typeof originalRef === 'function') originalRef(node);\n else if (\n originalRef !== null &&\n originalRef !== undefined &&\n typeof originalRef === 'object'\n ) {\n (originalRef as React.MutableRefObject<HTMLButtonElement | null>).current =\n node;\n }\n };\n\n // Per the user story: group-level disabled injects `aria-disabled`\n // so the child stays focusable; child-level `disabled` still uses\n // the HTML attribute (child's own contract). When both are true\n // we leave the HTML disabled in place (strictest cue wins).\n const ariaDisabled = groupDisabled && !childDisabled ? true : undefined;\n\n // If the group is disabled OR we are in a toggle mode, we need the\n // wrapped click handler. In pure momentary mode with no group\n // disable, the child's own onClick is passed through unchanged.\n const needsWrappedClick = mode !== 'momentary' || groupDisabled;\n\n const overrides = {\n intent: childEl.props.intent ?? intent,\n size: childEl.props.size ?? size,\n disabled: childDisabled,\n 'aria-disabled': ariaDisabled,\n onClick: needsWrappedClick ? wrappedOnClick : childEl.props.onClick,\n 'aria-pressed': ariaPressed,\n 'aria-checked': ariaChecked,\n // When the group is a radiogroup, children must be `role=\"radio\"`\n // so screen readers announce them as radio buttons and so\n // `getByRole('radio')` works in tests. The button element is\n // re-purposed as a radio; `aria-checked` above carries the state.\n role: role === 'radiogroup' ? 'radio' : undefined,\n tabIndex: rovingTabindex ? (index === focusIndex ? 0 : -1) : undefined,\n onFocus: (ev: React.FocusEvent<HTMLButtonElement>) => {\n if (rovingTabindex) setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n },\n ref: setMergedRef,\n } as unknown as Partial<IconButtonProps>;\n\n return cloneElement(childEl, overrides);\n });\n\n const mergedRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref && typeof ref === 'object') {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n };\n\n return (\n <div\n ref={mergedRootRef}\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-orientation={role === 'toolbar' ? orientation : undefined}\n onKeyDown={handleRootKeyDown}\n className={iconButtonGroupVariants({ orientation, className })}\n data-component=\"icon-button-group\"\n {...rest}\n >\n {enhanced}\n </div>\n );\n },\n);\n\nIconButtonGroup.displayName = 'IconButtonGroup';\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction computeToggleAria(\n mode: IconButtonGroupMode,\n role: IconButtonGroupRole,\n childValue: string | undefined,\n resolvedValue: string | string[],\n): { ariaPressed?: boolean; ariaChecked?: boolean } {\n if (mode === 'momentary' || !childValue) return {};\n\n const isActive =\n mode === 'toggle-multi'\n ? (resolvedValue as string[]).includes(childValue)\n : resolvedValue === childValue;\n\n // radiogroup uses aria-checked; toolbar/group use aria-pressed.\n if (role === 'radiogroup') {\n return { ariaChecked: isActive };\n }\n return { ariaPressed: isActive };\n}\n\n"],"names":["iconButtonGroupVariants","cva","IconButtonGroup","forwardRef","props","ref","size","orientation","role","mode","disabled","intent","className","children","ariaLabel","ariaLabelledBy","rest","internalValue","setInternalValue","useState","resolvedValue","p","commitValue","useCallback","next","_a","_b","rovingTabindex","buttonsRef","useRef","focusIndex","setFocusIndex","registerIndex","index","el","rootRef","isRTL","setIsRTL","useLayoutEffect","node","dir","handleRootKeyDown","event","count","forwardKey","backwardKey","maxAttempts","attempts","candidate","child","childArrayRef","cValue","childArray","Children","enhanced","isValidElement","childEl","childValue","ariaPressed","ariaChecked","computeToggleAria","groupDisabled","childDisabled","wrappedOnClick","list","v","setMergedRef","originalRef","ariaDisabled","needsWrappedClick","overrides","ev","cloneElement","jsx","isActive"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-4xgbg-sn.js","sources":["../../node_modules/cmdk/dist/chunk-NZJY6EH4.mjs","../../node_modules/cmdk/dist/index.mjs"],"sourcesContent":["var U=1,Y=.9,H=.8,J=.17,p=.1,u=.999,$=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(_,C,h,P,A,f,O){if(f===C.length)return A===_.length?U:k;var T=`${A},${f}`;if(O[T]!==void 0)return O[T];for(var L=P.charAt(f),c=h.indexOf(L,A),S=0,E,N,R,M;c>=0;)E=G(_,C,h,P,c+1,f+1,O),E>S&&(c===A?E*=U:m.test(_.charAt(c-1))?(E*=H,R=_.slice(A,c-1).match(B),R&&A>0&&(E*=Math.pow(u,R.length))):K.test(_.charAt(c-1))?(E*=Y,M=_.slice(A,c-1).match(X),M&&A>0&&(E*=Math.pow(u,M.length))):(E*=J,A>0&&(E*=Math.pow(u,c-A))),_.charAt(c)!==C.charAt(f)&&(E*=$)),(E<p&&h.charAt(c-1)===P.charAt(f+1)||P.charAt(f+1)===P.charAt(f)&&h.charAt(c-1)!==P.charAt(f))&&(N=G(_,C,h,P,c+1,f+2,O),N*p>E&&(E=N*p)),E>S&&(S=E),c=h.indexOf(L,c+1);return O[T]=S,S}function D(_){return _.toLowerCase().replace(X,\" \")}function W(_,C,h){return _=h&&h.length>0?`${_+\" \"+h.join(\" \")}`:_,G(_,C,D(_),D(C),0,0,{})}export{W as a};\n","\"use client\";import{a as ae}from\"./chunk-NZJY6EH4.mjs\";import*as w from\"@radix-ui/react-dialog\";import*as t from\"react\";import{Primitive as D}from\"@radix-ui/react-primitive\";import{useId as H}from\"@radix-ui/react-id\";import{composeRefs as G}from\"@radix-ui/react-compose-refs\";var N='[cmdk-group=\"\"]',Y='[cmdk-group-items=\"\"]',be='[cmdk-group-heading=\"\"]',le='[cmdk-item=\"\"]',ce=`${le}:not([aria-disabled=\"true\"])`,Z=\"cmdk-item-select\",T=\"data-value\",Re=(r,o,n)=>ae(r,o,n),ue=t.createContext(void 0),K=()=>t.useContext(ue),de=t.createContext(void 0),ee=()=>t.useContext(de),fe=t.createContext(void 0),me=t.forwardRef((r,o)=>{let n=L(()=>{var e,a;return{search:\"\",value:(a=(e=r.value)!=null?e:r.defaultValue)!=null?a:\"\",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),u=L(()=>new Set),c=L(()=>new Map),d=L(()=>new Map),f=L(()=>new Set),p=pe(r),{label:b,children:m,value:R,onValueChange:x,filter:C,shouldFilter:S,loop:A,disablePointerSelection:ge=!1,vimBindings:j=!0,...O}=r,$=H(),q=H(),_=H(),I=t.useRef(null),v=ke();k(()=>{if(R!==void 0){let e=R.trim();n.current.value=e,E.emit()}},[R]),k(()=>{v(6,ne)},[]);let E=t.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>n.current,setState:(e,a,s)=>{var i,l,g,y;if(!Object.is(n.current[e],a)){if(n.current[e]=a,e===\"search\")J(),z(),v(1,W);else if(e===\"value\"){if(document.activeElement.hasAttribute(\"cmdk-input\")||document.activeElement.hasAttribute(\"cmdk-root\")){let h=document.getElementById(_);h?h.focus():(i=document.getElementById($))==null||i.focus()}if(v(7,()=>{var h;n.current.selectedItemId=(h=M())==null?void 0:h.id,E.emit()}),s||v(5,ne),((l=p.current)==null?void 0:l.value)!==void 0){let h=a!=null?a:\"\";(y=(g=p.current).onValueChange)==null||y.call(g,h);return}}E.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),U=t.useMemo(()=>({value:(e,a,s)=>{var i;a!==((i=d.current.get(e))==null?void 0:i.value)&&(d.current.set(e,{value:a,keywords:s}),n.current.filtered.items.set(e,te(a,s)),v(2,()=>{z(),E.emit()}))},item:(e,a)=>(u.current.add(e),a&&(c.current.has(a)?c.current.get(a).add(e):c.current.set(a,new Set([e]))),v(3,()=>{J(),z(),n.current.value||W(),E.emit()}),()=>{d.current.delete(e),u.current.delete(e),n.current.filtered.items.delete(e);let s=M();v(4,()=>{J(),(s==null?void 0:s.getAttribute(\"id\"))===e&&W(),E.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:b||r[\"aria-label\"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:$,inputId:_,labelId:q,listInnerRef:I}),[]);function te(e,a){var i,l;let s=(l=(i=p.current)==null?void 0:i.filter)!=null?l:Re;return e?s(e,n.current.search,a):0}function z(){if(!n.current.search||p.current.shouldFilter===!1)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach(i=>{let l=c.current.get(i),g=0;l.forEach(y=>{let h=e.get(y);g=Math.max(h,g)}),a.push([i,g])});let s=I.current;V().sort((i,l)=>{var h,F;let g=i.getAttribute(\"id\"),y=l.getAttribute(\"id\");return((h=e.get(y))!=null?h:0)-((F=e.get(g))!=null?F:0)}).forEach(i=>{let l=i.closest(Y);l?l.appendChild(i.parentElement===l?i:i.closest(`${Y} > *`)):s.appendChild(i.parentElement===s?i:i.closest(`${Y} > *`))}),a.sort((i,l)=>l[1]-i[1]).forEach(i=>{var g;let l=(g=I.current)==null?void 0:g.querySelector(`${N}[${T}=\"${encodeURIComponent(i[0])}\"]`);l==null||l.parentElement.appendChild(l)})}function W(){let e=V().find(s=>s.getAttribute(\"aria-disabled\")!==\"true\"),a=e==null?void 0:e.getAttribute(T);E.setState(\"value\",a||void 0)}function J(){var a,s,i,l;if(!n.current.search||p.current.shouldFilter===!1){n.current.filtered.count=u.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let g of u.current){let y=(s=(a=d.current.get(g))==null?void 0:a.value)!=null?s:\"\",h=(l=(i=d.current.get(g))==null?void 0:i.keywords)!=null?l:[],F=te(y,h);n.current.filtered.items.set(g,F),F>0&&e++}for(let[g,y]of c.current)for(let h of y)if(n.current.filtered.items.get(h)>0){n.current.filtered.groups.add(g);break}n.current.filtered.count=e}function ne(){var a,s,i;let e=M();e&&(((a=e.parentElement)==null?void 0:a.firstChild)===e&&((i=(s=e.closest(N))==null?void 0:s.querySelector(be))==null||i.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function M(){var e;return(e=I.current)==null?void 0:e.querySelector(`${le}[aria-selected=\"true\"]`)}function V(){var e;return Array.from(((e=I.current)==null?void 0:e.querySelectorAll(ce))||[])}function X(e){let s=V()[e];s&&E.setState(\"value\",s.getAttribute(T))}function Q(e){var g;let a=M(),s=V(),i=s.findIndex(y=>y===a),l=s[i+e];(g=p.current)!=null&&g.loop&&(l=i+e<0?s[s.length-1]:i+e===s.length?s[0]:s[i+e]),l&&E.setState(\"value\",l.getAttribute(T))}function re(e){let a=M(),s=a==null?void 0:a.closest(N),i;for(;s&&!i;)s=e>0?we(s,N):De(s,N),i=s==null?void 0:s.querySelector(ce);i?E.setState(\"value\",i.getAttribute(T)):Q(e)}let oe=()=>X(V().length-1),ie=e=>{e.preventDefault(),e.metaKey?oe():e.altKey?re(1):Q(1)},se=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?re(-1):Q(-1)};return t.createElement(D.div,{ref:o,tabIndex:-1,...O,\"cmdk-root\":\"\",onKeyDown:e=>{var s;(s=O.onKeyDown)==null||s.call(O,e);let a=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||a))switch(e.key){case\"n\":case\"j\":{j&&e.ctrlKey&&ie(e);break}case\"ArrowDown\":{ie(e);break}case\"p\":case\"k\":{j&&e.ctrlKey&&se(e);break}case\"ArrowUp\":{se(e);break}case\"Home\":{e.preventDefault(),X(0);break}case\"End\":{e.preventDefault(),oe();break}case\"Enter\":{e.preventDefault();let i=M();if(i){let l=new Event(Z);i.dispatchEvent(l)}}}}},t.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:U.inputId,id:U.labelId,style:Te},b),B(r,e=>t.createElement(de.Provider,{value:E},t.createElement(ue.Provider,{value:U},e))))}),he=t.forwardRef((r,o)=>{var _,I;let n=H(),u=t.useRef(null),c=t.useContext(fe),d=K(),f=pe(r),p=(I=(_=f.current)==null?void 0:_.forceMount)!=null?I:c==null?void 0:c.forceMount;k(()=>{if(!p)return d.item(n,c==null?void 0:c.id)},[p]);let b=ve(n,u,[r.value,r.children,u],r.keywords),m=ee(),R=P(v=>v.value&&v.value===b.current),x=P(v=>p||d.filter()===!1?!0:v.search?v.filtered.items.get(n)>0:!0);t.useEffect(()=>{let v=u.current;if(!(!v||r.disabled))return v.addEventListener(Z,C),()=>v.removeEventListener(Z,C)},[x,r.onSelect,r.disabled]);function C(){var v,E;S(),(E=(v=f.current).onSelect)==null||E.call(v,b.current)}function S(){m.setState(\"value\",b.current,!0)}if(!x)return null;let{disabled:A,value:ge,onSelect:j,forceMount:O,keywords:$,...q}=r;return t.createElement(D.div,{ref:G(u,o),...q,id:n,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":!!A,\"aria-selected\":!!R,\"data-disabled\":!!A,\"data-selected\":!!R,onPointerMove:A||d.getDisablePointerSelection()?void 0:S,onClick:A?void 0:C},r.children)}),Ee=t.forwardRef((r,o)=>{let{heading:n,children:u,forceMount:c,...d}=r,f=H(),p=t.useRef(null),b=t.useRef(null),m=H(),R=K(),x=P(S=>c||R.filter()===!1?!0:S.search?S.filtered.groups.has(f):!0);k(()=>R.group(f),[]),ve(f,p,[r.value,r.heading,b]);let C=t.useMemo(()=>({id:f,forceMount:c}),[c]);return t.createElement(D.div,{ref:G(p,o),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:x?void 0:!0},n&&t.createElement(\"div\",{ref:b,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:m},n),B(r,S=>t.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":n?m:void 0},t.createElement(fe.Provider,{value:C},S))))}),ye=t.forwardRef((r,o)=>{let{alwaysRender:n,...u}=r,c=t.useRef(null),d=P(f=>!f.search);return!n&&!d?null:t.createElement(D.div,{ref:G(c,o),...u,\"cmdk-separator\":\"\",role:\"separator\"})}),Se=t.forwardRef((r,o)=>{let{onValueChange:n,...u}=r,c=r.value!=null,d=ee(),f=P(m=>m.search),p=P(m=>m.selectedItemId),b=K();return t.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),t.createElement(D.input,{ref:o,...u,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":b.listId,\"aria-labelledby\":b.labelId,\"aria-activedescendant\":p,id:b.inputId,type:\"text\",value:c?r.value:f,onChange:m=>{c||d.setState(\"search\",m.target.value),n==null||n(m.target.value)}})}),Ce=t.forwardRef((r,o)=>{let{children:n,label:u=\"Suggestions\",...c}=r,d=t.useRef(null),f=t.useRef(null),p=P(m=>m.selectedItemId),b=K();return t.useEffect(()=>{if(f.current&&d.current){let m=f.current,R=d.current,x,C=new ResizeObserver(()=>{x=requestAnimationFrame(()=>{let S=m.offsetHeight;R.style.setProperty(\"--cmdk-list-height\",S.toFixed(1)+\"px\")})});return C.observe(m),()=>{cancelAnimationFrame(x),C.unobserve(m)}}},[]),t.createElement(D.div,{ref:G(d,o),...c,\"cmdk-list\":\"\",role:\"listbox\",tabIndex:-1,\"aria-activedescendant\":p,\"aria-label\":u,id:b.listId},B(r,m=>t.createElement(\"div\",{ref:G(f,b.listInnerRef),\"cmdk-list-sizer\":\"\"},m)))}),xe=t.forwardRef((r,o)=>{let{open:n,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return t.createElement(w.Root,{open:n,onOpenChange:u},t.createElement(w.Portal,{container:f},t.createElement(w.Overlay,{\"cmdk-overlay\":\"\",className:c}),t.createElement(w.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},t.createElement(me,{ref:o,...p}))))}),Ie=t.forwardRef((r,o)=>P(u=>u.filtered.count===0)?t.createElement(D.div,{ref:o,...r,\"cmdk-empty\":\"\",role:\"presentation\"}):null),Pe=t.forwardRef((r,o)=>{let{progress:n,children:u,label:c=\"Loading...\",...d}=r;return t.createElement(D.div,{ref:o,...d,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":n,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":c},B(r,f=>t.createElement(\"div\",{\"aria-hidden\":!0},f)))}),_e=Object.assign(me,{List:Ce,Item:he,Input:Se,Group:Ee,Separator:ye,Dialog:xe,Empty:Ie,Loading:Pe});function we(r,o){let n=r.nextElementSibling;for(;n;){if(n.matches(o))return n;n=n.nextElementSibling}}function De(r,o){let n=r.previousElementSibling;for(;n;){if(n.matches(o))return n;n=n.previousElementSibling}}function pe(r){let o=t.useRef(r);return k(()=>{o.current=r}),o}var k=typeof window==\"undefined\"?t.useEffect:t.useLayoutEffect;function L(r){let o=t.useRef();return o.current===void 0&&(o.current=r()),o}function P(r){let o=ee(),n=()=>r(o.snapshot());return t.useSyncExternalStore(o.subscribe,n,n)}function ve(r,o,n,u=[]){let c=t.useRef(),d=K();return k(()=>{var b;let f=(()=>{var m;for(let R of n){if(typeof R==\"string\")return R.trim();if(typeof R==\"object\"&&\"current\"in R)return R.current?(m=R.current.textContent)==null?void 0:m.trim():c.current}})(),p=u.map(m=>m.trim());d.value(r,f,p),(b=o.current)==null||b.setAttribute(T,f),c.current=f}),c}var ke=()=>{let[r,o]=t.useState(),n=L(()=>new Map);return k(()=>{n.current.forEach(u=>u()),n.current=new Map},[r]),(u,c)=>{n.current.set(u,c),o({})}};function Me(r){let o=r.type;return typeof o==\"function\"?o(r.props):\"render\"in o?o.render(r.props):r}function B({asChild:r,children:o},n){return r&&t.isValidElement(o)?t.cloneElement(Me(o),{ref:o.ref},n(o.props.children)):n(o)}var Te={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};export{_e as Command,xe as CommandDialog,Ie as CommandEmpty,Ee as CommandGroup,Se as CommandInput,he as CommandItem,Ce as CommandList,Pe as CommandLoading,me as CommandRoot,ye as CommandSeparator,Re as defaultFilter,P as useCommandState};\n"],"names":["U","Y","H","J","p","u","$","k","m","B","K","X","G","_","C","h","P","A","f","O","T","L","c","S","E","N","R","M","D","W","be","le","ce","Z","Re","r","o","n","ae","ue","t","de","ee","fe","me","a","d","pe","x","ge","j","q","I","v","ke","ne","i","l","y","z","te","s","V","F","g","e","re","we","De","ie","se","he","b","ve","Ee","ye","Se","Ce","xe","w","Ie","Pe","_e","Me"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CJE9uQmb.js","sources":["../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a;\n const item = this.measurementsCache[index];\n if (!item) return;\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments)) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n this.scrollState.lastTargetOffset = targetOffset;\n this.scrollState.behavior = \"auto\";\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n ...options\n}) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["memo","getDeps","fn","opts","deps","result","isInitial","memoizedFunction","_a","_b","_c","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","notUndefined","value","msg","approxEqual","a","b","debounce","targetWindow","ms","timeoutId","args","getRect","element","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","start","end","arr","i","observeElementRect","instance","cb","handler","rect","width","height","observer","entries","run","entry","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","fallback","createHandler","isScrolling","horizontal","isRtl","endHandler","registerScrollendEvent","measureElement","elementScroll","adjustments","behavior","toOffset","Virtualizer","_ro","get","node","target","opts2","key","sync","d","scrollElement","cached","measurements","furthestMeasurementsFound","furthestMeasurements","m","measurement","previousFurthestMeasurement","count","paddingStart","scrollMargin","getItemKey","enabled","lanes","laneAssignmentMode","itemSizeCache","item","min","laneLastIndex","cachedLane","lane","shouldCacheLane","prevIndex","prevInLane","furthestMeasurement","measuredSize","size","outerSize","scrollOffset","calculateRange","startIndex","endIndex","rangeExtractor","overscan","attributeName","indexStr","scrollIndex","bufferSize","minIndex","maxIndex","key2","prevNode","itemSize","delta","indexes","virtualItems","k","len","findNearestBinarySearch","doc","align","maxOffset","now","initialAlign","offsetInfo","endByLane","val","targetOffset","STABLE_FRAMES","targetChanged","low","high","getCurrentValue","middle","currentValue","lastIndex","getOffset","endPerLane","pos","startPerLane","useIsomorphicLayoutEffect","React","useVirtualizerBase","useFlushSync","options","rerender","resolvedOptions","instance2","flushSync","useVirtualizer"],"mappings":";;AAAA,SAASA,EAAKC,GAASC,GAAIC,GAAM;AAC/B,MAAIC,IAAOD,EAAK,eAAe,CAAA,GAC3BE,GACAC,IAAY;AAChB,WAASC,IAAmB;AAC1B,QAAIC,GAAIC,GAAIC;AACZ,QAAIC;AACJ,IAAIR,EAAK,SAASK,IAAKL,EAAK,UAAU,QAAgBK,EAAG,KAAKL,CAAI,OAAIQ,IAAU,KAAK,IAAG;AACxF,UAAMC,IAAUX,EAAO;AAEvB,QAAI,EADgBW,EAAQ,WAAWR,EAAK,UAAUQ,EAAQ,KAAK,CAACC,GAAKC,MAAUV,EAAKU,CAAK,MAAMD,CAAG;AAEpG,aAAOR;AAET,IAAAD,IAAOQ;AACP,QAAIG;AAGJ,QAFIZ,EAAK,SAASM,IAAKN,EAAK,UAAU,QAAgBM,EAAG,KAAKN,CAAI,OAAIY,IAAa,KAAK,IAAG,IAC3FV,IAASH,EAAG,GAAGU,CAAO,GAClBT,EAAK,SAASO,IAAKP,EAAK,UAAU,QAAgBO,EAAG,KAAKP,CAAI,IAAI;AACpE,YAAMa,IAAa,KAAK,OAAO,KAAK,QAAQL,KAAW,GAAG,IAAI,KACxDM,IAAgB,KAAK,OAAO,KAAK,QAAQF,KAAc,GAAG,IAAI,KAC9DG,IAAsBD,IAAgB,IACtCE,IAAM,CAACC,GAAKC,MAAQ;AAExB,aADAD,IAAM,OAAOA,CAAG,GACTA,EAAI,SAASC;AAClB,UAAAD,IAAM,MAAMA;AAEd,eAAOA;AAAA,MACT;AACA,cAAQ;AAAA,QACN,OAAOD,EAAIF,GAAe,CAAC,CAAC,KAAKE,EAAIH,GAAY,CAAC,CAAC;AAAA,QACnD;AAAA;AAAA;AAAA,yBAGiB,KAAK;AAAA,UACpB;AAAA,UACA,KAAK,IAAI,MAAM,MAAME,GAAqB,GAAG;AAAA,QACvD,CAAS;AAAA,QACDf,KAAQ,OAAO,SAASA,EAAK;AAAA,MACrC;AAAA,IACI;AACA,WAAKA,KAAQ,QAAgBA,EAAK,YAAa,EAAEG,KAAaH,EAAK,wBACjEA,EAAK,SAASE,CAAM,GAEtBC,IAAY,IACLD;AAAA,EACT;AACA,SAAAE,EAAiB,aAAa,CAACK,MAAY;AACzC,IAAAR,IAAOQ;AAAA,EACT,GACOL;AACT;AACA,SAASe,EAAaC,GAAOC,GAAK;AAChC,MAAID,MAAU;AACZ,UAAM,IAAI,MAAM,sBAA8C;AAE9D,SAAOA;AAEX;AACA,MAAME,IAAc,CAACC,GAAGC,MAAM,KAAK,IAAID,IAAIC,CAAC,IAAI,MAC1CC,IAAW,CAACC,GAAc3B,GAAI4B,MAAO;AACzC,MAAIC;AACJ,SAAO,YAAYC,GAAM;AACvB,IAAAH,EAAa,aAAaE,CAAS,GACnCA,IAAYF,EAAa,WAAW,MAAM3B,EAAG,MAAM,MAAM8B,CAAI,GAAGF,CAAE;AAAA,EACpE;AACF,GChEMG,IAAU,CAACC,MAAY;AAC3B,QAAM,EAAE,aAAAC,GAAa,cAAAC,EAAY,IAAKF;AACtC,SAAO,EAAE,OAAOC,GAAa,QAAQC,EAAY;AACnD,GACMC,IAAsB,CAACvB,MAAUA,GACjCwB,IAAwB,CAACC,MAAU;AACvC,QAAMC,IAAQ,KAAK,IAAID,EAAM,aAAaA,EAAM,UAAU,CAAC,GACrDE,IAAM,KAAK,IAAIF,EAAM,WAAWA,EAAM,UAAUA,EAAM,QAAQ,CAAC,GAC/DG,IAAM,CAAA;AACZ,WAASC,IAAIH,GAAOG,KAAKF,GAAKE;AAC5B,IAAAD,EAAI,KAAKC,CAAC;AAEZ,SAAOD;AACT,GACME,IAAqB,CAACC,GAAUC,MAAO;AAC3C,QAAMZ,IAAUW,EAAS;AACzB,MAAI,CAACX;AACH;AAEF,QAAML,IAAegB,EAAS;AAC9B,MAAI,CAAChB;AACH;AAEF,QAAMkB,IAAU,CAACC,MAAS;AACxB,UAAM,EAAE,OAAAC,GAAO,QAAAC,EAAM,IAAKF;AAC1B,IAAAF,EAAG,EAAE,OAAO,KAAK,MAAMG,CAAK,GAAG,QAAQ,KAAK,MAAMC,CAAM,EAAC,CAAE;AAAA,EAC7D;AAEA,MADAH,EAAQd,EAAQC,CAAO,CAAC,GACpB,CAACL,EAAa;AAChB,WAAO,MAAM;AAAA,IACb;AAEF,QAAMsB,IAAW,IAAItB,EAAa,eAAe,CAACuB,MAAY;AAC5D,UAAMC,IAAM,MAAM;AAChB,YAAMC,IAAQF,EAAQ,CAAC;AACvB,UAAIE,KAAS,QAAgBA,EAAM,eAAe;AAChD,cAAMC,IAAMD,EAAM,cAAc,CAAC;AACjC,YAAIC,GAAK;AACP,UAAAR,EAAQ,EAAE,OAAOQ,EAAI,YAAY,QAAQA,EAAI,WAAW;AACxD;AAAA,QACF;AAAA,MACF;AACA,MAAAR,EAAQd,EAAQC,CAAO,CAAC;AAAA,IAC1B;AACA,IAAAW,EAAS,QAAQ,sCAAsC,sBAAsBQ,CAAG,IAAIA,EAAG;AAAA,EACzF,CAAC;AACD,SAAAF,EAAS,QAAQjB,GAAS,EAAE,KAAK,aAAY,CAAE,GACxC,MAAM;AACX,IAAAiB,EAAS,UAAUjB,CAAO;AAAA,EAC5B;AACF,GACMsB,IAA0B;AAAA,EAC9B,SAAS;AACX,GAeMC,IAAoB,OAAO,SAAU,MAAc,KAAO,iBAAiB,QAC3EC,IAAuB,CAACb,GAAUC,MAAO;AAC7C,QAAMZ,IAAUW,EAAS;AACzB,MAAI,CAACX;AACH;AAEF,QAAML,IAAegB,EAAS;AAC9B,MAAI,CAAChB;AACH;AAEF,MAAI8B,IAAS;AACb,QAAMC,IAAWf,EAAS,QAAQ,qBAAqBY,IAAoB,MAAA;AAAA,MAAe7B;AAAA,IACxFC;AAAA,IACA,MAAM;AACJ,MAAAiB,EAAGa,GAAQ,EAAK;AAAA,IAClB;AAAA,IACAd,EAAS,QAAQ;AAAA,EACrB,GACQgB,IAAgB,CAACC,MAAgB,MAAM;AAC3C,UAAM,EAAE,YAAAC,GAAY,OAAAC,EAAK,IAAKnB,EAAS;AACvC,IAAAc,IAASI,IAAa7B,EAAQ,cAAiB8B,KAAS,MAAM,KAAK9B,EAAQ,WAC3E0B,EAAQ,GACRd,EAAGa,GAAQG,CAAW;AAAA,EACxB,GACMf,IAAUc,EAAc,EAAI,GAC5BI,IAAaJ,EAAc,EAAK;AACtC,EAAA3B,EAAQ,iBAAiB,UAAUa,GAASS,CAAuB;AACnE,QAAMU,IAAyBrB,EAAS,QAAQ,qBAAqBY;AACrE,SAAIS,KACFhC,EAAQ,iBAAiB,aAAa+B,GAAYT,CAAuB,GAEpE,MAAM;AACX,IAAAtB,EAAQ,oBAAoB,UAAUa,CAAO,GACzCmB,KACFhC,EAAQ,oBAAoB,aAAa+B,CAAU;AAAA,EAEvD;AACF,GAqCME,IAAiB,CAACjC,GAASoB,GAAOT,MAAa;AACnD,MAAIS,KAAS,QAAgBA,EAAM,eAAe;AAChD,UAAMC,IAAMD,EAAM,cAAc,CAAC;AACjC,QAAIC;AAIF,aAHa,KAAK;AAAA,QAChBA,EAAIV,EAAS,QAAQ,aAAa,eAAe,WAAW;AAAA,MACpE;AAAA,EAGE;AACA,SAAOX,EAAQW,EAAS,QAAQ,aAAa,gBAAgB,cAAc;AAC7E,GAYMuB,IAAgB,CAACT,GAAQ;AAAA,EAC7B,aAAAU,IAAc;AAAA,EACd,UAAAC;AACF,GAAGzB,MAAa;AACd,MAAIrC,GAAIC;AACR,QAAM8D,IAAWZ,IAASU;AAC1B,GAAC5D,KAAMD,IAAKqC,EAAS,kBAAkB,OAAO,SAASrC,EAAG,aAAa,QAAgBC,EAAG,KAAKD,GAAI;AAAA,IACjG,CAACqC,EAAS,QAAQ,aAAa,SAAS,KAAK,GAAG0B;AAAA,IAChD,UAAAD;AAAA,EACJ,CAAG;AACH;AACA,MAAME,EAAY;AAAA,EAChB,YAAYrE,GAAM;AAChB,SAAK,SAAS,CAAA,GACd,KAAK,gBAAgB,MACrB,KAAK,eAAe,MACpB,KAAK,cAAc,IACnB,KAAK,cAAc,MACnB,KAAK,oBAAoB,CAAA,GACzB,KAAK,gBAAgC,oBAAI,IAAG,GAC5C,KAAK,kBAAkC,oBAAI,IAAG,GAC9C,KAAK,8BAA8B,CAAA,GACnC,KAAK,YAAY,QACjB,KAAK,mBAAmB,IACxB,KAAK,gBAAgB,IACrB,KAAK,aAAa,MAClB,KAAK,eAAe,MACpB,KAAK,kBAAkB,MACvB,KAAK,oBAAoB,GACzB,KAAK,gBAAgC,oBAAI,IAAG,GAC5C,KAAK,MAAM,MAAM;AACf,UAAIK,GAAIC,GAAIC;AACZ,eAASA,KAAMD,KAAMD,IAAK,KAAK,iBAAiB,OAAO,SAASA,EAAG,gBAAgB,OAAO,SAASC,EAAG,QAAQ,OAAO,SAASC,EAAG,KAAKD,CAAE,MAAM,KAAK,IAAG;AAAA,IACxJ,GACA,KAAK,WAA4B,uBAAM;AACrC,UAAIgE,IAAM;AACV,YAAMC,IAAM,MACND,MAGA,CAAC,KAAK,gBAAgB,CAAC,KAAK,aAAa,iBACpC,OAEFA,IAAM,IAAI,KAAK,aAAa,eAAe,CAACrB,MAAY;AAC7D,QAAAA,EAAQ,QAAQ,CAACE,MAAU;AACzB,gBAAMD,IAAM,MAAM;AAChB,kBAAMsB,IAAOrB,EAAM,QACbxC,IAAQ,KAAK,iBAAiB6D,CAAI;AACxC,gBAAI,CAACA,EAAK,aAAa;AACrB,mBAAK,SAAS,UAAUA,CAAI;AAC5B;AAAA,YACF;AACA,YAAI,KAAK,0BAA0B7D,CAAK,KACtC,KAAK;AAAA,cACHA;AAAA,cACA,KAAK,QAAQ,eAAe6D,GAAMrB,GAAO,IAAI;AAAA,YAC/D;AAAA,UAEY;AACA,eAAK,QAAQ,sCAAsC,sBAAsBD,CAAG,IAAIA,EAAG;AAAA,QACrF,CAAC;AAAA,MACH,CAAC;AAEH,aAAO;AAAA,QACL,YAAY,MAAM;AAChB,cAAI7C;AACJ,WAACA,IAAKkE,EAAG,MAAO,QAAgBlE,EAAG,WAAU,GAC7CiE,IAAM;AAAA,QACR;AAAA,QACA,SAAS,CAACG,MAAW;AACnB,cAAIpE;AACJ,kBAAQA,IAAKkE,EAAG,MAAO,OAAO,SAASlE,EAAG,QAAQoE,GAAQ,EAAE,KAAK,aAAY,CAAE;AAAA,QACjF;AAAA,QACA,WAAW,CAACA,MAAW;AACrB,cAAIpE;AACJ,kBAAQA,IAAKkE,QAAU,OAAO,SAASlE,EAAG,UAAUoE,CAAM;AAAA,QAC5D;AAAA,MACR;AAAA,IACI,GAAC,GACD,KAAK,QAAQ,MACb,KAAK,aAAa,CAACC,MAAU;AAC3B,aAAO,QAAQA,CAAK,EAAE,QAAQ,CAAC,CAACC,GAAKvD,CAAK,MAAM;AAC9C,QAAI,OAAOA,IAAU,OAAa,OAAOsD,EAAMC,CAAG;AAAA,MACpD,CAAC,GACD,KAAK,UAAU;AAAA,QACb,OAAO;AAAA,QACP,eAAe;AAAA,QACf,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,YAAY;AAAA,QACZ,YAAYzC;AAAA,QACZ,gBAAgBC;AAAA,QAChB,UAAU,MAAM;AAAA,QAChB;AAAA,QACA,gBAAA6B;AAAA,QACA,aAAa,EAAE,OAAO,GAAG,QAAQ,EAAC;AAAA,QAClC,cAAc;AAAA,QACd,KAAK;AAAA,QACL,gBAAgB;AAAA,QAChB,0BAA0B,CAAA;AAAA,QAC1B,OAAO;AAAA,QACP,uBAAuB;AAAA,QACvB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,qCAAqC;AAAA,QACrC,oBAAoB;AAAA,QACpB,GAAGU;AAAA,MACX;AAAA,IACI,GACA,KAAK,SAAS,CAACE,MAAS;AACtB,UAAIvE,GAAIC;AACR,OAACA,KAAMD,IAAK,KAAK,SAAS,aAAa,QAAgBC,EAAG,KAAKD,GAAI,MAAMuE,CAAI;AAAA,IAC/E,GACA,KAAK,cAAc/E;AAAA,MACjB,OACE,KAAK,eAAc,GACZ;AAAA,QACL,KAAK;AAAA,QACL,KAAK,QAAQ,KAAK,MAAM,aAAa;AAAA,QACrC,KAAK,QAAQ,KAAK,MAAM,WAAW;AAAA,MAC7C;AAAA,MAEM,CAAC8D,MAAgB;AACf,aAAK,OAAOA,CAAW;AAAA,MACzB;AAAA,MACA;AAAA,QACE,KAAK,QAAQ,IAAI,aAAa,gBAAgB;AAAA,QAC9C,OAAO,MAAM,KAAK,QAAQ;AAAA,QAC1B,aAAa;AAAA,UACX,KAAK;AAAA,UACL,KAAK,QAAQ,KAAK,MAAM,aAAa;AAAA,UACrC,KAAK,QAAQ,KAAK,MAAM,WAAW;AAAA,QAC7C;AAAA,MACA;AAAA,IACA,GACI,KAAK,UAAU,MAAM;AACnB,WAAK,OAAO,OAAO,OAAO,EAAE,QAAQ,CAACkB,MAAMA,GAAG,GAC9C,KAAK,SAAS,CAAA,GACd,KAAK,SAAS,WAAU,GACpB,KAAK,SAAS,QAAQ,KAAK,iBAC7B,KAAK,aAAa,qBAAqB,KAAK,KAAK,GACjD,KAAK,QAAQ,OAEf,KAAK,cAAc,MACnB,KAAK,gBAAgB,MACrB,KAAK,eAAe;AAAA,IACtB,GACA,KAAK,YAAY,MACR,MAAM;AACX,WAAK,QAAO;AAAA,IACd,GAEF,KAAK,cAAc,MAAM;AACvB,UAAIxE;AACJ,YAAMyE,IAAgB,KAAK,QAAQ,UAAU,KAAK,QAAQ,iBAAgB,IAAK;AAC/E,UAAI,KAAK,kBAAkBA,GAAe;AAExC,YADA,KAAK,QAAO,GACR,CAACA,GAAe;AAClB,eAAK,YAAW;AAChB;AAAA,QACF;AACA,aAAK,gBAAgBA,GACjB,KAAK,iBAAiB,mBAAmB,KAAK,gBAChD,KAAK,eAAe,KAAK,cAAc,cAAc,cAErD,KAAK,iBAAiBzE,IAAK,KAAK,kBAAkB,OAAO,SAASA,EAAG,WAAW,MAElF,KAAK,cAAc,QAAQ,CAAC0E,MAAW;AACrC,eAAK,SAAS,QAAQA,CAAM;AAAA,QAC9B,CAAC,GACD,KAAK,OAAO;AAAA,UACV,KAAK,QAAQ,mBAAmB,MAAM,CAAClC,MAAS;AAC9C,iBAAK,aAAaA,GAClB,KAAK,YAAW;AAAA,UAClB,CAAC;AAAA,QACX,GACQ,KAAK,OAAO;AAAA,UACV,KAAK,QAAQ,qBAAqB,MAAM,CAACW,GAAQG,MAAgB;AAC/D,iBAAK,oBAAoB,GACzB,KAAK,kBAAkBA,IAAc,KAAK,gBAAe,IAAKH,IAAS,YAAY,aAAa,MAChG,KAAK,eAAeA,GACpB,KAAK,cAAcG,GACf,KAAK,eACP,KAAK,wBAAuB,GAE9B,KAAK,YAAW;AAAA,UAClB,CAAC;AAAA,QACX,GACQ,KAAK,gBAAgB,KAAK,mBAAmB;AAAA,UAC3C,aAAa;AAAA,UACb,UAAU;AAAA,QACpB,CAAS;AAAA,MACH;AAAA,IACF,GACA,KAAK,QAAQ,MACb,KAAK,UAAU,MACR,KAAK,QAAQ,WAIlB,KAAK,aAAa,KAAK,cAAc,KAAK,QAAQ,aAC3C,KAAK,WAAW,KAAK,QAAQ,aAAa,UAAU,QAAQ,MAJjE,KAAK,aAAa,MACX,IAKX,KAAK,kBAAkB,MAChB,KAAK,QAAQ,WAIlB,KAAK,eAAe,KAAK,iBAAiB,OAAO,KAAK,QAAQ,iBAAkB,aAAa,KAAK,QAAQ,cAAa,IAAK,KAAK,QAAQ,gBAClI,KAAK,iBAJV,KAAK,eAAe,MACb,IAKX,KAAK,yBAAyB,CAACqB,GAAcrE,MAAU;AACrD,YAAMsE,IAA4C,oBAAI,IAAG,GACnDC,IAAuC,oBAAI,IAAG;AACpD,eAASC,IAAIxE,IAAQ,GAAGwE,KAAK,GAAGA,KAAK;AACnC,cAAMC,IAAcJ,EAAaG,CAAC;AAClC,YAAIF,EAA0B,IAAIG,EAAY,IAAI;AAChD;AAEF,cAAMC,IAA8BH,EAAqB;AAAA,UACvDE,EAAY;AAAA,QACtB;AAMQ,YALIC,KAA+B,QAAQD,EAAY,MAAMC,EAA4B,MACvFH,EAAqB,IAAIE,EAAY,MAAMA,CAAW,IAC7CA,EAAY,MAAMC,EAA4B,OACvDJ,EAA0B,IAAIG,EAAY,MAAM,EAAI,GAElDH,EAA0B,SAAS,KAAK,QAAQ;AAClD;AAAA,MAEJ;AACA,aAAOC,EAAqB,SAAS,KAAK,QAAQ,QAAQ,MAAM,KAAKA,EAAqB,OAAM,CAAE,EAAE,KAAK,CAAC3D,GAAGC,MACvGD,EAAE,QAAQC,EAAE,MACPD,EAAE,QAAQC,EAAE,QAEdD,EAAE,MAAMC,EAAE,GAClB,EAAE,CAAC,IAAI;AAAA,IACV,GACA,KAAK,wBAAwB3B;AAAA,MAC3B,MAAM;AAAA,QACJ,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,MACrB;AAAA,MACM,CAACyF,GAAOC,GAAcC,GAAcC,GAAYC,GAASC,GAAOC,OACzC,KAAK,cAAc,UAAU,KAAK,cAAcD,MAEnE,KAAK,mBAAmB,KAE1B,KAAK,YAAYA,GACjB,KAAK,8BAA8B,CAAA,GAC5B;AAAA,QACL,OAAAL;AAAA,QACA,cAAAC;AAAA,QACA,cAAAC;AAAA,QACA,YAAAC;AAAA,QACA,SAAAC;AAAA,QACA,OAAAC;AAAA,QACA,oBAAAC;AAAA,MACV;AAAA,MAEM;AAAA,QACE,KAAK;AAAA,MACb;AAAA,IACA,GACI,KAAK,kBAAkB/F;AAAA,MACrB,MAAM,CAAC,KAAK,yBAAyB,KAAK,aAAa;AAAA,MACvD,CAAC;AAAA,QACC,OAAAyF;AAAA,QACA,cAAAC;AAAA,QACA,cAAAC;AAAA,QACA,YAAAC;AAAA,QACA,SAAAC;AAAA,QACA,OAAAC;AAAA,QACA,oBAAAC;AAAA,MACR,GAASC,MAAkB;AACnB,YAAI,CAACH;AACH,sBAAK,oBAAoB,CAAA,GACzB,KAAK,cAAc,MAAK,GACxB,KAAK,gBAAgB,MAAK,GACnB,CAAA;AAET,YAAI,KAAK,gBAAgB,OAAOJ;AAC9B,qBAAW3E,KAAS,KAAK,gBAAgB,KAAI;AAC3C,YAAIA,KAAS2E,KACX,KAAK,gBAAgB,OAAO3E,CAAK;AAIvC,QAAI,KAAK,qBACP,KAAK,mBAAmB,IACxB,KAAK,gBAAgB,IACrB,KAAK,oBAAoB,CAAA,GACzB,KAAK,cAAc,MAAK,GACxB,KAAK,gBAAgB,MAAK,GAC1B,KAAK,8BAA8B,CAAA,IAEjC,KAAK,kBAAkB,WAAW,KAAK,CAAC,KAAK,kBAC/C,KAAK,oBAAoB,KAAK,QAAQ,0BACtC,KAAK,kBAAkB,QAAQ,CAACmF,MAAS;AACvC,eAAK,cAAc,IAAIA,EAAK,KAAKA,EAAK,IAAI;AAAA,QAC5C,CAAC;AAEH,cAAMC,IAAM,KAAK,gBAAgB,IAAI,KAAK,4BAA4B,SAAS,IAAI,KAAK,IAAI,GAAG,KAAK,2BAA2B,IAAI;AACnI,aAAK,8BAA8B,CAAA,GAC/B,KAAK,iBAAiB,KAAK,kBAAkB,WAAWT,MAC1D,KAAK,gBAAgB;AAEvB,cAAMN,IAAe,KAAK,kBAAkB,MAAM,GAAGe,CAAG,GAClDC,IAAgB,IAAI,MAAML,CAAK,EAAE;AAAA,UACrC;AAAA,QACV;AACQ,iBAASR,IAAI,GAAGA,IAAIY,GAAKZ,KAAK;AAC5B,gBAAMW,IAAOd,EAAaG,CAAC;AAC3B,UAAIW,MACFE,EAAcF,EAAK,IAAI,IAAIX;AAAA,QAE/B;AACA,iBAAS3C,IAAIuD,GAAKvD,IAAI8C,GAAO9C,KAAK;AAChC,gBAAMmC,IAAMc,EAAWjD,CAAC,GAClByD,IAAa,KAAK,gBAAgB,IAAIzD,CAAC;AAC7C,cAAI0D,GACA7D;AACJ,gBAAM8D,IAAkBP,MAAuB,cAAcC,EAAc,IAAIlB,CAAG;AAClF,cAAIsB,MAAe,UAAU,KAAK,QAAQ,QAAQ,GAAG;AACnD,YAAAC,IAAOD;AACP,kBAAMG,IAAYJ,EAAcE,CAAI,GAC9BG,IAAaD,MAAc,SAASpB,EAAaoB,CAAS,IAAI;AACpE,YAAA/D,IAAQgE,IAAaA,EAAW,MAAM,KAAK,QAAQ,MAAMd,IAAeC;AAAA,UAC1E,OAAO;AACL,kBAAMc,IAAsB,KAAK,QAAQ,UAAU,IAAItB,EAAaxC,IAAI,CAAC,IAAI,KAAK,uBAAuBwC,GAAcxC,CAAC;AACxH,YAAAH,IAAQiE,IAAsBA,EAAoB,MAAM,KAAK,QAAQ,MAAMf,IAAeC,GAC1FU,IAAOI,IAAsBA,EAAoB,OAAO9D,IAAI,KAAK,QAAQ,OACrE,KAAK,QAAQ,QAAQ,KAAK2D,KAC5B,KAAK,gBAAgB,IAAI3D,GAAG0D,CAAI;AAAA,UAEpC;AACA,gBAAMK,IAAeV,EAAc,IAAIlB,CAAG,GACpC6B,IAAO,OAAOD,KAAiB,WAAWA,IAAe,KAAK,QAAQ,aAAa/D,CAAC,GACpFF,IAAMD,IAAQmE;AACpB,UAAAxB,EAAaxC,CAAC,IAAI;AAAA,YAChB,OAAOA;AAAA,YACP,OAAAH;AAAA,YACA,MAAAmE;AAAA,YACA,KAAAlE;AAAA,YACA,KAAAqC;AAAA,YACA,MAAAuB;AAAA,UACZ,GACUF,EAAcE,CAAI,IAAI1D;AAAA,QACxB;AACA,oBAAK,oBAAoBwC,GAClBA;AAAA,MACT;AAAA,MACA;AAAA,QACE,KAAK,QAAQ,IAAI,aAAa,gBAAgB;AAAA,QAC9C,OAAO,MAAM,KAAK,QAAQ;AAAA,MAClC;AAAA,IACA,GACI,KAAK,iBAAiBnF;AAAA,MACpB,MAAM;AAAA,QACJ,KAAK,gBAAe;AAAA,QACpB,KAAK,QAAO;AAAA,QACZ,KAAK,gBAAe;AAAA,QACpB,KAAK,QAAQ;AAAA,MACrB;AAAA,MACM,CAACmF,GAAcyB,GAAWC,GAAcf,MAC/B,KAAK,QAAQX,EAAa,SAAS,KAAKyB,IAAY,IAAIE,EAAe;AAAA,QAC5E,cAAA3B;AAAA,QACA,WAAAyB;AAAA,QACA,cAAAC;AAAA,QACA,OAAAf;AAAA,MACV,CAAS,IAAI;AAAA,MAEP;AAAA,QACE,KAAK,QAAQ,IAAI,aAAa,gBAAgB;AAAA,QAC9C,OAAO,MAAM,KAAK,QAAQ;AAAA,MAClC;AAAA,IACA,GACI,KAAK,oBAAoB9F;AAAA,MACvB,MAAM;AACJ,YAAI+G,IAAa,MACbC,IAAW;AACf,cAAMzE,IAAQ,KAAK,eAAc;AACjC,eAAIA,MACFwE,IAAaxE,EAAM,YACnByE,IAAWzE,EAAM,WAEnB,KAAK,YAAY,WAAW,CAAC,KAAK,aAAawE,GAAYC,CAAQ,CAAC,GAC7D;AAAA,UACL,KAAK,QAAQ;AAAA,UACb,KAAK,QAAQ;AAAA,UACb,KAAK,QAAQ;AAAA,UACbD;AAAA,UACAC;AAAA,QACV;AAAA,MACM;AAAA,MACA,CAACC,GAAgBC,GAAUzB,GAAOsB,GAAYC,MACrCD,MAAe,QAAQC,MAAa,OAAO,CAAA,IAAKC,EAAe;AAAA,QACpE,YAAAF;AAAA,QACA,UAAAC;AAAA,QACA,UAAAE;AAAA,QACA,OAAAzB;AAAA,MACV,CAAS;AAAA,MAEH;AAAA,QACE,KAAK,QAAQ,IAAI,aAAa,gBAAgB;AAAA,QAC9C,OAAO,MAAM,KAAK,QAAQ;AAAA,MAClC;AAAA,IACA,GACI,KAAK,mBAAmB,CAACd,MAAS;AAChC,YAAMwC,IAAgB,KAAK,QAAQ,gBAC7BC,IAAWzC,EAAK,aAAawC,CAAa;AAChD,aAAKC,IAME,SAASA,GAAU,EAAE,KAL1B,QAAQ;AAAA,QACN,2BAA2BD,CAAa;AAAA,MAClD,GACe;AAAA,IAGX,GACA,KAAK,4BAA4B,CAACrG,MAAU;AAC1C,UAAIN;AACJ,UAAI,CAAC,KAAK,eAAe,KAAK,YAAY,aAAa;AACrD,eAAO;AAET,YAAM6G,IAAc,KAAK,YAAY,WAAW7G,IAAK,KAAK,wBAAwB,KAAK,YAAY,gBAAgB,MAAM,OAAO,SAASA,EAAG;AAC5I,UAAI6G,MAAgB,UAAU,KAAK,OAAO;AACxC,cAAMC,IAAa,KAAK;AAAA,UACtB,KAAK,QAAQ;AAAA,UACb,KAAK,MAAM,KAAK,MAAM,WAAW,KAAK,MAAM,cAAc,CAAC;AAAA,QACrE,GACcC,IAAW,KAAK,IAAI,GAAGF,IAAcC,CAAU,GAC/CE,IAAW,KAAK;AAAA,UACpB,KAAK,QAAQ,QAAQ;AAAA,UACrBH,IAAcC;AAAA,QACxB;AACQ,eAAOxG,KAASyG,KAAYzG,KAAS0G;AAAA,MACvC;AACA,aAAO;AAAA,IACT,GACA,KAAK,iBAAiB,CAAC7C,MAAS;AAC9B,UAAI,CAACA,GAAM;AACT,aAAK,cAAc,QAAQ,CAACO,GAAQuC,MAAS;AAC3C,UAAKvC,EAAO,gBACV,KAAK,SAAS,UAAUA,CAAM,GAC9B,KAAK,cAAc,OAAOuC,CAAI;AAAA,QAElC,CAAC;AACD;AAAA,MACF;AACA,YAAM3G,IAAQ,KAAK,iBAAiB6D,CAAI,GAClCG,IAAM,KAAK,QAAQ,WAAWhE,CAAK,GACnC4G,IAAW,KAAK,cAAc,IAAI5C,CAAG;AAC3C,MAAI4C,MAAa/C,MACX+C,KACF,KAAK,SAAS,UAAUA,CAAQ,GAElC,KAAK,SAAS,QAAQ/C,CAAI,GAC1B,KAAK,cAAc,IAAIG,GAAKH,CAAI,KAE7B,CAAC,KAAK,eAAe,KAAK,gBAAgB,KAAK,0BAA0B7D,CAAK,KACjF,KAAK,WAAWA,GAAO,KAAK,QAAQ,eAAe6D,GAAM,QAAQ,IAAI,CAAC;AAAA,IAE1E,GACA,KAAK,aAAa,CAAC7D,GAAO6F,MAAS;AACjC,UAAInG;AACJ,YAAMyF,IAAO,KAAK,kBAAkBnF,CAAK;AACzC,UAAI,CAACmF,EAAM;AACX,YAAM0B,IAAW,KAAK,cAAc,IAAI1B,EAAK,GAAG,KAAKA,EAAK,MACpD2B,IAAQjB,IAAOgB;AACrB,MAAIC,MAAU,QACNpH,IAAK,KAAK,gBAAgB,OAAO,SAASA,EAAG,cAAc,aAAa,KAAK,+CAA+C,SAAS,KAAK,2CAA2CyF,GAAM2B,GAAO,IAAI,IAAI3B,EAAK,QAAQ,KAAK,gBAAe,IAAK,KAAK,uBACrP,QAAQ,IAAI,aAAa,gBAAgB,KAAK,QAAQ,SACxD,QAAQ,KAAK,cAAc2B,CAAK,GAElC,KAAK,gBAAgB,KAAK,mBAAmB;AAAA,QAC3C,aAAa,KAAK,qBAAqBA;AAAA,QACvC,UAAU;AAAA,MACtB,CAAW,IAEH,KAAK,4BAA4B,KAAK3B,EAAK,KAAK,GAChD,KAAK,gBAAgB,IAAI,IAAI,KAAK,cAAc,IAAIA,EAAK,KAAKU,CAAI,CAAC,GACnE,KAAK,OAAO,EAAK;AAAA,IAErB,GACA,KAAK,kBAAkB3G;AAAA,MACrB,MAAM,CAAC,KAAK,kBAAiB,GAAI,KAAK,gBAAe,CAAE;AAAA,MACvD,CAAC6H,GAAS1C,MAAiB;AACzB,cAAM2C,IAAe,CAAA;AACrB,iBAASC,IAAI,GAAGC,IAAMH,EAAQ,QAAQE,IAAIC,GAAKD,KAAK;AAClD,gBAAM,IAAIF,EAAQE,CAAC,GACbxC,IAAcJ,EAAa,CAAC;AAClC,UAAA2C,EAAa,KAAKvC,CAAW;AAAA,QAC/B;AACA,eAAOuC;AAAA,MACT;AAAA,MACA;AAAA,QACE,KAAK,QAAQ,IAAI,aAAa,gBAAgB;AAAA,QAC9C,OAAO,MAAM,KAAK,QAAQ;AAAA,MAClC;AAAA,IACA,GACI,KAAK,0BAA0B,CAACnE,MAAW;AACzC,YAAMwB,IAAe,KAAK,gBAAe;AACzC,UAAIA,EAAa,WAAW;AAG5B,eAAO7D;AAAA,UACL6D,EAAa8C;AAAA,YACX;AAAA,YACA9C,EAAa,SAAS;AAAA,YACtB,CAACrE,MAAUQ,EAAa6D,EAAarE,CAAK,CAAC,EAAE;AAAA,YAC7C6C;AAAA,UACV,CAAS;AAAA,QACT;AAAA,IACI,GACA,KAAK,qBAAqB,MAAM;AAC9B,UAAI,CAAC,KAAK,cAAe,QAAO;AAChC,UAAI,kBAAkB,KAAK;AACzB,eAAO,KAAK,QAAQ,aAAa,KAAK,cAAc,cAAc,KAAK,cAAc,cAAc,KAAK,cAAc,eAAe,KAAK,cAAc;AACnJ;AACL,cAAMuE,IAAM,KAAK,cAAc,SAAS;AACxC,eAAO,KAAK,QAAQ,aAAaA,EAAI,cAAc,KAAK,cAAc,aAAaA,EAAI,eAAe,KAAK,cAAc;AAAA,MAC3H;AAAA,IACF,GACA,KAAK,wBAAwB,CAAC3D,GAAU4D,GAAOR,IAAW,MAAM;AAC9D,UAAI,CAAC,KAAK,cAAe,QAAO;AAChC,YAAMhB,IAAO,KAAK,QAAO,GACnBE,IAAe,KAAK,gBAAe;AACzC,MAAIsB,MAAU,WACZA,IAAQ5D,KAAYsC,IAAeF,IAAO,QAAQ,UAEhDwB,MAAU,WACZ5D,MAAaoD,IAAWhB,KAAQ,IACvBwB,MAAU,UACnB5D,KAAYoC;AAEd,YAAMyB,IAAY,KAAK,mBAAkB;AACzC,aAAO,KAAK,IAAI,KAAK,IAAIA,GAAW7D,CAAQ,GAAG,CAAC;AAAA,IAClD,GACA,KAAK,oBAAoB,CAACzD,GAAOqH,IAAQ,WAAW;AAClD,MAAArH,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAIA,GAAO,KAAK,QAAQ,QAAQ,CAAC,CAAC;AAC3D,YAAM6F,IAAO,KAAK,QAAO,GACnBE,IAAe,KAAK,gBAAe,GACnCZ,IAAO,KAAK,kBAAkBnF,CAAK;AACzC,UAAI,CAACmF,EAAM;AACX,UAAIkC,MAAU;AACZ,YAAIlC,EAAK,OAAOY,IAAeF,IAAO,KAAK,QAAQ;AACjD,UAAAwB,IAAQ;AAAA,iBACClC,EAAK,SAASY,IAAe,KAAK,QAAQ;AACnD,UAAAsB,IAAQ;AAAA;AAER,iBAAO,CAACtB,GAAcsB,CAAK;AAG/B,UAAIA,MAAU,SAASrH,MAAU,KAAK,QAAQ,QAAQ;AACpD,eAAO,CAAC,KAAK,mBAAkB,GAAIqH,CAAK;AAE1C,YAAM5D,IAAW4D,MAAU,QAAQlC,EAAK,MAAM,KAAK,QAAQ,mBAAmBA,EAAK,QAAQ,KAAK,QAAQ;AACxG,aAAO;AAAA,QACL,KAAK,sBAAsB1B,GAAU4D,GAAOlC,EAAK,IAAI;AAAA,QACrDkC;AAAA,MACR;AAAA,IACI,GACA,KAAK,iBAAiB,CAAC5D,GAAU,EAAE,OAAA4D,IAAQ,SAAS,UAAA7D,IAAW,OAAM,IAAK,OAAO;AAC/E,YAAMX,IAAS,KAAK,sBAAsBY,GAAU4D,CAAK,GACnDE,IAAM,KAAK,IAAG;AACpB,WAAK,cAAc;AAAA,QACjB,OAAO;AAAA,QACP,OAAAF;AAAA,QACA,UAAA7D;AAAA,QACA,WAAW+D;AAAA,QACX,kBAAkB1E;AAAA,QAClB,cAAc;AAAA,MACtB,GACM,KAAK,gBAAgBA,GAAQ,EAAE,aAAa,QAAQ,UAAAW,GAAU,GAC9D,KAAK,wBAAuB;AAAA,IAC9B,GACA,KAAK,gBAAgB,CAACxD,GAAO;AAAA,MAC3B,OAAOwH,IAAe;AAAA,MACtB,UAAAhE,IAAW;AAAA,IACjB,IAAQ,OAAO;AACT,MAAAxD,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAIA,GAAO,KAAK,QAAQ,QAAQ,CAAC,CAAC;AAC3D,YAAMyH,IAAa,KAAK,kBAAkBzH,GAAOwH,CAAY;AAC7D,UAAI,CAACC;AACH;AAEF,YAAM,CAAC5E,GAAQwE,CAAK,IAAII,GAClBF,IAAM,KAAK,IAAG;AACpB,WAAK,cAAc;AAAA,QACjB,OAAAvH;AAAA,QACA,OAAAqH;AAAA,QACA,UAAA7D;AAAA,QACA,WAAW+D;AAAA,QACX,kBAAkB1E;AAAA,QAClB,cAAc;AAAA,MACtB,GACM,KAAK,gBAAgBA,GAAQ,EAAE,aAAa,QAAQ,UAAAW,GAAU,GAC9D,KAAK,wBAAuB;AAAA,IAC9B,GACA,KAAK,WAAW,CAACsD,GAAO,EAAE,UAAAtD,IAAW,OAAM,IAAK,OAAO;AACrD,YAAMX,IAAS,KAAK,gBAAe,IAAKiE,GAClCS,IAAM,KAAK,IAAG;AACpB,WAAK,cAAc;AAAA,QACjB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAA/D;AAAA,QACA,WAAW+D;AAAA,QACX,kBAAkB1E;AAAA,QAClB,cAAc;AAAA,MACtB,GACM,KAAK,gBAAgBA,GAAQ,EAAE,aAAa,QAAQ,UAAAW,GAAU,GAC9D,KAAK,wBAAuB;AAAA,IAC9B,GACA,KAAK,eAAe,MAAM;AACxB,UAAI9D;AACJ,YAAM2E,IAAe,KAAK,gBAAe;AACzC,UAAI1C;AACJ,UAAI0C,EAAa,WAAW;AAC1B,QAAA1C,IAAM,KAAK,QAAQ;AAAA,eACV,KAAK,QAAQ,UAAU;AAChC,QAAAA,MAAQjC,IAAK2E,EAAaA,EAAa,SAAS,CAAC,MAAM,OAAO,SAAS3E,EAAG,QAAQ;AAAA,WAC7E;AACL,cAAMgI,IAAY,MAAM,KAAK,QAAQ,KAAK,EAAE,KAAK,IAAI;AACrD,YAAIxB,IAAW7B,EAAa,SAAS;AACrC,eAAO6B,KAAY,KAAKwB,EAAU,KAAK,CAACC,MAAQA,MAAQ,IAAI,KAAG;AAC7D,gBAAMxC,IAAOd,EAAa6B,CAAQ;AAClC,UAAIwB,EAAUvC,EAAK,IAAI,MAAM,SAC3BuC,EAAUvC,EAAK,IAAI,IAAIA,EAAK,MAE9Be;AAAA,QACF;AACA,QAAAvE,IAAM,KAAK,IAAI,GAAG+F,EAAU,OAAO,CAACC,MAAQA,MAAQ,IAAI,CAAC;AAAA,MAC3D;AACA,aAAO,KAAK;AAAA,QACVhG,IAAM,KAAK,QAAQ,eAAe,KAAK,QAAQ;AAAA,QAC/C;AAAA,MACR;AAAA,IACI,GACA,KAAK,kBAAkB,CAACkB,GAAQ;AAAA,MAC9B,aAAAU;AAAA,MACA,UAAAC;AAAA,IACN,MAAU;AACJ,WAAK,QAAQ,WAAWX,GAAQ,EAAE,UAAAW,GAAU,aAAAD,EAAW,GAAI,IAAI;AAAA,IACjE,GACA,KAAK,UAAU,MAAM;AACnB,WAAK,gBAAgC,oBAAI,IAAG,GAC5C,KAAK,kBAAkC,oBAAI,IAAG,GAC9C,KAAK,OAAO,EAAK;AAAA,IACnB,GACA,KAAK,WAAWlE,CAAI;AAAA,EACtB;AAAA,EACA,0BAA0B;AACxB,QAAI,CAAC,KAAK,cAAc;AACtB,WAAK,cAAc;AACnB;AAAA,IACF;AACA,IAAI,KAAK,SAAS,SAClB,KAAK,QAAQ,KAAK,aAAa,sBAAsB,MAAM;AACzD,WAAK,QAAQ,MACb,KAAK,gBAAe;AAAA,IACtB,CAAC;AAAA,EACH;AAAA,EACA,kBAAkB;AAGhB,QAFI,CAAC,KAAK,eAEN,CADO,KAAK,cACP;AAET,QAAI,KAAK,IAAG,IAAK,KAAK,YAAY,YADT,KACuC;AAC9D,WAAK,cAAc;AACnB;AAAA,IACF;AACA,UAAMoI,IAAa,KAAK,YAAY,SAAS,OAAO,KAAK,kBAAkB,KAAK,YAAY,OAAO,KAAK,YAAY,KAAK,IAAI,QACvHG,IAAeH,IAAaA,EAAW,CAAC,IAAI,KAAK,YAAY,kBAC7DI,IAAgB,GAChBC,IAAgBF,MAAiB,KAAK,YAAY;AACxD,QAAI,CAACE,KAAiBnH,EAAYiH,GAAc,KAAK,gBAAe,CAAE;AAEpE,UADA,KAAK,YAAY,gBACb,KAAK,YAAY,gBAAgBC,GAAe;AAClD,aAAK,cAAc;AACnB;AAAA,MACF;AAAA;AAEA,WAAK,YAAY,eAAe,GAC5BC,MACF,KAAK,YAAY,mBAAmBF,GACpC,KAAK,YAAY,WAAW,QAC5B,KAAK,gBAAgBA,GAAc;AAAA,QACjC,aAAa;AAAA,QACb,UAAU;AAAA,MACpB,CAAS;AAGL,SAAK,wBAAuB;AAAA,EAC9B;AACF;AACA,MAAMT,IAA0B,CAACY,GAAKC,GAAMC,GAAiBxH,MAAU;AACrE,SAAOsH,KAAOC,KAAM;AAClB,UAAME,KAAUH,IAAMC,KAAQ,IAAI,GAC5BG,IAAeF,EAAgBC,CAAM;AAC3C,QAAIC,IAAe1H;AACjB,MAAAsH,IAAMG,IAAS;AAAA,aACNC,IAAe1H;AACxB,MAAAuH,IAAOE,IAAS;AAAA;AAEhB,aAAOA;AAAA,EAEX;AACA,SAAIH,IAAM,IACDA,IAAM,IAEN;AAEX;AACA,SAAS/B,EAAe;AAAA,EACtB,cAAA3B;AAAA,EACA,WAAAyB;AAAA,EACA,cAAAC;AAAA,EACA,OAAAf;AACF,GAAG;AACD,QAAMoD,IAAY/D,EAAa,SAAS,GAClCgE,IAAY,CAACrI,MAAUqE,EAAarE,CAAK,EAAE;AACjD,MAAIqE,EAAa,UAAUW;AACzB,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,UAAUoD;AAAA,IAChB;AAEE,MAAInC,IAAakB;AAAA,IACf;AAAA,IACAiB;AAAA,IACAC;AAAA,IACAtC;AAAA,EACJ,GACMG,IAAWD;AACf,MAAIjB,MAAU;AACZ,WAAOkB,IAAWkC,KAAa/D,EAAa6B,CAAQ,EAAE,MAAMH,IAAeD;AACzE,MAAAI;AAAA,WAEOlB,IAAQ,GAAG;AACpB,UAAMsD,IAAa,MAAMtD,CAAK,EAAE,KAAK,CAAC;AACtC,WAAOkB,IAAWkC,KAAaE,EAAW,KAAK,CAACC,MAAQA,IAAMxC,IAAeD,CAAS,KAAG;AACvF,YAAMX,IAAOd,EAAa6B,CAAQ;AAClC,MAAAoC,EAAWnD,EAAK,IAAI,IAAIA,EAAK,KAC7Be;AAAA,IACF;AACA,UAAMsC,IAAe,MAAMxD,CAAK,EAAE,KAAKe,IAAeD,CAAS;AAC/D,WAAOG,KAAc,KAAKuC,EAAa,KAAK,CAACD,MAAQA,KAAOxC,CAAY,KAAG;AACzE,YAAMZ,IAAOd,EAAa4B,CAAU;AACpC,MAAAuC,EAAarD,EAAK,IAAI,IAAIA,EAAK,OAC/Bc;AAAA,IACF;AACA,IAAAA,IAAa,KAAK,IAAI,GAAGA,IAAaA,IAAajB,CAAK,GACxDkB,IAAW,KAAK,IAAIkC,GAAWlC,KAAYlB,IAAQ,IAAIkB,IAAWlB,EAAM;AAAA,EAC1E;AACA,SAAO,EAAE,YAAAiB,GAAY,UAAAC,EAAQ;AAC/B;AC75BA,MAAMuC,IAA4B,OAAO,WAAa,MAAcC,EAAM,kBAAkBA,EAAM;AAClG,SAASC,EAAmB;AAAA,EAC1B,cAAAC,IAAe;AAAA,EACf,GAAGC;AACL,GAAG;AACD,QAAMC,IAAWJ,EAAM,WAAW,OAAO,CAAA,IAAK,CAAA,CAAE,EAAE,CAAC,GAC7CK,IAAkB;AAAA,IACtB,GAAGF;AAAA,IACH,UAAU,CAACG,GAAW/E,MAAS;AAC7B,UAAIvE;AACJ,MAAIkJ,KAAgB3E,IAClBgF,EAAUH,CAAQ,IAElBA,EAAQ,IAETpJ,IAAKmJ,EAAQ,aAAa,QAAgBnJ,EAAG,KAAKmJ,GAASG,GAAW/E,CAAI;AAAA,IAC7E;AAAA,EACJ,GACQ,CAAClC,CAAQ,IAAI2G,EAAM;AAAA,IACvB,MAAM,IAAIhF,EAAYqF,CAAe;AAAA,EACzC;AACE,SAAAhH,EAAS,WAAWgH,CAAe,GACnCN,EAA0B,MACjB1G,EAAS,UAAS,GACxB,CAAA,CAAE,GACL0G,EAA0B,MACjB1G,EAAS,YAAW,CAC5B,GACMA;AACT;AACA,SAASmH,EAAeL,GAAS;AAC/B,SAAOF,EAAmB;AAAA,IACxB,oBAAA7G;AAAA,IACA,sBAAAc;AAAA,IACA,YAAYU;AAAA,IACZ,GAAGuF;AAAA,EACP,CAAG;AACH;","x_google_ignoreList":[0,1,2]}
|