@exponential_app/eui 0.2.1 → 0.3.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 (66) hide show
  1. package/catalog/a11y.json +15 -1
  2. package/catalog/core.catalog.json +142 -0
  3. package/catalog/core.schema.json +198 -1
  4. package/catalog/host.json +10 -0
  5. package/catalog/macros.json +541 -1
  6. package/catalog/recipes.json +2 -2
  7. package/catalog/strings.json +5 -0
  8. package/catalog/theme.schema.json +2066 -212
  9. package/conformance/manifest.json +5 -5
  10. package/dist/chunks/{index-gtk2gwsb.js → index-4z7f2bp1.js} +160 -33
  11. package/dist/chunks/{index-gtk2gwsb.js.map → index-4z7f2bp1.js.map} +6 -5
  12. package/dist/chunks/{index-5fmaa0xq.js → index-abcjanhc.js} +629 -3
  13. package/dist/chunks/{index-5fmaa0xq.js.map → index-abcjanhc.js.map} +2 -2
  14. package/dist/chunks/{index-62yzr94z.js → index-dx45asrf.js} +99 -3
  15. package/dist/chunks/{index-62yzr94z.js.map → index-dx45asrf.js.map} +2 -2
  16. package/dist/chunks/{index-bg2jsgjq.js → index-h3zgfghf.js} +304 -6
  17. package/dist/chunks/{index-bg2jsgjq.js.map → index-h3zgfghf.js.map} +2 -2
  18. package/dist/conformance.js +7901 -614
  19. package/dist/conformance.js.map +2 -2
  20. package/dist/entries/prompt.js +2 -2
  21. package/dist/entries/schema.js +2 -2
  22. package/dist/host/index.js +20 -4
  23. package/dist/host/index.js.map +1 -1
  24. package/dist/index.js +35 -5
  25. package/dist/index.js.map +2 -2
  26. package/dist/types/src/catalog.generated.d.ts +23 -3
  27. package/dist/types/src/host/contract.d.ts +17 -0
  28. package/dist/types/src/host/exposes.d.ts +68 -0
  29. package/dist/types/src/host/index.d.ts +1 -0
  30. package/dist/types/src/host/package.d.ts +8 -0
  31. package/dist/types/src/web/primitives/carousel.d.ts +17 -0
  32. package/dist/types/src/web/primitives/index.d.ts +3 -0
  33. package/dist/types/src/web/primitives/mosaic.d.ts +30 -0
  34. package/dist/types/src/web/primitives/outline.d.ts +22 -0
  35. package/dist/web/index.js +8 -2
  36. package/dist/web/index.js.map +4 -4
  37. package/dist/web/primitives/index.js +59 -1
  38. package/dist/web/primitives/index.js.map +6 -3
  39. package/docs/components.generated.json +150 -1
  40. package/docs/package-format.md +56 -1
  41. package/docs/round-6-contract.md +108 -0
  42. package/docs/themes.generated.json +39 -2
  43. package/fixtures/bind-time.json +1464 -0
  44. package/fixtures/catalog-components.json +96 -0
  45. package/fixtures/catalog-macros.json +1159 -48
  46. package/fixtures/conformance-baseline.json +46073 -44448
  47. package/fixtures/conformance-known.json +76 -64
  48. package/fixtures/host-router.json +539 -1
  49. package/fixtures/kitchen-sink.expanded.json +614 -1
  50. package/fixtures/kitchen-sink.json +69 -1
  51. package/fixtures/primitive-specimens.json +3 -0
  52. package/fixtures/prompt-budget.json +14 -14
  53. package/fixtures/specimens.json +122 -0
  54. package/fixtures/theme-recipes.json +4617 -1691
  55. package/fixtures/theme-resolved.json +1154 -2
  56. package/generated/ExponentialUICatalog.generated.kt +13 -13
  57. package/generated/ExponentialUICatalog.generated.swift +13 -13
  58. package/generated/ExponentialUIThemes.generated.kt +7 -7
  59. package/generated/ExponentialUIThemes.generated.swift +7 -7
  60. package/generated/catalog.descriptions.generated.rs +1 -1
  61. package/generated/catalog.generated.rs +18 -18
  62. package/generated/catalog.themes.generated.rs +8 -8
  63. package/generated/core.descriptions.json +96 -0
  64. package/generated/core.runtime.json +86 -0
  65. package/package.json +1 -1
  66. package/themes/neutral.theme.json +288 -0
@@ -9,7 +9,7 @@
9
9
  "fixtures/catalog-components.json"
10
10
  ],
11
11
  "unit": "case",
12
- "cases": 579,
12
+ "cases": 583,
13
13
  "check": "Reduce the case's nested node with the core catalog: no issues. Paint it under the default theme: no crash, no Unknown placeholder, every visible node painted."
14
14
  },
15
15
  {
@@ -18,7 +18,7 @@
18
18
  "fixtures/catalog-macros.json"
19
19
  ],
20
20
  "unit": "case",
21
- "cases": 312,
21
+ "cases": 315,
22
22
  "check": "Expand the case: the tree equals `expanded` (JSON-equal, recipes included)."
23
23
  },
24
24
  {
@@ -54,7 +54,7 @@
54
54
  "fixtures/theme-recipes.json"
55
55
  ],
56
56
  "unit": "case",
57
- "cases": 456,
57
+ "cases": 473,
58
58
  "check": "Resolve the part's recipe for the case's theme, props, mode and states: the visual equals the fixture."
59
59
  },
60
60
  {
@@ -136,7 +136,7 @@
136
136
  "fixtures/host-router.json"
137
137
  ],
138
138
  "unit": "package or flow",
139
- "cases": 26,
139
+ "cases": 29,
140
140
  "check": "Validate each package; validate each record against its kind's schema; for each flow build ONE router with `extensionIds`, install `packages` (issues = `installIssues`), route every step: the ops equal `expected`."
141
141
  },
142
142
  {
@@ -145,7 +145,7 @@
145
145
  "fixtures/bind-time.json"
146
146
  ],
147
147
  "unit": "case",
148
- "cases": 71,
148
+ "cases": 72,
149
149
  "check": "Expand the input; for every dataset run the bind pass: the bound tree, every `set` press and the per-row slot cells equal the fixture (reducer `issues` too for `extra`)."
150
150
  },
151
151
  {
@@ -10,13 +10,14 @@ import {
10
10
  parseTokenRef2,
11
11
  isKnownToken2,
12
12
  sharedCatalogView2
13
- } from "./index-5fmaa0xq.js";
13
+ } from "./index-abcjanhc.js";
14
14
  import {
15
15
  validateStyle2,
16
16
  tryLoadTheme2,
17
17
  BUILTIN_THEMES2,
18
18
  BUILTIN_THEME_IDS2,
19
19
  builtinTheme2,
20
+ host_default,
20
21
  MESSAGE_KINDS2,
21
22
  DEFAULT_URL_SCHEMES2,
22
23
  DEFAULT_MEDIA_SCHEMES2,
@@ -27,7 +28,7 @@ import {
27
28
  SSE_EVENTS2,
28
29
  errorMessage2,
29
30
  actionMessage2
30
- } from "./index-bg2jsgjq.js";
31
+ } from "./index-h3zgfghf.js";
31
32
 
32
33
  // packages/exponential-ui/src/catalog.generated.ts
33
34
  var CATALOG_ID2 = "https://ui.exponential.at/catalogs/core/v1";
@@ -36,12 +37,12 @@ var BASIC_CATALOG_ID2 = "https://a2ui.org/specification/v0_9/basic_catalog.json"
36
37
  var BASIC_VERSION2 = "v0.9";
37
38
  var CATALOG_VERSION2 = "1";
38
39
  var UNKNOWN_COMPONENT_NAME2 = "Unknown";
39
- var COMPONENT_NAMES2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Image", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Tabs", "Segmented", "Accordion", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Stepper", "Dialog", "Drawer", "DockCard", "AlertDialog", "Popover", "Tooltip", "Menu", "Toast", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Spinner", "Skeleton", "VoiceWave", "CallSurface", "Table", "Chart", "Sparkline", "StatTile", "Button", "Link", "Toggle", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "Row", "MessageBubble", "TreeGuides", "Unknown"];
40
+ var COMPONENT_NAMES2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Image", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Mosaic", "Tabs", "Segmented", "Accordion", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Outline", "Stepper", "Dialog", "Drawer", "DockCard", "AlertDialog", "Popover", "Tooltip", "Menu", "Toast", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Spinner", "Skeleton", "VoiceWave", "CallSurface", "Table", "Chart", "Sparkline", "StatTile", "Button", "Link", "Toggle", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "Row", "MessageBubble", "TreeGuides", "Unknown"];
40
41
  var NATIVE_COMPONENTS2 = ["Box", "List", "Resizable", "Text", "Markdown", "CodeBlock", "Image", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Tabs", "Segmented", "Accordion", "Dialog", "Drawer", "Popover", "Tooltip", "Menu", "Toast", "Ring", "Spinner", "Skeleton", "VoiceWave", "Table", "Chart", "Button", "Link", "Toggle", "Form", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "TreeGuides", "Unknown"];
41
- var MACRO_COMPONENTS2 = ["Stack", "Grid", "Card", "Separator", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Heading", "Kbd", "Label", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Stepper", "DockCard", "AlertDialog", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "CallSurface", "Sparkline", "StatTile", "FieldGroup", "FormActions", "Rating", "Row", "MessageBubble"];
42
- var LITE_COMPONENTS2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Icon", "Avatar", "Tabs", "Segmented", "Collapsible", "Trace", "TraceItem", "Plan", "Breadcrumb", "Stepper", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Skeleton", "StatTile", "Button", "Link", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Switch", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "Composer", "Row", "MessageBubble"];
43
- var COMPONENT_GROUPS2 = { Box: "layout", Stack: "layout", Grid: "layout", Card: "layout", Separator: "layout", List: "layout", Resizable: "layout", ScrollArea: "layout", Sidebar: "layout", SplitView: "layout", AppBar: "layout", Page: "layout", Toolbar: "layout", Section: "list", Group: "list", Text: "text", Heading: "text", Markdown: "text", CodeBlock: "text", Kbd: "text", Label: "text", Image: "media", Icon: "media", Video: "media", AudioPlayer: "media", Avatar: "media", QrCode: "media", Carousel: "media", Tabs: "navigation", Segmented: "navigation", Accordion: "navigation", Collapsible: "navigation", Trace: "list", TraceItem: "list", Plan: "list", Pagination: "navigation", Breadcrumb: "navigation", Stepper: "navigation", Dialog: "overlay", Drawer: "overlay", DockCard: "overlay", AlertDialog: "overlay", Popover: "overlay", Tooltip: "overlay", Menu: "overlay", Toast: "overlay", Badge: "feedback", Alert: "feedback", Chip: "feedback", EmptyState: "feedback", Progress: "feedback", Meter: "feedback", Ring: "feedback", Spinner: "feedback", Skeleton: "feedback", VoiceWave: "feedback", CallSurface: "media", Table: "data", Chart: "data", Sparkline: "data", StatTile: "data", Button: "action", Link: "action", Toggle: "action", Form: "input", FieldGroup: "input", FormActions: "input", Input: "input", Textarea: "input", NumberField: "input", Checkbox: "input", Radio: "input", ChoiceTiles: "input", Switch: "input", Slider: "input", Rating: "input", Select: "input", SearchList: "input", ChipInput: "input", DatePicker: "input", DateRangePicker: "input", TimePicker: "input", FileUpload: "input", QrScanner: "input", Composer: "input", Row: "list", MessageBubble: "list", TreeGuides: "list", Unknown: "feedback" };
44
- var SPECIMEN_IDS2 = { Box: "exponential-ui-box", Stack: "exponential-ui-stack", Grid: "exponential-ui-grid", Card: "exponential-ui-card", Separator: "exponential-ui-separator", List: "exponential-ui-list", Resizable: "exponential-ui-resizable", ScrollArea: "exponential-ui-scroll-area", Sidebar: "exponential-ui-sidebar", SplitView: "exponential-ui-split-view", AppBar: "exponential-ui-app-bar", Page: "exponential-ui-page", Toolbar: "exponential-ui-toolbar", Section: "exponential-ui-section", Group: "exponential-ui-group", Text: "exponential-ui-text", Heading: "exponential-ui-heading", Markdown: "exponential-ui-markdown", CodeBlock: "exponential-ui-code-block", Kbd: "exponential-ui-kbd", Label: "exponential-ui-label", Image: "exponential-ui-image", Icon: "exponential-ui-icon", Video: "exponential-ui-video", AudioPlayer: "exponential-ui-audio-player", Avatar: "exponential-ui-avatar", QrCode: "exponential-ui-qr-code", Carousel: "exponential-ui-carousel", Tabs: "exponential-ui-tabs", Segmented: "exponential-ui-segmented", Accordion: "exponential-ui-accordion", Collapsible: "exponential-ui-collapsible", Trace: "exponential-ui-trace", TraceItem: "exponential-ui-trace-item", Plan: "exponential-ui-plan", Pagination: "exponential-ui-pagination", Breadcrumb: "exponential-ui-breadcrumb", Stepper: "exponential-ui-stepper", Dialog: "exponential-ui-dialog", Drawer: "exponential-ui-drawer", DockCard: "exponential-ui-dock-card", AlertDialog: "exponential-ui-alert-dialog", Popover: "exponential-ui-popover", Tooltip: "exponential-ui-tooltip", Menu: "exponential-ui-menu", Toast: "exponential-ui-toast", Badge: "exponential-ui-badge", Alert: "exponential-ui-alert", Chip: "exponential-ui-chip", EmptyState: "exponential-ui-empty-state", Progress: "exponential-ui-progress", Meter: "exponential-ui-meter", Ring: "exponential-ui-ring", Spinner: "exponential-ui-spinner", Skeleton: "exponential-ui-skeleton", VoiceWave: "exponential-ui-voice-wave", CallSurface: "exponential-ui-call-surface", Table: "exponential-ui-table", Chart: "exponential-ui-chart", Sparkline: "exponential-ui-sparkline", StatTile: "exponential-ui-stat-tile", Button: "exponential-ui-button", Link: "exponential-ui-link", Toggle: "exponential-ui-toggle", Form: "exponential-ui-form", FieldGroup: "exponential-ui-field-group", FormActions: "exponential-ui-form-actions", Input: "exponential-ui-input", Textarea: "exponential-ui-textarea", NumberField: "exponential-ui-number-field", Checkbox: "exponential-ui-checkbox", Radio: "exponential-ui-radio", ChoiceTiles: "exponential-ui-choice-tiles", Switch: "exponential-ui-switch", Slider: "exponential-ui-slider", Rating: "exponential-ui-rating", Select: "exponential-ui-select", SearchList: "exponential-ui-search-list", ChipInput: "exponential-ui-chip-input", DatePicker: "exponential-ui-date-picker", DateRangePicker: "exponential-ui-date-range-picker", TimePicker: "exponential-ui-time-picker", FileUpload: "exponential-ui-file-upload", QrScanner: "exponential-ui-qr-scanner", Composer: "exponential-ui-composer", Row: "exponential-ui-row", MessageBubble: "exponential-ui-message-bubble", TreeGuides: "exponential-ui-tree-guides", Unknown: "exponential-ui-unknown" };
42
+ var MACRO_COMPONENTS2 = ["Stack", "Grid", "Card", "Separator", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Heading", "Kbd", "Label", "Mosaic", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Outline", "Stepper", "DockCard", "AlertDialog", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "CallSurface", "Sparkline", "StatTile", "FieldGroup", "FormActions", "Rating", "Row", "MessageBubble"];
43
+ var LITE_COMPONENTS2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Icon", "Avatar", "Tabs", "Segmented", "Collapsible", "Trace", "TraceItem", "Plan", "Breadcrumb", "Outline", "Stepper", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Skeleton", "StatTile", "Button", "Link", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Switch", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "Composer", "Row", "MessageBubble"];
44
+ var COMPONENT_GROUPS2 = { Box: "layout", Stack: "layout", Grid: "layout", Card: "layout", Separator: "layout", List: "layout", Resizable: "layout", ScrollArea: "layout", Sidebar: "layout", SplitView: "layout", AppBar: "layout", Page: "layout", Toolbar: "layout", Section: "list", Group: "list", Text: "text", Heading: "text", Markdown: "text", CodeBlock: "text", Kbd: "text", Label: "text", Image: "media", Icon: "media", Video: "media", AudioPlayer: "media", Avatar: "media", QrCode: "media", Carousel: "media", Mosaic: "media", Tabs: "navigation", Segmented: "navigation", Accordion: "navigation", Collapsible: "navigation", Trace: "list", TraceItem: "list", Plan: "list", Pagination: "navigation", Breadcrumb: "navigation", Outline: "navigation", Stepper: "navigation", Dialog: "overlay", Drawer: "overlay", DockCard: "overlay", AlertDialog: "overlay", Popover: "overlay", Tooltip: "overlay", Menu: "overlay", Toast: "overlay", Badge: "feedback", Alert: "feedback", Chip: "feedback", EmptyState: "feedback", Progress: "feedback", Meter: "feedback", Ring: "feedback", Spinner: "feedback", Skeleton: "feedback", VoiceWave: "feedback", CallSurface: "media", Table: "data", Chart: "data", Sparkline: "data", StatTile: "data", Button: "action", Link: "action", Toggle: "action", Form: "input", FieldGroup: "input", FormActions: "input", Input: "input", Textarea: "input", NumberField: "input", Checkbox: "input", Radio: "input", ChoiceTiles: "input", Switch: "input", Slider: "input", Rating: "input", Select: "input", SearchList: "input", ChipInput: "input", DatePicker: "input", DateRangePicker: "input", TimePicker: "input", FileUpload: "input", QrScanner: "input", Composer: "input", Row: "list", MessageBubble: "list", TreeGuides: "list", Unknown: "feedback" };
45
+ var SPECIMEN_IDS2 = { Box: "exponential-ui-box", Stack: "exponential-ui-stack", Grid: "exponential-ui-grid", Card: "exponential-ui-card", Separator: "exponential-ui-separator", List: "exponential-ui-list", Resizable: "exponential-ui-resizable", ScrollArea: "exponential-ui-scroll-area", Sidebar: "exponential-ui-sidebar", SplitView: "exponential-ui-split-view", AppBar: "exponential-ui-app-bar", Page: "exponential-ui-page", Toolbar: "exponential-ui-toolbar", Section: "exponential-ui-section", Group: "exponential-ui-group", Text: "exponential-ui-text", Heading: "exponential-ui-heading", Markdown: "exponential-ui-markdown", CodeBlock: "exponential-ui-code-block", Kbd: "exponential-ui-kbd", Label: "exponential-ui-label", Image: "exponential-ui-image", Icon: "exponential-ui-icon", Video: "exponential-ui-video", AudioPlayer: "exponential-ui-audio-player", Avatar: "exponential-ui-avatar", QrCode: "exponential-ui-qr-code", Carousel: "exponential-ui-carousel", Mosaic: "exponential-ui-mosaic", Tabs: "exponential-ui-tabs", Segmented: "exponential-ui-segmented", Accordion: "exponential-ui-accordion", Collapsible: "exponential-ui-collapsible", Trace: "exponential-ui-trace", TraceItem: "exponential-ui-trace-item", Plan: "exponential-ui-plan", Pagination: "exponential-ui-pagination", Breadcrumb: "exponential-ui-breadcrumb", Outline: "exponential-ui-outline", Stepper: "exponential-ui-stepper", Dialog: "exponential-ui-dialog", Drawer: "exponential-ui-drawer", DockCard: "exponential-ui-dock-card", AlertDialog: "exponential-ui-alert-dialog", Popover: "exponential-ui-popover", Tooltip: "exponential-ui-tooltip", Menu: "exponential-ui-menu", Toast: "exponential-ui-toast", Badge: "exponential-ui-badge", Alert: "exponential-ui-alert", Chip: "exponential-ui-chip", EmptyState: "exponential-ui-empty-state", Progress: "exponential-ui-progress", Meter: "exponential-ui-meter", Ring: "exponential-ui-ring", Spinner: "exponential-ui-spinner", Skeleton: "exponential-ui-skeleton", VoiceWave: "exponential-ui-voice-wave", CallSurface: "exponential-ui-call-surface", Table: "exponential-ui-table", Chart: "exponential-ui-chart", Sparkline: "exponential-ui-sparkline", StatTile: "exponential-ui-stat-tile", Button: "exponential-ui-button", Link: "exponential-ui-link", Toggle: "exponential-ui-toggle", Form: "exponential-ui-form", FieldGroup: "exponential-ui-field-group", FormActions: "exponential-ui-form-actions", Input: "exponential-ui-input", Textarea: "exponential-ui-textarea", NumberField: "exponential-ui-number-field", Checkbox: "exponential-ui-checkbox", Radio: "exponential-ui-radio", ChoiceTiles: "exponential-ui-choice-tiles", Switch: "exponential-ui-switch", Slider: "exponential-ui-slider", Rating: "exponential-ui-rating", Select: "exponential-ui-select", SearchList: "exponential-ui-search-list", ChipInput: "exponential-ui-chip-input", DatePicker: "exponential-ui-date-picker", DateRangePicker: "exponential-ui-date-range-picker", TimePicker: "exponential-ui-time-picker", FileUpload: "exponential-ui-file-upload", QrScanner: "exponential-ui-qr-scanner", Composer: "exponential-ui-composer", Row: "exponential-ui-row", MessageBubble: "exponential-ui-message-bubble", TreeGuides: "exponential-ui-tree-guides", Unknown: "exponential-ui-unknown" };
45
46
  var ENUMS2 = {
46
47
  variant: ["default", "secondary", "outline", "ghost", "destructive", "link"],
47
48
  size: ["sm", "default", "lg", "icon"],
@@ -155,6 +156,8 @@ var strings_default = {
155
156
  menu: "Menu",
156
157
  message: "Message",
157
158
  more: "More",
159
+ morePictures: "+{count}",
160
+ morePicturesLabel: "{alt}, {count} more",
158
161
  mute: "Mute",
159
162
  newTab: "New tab",
160
163
  next: "Next",
@@ -162,6 +165,9 @@ var strings_default = {
162
165
  no: "No",
163
166
  noResults: "No results",
164
167
  optional: "Optional",
168
+ outline: "Outline",
169
+ outlineRow: "{title}, {count}",
170
+ pageCounter: "{page} / {total}",
165
171
  pageOf: "Page {page} of {total}",
166
172
  pagination: "Pagination",
167
173
  previous: "Previous",
@@ -3598,6 +3604,123 @@ function toolCall2(name) {
3598
3604
  return m ? { toolId: m[1], tool: m[2] ?? null } : null;
3599
3605
  }
3600
3606
 
3607
+ // packages/exponential-ui/src/host/exposes.ts
3608
+ var EXPOSES_LIMITS2 = host_default.package.exposes.limits;
3609
+ var EXPOSE_RUN_KINDS2 = host_default.package.exposes.runKinds;
3610
+ var RECORD_OPS = host_default.package.exposes.recordOps;
3611
+ var READ_RECORD_OPS = host_default.package.exposes.readRecordOps;
3612
+ var READ_OP_WORDS = host_default.package.exposes.readOpWords;
3613
+ var DESTRUCTIVE_WORDS = host_default.package.exposes.destructiveWords;
3614
+ var isObject5 = (v) => !!v && typeof v === `object` && !Array.isArray(v);
3615
+ var NAME = new RegExp(EXPOSES_LIMITS2.namePattern);
3616
+ var ACTION = new RegExp(host_default.package.exposes.actionPattern);
3617
+ var TEMPLATE = /\$\{input\.([A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)\}/g;
3618
+ function exposeTemplatePaths2(value) {
3619
+ const out = [];
3620
+ const walk = (v) => {
3621
+ if (typeof v === `string`)
3622
+ for (const m of v.matchAll(TEMPLATE))
3623
+ out.push(m[1]);
3624
+ else if (Array.isArray(v))
3625
+ v.forEach(walk);
3626
+ else if (isObject5(v))
3627
+ Object.values(v).forEach(walk);
3628
+ };
3629
+ walk(value);
3630
+ return out;
3631
+ }
3632
+ var words = (name) => name.toLowerCase().split(/[^a-z]+/).filter(Boolean);
3633
+ function exposeActionAccess2(action) {
3634
+ const last = words(action.split(`.`).at(-1) ?? ``).at(-1);
3635
+ return last !== undefined && READ_OP_WORDS.includes(last) ? `read` : `write`;
3636
+ }
3637
+ function exposeNameDestructive2(name) {
3638
+ return words(name).some((word) => DESTRUCTIVE_WORDS.includes(word));
3639
+ }
3640
+ function upstreamNames(upstreams) {
3641
+ return Array.isArray(upstreams) ? upstreams.filter((u) => typeof u === `string` && u !== ``) : [];
3642
+ }
3643
+ function validateUpstreams2(upstreams) {
3644
+ if (!Array.isArray(upstreams) || upstreams.some((u) => typeof u !== `string` || u === ``))
3645
+ return [{ path: `/upstreams`, message: `upstreams is a list of MCP server names` }];
3646
+ const issues = [];
3647
+ upstreams.forEach((name, i) => {
3648
+ if (upstreams.indexOf(name) !== i)
3649
+ issues.push({ path: `/upstreams/${i}`, message: `duplicate upstream ${name}` });
3650
+ });
3651
+ return issues;
3652
+ }
3653
+ function exposeIssues2(exposes, records, upstreams) {
3654
+ if (!Array.isArray(exposes))
3655
+ return [{ index: null, code: `run`, path: `/exposes`, message: `exposes is a list of tools` }];
3656
+ const issues = [];
3657
+ if (exposes.length > EXPOSES_LIMITS2.maxTools)
3658
+ issues.push({ index: null, code: `tooMany`, path: `/exposes`, message: `exposes lists at most ${EXPOSES_LIMITS2.maxTools} tools` });
3659
+ const kinds = isObject5(records) ? Object.keys(records) : [];
3660
+ const servers = upstreamNames(upstreams);
3661
+ const seen = new Set;
3662
+ exposes.forEach((expose, index) => {
3663
+ const at = `/exposes/${index}`;
3664
+ const fail = (code, path, message) => void issues.push({ index, code, path: `${at}${path}`, message });
3665
+ if (!isObject5(expose))
3666
+ return fail(`run`, ``, `a tool is {name, title, description, input, access, run}`);
3667
+ const name = expose.name;
3668
+ if (typeof name !== `string` || !NAME.test(name) || name.length > EXPOSES_LIMITS2.nameMax || name.includes(EXPOSES_LIMITS2.separator))
3669
+ fail(`name`, `/name`, `name is lowercase letters, digits and _ (at most ${EXPOSES_LIMITS2.nameMax}, no ${EXPOSES_LIMITS2.separator})`);
3670
+ else if (seen.has(name))
3671
+ fail(`duplicate`, `/name`, `duplicate tool ${name}`);
3672
+ else
3673
+ seen.add(name);
3674
+ if (typeof expose.title !== `string` || !expose.title.trim() || expose.title.length > EXPOSES_LIMITS2.titleMax)
3675
+ fail(`title`, `/title`, `title is a non-blank string of at most ${EXPOSES_LIMITS2.titleMax} characters`);
3676
+ if (typeof expose.description !== `string` || !expose.description.trim() || expose.description.length > EXPOSES_LIMITS2.descriptionMax)
3677
+ fail(`description`, `/description`, `description is a non-blank string of at most ${EXPOSES_LIMITS2.descriptionMax} characters`);
3678
+ const input = expose.input;
3679
+ if (!isObject5(input) || input.type !== `object` || input.properties !== undefined && !isObject5(input.properties))
3680
+ fail(`input`, `/input`, `input is a JSON Schema of type object`);
3681
+ if (expose.access !== `read` && expose.access !== `write`)
3682
+ fail(`access`, `/access`, `access is read or write`);
3683
+ const properties = isObject5(input) && isObject5(input.properties) ? input.properties : {};
3684
+ const run = expose.run;
3685
+ if (!isObject5(run) || EXPOSE_RUN_KINDS2.filter((k) => (k in run)).length !== 1)
3686
+ return fail(`run`, `/run`, `run holds exactly one of records, action, upstream`);
3687
+ for (const path of exposeTemplatePaths2(run))
3688
+ if (!Object.prototype.hasOwnProperty.call(properties, path.split(`.`)[0]))
3689
+ fail(`template`, `/run`, `\${input.${path}} names no input property`);
3690
+ let level;
3691
+ if (`records` in run) {
3692
+ const records = run.records;
3693
+ const op = isObject5(records) ? records.op : undefined;
3694
+ if (typeof op !== `string` || !RECORD_OPS.includes(op))
3695
+ return op === `delete` ? fail(`destructive`, `/run/records/op`, `a records delete is destructive: never exposed`) : fail(`run`, `/run/records/op`, `op is ${RECORD_OPS.join(`, `)}`);
3696
+ if (typeof records.kind !== `string` || !kinds.includes(records.kind))
3697
+ fail(`kind`, `/run/records/kind`, `kind names no declared record kind`);
3698
+ level = READ_RECORD_OPS.includes(op) ? `read` : `write`;
3699
+ } else if (`action` in run) {
3700
+ const action = run.action;
3701
+ if (typeof action !== `string` || !ACTION.test(action))
3702
+ return fail(`action`, `/run/action`, `action is a function name like namespace.function`);
3703
+ if (exposeNameDestructive2(action))
3704
+ return fail(`destructive`, `/run/action`, `a destructive action is never exposed`);
3705
+ level = exposeActionAccess2(action);
3706
+ } else {
3707
+ if (typeof run.upstream !== `string` || !servers.includes(run.upstream))
3708
+ fail(`upstream`, `/run/upstream`, `upstream names none of the package's upstreams`);
3709
+ if (typeof run.tool !== `string` || run.tool === ``)
3710
+ return fail(`run`, `/run/tool`, `tool is a non-empty string`);
3711
+ if (exposeNameDestructive2(run.tool))
3712
+ return fail(`destructive`, `/run/tool`, `a destructive tool is never exposed`);
3713
+ return;
3714
+ }
3715
+ if (expose.access === `read` && level === `write`)
3716
+ fail(`accessTooLow`, `/access`, `the run writes: access is write`);
3717
+ });
3718
+ return issues;
3719
+ }
3720
+ function validatePackageExposes2(exposes, records, upstreams) {
3721
+ return exposeIssues2(exposes, records, upstreams).map(({ path, message }) => ({ path, message }));
3722
+ }
3723
+
3601
3724
  // packages/exponential-ui/src/host/package.ts
3602
3725
  var PACKAGE_FORMAT_VERSION2 = 2;
3603
3726
  function supportedCatalogIds2(extensionIds = []) {
@@ -3623,11 +3746,11 @@ function versionSatisfies2(have, want) {
3623
3746
  const [wM, wm, wp] = [Number(w[1]), Number(w[2]), Number(w[3])];
3624
3747
  return hM === wM && (hm > wm || hm === wm && hp >= wp);
3625
3748
  }
3626
- var isObject5 = (v) => !!v && typeof v === `object` && !Array.isArray(v);
3749
+ var isObject6 = (v) => !!v && typeof v === `object` && !Array.isArray(v);
3627
3750
  var POINTER = /^(\/([^/~]|~[01])*)*$/;
3628
3751
  function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions) {
3629
3752
  const issues = [];
3630
- if (!isObject5(pkg))
3753
+ if (!isObject6(pkg))
3631
3754
  return [{ path: ``, message: `a package is an object` }];
3632
3755
  if (pkg.formatVersion !== undefined) {
3633
3756
  if (typeof pkg.formatVersion !== `number` || !Number.isInteger(pkg.formatVersion) || pkg.formatVersion < 1)
@@ -3640,12 +3763,12 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3640
3763
  issues.push({ path: `/${key}`, message: `${key} is a required string` });
3641
3764
  if (typeof pkg.catalogId === `string` && pkg.catalogId && !catalogIds.includes(pkg.catalogId))
3642
3765
  issues.push({ path: `/catalogId`, message: `unsupported catalog ${pkg.catalogId}` });
3643
- if (!isObject5(pkg.templates) || !Object.keys(pkg.templates).length)
3766
+ if (!isObject6(pkg.templates) || !Object.keys(pkg.templates).length)
3644
3767
  issues.push({ path: `/templates`, message: `templates is a non-empty object` });
3645
3768
  else
3646
3769
  for (const [id, template] of Object.entries(pkg.templates)) {
3647
3770
  const at = `/templates/${id}`;
3648
- if (!isObject5(template)) {
3771
+ if (!isObject6(template)) {
3649
3772
  issues.push({ path: at, message: `a template is an object` });
3650
3773
  continue;
3651
3774
  }
@@ -3655,7 +3778,7 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3655
3778
  else {
3656
3779
  const ids = new Set;
3657
3780
  components.forEach((c, i) => {
3658
- if (!isObject5(c) || typeof c.id !== `string` || typeof c.component !== `string`)
3781
+ if (!isObject6(c) || typeof c.id !== `string` || typeof c.component !== `string`)
3659
3782
  issues.push({ path: `${at}/components/${i}`, message: `a component needs an id and a component` });
3660
3783
  else if (ids.has(c.id))
3661
3784
  issues.push({ path: `${at}/components/${i}/id`, message: `duplicate id ${c.id}` });
@@ -3671,9 +3794,9 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3671
3794
  else
3672
3795
  template.bindings.forEach((b, i) => {
3673
3796
  const bp = `${at}/bindings/${i}`;
3674
- if (!isObject5(b) || typeof b.path !== `string` || !POINTER.test(b.path))
3797
+ if (!isObject6(b) || typeof b.path !== `string` || !POINTER.test(b.path))
3675
3798
  issues.push({ path: `${bp}/path`, message: `path is a JSON pointer` });
3676
- if (!isObject5(b) || typeof b.source !== `string` || !parseSource2(b.source))
3799
+ if (!isObject6(b) || typeof b.source !== `string` || !parseSource2(b.source))
3677
3800
  issues.push({ path: `${bp}/source`, message: `source is a scheme:name URI` });
3678
3801
  });
3679
3802
  }
@@ -3681,7 +3804,7 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3681
3804
  if (pkg.functions !== undefined && (!Array.isArray(pkg.functions) || pkg.functions.some((f) => typeof f !== `string` || !f)))
3682
3805
  issues.push({ path: `/functions`, message: `functions is a list of names or prefix* patterns` });
3683
3806
  if (pkg.records !== undefined) {
3684
- if (!isObject5(pkg.records))
3807
+ if (!isObject6(pkg.records))
3685
3808
  issues.push({ path: `/records`, message: `records is an object of kinds` });
3686
3809
  else
3687
3810
  for (const kind of Object.keys(pkg.records).sort()) {
@@ -3689,7 +3812,7 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3689
3812
  const at = `/records/${kind}`;
3690
3813
  if (!RECORD_KIND_PATTERN2.test(kind))
3691
3814
  issues.push({ path: at, message: `a kind is lowercase letters, digits and underscores` });
3692
- if (!isObject5(def))
3815
+ if (!isObject6(def))
3693
3816
  issues.push({ path: at, message: `a kind is {schema, title?}` });
3694
3817
  else
3695
3818
  issues.push(...validateRecordSchema2(def.schema, `${at}/schema`));
@@ -3697,29 +3820,33 @@ function validatePackage2(pkg, catalogIds = supportedCatalogIds2(), extensions)
3697
3820
  }
3698
3821
  if (pkg.sources !== undefined && (!Array.isArray(pkg.sources) || pkg.sources.some((f) => typeof f !== `string` || !f)))
3699
3822
  issues.push({ path: `/sources`, message: `sources is a list of scheme:name sources or prefix* patterns` });
3700
- else if (Array.isArray(pkg.sources) && isObject5(pkg.templates))
3823
+ else if (Array.isArray(pkg.sources) && isObject6(pkg.templates))
3701
3824
  for (const [id, template] of Object.entries(pkg.templates)) {
3702
- if (!isObject5(template) || !Array.isArray(template.bindings))
3825
+ if (!isObject6(template) || !Array.isArray(template.bindings))
3703
3826
  continue;
3704
3827
  template.bindings.forEach((b, i) => {
3705
- if (isObject5(b) && typeof b.source === `string` && parseSource2(b.source) && !sourceAllowed2(pkg.sources, b.source))
3828
+ if (isObject6(b) && typeof b.source === `string` && parseSource2(b.source) && !sourceAllowed2(pkg.sources, b.source))
3706
3829
  issues.push({ path: `/templates/${id}/bindings/${i}/source`, message: `source ${b.source} is not in the package's sources` });
3707
3830
  });
3708
3831
  }
3709
- if (isObject5(pkg.templates))
3832
+ if (isObject6(pkg.templates))
3710
3833
  for (const [id, template] of Object.entries(pkg.templates)) {
3711
- if (!isObject5(template) || !Array.isArray(template.bindings))
3834
+ if (!isObject6(template) || !Array.isArray(template.bindings))
3712
3835
  continue;
3713
3836
  template.bindings.forEach((b, i) => {
3714
- const parsed = isObject5(b) && typeof b.source === `string` ? parseSource2(b.source) : null;
3837
+ const parsed = isObject6(b) && typeof b.source === `string` ? parseSource2(b.source) : null;
3715
3838
  if (parsed?.scheme !== RECORDS_SCHEME2)
3716
3839
  return;
3717
- if (!isObject5(pkg.records) || !Object.prototype.hasOwnProperty.call(pkg.records, parsed.name))
3840
+ if (!isObject6(pkg.records) || !Object.prototype.hasOwnProperty.call(pkg.records, parsed.name))
3718
3841
  issues.push({ path: `/templates/${id}/bindings/${i}/source`, message: `records:${parsed.name} names no declared kind` });
3719
3842
  });
3720
3843
  }
3721
3844
  if (pkg.tools !== undefined)
3722
3845
  issues.push(...validateTools2(pkg.tools));
3846
+ if (pkg.upstreams !== undefined)
3847
+ issues.push(...validateUpstreams2(pkg.upstreams));
3848
+ if (pkg.exposes !== undefined)
3849
+ issues.push(...validatePackageExposes2(pkg.exposes, pkg.records, pkg.upstreams));
3723
3850
  if (pkg.extensions !== undefined)
3724
3851
  issues.push(...validateExtensions(pkg.extensions, catalogIds, extensions));
3725
3852
  return issues;
@@ -3731,7 +3858,7 @@ function validateExtensions(list, catalogIds, available) {
3731
3858
  const seen = new Set;
3732
3859
  list.forEach((ext, i) => {
3733
3860
  const at = `/extensions/${i}`;
3734
- if (!isObject5(ext))
3861
+ if (!isObject6(ext))
3735
3862
  return void issues.push({ path: at, message: `an extension is {id, version, components?}` });
3736
3863
  const id = typeof ext.id === `string` && ext.id ? ext.id : null;
3737
3864
  if (!id)
@@ -3790,12 +3917,12 @@ function templateMessages2(pkg, templateId, surfaceId, data) {
3790
3917
  function mergeData2(base, over) {
3791
3918
  if (over === undefined)
3792
3919
  return base;
3793
- if (isObject5(base) && isObject5(over))
3920
+ if (isObject6(base) && isObject6(over))
3794
3921
  return { ...base, ...over };
3795
3922
  return over;
3796
3923
  }
3797
3924
  // packages/exponential-ui/src/host/router.ts
3798
- var isObject6 = (v) => !!v && typeof v === `object` && !Array.isArray(v);
3925
+ var isObject7 = (v) => !!v && typeof v === `object` && !Array.isArray(v);
3799
3926
 
3800
3927
  class HostRouter2 {
3801
3928
  extensionIds;
@@ -3832,8 +3959,8 @@ class HostRouter2 {
3832
3959
  }
3833
3960
  route(message) {
3834
3961
  if (oversized2(message))
3835
- return [this.invalid(isObject6(message) ? surfaceIdOf(message) : ``, LIMIT_ISSUES2.messageBytes)];
3836
- if (!isObject6(message))
3962
+ return [this.invalid(isObject7(message) ? surfaceIdOf(message) : ``, LIMIT_ISSUES2.messageBytes)];
3963
+ if (!isObject7(message))
3837
3964
  return [this.invalid(``, `a message is a JSON object`)];
3838
3965
  if (message.version !== undefined && message.version !== A2UI_VERSION2)
3839
3966
  return [this.invalid(surfaceIdOf(message), `unsupported version ${String(message.version)}`)];
@@ -3842,7 +3969,7 @@ class HostRouter2 {
3842
3969
  return [this.invalid(surfaceIdOf(message), `expected exactly one of ${MESSAGE_KINDS2.join(`, `)}`)];
3843
3970
  const kind = kinds[0];
3844
3971
  const body = message[kind];
3845
- if (!isObject6(body) || typeof body.surfaceId !== `string` || !body.surfaceId)
3972
+ if (!isObject7(body) || typeof body.surfaceId !== `string` || !body.surfaceId)
3846
3973
  return [this.invalid(``, `${kind}.surfaceId is required`)];
3847
3974
  const surfaceId = body.surfaceId;
3848
3975
  switch (kind) {
@@ -3939,7 +4066,7 @@ function oversized2(message) {
3939
4066
  }
3940
4067
  function surfaceIdOf(message) {
3941
4068
  for (const v of Object.values(message))
3942
- if (isObject6(v) && typeof v.surfaceId === `string`)
4069
+ if (isObject7(v) && typeof v.surfaceId === `string`)
3943
4070
  return v.surfaceId;
3944
4071
  return ``;
3945
4072
  }
@@ -4549,7 +4676,7 @@ class McpTransport2 {
4549
4676
  return reply.result;
4550
4677
  }
4551
4678
  }
4552
- export { CATALOG_ID2, LITE_CATALOG_ID2, BASIC_CATALOG_ID2, BASIC_VERSION2, CATALOG_VERSION2, UNKNOWN_COMPONENT_NAME2, COMPONENT_NAMES2, NATIVE_COMPONENTS2, MACRO_COMPONENTS2, LITE_COMPONENTS2, COMPONENT_GROUPS2, SPECIMEN_IDS2, ENUMS2, TOKEN_NAMES2, STYLE_KEY_NAMES2, STYLE_STATE_NAMES2, ICON_NAMES2, FUNCTION_NAMES2, BASIC_COMPONENT_MAP2, BASIC_ICON_MAP2, BASIC_PLACEHOLDER_ICON2, DEFAULT_STRINGS2, STRING_IDS2, parseStringRef2, isStringRef2, stringTable2, formatString2, resolveString2, locale_default, displayString2, currencyDigits2, parseDateValue2, formatPattern2, ENGLISH_DATE_PATTERNS2, ENGLISH_TIME_PATTERN2, ENGLISH_DATE_TIME_JOIN2, fixedOffset2, intlZoneOffset2, relativeTimeUnit2, englishFormatter2, intlFormatter2, FORMAT_FUNCTION_NAMES2, formatFunctions2, ENGLISH_FORMAT_FUNCTIONS2, isBinding2, isCall2, isDynamic2, truthy2, valuesEqual2, clampNumber2, fillTemplate2, evalExpr2, evalConditionValue2, evalCondition2, evalValue2, percent2, filterItems2, CORE_FUNCTIONS2, CORE_FUNCTION_NAMES2, LIMITS2, MAX_COMPONENTS2, MAX_DEPTH2, MAX_MESSAGE_BYTES2, MAX_TEMPLATE_ITEMS2, MAX_POINTER_BYTES2, MAX_POINTER_SEGMENTS2, LIMIT_ISSUES2, absolutePath2, hasItem2, readPath2, readPointer2, writeTokens2, POINTER_ISSUES2, writePointer2, BIND_FUNCTIONS2, BIND_FUNCTION_NAMES2, resolveDynamic2, isVisible2, withOwnWrites2, submitClosesOverlay2, runAction2, isDataSchema2, resolveProp2, resolveNodeProps2, hasRowSlots2, rowScope2, bindRowSlot2, sectionScope2, bindSectionHeader2, bindTree2, treeGuides2, isRowRoot2, applyTreeGuides2, BREAKPOINTS2, isResponsiveValue2, responsiveAt2, propsAt2, expandMacros2, isCallableName2, validateNode2, validateProps2, basicMap2, mapBasicIcon2, mapBasicComponent2, BASIC_TRANSFORM_NAMES2, RESERVED_KEYS2, validVisible2, childTemplate2, reduceSurface2, slotAllowed2, reduceNested2, preorder2, BUILTIN_FUNCTIONS2, matchesPattern2, decideFunction2, combineDecisions2, packagePolicy2, isPrivateHost2, decideUrl2, mediaRequest2, safeHref2, sortKeys2, imageDimensions2, svgDimensions2, imageFrames2, mediaImageWithinLimits2, parseSource2, sourceWithParams2, JsonlDecoder2, decodeJsonl2, SseDecoder2, messagesFromMcpResult2, mcpActionCall2, RECORD_KIND_PATTERN2, RECORD_RESERVED_KEYS2, RECORD_FIELD_TYPES2, RECORD_ITEM_TYPES2, RECORD_FORMATS2, validateRecordSchema2, validateRecord2, RECORDS_SCHEME2, RECORDS_FUNCTIONS2, RECORDS_QUERY2, RECORDS_RESERVED_PARAMS2, parseRecordsSource2, recordsValue2, MemoryRecordStore2, recordsHost2, PACKAGE_FILE_SIGNATURE_CONTEXT2, PACKAGE_FILE_SIGNATURE_ALG2, AUTHOR_KEY_PREFIX2, AUTHOR_NAME_MAX2, canonicalJson2, packageFileSignedBytes2, base64UrlEncode2, base64UrlDecode2, authorPublicKey2, signPackageFile2, verifyPackageFile2, TOOL_ID_PATTERN2, TOOL_KINDS2, validateTools2, toolConsent2, toolConsentKey2, toolCall2, PACKAGE_FORMAT_VERSION2, supportedCatalogIds2, clientCapabilities2, availableExtensions2, versionSatisfies2, validatePackage2, sourceAllowed2, templateMessages2, mergeData2, HostRouter2, normalizePath2, PackageError2, resolveSurfaceTheme2, SurfaceStore2, ExponentialHost2, MemoryTransport2, JsonlStreamTransport2, SseTransport2, WebSocketTransport2, McpTransport2 };
4679
+ export { CATALOG_ID2, LITE_CATALOG_ID2, BASIC_CATALOG_ID2, BASIC_VERSION2, CATALOG_VERSION2, UNKNOWN_COMPONENT_NAME2, COMPONENT_NAMES2, NATIVE_COMPONENTS2, MACRO_COMPONENTS2, LITE_COMPONENTS2, COMPONENT_GROUPS2, SPECIMEN_IDS2, ENUMS2, TOKEN_NAMES2, STYLE_KEY_NAMES2, STYLE_STATE_NAMES2, ICON_NAMES2, FUNCTION_NAMES2, BASIC_COMPONENT_MAP2, BASIC_ICON_MAP2, BASIC_PLACEHOLDER_ICON2, DEFAULT_STRINGS2, STRING_IDS2, parseStringRef2, isStringRef2, stringTable2, formatString2, resolveString2, locale_default, displayString2, currencyDigits2, parseDateValue2, formatPattern2, ENGLISH_DATE_PATTERNS2, ENGLISH_TIME_PATTERN2, ENGLISH_DATE_TIME_JOIN2, fixedOffset2, intlZoneOffset2, relativeTimeUnit2, englishFormatter2, intlFormatter2, FORMAT_FUNCTION_NAMES2, formatFunctions2, ENGLISH_FORMAT_FUNCTIONS2, isBinding2, isCall2, isDynamic2, truthy2, valuesEqual2, clampNumber2, fillTemplate2, evalExpr2, evalConditionValue2, evalCondition2, evalValue2, percent2, filterItems2, CORE_FUNCTIONS2, CORE_FUNCTION_NAMES2, LIMITS2, MAX_COMPONENTS2, MAX_DEPTH2, MAX_MESSAGE_BYTES2, MAX_TEMPLATE_ITEMS2, MAX_POINTER_BYTES2, MAX_POINTER_SEGMENTS2, LIMIT_ISSUES2, absolutePath2, hasItem2, readPath2, readPointer2, writeTokens2, POINTER_ISSUES2, writePointer2, BIND_FUNCTIONS2, BIND_FUNCTION_NAMES2, resolveDynamic2, isVisible2, withOwnWrites2, submitClosesOverlay2, runAction2, isDataSchema2, resolveProp2, resolveNodeProps2, hasRowSlots2, rowScope2, bindRowSlot2, sectionScope2, bindSectionHeader2, bindTree2, treeGuides2, isRowRoot2, applyTreeGuides2, BREAKPOINTS2, isResponsiveValue2, responsiveAt2, propsAt2, expandMacros2, isCallableName2, validateNode2, validateProps2, basicMap2, mapBasicIcon2, mapBasicComponent2, BASIC_TRANSFORM_NAMES2, RESERVED_KEYS2, validVisible2, childTemplate2, reduceSurface2, slotAllowed2, reduceNested2, preorder2, BUILTIN_FUNCTIONS2, matchesPattern2, decideFunction2, combineDecisions2, packagePolicy2, isPrivateHost2, decideUrl2, mediaRequest2, safeHref2, sortKeys2, imageDimensions2, svgDimensions2, imageFrames2, mediaImageWithinLimits2, parseSource2, sourceWithParams2, JsonlDecoder2, decodeJsonl2, SseDecoder2, messagesFromMcpResult2, mcpActionCall2, RECORD_KIND_PATTERN2, RECORD_RESERVED_KEYS2, RECORD_FIELD_TYPES2, RECORD_ITEM_TYPES2, RECORD_FORMATS2, validateRecordSchema2, validateRecord2, RECORDS_SCHEME2, RECORDS_FUNCTIONS2, RECORDS_QUERY2, RECORDS_RESERVED_PARAMS2, parseRecordsSource2, recordsValue2, MemoryRecordStore2, recordsHost2, PACKAGE_FILE_SIGNATURE_CONTEXT2, PACKAGE_FILE_SIGNATURE_ALG2, AUTHOR_KEY_PREFIX2, AUTHOR_NAME_MAX2, canonicalJson2, packageFileSignedBytes2, base64UrlEncode2, base64UrlDecode2, authorPublicKey2, signPackageFile2, verifyPackageFile2, TOOL_ID_PATTERN2, TOOL_KINDS2, validateTools2, toolConsent2, toolConsentKey2, toolCall2, EXPOSES_LIMITS2, EXPOSE_RUN_KINDS2, exposeTemplatePaths2, exposeActionAccess2, exposeNameDestructive2, validateUpstreams2, exposeIssues2, validatePackageExposes2, PACKAGE_FORMAT_VERSION2, supportedCatalogIds2, clientCapabilities2, availableExtensions2, versionSatisfies2, validatePackage2, sourceAllowed2, templateMessages2, mergeData2, HostRouter2, normalizePath2, PackageError2, resolveSurfaceTheme2, SurfaceStore2, ExponentialHost2, MemoryTransport2, JsonlStreamTransport2, SseTransport2, WebSocketTransport2, McpTransport2 };
4553
4680
 
4554
- //# debugId=E72CFA112ABB9DDE64756E2164756E21
4555
- //# sourceMappingURL=index-gtk2gwsb.js.map
4681
+ //# debugId=6B9F22BC0C90043D64756E2164756E21
4682
+ //# sourceMappingURL=index-4z7f2bp1.js.map