@almadar/core 10.80.0 → 10.82.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 (34) hide show
  1. package/dist/builders.d.ts +3 -3
  2. package/dist/builders.js +38 -0
  3. package/dist/builders.js.map +1 -1
  4. package/dist/{effect-C4uehm-r.d.ts → effect-Baldm2vM.d.ts} +369 -4
  5. package/dist/{entityAccess-BMKFgmsc.d.ts → entityAccess-CDYT7WWR.d.ts} +1 -1
  6. package/dist/factory/index.d.ts +4 -4
  7. package/dist/factory/index.js +980 -10
  8. package/dist/factory/index.js.map +1 -1
  9. package/dist/factory-runtime/index.d.ts +3 -3
  10. package/dist/factory-runtime/index.js +38 -0
  11. package/dist/factory-runtime/index.js.map +1 -1
  12. package/dist/{index-DqUnw2Oo.d.ts → index-R8PyPrGg.d.ts} +4 -4
  13. package/dist/index.d.ts +10 -10
  14. package/dist/index.js +2135 -406
  15. package/dist/index.js.map +1 -1
  16. package/dist/mock/index.d.ts +4 -4
  17. package/dist/mock/index.js +38 -0
  18. package/dist/mock/index.js.map +1 -1
  19. package/dist/patterns/component-mapping.json +21 -1
  20. package/dist/patterns/event-contracts.json +1 -1
  21. package/dist/patterns/index.d.ts +4045 -608
  22. package/dist/patterns/index.js +1963 -405
  23. package/dist/patterns/index.js.map +1 -1
  24. package/dist/patterns/integrators-registry.json +1004 -402
  25. package/dist/patterns/patterns-registry.json +933 -1
  26. package/dist/patterns/registry.json +933 -1
  27. package/dist/patterns/services-registry.json +1171 -424
  28. package/dist/{schema-Cma07_18.d.ts → schema-1KQUz2pE.d.ts} +2 -2
  29. package/dist/{trait-BXkQKZbO.d.ts → trait-Dsp0vmGp.d.ts} +1 -1
  30. package/dist/types/index.d.ts +5 -5
  31. package/dist/types/index.js +176 -1
  32. package/dist/types/index.js.map +1 -1
  33. package/dist/{types-DoAKLgCZ.d.ts → types-DJYozDXK.d.ts} +2 -2
  34. package/package.json +1 -1
@@ -27048,6 +27048,28 @@ var patterns_registry_default = {
27048
27048
  ],
27049
27049
  description: "Accessible label/tooltip for the row hover action."
27050
27050
  },
27051
+ onNodeReorder: {
27052
+ types: [
27053
+ "function"
27054
+ ],
27055
+ description: "Called when a row is dropped onto another, in flat `items` mode; carries the moved node's id, its new parent id (`null` for a root drop), and its index within the new parent's children. Presence-gated: binding this prop is what turns on row dragging.",
27056
+ kind: "callback",
27057
+ callbackArgs: [
27058
+ {
27059
+ name: "id",
27060
+ type: "string"
27061
+ },
27062
+ {
27063
+ name: "newParentId",
27064
+ type: "string"
27065
+ },
27066
+ {
27067
+ name: "index",
27068
+ type: "number"
27069
+ }
27070
+ ],
27071
+ default: ""
27072
+ },
27051
27073
  className: {
27052
27074
  types: [
27053
27075
  "string"
@@ -33596,6 +33618,20 @@ var patterns_registry_default = {
33596
33618
  "role",
33597
33619
  "category"
33598
33620
  ]
33621
+ },
33622
+ toggleEvent: {
33623
+ types: [
33624
+ "string"
33625
+ ],
33626
+ description: "Event dispatched via event bus on toggle, carrying the new muted state.",
33627
+ kind: "event-ref",
33628
+ emitPayloadSchema: [
33629
+ {
33630
+ name: "muted",
33631
+ type: "boolean",
33632
+ required: true
33633
+ }
33634
+ ]
33599
33635
  }
33600
33636
  }
33601
33637
  },
@@ -36067,6 +36103,19 @@ var patterns_registry_default = {
36067
36103
  "string"
36068
36104
  ],
36069
36105
  description: "Class for right/bottom pane"
36106
+ },
36107
+ onRatioChange: {
36108
+ types: [
36109
+ "function"
36110
+ ],
36111
+ description: "Called with the new ratio while dragging. Providing this makes `ratio` controlled \u2014 the rendered split always tracks the prop instead of internal state, mirroring a controlled input. Omit for uncontrolled (self-tracked) behavior.",
36112
+ kind: "callback",
36113
+ callbackArgs: [
36114
+ {
36115
+ name: "ratio",
36116
+ type: "number"
36117
+ }
36118
+ ]
36070
36119
  }
36071
36120
  }
36072
36121
  },
@@ -38685,6 +38734,92 @@ var patterns_registry_default = {
38685
38734
  ]
38686
38735
  }
38687
38736
  },
38737
+ editable: {
38738
+ types: [
38739
+ "boolean"
38740
+ ],
38741
+ description: "--- Scene-edit mode (a game studio selecting/dragging drawables). Purely",
38742
+ default: false
38743
+ },
38744
+ selectedId: {
38745
+ types: [
38746
+ "string"
38747
+ ],
38748
+ description: "The currently-selected drawable id (controlled); `null`/undefined = none.",
38749
+ default: null
38750
+ },
38751
+ onSelect: {
38752
+ types: [
38753
+ "function"
38754
+ ],
38755
+ description: "Fired on a click that changes selection \u2014 before `selectEvent`.",
38756
+ kind: "callback",
38757
+ callbackArgs: [
38758
+ {
38759
+ name: "id",
38760
+ type: "string"
38761
+ }
38762
+ ]
38763
+ },
38764
+ onMove: {
38765
+ types: [
38766
+ "function"
38767
+ ],
38768
+ description: "Fired once per drag gesture, on drop \u2014 before `moveEvent`.",
38769
+ kind: "callback",
38770
+ callbackArgs: [
38771
+ {
38772
+ name: "id",
38773
+ type: "string"
38774
+ },
38775
+ {
38776
+ name: "x",
38777
+ type: "number"
38778
+ },
38779
+ {
38780
+ name: "y",
38781
+ type: "number"
38782
+ }
38783
+ ]
38784
+ },
38785
+ selectEvent: {
38786
+ types: [
38787
+ "string"
38788
+ ],
38789
+ description: "Declarative selection event, `UI:{selectEvent} { id }`.",
38790
+ kind: "event-ref",
38791
+ emitPayloadSchema: [
38792
+ {
38793
+ name: "id",
38794
+ type: "string",
38795
+ required: true
38796
+ }
38797
+ ]
38798
+ },
38799
+ moveEvent: {
38800
+ types: [
38801
+ "string"
38802
+ ],
38803
+ description: "Declarative move event, `UI:{moveEvent} { id, x, y }` \u2014 fired once on drop.",
38804
+ kind: "event-ref",
38805
+ emitPayloadSchema: [
38806
+ {
38807
+ name: "id",
38808
+ type: "string",
38809
+ required: true
38810
+ },
38811
+ {
38812
+ name: "x",
38813
+ type: "number",
38814
+ required: true
38815
+ },
38816
+ {
38817
+ name: "y",
38818
+ type: "number",
38819
+ required: true
38820
+ }
38821
+ ]
38822
+ },
38688
38823
  camera: {
38689
38824
  types: [
38690
38825
  "string"
@@ -39860,6 +39995,12 @@ var patterns_registry_default = {
39860
39995
  ],
39861
39996
  description: "Background color (default transparent)."
39862
39997
  },
39998
+ fontFamily: {
39999
+ types: [
40000
+ "string"
40001
+ ],
40002
+ description: "Canvas text font family. Falls back to the theme's --font-family-body."
40003
+ },
39863
40004
  shapes: {
39864
40005
  types: [
39865
40006
  "array"
@@ -39984,6 +40125,11 @@ var patterns_registry_default = {
39984
40125
  "number"
39985
40126
  ]
39986
40127
  },
40128
+ fontFamily: {
40129
+ types: [
40130
+ "string"
40131
+ ]
40132
+ },
39987
40133
  align: {
39988
40134
  types: [
39989
40135
  "string"
@@ -41356,6 +41502,11 @@ var patterns_registry_default = {
41356
41502
  "number"
41357
41503
  ]
41358
41504
  },
41505
+ fontFamily: {
41506
+ types: [
41507
+ "string"
41508
+ ]
41509
+ },
41359
41510
  align: {
41360
41511
  types: [
41361
41512
  "string"
@@ -42631,6 +42782,11 @@ var patterns_registry_default = {
42631
42782
  "number"
42632
42783
  ]
42633
42784
  },
42785
+ fontFamily: {
42786
+ types: [
42787
+ "string"
42788
+ ]
42789
+ },
42634
42790
  align: {
42635
42791
  types: [
42636
42792
  "string"
@@ -43093,6 +43249,26 @@ var patterns_registry_default = {
43093
43249
  description: "Draw numeric labels on grid lines (default false).",
43094
43250
  default: false
43095
43251
  },
43252
+ tickLabelFontSize: {
43253
+ types: [
43254
+ "number"
43255
+ ],
43256
+ description: "Font size in px for axis tick labels (default 10).",
43257
+ default: 10
43258
+ },
43259
+ labelFontSize: {
43260
+ types: [
43261
+ "number"
43262
+ ],
43263
+ description: "Base font size in px for all other canvas annotations (points, vectors, guides, curves, regions, angles, hops; default 12).",
43264
+ default: 12
43265
+ },
43266
+ fontFamily: {
43267
+ types: [
43268
+ "string"
43269
+ ],
43270
+ description: 'Canvas text font family. Accepts a known game-font key (e.g. "future-narrow") or a CSS font-family string.'
43271
+ },
43096
43272
  showCurveLabels: {
43097
43273
  types: [
43098
43274
  "boolean"
@@ -43670,6 +43846,11 @@ var patterns_registry_default = {
43670
43846
  "number"
43671
43847
  ]
43672
43848
  },
43849
+ fontFamily: {
43850
+ types: [
43851
+ "string"
43852
+ ]
43853
+ },
43673
43854
  align: {
43674
43855
  types: [
43675
43856
  "string"
@@ -45205,6 +45386,11 @@ var patterns_registry_default = {
45205
45386
  "number"
45206
45387
  ]
45207
45388
  },
45389
+ fontFamily: {
45390
+ types: [
45391
+ "string"
45392
+ ]
45393
+ },
45208
45394
  align: {
45209
45395
  types: [
45210
45396
  "string"
@@ -46414,6 +46600,11 @@ var patterns_registry_default = {
46414
46600
  "number"
46415
46601
  ]
46416
46602
  },
46603
+ fontFamily: {
46604
+ types: [
46605
+ "string"
46606
+ ]
46607
+ },
46417
46608
  align: {
46418
46609
  types: [
46419
46610
  "string"
@@ -49696,6 +49887,90 @@ var patterns_registry_default = {
49696
49887
  ]
49697
49888
  }
49698
49889
  },
49890
+ editable: {
49891
+ types: [
49892
+ "boolean"
49893
+ ],
49894
+ description: "--- Scene-edit mode (a game studio selecting/dragging drawables). Purely"
49895
+ },
49896
+ selectedId: {
49897
+ types: [
49898
+ "string"
49899
+ ],
49900
+ description: "The currently-selected drawable id (controlled); `null`/undefined = none."
49901
+ },
49902
+ onSelect: {
49903
+ types: [
49904
+ "function"
49905
+ ],
49906
+ description: "Fired on a click that changes selection \u2014 before `selectEvent`.",
49907
+ kind: "callback",
49908
+ callbackArgs: [
49909
+ {
49910
+ name: "id",
49911
+ type: "string"
49912
+ }
49913
+ ]
49914
+ },
49915
+ onMove: {
49916
+ types: [
49917
+ "function"
49918
+ ],
49919
+ description: "Fired once per drag gesture, on drop \u2014 before `moveEvent`.",
49920
+ kind: "callback",
49921
+ callbackArgs: [
49922
+ {
49923
+ name: "id",
49924
+ type: "string"
49925
+ },
49926
+ {
49927
+ name: "x",
49928
+ type: "number"
49929
+ },
49930
+ {
49931
+ name: "y",
49932
+ type: "number"
49933
+ }
49934
+ ]
49935
+ },
49936
+ selectEvent: {
49937
+ types: [
49938
+ "string"
49939
+ ],
49940
+ description: "Declarative selection event, `UI:{selectEvent} { id }`.",
49941
+ kind: "event-ref",
49942
+ emitPayloadSchema: [
49943
+ {
49944
+ name: "id",
49945
+ type: "string",
49946
+ required: true
49947
+ }
49948
+ ]
49949
+ },
49950
+ moveEvent: {
49951
+ types: [
49952
+ "string"
49953
+ ],
49954
+ description: "Declarative move event, `UI:{moveEvent} { id, x, y }` \u2014 fired once on drop.",
49955
+ kind: "event-ref",
49956
+ emitPayloadSchema: [
49957
+ {
49958
+ name: "id",
49959
+ type: "string",
49960
+ required: true
49961
+ },
49962
+ {
49963
+ name: "x",
49964
+ type: "number",
49965
+ required: true
49966
+ },
49967
+ {
49968
+ name: "y",
49969
+ type: "number",
49970
+ required: true
49971
+ }
49972
+ ]
49973
+ },
49699
49974
  children: {
49700
49975
  types: [
49701
49976
  "node"
@@ -51224,6 +51499,11 @@ var patterns_registry_default = {
51224
51499
  "number"
51225
51500
  ]
51226
51501
  },
51502
+ fontFamily: {
51503
+ types: [
51504
+ "string"
51505
+ ]
51506
+ },
51227
51507
  align: {
51228
51508
  types: [
51229
51509
  "string"
@@ -52473,16 +52753,668 @@ var patterns_registry_default = {
52473
52753
  description: "className prop"
52474
52754
  }
52475
52755
  }
52476
- }
52477
- }};
52478
- var JsonValueSchema = z.lazy(
52479
- () => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
52480
- );
52481
-
52482
- // src/patterns/helpers/prompt-helpers.ts
52483
- function getAllPatternTypes() {
52484
- const patterns = patterns_registry_default.patterns || {};
52485
- return Object.keys(patterns);
52756
+ },
52757
+ "floating-toolbar": {
52758
+ type: "floating-toolbar",
52759
+ category: "component",
52760
+ tier: "molecules",
52761
+ family: "core",
52762
+ description: "FloatingToolbar component",
52763
+ suggestedFor: [
52764
+ "floating",
52765
+ "toolbar",
52766
+ "floating toolbar"
52767
+ ],
52768
+ typicalSize: "medium",
52769
+ propsSchema: {
52770
+ items: {
52771
+ types: [
52772
+ "array"
52773
+ ],
52774
+ description: "Tool items rendered as icon buttons",
52775
+ required: true,
52776
+ items: {
52777
+ types: [
52778
+ "object"
52779
+ ],
52780
+ properties: {
52781
+ id: {
52782
+ types: [
52783
+ "string"
52784
+ ]
52785
+ },
52786
+ icon: {
52787
+ types: [
52788
+ "icon",
52789
+ "string"
52790
+ ]
52791
+ },
52792
+ label: {
52793
+ types: [
52794
+ "string"
52795
+ ]
52796
+ },
52797
+ event: {
52798
+ types: [
52799
+ "string"
52800
+ ]
52801
+ },
52802
+ action: {
52803
+ types: [
52804
+ "string"
52805
+ ]
52806
+ },
52807
+ actionPayload: {
52808
+ types: [
52809
+ "object"
52810
+ ],
52811
+ freeform: true,
52812
+ eventPayloadBrand: true
52813
+ },
52814
+ active: {
52815
+ types: [
52816
+ "boolean"
52817
+ ]
52818
+ },
52819
+ disabled: {
52820
+ types: [
52821
+ "boolean"
52822
+ ]
52823
+ },
52824
+ testId: {
52825
+ types: [
52826
+ "string"
52827
+ ]
52828
+ }
52829
+ },
52830
+ required: [
52831
+ "id",
52832
+ "icon",
52833
+ "label"
52834
+ ]
52835
+ }
52836
+ },
52837
+ position: {
52838
+ types: [
52839
+ "string"
52840
+ ],
52841
+ description: "Strip position within the app frame.",
52842
+ enumValues: [
52843
+ "bottom-center",
52844
+ "bottom-left",
52845
+ "bottom-right"
52846
+ ],
52847
+ default: "bottom-center"
52848
+ },
52849
+ children: {
52850
+ types: [
52851
+ "node"
52852
+ ],
52853
+ description: "Custom cells appended after the items, separated by a divider"
52854
+ },
52855
+ className: {
52856
+ types: [
52857
+ "string"
52858
+ ],
52859
+ description: "Additional CSS classes on the positioned root"
52860
+ }
52861
+ }
52862
+ },
52863
+ "dock-layout": {
52864
+ type: "dock-layout",
52865
+ category: "layout",
52866
+ tier: "organisms",
52867
+ family: "core",
52868
+ description: "DockLayout component",
52869
+ suggestedFor: [
52870
+ "dock",
52871
+ "layout",
52872
+ "dock layout"
52873
+ ],
52874
+ typicalSize: "large",
52875
+ propsSchema: {
52876
+ rail: {
52877
+ types: [
52878
+ "node"
52879
+ ],
52880
+ description: "Fixed-width far-left vertical strip (e.g. an icon nav rail)."
52881
+ },
52882
+ sidebar: {
52883
+ types: [
52884
+ "node"
52885
+ ],
52886
+ description: "Collapsible, resizable left sidebar."
52887
+ },
52888
+ main: {
52889
+ types: [
52890
+ "node"
52891
+ ],
52892
+ description: "Required center region.",
52893
+ required: true
52894
+ },
52895
+ bottomPanel: {
52896
+ types: [
52897
+ "node"
52898
+ ],
52899
+ description: "Collapsible, resizable-height bottom panel."
52900
+ },
52901
+ statusBar: {
52902
+ types: [
52903
+ "node"
52904
+ ],
52905
+ description: "Slim strip pinned to the bottom of the frame, below the bottom panel."
52906
+ },
52907
+ secondarySidebar: {
52908
+ types: [
52909
+ "node"
52910
+ ],
52911
+ description: "Collapsible right sidebar."
52912
+ },
52913
+ railWidth: {
52914
+ types: [
52915
+ "number"
52916
+ ],
52917
+ description: "Width of `rail` in pixels. @default 56",
52918
+ default: 56
52919
+ },
52920
+ secondarySidebarWidth: {
52921
+ types: [
52922
+ "number"
52923
+ ],
52924
+ description: "Width of `secondarySidebar` in pixels (fixed \u2014 not resizable). @default 280",
52925
+ default: 280
52926
+ },
52927
+ sidebarCollapsed: {
52928
+ types: [
52929
+ "boolean"
52930
+ ],
52931
+ description: "Whether `sidebar` is collapsed. @default false",
52932
+ default: false
52933
+ },
52934
+ onSidebarCollapsedChange: {
52935
+ types: [
52936
+ "function"
52937
+ ],
52938
+ description: "onSidebarCollapsedChange prop",
52939
+ kind: "callback",
52940
+ callbackArgs: [
52941
+ {
52942
+ name: "collapsed",
52943
+ type: "boolean"
52944
+ }
52945
+ ]
52946
+ },
52947
+ sidebarWidth: {
52948
+ types: [
52949
+ "number"
52950
+ ],
52951
+ description: "Sidebar size as a SplitPane ratio (0-100, percentage of the sidebar/main split). @default 20",
52952
+ default: 20
52953
+ },
52954
+ onSidebarWidthChange: {
52955
+ types: [
52956
+ "function"
52957
+ ],
52958
+ description: "onSidebarWidthChange prop",
52959
+ kind: "callback",
52960
+ callbackArgs: [
52961
+ {
52962
+ name: "width",
52963
+ type: "number"
52964
+ }
52965
+ ]
52966
+ },
52967
+ sidebarMinSize: {
52968
+ types: [
52969
+ "number"
52970
+ ],
52971
+ description: "Minimum sidebar size in pixels, forwarded to SplitPane's `minSize`. @default 160",
52972
+ default: 160
52973
+ },
52974
+ bottomPanelCollapsed: {
52975
+ types: [
52976
+ "boolean"
52977
+ ],
52978
+ description: "Whether `bottomPanel` is collapsed. @default false",
52979
+ default: false
52980
+ },
52981
+ onBottomPanelCollapsedChange: {
52982
+ types: [
52983
+ "function"
52984
+ ],
52985
+ description: "onBottomPanelCollapsedChange prop",
52986
+ kind: "callback",
52987
+ callbackArgs: [
52988
+ {
52989
+ name: "collapsed",
52990
+ type: "boolean"
52991
+ }
52992
+ ]
52993
+ },
52994
+ bottomPanelHeight: {
52995
+ types: [
52996
+ "number"
52997
+ ],
52998
+ description: "Bottom panel size as a SplitPane ratio (0-100, percentage given to the panel). @default 30",
52999
+ default: 30
53000
+ },
53001
+ onBottomPanelHeightChange: {
53002
+ types: [
53003
+ "function"
53004
+ ],
53005
+ description: "onBottomPanelHeightChange prop",
53006
+ kind: "callback",
53007
+ callbackArgs: [
53008
+ {
53009
+ name: "height",
53010
+ type: "number"
53011
+ }
53012
+ ]
53013
+ },
53014
+ bottomPanelMinSize: {
53015
+ types: [
53016
+ "number"
53017
+ ],
53018
+ description: "Minimum bottom panel size in pixels, forwarded to SplitPane's `minSize`. @default 120",
53019
+ default: 120
53020
+ },
53021
+ secondarySidebarCollapsed: {
53022
+ types: [
53023
+ "boolean"
53024
+ ],
53025
+ description: "Whether `secondarySidebar` is collapsed. @default false",
53026
+ default: false
53027
+ },
53028
+ onSecondarySidebarCollapsedChange: {
53029
+ types: [
53030
+ "function"
53031
+ ],
53032
+ description: "onSecondarySidebarCollapsedChange prop",
53033
+ kind: "callback",
53034
+ callbackArgs: [
53035
+ {
53036
+ name: "collapsed",
53037
+ type: "boolean"
53038
+ }
53039
+ ]
53040
+ },
53041
+ className: {
53042
+ types: [
53043
+ "string"
53044
+ ],
53045
+ description: "Additional CSS classes on the root frame."
53046
+ },
53047
+ railClassName: {
53048
+ types: [
53049
+ "string"
53050
+ ],
53051
+ description: "railClassName prop"
53052
+ },
53053
+ sidebarClassName: {
53054
+ types: [
53055
+ "string"
53056
+ ],
53057
+ description: "sidebarClassName prop"
53058
+ },
53059
+ mainClassName: {
53060
+ types: [
53061
+ "string"
53062
+ ],
53063
+ description: "mainClassName prop"
53064
+ },
53065
+ bottomPanelClassName: {
53066
+ types: [
53067
+ "string"
53068
+ ],
53069
+ description: "bottomPanelClassName prop"
53070
+ },
53071
+ statusBarClassName: {
53072
+ types: [
53073
+ "string"
53074
+ ],
53075
+ description: "statusBarClassName prop"
53076
+ },
53077
+ secondarySidebarClassName: {
53078
+ types: [
53079
+ "string"
53080
+ ],
53081
+ description: "secondarySidebarClassName prop"
53082
+ }
53083
+ }
53084
+ },
53085
+ "command-palette": {
53086
+ type: "command-palette",
53087
+ category: "component",
53088
+ tier: "molecules",
53089
+ family: "core",
53090
+ description: "CommandPalette component",
53091
+ suggestedFor: [
53092
+ "command",
53093
+ "palette",
53094
+ "command palette"
53095
+ ],
53096
+ typicalSize: "medium",
53097
+ propsSchema: {
53098
+ open: {
53099
+ types: [
53100
+ "boolean"
53101
+ ],
53102
+ description: "Whether the palette overlay is open",
53103
+ required: true
53104
+ },
53105
+ onOpenChange: {
53106
+ types: [
53107
+ "function"
53108
+ ],
53109
+ description: "Called to open/close the overlay (Escape, overlay click, or a selection)",
53110
+ required: true,
53111
+ kind: "callback",
53112
+ callbackArgs: [
53113
+ {
53114
+ name: "open",
53115
+ type: "boolean"
53116
+ }
53117
+ ]
53118
+ },
53119
+ commands: {
53120
+ types: [
53121
+ "array"
53122
+ ],
53123
+ description: "Commands listed in the palette, filtered as the user types",
53124
+ required: true,
53125
+ items: {
53126
+ types: [
53127
+ "object"
53128
+ ],
53129
+ properties: {
53130
+ id: {
53131
+ types: [
53132
+ "string"
53133
+ ]
53134
+ },
53135
+ label: {
53136
+ types: [
53137
+ "string"
53138
+ ]
53139
+ },
53140
+ icon: {
53141
+ types: [
53142
+ "icon",
53143
+ "string"
53144
+ ]
53145
+ },
53146
+ shortcut: {
53147
+ types: [
53148
+ "string"
53149
+ ]
53150
+ },
53151
+ keywords: {
53152
+ types: [
53153
+ "array"
53154
+ ],
53155
+ items: {
53156
+ types: [
53157
+ "string"
53158
+ ]
53159
+ }
53160
+ },
53161
+ group: {
53162
+ types: [
53163
+ "string"
53164
+ ]
53165
+ },
53166
+ disabled: {
53167
+ types: [
53168
+ "boolean"
53169
+ ]
53170
+ },
53171
+ event: {
53172
+ types: [
53173
+ "string"
53174
+ ]
53175
+ },
53176
+ action: {
53177
+ types: [
53178
+ "string"
53179
+ ]
53180
+ },
53181
+ actionPayload: {
53182
+ types: [
53183
+ "object"
53184
+ ],
53185
+ freeform: true,
53186
+ eventPayloadBrand: true
53187
+ }
53188
+ },
53189
+ required: [
53190
+ "id",
53191
+ "label"
53192
+ ]
53193
+ }
53194
+ },
53195
+ onSelect: {
53196
+ types: [
53197
+ "function"
53198
+ ],
53199
+ description: "Called with the selected command (click, or Enter on the highlighted row)",
53200
+ kind: "callback",
53201
+ callbackArgs: [
53202
+ {
53203
+ name: "command",
53204
+ type: "object",
53205
+ schema: {
53206
+ types: [
53207
+ "object"
53208
+ ],
53209
+ properties: {
53210
+ id: {
53211
+ types: [
53212
+ "string"
53213
+ ]
53214
+ },
53215
+ label: {
53216
+ types: [
53217
+ "string"
53218
+ ]
53219
+ },
53220
+ icon: {
53221
+ types: [
53222
+ "icon",
53223
+ "string"
53224
+ ]
53225
+ },
53226
+ shortcut: {
53227
+ types: [
53228
+ "string"
53229
+ ]
53230
+ },
53231
+ keywords: {
53232
+ types: [
53233
+ "array"
53234
+ ],
53235
+ items: {
53236
+ types: [
53237
+ "string"
53238
+ ]
53239
+ }
53240
+ },
53241
+ group: {
53242
+ types: [
53243
+ "string"
53244
+ ]
53245
+ },
53246
+ disabled: {
53247
+ types: [
53248
+ "boolean"
53249
+ ]
53250
+ },
53251
+ event: {
53252
+ types: [
53253
+ "string"
53254
+ ]
53255
+ },
53256
+ action: {
53257
+ types: [
53258
+ "string"
53259
+ ]
53260
+ },
53261
+ actionPayload: {
53262
+ types: [
53263
+ "object"
53264
+ ],
53265
+ freeform: true,
53266
+ eventPayloadBrand: true
53267
+ }
53268
+ },
53269
+ required: [
53270
+ "id",
53271
+ "label"
53272
+ ]
53273
+ }
53274
+ }
53275
+ ]
53276
+ },
53277
+ placeholder: {
53278
+ types: [
53279
+ "string"
53280
+ ],
53281
+ description: "Search field placeholder. Consumers own i18n \u2014 plain string prop, no package-internal translation (matches FloatingToolbar's convention).",
53282
+ default: "Type a command..."
53283
+ },
53284
+ emptyLabel: {
53285
+ types: [
53286
+ "string"
53287
+ ],
53288
+ description: "Label shown when no command matches the query",
53289
+ default: "No matching commands"
53290
+ },
53291
+ className: {
53292
+ types: [
53293
+ "string"
53294
+ ],
53295
+ description: "Additional CSS classes on the overlay's dialog"
53296
+ }
53297
+ }
53298
+ },
53299
+ "game-audio-cue": {
53300
+ type: "game-audio-cue",
53301
+ category: "game",
53302
+ tier: "atoms",
53303
+ family: "game",
53304
+ description: "GameAudioCue component",
53305
+ suggestedFor: [
53306
+ "game",
53307
+ "audio",
53308
+ "cue",
53309
+ "game audio cue"
53310
+ ],
53311
+ typicalSize: "small",
53312
+ propsSchema: {
53313
+ cue: {
53314
+ types: [
53315
+ "string"
53316
+ ],
53317
+ description: "Manifest key played as a one-shot SFX each time `cueSeq` advances."
53318
+ },
53319
+ cueSeq: {
53320
+ types: [
53321
+ "number"
53322
+ ],
53323
+ description: "Monotonically increasing counter \u2014 bumping it re-triggers `cue`."
53324
+ },
53325
+ music: {
53326
+ types: [
53327
+ "string"
53328
+ ],
53329
+ description: "Manifest key to crossfade to as looping background music; unset/empty stops music."
53330
+ },
53331
+ muted: {
53332
+ types: [
53333
+ "boolean"
53334
+ ],
53335
+ description: "Muted state, owned externally and mirrored into the hook."
53336
+ },
53337
+ volume: {
53338
+ types: [
53339
+ "number"
53340
+ ],
53341
+ description: "Master volume 0-1, owned externally and mirrored into the hook."
53342
+ },
53343
+ manifest: {
53344
+ types: [
53345
+ "object"
53346
+ ],
53347
+ description: "Sound manifest \u2014 keys mapped to sound definitions (path, volume, loop, ...).",
53348
+ required: true,
53349
+ mapValue: {
53350
+ types: [
53351
+ "object"
53352
+ ],
53353
+ properties: {
53354
+ path: {
53355
+ types: [
53356
+ "string",
53357
+ "array"
53358
+ ],
53359
+ items: {
53360
+ types: [
53361
+ "string"
53362
+ ]
53363
+ }
53364
+ },
53365
+ volume: {
53366
+ types: [
53367
+ "number"
53368
+ ]
53369
+ },
53370
+ loop: {
53371
+ types: [
53372
+ "boolean"
53373
+ ]
53374
+ },
53375
+ poolSize: {
53376
+ types: [
53377
+ "number"
53378
+ ]
53379
+ },
53380
+ autostart: {
53381
+ types: [
53382
+ "boolean"
53383
+ ]
53384
+ },
53385
+ crossfade: {
53386
+ types: [
53387
+ "boolean"
53388
+ ]
53389
+ },
53390
+ crossfadeDurationMs: {
53391
+ types: [
53392
+ "number"
53393
+ ]
53394
+ }
53395
+ },
53396
+ required: [
53397
+ "path"
53398
+ ]
53399
+ }
53400
+ },
53401
+ baseUrl: {
53402
+ types: [
53403
+ "string"
53404
+ ],
53405
+ description: "Base URL prepended to every manifest path."
53406
+ }
53407
+ }
53408
+ }
53409
+ }};
53410
+ var JsonValueSchema = z.lazy(
53411
+ () => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
53412
+ );
53413
+
53414
+ // src/patterns/helpers/prompt-helpers.ts
53415
+ function getAllPatternTypes() {
53416
+ const patterns = patterns_registry_default.patterns || {};
53417
+ return Object.keys(patterns);
52486
53418
  }
52487
53419
  var ID_PREFIXES = {
52488
53420
  orbital: "orb_",
@@ -52832,6 +53764,44 @@ z.object({
52832
53764
  azimuth: z.number().optional(),
52833
53765
  elevation: z.number().optional()
52834
53766
  });
53767
+ var MANIFEST_ENTRY_KINDS = ["model", "image", "spritesheet", "audio", "json"];
53768
+ var ManifestEntryKindSchema = z.enum(MANIFEST_ENTRY_KINDS);
53769
+ var SoundEntrySchema = z.object({
53770
+ path: z.union([z.string(), z.array(z.string())]),
53771
+ volume: z.number().optional(),
53772
+ loop: z.boolean().optional(),
53773
+ poolSize: z.number().optional(),
53774
+ autostart: z.boolean().optional(),
53775
+ crossfade: z.boolean().optional(),
53776
+ crossfadeDurationMs: z.number().optional()
53777
+ });
53778
+ z.record(z.string(), SoundEntrySchema);
53779
+ var MANIFEST_CANVAS_AFFINITIES = ["isometric", "hex", "flat", "side", "3d", "none"];
53780
+ var ManifestCanvasAffinitySchema = z.enum(MANIFEST_CANVAS_AFFINITIES);
53781
+ var MANIFEST_SOURCE_CATALOGS = ["kenny", "kekec-assets", "iram-assets", "trait-wars-assets", "kflow-assets"];
53782
+ var ManifestSourceCatalogSchema = z.enum(MANIFEST_SOURCE_CATALOGS);
53783
+ var MANIFEST_ASSET_LICENSES = ["CC0", "proprietary"];
53784
+ var ManifestAssetLicenseSchema = z.enum(MANIFEST_ASSET_LICENSES);
53785
+ var ManifestFrameSpecSchema = z.union([
53786
+ z.object({ kind: z.literal("iso-tile"), w: z.number(), h: z.number() }),
53787
+ z.object({ kind: z.literal("sprite-sheet"), frame: z.number(), cols: z.number(), rows: z.number() }),
53788
+ z.string().min(1),
53789
+ z.null()
53790
+ ]);
53791
+ z.object({
53792
+ url: z.string(),
53793
+ name: z.string(),
53794
+ category: z.string(),
53795
+ kind: ManifestEntryKindSchema,
53796
+ width: z.number(),
53797
+ height: z.number(),
53798
+ canvasAffinity: ManifestCanvasAffinitySchema,
53799
+ genreAffinity: z.array(z.string()),
53800
+ swapClass: z.string(),
53801
+ sourceCatalog: ManifestSourceCatalogSchema,
53802
+ frameSpec: ManifestFrameSpecSchema,
53803
+ license: ManifestAssetLicenseSchema.optional()
53804
+ });
52835
53805
  var SExprDataSchema = z.lazy(
52836
53806
  () => z.union([SExprAtomSchema, z.array(SExprDataSchema)])
52837
53807
  );