@alfadocs/ui-kit-debug 0.17.0 → 0.17.2
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/{accordion-DOmxGEWU.js → accordion-CNcodXuO.js} +6 -6
- package/dist/_chunks/{accordion-DOmxGEWU.js.map → accordion-CNcodXuO.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-DEiQwIMn.js → ai-prompt-input-B-w5Rx3V.js} +184 -181
- package/dist/_chunks/ai-prompt-input-B-w5Rx3V.js.map +1 -0
- package/dist/_chunks/{alert-pgdXrEO5.js → alert-DBnawbmf.js} +64 -59
- package/dist/_chunks/alert-DBnawbmf.js.map +1 -0
- package/dist/_chunks/{audio-recorder-CRh4uyFL.js → audio-recorder-DNkQLW1G.js} +3 -3
- package/dist/_chunks/{audio-recorder-CRh4uyFL.js.map → audio-recorder-DNkQLW1G.js.map} +1 -1
- package/dist/_chunks/{autocomplete-mOg7WLOh.js → autocomplete-BxfabhZ8.js} +167 -164
- package/dist/_chunks/autocomplete-BxfabhZ8.js.map +1 -0
- package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js → balance-cell-renderer-DJB6WDPe.js} +2 -2
- package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js.map → balance-cell-renderer-DJB6WDPe.js.map} +1 -1
- package/dist/_chunks/{carousel.agent-OTn-kMQg.js → carousel.agent-Xuw9LPZN.js} +14 -7
- package/dist/_chunks/{carousel.agent-OTn-kMQg.js.map → carousel.agent-Xuw9LPZN.js.map} +1 -1
- package/dist/_chunks/{chat-input-UK-bXU7u.js → chat-input-B3XmFGDw.js} +123 -122
- package/dist/_chunks/chat-input-B3XmFGDw.js.map +1 -0
- package/dist/_chunks/checkbox-group-Bwmt1ovQ.js +213 -0
- package/dist/_chunks/checkbox-group-Bwmt1ovQ.js.map +1 -0
- package/dist/_chunks/{checkbox-D5EHnB14.js → checkbox-mwbrPZDY.js} +75 -70
- package/dist/_chunks/checkbox-mwbrPZDY.js.map +1 -0
- package/dist/_chunks/{collapsible-CuxUBoHJ.js → collapsible-hHiyZp0b.js} +61 -63
- package/dist/_chunks/collapsible-hHiyZp0b.js.map +1 -0
- package/dist/_chunks/{color-picker-BPfcByHH.js → color-picker-Bm-gzpsh.js} +2 -2
- package/dist/_chunks/{color-picker-BPfcByHH.js.map → color-picker-Bm-gzpsh.js.map} +1 -1
- package/dist/_chunks/{combobox-D5tWe0t_.js → combobox-Da9eq00i.js} +214 -211
- package/dist/_chunks/combobox-Da9eq00i.js.map +1 -0
- package/dist/_chunks/{copy-field-BCHAZ8QV.js → copy-field-BAF4mt9h.js} +95 -132
- package/dist/_chunks/copy-field-BAF4mt9h.js.map +1 -0
- package/dist/_chunks/{date-picker-BlhtBhPo.js → date-picker-BIoSLRly.js} +222 -219
- package/dist/_chunks/{date-picker-BlhtBhPo.js.map → date-picker-BIoSLRly.js.map} +1 -1
- package/dist/_chunks/{date-range-picker-C2hRu_Ke.js → date-range-picker-9gANFNG9.js} +81 -78
- package/dist/_chunks/date-range-picker-9gANFNG9.js.map +1 -0
- package/dist/_chunks/{date-time-picker-B67mPZmP.js → date-time-picker-DG7BiGdb.js} +98 -95
- package/dist/_chunks/date-time-picker-DG7BiGdb.js.map +1 -0
- package/dist/_chunks/{dialog-DRp6Dejy.js → dialog-DUomPCRS.js} +69 -71
- package/dist/_chunks/dialog-DUomPCRS.js.map +1 -0
- package/dist/_chunks/{dropdown-menu-dyV7gHh_.js → dropdown-menu-DZxwF23X.js} +108 -110
- package/dist/_chunks/dropdown-menu-DZxwF23X.js.map +1 -0
- package/dist/_chunks/{freemium-paywall-BTEiVkes.js → freemium-paywall-DXc7XlGE.js} +98 -97
- package/dist/_chunks/freemium-paywall-DXc7XlGE.js.map +1 -0
- package/dist/_chunks/{leo-sidebar-D3TuyH5_.js → leo-sidebar-DIsiTju3.js} +2 -2
- package/dist/_chunks/{leo-sidebar-D3TuyH5_.js.map → leo-sidebar-DIsiTju3.js.map} +1 -1
- package/dist/_chunks/{list-DcjV0m5B.js → list-BdvDctBz.js} +184 -180
- package/dist/_chunks/list-BdvDctBz.js.map +1 -0
- package/dist/_chunks/{message-tray-Fsend-du.js → message-tray-BNAS8al4.js} +111 -111
- package/dist/_chunks/message-tray-BNAS8al4.js.map +1 -0
- package/dist/_chunks/{multi-select-DooDzQIp.js → multi-select-CyspR5ZF.js} +157 -154
- package/dist/_chunks/multi-select-CyspR5ZF.js.map +1 -0
- package/dist/_chunks/{navigation-menu-DdufF-_4.js → navigation-menu-CyS1fBJ7.js} +85 -87
- package/dist/_chunks/navigation-menu-CyS1fBJ7.js.map +1 -0
- package/dist/_chunks/{notification-tray-C3dYdLAF.js → notification-tray-D_69dXFY.js} +114 -114
- package/dist/_chunks/notification-tray-D_69dXFY.js.map +1 -0
- package/dist/_chunks/{number-input-DH00o0DN.js → number-input-BZXu6bPY.js} +92 -89
- package/dist/_chunks/number-input-BZXu6bPY.js.map +1 -0
- package/dist/_chunks/{otp-input-BBXYvLx5.js → otp-input-BDF_iNpa.js} +92 -93
- package/dist/_chunks/otp-input-BDF_iNpa.js.map +1 -0
- package/dist/_chunks/{pagination-F1ei4khE.js → pagination-BWaXF7W0.js} +194 -211
- package/dist/_chunks/pagination-BWaXF7W0.js.map +1 -0
- package/dist/_chunks/{patient-shell-BE0CdPOJ.js → patient-shell-BOOaWZA9.js} +3 -3
- package/dist/_chunks/{patient-shell-BE0CdPOJ.js.map → patient-shell-BOOaWZA9.js.map} +1 -1
- package/dist/_chunks/{payment-form-CI77oIx1.js → payment-form-BjkuQeqR.js} +2 -2
- package/dist/_chunks/{payment-form-CI77oIx1.js.map → payment-form-BjkuQeqR.js.map} +1 -1
- package/dist/_chunks/{pdf-viewer-CnEJvmXC.js → pdf-viewer-BG_nsFT5.js} +2 -2
- package/dist/_chunks/{pdf-viewer-CnEJvmXC.js.map → pdf-viewer-BG_nsFT5.js.map} +1 -1
- package/dist/_chunks/{public-header.agent-sDi9N9su.js → public-header.agent-BIBQzkeV.js} +7 -12
- package/dist/_chunks/public-header.agent-BIBQzkeV.js.map +1 -0
- package/dist/_chunks/{radio-group-Cz1a4QCA.js → radio-group-BHZOxrIK.js} +4 -4
- package/dist/_chunks/{radio-group-Cz1a4QCA.js.map → radio-group-BHZOxrIK.js.map} +1 -1
- package/dist/_chunks/{select-Ca6ibiDL.js → select-C92AT_OZ.js} +7 -7
- package/dist/_chunks/{select-Ca6ibiDL.js.map → select-C92AT_OZ.js.map} +1 -1
- package/dist/_chunks/{sidebar-D8Lq065m.js → sidebar-BqzlRBvC.js} +271 -291
- package/dist/_chunks/sidebar-BqzlRBvC.js.map +1 -0
- package/dist/_chunks/{slider-CkR6CLun.js → slider-CfEzeseL.js} +4 -4
- package/dist/_chunks/{slider-CkR6CLun.js.map → slider-CfEzeseL.js.map} +1 -1
- package/dist/_chunks/{tabs-CRCyPpJo.js → tabs-aEQfQV3x.js} +8 -8
- package/dist/_chunks/{tabs-CRCyPpJo.js.map → tabs-aEQfQV3x.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-B3meAb3y.js → theme-toggle-BswYl0Yp.js} +2 -2
- package/dist/_chunks/{theme-toggle-B3meAb3y.js.map → theme-toggle-BswYl0Yp.js.map} +1 -1
- package/dist/_chunks/use-controllable-state-BiY4xTzM.js +23 -0
- package/dist/_chunks/use-controllable-state-BiY4xTzM.js.map +1 -0
- package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js +43 -0
- package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js.map +1 -0
- package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +1 -1
- package/dist/_chunks/use-direction-D6rvvG9G.js.map +1 -1
- package/dist/_chunks/use-persistent-state-i23OWy6G.js +24 -0
- package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +1 -0
- package/dist/_chunks/{warning-stack-CeRihME9.js → warning-stack-CDH9TudY.js} +2 -2
- package/dist/_chunks/{warning-stack-CeRihME9.js.map → warning-stack-CDH9TudY.js.map} +1 -1
- package/dist/_chunks/{workflow-map-D3MvrsZV.js → workflow-map-BeKe23uw.js} +3 -3
- package/dist/_chunks/{workflow-map-D3MvrsZV.js.map → workflow-map-BeKe23uw.js.map} +1 -1
- package/dist/agent-catalog.json +1 -1
- package/dist/components/_shared/use-debounced-callback.d.ts +1 -5
- package/dist/components/_shared/use-debounced-callback.d.ts.map +1 -1
- package/dist/components/_shared/use-direction.d.ts +1 -18
- package/dist/components/_shared/use-direction.d.ts.map +1 -1
- package/dist/components/_shared/use-focus-trap.d.ts +1 -31
- package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/carousel/carousel.d.ts.map +1 -1
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/chat-input/chat-input.d.ts.map +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/command-palette.d.ts +1 -1
- package/dist/components/copy-field/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/icon-button-group/icon-button-group.d.ts +14 -14
- package/dist/components/list/index.js +1 -1
- package/dist/components/list/list.d.ts.map +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/message-tray/message-tray.d.ts.map +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/multi-select/multi-select.d.ts.map +1 -1
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/number-input/number-input.d.ts.map +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts.map +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/public-header/public-header.d.ts +1 -1
- package/dist/components/public-header/public-header.d.ts.map +1 -1
- package/dist/components/radio-group/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/sidebar/index.js +8 -7
- package/dist/components/sidebar/index.js.map +1 -1
- package/dist/components/sidebar/sidebar.d.ts +1 -1
- package/dist/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +98 -15
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-debounced-callback.d.ts +19 -0
- package/dist/hooks/use-debounced-callback.d.ts.map +1 -0
- package/dist/hooks/use-debounced-value.d.ts +16 -0
- package/dist/hooks/use-debounced-value.d.ts.map +1 -0
- package/dist/hooks/use-direction.d.ts +19 -0
- package/dist/hooks/use-direction.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +32 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +13 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/hooks/use-persistent-state.d.ts +16 -0
- package/dist/hooks/use-persistent-state.d.ts.map +1 -0
- package/dist/index.js +493 -492
- package/dist/index.js.map +1 -1
- 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 +4 -2
- package/dist/_chunks/ai-prompt-input-DEiQwIMn.js.map +0 -1
- package/dist/_chunks/alert-pgdXrEO5.js.map +0 -1
- package/dist/_chunks/autocomplete-mOg7WLOh.js.map +0 -1
- package/dist/_chunks/chat-input-UK-bXU7u.js.map +0 -1
- package/dist/_chunks/checkbox-D5EHnB14.js.map +0 -1
- package/dist/_chunks/checkbox-group-Qkm3Rg1S.js +0 -208
- package/dist/_chunks/checkbox-group-Qkm3Rg1S.js.map +0 -1
- package/dist/_chunks/collapsible-CuxUBoHJ.js.map +0 -1
- package/dist/_chunks/combobox-D5tWe0t_.js.map +0 -1
- package/dist/_chunks/copy-field-BCHAZ8QV.js.map +0 -1
- package/dist/_chunks/date-range-picker-C2hRu_Ke.js.map +0 -1
- package/dist/_chunks/date-time-picker-B67mPZmP.js.map +0 -1
- package/dist/_chunks/dialog-DRp6Dejy.js.map +0 -1
- package/dist/_chunks/dropdown-menu-dyV7gHh_.js.map +0 -1
- package/dist/_chunks/freemium-paywall-BTEiVkes.js.map +0 -1
- package/dist/_chunks/list-DcjV0m5B.js.map +0 -1
- package/dist/_chunks/message-tray-Fsend-du.js.map +0 -1
- package/dist/_chunks/multi-select-DooDzQIp.js.map +0 -1
- package/dist/_chunks/navigation-menu-DdufF-_4.js.map +0 -1
- package/dist/_chunks/notification-tray-C3dYdLAF.js.map +0 -1
- package/dist/_chunks/number-input-DH00o0DN.js.map +0 -1
- package/dist/_chunks/otp-input-BBXYvLx5.js.map +0 -1
- package/dist/_chunks/pagination-F1ei4khE.js.map +0 -1
- package/dist/_chunks/public-header.agent-sDi9N9su.js.map +0 -1
- package/dist/_chunks/sidebar-D8Lq065m.js.map +0 -1
|
@@ -2,9 +2,9 @@ import { jsx as d, jsxs as D } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as g, useContext as E, useRef as b, useState as S, useEffect as H, useCallback as M, useMemo as q, createContext as B } from "react";
|
|
3
3
|
import * as u from "@radix-ui/react-accordion";
|
|
4
4
|
import { c as m } from "./index-D2ZczOXr.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { c as F } from "./compose-refs-C0k0tdqF.js";
|
|
6
|
+
import { C as G } from "./chevron-down-BX_NP2Yh.js";
|
|
7
|
+
import { u as J } from "./use-direction-D6rvvG9G.js";
|
|
8
8
|
import { u as K } from "./registry-C9nwlNyL.js";
|
|
9
9
|
const L = {
|
|
10
10
|
id: "accordion",
|
|
@@ -97,7 +97,7 @@ const L = {
|
|
|
97
97
|
].join(" ")
|
|
98
98
|
), V = g(
|
|
99
99
|
({ variant: a = "default", className: t, children: n, id: r, ...p }, h) => {
|
|
100
|
-
const v = b(null), N =
|
|
100
|
+
const v = b(null), N = F(h, v), R = J(v), c = p, A = p.type === "multiple", y = c.value !== void 0, [_, T] = S(
|
|
101
101
|
() => {
|
|
102
102
|
const e = c.defaultValue;
|
|
103
103
|
return e !== void 0 ? e : A ? [] : "";
|
|
@@ -195,7 +195,7 @@ const w = g(
|
|
|
195
195
|
...n,
|
|
196
196
|
children: [
|
|
197
197
|
t,
|
|
198
|
-
/* @__PURE__ */ d(
|
|
198
|
+
/* @__PURE__ */ d(G, { "aria-hidden": "true", className: X() })
|
|
199
199
|
]
|
|
200
200
|
}
|
|
201
201
|
) })
|
|
@@ -225,4 +225,4 @@ export {
|
|
|
225
225
|
w as c,
|
|
226
226
|
L as d
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=accordion-
|
|
228
|
+
//# sourceMappingURL=accordion-CNcodXuO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-DOmxGEWU.js","sources":["../../src/components/accordion/accordion.agent.ts","../../src/components/accordion/accordion.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { AccordionHandle } from './accordion';\n\nexport const accordionAgent: AgentAdapter<AccordionHandle> = {\n id: 'accordion',\n capabilities: ['expand', 'select_single', 'select_multiple'],\n state: {\n openItems: {\n type: 'string[]',\n description:\n 'Ids (values) of currently-expanded items. Single-mode accordions return an array with 0 or 1 entries.',\n read: (handle) => handle.getOpenItems(),\n },\n },\n actions: {\n expand: {\n safety: 'read',\n argsType: '{ itemId: string }',\n description: 'Expand the item with the given value.',\n invoke: (handle, args: { itemId: string }) => {\n handle.expand(args.itemId);\n },\n },\n collapse: {\n safety: 'read',\n argsType: '{ itemId: string }',\n description: 'Collapse the item with the given value.',\n invoke: (handle, args: { itemId: string }) => {\n handle.collapse(args.itemId);\n },\n },\n clear: {\n safety: 'read',\n description:\n 'Collapse all items. Only meaningful for multi-mode accordions; single-mode equivalent to collapsing the active item.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'accordion' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-item-id',\n description: 'Each Accordion.Item emits its value as data-item-id.',\n },\n },\n};\n","import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\nimport { useDirection } from '../_shared/use-direction';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useAgentRegistration } from '../../agent';\nimport { accordionAgent } from './accordion.agent';\n\ntype AccordionVariant = 'default' | 'card' | 'separated';\n\nconst AccordionContext = createContext<{ variant: AccordionVariant }>({\n variant: 'default',\n});\n\nconst accordionVariants = cva('', {\n variants: {\n variant: {\n default: 'ds:divide-y ds:divide-border',\n card: 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n separated: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst accordionItemVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'ds:bg-[var(--card)] ds:border ds:border-[var(--card-border,var(--border))] ds:rounded-[var(--radius-lg)] ds:overflow-hidden',\n separated:\n 'ds:border ds:border-border ds:rounded-[var(--radius-md)] ds:overflow-hidden',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst contentVariants = cva(\n [\n 'ds:overflow-hidden',\n 'ds:data-[state=open]:animate-[accordion-down_calc(var(--animation-duration)*1.5)_var(--ease-out)]',\n 'ds:data-[state=closed]:animate-[accordion-up_calc(var(--animation-duration)*1.5)_var(--ease-in)]',\n ].join(' '),\n);\n\nconst chevronVariants = cva(\n 'ds:ms-auto ds:size-4 ds:shrink-0 ds:transition-transform ds:duration-[calc(var(--animation-duration)*1.5)] ds:ease-[var(--ease-out)] ds:motion-reduce:transition-none ds:group-data-[state=open]:rotate-180',\n);\n\nconst triggerVariants = cva(\n [\n 'ds:group ds:flex ds:w-full ds:items-center ds:[min-block-size:var(--min-target-size)]',\n 'ds:py-[var(--spacing-md)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:text-start ds:font-medium ds:hover:underline',\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 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:transition-all ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n ].join(' '),\n);\n\ntype PrimitiveSingleProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n> & {\n type: 'single';\n};\ntype PrimitiveMultipleProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n> & {\n type: 'multiple';\n};\n\nexport type AccordionProps = (PrimitiveSingleProps | PrimitiveMultipleProps) &\n VariantProps<typeof accordionVariants>;\n\n// Curated agent-readiness handle — see accordion.agent.ts.\nexport interface AccordionHandle {\n getOpenItems: () => string[];\n expand: (itemId: string) => void;\n collapse: (itemId: string) => void;\n clear: () => void;\n}\n\nexport type AccordionItemProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Item\n> &\n VariantProps<typeof accordionItemVariants>;\n\nexport type AccordionTriggerProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n>;\n\nexport type AccordionContentProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Content\n>;\n\nconst AccordionRoot = forwardRef<HTMLDivElement, AccordionProps>(\n ({ variant = 'default', className, children, id, ...props }, ref) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, rootRef);\n const dir = useDirection(rootRef);\n\n // Mirror Radix's controlled/uncontrolled value into local state so the\n // agent handle can read live state and synthesise updates.\n const accordionProps = props as ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n >;\n const accordionType = (props as { type?: 'single' | 'multiple' }).type;\n const isMultiple = accordionType === 'multiple';\n const isValueControlled =\n (accordionProps as { value?: unknown }).value !== undefined;\n\n const [internalValue, setInternalValue] = useState<string | string[]>(\n () => {\n const dv = (accordionProps as { defaultValue?: string | string[] })\n .defaultValue;\n if (dv !== undefined) return dv;\n return isMultiple ? [] : '';\n },\n );\n\n const controlledValue = (accordionProps as { value?: string | string[] })\n .value;\n const currentValue = isValueControlled\n ? (controlledValue as string | string[])\n : internalValue;\n const valueRef = useRef<string | string[]>(currentValue);\n useEffect(() => {\n valueRef.current = currentValue;\n }, [currentValue]);\n\n const onValueChange = (\n accordionProps as { onValueChange?: (next: string | string[]) => void }\n ).onValueChange;\n const commitValue = useCallback(\n (next: string | string[]) => {\n if (!isValueControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isValueControlled, onValueChange],\n );\n\n const handle = useMemo<AccordionHandle>(\n () => ({\n getOpenItems: () => {\n const v = valueRef.current;\n if (Array.isArray(v)) return [...v];\n return v ? [v] : [];\n },\n expand: (itemId: string) => {\n const v = valueRef.current;\n if (Array.isArray(v)) {\n if (v.includes(itemId)) return;\n commitValue([...v, itemId]);\n } else {\n if (v === itemId) return;\n commitValue(itemId);\n }\n },\n collapse: (itemId: string) => {\n const v = valueRef.current;\n if (Array.isArray(v)) {\n if (!v.includes(itemId)) return;\n commitValue(v.filter((x) => x !== itemId));\n } else if (v === itemId) {\n commitValue('');\n }\n },\n clear: () => {\n const v = valueRef.current;\n if (Array.isArray(v)) commitValue([]);\n else commitValue('');\n },\n }),\n [commitValue],\n );\n useAgentRegistration(accordionAgent, handle, id);\n\n // Bridge controlled/uncontrolled into Radix as a controlled root so our\n // internal state drives the primitive. Cast at construction because Radix's\n // Root is a discriminated union on `type` that TS can't narrow from `isMultiple`.\n const radixControlProps = (\n isMultiple\n ? {\n value: Array.isArray(currentValue) ? currentValue : [],\n onValueChange: (next: string[]) => commitValue(next),\n }\n : {\n value: typeof currentValue === 'string' ? currentValue : '',\n onValueChange: (next: string) => commitValue(next),\n }\n ) as ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\n\n const {\n value: _omittedValue,\n defaultValue: _omittedDefault,\n onValueChange: _omittedOnChange,\n ...passthrough\n } = accordionProps as ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n > & {\n value?: unknown;\n defaultValue?: unknown;\n onValueChange?: unknown;\n };\n\n return (\n <AccordionContext.Provider value={{ variant: variant ?? 'default' }}>\n <AccordionPrimitive.Root\n ref={composedRef}\n dir={dir}\n id={id}\n data-component=\"accordion\"\n data-component-id={id}\n className={accordionVariants({ variant, className })}\n {...({\n ...passthrough,\n ...radixControlProps,\n } as ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>)}\n >\n {children}\n </AccordionPrimitive.Root>\n </AccordionContext.Provider>\n );\n },\n);\nAccordionRoot.displayName = 'Accordion';\n\nconst AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ variant: variantProp, className, children, ...props }, ref) => {\n const { variant: ctxVariant } = useContext(AccordionContext);\n const variant = variantProp ?? ctxVariant;\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={accordionItemVariants({ variant, className })}\n {...props}\n >\n {children}\n </AccordionPrimitive.Item>\n );\n },\n);\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = forwardRef<HTMLButtonElement, AccordionTriggerProps>(\n ({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"ds:flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={triggerVariants({ className })}\n {...props}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" className={chevronVariants()} />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n ),\n);\nAccordionTrigger.displayName = 'AccordionTrigger';\n\nconst AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(\n ({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={contentVariants({ className })}\n {...props}\n >\n <div className=\"ds:pb-[var(--spacing-md)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]\">\n {children}\n </div>\n </AccordionPrimitive.Content>\n ),\n);\nAccordionContent.displayName = 'AccordionContent';\n\nexport const Accordion = Object.assign(AccordionRoot, {\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n});\n\nexport { AccordionItem, AccordionTrigger, AccordionContent };\n"],"names":["accordionAgent","handle","args","AccordionContext","createContext","accordionVariants","cva","accordionItemVariants","contentVariants","chevronVariants","triggerVariants","AccordionRoot","forwardRef","variant","className","children","id","props","ref","rootRef","useRef","composedRef","composeRefs","dir","useDirection","accordionProps","isMultiple","isValueControlled","internalValue","setInternalValue","useState","dv","controlledValue","currentValue","valueRef","useEffect","onValueChange","commitValue","useCallback","next","useMemo","v","itemId","x","useAgentRegistration","radixControlProps","_omittedValue","_omittedDefault","_omittedOnChange","passthrough","jsx","AccordionPrimitive","AccordionItem","variantProp","ctxVariant","useContext","AccordionTrigger","jsxs","ChevronDown","AccordionContent","Accordion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion-CNcodXuO.js","sources":["../../src/components/accordion/accordion.agent.ts","../../src/components/accordion/accordion.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { AccordionHandle } from './accordion';\n\nexport const accordionAgent: AgentAdapter<AccordionHandle> = {\n id: 'accordion',\n capabilities: ['expand', 'select_single', 'select_multiple'],\n state: {\n openItems: {\n type: 'string[]',\n description:\n 'Ids (values) of currently-expanded items. Single-mode accordions return an array with 0 or 1 entries.',\n read: (handle) => handle.getOpenItems(),\n },\n },\n actions: {\n expand: {\n safety: 'read',\n argsType: '{ itemId: string }',\n description: 'Expand the item with the given value.',\n invoke: (handle, args: { itemId: string }) => {\n handle.expand(args.itemId);\n },\n },\n collapse: {\n safety: 'read',\n argsType: '{ itemId: string }',\n description: 'Collapse the item with the given value.',\n invoke: (handle, args: { itemId: string }) => {\n handle.collapse(args.itemId);\n },\n },\n clear: {\n safety: 'read',\n description:\n 'Collapse all items. Only meaningful for multi-mode accordions; single-mode equivalent to collapsing the active item.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'accordion' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-item-id',\n description: 'Each Accordion.Item emits its value as data-item-id.',\n },\n },\n};\n","import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\nimport { useDirection } from '../_shared/use-direction';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useAgentRegistration } from '../../agent';\nimport { accordionAgent } from './accordion.agent';\n\ntype AccordionVariant = 'default' | 'card' | 'separated';\n\nconst AccordionContext = createContext<{ variant: AccordionVariant }>({\n variant: 'default',\n});\n\nconst accordionVariants = cva('', {\n variants: {\n variant: {\n default: 'ds:divide-y ds:divide-border',\n card: 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n separated: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst accordionItemVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'ds:bg-[var(--card)] ds:border ds:border-[var(--card-border,var(--border))] ds:rounded-[var(--radius-lg)] ds:overflow-hidden',\n separated:\n 'ds:border ds:border-border ds:rounded-[var(--radius-md)] ds:overflow-hidden',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst contentVariants = cva(\n [\n 'ds:overflow-hidden',\n 'ds:data-[state=open]:animate-[accordion-down_calc(var(--animation-duration)*1.5)_var(--ease-out)]',\n 'ds:data-[state=closed]:animate-[accordion-up_calc(var(--animation-duration)*1.5)_var(--ease-in)]',\n ].join(' '),\n);\n\nconst chevronVariants = cva(\n 'ds:ms-auto ds:size-4 ds:shrink-0 ds:transition-transform ds:duration-[calc(var(--animation-duration)*1.5)] ds:ease-[var(--ease-out)] ds:motion-reduce:transition-none ds:group-data-[state=open]:rotate-180',\n);\n\nconst triggerVariants = cva(\n [\n 'ds:group ds:flex ds:w-full ds:items-center ds:[min-block-size:var(--min-target-size)]',\n 'ds:py-[var(--spacing-md)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:text-start ds:font-medium ds:hover:underline',\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 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:transition-all ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n ].join(' '),\n);\n\ntype PrimitiveSingleProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n> & {\n type: 'single';\n};\ntype PrimitiveMultipleProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n> & {\n type: 'multiple';\n};\n\nexport type AccordionProps = (PrimitiveSingleProps | PrimitiveMultipleProps) &\n VariantProps<typeof accordionVariants>;\n\n// Curated agent-readiness handle — see accordion.agent.ts.\nexport interface AccordionHandle {\n getOpenItems: () => string[];\n expand: (itemId: string) => void;\n collapse: (itemId: string) => void;\n clear: () => void;\n}\n\nexport type AccordionItemProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Item\n> &\n VariantProps<typeof accordionItemVariants>;\n\nexport type AccordionTriggerProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n>;\n\nexport type AccordionContentProps = ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Content\n>;\n\nconst AccordionRoot = forwardRef<HTMLDivElement, AccordionProps>(\n ({ variant = 'default', className, children, id, ...props }, ref) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, rootRef);\n const dir = useDirection(rootRef);\n\n // Mirror Radix's controlled/uncontrolled value into local state so the\n // agent handle can read live state and synthesise updates.\n const accordionProps = props as ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n >;\n const accordionType = (props as { type?: 'single' | 'multiple' }).type;\n const isMultiple = accordionType === 'multiple';\n const isValueControlled =\n (accordionProps as { value?: unknown }).value !== undefined;\n\n const [internalValue, setInternalValue] = useState<string | string[]>(\n () => {\n const dv = (accordionProps as { defaultValue?: string | string[] })\n .defaultValue;\n if (dv !== undefined) return dv;\n return isMultiple ? [] : '';\n },\n );\n\n const controlledValue = (accordionProps as { value?: string | string[] })\n .value;\n const currentValue = isValueControlled\n ? (controlledValue as string | string[])\n : internalValue;\n const valueRef = useRef<string | string[]>(currentValue);\n useEffect(() => {\n valueRef.current = currentValue;\n }, [currentValue]);\n\n const onValueChange = (\n accordionProps as { onValueChange?: (next: string | string[]) => void }\n ).onValueChange;\n const commitValue = useCallback(\n (next: string | string[]) => {\n if (!isValueControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isValueControlled, onValueChange],\n );\n\n const handle = useMemo<AccordionHandle>(\n () => ({\n getOpenItems: () => {\n const v = valueRef.current;\n if (Array.isArray(v)) return [...v];\n return v ? [v] : [];\n },\n expand: (itemId: string) => {\n const v = valueRef.current;\n if (Array.isArray(v)) {\n if (v.includes(itemId)) return;\n commitValue([...v, itemId]);\n } else {\n if (v === itemId) return;\n commitValue(itemId);\n }\n },\n collapse: (itemId: string) => {\n const v = valueRef.current;\n if (Array.isArray(v)) {\n if (!v.includes(itemId)) return;\n commitValue(v.filter((x) => x !== itemId));\n } else if (v === itemId) {\n commitValue('');\n }\n },\n clear: () => {\n const v = valueRef.current;\n if (Array.isArray(v)) commitValue([]);\n else commitValue('');\n },\n }),\n [commitValue],\n );\n useAgentRegistration(accordionAgent, handle, id);\n\n // Bridge controlled/uncontrolled into Radix as a controlled root so our\n // internal state drives the primitive. Cast at construction because Radix's\n // Root is a discriminated union on `type` that TS can't narrow from `isMultiple`.\n const radixControlProps = (\n isMultiple\n ? {\n value: Array.isArray(currentValue) ? currentValue : [],\n onValueChange: (next: string[]) => commitValue(next),\n }\n : {\n value: typeof currentValue === 'string' ? currentValue : '',\n onValueChange: (next: string) => commitValue(next),\n }\n ) as ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\n\n const {\n value: _omittedValue,\n defaultValue: _omittedDefault,\n onValueChange: _omittedOnChange,\n ...passthrough\n } = accordionProps as ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n > & {\n value?: unknown;\n defaultValue?: unknown;\n onValueChange?: unknown;\n };\n\n return (\n <AccordionContext.Provider value={{ variant: variant ?? 'default' }}>\n <AccordionPrimitive.Root\n ref={composedRef}\n dir={dir}\n id={id}\n data-component=\"accordion\"\n data-component-id={id}\n className={accordionVariants({ variant, className })}\n {...({\n ...passthrough,\n ...radixControlProps,\n } as ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>)}\n >\n {children}\n </AccordionPrimitive.Root>\n </AccordionContext.Provider>\n );\n },\n);\nAccordionRoot.displayName = 'Accordion';\n\nconst AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ variant: variantProp, className, children, ...props }, ref) => {\n const { variant: ctxVariant } = useContext(AccordionContext);\n const variant = variantProp ?? ctxVariant;\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={accordionItemVariants({ variant, className })}\n {...props}\n >\n {children}\n </AccordionPrimitive.Item>\n );\n },\n);\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = forwardRef<HTMLButtonElement, AccordionTriggerProps>(\n ({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"ds:flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={triggerVariants({ className })}\n {...props}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" className={chevronVariants()} />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n ),\n);\nAccordionTrigger.displayName = 'AccordionTrigger';\n\nconst AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(\n ({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={contentVariants({ className })}\n {...props}\n >\n <div className=\"ds:pb-[var(--spacing-md)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]\">\n {children}\n </div>\n </AccordionPrimitive.Content>\n ),\n);\nAccordionContent.displayName = 'AccordionContent';\n\nexport const Accordion = Object.assign(AccordionRoot, {\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n});\n\nexport { AccordionItem, AccordionTrigger, AccordionContent };\n"],"names":["accordionAgent","handle","args","AccordionContext","createContext","accordionVariants","cva","accordionItemVariants","contentVariants","chevronVariants","triggerVariants","AccordionRoot","forwardRef","variant","className","children","id","props","ref","rootRef","useRef","composedRef","composeRefs","dir","useDirection","accordionProps","isMultiple","isValueControlled","internalValue","setInternalValue","useState","dv","controlledValue","currentValue","valueRef","useEffect","onValueChange","commitValue","useCallback","next","useMemo","v","itemId","x","useAgentRegistration","radixControlProps","_omittedValue","_omittedDefault","_omittedOnChange","passthrough","jsx","AccordionPrimitive","AccordionItem","variantProp","ctxVariant","useContext","AccordionTrigger","jsxs","ChevronDown","AccordionContent","Accordion"],"mappings":"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"}
|