@alfadocs/ui-kit-debug 1.110.0 → 1.112.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.
Files changed (174) hide show
  1. package/dist/_chunks/{anamnesis-summary-rows-QhbDdY7b.js → anamnesis-summary-rows-BrTx7diS.js} +2 -2
  2. package/dist/_chunks/{anamnesis-summary-rows-QhbDdY7b.js.map → anamnesis-summary-rows-BrTx7diS.js.map} +1 -1
  3. package/dist/_chunks/{calculator-dialog-BsVVb8cT.js → calculator-dialog-D4TyJwqy.js} +2 -2
  4. package/dist/_chunks/{calculator-dialog-BsVVb8cT.js.map → calculator-dialog-D4TyJwqy.js.map} +1 -1
  5. package/dist/_chunks/{calendar-appointment-editor-dialog-D8DblVjW.js → calendar-appointment-editor-dialog-Oc3Df8O3.js} +4 -4
  6. package/dist/_chunks/{calendar-appointment-editor-dialog-D8DblVjW.js.map → calendar-appointment-editor-dialog-Oc3Df8O3.js.map} +1 -1
  7. package/dist/_chunks/data-grid.agent-CASyEAnb.js +1773 -0
  8. package/dist/_chunks/data-grid.agent-CASyEAnb.js.map +1 -0
  9. package/dist/_chunks/{dialog-C7RWaH08.js → dialog-BTjSQjdY.js} +17 -16
  10. package/dist/_chunks/dialog-BTjSQjdY.js.map +1 -0
  11. package/dist/_chunks/{file-manager-BDKe59sg.js → file-manager-CVxBE4yy.js} +2 -2
  12. package/dist/_chunks/{file-manager-BDKe59sg.js.map → file-manager-CVxBE4yy.js.map} +1 -1
  13. package/dist/_chunks/{help-me-write-templates-YmceSxf5.js → help-me-write-templates-CWxgjDZl.js} +2 -2
  14. package/dist/_chunks/{help-me-write-templates-YmceSxf5.js.map → help-me-write-templates-CWxgjDZl.js.map} +1 -1
  15. package/dist/_chunks/{kit-extensions-BOnTM4Yf.js → kit-extensions-VaJ-u44J.js} +47 -22
  16. package/dist/_chunks/kit-extensions-VaJ-u44J.js.map +1 -0
  17. package/dist/_chunks/muscle-scheme-C2B6v14o.js +3276 -0
  18. package/dist/_chunks/muscle-scheme-C2B6v14o.js.map +1 -0
  19. package/dist/_chunks/{notes-panel-SlzUL8in.js → notes-panel-Cz621DWV.js} +3 -3
  20. package/dist/_chunks/{notes-panel-SlzUL8in.js.map → notes-panel-Cz621DWV.js.map} +1 -1
  21. package/dist/_chunks/{radiograph-panel.agent-0ngF2sGS.js → radiograph-panel.agent-CXah49KM.js} +2 -2
  22. package/dist/_chunks/{radiograph-panel.agent-0ngF2sGS.js.map → radiograph-panel.agent-CXah49KM.js.map} +1 -1
  23. package/dist/_chunks/{rich-text-editor-C3nANKZt.js → rich-text-editor-BLS2cK-u.js} +2 -2
  24. package/dist/_chunks/{rich-text-editor-C3nANKZt.js.map → rich-text-editor-BLS2cK-u.js.map} +1 -1
  25. package/dist/_chunks/{signature-request-opW0fQ5P.js → signature-request-DJwdPji_.js} +2 -2
  26. package/dist/_chunks/{signature-request-opW0fQ5P.js.map → signature-request-DJwdPji_.js.map} +1 -1
  27. package/dist/_chunks/{task-editor-CmXcj6cC.js → task-editor-jqRf2JP6.js} +2 -2
  28. package/dist/_chunks/{task-editor-CmXcj6cC.js.map → task-editor-jqRf2JP6.js.map} +1 -1
  29. package/dist/_chunks/{widget-picker-DNYIqRT1.js → widget-picker-U4JsEhQE.js} +2 -2
  30. package/dist/_chunks/{widget-picker-DNYIqRT1.js.map → widget-picker-U4JsEhQE.js.map} +1 -1
  31. package/dist/ag-grid.css +0 -10
  32. package/dist/agent-catalog.json +66 -9
  33. package/dist/components/calculator-dialog/index.js +1 -1
  34. package/dist/components/data-grid/data-grid.agent.d.ts +3 -0
  35. package/dist/components/data-grid/data-grid.agent.d.ts.map +1 -0
  36. package/dist/components/data-grid/data-grid.d.ts +28 -0
  37. package/dist/components/data-grid/data-grid.d.ts.map +1 -0
  38. package/dist/components/data-grid/index.d.ts +4 -0
  39. package/dist/components/data-grid/index.d.ts.map +1 -0
  40. package/dist/components/data-grid/index.js +6 -0
  41. package/dist/components/data-grid/index.js.map +1 -0
  42. package/dist/components/dialog/dialog.d.ts +2 -2
  43. package/dist/components/dialog/dialog.d.ts.map +1 -1
  44. package/dist/components/dialog/index.js +1 -1
  45. package/dist/components/file-manager/index.js +1 -1
  46. package/dist/components/index.d.ts +1 -0
  47. package/dist/components/index.d.ts.map +1 -1
  48. package/dist/components/muscle-scheme/index.d.ts +3 -3
  49. package/dist/components/muscle-scheme/index.d.ts.map +1 -1
  50. package/dist/components/muscle-scheme/index.js +14 -12
  51. package/dist/components/muscle-scheme/muscle-fibres.d.ts +3 -0
  52. package/dist/components/muscle-scheme/muscle-fibres.d.ts.map +1 -0
  53. package/dist/components/muscle-scheme/muscle-outlines.d.ts +19 -0
  54. package/dist/components/muscle-scheme/muscle-outlines.d.ts.map +1 -0
  55. package/dist/components/muscle-scheme/muscle-scheme-data.d.ts +96 -2
  56. package/dist/components/muscle-scheme/muscle-scheme-data.d.ts.map +1 -1
  57. package/dist/components/muscle-scheme/muscle-scheme.agent.d.ts.map +1 -1
  58. package/dist/components/muscle-scheme/muscle-scheme.d.ts +39 -3
  59. package/dist/components/muscle-scheme/muscle-scheme.d.ts.map +1 -1
  60. package/dist/components/muscle-scheme/reproductive-female.d.ts +3 -0
  61. package/dist/components/muscle-scheme/reproductive-female.d.ts.map +1 -0
  62. package/dist/components/muscle-scheme/reproductive-male.d.ts +3 -0
  63. package/dist/components/muscle-scheme/reproductive-male.d.ts.map +1 -0
  64. package/dist/components/notes-panel/index.js +1 -1
  65. package/dist/components/radiograph-panel/index.js +1 -1
  66. package/dist/components/rich-text-editor/index.js +2 -2
  67. package/dist/components/rich-text-editor/kit-extensions.d.ts.map +1 -1
  68. package/dist/components/task-editor/index.js +1 -1
  69. package/dist/components/widget-picker/index.js +1 -1
  70. package/dist/core.css +1 -1
  71. package/dist/host-compat.css +9 -1
  72. package/dist/host-legacy.css +17 -1
  73. package/dist/i18n/locales/ar.d.ts +140 -0
  74. package/dist/i18n/locales/ar.d.ts.map +1 -1
  75. package/dist/i18n/locales/ar.js +100 -2
  76. package/dist/i18n/locales/ar.js.map +1 -1
  77. package/dist/i18n/locales/de.d.ts +140 -0
  78. package/dist/i18n/locales/de.d.ts.map +1 -1
  79. package/dist/i18n/locales/de.js +91 -2
  80. package/dist/i18n/locales/de.js.map +1 -1
  81. package/dist/i18n/locales/el.d.ts +140 -0
  82. package/dist/i18n/locales/el.d.ts.map +1 -1
  83. package/dist/i18n/locales/el.js +106 -2
  84. package/dist/i18n/locales/el.js.map +1 -1
  85. package/dist/i18n/locales/en.d.ts +140 -0
  86. package/dist/i18n/locales/en.d.ts.map +1 -1
  87. package/dist/i18n/locales/en.js +82 -2
  88. package/dist/i18n/locales/en.js.map +1 -1
  89. package/dist/i18n/locales/es.d.ts +140 -0
  90. package/dist/i18n/locales/es.d.ts.map +1 -1
  91. package/dist/i18n/locales/es.js +97 -2
  92. package/dist/i18n/locales/es.js.map +1 -1
  93. package/dist/i18n/locales/fr.d.ts +140 -0
  94. package/dist/i18n/locales/fr.d.ts.map +1 -1
  95. package/dist/i18n/locales/fr.js +88 -2
  96. package/dist/i18n/locales/fr.js.map +1 -1
  97. package/dist/i18n/locales/hi.d.ts +140 -0
  98. package/dist/i18n/locales/hi.d.ts.map +1 -1
  99. package/dist/i18n/locales/hi.js +85 -2
  100. package/dist/i18n/locales/hi.js.map +1 -1
  101. package/dist/i18n/locales/it.d.ts +140 -0
  102. package/dist/i18n/locales/it.d.ts.map +1 -1
  103. package/dist/i18n/locales/it.js +100 -2
  104. package/dist/i18n/locales/it.js.map +1 -1
  105. package/dist/i18n/locales/ja.d.ts +140 -0
  106. package/dist/i18n/locales/ja.d.ts.map +1 -1
  107. package/dist/i18n/locales/ja.js +58 -2
  108. package/dist/i18n/locales/ja.js.map +1 -1
  109. package/dist/i18n/locales/nl.d.ts +140 -0
  110. package/dist/i18n/locales/nl.d.ts.map +1 -1
  111. package/dist/i18n/locales/nl.js +82 -2
  112. package/dist/i18n/locales/nl.js.map +1 -1
  113. package/dist/i18n/locales/pl.d.ts +140 -0
  114. package/dist/i18n/locales/pl.d.ts.map +1 -1
  115. package/dist/i18n/locales/pl.js +106 -2
  116. package/dist/i18n/locales/pl.js.map +1 -1
  117. package/dist/i18n/locales/pt.d.ts +140 -0
  118. package/dist/i18n/locales/pt.d.ts.map +1 -1
  119. package/dist/i18n/locales/pt.js +97 -2
  120. package/dist/i18n/locales/pt.js.map +1 -1
  121. package/dist/i18n/locales/ro.d.ts +140 -0
  122. package/dist/i18n/locales/ro.d.ts.map +1 -1
  123. package/dist/i18n/locales/ro.js +97 -2
  124. package/dist/i18n/locales/ro.js.map +1 -1
  125. package/dist/i18n/locales/ru.d.ts +140 -0
  126. package/dist/i18n/locales/ru.d.ts.map +1 -1
  127. package/dist/i18n/locales/ru.js +121 -2
  128. package/dist/i18n/locales/ru.js.map +1 -1
  129. package/dist/i18n/locales/sq.d.ts +140 -0
  130. package/dist/i18n/locales/sq.d.ts.map +1 -1
  131. package/dist/i18n/locales/sq.js +100 -2
  132. package/dist/i18n/locales/sq.js.map +1 -1
  133. package/dist/i18n/locales/sv.d.ts +140 -0
  134. package/dist/i18n/locales/sv.d.ts.map +1 -1
  135. package/dist/i18n/locales/sv.js +76 -2
  136. package/dist/i18n/locales/sv.js.map +1 -1
  137. package/dist/i18n/locales/tr.d.ts +140 -0
  138. package/dist/i18n/locales/tr.d.ts.map +1 -1
  139. package/dist/i18n/locales/tr.js +76 -2
  140. package/dist/i18n/locales/tr.js.map +1 -1
  141. package/dist/i18n/locales/zh.d.ts +140 -0
  142. package/dist/i18n/locales/zh.d.ts.map +1 -1
  143. package/dist/i18n/locales/zh.js +58 -2
  144. package/dist/i18n/locales/zh.js.map +1 -1
  145. package/dist/index.js +984 -979
  146. package/dist/index.js.map +1 -1
  147. package/dist/locales/ar.json +142 -2
  148. package/dist/locales/de.json +142 -2
  149. package/dist/locales/el.json +142 -2
  150. package/dist/locales/en.json +142 -2
  151. package/dist/locales/es.json +142 -2
  152. package/dist/locales/fr.json +142 -2
  153. package/dist/locales/hi.json +142 -2
  154. package/dist/locales/it.json +142 -2
  155. package/dist/locales/ja.json +142 -2
  156. package/dist/locales/nl.json +142 -2
  157. package/dist/locales/pl.json +142 -2
  158. package/dist/locales/pt.json +142 -2
  159. package/dist/locales/ro.json +142 -2
  160. package/dist/locales/ru.json +142 -2
  161. package/dist/locales/sq.json +142 -2
  162. package/dist/locales/sv.json +142 -2
  163. package/dist/locales/tr.json +142 -2
  164. package/dist/locales/zh.json +142 -2
  165. package/dist/patterns/anamnesis/index.js +1 -1
  166. package/dist/patterns/calendar/index.js +1 -1
  167. package/dist/patterns/help-me-write-templates/index.js +1 -1
  168. package/dist/patterns/signature-request/index.js +1 -1
  169. package/dist/tokens.css +1 -6
  170. package/package.json +6 -1
  171. package/dist/_chunks/dialog-C7RWaH08.js.map +0 -1
  172. package/dist/_chunks/kit-extensions-BOnTM4Yf.js.map +0 -1
  173. package/dist/_chunks/muscle-scheme-CznhrQlo.js +0 -1706
  174. package/dist/_chunks/muscle-scheme-CznhrQlo.js.map +0 -1
@@ -2,7 +2,7 @@ import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
2
  import { forwardRef as _, useState as p, useEffect as N, useMemo as v, useCallback as j, useImperativeHandle as B } from "react";
3
3
  import { c as C } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as H } from "react-i18next";
5
- import { D as u } from "./dialog-C7RWaH08.js";
5
+ import { D as u } from "./dialog-BTjSQjdY.js";
6
6
  import { S as A } from "./state-backed-text-input-DVETOhSS.js";
7
7
  import { B as I } from "./badge-BUk4RjTS.js";
8
8
  import { u as D } from "./registry-DvAUVLHh.js";
@@ -213,4 +213,4 @@ export {
213
213
  E as W,
214
214
  K as w
215
215
  };
216
- //# sourceMappingURL=widget-picker-DNYIqRT1.js.map
216
+ //# sourceMappingURL=widget-picker-U4JsEhQE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget-picker-DNYIqRT1.js","sources":["../../src/components/widget-picker/widget-picker.agent.ts","../../src/components/widget-picker/widget-picker.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WidgetPickerHandle } from './widget-picker';\n\nexport const widgetPickerAgent: AgentAdapter<WidgetPickerHandle> = {\n id: 'widget-picker',\n capabilities: ['pick'],\n state: {\n open: {\n type: 'boolean',\n descriptionKey: 'ui.agent.widgetPicker.state.open',\n description: 'Whether the picker dialog is currently open.',\n read: (handle) => handle.getPickerState().open,\n },\n items: {\n type: '{ id: string, disabled: boolean }[]',\n descriptionKey: 'ui.agent.widgetPicker.state.items',\n description:\n 'Widget-type ids on offer and whether each is pickable. Ids only — titles are host-app strings.',\n read: (handle) => handle.getPickerState().items,\n },\n },\n actions: {\n pick_widget: {\n // Picking adds a widget to the host dashboard — a write, reversible\n // by removing the widget again.\n safety: 'write',\n argsType: 'id',\n argsSchema: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Widget-type id (see items state).',\n },\n },\n required: ['id'],\n },\n returns: 'boolean (accepted)',\n returnsSchema: {\n type: 'boolean',\n description:\n 'True when the pick was applied; false when the picker is closed, the id is unknown, or the item is disabled.',\n },\n idempotent: false,\n descriptionKey: 'ui.agent.widgetPicker.actions.pickWidget',\n description:\n 'Pick a widget type from the open catalogue. The picker closes and the host adds the widget. Refused while the dialog is closed and for disabled items.',\n invoke: (handle, args: { id: string }) => handle.pick(args.id),\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'widget-picker' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-widget-type-id',\n description: 'Each option tile carries its widget-type id.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* WidgetPicker — \"add a widget\" modal for configurable dashboards. */\n/* */\n/* A Dialog-composed catalogue picker: the consumer supplies the */\n/* available widget types (title/description/icon/category, all */\n/* pre-translated app strings), the kit renders a searchable, grouped */\n/* grid of option tiles and reports the pick. Designed as the add flow */\n/* for `DashboardGrid` (`onRequestAdd` opens it) but generic to any */\n/* pick-one-catalogue surface. Disabled items stay visible with an */\n/* optional badge (e.g. \"Requires reconnect\") so users can discover */\n/* locked capabilities. */\n/* ------------------------------------------------------------------ */\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Search } from 'lucide-react';\nimport { Dialog } from '../dialog';\nimport { StateBackedTextInput } from '../_shared/state-backed-text-input';\nimport { Badge } from '../badge';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { widgetPickerAgent } from './widget-picker.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface WidgetPickerItem {\n /** Stable widget-type id reported via `onPick`. */\n id: string;\n /** Visible name (consumer-translated). */\n title: string;\n /** One-line explanation (consumer-translated). */\n description?: string;\n /** Small illustrative icon. */\n icon?: ReactNode;\n /** Group heading (consumer-translated). Ungrouped items render first. */\n category?: string;\n /** Visible but not pickable. */\n disabled?: boolean;\n /** Short annotation rendered as a badge (e.g. \"Requires reconnect\"). */\n badge?: string;\n}\n\nexport interface WidgetPickerProps {\n /** Controlled visibility. */\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** The catalogue. */\n items: WidgetPickerItem[];\n /**\n * Called with the picked item id; the picker then closes itself via\n * `onOpenChange(false)`.\n */\n onPick: (id: string) => void;\n /** Dialog title. Defaults to the kit's translated \"Add a widget\". */\n title?: string;\n /** Opaque instance id — emitted as `data-component-id` for the agent registry. */\n id?: string;\n}\n\nexport interface WidgetPickerHandle {\n /**\n * Pick an item programmatically. False when the picker is closed, the id\n * is unknown, or the item is disabled.\n */\n pick: (id: string) => boolean;\n getPickerState: () => {\n open: boolean;\n items: Array<{ id: string; disabled: boolean }>;\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst tileVariants = cva(\n [\n 'ds:flex ds:w-full ds:min-h-[var(--min-target-size)] ds:items-start ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-[var(--card)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-md)]',\n 'ds:text-start ds:transition-colors',\n 'ds:hover:bg-muted/10',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:disabled:hover:bg-transparent',\n ].join(' '),\n { variants: {}, defaultVariants: {} },\n);\n\n/* ------------------------------------------------------------------ */\n/* WidgetPicker */\n/* ------------------------------------------------------------------ */\n\nexport const WidgetPicker = forwardRef<WidgetPickerHandle, WidgetPickerProps>(\n ({ open, onOpenChange, items, onPick, title, id }, ref) => {\n const { t } = useTranslation('ui');\n const [query, setQuery] = useState('');\n\n // Clear the search when the picker closes, so the next open starts fresh\n // without a post-open reflow flash.\n useEffect(() => {\n if (!open) setQuery('');\n }, [open]);\n\n const filtered = useMemo(() => {\n const needle = query.trim().toLowerCase();\n if (!needle) return items;\n return items.filter(\n (item) =>\n item.title.toLowerCase().includes(needle) ||\n (item.description ?? '').toLowerCase().includes(needle),\n );\n }, [items, query]);\n\n /* Group by category, preserving first-seen order; ungrouped first. */\n const groups = useMemo(() => {\n const order: Array<{\n category: string | null;\n entries: WidgetPickerItem[];\n }> = [];\n for (const item of filtered) {\n // Treat an empty-string category the same as no category.\n const key = item.category || null;\n let group = order.find((g) => g.category === key);\n if (!group) {\n group = { category: key, entries: [] };\n if (key === null) order.unshift(group);\n else order.push(group);\n }\n group.entries.push(item);\n }\n return order;\n }, [filtered]);\n\n // The list is a tab stop only while it overflows. A callback ref, since\n // the dialog mounts the node on open and unmounts it on close.\n const [listNode, setListNode] = useState<HTMLDivElement | null>(null);\n const [scrollable, setScrollable] = useState(false);\n const [listFocused, setListFocused] = useState(false);\n useEffect(() => {\n if (!listNode) {\n setScrollable(false);\n return undefined;\n }\n const measure = () =>\n setScrollable(listNode.scrollHeight > listNode.clientHeight + 1);\n measure();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(measure);\n observer.observe(listNode);\n for (const child of Array.from(listNode.children)) {\n observer.observe(child);\n }\n return () => observer.disconnect();\n }, [listNode, groups]);\n\n const handlePick = useCallback(\n (itemId: string) => {\n onPick(itemId);\n onOpenChange(false);\n },\n [onPick, onOpenChange],\n );\n\n const agentHandle = useMemo<WidgetPickerHandle>(\n () => ({\n pick(itemId) {\n if (!open) return false;\n const item = items.find((entry) => entry.id === itemId);\n if (!item || item.disabled) return false;\n handlePick(itemId);\n return true;\n },\n getPickerState() {\n return {\n open,\n items: items.map((item) => ({\n id: item.id,\n disabled: Boolean(item.disabled),\n })),\n };\n },\n }),\n [open, items, handlePick],\n );\n useImperativeHandle(ref, () => agentHandle, [agentHandle]);\n useAgentRegistration(widgetPickerAgent, agentHandle, id);\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Content size=\"lg\">\n <div data-component=\"widget-picker\" data-component-id={id}>\n <Dialog.Title>{title ?? t('widgetPicker.title')}</Dialog.Title>\n <Dialog.Description className=\"ds:sr-only\">\n {t('widgetPicker.description')}\n </Dialog.Description>\n <div className=\"ds:mt-[var(--spacing-sm)]\">\n <StateBackedTextInput\n aria-label={t('widgetPicker.searchLabel')}\n placeholder={t('widgetPicker.searchPlaceholder')}\n startAdornment={<Search aria-hidden=\"true\" />}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n />\n </div>\n <div\n ref={setListNode}\n role=\"group\"\n aria-label={t('widgetPicker.listLabel')}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- a tab stop while the list scrolls (an all-disabled list must stay scrollable, axe scrollable-region-focusable) and while focused, so focus never drops to <body>\n tabIndex={scrollable || listFocused ? 0 : undefined}\n onFocus={(event) => {\n if (event.target === event.currentTarget) setListFocused(true);\n }}\n onBlur={(event) => {\n if (event.target === event.currentTarget) setListFocused(false);\n }}\n className=\"ds:mt-[var(--spacing-md)] ds:flex ds:max-h-[60vh] ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto ds:pe-[var(--spacing-xs)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n >\n {groups.length === 0 ? (\n <p\n role=\"status\"\n className=\"ds:py-[var(--spacing-lg)] ds:text-center ds:text-sm ds:text-muted-foreground\"\n >\n {items.length === 0\n ? t('widgetPicker.none')\n : t('widgetPicker.empty')}\n </p>\n ) : (\n groups.map((group) => (\n <section\n key={group.category ?? '__ungrouped__'}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n {group.category ? (\n <h3 className=\"ds:text-xs ds:font-semibold ds:uppercase ds:tracking-wide ds:text-muted-foreground\">\n {group.category}\n </h3>\n ) : null}\n <div className=\"ds:grid ds:gap-[var(--spacing-sm)] ds:sm:grid-cols-2\">\n {group.entries.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handlePick(item.id)}\n className={tileVariants()}\n data-widget-type-id={item.id}\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:mt-[var(--spacing-2xs)] ds:inline-flex ds:size-5 ds:shrink-0 ds:items-center ds:justify-center ds:text-muted-foreground ds:[&_svg]:size-5\"\n >\n {item.icon}\n </span>\n ) : null}\n <span className=\"ds:flex ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <span className=\"ds:truncate ds:text-sm ds:font-medium\">\n {item.title}\n </span>\n {item.badge ? (\n <Badge variant=\"info\" size=\"sm\">\n {item.badge}\n </Badge>\n ) : null}\n </span>\n {item.description ? (\n <span className=\"ds:text-xs ds:text-muted-foreground\">\n {item.description}\n </span>\n ) : null}\n </span>\n </button>\n ))}\n </div>\n </section>\n ))\n )}\n </div>\n </div>\n </Dialog.Content>\n </Dialog.Root>\n );\n },\n);\n\nWidgetPicker.displayName = 'WidgetPicker';\n"],"names":["widgetPickerAgent","handle","args","tileVariants","cva","WidgetPicker","forwardRef","open","onOpenChange","items","onPick","title","id","ref","t","useTranslation","query","setQuery","useState","useEffect","filtered","useMemo","needle","item","groups","order","key","group","g","listNode","setListNode","scrollable","setScrollable","listFocused","setListFocused","measure","observer","child","handlePick","useCallback","itemId","agentHandle","entry","useImperativeHandle","useAgentRegistration","Dialog","jsx","jsxs","StateBackedTextInput","Search","event","Badge"],"mappings":"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"}
1
+ {"version":3,"file":"widget-picker-U4JsEhQE.js","sources":["../../src/components/widget-picker/widget-picker.agent.ts","../../src/components/widget-picker/widget-picker.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WidgetPickerHandle } from './widget-picker';\n\nexport const widgetPickerAgent: AgentAdapter<WidgetPickerHandle> = {\n id: 'widget-picker',\n capabilities: ['pick'],\n state: {\n open: {\n type: 'boolean',\n descriptionKey: 'ui.agent.widgetPicker.state.open',\n description: 'Whether the picker dialog is currently open.',\n read: (handle) => handle.getPickerState().open,\n },\n items: {\n type: '{ id: string, disabled: boolean }[]',\n descriptionKey: 'ui.agent.widgetPicker.state.items',\n description:\n 'Widget-type ids on offer and whether each is pickable. Ids only — titles are host-app strings.',\n read: (handle) => handle.getPickerState().items,\n },\n },\n actions: {\n pick_widget: {\n // Picking adds a widget to the host dashboard — a write, reversible\n // by removing the widget again.\n safety: 'write',\n argsType: 'id',\n argsSchema: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Widget-type id (see items state).',\n },\n },\n required: ['id'],\n },\n returns: 'boolean (accepted)',\n returnsSchema: {\n type: 'boolean',\n description:\n 'True when the pick was applied; false when the picker is closed, the id is unknown, or the item is disabled.',\n },\n idempotent: false,\n descriptionKey: 'ui.agent.widgetPicker.actions.pickWidget',\n description:\n 'Pick a widget type from the open catalogue. The picker closes and the host adds the widget. Refused while the dialog is closed and for disabled items.',\n invoke: (handle, args: { id: string }) => handle.pick(args.id),\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'widget-picker' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-widget-type-id',\n description: 'Each option tile carries its widget-type id.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* WidgetPicker — \"add a widget\" modal for configurable dashboards. */\n/* */\n/* A Dialog-composed catalogue picker: the consumer supplies the */\n/* available widget types (title/description/icon/category, all */\n/* pre-translated app strings), the kit renders a searchable, grouped */\n/* grid of option tiles and reports the pick. Designed as the add flow */\n/* for `DashboardGrid` (`onRequestAdd` opens it) but generic to any */\n/* pick-one-catalogue surface. Disabled items stay visible with an */\n/* optional badge (e.g. \"Requires reconnect\") so users can discover */\n/* locked capabilities. */\n/* ------------------------------------------------------------------ */\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Search } from 'lucide-react';\nimport { Dialog } from '../dialog';\nimport { StateBackedTextInput } from '../_shared/state-backed-text-input';\nimport { Badge } from '../badge';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { widgetPickerAgent } from './widget-picker.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface WidgetPickerItem {\n /** Stable widget-type id reported via `onPick`. */\n id: string;\n /** Visible name (consumer-translated). */\n title: string;\n /** One-line explanation (consumer-translated). */\n description?: string;\n /** Small illustrative icon. */\n icon?: ReactNode;\n /** Group heading (consumer-translated). Ungrouped items render first. */\n category?: string;\n /** Visible but not pickable. */\n disabled?: boolean;\n /** Short annotation rendered as a badge (e.g. \"Requires reconnect\"). */\n badge?: string;\n}\n\nexport interface WidgetPickerProps {\n /** Controlled visibility. */\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** The catalogue. */\n items: WidgetPickerItem[];\n /**\n * Called with the picked item id; the picker then closes itself via\n * `onOpenChange(false)`.\n */\n onPick: (id: string) => void;\n /** Dialog title. Defaults to the kit's translated \"Add a widget\". */\n title?: string;\n /** Opaque instance id — emitted as `data-component-id` for the agent registry. */\n id?: string;\n}\n\nexport interface WidgetPickerHandle {\n /**\n * Pick an item programmatically. False when the picker is closed, the id\n * is unknown, or the item is disabled.\n */\n pick: (id: string) => boolean;\n getPickerState: () => {\n open: boolean;\n items: Array<{ id: string; disabled: boolean }>;\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst tileVariants = cva(\n [\n 'ds:flex ds:w-full ds:min-h-[var(--min-target-size)] ds:items-start ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-[var(--card)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-md)]',\n 'ds:text-start ds:transition-colors',\n 'ds:hover:bg-muted/10',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:disabled:hover:bg-transparent',\n ].join(' '),\n { variants: {}, defaultVariants: {} },\n);\n\n/* ------------------------------------------------------------------ */\n/* WidgetPicker */\n/* ------------------------------------------------------------------ */\n\nexport const WidgetPicker = forwardRef<WidgetPickerHandle, WidgetPickerProps>(\n ({ open, onOpenChange, items, onPick, title, id }, ref) => {\n const { t } = useTranslation('ui');\n const [query, setQuery] = useState('');\n\n // Clear the search when the picker closes, so the next open starts fresh\n // without a post-open reflow flash.\n useEffect(() => {\n if (!open) setQuery('');\n }, [open]);\n\n const filtered = useMemo(() => {\n const needle = query.trim().toLowerCase();\n if (!needle) return items;\n return items.filter(\n (item) =>\n item.title.toLowerCase().includes(needle) ||\n (item.description ?? '').toLowerCase().includes(needle),\n );\n }, [items, query]);\n\n /* Group by category, preserving first-seen order; ungrouped first. */\n const groups = useMemo(() => {\n const order: Array<{\n category: string | null;\n entries: WidgetPickerItem[];\n }> = [];\n for (const item of filtered) {\n // Treat an empty-string category the same as no category.\n const key = item.category || null;\n let group = order.find((g) => g.category === key);\n if (!group) {\n group = { category: key, entries: [] };\n if (key === null) order.unshift(group);\n else order.push(group);\n }\n group.entries.push(item);\n }\n return order;\n }, [filtered]);\n\n // The list is a tab stop only while it overflows. A callback ref, since\n // the dialog mounts the node on open and unmounts it on close.\n const [listNode, setListNode] = useState<HTMLDivElement | null>(null);\n const [scrollable, setScrollable] = useState(false);\n const [listFocused, setListFocused] = useState(false);\n useEffect(() => {\n if (!listNode) {\n setScrollable(false);\n return undefined;\n }\n const measure = () =>\n setScrollable(listNode.scrollHeight > listNode.clientHeight + 1);\n measure();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(measure);\n observer.observe(listNode);\n for (const child of Array.from(listNode.children)) {\n observer.observe(child);\n }\n return () => observer.disconnect();\n }, [listNode, groups]);\n\n const handlePick = useCallback(\n (itemId: string) => {\n onPick(itemId);\n onOpenChange(false);\n },\n [onPick, onOpenChange],\n );\n\n const agentHandle = useMemo<WidgetPickerHandle>(\n () => ({\n pick(itemId) {\n if (!open) return false;\n const item = items.find((entry) => entry.id === itemId);\n if (!item || item.disabled) return false;\n handlePick(itemId);\n return true;\n },\n getPickerState() {\n return {\n open,\n items: items.map((item) => ({\n id: item.id,\n disabled: Boolean(item.disabled),\n })),\n };\n },\n }),\n [open, items, handlePick],\n );\n useImperativeHandle(ref, () => agentHandle, [agentHandle]);\n useAgentRegistration(widgetPickerAgent, agentHandle, id);\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Content size=\"lg\">\n <div data-component=\"widget-picker\" data-component-id={id}>\n <Dialog.Title>{title ?? t('widgetPicker.title')}</Dialog.Title>\n <Dialog.Description className=\"ds:sr-only\">\n {t('widgetPicker.description')}\n </Dialog.Description>\n <div className=\"ds:mt-[var(--spacing-sm)]\">\n <StateBackedTextInput\n aria-label={t('widgetPicker.searchLabel')}\n placeholder={t('widgetPicker.searchPlaceholder')}\n startAdornment={<Search aria-hidden=\"true\" />}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n />\n </div>\n <div\n ref={setListNode}\n role=\"group\"\n aria-label={t('widgetPicker.listLabel')}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- a tab stop while the list scrolls (an all-disabled list must stay scrollable, axe scrollable-region-focusable) and while focused, so focus never drops to <body>\n tabIndex={scrollable || listFocused ? 0 : undefined}\n onFocus={(event) => {\n if (event.target === event.currentTarget) setListFocused(true);\n }}\n onBlur={(event) => {\n if (event.target === event.currentTarget) setListFocused(false);\n }}\n className=\"ds:mt-[var(--spacing-md)] ds:flex ds:max-h-[60vh] ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto ds:pe-[var(--spacing-xs)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n >\n {groups.length === 0 ? (\n <p\n role=\"status\"\n className=\"ds:py-[var(--spacing-lg)] ds:text-center ds:text-sm ds:text-muted-foreground\"\n >\n {items.length === 0\n ? t('widgetPicker.none')\n : t('widgetPicker.empty')}\n </p>\n ) : (\n groups.map((group) => (\n <section\n key={group.category ?? '__ungrouped__'}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n {group.category ? (\n <h3 className=\"ds:text-xs ds:font-semibold ds:uppercase ds:tracking-wide ds:text-muted-foreground\">\n {group.category}\n </h3>\n ) : null}\n <div className=\"ds:grid ds:gap-[var(--spacing-sm)] ds:sm:grid-cols-2\">\n {group.entries.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handlePick(item.id)}\n className={tileVariants()}\n data-widget-type-id={item.id}\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:mt-[var(--spacing-2xs)] ds:inline-flex ds:size-5 ds:shrink-0 ds:items-center ds:justify-center ds:text-muted-foreground ds:[&_svg]:size-5\"\n >\n {item.icon}\n </span>\n ) : null}\n <span className=\"ds:flex ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <span className=\"ds:truncate ds:text-sm ds:font-medium\">\n {item.title}\n </span>\n {item.badge ? (\n <Badge variant=\"info\" size=\"sm\">\n {item.badge}\n </Badge>\n ) : null}\n </span>\n {item.description ? (\n <span className=\"ds:text-xs ds:text-muted-foreground\">\n {item.description}\n </span>\n ) : null}\n </span>\n </button>\n ))}\n </div>\n </section>\n ))\n )}\n </div>\n </div>\n </Dialog.Content>\n </Dialog.Root>\n );\n },\n);\n\nWidgetPicker.displayName = 'WidgetPicker';\n"],"names":["widgetPickerAgent","handle","args","tileVariants","cva","WidgetPicker","forwardRef","open","onOpenChange","items","onPick","title","id","ref","t","useTranslation","query","setQuery","useState","useEffect","filtered","useMemo","needle","item","groups","order","key","group","g","listNode","setListNode","scrollable","setScrollable","listFocused","setListFocused","measure","observer","child","handlePick","useCallback","itemId","agentHandle","entry","useImperativeHandle","useAgentRegistration","Dialog","jsx","jsxs","StateBackedTextInput","Search","event","Badge"],"mappings":"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"}
package/dist/ag-grid.css CHANGED
@@ -2728,16 +2728,6 @@ button.ag-side-button-button:focus{box-shadow:none}
2728
2728
  .ag-theme-alfadocs .ag-row-selected{color:HighlightText}
2729
2729
  .ag-theme-alfadocs .data-table-row-success,.ag-theme-alfadocs .data-table-row-warning,.ag-theme-alfadocs .data-table-row-error,.ag-theme-alfadocs .data-table-row-archived,.ag-theme-alfadocs .ag-row.ds-data-table-expanded-row{background-color:Canvas;color:CanvasText}}
2730
2730
 
2731
- :root,.theme-light{--data-grid-border-mix: 50%;--data-grid-eyebrow-size: var(--font-size-xs);--data-grid-group-size: var(--font-size-sm);--data-grid-selected-mix: 10%;--data-grid-eyebrow-ink: var(--foreground);--data-grid-header-surface: var(--muted)}
2732
-
2733
- .theme-dark{--data-grid-eyebrow-ink: var(--muted-foreground);--data-grid-header-surface: color-mix( in srgb, var(--foreground) 6%, transparent )}
2734
-
2735
- .theme-accessible{--data-grid-border-mix: 35%;--data-grid-eyebrow-size: var(--font-size-sm);--data-grid-group-size: var(--font-size-base);--data-grid-eyebrow-ink: var(--muted-foreground)}
2736
-
2737
- .theme-light.theme-accessible{--data-grid-header-surface: color-mix( in srgb, var(--foreground) 4%, transparent )}
2738
-
2739
- .theme-dark.theme-accessible{--data-grid-selected-mix: 18%}
2740
-
2741
2731
  .ag-theme-alfadocs .sr-only-th .ag-header-cell-text{position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
2742
2732
 
2743
2733
  .ag-theme-alfadocs .ag-body-horizontal-scroll-viewport,.ag-theme-alfadocs .ag-body-vertical-scroll-viewport{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.110.0",
3
+ "packageVersion": "1.112.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -3471,6 +3471,20 @@
3471
3471
  }
3472
3472
  }
3473
3473
  },
3474
+ {
3475
+ "kind": "component",
3476
+ "id": "data-grid",
3477
+ "capabilities": [],
3478
+ "state": [],
3479
+ "actions": [],
3480
+ "domHooks": {
3481
+ "root": {
3482
+ "attr": "data-component",
3483
+ "value": "data-grid",
3484
+ "description": "Marks the element as a kit DataGrid."
3485
+ }
3486
+ }
3487
+ },
3474
3488
  {
3475
3489
  "kind": "component",
3476
3490
  "id": "data-table",
@@ -8121,7 +8135,7 @@
8121
8135
  "properties": {
8122
8136
  "regionId": {
8123
8137
  "type": "string",
8124
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8138
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8125
8139
  }
8126
8140
  },
8127
8141
  "required": [
@@ -8141,7 +8155,7 @@
8141
8155
  "properties": {
8142
8156
  "regionId": {
8143
8157
  "type": "string",
8144
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8158
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8145
8159
  }
8146
8160
  },
8147
8161
  "required": [
@@ -8202,7 +8216,7 @@
8202
8216
  "type": "array",
8203
8217
  "items": {
8204
8218
  "type": "string",
8205
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8219
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8206
8220
  }
8207
8221
  },
8208
8222
  "idempotent": true,
@@ -8218,7 +8232,7 @@
8218
8232
  "properties": {
8219
8233
  "regionId": {
8220
8234
  "type": "string",
8221
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8235
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8222
8236
  },
8223
8237
  "type": {
8224
8238
  "enum": [
@@ -8251,7 +8265,7 @@
8251
8265
  "properties": {
8252
8266
  "regionId": {
8253
8267
  "type": "string",
8254
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8268
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8255
8269
  },
8256
8270
  "type": {
8257
8271
  "enum": [
@@ -8281,7 +8295,7 @@
8281
8295
  "properties": {
8282
8296
  "regionId": {
8283
8297
  "type": "string",
8284
- "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
8298
+ "description": "Region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'chest-r', 'trapezius-l'. The female body view muscular-front-female also has breast-l and breast-r. The organ-only reproductive-female view has vulva, vagina, cervix, uterus, ovary-l, ovary-r, fallopian-tube-l, fallopian-tube-r, bladder and urethra. The organ-only reproductive-male view has penis, scrotum, testis-l, testis-r, prostate, bladder, urethra, epididymis-l, epididymis-r, vas-deferens-l, vas-deferens-r, seminal-vesicle-l and seminal-vesicle-r. Child views have no organ regions."
8285
8299
  }
8286
8300
  },
8287
8301
  "required": [
@@ -8301,7 +8315,7 @@
8301
8315
  "properties": {
8302
8316
  "viewId": {
8303
8317
  "type": "string",
8304
- "description": "View id, e.g. 'muscular-front', 'muscular-back', 'muscular-front-female', 'muscular-back-female', 'muscular-front-child', 'muscular-back-child'."
8318
+ "description": "View id: 'muscular-front', 'muscular-back', 'muscular-front-female', 'muscular-back-female', 'muscular-front-child', 'muscular-back-child', 'reproductive-female' or 'reproductive-male'. Reproductive views (kind 'pelvis') contain only organs; the others show the body from the front or back. Switch to the relevant view before focusing an organ region. When the host controls the view, it decides whether the switch happens."
8305
8319
  }
8306
8320
  },
8307
8321
  "required": [
@@ -8325,7 +8339,7 @@
8325
8339
  },
8326
8340
  "item": {
8327
8341
  "attr": "data-region",
8328
- "description": "Each rendered region `<g>` carries its region id as `data-region` and its anatomical side (`left` / `right` / `midline`) as `data-side`, so bilateral regions can be disambiguated by side. The root `data-view` attribute exposes the active muscle view."
8342
+ "description": "Each rendered region `<g>` carries its region id as `data-region` and its anatomical side (`left` / `right` / `midline`) as `data-side`, so bilateral regions can be disambiguated by side; a host-selected region also carries `data-selected`. The root `data-view` and `data-view-kind` attributes expose the active view and what it depicts (`front` / `back` / `pelvis`)."
8329
8343
  }
8330
8344
  }
8331
8345
  },
@@ -19583,6 +19597,49 @@
19583
19597
  }
19584
19598
  ]
19585
19599
  },
19600
+ {
19601
+ "kind": "pattern",
19602
+ "id": "care-plan-margin",
19603
+ "composes": [
19604
+ {
19605
+ "component": "dialog",
19606
+ "as": "marginDialog"
19607
+ },
19608
+ {
19609
+ "component": "form-field",
19610
+ "as": "discountField"
19611
+ },
19612
+ {
19613
+ "component": "number-input",
19614
+ "as": "discount"
19615
+ },
19616
+ {
19617
+ "component": "data-grid",
19618
+ "as": "marginGrid"
19619
+ },
19620
+ {
19621
+ "component": "transaction-chip",
19622
+ "as": "amount"
19623
+ },
19624
+ {
19625
+ "component": "info-tip",
19626
+ "as": "columnHelp"
19627
+ },
19628
+ {
19629
+ "component": "money",
19630
+ "as": "materialUnitCost"
19631
+ },
19632
+ {
19633
+ "component": "button",
19634
+ "as": "apply"
19635
+ },
19636
+ {
19637
+ "component": "live-region",
19638
+ "as": "ebitAnnouncement"
19639
+ }
19640
+ ],
19641
+ "workflows": []
19642
+ },
19586
19643
  {
19587
19644
  "kind": "pattern",
19588
19645
  "id": "care-plans",
@@ -1,4 +1,4 @@
1
- import { C as l } from "../../_chunks/calculator-dialog-BsVVb8cT.js";
1
+ import { C as l } from "../../_chunks/calculator-dialog-D4TyJwqy.js";
2
2
  export {
3
3
  l as CalculatorDialog
4
4
  };
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ export declare const dataGridAgent: AgentAdapter;
3
+ //# sourceMappingURL=data-grid.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid.agent.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid.agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,aAAa,EAAE,YAY3B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ export interface DataGridColumn<TData> {
3
+ /** Unique within the grid. */
4
+ id: string;
5
+ header: ReactNode;
6
+ /** The column's plain name, when `header` holds more than text, such as an
7
+ * InfoTip. Without it, the tip's name joins every cell's announcement. */
8
+ headerLabel?: string;
9
+ /** What this column shows for a row. */
10
+ cell: (row: TData) => ReactNode;
11
+ /** This column's cell in the totals row. The row appears when any column
12
+ * has a footer. */
13
+ footer?: ReactNode;
14
+ /** Amounts go `end`, so a column lines up on the decimal. */
15
+ align?: 'start' | 'end';
16
+ /** Keeps the column in view while the others scroll sideways. */
17
+ pin?: 'start' | 'end';
18
+ }
19
+ export interface DataGridProps<TData> extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dir'> {
20
+ columns: DataGridColumn<TData>[];
21
+ rows: TData[];
22
+ getRowId: (row: TData) => string;
23
+ /** Names the table for screen readers. Pass a translated string. */
24
+ caption: string;
25
+ }
26
+ /** The first column is the row header, so name each row with it. */
27
+ export declare function DataGrid<TData extends object>({ columns, rows, getRowId, caption, className, ...rest }: DataGridProps<TData>): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=data-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAkF5E,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB;8EAC0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC;IAChC;uBACmB;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,aAAa,CAAC,KAAK,CAAE,SAAQ,IAAI,CAChD,cAAc,CAAC,cAAc,CAAC,EAC9B,UAAU,GAAG,KAAK,CACnB;IACC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IACjC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,EAC7C,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EACR,EAAE,aAAa,CAAC,KAAK,CAAC,2CA0GtB"}
@@ -0,0 +1,4 @@
1
+ export { DataGrid } from './data-grid';
2
+ export type { DataGridColumn, DataGridProps } from './data-grid';
3
+ export { dataGridAgent } from './data-grid.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/data-grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { D as r, d as t } from "../../_chunks/data-grid.agent-CASyEAnb.js";
2
+ export {
3
+ r as DataGrid,
4
+ t as dataGridAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,7 +2,7 @@ import { type ComponentPropsWithoutRef, type HTMLAttributes, type ReactNode } fr
2
2
  import * as RadixDialog from '@radix-ui/react-dialog';
3
3
  import { type VariantProps } from 'class-variance-authority';
4
4
  declare const contentVariants: (props?: ({
5
- size?: "sm" | "md" | "lg" | "fullscreen" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | "xl" | "fullscreen" | null | undefined;
6
6
  scroll?: "body" | "surface" | null | undefined;
7
7
  flush?: boolean | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -16,7 +16,7 @@ export interface DialogRootProps extends ComponentPropsWithoutRef<typeof RadixDi
16
16
  id?: string;
17
17
  }
18
18
  export interface DialogContentProps extends Omit<ComponentPropsWithoutRef<typeof RadixDialog.Content>, 'role'>, VariantProps<typeof contentVariants> {
19
- size?: 'sm' | 'md' | 'lg' | 'fullscreen';
19
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen';
20
20
  variant?: 'default' | 'alert' | 'confirmation';
21
21
  /**
22
22
  * Hide the top-right dismiss "X". The default is **variant-aware**: the X is
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA2ClE,QAAA,MAAM,eAAe;;;;8EAuBnB,CAAC;AAGH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,wBAAwB,CAC/D,OAAO,WAAW,CAAC,IAAI,CACxB;IACC,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AA6ED,MAAM,WAAW,kBACf,SACE,IAAI,CAAC,wBAAwB,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAClE,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;IAC/C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AA+HD,UAAU,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkCD,eAAO,MAAM,MAAM;mFA9PhB,eAAe;;;;uFAAf,eAAe;;;;;;;;;;;CAwQhB,CAAC;AAEH,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA2ClE,QAAA,MAAM,eAAe;;;;8EAwBnB,CAAC;AAGH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,wBAAwB,CAC/D,OAAO,WAAW,CAAC,IAAI,CACxB;IACC,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AA6ED,MAAM,WAAW,kBACf,SACE,IAAI,CAAC,wBAAwB,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAClE,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IAChD,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;IAC/C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AA+HD,UAAU,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkCD,eAAO,MAAM,MAAM;mFA9PhB,eAAe;;;;uFAAf,eAAe;;;;;;;;;;;CAwQhB,CAAC;AAEH,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { D as g, d } from "../../_chunks/dialog-C7RWaH08.js";
1
+ import { D as g, d } from "../../_chunks/dialog-BTjSQjdY.js";
2
2
  export {
3
3
  g as Dialog,
4
4
  d as dialogAgent
@@ -1,4 +1,4 @@
1
- import { F as r, f } from "../../_chunks/file-manager-BDKe59sg.js";
1
+ import { F as r, f } from "../../_chunks/file-manager-CVxBE4yy.js";
2
2
  export {
3
3
  r as FileManager,
4
4
  f as fileManagerAgent
@@ -76,6 +76,7 @@ export * from './carousel';
76
76
  export * from './connection-status';
77
77
  export * from './contact-card';
78
78
  export * from './counter';
79
+ export * from './data-grid';
79
80
  export * from './data-table';
80
81
  export * from './data-table-tabs';
81
82
  export * from './clinical-note-card';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export { MuscleScheme } from './muscle-scheme';
1
+ export { MuscleScheme, useMuscleRegionLabel } from './muscle-scheme';
2
2
  export type { MuscleSchemeProps, MuscleSchemeHandle } from './muscle-scheme';
3
- export { MUSCLE_VIEWS, DEFAULT_MUSCLE_VIEW, FINDING_TYPES, FINDING_MARKER, getView, viewsForFigure, getRegion, regionCentroid, figureFromPatient, emptyChart as emptyMuscleChart, } from './muscle-scheme-data';
4
- export type { MuscleViewId, MuscleView, MuscleRegion, MuscleChart, MuscleFinding, MuscleSchemeMode, RegionSide, FigureVariant, FindingType, RegionShape, } from './muscle-scheme-data';
3
+ export { MUSCLE_VIEWS, DEFAULT_MUSCLE_VIEW, FINDING_TYPES, FINDING_MARKER, getView, viewsForFigure, getRegion, findRegionView, regionCentroid, figureFromPatient, emptyChart as emptyMuscleChart, } from './muscle-scheme-data';
4
+ export type { MuscleViewId, MuscleView, MuscleViewKind, AnatomyTissue, AnatomyPaint, AnatomyDetail, OrganArt, MuscleRegion, MuscleChart, MuscleFinding, MuscleSchemeMode, RegionSide, FigureVariant, FindingType, RegionShape, } from './muscle-scheme-data';
5
5
  export { muscleSchemeAgent } from './muscle-scheme.agent';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/muscle-scheme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/muscle-scheme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,UAAU,IAAI,gBAAgB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,16 +1,18 @@
1
- import { D as a, F as r, a as t, M as g, b as i, e as m, f as o, g as E, c as F, m as c, r as I, v as M } from "../../_chunks/muscle-scheme-CznhrQlo.js";
1
+ import { D as a, F as i, a as g, M as r, b as o, e as t, f as n, c as u, g as c, d as m, m as E, r as F, u as M, v as I } from "../../_chunks/muscle-scheme-C2B6v14o.js";
2
2
  export {
3
3
  a as DEFAULT_MUSCLE_VIEW,
4
- r as FINDING_MARKER,
5
- t as FINDING_TYPES,
6
- g as MUSCLE_VIEWS,
7
- i as MuscleScheme,
8
- m as emptyMuscleChart,
9
- o as figureFromPatient,
10
- E as getRegion,
11
- F as getView,
12
- c as muscleSchemeAgent,
13
- I as regionCentroid,
14
- M as viewsForFigure
4
+ i as FINDING_MARKER,
5
+ g as FINDING_TYPES,
6
+ r as MUSCLE_VIEWS,
7
+ o as MuscleScheme,
8
+ t as emptyMuscleChart,
9
+ n as figureFromPatient,
10
+ u as findRegionView,
11
+ c as getRegion,
12
+ m as getView,
13
+ E as muscleSchemeAgent,
14
+ F as regionCentroid,
15
+ M as useMuscleRegionLabel,
16
+ I as viewsForFigure
15
17
  };
16
18
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export type MuscleFibreSet = 'male-front' | 'male-back' | 'female-front' | 'female-back';
2
+ export declare const MUSCLE_FIBRES: Record<MuscleFibreSet, Record<string, string>>;
3
+ //# sourceMappingURL=muscle-fibres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"muscle-fibres.d.ts","sourceRoot":"","sources":["../../../src/components/muscle-scheme/muscle-fibres.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,aAAa,CAAC;AAElB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmQxE,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type MuscleOutlineSet = 'male-front' | 'male-back' | 'female-front' | 'female-back' | 'child-front' | 'child-back';
2
+ /**
3
+ * The child's proportions, in the male figure's coordinates: legs scaled by
4
+ * `legScale` about the soles, everything above `hip` (and the arms, further
5
+ * than `armReach` from the midline) moved down by `drop` to meet them.
6
+ */
7
+ export declare const CHILD_PROPORTIONS: {
8
+ legScale: number;
9
+ hip: number;
10
+ sole: number;
11
+ armReach: number;
12
+ midline: {
13
+ front: number;
14
+ back: number;
15
+ };
16
+ drop: number;
17
+ };
18
+ export declare const MUSCLE_OUTLINES: Record<MuscleOutlineSet, string>;
19
+ //# sourceMappingURL=muscle-outlines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"muscle-outlines.d.ts","sourceRoot":"","sources":["../../../src/components/muscle-scheme/muscle-outlines.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,aAAa,GACb,aAAa,GACb,YAAY,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAa5D,CAAC"}