@alfadocs/ui-kit-debug 1.44.0 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js → actions-cell-renderer-B5m9lwgC.js} +2 -2
- package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js.map → actions-cell-renderer-B5m9lwgC.js.map} +1 -1
- package/dist/_chunks/ai-credits-notice-xszqOZTC.js +90 -0
- package/dist/_chunks/ai-credits-notice-xszqOZTC.js.map +1 -0
- package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js +17 -0
- package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js.map +1 -0
- package/dist/_chunks/{ai-consent-banner-D7I2U-cz.js → ai-permission-notice-D7I2U-cz.js} +1 -1
- package/dist/_chunks/ai-permission-notice-D7I2U-cz.js.map +1 -0
- package/dist/_chunks/ai-sparkle-D23NT8Z_.js +45 -0
- package/dist/_chunks/ai-sparkle-D23NT8Z_.js.map +1 -0
- package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js → anamnesis-summary-rows-DI-UX5r6.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js.map → anamnesis-summary-rows-DI-UX5r6.js.map} +1 -1
- package/dist/_chunks/{appointment-card-TgR_2GKS.js → appointment-card-DluZy8Iv.js} +2 -2
- package/dist/_chunks/{appointment-card-TgR_2GKS.js.map → appointment-card-DluZy8Iv.js.map} +1 -1
- package/dist/_chunks/{appointment-peek-abiR0T9e.js → appointment-peek-BsfCpiJs.js} +3 -3
- package/dist/_chunks/{appointment-peek-abiR0T9e.js.map → appointment-peek-BsfCpiJs.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-CCnyUYKz.js → appointment-timeline-Cs5f9viN.js} +3 -3
- package/dist/_chunks/{appointment-timeline-CCnyUYKz.js.map → appointment-timeline-Cs5f9viN.js.map} +1 -1
- package/dist/_chunks/{appointment-tray-N0yEI8UF.js → appointment-tray-CLrGGnKR.js} +2 -2
- package/dist/_chunks/{appointment-tray-N0yEI8UF.js.map → appointment-tray-CLrGGnKR.js.map} +1 -1
- package/dist/_chunks/baby-Dku-Xvg9.js +23 -0
- package/dist/_chunks/baby-Dku-Xvg9.js.map +1 -0
- package/dist/_chunks/{balance-badge-cell-o6LldMUA.js → balance-badge-cell-YGrYdrvR.js} +3 -3
- package/dist/_chunks/{balance-badge-cell-o6LldMUA.js.map → balance-badge-cell-YGrYdrvR.js.map} +1 -1
- package/dist/_chunks/{booking-D43ASl8y.js → booking-B7gA9gFB.js} +279 -296
- package/dist/_chunks/booking-B7gA9gFB.js.map +1 -0
- package/dist/_chunks/button-group-CA1tmu39.js +325 -0
- package/dist/_chunks/button-group-CA1tmu39.js.map +1 -0
- package/dist/_chunks/{calendar-U6N0F99w.js → calendar-OzSeTb4V.js} +2 -2
- package/dist/_chunks/{calendar-U6N0F99w.js.map → calendar-OzSeTb4V.js.map} +1 -1
- package/dist/_chunks/{calendar-event-card-DKUnT9Be.js → calendar-event-card-B6N5h1dO.js} +57 -48
- package/dist/_chunks/{calendar-event-card-DKUnT9Be.js.map → calendar-event-card-B6N5h1dO.js.map} +1 -1
- package/dist/_chunks/{calendar-workspace-DBYAtdyd.js → calendar-workspace-BB-BZT7W.js} +3002 -2912
- package/dist/_chunks/calendar-workspace-BB-BZT7W.js.map +1 -0
- package/dist/_chunks/{chart-PF2krCZC.js → chart-D8ucl8hH.js} +2 -2
- package/dist/_chunks/{chart-PF2krCZC.js.map → chart-D8ucl8hH.js.map} +1 -1
- package/dist/_chunks/{data-table-CcAx_I1w.js → data-table-DnKOmEVw.js} +2 -2
- package/dist/_chunks/{data-table-CcAx_I1w.js.map → data-table-DnKOmEVw.js.map} +1 -1
- package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js → editable-currency-cell-renderer-OUkUv7U4.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js.map → editable-currency-cell-renderer-OUkUv7U4.js.map} +1 -1
- package/dist/_chunks/{face-scheme-Bm6pe7R8.js → face-scheme-mIhwrQXt.js} +3 -3
- package/dist/_chunks/{face-scheme-Bm6pe7R8.js.map → face-scheme-mIhwrQXt.js.map} +1 -1
- package/dist/_chunks/{file-manager-BfLQxF5t.js → file-manager-DOcJGIx2.js} +4 -4
- package/dist/_chunks/{file-manager-BfLQxF5t.js.map → file-manager-DOcJGIx2.js.map} +1 -1
- package/dist/_chunks/{header-settings-CTe45iDy.js → header-settings-BEfx_-TF.js} +2 -2
- package/dist/_chunks/{header-settings-CTe45iDy.js.map → header-settings-BEfx_-TF.js.map} +1 -1
- package/dist/_chunks/{help-me-write-templates-GUeEn3Ff.js → help-me-write-templates-DHIwa4xR.js} +205 -199
- package/dist/_chunks/help-me-write-templates-DHIwa4xR.js.map +1 -0
- package/dist/_chunks/{hover-card-BMJBVqIf.js → hover-card-nUae8NPJ.js} +67 -62
- package/dist/_chunks/{hover-card-BMJBVqIf.js.map → hover-card-nUae8NPJ.js.map} +1 -1
- package/dist/_chunks/{icon-button-group-DkkdIygu.js → icon-button-group-DZKC6KGf.js} +181 -168
- package/dist/_chunks/icon-button-group-DZKC6KGf.js.map +1 -0
- package/dist/_chunks/kit-extensions-DuoFF1R3.js +94 -0
- package/dist/_chunks/kit-extensions-DuoFF1R3.js.map +1 -0
- package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js → marketplace-app-shell-PB89Dkk_.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js.map → marketplace-app-shell-PB89Dkk_.js.map} +1 -1
- package/dist/_chunks/{notes-panel-CY4KmDo-.js → notes-panel-CHbDDMx8.js} +83 -73
- package/dist/_chunks/notes-panel-CHbDDMx8.js.map +1 -0
- package/dist/_chunks/{patient-details-C8ImUrVg.js → patient-details-DUj1htsH.js} +2 -2
- package/dist/_chunks/{patient-details-C8ImUrVg.js.map → patient-details-DUj1htsH.js.map} +1 -1
- package/dist/_chunks/{patient-field-row-BRSOKvme.js → patient-field-row-CO0WR7yA.js} +2 -2
- package/dist/_chunks/patient-field-row-CO0WR7yA.js.map +1 -0
- package/dist/_chunks/{patient-summary-card-BhmKB2KR.js → patient-summary-card-DNzdYjxE.js} +59 -45
- package/dist/_chunks/patient-summary-card-DNzdYjxE.js.map +1 -0
- package/dist/_chunks/rich-text-editor-BwDV2XkZ.js +4153 -0
- package/dist/_chunks/rich-text-editor-BwDV2XkZ.js.map +1 -0
- package/dist/_chunks/{tasks-panel-CpcikOeY.js → tasks-panel-DncuBPIZ.js} +2 -2
- package/dist/_chunks/{tasks-panel-CpcikOeY.js.map → tasks-panel-DncuBPIZ.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-bI0pgDDv.js → theme-toggle-BP0XRGMM.js} +2 -2
- package/dist/_chunks/{theme-toggle-bI0pgDDv.js.map → theme-toggle-BP0XRGMM.js.map} +1 -1
- package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js +76 -0
- package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js.map +1 -0
- package/dist/_chunks/{workflow-status-xeaJTzD3.js → workflow-status-CuJAOuKL.js} +43 -42
- package/dist/_chunks/{workflow-status-xeaJTzD3.js.map → workflow-status-CuJAOuKL.js.map} +1 -1
- package/dist/agent-catalog.json +32 -4
- package/dist/agent-i18n/en.json +1 -1
- package/dist/components/_shared/field-value.d.ts.map +1 -1
- package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts +3 -0
- package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts.map +1 -0
- package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +48 -0
- package/dist/components/ai-credits-notice/ai-credits-notice.d.ts.map +1 -0
- package/dist/components/ai-credits-notice/index.d.ts +4 -0
- package/dist/components/ai-credits-notice/index.d.ts.map +1 -0
- package/dist/components/ai-credits-notice/index.js +7 -0
- package/dist/components/ai-credits-notice/index.js.map +1 -0
- package/dist/components/{ai-consent-banner/ai-consent-banner.agent.d.ts → ai-permission-notice/ai-permission-notice.agent.d.ts} +2 -2
- package/dist/components/ai-permission-notice/ai-permission-notice.agent.d.ts.map +1 -0
- package/dist/components/{ai-consent-banner/ai-consent-banner.d.ts → ai-permission-notice/ai-permission-notice.d.ts} +1 -1
- package/dist/components/ai-permission-notice/ai-permission-notice.d.ts.map +1 -0
- package/dist/components/ai-permission-notice/index.d.ts +4 -0
- package/dist/components/ai-permission-notice/index.d.ts.map +1 -0
- package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js +1 -1
- package/dist/components/ai-sparkle/ai-sparkle.d.ts +24 -0
- package/dist/components/ai-sparkle/ai-sparkle.d.ts.map +1 -0
- package/dist/components/ai-sparkle/index.d.ts +3 -0
- package/dist/components/ai-sparkle/index.d.ts.map +1 -0
- package/dist/components/ai-sparkle/index.js +5 -0
- package/dist/components/ai-sparkle/index.js.map +1 -0
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
- package/dist/components/calendar-event-card/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/data-table/index.js +3 -3
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/hover-card/hover-card.d.ts +4 -0
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/index.d.ts +1 -1
- package/dist/components/hover-card/index.d.ts.map +1 -1
- package/dist/components/hover-card/index.js +3 -2
- package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/index.d.ts +5 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +10 -0
- package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/rich-text-editor/editor-extensions.d.ts +54 -0
- package/dist/components/rich-text-editor/editor-extensions.d.ts.map +1 -0
- package/dist/components/rich-text-editor/editor-toolbar.d.ts +2 -1
- package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
- package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +4 -0
- package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
- package/dist/components/rich-text-editor/index.d.ts +2 -0
- package/dist/components/rich-text-editor/index.d.ts.map +1 -1
- package/dist/components/rich-text-editor/index.js +6 -4
- package/dist/components/rich-text-editor/index.js.map +1 -1
- package/dist/components/rich-text-editor/kit-extensions.d.ts +4 -0
- package/dist/components/rich-text-editor/kit-extensions.d.ts.map +1 -0
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +18 -2
- package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/workflow-status/index.js +1 -1
- package/dist/components/workflow-status/workflow-status.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +54 -48
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-ai-sparkle.d.ts +91 -0
- package/dist/hooks/use-ai-sparkle.d.ts.map +1 -0
- package/dist/host-compat.css +2 -2
- package/dist/i18n/locales/ar.d.ts +31 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +33 -2
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +31 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +33 -2
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +31 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +33 -2
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +31 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +33 -2
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +31 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +33 -2
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +31 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +33 -2
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +31 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +33 -2
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +31 -0
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +33 -2
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +31 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +33 -2
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +31 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +33 -2
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +31 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +33 -2
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +31 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +33 -2
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +31 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +33 -2
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +31 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +33 -2
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +31 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +33 -2
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +31 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +33 -2
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +31 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +33 -2
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +31 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +33 -2
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +1113 -1102
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +33 -2
- package/dist/locales/de.json +33 -2
- package/dist/locales/el.json +33 -2
- package/dist/locales/en.json +33 -2
- package/dist/locales/es.json +33 -2
- package/dist/locales/fr.json +33 -2
- package/dist/locales/hi.json +33 -2
- package/dist/locales/it.json +33 -2
- package/dist/locales/ja.json +33 -2
- package/dist/locales/nl.json +33 -2
- package/dist/locales/pl.json +33 -2
- package/dist/locales/pt.json +33 -2
- package/dist/locales/ro.json +33 -2
- package/dist/locales/ru.json +33 -2
- package/dist/locales/sq.json +33 -2
- package/dist/locales/sv.json +33 -2
- package/dist/locales/tr.json +33 -2
- package/dist/locales/zh.json +33 -2
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-bookings-panel.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-workspace.d.ts +6 -4
- package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.data.d.ts +9 -0
- package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.journey.d.ts +1 -1
- package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts +16 -5
- package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.types.d.ts +3 -1
- package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +11 -2
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts.map +1 -1
- package/dist/patterns/help-me-write-templates/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +14 -4
- package/dist/_chunks/ai-consent-banner-D7I2U-cz.js.map +0 -1
- package/dist/_chunks/booking-D43ASl8y.js.map +0 -1
- package/dist/_chunks/button-group-R32U7SyV.js +0 -307
- package/dist/_chunks/button-group-R32U7SyV.js.map +0 -1
- package/dist/_chunks/calendar-workspace-DBYAtdyd.js.map +0 -1
- package/dist/_chunks/help-me-write-templates-GUeEn3Ff.js.map +0 -1
- package/dist/_chunks/icon-button-group-DkkdIygu.js.map +0 -1
- package/dist/_chunks/notes-panel-CY4KmDo-.js.map +0 -1
- package/dist/_chunks/patient-field-row-BRSOKvme.js.map +0 -1
- package/dist/_chunks/patient-summary-card-BhmKB2KR.js.map +0 -1
- package/dist/_chunks/rich-text-editor-BYE6kK4u.js +0 -3839
- package/dist/_chunks/rich-text-editor-BYE6kK4u.js.map +0 -1
- package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +0 -1
- package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +0 -1
- package/dist/components/ai-consent-banner/index.d.ts +0 -4
- package/dist/components/ai-consent-banner/index.d.ts.map +0 -1
- /package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js.map +0 -0
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
import { jsx as s, jsxs as z } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as be, useRef as L, useState as ee, useCallback as ge, Children as T, isValidElement as re, useEffect as we, cloneElement as G } from "react";
|
|
3
|
-
import { c as ve } from "./index-D2ZczOXr.js";
|
|
4
|
-
import { useTranslation as ye } from "react-i18next";
|
|
5
|
-
import { I as te } from "./icon-button-CehAeZoP.js";
|
|
6
|
-
import { D as C } from "./dropdown-menu-DU-Hrf33.js";
|
|
7
|
-
import { T as he } from "./tooltip-Cp-PLePW.js";
|
|
8
|
-
import { u as Re } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
9
|
-
import { u as xe } from "./use-priority-overflow-c9SjxZkZ.js";
|
|
10
|
-
import { E as oe } from "./ellipsis-dRo9ouSU.js";
|
|
11
|
-
const ne = ve(
|
|
12
|
-
"ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10",
|
|
13
|
-
{
|
|
14
|
-
variants: {
|
|
15
|
-
orientation: {
|
|
16
|
-
horizontal: [
|
|
17
|
-
"ds:flex-row",
|
|
18
|
-
"ds:[&>*:not(:first-child)]:rounded-s-none",
|
|
19
|
-
"ds:[&>*:not(:last-child)]:rounded-e-none",
|
|
20
|
-
"ds:[&>*:not(:first-child)]:-ms-px"
|
|
21
|
-
].join(" "),
|
|
22
|
-
vertical: [
|
|
23
|
-
"ds:flex-col",
|
|
24
|
-
"ds:[&>*:not(:first-child)]:rounded-t-none",
|
|
25
|
-
"ds:[&>*:not(:last-child)]:rounded-b-none",
|
|
26
|
-
"ds:[&>*:not(:first-child)]:-mt-px"
|
|
27
|
-
].join(" ")
|
|
28
|
-
},
|
|
29
|
-
separator: {
|
|
30
|
-
true: "",
|
|
31
|
-
false: ""
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
compoundVariants: [
|
|
35
|
-
{
|
|
36
|
-
orientation: "horizontal",
|
|
37
|
-
separator: !0,
|
|
38
|
-
class: "ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
orientation: "vertical",
|
|
42
|
-
separator: !0,
|
|
43
|
-
class: "ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border"
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
defaultVariants: {
|
|
47
|
-
orientation: "horizontal",
|
|
48
|
-
separator: !1
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
), K = "ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none", Ie = be(
|
|
52
|
-
({
|
|
53
|
-
className: $,
|
|
54
|
-
orientation: f = "horizontal",
|
|
55
|
-
separator: V = !1,
|
|
56
|
-
toolbar: g = !1,
|
|
57
|
-
intent: w = "outline",
|
|
58
|
-
background: v = "transparent",
|
|
59
|
-
size: l,
|
|
60
|
-
label: se,
|
|
61
|
-
overflow: ae = "none",
|
|
62
|
-
collapseToIcons: A = !1,
|
|
63
|
-
children: N,
|
|
64
|
-
...M
|
|
65
|
-
}, y) => {
|
|
66
|
-
const { t: O } = ye(), P = se ?? O("buttonGroup.label", "Button group"), U = O("buttonGroup.more", "More options"), u = ae === "menu" && f !== "vertical", d = g, m = L([]), [c, h] = ee(0), _ = L(null), [S, ie] = ee(!1);
|
|
67
|
-
Re(() => {
|
|
68
|
-
if (typeof window > "u") return;
|
|
69
|
-
const e = _.current;
|
|
70
|
-
e && ie(window.getComputedStyle(e).direction === "rtl");
|
|
71
|
-
}, []);
|
|
72
|
-
const H = ge(
|
|
73
|
-
(e) => {
|
|
74
|
-
var R;
|
|
75
|
-
if (!d) return;
|
|
76
|
-
const r = m.current.filter(Boolean).length;
|
|
77
|
-
if (r === 0) return;
|
|
78
|
-
const t = f === "vertical" ? "ArrowDown" : S ? "ArrowLeft" : "ArrowRight", o = f === "vertical" ? "ArrowUp" : S ? "ArrowRight" : "ArrowLeft";
|
|
79
|
-
let n = null;
|
|
80
|
-
if (e.key === t ? n = (c + 1) % r : e.key === o ? n = (c - 1 + r) % r : e.key === "Home" ? n = 0 : e.key === "End" && (n = r - 1), n === null) return;
|
|
81
|
-
const i = r;
|
|
82
|
-
let a = 0, p = n;
|
|
83
|
-
for (; a < i; ) {
|
|
84
|
-
const x = m.current[p];
|
|
85
|
-
if (x && x.getAttribute("aria-disabled") !== "true" && !x.disabled)
|
|
86
|
-
break;
|
|
87
|
-
p = e.key === o || e.key === "End" ? (p - 1 + r) % r : (p + 1) % r, a += 1;
|
|
88
|
-
}
|
|
89
|
-
e.preventDefault(), h(p), (R = m.current[p]) == null || R.focus();
|
|
90
|
-
},
|
|
91
|
-
[d, f, S, c]
|
|
92
|
-
), b = u ? T.toArray(N).filter(re) : [], j = (e) => {
|
|
93
|
-
if (typeof e.props.children == "string") return e.props.children;
|
|
94
|
-
const r = e.props["aria-label"];
|
|
95
|
-
return typeof r == "string" ? r : null;
|
|
96
|
-
};
|
|
97
|
-
L(!1);
|
|
98
|
-
const le = b.map((e) => {
|
|
99
|
-
const r = e.props["data-overflow-pin"] !== void 0, t = j(e) !== null;
|
|
100
|
-
return r || !t;
|
|
101
|
-
}), {
|
|
102
|
-
containerRef: ue,
|
|
103
|
-
fullRowRef: de,
|
|
104
|
-
iconRowRef: ce,
|
|
105
|
-
triggerProbeRef: pe,
|
|
106
|
-
stage: fe,
|
|
107
|
-
visible: B,
|
|
108
|
-
overflowing: I
|
|
109
|
-
} = xe({
|
|
110
|
-
enabled: u,
|
|
111
|
-
count: b.length,
|
|
112
|
-
twoStage: A,
|
|
113
|
-
pinned: le
|
|
114
|
-
}), W = L(null), k = u ? B.filter(Boolean).length : T.count(N);
|
|
115
|
-
we(() => {
|
|
116
|
-
var r;
|
|
117
|
-
if (!d || !u) return;
|
|
118
|
-
const e = k + (I ? 1 : 0);
|
|
119
|
-
e > 0 && c >= e && (h(e - 1), document.activeElement === document.body && ((r = W.current) == null || r.focus()));
|
|
120
|
-
}, [
|
|
121
|
-
d,
|
|
122
|
-
u,
|
|
123
|
-
k,
|
|
124
|
-
I,
|
|
125
|
-
c
|
|
126
|
-
]);
|
|
127
|
-
const q = (e, r) => (t) => {
|
|
128
|
-
m.current[r] = t;
|
|
129
|
-
const o = e.ref;
|
|
130
|
-
typeof o == "function" ? o(t) : o != null && typeof o == "object" && (o.current = t);
|
|
131
|
-
}, me = u ? null : T.map(N, (e, r) => {
|
|
132
|
-
if (!re(e)) return e;
|
|
133
|
-
const t = e, o = {
|
|
134
|
-
intent: t.props.intent ?? w,
|
|
135
|
-
background: t.props.background ?? v,
|
|
136
|
-
...l ? { size: t.props.size ?? l } : null
|
|
137
|
-
};
|
|
138
|
-
return d && (o.tabIndex = r === c ? 0 : -1, o.onFocus = (n) => {
|
|
139
|
-
var i, a;
|
|
140
|
-
h(r), (a = (i = t.props).onFocus) == null || a.call(i, n);
|
|
141
|
-
}, o.ref = q(t, r)), G(
|
|
142
|
-
t,
|
|
143
|
-
o
|
|
144
|
-
);
|
|
145
|
-
});
|
|
146
|
-
let J = null, Q = null;
|
|
147
|
-
if (u) {
|
|
148
|
-
m.current.length = k + (I ? 1 : 0);
|
|
149
|
-
let e = -1;
|
|
150
|
-
J = b.map((r, t) => {
|
|
151
|
-
if (!B[t]) return null;
|
|
152
|
-
e += 1;
|
|
153
|
-
const o = e, n = {
|
|
154
|
-
intent: r.props.intent ?? w,
|
|
155
|
-
background: r.props.background ?? v,
|
|
156
|
-
...l ? { size: r.props.size ?? l } : null
|
|
157
|
-
};
|
|
158
|
-
A && fe === "icons" && r.props.children && (r.props.startIcon || r.props.endIcon) && (n.hideLabel = !0), d && (n.tabIndex = o === c ? 0 : -1, n.onFocus = (x) => {
|
|
159
|
-
var Z, E;
|
|
160
|
-
h(o), (E = (Z = r.props).onFocus) == null || E.call(Z, x);
|
|
161
|
-
}, n.ref = q(r, o));
|
|
162
|
-
const i = n.hideLabel === !0, a = G(
|
|
163
|
-
r,
|
|
164
|
-
n
|
|
165
|
-
), p = r.props["data-overflow-tip"] === !1 || r.props["data-overflow-tip"] === "false", R = i && !p ? j(r) : null;
|
|
166
|
-
return R ? /* @__PURE__ */ s(he, { label: R, children: a }, r.key ?? t) : a;
|
|
167
|
-
}), Q = b.map((r, t) => {
|
|
168
|
-
if (B[t]) return null;
|
|
169
|
-
const o = j(r);
|
|
170
|
-
return o === null ? null : /* @__PURE__ */ s(
|
|
171
|
-
C.Item,
|
|
172
|
-
{
|
|
173
|
-
startIcon: r.props.startIcon,
|
|
174
|
-
disabled: r.props.disabled === !0 || r.props.loading === !0,
|
|
175
|
-
onSelect: (n) => {
|
|
176
|
-
var i, a;
|
|
177
|
-
(a = (i = r.props).onClick) == null || a.call(
|
|
178
|
-
i,
|
|
179
|
-
n
|
|
180
|
-
);
|
|
181
|
-
},
|
|
182
|
-
children: o
|
|
183
|
-
},
|
|
184
|
-
r.key ?? t
|
|
185
|
-
);
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
const X = (e) => {
|
|
189
|
-
_.current = e, typeof y == "function" ? y(e) : y && typeof y == "object" && (y.current = e);
|
|
190
|
-
};
|
|
191
|
-
if (!u)
|
|
192
|
-
return /* @__PURE__ */ s(
|
|
193
|
-
"div",
|
|
194
|
-
{
|
|
195
|
-
ref: X,
|
|
196
|
-
role: g ? "toolbar" : "group",
|
|
197
|
-
"aria-label": P,
|
|
198
|
-
"aria-orientation": g ? f ?? "horizontal" : void 0,
|
|
199
|
-
"data-component": "button-group",
|
|
200
|
-
onKeyDown: H,
|
|
201
|
-
className: ne({ orientation: f, separator: V, className: $ }),
|
|
202
|
-
...M,
|
|
203
|
-
children: me
|
|
204
|
-
}
|
|
205
|
-
);
|
|
206
|
-
const D = ne({ orientation: f, separator: V }), F = k, Y = (e, r, t) => G(e, {
|
|
207
|
-
key: e.key ?? r,
|
|
208
|
-
intent: e.props.intent ?? w,
|
|
209
|
-
background: e.props.background ?? v,
|
|
210
|
-
...l ? { size: e.props.size ?? l } : null,
|
|
211
|
-
tabIndex: -1,
|
|
212
|
-
// Same rule as the live strip: icon-only children never hideLabel.
|
|
213
|
-
...t && e.props.children && (e.props.startIcon || e.props.endIcon) ? { hideLabel: !0 } : null,
|
|
214
|
-
ref: null
|
|
215
|
-
});
|
|
216
|
-
return /* @__PURE__ */ s(
|
|
217
|
-
"div",
|
|
218
|
-
{
|
|
219
|
-
ref: X,
|
|
220
|
-
"data-component": "button-group",
|
|
221
|
-
className: [
|
|
222
|
-
"ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip",
|
|
223
|
-
$ ?? ""
|
|
224
|
-
].join(" ").trim(),
|
|
225
|
-
...M,
|
|
226
|
-
children: /* @__PURE__ */ z("div", { ref: ue, className: "ds:block ds:w-full ds:min-w-0", children: [
|
|
227
|
-
/* @__PURE__ */ s(
|
|
228
|
-
"div",
|
|
229
|
-
{
|
|
230
|
-
ref: de,
|
|
231
|
-
"aria-hidden": "true",
|
|
232
|
-
inert: !0,
|
|
233
|
-
className: `${K} ${D}`,
|
|
234
|
-
children: b.map((e, r) => Y(e, r, !1))
|
|
235
|
-
}
|
|
236
|
-
),
|
|
237
|
-
A ? /* @__PURE__ */ s(
|
|
238
|
-
"div",
|
|
239
|
-
{
|
|
240
|
-
ref: ce,
|
|
241
|
-
"aria-hidden": "true",
|
|
242
|
-
inert: !0,
|
|
243
|
-
className: `${K} ${D}`,
|
|
244
|
-
children: b.map((e, r) => Y(e, r, !0))
|
|
245
|
-
}
|
|
246
|
-
) : null,
|
|
247
|
-
/* @__PURE__ */ s(
|
|
248
|
-
"span",
|
|
249
|
-
{
|
|
250
|
-
ref: pe,
|
|
251
|
-
"aria-hidden": "true",
|
|
252
|
-
inert: !0,
|
|
253
|
-
className: K,
|
|
254
|
-
children: /* @__PURE__ */ s(
|
|
255
|
-
te,
|
|
256
|
-
{
|
|
257
|
-
icon: /* @__PURE__ */ s(oe, {}),
|
|
258
|
-
intent: w,
|
|
259
|
-
background: v,
|
|
260
|
-
size: l,
|
|
261
|
-
"aria-label": U,
|
|
262
|
-
tabIndex: -1
|
|
263
|
-
}
|
|
264
|
-
)
|
|
265
|
-
}
|
|
266
|
-
),
|
|
267
|
-
/* @__PURE__ */ z(
|
|
268
|
-
"div",
|
|
269
|
-
{
|
|
270
|
-
role: g ? "toolbar" : "group",
|
|
271
|
-
"aria-label": P,
|
|
272
|
-
"aria-orientation": g ? "horizontal" : void 0,
|
|
273
|
-
onKeyDown: H,
|
|
274
|
-
className: `${D} ds:max-w-full ds:align-top`,
|
|
275
|
-
children: [
|
|
276
|
-
J,
|
|
277
|
-
I ? /* @__PURE__ */ z(C.Root, { children: [
|
|
278
|
-
/* @__PURE__ */ s(C.Trigger, { asChild: !0, children: /* @__PURE__ */ s(
|
|
279
|
-
te,
|
|
280
|
-
{
|
|
281
|
-
icon: /* @__PURE__ */ s(oe, {}),
|
|
282
|
-
intent: w,
|
|
283
|
-
background: v,
|
|
284
|
-
size: l,
|
|
285
|
-
"aria-label": U,
|
|
286
|
-
ref: (e) => {
|
|
287
|
-
W.current = e, m.current[F] = e;
|
|
288
|
-
},
|
|
289
|
-
tabIndex: d ? c === F ? 0 : -1 : void 0,
|
|
290
|
-
onFocus: d ? () => h(F) : void 0
|
|
291
|
-
}
|
|
292
|
-
) }),
|
|
293
|
-
/* @__PURE__ */ s(C.Content, { align: "end", children: Q })
|
|
294
|
-
] }) : null
|
|
295
|
-
]
|
|
296
|
-
}
|
|
297
|
-
)
|
|
298
|
-
] })
|
|
299
|
-
}
|
|
300
|
-
);
|
|
301
|
-
}
|
|
302
|
-
);
|
|
303
|
-
Ie.displayName = "ButtonGroup";
|
|
304
|
-
export {
|
|
305
|
-
Ie as B
|
|
306
|
-
};
|
|
307
|
-
//# sourceMappingURL=button-group-R32U7SyV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-group-R32U7SyV.js","sources":["../../src/components/button-group/button-group.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\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 { useTranslation } from 'react-i18next';\nimport { Ellipsis } from 'lucide-react';\nimport type { ButtonProps } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { Tooltip } from '../tooltip';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { usePriorityOverflow } from '../../hooks/use-priority-overflow';\n\ntype ButtonIntent = NonNullable<ButtonProps['intent']>;\n\nconst buttonGroupVariants = cva(\n 'ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10',\n {\n variants: {\n orientation: {\n horizontal: [\n 'ds:flex-row',\n 'ds:[&>*:not(:first-child)]:rounded-s-none',\n 'ds:[&>*:not(:last-child)]:rounded-e-none',\n 'ds:[&>*:not(:first-child)]:-ms-px',\n ].join(' '),\n vertical: [\n 'ds:flex-col',\n 'ds:[&>*:not(:first-child)]:rounded-t-none',\n 'ds:[&>*:not(:last-child)]:rounded-b-none',\n 'ds:[&>*:not(:first-child)]:-mt-px',\n ].join(' '),\n },\n separator: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border',\n },\n {\n orientation: 'vertical',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border',\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n separator: false,\n },\n },\n);\n\n// Hidden measurement rows: laid out (so widths are real) but invisible,\n// non-interactive and out of the a11y tree. Never display:none.\nconst MEASURE_ROW_CLASSES =\n 'ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none';\n\ntype GroupChildProps = {\n intent?: ButtonIntent;\n background?: 'transparent' | 'surface';\n tabIndex?: number;\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n ref?: React.Ref<HTMLButtonElement>;\n children?: ReactNode;\n disabled?: boolean;\n loading?: boolean;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n hideLabel?: boolean;\n 'aria-label'?: string;\n 'data-overflow-pin'?: boolean | 'true' | '';\n 'data-overflow-tip'?: boolean | 'false';\n size?: ButtonProps['size'];\n};\n\nexport interface ButtonGroupProps\n extends\n HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof buttonGroupVariants> {\n /**\n * Accessible label for the group. Falls back to the translated\n * `ui.buttonGroup.label` string when not provided.\n */\n label?: string;\n /**\n * When the children are interactive toolbar-style controls (e.g. toggles),\n * set this to render `role=\"toolbar\"` instead of `role=\"group\"`.\n */\n toolbar?: boolean;\n /**\n * Intent applied to every Button / IconButton child that does not set\n * its own `intent`. Defaults to `outline` — grouped buttons are peers,\n * not three solid-primary CTAs.\n */\n intent?: ButtonIntent;\n /**\n * Backing paint behind the outline intents, applied to every child that\n * does not set its own `background` AND to the group's own overflow\n * trigger. `'transparent'` (default) lets the surface behind show through\n * — right on a toolbar or a tinted shell. `'surface'` paints\n * `--background` behind the whole strip, so it reads as one solid control\n * on a host page or a panel footer. A child's explicit `background` wins.\n *\n * Set this rather than passing `background` to each child: the ellipsis\n * trigger is the group's own, so no per-child prop can reach it and the\n * strip would collapse to a mismatched see-through button.\n */\n background?: 'transparent' | 'surface';\n /**\n * Size applied to every child that does not set its own `size` AND to the\n * group's own overflow trigger. Set it here rather than per child: the\n * ellipsis trigger is the group's, so a per-child `size` leaves it at the\n * default `md` and the strip ends on a button taller than the rest.\n */\n size?: ButtonProps['size'];\n /**\n * `'menu'` keeps the strip on one line whatever the container width:\n * once the buttons stop fitting (after the optional `collapseToIcons`\n * stage) trailing ones move into a dropdown behind an ellipsis trigger.\n * The group then fills its container's inline size, so give it a bounded\n * parent. Horizontal only. Children needing to stay in the strip set\n * `data-overflow-pin`; children without a string label or `aria-label`\n * cannot be mirrored into the menu and are pinned automatically.\n */\n overflow?: 'none' | 'menu';\n /**\n * With `overflow=\"menu\"`: before spilling into the menu, hide every\n * child's label (`hideLabel`) and keep only its `startIcon` — buttons\n * without an icon shrink to their padding, so give each child one.\n */\n collapseToIcons?: boolean;\n}\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n className,\n orientation = 'horizontal',\n separator = false,\n toolbar = false,\n intent = 'outline',\n background = 'transparent',\n size,\n label,\n overflow = 'none',\n collapseToIcons = false,\n children,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const accessibleLabel = label ?? t('buttonGroup.label', 'Button group');\n const moreLabel = t('buttonGroup.more', 'More options');\n\n if (\n import.meta.env.DEV &&\n overflow === 'menu' &&\n orientation === 'vertical'\n ) {\n console.warn(\n 'ButtonGroup: overflow=\"menu\" is horizontal-only; falling back to overflow=\"none\".',\n );\n }\n const overflowEnabled = overflow === 'menu' && orientation !== 'vertical';\n\n // Roving tabindex — required by the WAI-ARIA toolbar pattern.\n // When `toolbar` is true, one child owns `tabIndex=0` and the rest are\n // `-1`. Arrow keys / Home / End move focus between children, respecting\n // orientation and RTL. Plain `group` mode keeps every child natively\n // tabbable.\n const rovingTabindex = toolbar;\n const buttonsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [isRTL, setIsRTL] = useState(false);\n useIsomorphicLayoutEffect(() => {\n if (typeof window === 'undefined') return;\n const node = rootRef.current;\n if (!node) return;\n setIsRTL(window.getComputedStyle(node).direction === 'rtl');\n }, []);\n\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 if (next === null) return;\n\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 (\n el &&\n el.getAttribute('aria-disabled') !== 'true' &&\n !el.disabled\n ) {\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 },\n [rovingTabindex, orientation, isRTL, focusIndex],\n );\n\n /* ---- Overflow bookkeeping (menu mode only) --------------------- */\n const childElements = overflowEnabled\n ? (Children.toArray(children).filter(isValidElement) as Array<\n ReactElement<GroupChildProps>\n >)\n : [];\n\n const mirrorLabel = (child: ReactElement<GroupChildProps>) => {\n if (typeof child.props.children === 'string') return child.props.children;\n const aria = child.props['aria-label'];\n return typeof aria === 'string' ? aria : null;\n };\n const warnedRef = useRef(false);\n const pinnedFlags = childElements.map((child) => {\n const explicit = child.props['data-overflow-pin'] !== undefined;\n const mirrorable = mirrorLabel(child) !== null;\n if (\n import.meta.env.DEV &&\n !explicit &&\n !mirrorable &&\n !warnedRef.current\n ) {\n warnedRef.current = true;\n console.warn(\n 'ButtonGroup: a child without a string label or aria-label cannot move into the overflow menu — it stays pinned in the strip.',\n );\n }\n return explicit || !mirrorable;\n });\n\n const {\n containerRef,\n fullRowRef,\n iconRowRef,\n triggerProbeRef,\n stage,\n visible,\n overflowing,\n } = usePriorityOverflow({\n enabled: overflowEnabled,\n count: childElements.length,\n twoStage: collapseToIcons,\n pinned: pinnedFlags,\n });\n\n const triggerNodeRef = useRef<HTMLButtonElement | null>(null);\n const visibleCount = overflowEnabled\n ? visible.filter(Boolean).length\n : Children.count(children);\n\n // Clamp the roving focus when items move into the menu; hand real focus\n // to the trigger only when the focused node was the one that left.\n useEffect(() => {\n if (!rovingTabindex || !overflowEnabled) return;\n const total = visibleCount + (overflowing ? 1 : 0);\n if (total > 0 && focusIndex >= total) {\n setFocusIndex(total - 1);\n if (document.activeElement === document.body) {\n triggerNodeRef.current?.focus();\n }\n }\n }, [\n rovingTabindex,\n overflowEnabled,\n visibleCount,\n overflowing,\n focusIndex,\n ]);\n\n const mergeChildRef = (\n childEl: ReactElement<GroupChildProps>,\n index: number,\n ) => {\n return (node: HTMLButtonElement | null) => {\n buttonsRef.current[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 (\n originalRef as React.MutableRefObject<HTMLButtonElement | null>\n ).current = node;\n }\n };\n };\n\n /* ---- Legacy path: overflow=\"none\" keeps today's exact DOM ------ */\n const enhanced = overflowEnabled\n ? null\n : Children.map(children, (child, index) => {\n if (!isValidElement(child)) return child;\n const childEl = child as ReactElement<GroupChildProps>;\n\n // Roving-tabindex wiring (ref / tabIndex / onFocus) is only needed in\n // `toolbar` mode. In plain `group` mode inject ONLY `intent`, so the group\n // composes with members that don't forward a ref — e.g. each wrapped in a\n // `DropdownMenu.Root` for a split-button strip — without React's \"function\n // components cannot be given refs\" warning. The joined styling is DOM-level\n // (`[&>*]`), so it still applies to the rendered buttons either way.\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n };\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n\n return cloneElement(\n childEl,\n overrides as Partial<typeof childEl.props>,\n );\n });\n\n /* ---- Menu path: strip of visible children + ellipsis trigger --- */\n let stripChildren: ReactNode = null;\n let menuItems: ReactNode = null;\n if (overflowEnabled) {\n buttonsRef.current.length = visibleCount + (overflowing ? 1 : 0);\n let stripIndex = -1;\n stripChildren = childElements.map((childEl, i) => {\n if (!visible[i]) return null;\n stripIndex += 1;\n const index = stripIndex;\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n };\n // Only children with an icon AND a text label collapse; icon-only\n // children (their children ARE the icon) would go blank.\n if (\n collapseToIcons &&\n stage === 'icons' &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n )\n overrides.hideLabel = true;\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n const collapsed = overrides.hideLabel === true;\n const cloned = cloneElement(\n childEl,\n overrides as Partial<GroupChildProps>,\n );\n // A collapsed child keeps its label screen-reader-only, so assistive\n // tech is fine — but a sighted user is left with a bare glyph and no\n // way to learn what it does. Give the collapsed stage a Tooltip.\n // `Tooltip` renders its trigger `asChild`, so the button stays the\n // group's DIRECT child and the joined-border `[&>*]` rules still hit.\n // A child that is itself a hover trigger (a HoverCard preview, say)\n // opts out with `data-overflow-tip={false}` — two overlays racing on\n // one pointer is worse than none.\n const ownsItsTip =\n childEl.props['data-overflow-tip'] === false ||\n childEl.props['data-overflow-tip'] === 'false';\n const tip = collapsed && !ownsItsTip ? mirrorLabel(childEl) : null;\n return tip ? (\n <Tooltip key={childEl.key ?? i} label={tip}>\n {cloned}\n </Tooltip>\n ) : (\n cloned\n );\n });\n\n menuItems = childElements.map((childEl, i) => {\n if (visible[i]) return null;\n const itemLabel = mirrorLabel(childEl);\n if (itemLabel === null) return null;\n return (\n <DropdownMenu.Item\n key={childEl.key ?? i}\n startIcon={childEl.props.startIcon}\n disabled={\n childEl.props.disabled === true || childEl.props.loading === true\n }\n onSelect={(event) => {\n childEl.props.onClick?.(\n event as unknown as React.MouseEvent<HTMLButtonElement>,\n );\n }}\n >\n {itemLabel}\n </DropdownMenu.Item>\n );\n });\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 if (!overflowEnabled) {\n return (\n <div\n ref={mergedRootRef}\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? (orientation ?? 'horizontal') : undefined}\n data-component=\"button-group\"\n onKeyDown={handleRootKeyDown}\n className={buttonGroupVariants({ orientation, separator, className })}\n {...props}\n >\n {enhanced}\n </div>\n );\n }\n\n const stripClasses = buttonGroupVariants({ orientation, separator });\n const triggerIndex = visibleCount;\n const measureClone = (\n childEl: ReactElement<GroupChildProps>,\n i: number,\n icons: boolean,\n ) =>\n cloneElement(childEl, {\n key: childEl.key ?? i,\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n tabIndex: -1,\n // Same rule as the live strip: icon-only children never hideLabel.\n ...(icons &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n ? { hideLabel: true }\n : null),\n ref: null,\n } as Partial<GroupChildProps>);\n\n return (\n <div\n ref={mergedRootRef}\n data-component=\"button-group\"\n className={[\n 'ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip',\n className ?? '',\n ]\n .join(' ')\n .trim()}\n {...props}\n >\n <div ref={containerRef} className=\"ds:block ds:w-full ds:min-w-0\">\n {/* Measurement rows: every item at natural width, both stages. */}\n <div\n ref={fullRowRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, false))}\n </div>\n {collapseToIcons ? (\n <div\n ref={iconRowRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, true))}\n </div>\n ) : null}\n <span\n ref={triggerProbeRef}\n aria-hidden=\"true\"\n inert\n className={MEASURE_ROW_CLASSES}\n >\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n background={background}\n size={size}\n aria-label={moreLabel}\n tabIndex={-1}\n />\n </span>\n\n <div\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? 'horizontal' : undefined}\n onKeyDown={handleRootKeyDown}\n /* `align-top` kills the baseline descender gap under an\n inline-level strip: without it the group measures ~3px taller\n than its own buttons, so it never lines up with a sibling\n control (a status pill, a select) in a shared `items-center`\n row. */\n className={`${stripClasses} ds:max-w-full ds:align-top`}\n >\n {stripChildren}\n {overflowing ? (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n background={background}\n size={size}\n aria-label={moreLabel}\n ref={(node: HTMLButtonElement | null) => {\n triggerNodeRef.current = node;\n buttonsRef.current[triggerIndex] = node;\n }}\n tabIndex={\n rovingTabindex\n ? focusIndex === triggerIndex\n ? 0\n : -1\n : undefined\n }\n onFocus={\n rovingTabindex\n ? () => setFocusIndex(triggerIndex)\n : undefined\n }\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {menuItems}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n </div>\n </div>\n </div>\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["buttonGroupVariants","cva","MEASURE_ROW_CLASSES","ButtonGroup","forwardRef","className","orientation","separator","toolbar","intent","background","size","label","overflow","collapseToIcons","children","props","ref","t","useTranslation","accessibleLabel","moreLabel","overflowEnabled","rovingTabindex","buttonsRef","useRef","focusIndex","setFocusIndex","useState","rootRef","isRTL","setIsRTL","useIsomorphicLayoutEffect","node","handleRootKeyDown","useCallback","event","count","forwardKey","backwardKey","next","maxAttempts","attempts","candidate","el","_a","childElements","Children","isValidElement","mirrorLabel","child","aria","pinnedFlags","explicit","mirrorable","containerRef","fullRowRef","iconRowRef","triggerProbeRef","stage","visible","overflowing","usePriorityOverflow","triggerNodeRef","visibleCount","useEffect","total","mergeChildRef","childEl","index","originalRef","enhanced","overrides","ev","_b","cloneElement","stripChildren","menuItems","stripIndex","i","collapsed","cloned","ownsItsTip","tip","Tooltip","itemLabel","jsx","DropdownMenu","mergedRootRef","stripClasses","triggerIndex","measureClone","icons","c","IconButton","Ellipsis","jsxs"],"mappings":"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"}
|