@santi020k/lumen 3.0.0 → 4.0.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.
- package/README.md +207 -3
- package/dist/cli.js +49 -5
- package/dist/consumer-upgrade-audit.d.ts +10 -0
- package/dist/consumer-upgrade-audit.d.ts.map +1 -0
- package/dist/consumer-upgrade-audit.js +52 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +16 -0
- package/dist/integration-diagnostics.d.ts.map +1 -1
- package/dist/integration-diagnostics.js +199 -3
- package/dist/registry-component-name.d.ts +2 -0
- package/dist/registry-component-name.d.ts.map +1 -0
- package/dist/registry-component-name.js +53 -0
- package/dist/registry-data.d.ts +339 -18
- package/dist/registry-data.d.ts.map +1 -1
- package/dist/registry-data.js +789 -3
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +11 -9
- package/dist/source-script-ranges.d.ts +3 -0
- package/dist/source-script-ranges.d.ts.map +1 -0
- package/dist/source-script-ranges.js +41 -0
- package/dist/v2-migration.d.ts +38 -0
- package/dist/v2-migration.d.ts.map +1 -1
- package/dist/v2-migration.js +26 -14
- package/dist/v4-migration.d.ts +26 -0
- package/dist/v4-migration.d.ts.map +1 -0
- package/dist/v4-migration.js +272 -0
- package/dist/version-migration-dependencies.d.ts +8 -0
- package/dist/version-migration-dependencies.d.ts.map +1 -0
- package/dist/version-migration-dependencies.js +10 -0
- package/dist/version-migration-source.d.ts +4 -0
- package/dist/version-migration-source.d.ts.map +1 -0
- package/dist/version-migration-source.js +281 -0
- package/dist/version-migration.d.ts +34 -0
- package/dist/version-migration.d.ts.map +1 -0
- package/dist/version-migration.js +158 -0
- package/native-components.json +563 -16
- package/package.json +26 -11
- package/release-manifest.json +22 -17
- package/styles/critical.css +634 -61
- package/styles/motion.css +61 -0
- package/styles/world-map.css +30 -0
- package/styles.css +1750 -432
- package/templates/astro/advanced-fields/src/lumen/advanced-fields.astro +35 -0
- package/templates/astro/ai-docs/llms.txt +3 -0
- package/templates/astro/analytics-dashboard/src/lumen/analytics-dashboard.astro +110 -0
- package/templates/astro/auth-onboarding/src/lumen/auth-onboarding.astro +107 -0
- package/templates/astro/command-center/src/lumen/command-center.astro +34 -0
- package/templates/astro/commerce-dashboard/src/lumen/commerce-dashboard.astro +108 -0
- package/templates/astro/content-flow-actions/src/lumen/content-flow-actions.astro +10 -0
- package/templates/astro/content-flow-header/src/lumen/content-flow-header.astro +14 -0
- package/templates/astro/content-flow-list/src/lumen/content-flow-list.astro +13 -0
- package/templates/astro/content-flow-settings/src/lumen/content-flow-settings.astro +17 -0
- package/templates/astro/data-collections/src/lumen/data-collections.astro +52 -0
- package/templates/astro/feature-preview/src/lumen/feature-preview.astro +32 -0
- package/templates/astro/guided-onboarding/src/lumen/guided-onboarding.astro +35 -0
- package/templates/astro/interactive-pricing/src/lumen/interactive-pricing.astro +32 -0
- package/templates/astro/media-workspace/src/lumen/adjustment-controls.astro +89 -0
- package/templates/astro/media-workspace/src/lumen/media-processing.astro +47 -0
- package/templates/astro/media-workspace/src/lumen/media-workspace.astro +77 -0
- package/templates/astro/page-header/src/lumen/page-header.astro +41 -0
- package/templates/astro/project-workspace/src/lumen/project-workspace.astro +103 -0
- package/templates/astro/rich-text-editor/src/lumen/rich-text-editor.astro +21 -0
- package/templates/astro/saas-admin/src/lumen/saas-admin.astro +110 -0
- package/templates/astro/scheduler/src/lumen/scheduler.astro +36 -0
- package/templates/astro/section-header/src/lumen/section-header.astro +35 -0
- package/templates/astro/theme-builder/src/lumen/theme-builder.astro +28 -0
- package/templates/elements/advanced-fields/src/lumen/advanced-fields.html +25 -0
- package/templates/elements/analytics-dashboard/src/lumen/analytics-dashboard.html +28 -0
- package/templates/elements/auth-onboarding/src/lumen/auth-onboarding.html +79 -0
- package/templates/elements/command-center/src/lumen/command-center.html +15 -0
- package/templates/elements/commerce-dashboard/src/lumen/commerce-dashboard.html +24 -0
- package/templates/elements/content-flow-actions/src/lumen/content-flow-actions.html +11 -0
- package/templates/elements/content-flow-header/src/lumen/content-flow-header.html +15 -0
- package/templates/elements/content-flow-list/src/lumen/content-flow-list.html +14 -0
- package/templates/elements/content-flow-settings/src/lumen/content-flow-settings.html +18 -0
- package/templates/elements/data-collections/src/lumen/data-collections.html +31 -0
- package/templates/elements/feature-preview/src/lumen/feature-preview.html +13 -0
- package/templates/elements/guided-onboarding/src/lumen/guided-onboarding.html +16 -0
- package/templates/elements/interactive-pricing/src/lumen/interactive-pricing.html +13 -0
- package/templates/elements/media-workspace/src/lumen/media-workspace.html +57 -0
- package/templates/elements/media-workspace/src/lumen/media-workspace.ts +163 -0
- package/templates/elements/page-header/src/lumen/page-header.html +20 -0
- package/templates/elements/project-workspace/src/lumen/project-workspace.html +17 -0
- package/templates/elements/rich-text-editor/src/lumen/rich-text-editor.html +17 -0
- package/templates/elements/saas-admin/src/lumen/saas-admin.html +18 -0
- package/templates/elements/scheduler/src/lumen/scheduler.html +27 -0
- package/templates/elements/section-header/src/lumen/section-header.html +21 -0
- package/templates/elements/theme-builder/src/lumen/theme-builder.html +59 -0
- package/templates/react/advanced-fields/src/lumen/advanced-fields.tsx +37 -0
- package/templates/react/analytics-dashboard/src/lumen/analytics-dashboard.tsx +143 -0
- package/templates/react/auth-onboarding/src/lumen/auth-onboarding.tsx +129 -0
- package/templates/react/command-center/src/lumen/command-center.tsx +85 -0
- package/templates/react/commerce-dashboard/src/lumen/commerce-dashboard.tsx +148 -0
- package/templates/react/content-flow-actions/src/lumen/content-flow-actions.tsx +11 -0
- package/templates/react/content-flow-header/src/lumen/content-flow-header.tsx +14 -0
- package/templates/react/content-flow-list/src/lumen/content-flow-list.tsx +19 -0
- package/templates/react/content-flow-settings/src/lumen/content-flow-settings.tsx +26 -0
- package/templates/react/data-collections/src/lumen/data-collections.tsx +60 -0
- package/templates/react/feature-preview/src/lumen/feature-preview.tsx +42 -0
- package/templates/react/guided-onboarding/src/lumen/guided-onboarding.tsx +100 -0
- package/templates/react/import-review/src/lumen/import-review.tsx +150 -0
- package/templates/react/interactive-pricing/src/lumen/interactive-pricing.tsx +60 -0
- package/templates/react/media-workspace/src/lumen/adjustment-controls.tsx +61 -0
- package/templates/react/media-workspace/src/lumen/media-processing.tsx +43 -0
- package/templates/react/media-workspace/src/lumen/media-workspace.tsx +100 -0
- package/templates/react/operational-records/src/lumen/operational-records.tsx +92 -0
- package/templates/react/page-header/src/lumen/page-header.tsx +41 -0
- package/templates/react/project-workspace/src/lumen/project-workspace.tsx +112 -0
- package/templates/react/record-workspace/src/lumen/record-workspace.tsx +67 -0
- package/templates/react/review-workflow/src/lumen/review-workflow.tsx +202 -0
- package/templates/react/rich-text-editor/src/lumen/rich-text-editor.tsx +33 -0
- package/templates/react/saas-admin/src/lumen/saas-admin.tsx +119 -0
- package/templates/react/scheduler/src/lumen/scheduler.tsx +45 -0
- package/templates/react/section-header/src/lumen/section-header.tsx +33 -0
- package/templates/react/styles.d.ts +1 -0
- package/templates/react/theme-builder/src/lumen/theme-builder.tsx +57 -0
- package/templates/react/tsconfig.json +14 -0
- package/templates/react/validated-form/src/lumen/validated-form.tsx +166 -0
- package/templates/shared/common/src/lumen/lumen-template.css +247 -0
- package/templates/shared/media-workspace/src/lumen/media-workspace.css +14 -0
- package/templates/shared/visual-blocks/src/lumen/product-blocks.ts +224 -0
- package/v4-migration.json +447 -0
package/native-components.json
CHANGED
|
@@ -452,6 +452,61 @@
|
|
|
452
452
|
"compose": "LumenScatterChart"
|
|
453
453
|
}
|
|
454
454
|
},
|
|
455
|
+
{
|
|
456
|
+
"id": "waterfall-chart",
|
|
457
|
+
"tier": "shared",
|
|
458
|
+
"contract": "Signed deltas and explicit total resets with connecting balances; invalid steps fail closed",
|
|
459
|
+
"accessibility": "Provides labeled axes, a factual summary, and an expandable readable data list",
|
|
460
|
+
"symbols": {
|
|
461
|
+
"reactNative": "LumenWaterfallChart",
|
|
462
|
+
"swiftUI": "LumenWaterfallChart",
|
|
463
|
+
"compose": "LumenWaterfallChart"
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"id": "bullet-chart",
|
|
468
|
+
"tier": "shared",
|
|
469
|
+
"contract": "Actual-versus-target comparison with optional ordered ranges and a domain that includes zero",
|
|
470
|
+
"accessibility": "Keeps actual, target, and range boundaries readable with an expandable exact data list; distinguishes missing from zero",
|
|
471
|
+
"symbols": {
|
|
472
|
+
"reactNative": "LumenBulletChart",
|
|
473
|
+
"swiftUI": "LumenBulletChart",
|
|
474
|
+
"compose": "LumenBulletChart"
|
|
475
|
+
}
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"id": "lollipop-chart",
|
|
479
|
+
"tier": "shared",
|
|
480
|
+
"contract": "Rank categories using a dot and a zero-based stem. Uses a shared zero-inclusive domain and preserves missing measurements.",
|
|
481
|
+
"accessibility": "Provides visible category values and an expandable exact data list. Outlined and filled dots distinguish paired measurements.",
|
|
482
|
+
"symbols": {
|
|
483
|
+
"reactNative": "LumenLollipopChart",
|
|
484
|
+
"swiftUI": "LumenLollipopChart",
|
|
485
|
+
"compose": "LumenLollipopChart"
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"id": "dumbbell-chart",
|
|
490
|
+
"tier": "shared",
|
|
491
|
+
"contract": "Compare two measurements per category with connected dots. Uses a shared zero-inclusive domain and preserves missing measurements.",
|
|
492
|
+
"accessibility": "Provides visible category values and an expandable exact data list. Outlined and filled dots distinguish paired measurements.",
|
|
493
|
+
"symbols": {
|
|
494
|
+
"reactNative": "LumenDumbbellChart",
|
|
495
|
+
"swiftUI": "LumenDumbbellChart",
|
|
496
|
+
"compose": "LumenDumbbellChart"
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"id": "histogram",
|
|
501
|
+
"tier": "shared",
|
|
502
|
+
"contract": "Explicit numeric bins preserve widths and gaps; unequal widths require count-per-unit density",
|
|
503
|
+
"accessibility": "Provides labeled axes, a factual summary, and an expandable readable data list",
|
|
504
|
+
"symbols": {
|
|
505
|
+
"reactNative": "LumenHistogram",
|
|
506
|
+
"swiftUI": "LumenHistogram",
|
|
507
|
+
"compose": "LumenHistogram"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
455
510
|
{
|
|
456
511
|
"id": "heatmap",
|
|
457
512
|
"tier": "shared",
|
|
@@ -726,13 +781,422 @@
|
|
|
726
781
|
"swiftUI": "LumenWatchListRow",
|
|
727
782
|
"compose": "LumenWearListRow"
|
|
728
783
|
}
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"id": "time-field",
|
|
787
|
+
"tier": "shared",
|
|
788
|
+
"contract": "Controlled local wall-clock selection with optional inclusive same-day bounds and native keyboard or clock input",
|
|
789
|
+
"accessibility": "Names the field and selected time; cancellation preserves the host value and read-only or disabled fields cannot open selection",
|
|
790
|
+
"symbols": {
|
|
791
|
+
"reactNative": "LumenTimeField",
|
|
792
|
+
"swiftUI": "LumenTimeField",
|
|
793
|
+
"compose": "LumenTimeField"
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"id": "autocomplete",
|
|
798
|
+
"tier": "shared",
|
|
799
|
+
"contract": "Controlled query and selected value with host-provided results, loading, empty, retry, and disabled option states",
|
|
800
|
+
"accessibility": "Preserves native editable dropdown focus and selection semantics; announces result status and keeps disabled results unavailable",
|
|
801
|
+
"symbols": {
|
|
802
|
+
"reactNative": "LumenAutocomplete",
|
|
803
|
+
"swiftUI": "LumenAutocomplete",
|
|
804
|
+
"compose": "LumenAutocomplete"
|
|
805
|
+
}
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"id": "number-field",
|
|
809
|
+
"tier": "shared",
|
|
810
|
+
"contract": "Localized ungrouped decimal drafts with exact BigDecimal steps, inclusive bounds, validation, and read-only state",
|
|
811
|
+
"accessibility": "Labels the editable field and step actions, exposes validation context, and disables unavailable steps without discarding unfinished input",
|
|
812
|
+
"symbols": {
|
|
813
|
+
"reactNative": "LumenNumberField",
|
|
814
|
+
"swiftUI": "LumenNumberField",
|
|
815
|
+
"compose": "LumenNumberField"
|
|
816
|
+
}
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"id": "password-field",
|
|
820
|
+
"tier": "shared",
|
|
821
|
+
"contract": "Masked password entry with transient visibility and native autofill hints",
|
|
822
|
+
"accessibility": "Maintains password semantics, labels visibility actions, and hides on blur or disabled state",
|
|
823
|
+
"symbols": {
|
|
824
|
+
"reactNative": "LumenPasswordField",
|
|
825
|
+
"swiftUI": "LumenPasswordField",
|
|
826
|
+
"compose": "LumenPasswordField"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"id": "input-otp",
|
|
831
|
+
"tier": "shared",
|
|
832
|
+
"contract": "Single native numeric one-time code entry with localized digits and paste normalization",
|
|
833
|
+
"accessibility": "Preserves native selection, paste, autofill, errors, and optional masked semantics",
|
|
834
|
+
"symbols": {
|
|
835
|
+
"reactNative": "LumenInputOTP",
|
|
836
|
+
"swiftUI": "LumenInputOTP",
|
|
837
|
+
"compose": "LumenInputOTP"
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"id": "image-comparison",
|
|
842
|
+
"tier": "shared",
|
|
843
|
+
"contract": "Painter-based before and after comparison with a controlled visible fraction",
|
|
844
|
+
"accessibility": "Exposes a named native slider and localized percentage for keyboard and screen-reader adjustment",
|
|
845
|
+
"symbols": {
|
|
846
|
+
"reactNative": "LumenImageComparison",
|
|
847
|
+
"swiftUI": "LumenImageComparison",
|
|
848
|
+
"compose": "LumenImageComparison"
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"id": "media-viewport",
|
|
853
|
+
"tier": "shared",
|
|
854
|
+
"contract": "Bounded controlled zoom, pan and fit with native gestures and visible actions",
|
|
855
|
+
"accessibility": "Named zoom state and localized actions remain operable without gestures",
|
|
856
|
+
"symbols": {
|
|
857
|
+
"reactNative": "LumenMediaViewport",
|
|
858
|
+
"swiftUI": "LumenMediaViewport",
|
|
859
|
+
"compose": "LumenMediaViewport"
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
"id": "media-thumbnail",
|
|
864
|
+
"tier": "shared",
|
|
865
|
+
"contract": "Host-controlled media selection with order and loading/error presentation",
|
|
866
|
+
"accessibility": "Named selected button with disabled and busy semantics",
|
|
867
|
+
"symbols": {
|
|
868
|
+
"reactNative": "LumenMediaThumbnail",
|
|
869
|
+
"swiftUI": "LumenMediaThumbnail",
|
|
870
|
+
"compose": "LumenMediaThumbnail"
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
"id": "media-filmstrip",
|
|
875
|
+
"tier": "shared",
|
|
876
|
+
"contract": "Ordered horizontally scrolling media collection with host-formatted selected count",
|
|
877
|
+
"accessibility": "Collection label and selection status; host supplies sibling reorder actions",
|
|
878
|
+
"symbols": {
|
|
879
|
+
"reactNative": "LumenMediaFilmstrip",
|
|
880
|
+
"swiftUI": "LumenMediaFilmstrip",
|
|
881
|
+
"compose": "LumenMediaFilmstrip"
|
|
882
|
+
}
|
|
883
|
+
},
|
|
884
|
+
{
|
|
885
|
+
"id": "calendar-heatmap",
|
|
886
|
+
"tier": "shared",
|
|
887
|
+
"contract": "Shows daily activity on a date-only calendar with explicit missing observations.",
|
|
888
|
+
"accessibility": "Provides exact values in an accessible expandable data list, localized formatting, and missing-value labels.",
|
|
889
|
+
"symbols": {
|
|
890
|
+
"reactNative": "LumenCalendarHeatmap",
|
|
891
|
+
"swiftUI": "LumenCalendarHeatmap",
|
|
892
|
+
"compose": "LumenCalendarHeatmap"
|
|
893
|
+
}
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"id": "funnel-chart",
|
|
897
|
+
"tier": "shared",
|
|
898
|
+
"contract": "Compares ordered conversion stages without inferring conversion rates.",
|
|
899
|
+
"accessibility": "Provides exact values in an accessible expandable data list, localized formatting, and missing-value labels.",
|
|
900
|
+
"symbols": {
|
|
901
|
+
"reactNative": "LumenFunnelChart",
|
|
902
|
+
"swiftUI": "LumenFunnelChart",
|
|
903
|
+
"compose": "LumenFunnelChart"
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"id": "box-plot",
|
|
908
|
+
"tier": "shared",
|
|
909
|
+
"contract": "Shows precomputed quartiles, whiskers, medians, and outliers on one numeric scale.",
|
|
910
|
+
"accessibility": "Provides exact values in an accessible expandable data list, localized formatting, and missing-value labels.",
|
|
911
|
+
"symbols": {
|
|
912
|
+
"reactNative": "LumenBoxPlot",
|
|
913
|
+
"swiftUI": "LumenBoxPlot",
|
|
914
|
+
"compose": "LumenBoxPlot"
|
|
915
|
+
}
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
"id": "range-slider",
|
|
919
|
+
"tier": "shared",
|
|
920
|
+
"contract": "Controlled bounded numeric interval with independently adjustable endpoints and native step conventions",
|
|
921
|
+
"accessibility": "Separately named and formatted lower and upper controls; read-only and disabled states prevent adjustment",
|
|
922
|
+
"symbols": {
|
|
923
|
+
"reactNative": "LumenRangeSlider",
|
|
924
|
+
"swiftUI": "LumenRangeSlider",
|
|
925
|
+
"compose": "LumenRangeSlider"
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"id": "multi-select",
|
|
930
|
+
"tier": "shared",
|
|
931
|
+
"contract": "Controlled multiple selection with caller-owned search results, chips, validation, loading and retry",
|
|
932
|
+
"accessibility": "Named native checkbox options, dialog focus, retained selections and disabled or read-only behavior",
|
|
933
|
+
"symbols": {
|
|
934
|
+
"reactNative": "LumenMultiSelect",
|
|
935
|
+
"swiftUI": "LumenMultiSelect",
|
|
936
|
+
"compose": "LumenMultiSelect"
|
|
937
|
+
}
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
"id": "rating",
|
|
941
|
+
"tier": "shared",
|
|
942
|
+
"contract": "Controlled whole-star selection with zero for unrated and host-localized options",
|
|
943
|
+
"accessibility": "Native radio semantics, selected state, disabled and read-only interaction, and minimum touch targets",
|
|
944
|
+
"symbols": {
|
|
945
|
+
"reactNative": "LumenRating",
|
|
946
|
+
"swiftUI": "LumenRating",
|
|
947
|
+
"compose": "LumenRating"
|
|
948
|
+
}
|
|
949
|
+
},
|
|
950
|
+
{
|
|
951
|
+
"id": "stepper",
|
|
952
|
+
"tier": "shared",
|
|
953
|
+
"contract": "Host-owned ordered workflow with current, completed and upcoming step states",
|
|
954
|
+
"accessibility": "Localized state labels and readable vertical or horizontal layouts",
|
|
955
|
+
"symbols": {
|
|
956
|
+
"reactNative": "LumenStepper",
|
|
957
|
+
"swiftUI": "LumenStepper",
|
|
958
|
+
"compose": "LumenStepper"
|
|
959
|
+
}
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
"id": "timeline",
|
|
963
|
+
"tier": "shared",
|
|
964
|
+
"contract": "Chronological rich content with decorative markers and native child controls",
|
|
965
|
+
"accessibility": "Localized group label and preserved child control semantics",
|
|
966
|
+
"symbols": {
|
|
967
|
+
"reactNative": "LumenTimeline",
|
|
968
|
+
"swiftUI": "LumenTimeline",
|
|
969
|
+
"compose": "LumenTimeline"
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"id": "breadcrumb",
|
|
974
|
+
"tier": "shared",
|
|
975
|
+
"contract": "Stable ancestor navigation with a noninteractive current destination",
|
|
976
|
+
"accessibility": "Localized navigation group and current destination, with disabled ancestors",
|
|
977
|
+
"symbols": {
|
|
978
|
+
"reactNative": "LumenBreadcrumb",
|
|
979
|
+
"swiftUI": "LumenBreadcrumb",
|
|
980
|
+
"compose": "LumenBreadcrumb"
|
|
981
|
+
}
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
"id": "table",
|
|
985
|
+
"tier": "shared",
|
|
986
|
+
"contract": "Stable host-formatted rows and columns in record or horizontal column layouts",
|
|
987
|
+
"accessibility": "Named records, readable native text scaling and explicit loading, error and empty states",
|
|
988
|
+
"symbols": {
|
|
989
|
+
"reactNative": "LumenTable",
|
|
990
|
+
"swiftUI": "LumenTable",
|
|
991
|
+
"compose": "LumenTable"
|
|
992
|
+
}
|
|
993
|
+
},
|
|
994
|
+
{
|
|
995
|
+
"id": "data-table",
|
|
996
|
+
"tier": "shared",
|
|
997
|
+
"contract": "Controlled sorting and selection; manual server order or explicit stable client sorting",
|
|
998
|
+
"accessibility": "Localized sort status and selection controls; disabled rows, read-only state and safe status recovery",
|
|
999
|
+
"symbols": {
|
|
1000
|
+
"reactNative": "LumenDataTable",
|
|
1001
|
+
"swiftUI": "LumenDataTable",
|
|
1002
|
+
"compose": "LumenDataTable"
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
{
|
|
1006
|
+
"id": "tree",
|
|
1007
|
+
"tier": "shared",
|
|
1008
|
+
"contract": "Controlled expansion and selection over a validated flat graph with stable sibling order and inherited disabled state",
|
|
1009
|
+
"accessibility": "Localized disclosure and depth, native selection controls, bounded visual indentation and safe status states",
|
|
1010
|
+
"symbols": {
|
|
1011
|
+
"reactNative": "LumenTree",
|
|
1012
|
+
"swiftUI": "LumenTree",
|
|
1013
|
+
"compose": "LumenTree"
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"id": "qr-code",
|
|
1018
|
+
"tier": "shared",
|
|
1019
|
+
"contract": "Offline UTF-8 QR encoding with correction levels, module quiet zones and safe capacity errors",
|
|
1020
|
+
"accessibility": "Named image value, optional visible text and localized error recovery; scanner-safe contrast",
|
|
1021
|
+
"symbols": {
|
|
1022
|
+
"reactNative": "LumenQRCode",
|
|
1023
|
+
"swiftUI": "LumenQRCode",
|
|
1024
|
+
"compose": "LumenQRCode"
|
|
1025
|
+
}
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
"id": "cascader",
|
|
1029
|
+
"tier": "shared",
|
|
1030
|
+
"contract": "Controlled leaf path selection with native branch drill-down over validated stable tree identities",
|
|
1031
|
+
"accessibility": "Localized browse/back actions, selectable leaf controls and disabled/status semantics",
|
|
1032
|
+
"symbols": {
|
|
1033
|
+
"reactNative": "LumenCascader",
|
|
1034
|
+
"swiftUI": "LumenCascader",
|
|
1035
|
+
"compose": "LumenCascader"
|
|
1036
|
+
}
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
"id": "calendar",
|
|
1040
|
+
"tier": "shared",
|
|
1041
|
+
"contract": "Controlled Gregorian visible month and selected civil date, bounded navigation and event indicators",
|
|
1042
|
+
"accessibility": "Localized month/day/weekday labels, minimum touch targets, native selected state and explicit result states",
|
|
1043
|
+
"symbols": {
|
|
1044
|
+
"reactNative": "LumenCalendar",
|
|
1045
|
+
"swiftUI": "LumenCalendar",
|
|
1046
|
+
"compose": "LumenCalendar"
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
"id": "agenda",
|
|
1051
|
+
"tier": "shared",
|
|
1052
|
+
"contract": "Controlled civil-day agenda groups with chronological timed and all-day events and host event callbacks",
|
|
1053
|
+
"accessibility": "Localized day, time and status announcements with native event actions",
|
|
1054
|
+
"symbols": {
|
|
1055
|
+
"reactNative": "LumenAgenda",
|
|
1056
|
+
"swiftUI": "LumenAgenda",
|
|
1057
|
+
"compose": "LumenAgenda"
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
"id": "kanban-board",
|
|
1062
|
+
"tier": "shared",
|
|
1063
|
+
"contract": "Controlled stable-ID columns and cards with bounded immutable moves, capacity guards and native dragging",
|
|
1064
|
+
"accessibility": "Localized accessible move alternatives, named cards and safe loading/error/empty states",
|
|
1065
|
+
"symbols": {
|
|
1066
|
+
"reactNative": "LumenKanbanBoard",
|
|
1067
|
+
"swiftUI": "LumenKanbanBoard",
|
|
1068
|
+
"compose": "LumenKanbanBoard"
|
|
1069
|
+
}
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"id": "kanban-column",
|
|
1073
|
+
"tier": "shared",
|
|
1074
|
+
"contract": "Standalone controlled column with rich cards, capacity presentation and immutable card reorder requests",
|
|
1075
|
+
"accessibility": "Native drag and localized accessible reorder actions with disabled and read-only guards",
|
|
1076
|
+
"symbols": {
|
|
1077
|
+
"reactNative": "LumenKanbanColumn",
|
|
1078
|
+
"swiftUI": "LumenKanbanColumn",
|
|
1079
|
+
"compose": "LumenKanbanColumn"
|
|
1080
|
+
}
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"id": "schedule",
|
|
1084
|
+
"tier": "shared",
|
|
1085
|
+
"contract": "Controlled civil-day time grid with all-day bands, collision-safe overlap lanes and host move requests",
|
|
1086
|
+
"accessibility": "Localized event time and day names, accessible move controls and guarded native targets",
|
|
1087
|
+
"symbols": {
|
|
1088
|
+
"reactNative": "LumenSchedule",
|
|
1089
|
+
"swiftUI": "LumenSchedule",
|
|
1090
|
+
"compose": "LumenSchedule"
|
|
1091
|
+
}
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"id": "color-picker",
|
|
1095
|
+
"tier": "shared",
|
|
1096
|
+
"contract": "Controlled RGB/HSV and optional alpha editing with bounded linear color parsing and retained invalid drafts",
|
|
1097
|
+
"accessibility": "Localized channel controls, palette choices and validation with native disabled/read-only guards",
|
|
1098
|
+
"symbols": {
|
|
1099
|
+
"reactNative": "LumenColorPicker",
|
|
1100
|
+
"swiftUI": "LumenColorPicker",
|
|
1101
|
+
"compose": "LumenColorPicker"
|
|
1102
|
+
}
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"id": "tree-select",
|
|
1106
|
+
"tier": "shared",
|
|
1107
|
+
"contract": "Controlled stable-ID hierarchical selection through a lazy disclosure panel over the validated Tree graph",
|
|
1108
|
+
"accessibility": "Localized path and depth names, retained unknown values and inherited disabled ancestry",
|
|
1109
|
+
"symbols": {
|
|
1110
|
+
"reactNative": "LumenTreeSelect",
|
|
1111
|
+
"swiftUI": "LumenTreeSelect",
|
|
1112
|
+
"compose": "LumenTreeSelect"
|
|
1113
|
+
}
|
|
1114
|
+
},
|
|
1115
|
+
{
|
|
1116
|
+
"id": "transfer",
|
|
1117
|
+
"tier": "shared",
|
|
1118
|
+
"contract": "Controlled source/target membership and staged checks with atomic bidirectional moves preserving unavailable IDs",
|
|
1119
|
+
"accessibility": "Localized checked/disabled rows, move counts and safe status guards with native controls",
|
|
1120
|
+
"symbols": {
|
|
1121
|
+
"reactNative": "LumenTransfer",
|
|
1122
|
+
"swiftUI": "LumenTransfer",
|
|
1123
|
+
"compose": "LumenTransfer"
|
|
1124
|
+
}
|
|
1125
|
+
},
|
|
1126
|
+
{
|
|
1127
|
+
"id": "carousel",
|
|
1128
|
+
"tier": "shared",
|
|
1129
|
+
"contract": "Controlled stable-ID slide paging through native scrolling, indicators and bounded previous/next requests",
|
|
1130
|
+
"accessibility": "Localized slide positions, selected indicators and native status/disabled guards",
|
|
1131
|
+
"symbols": {
|
|
1132
|
+
"reactNative": "LumenCarousel",
|
|
1133
|
+
"swiftUI": "LumenCarousel",
|
|
1134
|
+
"compose": "LumenCarousel"
|
|
1135
|
+
}
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"id": "tooltip",
|
|
1139
|
+
"tier": "shared",
|
|
1140
|
+
"contract": "Native contextual help with explicit visibility or platform tooltip state and trigger/dismiss controls",
|
|
1141
|
+
"accessibility": "Named host anchors, localized brief help, native focus/escape/Back dismissal and disabled guards",
|
|
1142
|
+
"symbols": {
|
|
1143
|
+
"reactNative": "LumenTooltip",
|
|
1144
|
+
"swiftUI": "LumenTooltip",
|
|
1145
|
+
"compose": "LumenTooltip"
|
|
1146
|
+
}
|
|
1147
|
+
},
|
|
1148
|
+
{
|
|
1149
|
+
"id": "command",
|
|
1150
|
+
"tier": "shared",
|
|
1151
|
+
"contract": "Controlled grouped command filtering, active identity and guarded host activation",
|
|
1152
|
+
"accessibility": "Native search and keyboard navigation, localized command names and always-available dismissal",
|
|
1153
|
+
"symbols": {
|
|
1154
|
+
"reactNative": "LumenCommand",
|
|
1155
|
+
"swiftUI": "LumenCommand",
|
|
1156
|
+
"compose": "LumenCommand"
|
|
1157
|
+
}
|
|
1158
|
+
},
|
|
1159
|
+
{
|
|
1160
|
+
"id": "tree-grid",
|
|
1161
|
+
"tier": "shared",
|
|
1162
|
+
"contract": "Controlled hierarchical rows and cells over validated Tree graphs with stable column identities",
|
|
1163
|
+
"accessibility": "Named disclosure and full depth, inherited disabled cells and phone record layouts",
|
|
1164
|
+
"symbols": {
|
|
1165
|
+
"reactNative": "LumenTreeGrid",
|
|
1166
|
+
"swiftUI": "LumenTreeGrid",
|
|
1167
|
+
"compose": "LumenTreeGrid"
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"id": "tour",
|
|
1172
|
+
"tier": "universal",
|
|
1173
|
+
"contract": "Controlled native guided steps anchored to host-measured targets",
|
|
1174
|
+
"accessibility": "Named modal guidance, guarded navigation and always usable dismissal",
|
|
1175
|
+
"symbols": {
|
|
1176
|
+
"reactNative": "LumenTour",
|
|
1177
|
+
"swiftUI": "LumenTour",
|
|
1178
|
+
"compose": "LumenTour"
|
|
1179
|
+
}
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
"id": "mentions",
|
|
1183
|
+
"tier": "universal",
|
|
1184
|
+
"contract": "Controlled multiline mention text and UTF-16 selection with literal suggestions",
|
|
1185
|
+
"accessibility": "Named input and guarded enabled suggestions with native composition preservation",
|
|
1186
|
+
"symbols": {
|
|
1187
|
+
"reactNative": "LumenMentions",
|
|
1188
|
+
"swiftUI": "LumenMentions",
|
|
1189
|
+
"compose": "LumenMentions"
|
|
1190
|
+
}
|
|
729
1191
|
}
|
|
730
1192
|
],
|
|
731
1193
|
"platformComponents": [
|
|
732
1194
|
{
|
|
733
1195
|
"id": "shortcut-recorder",
|
|
734
1196
|
"adapter": "swiftUI",
|
|
735
|
-
"platforms": [
|
|
1197
|
+
"platforms": [
|
|
1198
|
+
"macOS"
|
|
1199
|
+
],
|
|
736
1200
|
"contract": "Keyboard shortcut capture, validation, clear, and cancel states",
|
|
737
1201
|
"accessibility": "Displays the current shortcut and exposes labeled controls",
|
|
738
1202
|
"symbol": "LumenShortcutRecorder"
|
|
@@ -740,7 +1204,9 @@
|
|
|
740
1204
|
{
|
|
741
1205
|
"id": "symbol-picker",
|
|
742
1206
|
"adapter": "swiftUI",
|
|
743
|
-
"platforms": [
|
|
1207
|
+
"platforms": [
|
|
1208
|
+
"macOS"
|
|
1209
|
+
],
|
|
744
1210
|
"contract": "Searchable and categorized SF Symbols selection",
|
|
745
1211
|
"accessibility": "Labels every symbol and exposes selected state",
|
|
746
1212
|
"symbol": "LumenSymbolPicker"
|
|
@@ -748,7 +1214,11 @@
|
|
|
748
1214
|
{
|
|
749
1215
|
"id": "link",
|
|
750
1216
|
"adapter": "swiftUI",
|
|
751
|
-
"platforms": [
|
|
1217
|
+
"platforms": [
|
|
1218
|
+
"iOS",
|
|
1219
|
+
"macOS",
|
|
1220
|
+
"visionOS"
|
|
1221
|
+
],
|
|
752
1222
|
"contract": "Token-aware URL action backed by SwiftUI native link opening",
|
|
753
1223
|
"accessibility": "Preserves the native link role, visible label, focus behavior, and disabled state",
|
|
754
1224
|
"symbol": "LumenLink"
|
|
@@ -756,7 +1226,9 @@
|
|
|
756
1226
|
{
|
|
757
1227
|
"id": "tab-bar-minimization",
|
|
758
1228
|
"adapter": "swiftUI",
|
|
759
|
-
"platforms": [
|
|
1229
|
+
"platforms": [
|
|
1230
|
+
"iOS"
|
|
1231
|
+
],
|
|
760
1232
|
"contract": "Availability-safe native tab-bar minimization with automatic, never, and scroll-direction policies",
|
|
761
1233
|
"accessibility": "Delegates motion, safe-area, focus, and reduced-motion behavior to the native SwiftUI tab bar",
|
|
762
1234
|
"symbol": "lumenTabBarMinimizeBehavior"
|
|
@@ -764,7 +1236,9 @@
|
|
|
764
1236
|
{
|
|
765
1237
|
"id": "tab-accessory",
|
|
766
1238
|
"adapter": "swiftUI",
|
|
767
|
-
"platforms": [
|
|
1239
|
+
"platforms": [
|
|
1240
|
+
"iOS"
|
|
1241
|
+
],
|
|
768
1242
|
"contract": "Adaptive expanded and compact content above or inline with a native tab bar",
|
|
769
1243
|
"accessibility": "Preserves the semantics of application-owned accessory content across native placements",
|
|
770
1244
|
"symbol": "LumenTabAccessory"
|
|
@@ -772,7 +1246,10 @@
|
|
|
772
1246
|
{
|
|
773
1247
|
"id": "refresh-control",
|
|
774
1248
|
"adapter": "reactNative",
|
|
775
|
-
"platforms": [
|
|
1249
|
+
"platforms": [
|
|
1250
|
+
"iOS",
|
|
1251
|
+
"Android"
|
|
1252
|
+
],
|
|
776
1253
|
"contract": "Native pull-to-refresh state with semantic indicator colors",
|
|
777
1254
|
"accessibility": "Preserves native refresh gestures and exposes the application-provided loading label",
|
|
778
1255
|
"symbol": "LumenRefreshControl"
|
|
@@ -780,7 +1257,10 @@
|
|
|
780
1257
|
{
|
|
781
1258
|
"id": "collapsible-navigation-bar",
|
|
782
1259
|
"adapter": "reactNative",
|
|
783
|
-
"platforms": [
|
|
1260
|
+
"platforms": [
|
|
1261
|
+
"iOS",
|
|
1262
|
+
"Android"
|
|
1263
|
+
],
|
|
784
1264
|
"contract": "Animated bottom navigation that hides after forward scroll travel and reveals on reverse travel or at the top",
|
|
785
1265
|
"accessibility": "Removes hidden destinations from interaction and the accessibility tree while preserving native list ownership",
|
|
786
1266
|
"symbol": "LumenCollapsibleNavigationBar"
|
|
@@ -788,7 +1268,10 @@
|
|
|
788
1268
|
{
|
|
789
1269
|
"id": "navigation-accessory",
|
|
790
1270
|
"adapter": "reactNative",
|
|
791
|
-
"platforms": [
|
|
1271
|
+
"platforms": [
|
|
1272
|
+
"iOS",
|
|
1273
|
+
"Android"
|
|
1274
|
+
],
|
|
792
1275
|
"contract": "Compact status or action content above a React Native bottom navigation bar",
|
|
793
1276
|
"accessibility": "Preserves the semantics of application-owned accessory content and collapses with hidden navigation",
|
|
794
1277
|
"symbol": "LumenNavigationAccessory"
|
|
@@ -796,7 +1279,9 @@
|
|
|
796
1279
|
{
|
|
797
1280
|
"id": "navigation-bar-scroll-behavior",
|
|
798
1281
|
"adapter": "compose",
|
|
799
|
-
"platforms": [
|
|
1282
|
+
"platforms": [
|
|
1283
|
+
"Android"
|
|
1284
|
+
],
|
|
800
1285
|
"contract": "Threshold-based nested-scroll visibility state for a Material navigation bar",
|
|
801
1286
|
"accessibility": "Stops exposing the navigation bar after its exit transition without consuming descendant scroll input",
|
|
802
1287
|
"symbol": "LumenNavigationBarScrollState"
|
|
@@ -804,7 +1289,9 @@
|
|
|
804
1289
|
{
|
|
805
1290
|
"id": "navigation-bar-accessory",
|
|
806
1291
|
"adapter": "compose",
|
|
807
|
-
"platforms": [
|
|
1292
|
+
"platforms": [
|
|
1293
|
+
"Android"
|
|
1294
|
+
],
|
|
808
1295
|
"contract": "Compact token-aware content above Material bottom navigation coordinated with its scroll visibility",
|
|
809
1296
|
"accessibility": "Preserves application-owned child semantics and exits the layout with hidden navigation",
|
|
810
1297
|
"symbol": "LumenNavigationBarAccessory"
|
|
@@ -812,7 +1299,9 @@
|
|
|
812
1299
|
{
|
|
813
1300
|
"id": "adaptive-navigation-scaffold",
|
|
814
1301
|
"adapter": "compose",
|
|
815
|
-
"platforms": [
|
|
1302
|
+
"platforms": [
|
|
1303
|
+
"Android"
|
|
1304
|
+
],
|
|
816
1305
|
"contract": "Material adaptive navigation that switches between bottom bar and rail from window size and device posture",
|
|
817
1306
|
"accessibility": "Uses Material navigation semantics while preserving application-owned destination content and routing",
|
|
818
1307
|
"symbol": "LumenAdaptiveNavigationScaffold"
|
|
@@ -820,7 +1309,9 @@
|
|
|
820
1309
|
{
|
|
821
1310
|
"id": "floating-action-button",
|
|
822
1311
|
"adapter": "compose",
|
|
823
|
-
"platforms": [
|
|
1312
|
+
"platforms": [
|
|
1313
|
+
"Android"
|
|
1314
|
+
],
|
|
824
1315
|
"contract": "Material-native floating action with semantic intent, sizing, and optional hide or follow-navigation behavior",
|
|
825
1316
|
"accessibility": "Requires a readable icon action description and preserves native button semantics",
|
|
826
1317
|
"symbol": "LumenFloatingActionButton"
|
|
@@ -828,7 +1319,11 @@
|
|
|
828
1319
|
{
|
|
829
1320
|
"id": "widget-text",
|
|
830
1321
|
"adapter": "swiftUI",
|
|
831
|
-
"platforms": [
|
|
1322
|
+
"platforms": [
|
|
1323
|
+
"iOS",
|
|
1324
|
+
"macOS",
|
|
1325
|
+
"watchOS"
|
|
1326
|
+
],
|
|
832
1327
|
"contract": "WidgetKit-safe semantic text with native Dynamic Type and rendering-mode adaptation",
|
|
833
1328
|
"accessibility": "Preserves localized or verbatim text and native text scaling",
|
|
834
1329
|
"symbol": "LumenWidgetText"
|
|
@@ -836,7 +1331,11 @@
|
|
|
836
1331
|
{
|
|
837
1332
|
"id": "widget-icon",
|
|
838
1333
|
"adapter": "swiftUI",
|
|
839
|
-
"platforms": [
|
|
1334
|
+
"platforms": [
|
|
1335
|
+
"iOS",
|
|
1336
|
+
"macOS",
|
|
1337
|
+
"watchOS"
|
|
1338
|
+
],
|
|
840
1339
|
"contract": "WidgetKit-safe SF Symbol treatment with semantic tone and optional label",
|
|
841
1340
|
"accessibility": "Decorative by default and labeled when it conveys meaning",
|
|
842
1341
|
"symbol": "LumenWidgetIcon"
|
|
@@ -844,7 +1343,11 @@
|
|
|
844
1343
|
{
|
|
845
1344
|
"id": "widget-badge",
|
|
846
1345
|
"adapter": "swiftUI",
|
|
847
|
-
"platforms": [
|
|
1346
|
+
"platforms": [
|
|
1347
|
+
"iOS",
|
|
1348
|
+
"macOS",
|
|
1349
|
+
"watchOS"
|
|
1350
|
+
],
|
|
848
1351
|
"contract": "Compact rendering-mode-aware status badge with optional symbol",
|
|
849
1352
|
"accessibility": "Combines the icon and text into one concise status value",
|
|
850
1353
|
"symbol": "LumenWidgetBadge"
|
|
@@ -852,10 +1355,54 @@
|
|
|
852
1355
|
{
|
|
853
1356
|
"id": "widget-compact-stat",
|
|
854
1357
|
"adapter": "swiftUI",
|
|
855
|
-
"platforms": [
|
|
1358
|
+
"platforms": [
|
|
1359
|
+
"iOS",
|
|
1360
|
+
"macOS",
|
|
1361
|
+
"watchOS"
|
|
1362
|
+
],
|
|
856
1363
|
"contract": "Compact WidgetKit label and metric treatment with optional semantic icon",
|
|
857
1364
|
"accessibility": "Combines the label and value while preserving large-text scaling",
|
|
858
1365
|
"symbol": "LumenWidgetCompactStat"
|
|
1366
|
+
},
|
|
1367
|
+
{
|
|
1368
|
+
"id": "pull-to-refresh",
|
|
1369
|
+
"adapter": "compose",
|
|
1370
|
+
"platforms": [
|
|
1371
|
+
"Android"
|
|
1372
|
+
],
|
|
1373
|
+
"contract": "Material refresh gesture with host-owned progress and request lifecycle around existing scrollable content",
|
|
1374
|
+
"accessibility": "Adds a named refresh accessibility action, announces progress, and removes refresh actions while disabled or refreshing",
|
|
1375
|
+
"symbol": "LumenPullToRefresh"
|
|
1376
|
+
},
|
|
1377
|
+
{
|
|
1378
|
+
"id": "top-app-bar",
|
|
1379
|
+
"adapter": "compose",
|
|
1380
|
+
"platforms": [
|
|
1381
|
+
"Android"
|
|
1382
|
+
],
|
|
1383
|
+
"contract": "Material app bar with named navigation and actions plus pinned or collapsing scroll behavior",
|
|
1384
|
+
"accessibility": "Heading semantics, native window insets, and application-owned navigation",
|
|
1385
|
+
"symbol": "LumenTopAppBar"
|
|
1386
|
+
},
|
|
1387
|
+
{
|
|
1388
|
+
"id": "swipe-actions",
|
|
1389
|
+
"adapter": "compose",
|
|
1390
|
+
"platforms": [
|
|
1391
|
+
"Android"
|
|
1392
|
+
],
|
|
1393
|
+
"contract": "Logical start and end list actions with transient gesture state and application-owned operations",
|
|
1394
|
+
"accessibility": "RTL-aware gestures, named custom accessibility actions, visible keyboard buttons, and disabled states",
|
|
1395
|
+
"symbol": "LumenSwipeActions"
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
"id": "adaptive-list-detail-scaffold",
|
|
1399
|
+
"adapter": "compose",
|
|
1400
|
+
"platforms": [
|
|
1401
|
+
"Android"
|
|
1402
|
+
],
|
|
1403
|
+
"contract": "Material full-window list/detail panes adapting to window size and separating hinges",
|
|
1404
|
+
"accessibility": "Named panes, compact back action, and application-owned selection and system back handling",
|
|
1405
|
+
"symbol": "LumenAdaptiveListDetailScaffold"
|
|
859
1406
|
}
|
|
860
1407
|
]
|
|
861
1408
|
}
|