@meetelise/studio-components 0.0.10 → 0.0.12

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.
@@ -0,0 +1,1147 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "components": {
4
+ "Text": {
5
+ "category": "Text & Typography",
6
+ "description": "Semantic text with multiple heading/body variants and theme fonts",
7
+ "acceptsChildren": false,
8
+ "props": {
9
+ "content": {
10
+ "kind": "text",
11
+ "bindable": true,
12
+ "default": "The quick brown fox jumps over the lazy dog"
13
+ },
14
+ "variant": {
15
+ "kind": "enum",
16
+ "options": [
17
+ "display",
18
+ "h1",
19
+ "h2",
20
+ "h3",
21
+ "subtitle",
22
+ "body",
23
+ "body-lg",
24
+ "caption",
25
+ "overline"
26
+ ],
27
+ "default": "body"
28
+ }
29
+ }
30
+ },
31
+ "Button": {
32
+ "category": "Text & Typography",
33
+ "description": "Interactive button with navigation, scroll, and modal actions",
34
+ "acceptsChildren": false,
35
+ "props": {
36
+ "content": {
37
+ "kind": "string",
38
+ "bindable": true,
39
+ "default": "Get Started"
40
+ },
41
+ "variant": {
42
+ "kind": "enum",
43
+ "options": [
44
+ "primary",
45
+ "secondary",
46
+ "outline",
47
+ "ghost"
48
+ ],
49
+ "default": "primary"
50
+ },
51
+ "size": {
52
+ "kind": "enum",
53
+ "options": [
54
+ "sm",
55
+ "md",
56
+ "lg"
57
+ ],
58
+ "default": "md"
59
+ },
60
+ "fullWidth": {
61
+ "kind": "boolean",
62
+ "default": false
63
+ }
64
+ }
65
+ },
66
+ "Icon": {
67
+ "category": "Text & Typography",
68
+ "description": "SVG icons for amenities and features",
69
+ "acceptsChildren": false,
70
+ "props": {
71
+ "name": {
72
+ "kind": "enum",
73
+ "options": [
74
+ "pet",
75
+ "fitness",
76
+ "pool",
77
+ "coworking",
78
+ "clubroom",
79
+ "grill",
80
+ "parking",
81
+ "laundry",
82
+ "ev-charging",
83
+ "package",
84
+ "wifi",
85
+ "security"
86
+ ],
87
+ "default": "fitness"
88
+ },
89
+ "size": {
90
+ "kind": "enum",
91
+ "options": [
92
+ "sm",
93
+ "md",
94
+ "lg"
95
+ ],
96
+ "default": "md"
97
+ }
98
+ }
99
+ },
100
+ "Badge": {
101
+ "category": "Text & Typography",
102
+ "description": "Small pill labels for status, tags, and highlights",
103
+ "acceptsChildren": false,
104
+ "props": {
105
+ "label": {
106
+ "kind": "string",
107
+ "bindable": true,
108
+ "default": "Now Leasing"
109
+ },
110
+ "variant": {
111
+ "kind": "enum",
112
+ "options": [
113
+ "default",
114
+ "success",
115
+ "warning",
116
+ "info",
117
+ "accent"
118
+ ],
119
+ "default": "default"
120
+ },
121
+ "size": {
122
+ "kind": "enum",
123
+ "options": [
124
+ "sm",
125
+ "md"
126
+ ],
127
+ "default": "sm"
128
+ }
129
+ }
130
+ },
131
+ "Stat": {
132
+ "category": "Text & Typography",
133
+ "description": "Big number + label for statistics and highlights",
134
+ "acceptsChildren": false,
135
+ "props": {
136
+ "value": {
137
+ "kind": "string",
138
+ "bindable": true,
139
+ "default": "150"
140
+ },
141
+ "label": {
142
+ "kind": "string",
143
+ "bindable": true,
144
+ "default": "Units"
145
+ },
146
+ "prefix": {
147
+ "kind": "string",
148
+ "default": ""
149
+ },
150
+ "suffix": {
151
+ "kind": "string",
152
+ "default": "+"
153
+ },
154
+ "size": {
155
+ "kind": "enum",
156
+ "options": [
157
+ "sm",
158
+ "md",
159
+ "lg"
160
+ ],
161
+ "default": "md"
162
+ }
163
+ }
164
+ },
165
+ "Divider": {
166
+ "category": "Text & Typography",
167
+ "description": "Visual separator with optional label",
168
+ "acceptsChildren": false,
169
+ "props": {
170
+ "label": {
171
+ "kind": "string",
172
+ "default": ""
173
+ },
174
+ "spacing": {
175
+ "kind": "enum",
176
+ "options": [
177
+ "sm",
178
+ "md",
179
+ "lg"
180
+ ],
181
+ "default": "md"
182
+ }
183
+ }
184
+ },
185
+ "Stack": {
186
+ "category": "Layout",
187
+ "description": "Flexbox container for vertical or horizontal layouts",
188
+ "acceptsChildren": true,
189
+ "props": {
190
+ "direction": {
191
+ "kind": "enum",
192
+ "options": [
193
+ "vertical",
194
+ "horizontal"
195
+ ],
196
+ "default": "vertical"
197
+ },
198
+ "gap": {
199
+ "kind": "enum",
200
+ "options": [
201
+ "none",
202
+ "sm",
203
+ "md",
204
+ "lg",
205
+ "xl"
206
+ ],
207
+ "default": "md"
208
+ },
209
+ "align": {
210
+ "kind": "enum",
211
+ "options": [
212
+ "start",
213
+ "center",
214
+ "end",
215
+ "stretch"
216
+ ],
217
+ "default": "stretch"
218
+ },
219
+ "justify": {
220
+ "kind": "enum",
221
+ "options": [
222
+ "start",
223
+ "center",
224
+ "end",
225
+ "between"
226
+ ],
227
+ "default": "start"
228
+ }
229
+ }
230
+ },
231
+ "Grid": {
232
+ "category": "Layout",
233
+ "description": "Responsive CSS Grid with 1-4 columns",
234
+ "acceptsChildren": true,
235
+ "props": {
236
+ "columns": {
237
+ "kind": "enum",
238
+ "options": [
239
+ 1,
240
+ 2,
241
+ 3,
242
+ 4
243
+ ],
244
+ "default": 3
245
+ },
246
+ "gap": {
247
+ "kind": "enum",
248
+ "options": [
249
+ "none",
250
+ "sm",
251
+ "md",
252
+ "lg",
253
+ "xl"
254
+ ],
255
+ "default": "md"
256
+ }
257
+ }
258
+ },
259
+ "Container": {
260
+ "category": "Layout",
261
+ "description": "Padded wrapper with background color/image and max-width",
262
+ "acceptsChildren": true,
263
+ "props": {
264
+ "padding": {
265
+ "kind": "enum",
266
+ "options": [
267
+ "none",
268
+ "sm",
269
+ "md",
270
+ "lg",
271
+ "xl",
272
+ "2xl"
273
+ ],
274
+ "default": "lg"
275
+ },
276
+ "maxWidth": {
277
+ "kind": "enum",
278
+ "options": [
279
+ "narrow",
280
+ "default",
281
+ "wide",
282
+ "full"
283
+ ],
284
+ "default": "default"
285
+ },
286
+ "bg": {
287
+ "kind": "color",
288
+ "default": "#ffffff"
289
+ },
290
+ "bgImage": {
291
+ "kind": "image",
292
+ "label": "Background image"
293
+ },
294
+ "bgOverlay": {
295
+ "kind": "color",
296
+ "label": "Background overlay"
297
+ }
298
+ }
299
+ },
300
+ "ScrollReveal": {
301
+ "category": "Layout",
302
+ "description": "Animate children on scroll using IntersectionObserver",
303
+ "acceptsChildren": true,
304
+ "props": {
305
+ "direction": {
306
+ "kind": "enum",
307
+ "options": [
308
+ "up",
309
+ "down",
310
+ "left",
311
+ "right",
312
+ "none"
313
+ ],
314
+ "default": "up"
315
+ },
316
+ "delay": {
317
+ "kind": "number",
318
+ "min": 0,
319
+ "max": 1000,
320
+ "default": 0
321
+ },
322
+ "duration": {
323
+ "kind": "number",
324
+ "min": 100,
325
+ "max": 2000,
326
+ "default": 600
327
+ },
328
+ "distance": {
329
+ "kind": "string",
330
+ "default": "20px"
331
+ },
332
+ "once": {
333
+ "kind": "boolean",
334
+ "default": true
335
+ }
336
+ }
337
+ },
338
+ "Section": {
339
+ "category": "Layout",
340
+ "description": "Centered max-width content section wrapper",
341
+ "acceptsChildren": true,
342
+ "props": {}
343
+ },
344
+ "VideoHero": {
345
+ "category": "Heroes & Media",
346
+ "description": "Full-width video/image background with overlay content",
347
+ "acceptsChildren": true,
348
+ "props": {
349
+ "poster": {
350
+ "kind": "image",
351
+ "default": "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=1920&q=80"
352
+ },
353
+ "overlay": {
354
+ "kind": "color",
355
+ "default": "rgba(0,0,0,0.4)"
356
+ },
357
+ "height": {
358
+ "kind": "enum",
359
+ "options": [
360
+ "sm",
361
+ "md",
362
+ "lg",
363
+ "full"
364
+ ],
365
+ "default": "lg"
366
+ }
367
+ }
368
+ },
369
+ "Gallery": {
370
+ "category": "Heroes & Media",
371
+ "description": "Photo grid or carousel with lightbox, category filters, and API integration",
372
+ "needsApi": true,
373
+ "acceptsChildren": false,
374
+ "props": {
375
+ "layout": {
376
+ "kind": "enum",
377
+ "options": [
378
+ "grid",
379
+ "carousel"
380
+ ],
381
+ "default": "grid"
382
+ },
383
+ "columns": {
384
+ "kind": "enum",
385
+ "options": [
386
+ 2,
387
+ 3,
388
+ 4
389
+ ],
390
+ "default": 3
391
+ },
392
+ "images": {
393
+ "kind": "array",
394
+ "label": "Images",
395
+ "item": {
396
+ "kind": "object",
397
+ "subFields": {
398
+ "src": {
399
+ "kind": "image",
400
+ "label": "Image"
401
+ },
402
+ "alt": {
403
+ "kind": "string",
404
+ "label": "Alt text"
405
+ },
406
+ "category": {
407
+ "kind": "string",
408
+ "label": "Category"
409
+ }
410
+ }
411
+ }
412
+ }
413
+ }
414
+ },
415
+ "VideoPlayer": {
416
+ "category": "Heroes & Media",
417
+ "description": "Responsive video player with controls and aspect ratio options",
418
+ "acceptsChildren": false,
419
+ "props": {
420
+ "src": {
421
+ "kind": "url",
422
+ "label": "Video URL"
423
+ },
424
+ "controls": {
425
+ "kind": "boolean",
426
+ "default": true
427
+ },
428
+ "autoplay": {
429
+ "kind": "boolean",
430
+ "default": false
431
+ },
432
+ "loop": {
433
+ "kind": "boolean",
434
+ "default": false
435
+ },
436
+ "aspect": {
437
+ "kind": "enum",
438
+ "options": [
439
+ "16/9",
440
+ "4/3",
441
+ "1/1",
442
+ "auto"
443
+ ],
444
+ "default": "16/9"
445
+ }
446
+ }
447
+ },
448
+ "Image": {
449
+ "category": "Heroes & Media",
450
+ "description": "Basic responsive image",
451
+ "acceptsChildren": false,
452
+ "props": {
453
+ "src": {
454
+ "kind": "image",
455
+ "default": "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=800&q=80"
456
+ },
457
+ "alt": {
458
+ "kind": "string",
459
+ "default": "Property photo"
460
+ }
461
+ }
462
+ },
463
+ "MapEmbed": {
464
+ "category": "Heroes & Media",
465
+ "description": "Google Maps embed with lat/lng coordinates",
466
+ "acceptsChildren": false,
467
+ "props": {
468
+ "lat": {
469
+ "kind": "number",
470
+ "required": true,
471
+ "default": 30.2672
472
+ },
473
+ "lng": {
474
+ "kind": "number",
475
+ "required": true,
476
+ "default": -97.7431
477
+ },
478
+ "zoom": {
479
+ "kind": "number",
480
+ "min": 1,
481
+ "max": 20,
482
+ "default": 15
483
+ },
484
+ "height": {
485
+ "kind": "string",
486
+ "default": "400px"
487
+ }
488
+ }
489
+ },
490
+ "VirtualTourEmbed": {
491
+ "category": "Heroes & Media",
492
+ "description": "Matterport / 3D tour iframe wrapper",
493
+ "acceptsChildren": false,
494
+ "props": {
495
+ "src": {
496
+ "kind": "url",
497
+ "required": true,
498
+ "default": "https://my.matterport.com/show/?m=SxQL3iGyoDo"
499
+ },
500
+ "aspectRatio": {
501
+ "kind": "string",
502
+ "default": "16/9"
503
+ },
504
+ "title": {
505
+ "kind": "string",
506
+ "default": "Virtual Tour"
507
+ }
508
+ }
509
+ },
510
+ "FeatureCard": {
511
+ "category": "Content Cards",
512
+ "description": "Image + text card with link, multiple image positions",
513
+ "acceptsChildren": false,
514
+ "props": {
515
+ "image": {
516
+ "kind": "image",
517
+ "label": "Image"
518
+ },
519
+ "imagePosition": {
520
+ "kind": "enum",
521
+ "options": [
522
+ "top",
523
+ "left",
524
+ "right"
525
+ ],
526
+ "default": "top"
527
+ },
528
+ "title": {
529
+ "kind": "string",
530
+ "bindable": true,
531
+ "default": "Modern Living"
532
+ },
533
+ "subtitle": {
534
+ "kind": "string",
535
+ "bindable": true,
536
+ "default": "Now Leasing"
537
+ },
538
+ "description": {
539
+ "kind": "text",
540
+ "bindable": true,
541
+ "default": "Contemporary apartments with premium finishes."
542
+ },
543
+ "linkLabel": {
544
+ "kind": "string",
545
+ "default": "Learn More →"
546
+ },
547
+ "linkTo": {
548
+ "kind": "url",
549
+ "label": "Link"
550
+ }
551
+ }
552
+ },
553
+ "Testimonial": {
554
+ "category": "Content Cards",
555
+ "description": "Quote card with author, role, and star rating",
556
+ "acceptsChildren": false,
557
+ "props": {
558
+ "quote": {
559
+ "kind": "text",
560
+ "required": true,
561
+ "bindable": true,
562
+ "default": "Moving here was the best decision we've made."
563
+ },
564
+ "author": {
565
+ "kind": "string",
566
+ "bindable": true,
567
+ "default": "Sarah M."
568
+ },
569
+ "role": {
570
+ "kind": "string",
571
+ "default": "Resident since 2024"
572
+ },
573
+ "rating": {
574
+ "kind": "number",
575
+ "min": 1,
576
+ "max": 5,
577
+ "default": 5
578
+ }
579
+ }
580
+ },
581
+ "CTABanner": {
582
+ "category": "Content Cards",
583
+ "description": "Full-width call-to-action section with gradient background",
584
+ "acceptsChildren": true,
585
+ "props": {
586
+ "gradient": {
587
+ "kind": "string",
588
+ "default": "linear-gradient(135deg, #0f766e, #0d9488)"
589
+ }
590
+ }
591
+ },
592
+ "AddressBlock": {
593
+ "category": "Content Cards",
594
+ "description": "Address + phone + Get Directions link",
595
+ "acceptsChildren": false,
596
+ "props": {
597
+ "layout": {
598
+ "kind": "enum",
599
+ "options": [
600
+ "inline",
601
+ "stacked"
602
+ ],
603
+ "default": "stacked"
604
+ },
605
+ "colorScheme": {
606
+ "kind": "enum",
607
+ "options": [
608
+ "light",
609
+ "dark"
610
+ ],
611
+ "default": "light"
612
+ },
613
+ "address": {
614
+ "kind": "string",
615
+ "bindable": true,
616
+ "default": ""
617
+ },
618
+ "city": {
619
+ "kind": "string",
620
+ "default": ""
621
+ },
622
+ "state": {
623
+ "kind": "string",
624
+ "default": ""
625
+ },
626
+ "postalCode": {
627
+ "kind": "string",
628
+ "default": ""
629
+ },
630
+ "phone": {
631
+ "kind": "string",
632
+ "bindable": true,
633
+ "default": ""
634
+ }
635
+ }
636
+ },
637
+ "Nav": {
638
+ "category": "Navigation",
639
+ "description": "Sticky/static navbar with logo, links, and mobile menu",
640
+ "acceptsChildren": false,
641
+ "props": {
642
+ "siteName": {
643
+ "kind": "string",
644
+ "bindable": true,
645
+ "default": "The Meridian"
646
+ },
647
+ "sticky": {
648
+ "kind": "boolean",
649
+ "default": false
650
+ },
651
+ "links": {
652
+ "kind": "array",
653
+ "label": "Links",
654
+ "item": {
655
+ "kind": "object",
656
+ "subFields": {
657
+ "label": {
658
+ "kind": "string",
659
+ "label": "Label"
660
+ },
661
+ "to": {
662
+ "kind": "url",
663
+ "label": "Link"
664
+ }
665
+ }
666
+ }
667
+ }
668
+ }
669
+ },
670
+ "Footer": {
671
+ "category": "Navigation",
672
+ "description": "Footer with column links and copyright",
673
+ "acceptsChildren": false,
674
+ "props": {
675
+ "copyright": {
676
+ "kind": "string",
677
+ "bindable": true,
678
+ "default": "© 2026 The Meridian Collection. All rights reserved."
679
+ },
680
+ "columns": {
681
+ "kind": "array",
682
+ "label": "Columns",
683
+ "item": {
684
+ "kind": "object",
685
+ "subFields": {
686
+ "title": {
687
+ "kind": "string",
688
+ "label": "Title"
689
+ },
690
+ "links": {
691
+ "kind": "array",
692
+ "label": "Links",
693
+ "item": {
694
+ "kind": "object",
695
+ "subFields": {
696
+ "label": {
697
+ "kind": "string",
698
+ "label": "Label"
699
+ },
700
+ "to": {
701
+ "kind": "url",
702
+ "label": "Link"
703
+ }
704
+ }
705
+ }
706
+ }
707
+ }
708
+ }
709
+ }
710
+ }
711
+ },
712
+ "Accordion": {
713
+ "category": "Navigation",
714
+ "description": "Collapsible sections for FAQs and categorized content",
715
+ "acceptsChildren": false,
716
+ "props": {
717
+ "allowMultiple": {
718
+ "kind": "boolean",
719
+ "default": false
720
+ },
721
+ "colorScheme": {
722
+ "kind": "enum",
723
+ "options": [
724
+ "light",
725
+ "dark"
726
+ ],
727
+ "default": "light"
728
+ },
729
+ "items": {
730
+ "kind": "array",
731
+ "label": "Items",
732
+ "item": {
733
+ "kind": "object",
734
+ "subFields": {
735
+ "title": {
736
+ "kind": "string",
737
+ "label": "Title"
738
+ },
739
+ "content": {
740
+ "kind": "text",
741
+ "label": "Content"
742
+ }
743
+ }
744
+ }
745
+ },
746
+ "defaultOpen": {
747
+ "kind": "array",
748
+ "label": "Default open indices",
749
+ "item": {
750
+ "kind": "number"
751
+ }
752
+ }
753
+ }
754
+ },
755
+ "Link": {
756
+ "category": "Navigation",
757
+ "description": "Inline navigation link (client-side routing)",
758
+ "acceptsChildren": false,
759
+ "props": {
760
+ "to": {
761
+ "kind": "url",
762
+ "required": true,
763
+ "label": "Link"
764
+ },
765
+ "content": {
766
+ "kind": "string",
767
+ "required": true,
768
+ "bindable": true,
769
+ "label": "Text"
770
+ }
771
+ }
772
+ },
773
+ "Modal": {
774
+ "category": "Navigation",
775
+ "description": "Overlay dialog opened by id via Button modal actions",
776
+ "acceptsChildren": true,
777
+ "props": {
778
+ "id": {
779
+ "kind": "string",
780
+ "required": true,
781
+ "label": "Modal id"
782
+ },
783
+ "title": {
784
+ "kind": "string",
785
+ "label": "Title"
786
+ }
787
+ }
788
+ },
789
+ "AmenityList": {
790
+ "category": "Data & Amenities",
791
+ "description": "Amenity display with icon grid, categorized accordion, or simple list",
792
+ "needsApi": true,
793
+ "acceptsChildren": false,
794
+ "props": {
795
+ "layout": {
796
+ "kind": "enum",
797
+ "options": [
798
+ "iconGrid",
799
+ "categorized",
800
+ "list"
801
+ ],
802
+ "default": "iconGrid"
803
+ },
804
+ "columns": {
805
+ "kind": "enum",
806
+ "options": [
807
+ 2,
808
+ 3,
809
+ 4,
810
+ 6
811
+ ],
812
+ "default": 3
813
+ },
814
+ "showIcons": {
815
+ "kind": "boolean",
816
+ "default": true
817
+ },
818
+ "colorScheme": {
819
+ "kind": "enum",
820
+ "options": [
821
+ "light",
822
+ "dark"
823
+ ],
824
+ "default": "light"
825
+ },
826
+ "amenities": {
827
+ "kind": "array",
828
+ "label": "Amenities",
829
+ "item": {
830
+ "kind": "object",
831
+ "subFields": {
832
+ "name": {
833
+ "kind": "string",
834
+ "label": "Name"
835
+ },
836
+ "icon": {
837
+ "kind": "string",
838
+ "label": "Icon"
839
+ },
840
+ "category": {
841
+ "kind": "string",
842
+ "label": "Category"
843
+ }
844
+ }
845
+ }
846
+ }
847
+ }
848
+ },
849
+ "UnitExplorer": {
850
+ "category": "Units & Floor Plans",
851
+ "description": "Searchable, filterable unit listing with grid/list views, tabs, and sorting",
852
+ "needsApi": true,
853
+ "acceptsChildren": false,
854
+ "props": {
855
+ "layout": {
856
+ "kind": "enum",
857
+ "options": [
858
+ "grid",
859
+ "list"
860
+ ],
861
+ "default": "grid"
862
+ },
863
+ "columns": {
864
+ "kind": "enum",
865
+ "options": [
866
+ 1,
867
+ 2,
868
+ 3,
869
+ 4
870
+ ],
871
+ "default": 3
872
+ },
873
+ "showFilters": {
874
+ "kind": "boolean",
875
+ "default": true
876
+ },
877
+ "showSort": {
878
+ "kind": "boolean",
879
+ "default": true
880
+ },
881
+ "showTabs": {
882
+ "kind": "boolean",
883
+ "default": false
884
+ },
885
+ "showPricing": {
886
+ "kind": "boolean",
887
+ "default": true
888
+ },
889
+ "showAvailability": {
890
+ "kind": "boolean",
891
+ "default": true
892
+ },
893
+ "showBedBath": {
894
+ "kind": "boolean",
895
+ "default": true
896
+ },
897
+ "showSquareFootage": {
898
+ "kind": "boolean",
899
+ "default": true
900
+ },
901
+ "showFloorplan": {
902
+ "kind": "boolean",
903
+ "default": true
904
+ },
905
+ "showSpecials": {
906
+ "kind": "boolean",
907
+ "default": false
908
+ },
909
+ "showImages": {
910
+ "kind": "boolean",
911
+ "default": false
912
+ },
913
+ "showApplyButton": {
914
+ "kind": "boolean",
915
+ "default": false
916
+ },
917
+ "showPricingMatrix": {
918
+ "kind": "boolean"
919
+ },
920
+ "showLoadMore": {
921
+ "kind": "boolean"
922
+ },
923
+ "showVirtualTour": {
924
+ "kind": "boolean"
925
+ },
926
+ "showUnitNumber": {
927
+ "kind": "boolean"
928
+ },
929
+ "onlyAvailable": {
930
+ "kind": "boolean"
931
+ },
932
+ "cardStyle": {
933
+ "kind": "enum",
934
+ "options": [
935
+ "compact",
936
+ "standard"
937
+ ],
938
+ "default": "standard"
939
+ },
940
+ "defaultTab": {
941
+ "kind": "enum",
942
+ "options": [
943
+ "homes",
944
+ "plans",
945
+ "map"
946
+ ],
947
+ "label": "Default tab"
948
+ },
949
+ "sortBy": {
950
+ "kind": "enum",
951
+ "options": [
952
+ "rent_asc",
953
+ "rent_desc",
954
+ "date_available_asc",
955
+ "sqft_asc",
956
+ "sqft_desc",
957
+ "bedrooms_asc",
958
+ "unit_number_asc"
959
+ ],
960
+ "label": "Server sort"
961
+ },
962
+ "pageSize": {
963
+ "kind": "number",
964
+ "label": "Page size"
965
+ },
966
+ "emptyMessage": {
967
+ "kind": "string",
968
+ "label": "Empty-state message"
969
+ },
970
+ "applyUrl": {
971
+ "kind": "url",
972
+ "label": "Apply URL"
973
+ },
974
+ "unitBasePath": {
975
+ "kind": "string",
976
+ "label": "Unit detail base path"
977
+ },
978
+ "sightmapUrl": {
979
+ "kind": "url",
980
+ "label": "Sightmap URL"
981
+ }
982
+ }
983
+ },
984
+ "FloorplanExplorer": {
985
+ "category": "Units & Floor Plans",
986
+ "description": "Floor plan listing with media, rent ranges, and unit previews",
987
+ "needsApi": true,
988
+ "acceptsChildren": false,
989
+ "props": {
990
+ "layout": {
991
+ "kind": "enum",
992
+ "options": [
993
+ "grid",
994
+ "list"
995
+ ],
996
+ "default": "grid"
997
+ },
998
+ "columns": {
999
+ "kind": "enum",
1000
+ "options": [
1001
+ 1,
1002
+ 2,
1003
+ 3,
1004
+ 4
1005
+ ],
1006
+ "default": 3
1007
+ },
1008
+ "showMedia": {
1009
+ "kind": "boolean",
1010
+ "default": true
1011
+ },
1012
+ "showRentRange": {
1013
+ "kind": "boolean",
1014
+ "default": true
1015
+ },
1016
+ "showSqftRange": {
1017
+ "kind": "boolean",
1018
+ "default": true
1019
+ },
1020
+ "showBedBath": {
1021
+ "kind": "boolean",
1022
+ "default": true
1023
+ },
1024
+ "showUnitCount": {
1025
+ "kind": "boolean",
1026
+ "default": true
1027
+ },
1028
+ "unitPreview": {
1029
+ "kind": "enum",
1030
+ "options": [
1031
+ "none",
1032
+ "count",
1033
+ "inline"
1034
+ ],
1035
+ "default": "count"
1036
+ }
1037
+ }
1038
+ },
1039
+ "UnitPage": {
1040
+ "category": "Units & Floor Plans",
1041
+ "description": "Single-unit detail page (media, pricing matrix, fees) — bound to /units/:unitId",
1042
+ "needsApi": true,
1043
+ "acceptsChildren": false,
1044
+ "props": {
1045
+ "propertyId": {
1046
+ "kind": "string",
1047
+ "label": "Property id (override)"
1048
+ },
1049
+ "applyUrl": {
1050
+ "kind": "url",
1051
+ "label": "Apply URL"
1052
+ }
1053
+ }
1054
+ },
1055
+ "ContactForm": {
1056
+ "category": "Forms",
1057
+ "description": "Lead capture form that POSTs to /v1/prospect",
1058
+ "needsApi": true,
1059
+ "acceptsChildren": false,
1060
+ "props": {}
1061
+ },
1062
+ "ScheduleTour": {
1063
+ "category": "Forms",
1064
+ "description": "Two-step tour booking with date/time picker and contact form",
1065
+ "needsApi": true,
1066
+ "acceptsChildren": false,
1067
+ "props": {}
1068
+ },
1069
+ "EliseChat": {
1070
+ "category": "Forms",
1071
+ "description": "Embeds the Elise chat widget for a building",
1072
+ "acceptsChildren": false,
1073
+ "props": {
1074
+ "buildingId": {
1075
+ "kind": "string",
1076
+ "label": "Building id"
1077
+ },
1078
+ "scriptUrl": {
1079
+ "kind": "url",
1080
+ "label": "Widget script URL"
1081
+ }
1082
+ }
1083
+ },
1084
+ "ComponentBrowser": {
1085
+ "category": "Developer",
1086
+ "description": "Dev-only component browser/gallery (not used in authored sites)",
1087
+ "acceptsChildren": false,
1088
+ "props": {}
1089
+ },
1090
+ "ComponentShowcase": {
1091
+ "category": "Developer",
1092
+ "description": "Dev-only single-component showcase with prop controls (not used in authored sites)",
1093
+ "acceptsChildren": false,
1094
+ "props": {}
1095
+ },
1096
+ "Slot": {
1097
+ "category": "Directive",
1098
+ "description": "Layout placeholder replaced with the page tree at resolve time (renders children as fallback)",
1099
+ "isDirective": true,
1100
+ "acceptsChildren": true,
1101
+ "props": {
1102
+ "name": {
1103
+ "kind": "string",
1104
+ "label": "Slot name"
1105
+ }
1106
+ }
1107
+ },
1108
+ "BuildingSlice": {
1109
+ "category": "Directive",
1110
+ "description": "Compile-time expansion of a template subtree once per building (wrapped in a Grid)",
1111
+ "isDirective": true,
1112
+ "acceptsChildren": false,
1113
+ "props": {}
1114
+ },
1115
+ "Symbol": {
1116
+ "category": "Directive",
1117
+ "description": "Reusable named subtree instance, expanded at compile time (P3 — not yet resolver-supported)",
1118
+ "isDirective": true,
1119
+ "acceptsChildren": false,
1120
+ "props": {
1121
+ "ref": {
1122
+ "kind": "string",
1123
+ "required": true,
1124
+ "label": "Symbol name"
1125
+ }
1126
+ }
1127
+ },
1128
+ "Repeat": {
1129
+ "category": "Directive",
1130
+ "description": "Repeat a child subtree over a dataset (compile-time buildings / runtime live data) (P4 — not yet resolver-supported)",
1131
+ "isDirective": true,
1132
+ "acceptsChildren": true,
1133
+ "props": {
1134
+ "dataset": {
1135
+ "kind": "string",
1136
+ "required": true,
1137
+ "label": "Dataset name"
1138
+ },
1139
+ "as": {
1140
+ "kind": "string",
1141
+ "required": true,
1142
+ "label": "Record alias"
1143
+ }
1144
+ }
1145
+ }
1146
+ }
1147
+ }