@almadar/core 10.41.0 → 10.42.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.
@@ -3,7 +3,7 @@ import { z } from 'zod';
3
3
  // src/patterns/patterns-registry.json
4
4
  var patterns_registry_default = {
5
5
  version: "1.0.0",
6
- exportedAt: "2026-07-28T14:48:23.507Z",
6
+ exportedAt: "2026-07-28T16:34:50.202Z",
7
7
  patterns: {
8
8
  "entity-table": {
9
9
  type: "entity-table",
@@ -18160,6 +18160,22 @@ var patterns_registry_default = {
18160
18160
  description: 'Max items to show before "Show More" button. Defaults to 5. Set to 0 to disable.',
18161
18161
  default: 5
18162
18162
  },
18163
+ sortBy: {
18164
+ types: [
18165
+ "string"
18166
+ ],
18167
+ description: "Field name to order rows by. Values are compared by their own type \u2014 numbers numerically, date-like strings chronologically, everything else alphabetically \u2014 never by what the field is called. Empty cells sort last. Unset leaves the incoming order untouched. Orders only the rows already fetched: a collection larger than its `limit` still needs ordering at the data layer."
18168
+ },
18169
+ sortDirection: {
18170
+ types: [
18171
+ "string"
18172
+ ],
18173
+ description: "Direction for `sortBy`. Defaults to ascending.",
18174
+ enumValues: [
18175
+ "asc",
18176
+ "desc"
18177
+ ]
18178
+ },
18163
18179
  look: {
18164
18180
  types: [
18165
18181
  "string"
@@ -39210,7 +39226,8 @@ var patterns_registry_default = {
39210
39226
  "cell",
39211
39227
  "rect",
39212
39228
  "ellipse",
39213
- "poly"
39229
+ "poly",
39230
+ "path"
39214
39231
  ]
39215
39232
  },
39216
39233
  position: {
@@ -39295,6 +39312,12 @@ var patterns_registry_default = {
39295
39312
  ]
39296
39313
  }
39297
39314
  },
39315
+ d: {
39316
+ types: [
39317
+ "string"
39318
+ ],
39319
+ description: "SVG path data in world units relative to the cell's projected top-left \u2014 same coordinate convention as `points`."
39320
+ },
39298
39321
  fill: {
39299
39322
  types: [
39300
39323
  "string"
@@ -39695,7 +39718,8 @@ var patterns_registry_default = {
39695
39718
  "cell",
39696
39719
  "rect",
39697
39720
  "ellipse",
39698
- "poly"
39721
+ "poly",
39722
+ "path"
39699
39723
  ]
39700
39724
  },
39701
39725
  position: {
@@ -39770,6 +39794,11 @@ var patterns_registry_default = {
39770
39794
  ]
39771
39795
  }
39772
39796
  },
39797
+ d: {
39798
+ types: [
39799
+ "string"
39800
+ ]
39801
+ },
39773
39802
  fill: {
39774
39803
  types: [
39775
39804
  "string"
@@ -40917,175 +40946,72 @@ var patterns_registry_default = {
40917
40946
  }
40918
40947
  }
40919
40948
  },
40920
- "svg-draw-group": {
40921
- type: "svg-draw-group",
40949
+ "draw-group": {
40950
+ type: "draw-group",
40922
40951
  category: "game",
40923
40952
  tier: "atoms",
40924
40953
  family: "game",
40925
- description: "SvgDrawGroup component",
40954
+ description: "DrawGroup component",
40926
40955
  suggestedFor: [
40927
- "svg",
40928
40956
  "draw",
40929
40957
  "group",
40930
- "svg draw group"
40958
+ "draw group"
40931
40959
  ],
40932
40960
  typicalSize: "small",
40933
40961
  propsSchema: {
40934
- x: {
40935
- types: [
40936
- "number"
40937
- ],
40938
- description: "Grid-cell x of the group's origin.",
40939
- default: 0
40940
- },
40941
- y: {
40942
- types: [
40943
- "number"
40944
- ],
40945
- description: "Grid-cell y of the group's origin.",
40946
- default: 0
40947
- },
40948
- scale: {
40949
- types: [
40950
- "number"
40951
- ],
40952
- description: "Uniform scale applied after the translate."
40953
- },
40954
- rotate: {
40955
- types: [
40956
- "number"
40957
- ],
40958
- description: "Rotation in degrees applied after the translate."
40959
- },
40960
- opacity: {
40961
- types: [
40962
- "number"
40963
- ],
40964
- description: "0..1 opacity."
40965
- },
40966
- className: {
40967
- types: [
40968
- "string"
40969
- ],
40970
- description: "Additional CSS classes"
40971
- },
40972
- children: {
40973
- types: [
40974
- "node"
40975
- ],
40976
- description: "children prop"
40977
- }
40978
- }
40979
- },
40980
- "svg-draw-shape": {
40981
- type: "svg-draw-shape",
40982
- category: "game",
40983
- tier: "atoms",
40984
- family: "game",
40985
- description: "SvgDrawShape component",
40986
- suggestedFor: [
40987
- "svg",
40988
- "draw",
40989
- "shape",
40990
- "svg draw shape"
40991
- ],
40992
- typicalSize: "small",
40993
- propsSchema: {
40994
- shape: {
40962
+ id: {
40995
40963
  types: [
40996
40964
  "string"
40997
40965
  ],
40998
- description: "shape prop",
40999
- required: true,
41000
- enumValues: [
41001
- "rect",
41002
- "circle",
41003
- "ellipse",
41004
- "polygon",
41005
- "polyline",
41006
- "path",
41007
- "line"
41008
- ]
41009
- },
41010
- x: {
41011
- types: [
41012
- "number"
41013
- ],
41014
- description: "Grid-cell x of the element's translated origin.",
41015
- required: true
40966
+ description: "Optional source-tagged hit-test handle \u2014 the host indexes the drawable's ScenePos\u2192id so a pointer/raycast at that cell resolves to this id (unit/entity click). No id \u2192 the host emits only the coordinate (tile click)."
41016
40967
  },
41017
- y: {
40968
+ type: {
41018
40969
  types: [
41019
- "number"
40970
+ "unknown"
41020
40971
  ],
41021
- description: "Grid-cell y of the element's translated origin.",
40972
+ description: "type prop",
41022
40973
  required: true
41023
40974
  },
41024
- width: {
41025
- types: [
41026
- "number"
41027
- ],
41028
- description: "Rect width in cell units."
41029
- },
41030
- height: {
41031
- types: [
41032
- "number"
41033
- ],
41034
- description: "Rect height in cell units."
41035
- },
41036
- radius: {
41037
- types: [
41038
- "number"
41039
- ],
41040
- description: "Circle radius / ellipse horizontal radius in cell units."
41041
- },
41042
- radiusY: {
41043
- types: [
41044
- "number"
41045
- ],
41046
- description: "Ellipse vertical radius in cell units; omitted \u2192 `radius` (a circle)."
41047
- },
41048
- points: {
41049
- types: [
41050
- "string"
41051
- ],
41052
- description: "Polygon/polyline points, viewBox units relative to the translated origin."
41053
- },
41054
- d: {
40975
+ position: {
41055
40976
  types: [
41056
- "string"
40977
+ "object"
41057
40978
  ],
41058
- description: "Path data, viewBox units relative to the translated origin."
41059
- },
41060
- x2: {
41061
- types: [
41062
- "number"
40979
+ description: "Logical scene position; the projector maps it to pixels / world.",
40980
+ required: true,
40981
+ properties: {
40982
+ x: {
40983
+ types: [
40984
+ "number"
40985
+ ]
40986
+ },
40987
+ y: {
40988
+ types: [
40989
+ "number"
40990
+ ]
40991
+ },
40992
+ z: {
40993
+ types: [
40994
+ "number"
40995
+ ]
40996
+ }
40997
+ },
40998
+ propertyRequired: [
40999
+ "x",
41000
+ "y"
41063
41001
  ],
41064
- description: "Line end x in cell units."
41002
+ scenePos: true
41065
41003
  },
41066
- y2: {
41004
+ scale: {
41067
41005
  types: [
41068
41006
  "number"
41069
41007
  ],
41070
- description: "Line end y in cell units."
41071
- },
41072
- fill: {
41073
- types: [
41074
- "string"
41075
- ],
41076
- description: "fill prop"
41008
+ description: "Uniform scale applied to the whole group."
41077
41009
  },
41078
- stroke: {
41079
- types: [
41080
- "string"
41081
- ],
41082
- description: "stroke prop"
41083
- },
41084
- strokeWidth: {
41010
+ rotate: {
41085
41011
  types: [
41086
41012
  "number"
41087
41013
  ],
41088
- description: "strokeWidth prop"
41014
+ description: "Rotation in radians (painter units)."
41089
41015
  },
41090
41016
  opacity: {
41091
41017
  types: [
@@ -41093,268 +41019,22 @@ var patterns_registry_default = {
41093
41019
  ],
41094
41020
  description: "0..1 opacity."
41095
41021
  },
41096
- className: {
41097
- types: [
41098
- "string"
41099
- ],
41100
- description: "Additional CSS classes"
41101
- }
41102
- }
41103
- },
41104
- "svg-draw-text": {
41105
- type: "svg-draw-text",
41106
- category: "game",
41107
- tier: "atoms",
41108
- family: "game",
41109
- description: "SvgDrawText component",
41110
- suggestedFor: [
41111
- "svg",
41112
- "draw",
41113
- "text",
41114
- "svg draw text"
41115
- ],
41116
- typicalSize: "small",
41117
- propsSchema: {
41118
- x: {
41119
- types: [
41120
- "number"
41121
- ],
41122
- description: "Grid-cell x of the text anchor.",
41123
- required: true
41124
- },
41125
- y: {
41126
- types: [
41127
- "number"
41128
- ],
41129
- description: "Grid-cell y of the text anchor.",
41130
- required: true
41131
- },
41132
- text: {
41133
- types: [
41134
- "string"
41135
- ],
41136
- description: "The text content.",
41137
- required: true
41138
- },
41139
- size: {
41140
- types: [
41141
- "number"
41142
- ],
41143
- description: "Font size in viewBox units (default 12).",
41144
- default: 12
41145
- },
41146
- fill: {
41147
- types: [
41148
- "string"
41149
- ],
41150
- description: "fill prop",
41151
- default: "var(--color-foreground)"
41152
- },
41153
- anchor: {
41154
- types: [
41155
- "string"
41156
- ],
41157
- description: "Text anchor (default 'middle').",
41158
- enumValues: [
41159
- "start",
41160
- "middle",
41161
- "end"
41162
- ],
41163
- default: "middle"
41164
- },
41165
- className: {
41166
- types: [
41167
- "string"
41168
- ],
41169
- description: "Additional CSS classes"
41170
- }
41171
- }
41172
- },
41173
- "svg-draw-shape-layer": {
41174
- type: "svg-draw-shape-layer",
41175
- category: "game",
41176
- tier: "molecules",
41177
- family: "game",
41178
- description: "SvgDrawShapeLayer component",
41179
- suggestedFor: [
41180
- "svg",
41181
- "draw",
41182
- "shape",
41183
- "layer",
41184
- "svg draw shape layer"
41185
- ],
41186
- typicalSize: "medium",
41187
- propsSchema: {
41188
41022
  items: {
41189
41023
  types: [
41190
41024
  "array"
41191
41025
  ],
41192
- description: "items prop",
41026
+ description: "The grouped drawables, painted through the normal dispatch.",
41193
41027
  required: true,
41194
41028
  items: {
41195
41029
  types: [
41196
41030
  "object"
41197
41031
  ],
41198
- properties: {
41199
- id: {
41200
- types: [
41201
- "string"
41202
- ]
41203
- }
41204
- },
41205
- required: [
41206
- "id"
41207
- ]
41208
- }
41209
- },
41210
- fill: {
41211
- types: [
41212
- "string"
41213
- ],
41214
- description: "Default fill for items that don't set one."
41215
- },
41216
- stroke: {
41217
- types: [
41218
- "string"
41219
- ],
41220
- description: "Default stroke for items that don't set one."
41221
- },
41222
- strokeWidth: {
41223
- types: [
41224
- "number"
41225
- ],
41226
- description: "Default strokeWidth for items that don't set one."
41227
- },
41228
- opacity: {
41229
- types: [
41230
- "number"
41231
- ],
41232
- description: "Default 0..1 opacity for items that don't set one."
41233
- }
41234
- }
41235
- },
41236
- "svg-stage": {
41237
- type: "svg-stage",
41238
- category: "game",
41239
- tier: "molecules",
41240
- family: "game",
41241
- description: "SvgStage component",
41242
- suggestedFor: [
41243
- "svg",
41244
- "stage",
41245
- "svg stage"
41246
- ],
41247
- typicalSize: "medium",
41248
- propsSchema: {
41249
- cols: {
41250
- types: [
41251
- "number"
41252
- ],
41253
- description: "Grid width in cells.",
41254
- required: true
41255
- },
41256
- rows: {
41257
- types: [
41258
- "number"
41259
- ],
41260
- description: "Grid height in cells.",
41261
- required: true
41262
- },
41263
- tileSize: {
41264
- types: [
41265
- "number"
41266
- ],
41267
- description: "ViewBox units per cell (default 32); viewBox is `0 0 cols*tileSize rows*tileSize`.",
41268
- default: 32
41269
- },
41270
- background: {
41271
- types: [
41272
- "string"
41273
- ],
41274
- description: "Background rect fill (default `var(--color-background)`).",
41275
- default: "var(--color-background)"
41276
- },
41277
- tileClickEvent: {
41278
- types: [
41279
- "string"
41280
- ],
41281
- description: "Emitted as `UI:<event>` with `{ x, y }` cell coords on pointer up (<5px drag).",
41282
- kind: "event-ref",
41283
- emitPayloadSchema: [
41284
- {
41285
- name: "x",
41286
- type: "number",
41287
- required: true
41288
- },
41289
- {
41290
- name: "y",
41291
- type: "number",
41292
- required: true
41293
- }
41294
- ]
41295
- },
41296
- tileHoverEvent: {
41297
- types: [
41298
- "string"
41299
- ],
41300
- description: "Emitted as `UI:<event>` with `{ x, y }` cell coords on pointer move.",
41301
- kind: "event-ref",
41302
- emitPayloadSchema: [
41303
- {
41304
- name: "x",
41305
- type: "number",
41306
- required: true
41307
- },
41308
- {
41309
- name: "y",
41310
- type: "number",
41311
- required: true
41312
- }
41313
- ]
41314
- },
41315
- tileLeaveEvent: {
41316
- types: [
41317
- "string"
41318
- ],
41319
- description: "Emitted as `UI:<event>` with `{}` when the pointer leaves the stage.",
41320
- kind: "event-ref",
41321
- emitPayloadSchema: []
41322
- },
41323
- keyMap: {
41324
- types: [
41325
- "object"
41326
- ],
41327
- description: "Keyboard \u2192 semantic events: `e.code` \u2192 event name, emitted as `UI:<event>` with `{}`.",
41328
- mapValue: {
41329
- types: [
41330
- "string"
41331
- ]
41332
- }
41333
- },
41334
- keyUpMap: {
41335
- types: [
41336
- "object"
41337
- ],
41338
- description: "Keyup counterpart of `keyMap`.",
41339
- mapValue: {
41340
- types: [
41341
- "string"
41342
- ]
41032
+ drawableSlot: true
41343
41033
  }
41344
- },
41345
- className: {
41346
- types: [
41347
- "string"
41348
- ],
41349
- description: "Additional CSS classes"
41350
- },
41351
- children: {
41352
- types: [
41353
- "node"
41354
- ],
41355
- description: "children prop"
41356
41034
  }
41357
- }
41035
+ },
41036
+ drawable: true,
41037
+ drawHost: true
41358
41038
  }
41359
41039
  },
41360
41040
  categories: [
@@ -42276,7 +41956,7 @@ var integrators_registry_default = {
42276
41956
  // src/patterns/component-mapping.json
42277
41957
  var component_mapping_default = {
42278
41958
  version: "1.0.0",
42279
- exportedAt: "2026-07-28T14:48:23.507Z",
41959
+ exportedAt: "2026-07-28T16:34:50.202Z",
42280
41960
  mappings: {
42281
41961
  "page-header": {
42282
41962
  component: "PageHeader",
@@ -43650,29 +43330,9 @@ var component_mapping_default = {
43650
43330
  importPath: "@/components/core/molecules/ImportSourcePicker",
43651
43331
  category: "component"
43652
43332
  },
43653
- "svg-draw-group": {
43654
- component: "SvgDrawGroup",
43655
- importPath: "@/components/game/atoms/SvgDrawGroup",
43656
- category: "game"
43657
- },
43658
- "svg-draw-shape": {
43659
- component: "SvgDrawShape",
43660
- importPath: "@/components/game/atoms/SvgDrawShape",
43661
- category: "game"
43662
- },
43663
- "svg-draw-text": {
43664
- component: "SvgDrawText",
43665
- importPath: "@/components/game/atoms/SvgDrawText",
43666
- category: "game"
43667
- },
43668
- "svg-draw-shape-layer": {
43669
- component: "SvgDrawShapeLayer",
43670
- importPath: "@/components/game/molecules/SvgDrawShapeLayer",
43671
- category: "game"
43672
- },
43673
- "svg-stage": {
43674
- component: "SvgStage",
43675
- importPath: "@/components/game/molecules/SvgStage",
43333
+ "draw-group": {
43334
+ component: "DrawGroup",
43335
+ importPath: "@/components/game/atoms/DrawGroup",
43676
43336
  category: "game"
43677
43337
  }
43678
43338
  }
@@ -43681,7 +43341,7 @@ var component_mapping_default = {
43681
43341
  // src/patterns/event-contracts.json
43682
43342
  var event_contracts_default = {
43683
43343
  version: "1.0.0",
43684
- exportedAt: "2026-07-28T14:48:23.507Z",
43344
+ exportedAt: "2026-07-28T16:34:50.202Z",
43685
43345
  contracts: {
43686
43346
  form: {
43687
43347
  emits: [
@@ -44911,6 +44571,7 @@ var PATTERN_TYPES = [
44911
44571
  "doc-sidebar",
44912
44572
  "doc-toc",
44913
44573
  "document-viewer",
44574
+ "draw-group",
44914
44575
  "draw-shape",
44915
44576
  "draw-shape-layer",
44916
44577
  "draw-sprite",
@@ -45062,10 +44723,6 @@ var PATTERN_TYPES = [
45062
44723
  "subagent-trace-panel",
45063
44724
  "svg-branch",
45064
44725
  "svg-connection",
45065
- "svg-draw-group",
45066
- "svg-draw-shape",
45067
- "svg-draw-shape-layer",
45068
- "svg-draw-text",
45069
44726
  "svg-flow",
45070
44727
  "svg-grid",
45071
44728
  "svg-lobe",
@@ -45076,7 +44733,6 @@ var PATTERN_TYPES = [
45076
44733
  "svg-ring",
45077
44734
  "svg-shield",
45078
44735
  "svg-stack",
45079
- "svg-stage",
45080
44736
  "swipeable-row",
45081
44737
  "switch",
45082
44738
  "tabbed-container",