@yahoo/uds-v5-wip 1.60.0 → 1.61.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/dist/codegen/dist/loader/getLoaderArtifacts.js +2 -0
- package/dist/config/dist/Props.d.ts +161 -25
- package/dist/config/dist/bindRender.d.ts +16 -0
- package/dist/config/dist/bindRender.js +310 -0
- package/dist/config/dist/className.d.ts +54 -0
- package/dist/config/dist/className.js +77 -0
- package/dist/config/dist/component-config.d.ts +674 -161
- package/dist/config/dist/component-config.js +163 -0
- package/dist/config/dist/component-refs.d.ts +41 -18
- package/dist/config/dist/createConfig.d.ts +140 -59
- package/dist/config/dist/createConfig.js +95 -217
- package/dist/config/dist/createStyler.d.ts +35 -0
- package/dist/config/dist/createStyler.js +93 -0
- package/dist/config/dist/defineComponent.d.ts +297 -4
- package/dist/config/dist/defineComponent.js +264 -2
- package/dist/config/dist/defineCompositeStyle.d.ts +93 -0
- package/dist/config/dist/defineCompositeStyle.js +18 -0
- package/dist/config/dist/defineMotionConfig.d.ts +152 -0
- package/dist/config/dist/definePreview.d.ts +45 -0
- package/dist/config/dist/definePreview.js +35 -0
- package/dist/config/dist/defineStyleProp.d.ts +199 -3
- package/dist/config/dist/defineStyleProp.js +3 -2
- package/dist/config/dist/index.d.ts +20 -11
- package/dist/config/dist/index.js +8 -4
- package/dist/config/dist/merge-utils.js +51 -0
- package/dist/config/dist/propertyAcceptedTypes.d.ts +19 -0
- package/dist/config/dist/refs.d.ts +85 -0
- package/dist/config/dist/refs.js +92 -47
- package/dist/config/dist/resolveCompoundProps.d.ts +65 -0
- package/dist/config/dist/resolveCompoundProps.js +120 -0
- package/dist/config/dist/resolveStyleProp.d.ts +72 -3
- package/dist/config/dist/resolveStyleProp.js +68 -43
- package/dist/config/dist/runtime-registry.js +30 -2
- package/dist/config/dist/serialize.d.ts +8 -34
- package/dist/config/dist/serialize.js +10 -71
- package/dist/config/dist/sniffTokenType.d.ts +7 -0
- package/dist/config/dist/sniffTokenType.js +67 -0
- package/dist/config/dist/style-prop-runtime.d.ts +75 -1
- package/dist/config/dist/style-prop-runtime.js +390 -0
- package/dist/config/dist/types/css-properties.d.ts +223 -0
- package/dist/config/dist/types/css-values.d.ts +2 -1
- package/dist/config/dist/types.d.ts +14 -3
- package/dist/config.d.ts +21 -1560
- package/dist/config.js +15 -20
- package/dist/loader/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/loader/dist/index.d.ts +2 -0
- package/dist/loader/dist/index.js +3 -0
- package/dist/loader/dist/loader/artifacts.js +2 -2
- package/dist/loader/dist/loader/babel-utils.js +1 -29
- package/dist/loader/dist/loader/internal-meta.js +38 -1
- package/dist/loader/dist/loader/lower-new-api-primitive.js +176 -14
- package/dist/loader/dist/loader.d.ts +29 -1
- package/dist/loader/dist/loader.js +71 -309
- package/dist/loader/dist/next.d.ts +2 -1
- package/dist/loader/dist/transform-runner.js +14 -0
- package/dist/loader/dist/unplugin.d.ts +27 -0
- package/dist/loader/dist/unplugin.js +52 -0
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.js +3 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -51
- package/dist/components/accordion.config.d.ts +0 -2
- package/dist/components/accordion.config.js +0 -2
- package/dist/components/accordion.d.ts +0 -2
- package/dist/components/accordion.js +0 -2
- package/dist/components/alert.config.d.ts +0 -2
- package/dist/components/alert.config.js +0 -2
- package/dist/components/alert.d.ts +0 -2
- package/dist/components/alert.js +0 -2
- package/dist/components/anchor.config.d.ts +0 -2
- package/dist/components/anchor.config.js +0 -2
- package/dist/components/anchor.d.ts +0 -2
- package/dist/components/anchor.js +0 -2
- package/dist/components/article.d.ts +0 -2
- package/dist/components/article.js +0 -2
- package/dist/components/aside.d.ts +0 -2
- package/dist/components/aside.js +0 -2
- package/dist/components/avatar-group.config.d.ts +0 -2
- package/dist/components/avatar-group.config.js +0 -2
- package/dist/components/avatar-group.d.ts +0 -2
- package/dist/components/avatar-group.js +0 -2
- package/dist/components/avatar.config.d.ts +0 -2
- package/dist/components/avatar.config.js +0 -2
- package/dist/components/avatar.d.ts +0 -2
- package/dist/components/avatar.js +0 -2
- package/dist/components/badge.config.d.ts +0 -2
- package/dist/components/badge.config.js +0 -2
- package/dist/components/badge.d.ts +0 -2
- package/dist/components/badge.js +0 -2
- package/dist/components/box.d.ts +0 -2
- package/dist/components/box.js +0 -2
- package/dist/components/breadcrumb.config.d.ts +0 -2
- package/dist/components/breadcrumb.config.js +0 -2
- package/dist/components/breadcrumb.d.ts +0 -2
- package/dist/components/breadcrumb.js +0 -2
- package/dist/components/button.config.d.ts +0 -2
- package/dist/components/button.config.js +0 -2
- package/dist/components/button.d.ts +0 -2
- package/dist/components/button.js +0 -2
- package/dist/components/card.config.d.ts +0 -2
- package/dist/components/card.config.js +0 -2
- package/dist/components/card.d.ts +0 -2
- package/dist/components/card.js +0 -2
- package/dist/components/collapsible.config.d.ts +0 -2
- package/dist/components/collapsible.config.js +0 -2
- package/dist/components/collapsible.d.ts +0 -2
- package/dist/components/collapsible.js +0 -2
- package/dist/components/command.config.d.ts +0 -2
- package/dist/components/command.config.js +0 -2
- package/dist/components/command.d.ts +0 -2
- package/dist/components/command.js +0 -2
- package/dist/components/control-color.config.d.ts +0 -2
- package/dist/components/control-color.config.js +0 -2
- package/dist/components/control-color.d.ts +0 -2
- package/dist/components/control-color.js +0 -2
- package/dist/components/control-curve.config.d.ts +0 -2
- package/dist/components/control-curve.config.js +0 -2
- package/dist/components/control-curve.d.ts +0 -2
- package/dist/components/control-curve.js +0 -2
- package/dist/components/control-folder.config.d.ts +0 -2
- package/dist/components/control-folder.config.js +0 -2
- package/dist/components/control-folder.d.ts +0 -2
- package/dist/components/control-folder.js +0 -2
- package/dist/components/control-group.config.d.ts +0 -2
- package/dist/components/control-group.config.js +0 -2
- package/dist/components/control-group.d.ts +0 -2
- package/dist/components/control-group.js +0 -2
- package/dist/components/control-knob.config.d.ts +0 -2
- package/dist/components/control-knob.config.js +0 -2
- package/dist/components/control-knob.d.ts +0 -2
- package/dist/components/control-knob.js +0 -2
- package/dist/components/control-panel.config.d.ts +0 -2
- package/dist/components/control-panel.config.js +0 -2
- package/dist/components/control-panel.d.ts +0 -2
- package/dist/components/control-panel.js +0 -2
- package/dist/components/control-select.config.d.ts +0 -2
- package/dist/components/control-select.config.js +0 -2
- package/dist/components/control-select.d.ts +0 -2
- package/dist/components/control-select.js +0 -2
- package/dist/components/control-slider.config.d.ts +0 -2
- package/dist/components/control-slider.config.js +0 -2
- package/dist/components/control-slider.d.ts +0 -2
- package/dist/components/control-slider.js +0 -2
- package/dist/components/control-spring.config.d.ts +0 -2
- package/dist/components/control-spring.config.js +0 -2
- package/dist/components/control-spring.d.ts +0 -2
- package/dist/components/control-spring.js +0 -2
- package/dist/components/control-stepper.config.d.ts +0 -2
- package/dist/components/control-stepper.config.js +0 -2
- package/dist/components/control-stepper.d.ts +0 -2
- package/dist/components/control-stepper.js +0 -2
- package/dist/components/control-toggle.config.d.ts +0 -2
- package/dist/components/control-toggle.config.js +0 -2
- package/dist/components/control-toggle.d.ts +0 -2
- package/dist/components/control-toggle.js +0 -2
- package/dist/components/dist/_slots.js +0 -8
- package/dist/components/dist/accordion.config.d.ts +0 -431
- package/dist/components/dist/accordion.config.js +0 -81
- package/dist/components/dist/accordion.d.ts +0 -453
- package/dist/components/dist/accordion.js +0 -60
- package/dist/components/dist/alert.config.d.ts +0 -219
- package/dist/components/dist/alert.config.js +0 -54
- package/dist/components/dist/alert.d.ts +0 -230
- package/dist/components/dist/alert.js +0 -16
- package/dist/components/dist/anchor.config.d.ts +0 -250
- package/dist/components/dist/anchor.config.js +0 -22
- package/dist/components/dist/anchor.d.ts +0 -261
- package/dist/components/dist/anchor.js +0 -9
- package/dist/components/dist/article.d.ts +0 -11
- package/dist/components/dist/article.js +0 -9
- package/dist/components/dist/aside.d.ts +0 -11
- package/dist/components/dist/aside.js +0 -9
- package/dist/components/dist/avatar-group.config.d.ts +0 -315
- package/dist/components/dist/avatar-group.config.js +0 -33
- package/dist/components/dist/avatar-group.d.ts +0 -329
- package/dist/components/dist/avatar-group.js +0 -39
- package/dist/components/dist/avatar.config.d.ts +0 -197
- package/dist/components/dist/avatar.config.js +0 -49
- package/dist/components/dist/avatar.d.ts +0 -211
- package/dist/components/dist/avatar.js +0 -20
- package/dist/components/dist/badge.config.d.ts +0 -477
- package/dist/components/dist/badge.config.js +0 -99
- package/dist/components/dist/badge.d.ts +0 -489
- package/dist/components/dist/badge.js +0 -16
- package/dist/components/dist/box.d.ts +0 -14
- package/dist/components/dist/box.js +0 -9
- package/dist/components/dist/breadcrumb.config.d.ts +0 -390
- package/dist/components/dist/breadcrumb.config.js +0 -43
- package/dist/components/dist/breadcrumb.d.ts +0 -420
- package/dist/components/dist/breadcrumb.js +0 -119
- package/dist/components/dist/button.config.d.ts +0 -381
- package/dist/components/dist/button.config.js +0 -91
- package/dist/components/dist/button.d.ts +0 -403
- package/dist/components/dist/button.js +0 -35
- package/dist/components/dist/card.config.d.ts +0 -336
- package/dist/components/dist/card.config.js +0 -33
- package/dist/components/dist/card.d.ts +0 -352
- package/dist/components/dist/card.js +0 -27
- package/dist/components/dist/collapsible.config.d.ts +0 -45
- package/dist/components/dist/collapsible.config.js +0 -46
- package/dist/components/dist/collapsible.d.ts +0 -61
- package/dist/components/dist/collapsible.js +0 -38
- package/dist/components/dist/command.config.d.ts +0 -1613
- package/dist/components/dist/command.config.js +0 -170
- package/dist/components/dist/command.d.ts +0 -1722
- package/dist/components/dist/command.js +0 -341
- package/dist/components/dist/control-color.config.d.ts +0 -979
- package/dist/components/dist/control-color.config.js +0 -81
- package/dist/components/dist/control-color.d.ts +0 -995
- package/dist/components/dist/control-color.js +0 -64
- package/dist/components/dist/control-curve.config.d.ts +0 -18
- package/dist/components/dist/control-curve.config.js +0 -14
- package/dist/components/dist/control-curve.d.ts +0 -35
- package/dist/components/dist/control-curve.js +0 -81
- package/dist/components/dist/control-folder.config.d.ts +0 -177
- package/dist/components/dist/control-folder.config.js +0 -47
- package/dist/components/dist/control-folder.d.ts +0 -194
- package/dist/components/dist/control-folder.js +0 -41
- package/dist/components/dist/control-group.config.d.ts +0 -859
- package/dist/components/dist/control-group.config.js +0 -80
- package/dist/components/dist/control-group.d.ts +0 -881
- package/dist/components/dist/control-group.js +0 -89
- package/dist/components/dist/control-knob.config.d.ts +0 -792
- package/dist/components/dist/control-knob.config.js +0 -67
- package/dist/components/dist/control-knob.d.ts +0 -819
- package/dist/components/dist/control-knob.js +0 -148
- package/dist/components/dist/control-panel.config.d.ts +0 -402
- package/dist/components/dist/control-panel.config.js +0 -38
- package/dist/components/dist/control-panel.d.ts +0 -415
- package/dist/components/dist/control-panel.js +0 -22
- package/dist/components/dist/control-select.config.d.ts +0 -1176
- package/dist/components/dist/control-select.config.js +0 -102
- package/dist/components/dist/control-select.d.ts +0 -1200
- package/dist/components/dist/control-select.js +0 -63
- package/dist/components/dist/control-slider.config.d.ts +0 -104
- package/dist/components/dist/control-slider.config.js +0 -98
- package/dist/components/dist/control-slider.d.ts +0 -127
- package/dist/components/dist/control-slider.js +0 -87
- package/dist/components/dist/control-spring.config.d.ts +0 -417
- package/dist/components/dist/control-spring.config.js +0 -36
- package/dist/components/dist/control-spring.d.ts +0 -439
- package/dist/components/dist/control-spring.js +0 -136
- package/dist/components/dist/control-stepper.config.d.ts +0 -1084
- package/dist/components/dist/control-stepper.config.js +0 -108
- package/dist/components/dist/control-stepper.d.ts +0 -1104
- package/dist/components/dist/control-stepper.js +0 -109
- package/dist/components/dist/control-toggle.config.d.ts +0 -407
- package/dist/components/dist/control-toggle.config.js +0 -26
- package/dist/components/dist/control-toggle.d.ts +0 -420
- package/dist/components/dist/control-toggle.js +0 -36
- package/dist/components/dist/createSlot.d.ts +0 -8
- package/dist/components/dist/createSlot.js +0 -89
- package/dist/components/dist/dropdown.config.d.ts +0 -920
- package/dist/components/dist/dropdown.config.js +0 -107
- package/dist/components/dist/dropdown.d.ts +0 -950
- package/dist/components/dist/dropdown.js +0 -92
- package/dist/components/dist/empty-state.config.d.ts +0 -396
- package/dist/components/dist/empty-state.config.js +0 -53
- package/dist/components/dist/empty-state.d.ts +0 -416
- package/dist/components/dist/empty-state.js +0 -33
- package/dist/components/dist/footer.d.ts +0 -11
- package/dist/components/dist/footer.js +0 -9
- package/dist/components/dist/grid.d.ts +0 -41
- package/dist/components/dist/grid.js +0 -34
- package/dist/components/dist/header.d.ts +0 -11
- package/dist/components/dist/header.js +0 -9
- package/dist/components/dist/hstack.d.ts +0 -15
- package/dist/components/dist/hstack.js +0 -21
- package/dist/components/dist/image.d.ts +0 -19
- package/dist/components/dist/image.js +0 -9
- package/dist/components/dist/input.config.d.ts +0 -58
- package/dist/components/dist/input.config.js +0 -42
- package/dist/components/dist/input.d.ts +0 -67
- package/dist/components/dist/input.js +0 -14
- package/dist/components/dist/item.config.d.ts +0 -351
- package/dist/components/dist/item.config.js +0 -83
- package/dist/components/dist/item.d.ts +0 -374
- package/dist/components/dist/item.js +0 -51
- package/dist/components/dist/list.d.ts +0 -19
- package/dist/components/dist/list.js +0 -21
- package/dist/components/dist/main.d.ts +0 -11
- package/dist/components/dist/main.js +0 -9
- package/dist/components/dist/modal.config.d.ts +0 -397
- package/dist/components/dist/modal.config.js +0 -92
- package/dist/components/dist/modal.d.ts +0 -433
- package/dist/components/dist/modal.js +0 -125
- package/dist/components/dist/nav-header.config.d.ts +0 -158
- package/dist/components/dist/nav-header.config.js +0 -26
- package/dist/components/dist/nav-header.d.ts +0 -173
- package/dist/components/dist/nav-header.js +0 -23
- package/dist/components/dist/nav.d.ts +0 -11
- package/dist/components/dist/nav.js +0 -9
- package/dist/components/dist/preset-bar.config.d.ts +0 -192
- package/dist/components/dist/preset-bar.config.js +0 -39
- package/dist/components/dist/preset-bar.d.ts +0 -215
- package/dist/components/dist/preset-bar.js +0 -71
- package/dist/components/dist/presets/index.d.ts +0 -17674
- package/dist/components/dist/presets/index.js +0 -97
- package/dist/components/dist/pressable.d.ts +0 -11
- package/dist/components/dist/pressable.js +0 -9
- package/dist/components/dist/progress.config.d.ts +0 -296
- package/dist/components/dist/progress.config.js +0 -35
- package/dist/components/dist/progress.d.ts +0 -311
- package/dist/components/dist/progress.js +0 -43
- package/dist/components/dist/section.d.ts +0 -11
- package/dist/components/dist/section.js +0 -9
- package/dist/components/dist/select.config.d.ts +0 -31
- package/dist/components/dist/select.config.js +0 -25
- package/dist/components/dist/select.d.ts +0 -45
- package/dist/components/dist/select.js +0 -13
- package/dist/components/dist/sheet.config.d.ts +0 -245
- package/dist/components/dist/sheet.config.js +0 -99
- package/dist/components/dist/sheet.d.ts +0 -267
- package/dist/components/dist/sheet.js +0 -53
- package/dist/components/dist/sidebar.config.d.ts +0 -1651
- package/dist/components/dist/sidebar.config.js +0 -217
- package/dist/components/dist/sidebar.d.ts +0 -1825
- package/dist/components/dist/sidebar.js +0 -492
- package/dist/components/dist/skeleton.config.d.ts +0 -16
- package/dist/components/dist/skeleton.config.js +0 -10
- package/dist/components/dist/skeleton.d.ts +0 -27
- package/dist/components/dist/skeleton.js +0 -16
- package/dist/components/dist/slider.config.d.ts +0 -44
- package/dist/components/dist/slider.config.js +0 -40
- package/dist/components/dist/slider.d.ts +0 -70
- package/dist/components/dist/slider.js +0 -247
- package/dist/components/dist/spinner.config.d.ts +0 -34
- package/dist/components/dist/spinner.config.js +0 -24
- package/dist/components/dist/spinner.d.ts +0 -42
- package/dist/components/dist/spinner.js +0 -29
- package/dist/components/dist/svg.d.ts +0 -21
- package/dist/components/dist/svg.js +0 -17
- package/dist/components/dist/switch.config.d.ts +0 -353
- package/dist/components/dist/switch.config.js +0 -47
- package/dist/components/dist/switch.d.ts +0 -370
- package/dist/components/dist/switch.js +0 -32
- package/dist/components/dist/table.d.ts +0 -36
- package/dist/components/dist/table.js +0 -29
- package/dist/components/dist/tabs.config.d.ts +0 -611
- package/dist/components/dist/tabs.config.js +0 -56
- package/dist/components/dist/tabs.d.ts +0 -632
- package/dist/components/dist/tabs.js +0 -77
- package/dist/components/dist/text.config.d.ts +0 -306
- package/dist/components/dist/text.config.js +0 -149
- package/dist/components/dist/text.d.ts +0 -205
- package/dist/components/dist/text.js +0 -12
- package/dist/components/dist/textarea.config.d.ts +0 -352
- package/dist/components/dist/textarea.config.js +0 -57
- package/dist/components/dist/textarea.d.ts +0 -362
- package/dist/components/dist/textarea.js +0 -9
- package/dist/components/dist/toast.config.d.ts +0 -335
- package/dist/components/dist/toast.config.js +0 -145
- package/dist/components/dist/toast.d.ts +0 -426
- package/dist/components/dist/toast.js +0 -159
- package/dist/components/dist/tooltip.config.d.ts +0 -193
- package/dist/components/dist/tooltip.config.js +0 -40
- package/dist/components/dist/tooltip.d.ts +0 -206
- package/dist/components/dist/tooltip.js +0 -28
- package/dist/components/dist/vstack.d.ts +0 -15
- package/dist/components/dist/vstack.js +0 -20
- package/dist/components/dropdown.config.d.ts +0 -2
- package/dist/components/dropdown.config.js +0 -2
- package/dist/components/dropdown.d.ts +0 -2
- package/dist/components/dropdown.js +0 -2
- package/dist/components/empty-state.config.d.ts +0 -2
- package/dist/components/empty-state.config.js +0 -2
- package/dist/components/empty-state.d.ts +0 -2
- package/dist/components/empty-state.js +0 -2
- package/dist/components/footer.d.ts +0 -2
- package/dist/components/footer.js +0 -2
- package/dist/components/grid.d.ts +0 -2
- package/dist/components/grid.js +0 -2
- package/dist/components/header.d.ts +0 -2
- package/dist/components/header.js +0 -2
- package/dist/components/hstack.d.ts +0 -2
- package/dist/components/hstack.js +0 -2
- package/dist/components/image.d.ts +0 -2
- package/dist/components/image.js +0 -2
- package/dist/components/input.config.d.ts +0 -2
- package/dist/components/input.config.js +0 -2
- package/dist/components/input.d.ts +0 -2
- package/dist/components/input.js +0 -2
- package/dist/components/item.config.d.ts +0 -2
- package/dist/components/item.config.js +0 -2
- package/dist/components/item.d.ts +0 -2
- package/dist/components/item.js +0 -2
- package/dist/components/list.d.ts +0 -2
- package/dist/components/list.js +0 -2
- package/dist/components/main.d.ts +0 -2
- package/dist/components/main.js +0 -2
- package/dist/components/modal.config.d.ts +0 -2
- package/dist/components/modal.config.js +0 -2
- package/dist/components/modal.d.ts +0 -2
- package/dist/components/modal.js +0 -2
- package/dist/components/nav-header.config.d.ts +0 -2
- package/dist/components/nav-header.config.js +0 -2
- package/dist/components/nav-header.d.ts +0 -2
- package/dist/components/nav-header.js +0 -2
- package/dist/components/nav.d.ts +0 -2
- package/dist/components/nav.js +0 -2
- package/dist/components/preset-bar.config.d.ts +0 -2
- package/dist/components/preset-bar.config.js +0 -2
- package/dist/components/preset-bar.d.ts +0 -2
- package/dist/components/preset-bar.js +0 -2
- package/dist/components/presets/index.d.ts +0 -44
- package/dist/components/presets/index.js +0 -44
- package/dist/components/pressable.d.ts +0 -2
- package/dist/components/pressable.js +0 -2
- package/dist/components/progress.config.d.ts +0 -2
- package/dist/components/progress.config.js +0 -2
- package/dist/components/progress.d.ts +0 -2
- package/dist/components/progress.js +0 -2
- package/dist/components/section.d.ts +0 -2
- package/dist/components/section.js +0 -2
- package/dist/components/select.config.d.ts +0 -2
- package/dist/components/select.config.js +0 -2
- package/dist/components/select.d.ts +0 -2
- package/dist/components/select.js +0 -2
- package/dist/components/sheet.config.d.ts +0 -2
- package/dist/components/sheet.config.js +0 -2
- package/dist/components/sheet.d.ts +0 -2
- package/dist/components/sheet.js +0 -2
- package/dist/components/sidebar.config.d.ts +0 -2
- package/dist/components/sidebar.config.js +0 -2
- package/dist/components/sidebar.d.ts +0 -2
- package/dist/components/sidebar.js +0 -2
- package/dist/components/skeleton.config.d.ts +0 -2
- package/dist/components/skeleton.config.js +0 -2
- package/dist/components/skeleton.d.ts +0 -2
- package/dist/components/skeleton.js +0 -2
- package/dist/components/slider.config.d.ts +0 -2
- package/dist/components/slider.config.js +0 -2
- package/dist/components/slider.d.ts +0 -2
- package/dist/components/slider.js +0 -2
- package/dist/components/spinner.config.d.ts +0 -2
- package/dist/components/spinner.config.js +0 -2
- package/dist/components/spinner.d.ts +0 -2
- package/dist/components/spinner.js +0 -2
- package/dist/components/svg.d.ts +0 -2
- package/dist/components/svg.js +0 -2
- package/dist/components/switch.config.d.ts +0 -2
- package/dist/components/switch.config.js +0 -2
- package/dist/components/switch.d.ts +0 -2
- package/dist/components/switch.js +0 -2
- package/dist/components/table.d.ts +0 -2
- package/dist/components/table.js +0 -2
- package/dist/components/tabs.config.d.ts +0 -2
- package/dist/components/tabs.config.js +0 -2
- package/dist/components/tabs.d.ts +0 -2
- package/dist/components/tabs.js +0 -2
- package/dist/components/text.config.d.ts +0 -2
- package/dist/components/text.config.js +0 -2
- package/dist/components/text.d.ts +0 -2
- package/dist/components/text.js +0 -2
- package/dist/components/textarea.config.d.ts +0 -2
- package/dist/components/textarea.config.js +0 -2
- package/dist/components/textarea.d.ts +0 -2
- package/dist/components/textarea.js +0 -2
- package/dist/components/toast.config.d.ts +0 -2
- package/dist/components/toast.config.js +0 -2
- package/dist/components/toast.d.ts +0 -2
- package/dist/components/toast.js +0 -2
- package/dist/components/tooltip.config.d.ts +0 -2
- package/dist/components/tooltip.config.js +0 -2
- package/dist/components/tooltip.d.ts +0 -2
- package/dist/components/tooltip.js +0 -2
- package/dist/components/vstack.d.ts +0 -2
- package/dist/components/vstack.js +0 -2
- package/dist/config/dist/component-resolution.js +0 -78
- package/dist/config/dist/consts/defaultColors.d.ts +0 -253
- package/dist/config/dist/consts/defaultColors.js +0 -252
- package/dist/config/dist/createComponent.d.ts +0 -1
- package/dist/config/dist/createComponent.js +0 -1
- package/dist/config/dist/preset-merge.js +0 -192
- package/dist/config/dist/propertyGroups.d.ts +0 -1
- package/dist/config/dist/propertyGroups.js +0 -414
- package/dist/config/dist/resolveTokenTypes.d.ts +0 -1
- package/dist/config/dist/resolveTokenTypes.js +0 -149
- package/dist/config-utils/dist/componentConfig.d.ts +0 -10
- package/dist/config-utils/dist/componentConfig.js +0 -11
- package/dist/config-utils.d.ts +0 -2
- package/dist/config-utils.js +0 -2
- package/dist/core/dist/color-opacity-map.js +0 -33
- package/dist/core/dist/compositeStyles.d.ts +0 -21
- package/dist/core/dist/compositeStyles.js +0 -51
- package/dist/core/dist/configurable-prop-helpers.d.ts +0 -31
- package/dist/core/dist/configurable-prop-helpers.js +0 -61
- package/dist/core/dist/createComponent.boundaries.js +0 -192
- package/dist/core/dist/createComponent.d.ts +0 -56
- package/dist/core/dist/createComponent.js +0 -67
- package/dist/core/dist/createComponentExample.d.ts +0 -41
- package/dist/core/dist/createComponentExample.js +0 -27
- package/dist/core/dist/createProvider.d.ts +0 -12
- package/dist/core/dist/createProvider.js +0 -24
- package/dist/core/dist/generated/stylePropsTwMap.d.ts +0 -1700
- package/dist/core/dist/generated/stylePropsTwMap.js +0 -570
- package/dist/core/dist/getComponentStyles.d.ts +0 -49
- package/dist/core/dist/getComponentStyles.js +0 -85
- package/dist/core/dist/getStyles.d.ts +0 -42
- package/dist/core/dist/getStyles.js +0 -300
- package/dist/core/dist/index.d.ts +0 -13
- package/dist/core/dist/index.js +0 -13
- package/dist/core/dist/modifier-mappings.d.ts +0 -12
- package/dist/core/dist/modifier-mappings.js +0 -61
- package/dist/core/dist/resolveMotionState.d.ts +0 -4
- package/dist/core/dist/resolveMotionState.js +0 -17
- package/dist/core/dist/resolveProps.boundaries.js +0 -131
- package/dist/core/dist/style-prop-data.d.ts +0 -32
- package/dist/core/dist/style-prop-data.js +0 -1257
- package/dist/core/dist/transformPreset.d.ts +0 -17
- package/dist/core/dist/transformPreset.js +0 -28
- package/dist/core/dist/withDefaultStyleProps.d.ts +0 -43
- package/dist/core/dist/withDefaultStyleProps.js +0 -18
- package/dist/core.d.ts +0 -14
- package/dist/core.js +0 -15
- package/dist/createSlot.d.ts +0 -2
- package/dist/createSlot.js +0 -2
- package/dist/fixtures.d.ts +0 -4
- package/dist/fixtures.js +0 -5
- package/dist/foundational-presets/dist/_virtual/_rolldown/runtime.js +0 -13
- package/dist/foundational-presets/dist/defaultPreset.d.ts +0 -1557
- package/dist/foundational-presets/dist/defaultPreset.js +0 -615
- package/dist/foundational-presets/dist/index.d.ts +0 -1
- package/dist/foundational-presets/dist/index.js +0 -1
- package/dist/foundational-presets/dist/motion.d.ts +0 -12
- package/dist/foundational-presets/dist/motion.js +0 -10
- package/dist/foundational-presets/dist/style-props.js +0 -1445
- package/dist/loader/dist/loader/create-component-data.js +0 -33
- package/dist/loader/dist/loader/create-component-lowering.js +0 -454
- package/dist/loader/dist/loader/data-attr-transform.js +0 -191
- package/dist/loader/dist/loader/dynamic-style-codegen.js +0 -97
- package/dist/loader/dist/loader/motion-transform.js +0 -717
- package/dist/loader/dist/loader/style-transform.js +0 -670
- package/dist/loader/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -203
- package/dist/loader/dist/node_modules/react/cjs/react-jsx-runtime.production.js +0 -25
- package/dist/loader/dist/node_modules/react/cjs/react.development.js +0 -762
- package/dist/loader/dist/node_modules/react/cjs/react.production.js +0 -351
- package/dist/loader/dist/node_modules/react/index.js +0 -10
- package/dist/loader/dist/node_modules/react/jsx-runtime.js +0 -10
- package/dist/loader/dist/packages/core/dist/color-opacity-map.js +0 -33
- package/dist/loader/dist/packages/core/dist/compositeStyles.js +0 -43
- package/dist/loader/dist/packages/core/dist/createComponent.js +0 -6
- package/dist/loader/dist/packages/core/dist/createProvider.js +0 -7
- package/dist/loader/dist/packages/core/dist/generated/stylePropsTwMap.js +0 -570
- package/dist/loader/dist/packages/core/dist/getComponentStyles.js +0 -2
- package/dist/loader/dist/packages/core/dist/getStyles.js +0 -60
- package/dist/loader/dist/packages/core/dist/index.js +0 -6
- package/dist/loader/dist/packages/core/dist/modifier-mappings.js +0 -61
- package/dist/loader/dist/packages/core/dist/style-prop-data.js +0 -1257
- package/dist/loader/dist/packages/core/dist/withDefaultStyleProps.js +0 -1
- package/dist/presets/dist/defaultPreset.d.ts +0 -6
- package/dist/presets/dist/defaultPreset.js +0 -51
- package/dist/presets/dist/index.d.ts +0 -1
- package/dist/presets/dist/index.js +0 -1
- package/dist/presets/motion.d.ts +0 -2
- package/dist/presets/motion.js +0 -2
- package/dist/presets.d.ts +0 -2
- package/dist/presets.js +0 -3
- package/dist/styles.d.ts +0 -4
- package/dist/styles.js +0 -5
- package/dist/transformPreset.d.ts +0 -2
- package/dist/transformPreset.js +0 -3
- /package/dist/{config/dist/component-resolution.d.ts → loader/dist/transform-runner.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RegisteredStyleProps } from "./component-refs.js";
|
|
1
|
+
import { RegisteredComposites, RegisteredModifiers, RegisteredStyleProps } from "./component-refs.js";
|
|
2
2
|
import { ComponentConfigValue, HtmlTag, LayerInput, PropBinding } from "./component-config.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ComponentPropsWithRef, HTMLAttributes, JSX, ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region ../config/dist/Props.d.ts
|
|
6
6
|
//#region src/Props.d.ts
|
|
@@ -8,13 +8,38 @@ import { ComponentPropsWithoutRef, HTMLAttributes, JSX } from "react";
|
|
|
8
8
|
* Resolve the native HTML-attribute surface for the config's root tag.
|
|
9
9
|
*
|
|
10
10
|
* - When `TTag` is a known `JSX.IntrinsicElements` key (`'a'`, `'div'`,
|
|
11
|
-
* `'button'`, …), use `
|
|
12
|
-
* specific attrs
|
|
13
|
-
* on `'button'`,
|
|
11
|
+
* `'button'`, …), use `ComponentPropsWithRef<TTag>` so element-
|
|
12
|
+
* specific attrs *and* the React 19 `ref` prop both land in the prop
|
|
13
|
+
* type (`href` on `'a'`, `disabled` on `'button'`, `ref` on every
|
|
14
|
+
* intrinsic).
|
|
14
15
|
* - Otherwise (no tag captured — e.g. the root is a brace-ref or
|
|
15
16
|
* composed-layer), fall back to the generic `HTMLAttributes<HTMLElement>`.
|
|
16
17
|
*/
|
|
17
|
-
type ElementProps<TTag extends HtmlTag | undefined> = TTag extends keyof JSX.IntrinsicElements ?
|
|
18
|
+
type ElementProps<TTag extends HtmlTag | undefined> = TTag extends keyof JSX.IntrinsicElements ? ComponentPropsWithRef<TTag> : HTMLAttributes<HTMLElement>;
|
|
19
|
+
/**
|
|
20
|
+
* Props inherited from the wrapped component when the root layer is a
|
|
21
|
+
* component value or a `ComposedLayer` `{ component, defaultProps }`
|
|
22
|
+
* form. Returns the wrapped component's own resolved `Props<...>`
|
|
23
|
+
* shape so a wrapper's JSX surface inherits everything the wrapped
|
|
24
|
+
* component accepts. Returns `{}` when the root isn't composed.
|
|
25
|
+
*
|
|
26
|
+
* Reads the `__config` slot off the layer value (or the
|
|
27
|
+
* `ComposedLayer`'s `component` field) and recursively resolves
|
|
28
|
+
* `Props<TInnerConfig>`. Falls back to the legacy
|
|
29
|
+
* `RegisteredComponents[name]` lookup when the layer is the
|
|
30
|
+
* shape so a wrapper's JSX surface inherits everything the wrapped
|
|
31
|
+
* component accepts. Returns `{}` when the root isn't composed.
|
|
32
|
+
*
|
|
33
|
+
* Reads the `__config` slot off the layer value directly. Authoring
|
|
34
|
+
* uses bare `defineComponent`-produced values (`layers: { root: Box }`)
|
|
35
|
+
* — there's no longer a `{ component, defaultProps }` wrapper layer
|
|
36
|
+
* to walk through.
|
|
37
|
+
*/
|
|
38
|
+
type ComposedRootProps<TLayers> = TLayers extends {
|
|
39
|
+
root: infer R;
|
|
40
|
+
} ? R extends {
|
|
41
|
+
readonly __config: infer TInnerConfig extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>;
|
|
42
|
+
} ? Props<TInnerConfig> : {} : {};
|
|
18
43
|
/**
|
|
19
44
|
* Resolve the allowed-value union for one registered style prop.
|
|
20
45
|
* Falls back to `string` when the prop registered no tokens (codegen
|
|
@@ -22,26 +47,104 @@ type ElementProps<TTag extends HtmlTag | undefined> = TTag extends keyof JSX.Int
|
|
|
22
47
|
*/
|
|
23
48
|
type StylePropValue<K extends keyof RegisteredStyleProps> = [RegisteredStyleProps[K]] extends [never] ? string : RegisteredStyleProps[K];
|
|
24
49
|
/**
|
|
25
|
-
* Extract the registered style-prop name from a
|
|
26
|
-
*
|
|
27
|
-
* - `{ styleProp: '{bg}' }` → `'bg'`
|
|
50
|
+
* Extract the registered style-prop name from a `StylePropMarker`
|
|
51
|
+
* binding — `{ __kind: 'styleProp', ref: 'bg', layer }` → `'bg'`.
|
|
28
52
|
* Returns `never` for non-matching forms.
|
|
29
53
|
*/
|
|
30
|
-
type StylePropRefName<TBinding> = TBinding extends
|
|
31
|
-
|
|
54
|
+
type StylePropRefName<TBinding> = TBinding extends {
|
|
55
|
+
readonly __kind: 'styleProp';
|
|
56
|
+
readonly ref: infer N;
|
|
32
57
|
} ? N extends keyof RegisteredStyleProps & string ? N : never : never;
|
|
58
|
+
/**
|
|
59
|
+
* Extract the registered composite-group name from a `composite()`
|
|
60
|
+
* marker binding:
|
|
61
|
+
* - `{ __kind: 'composite', ref: 'textVariant' }` → `'textVariant'`
|
|
62
|
+
* (the marker stores the bare name — no brace-ref wrapping; the
|
|
63
|
+
* `composite()` call's position already establishes the
|
|
64
|
+
* composite-ref context.)
|
|
65
|
+
* Returns `never` for non-matching forms.
|
|
66
|
+
*/
|
|
67
|
+
type CompositeRefName<TBinding> = TBinding extends {
|
|
68
|
+
readonly __kind: 'composite';
|
|
69
|
+
readonly ref: infer N;
|
|
70
|
+
} ? N extends keyof RegisteredComposites & string ? N : never : never;
|
|
71
|
+
/**
|
|
72
|
+
* Resolve the allowed-value union for a registered composite group —
|
|
73
|
+
* the union of `styles` keys. Falls back to `string` when the
|
|
74
|
+
* registry isn't populated (e.g. inside `@uds/config`'s own tests
|
|
75
|
+
* where codegen-emitted augmentation isn't loaded).
|
|
76
|
+
*/
|
|
77
|
+
type CompositeValue<K extends keyof RegisteredComposites> = RegisteredComposites[K] extends {
|
|
78
|
+
styles: infer S;
|
|
79
|
+
} ? keyof S & string : string;
|
|
80
|
+
/**
|
|
81
|
+
* Detect a `slot('layer')` / `slot('layer/prop')` marker. Authoring
|
|
82
|
+
* surface stamps `__kind: 'slot'` on the value so the render-fn
|
|
83
|
+
* arg can be typed as `ReactNode` — slot props always route their
|
|
84
|
+
* value into a layer's children (or named slot prop), so a node is
|
|
85
|
+
* the only thing they can legally carry.
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* Resolve the JSX-value type for a `slot('layer/prop')` marker by
|
|
89
|
+
* looking up `prop` on the target layer's surface:
|
|
90
|
+
*
|
|
91
|
+
* - **Composed-component layer** — read `Props<TInnerConfig>[prop]`,
|
|
92
|
+
* so `slot('button/onClick')` types as the click-handler the
|
|
93
|
+
* wrapped component declares.
|
|
94
|
+
* - **HTML-tag layer** (bare-tag `'div'` or `{ tag: 'a', attrs }`) —
|
|
95
|
+
* read `ComponentPropsWithRef<tag>[prop]`, so `slot('link/href')`
|
|
96
|
+
* types as `string | undefined`.
|
|
97
|
+
* - Unknown layer / unknown prop falls back to `ReactNode` (the
|
|
98
|
+
* common case for slots and a safe default when the type system
|
|
99
|
+
* can't pinpoint).
|
|
100
|
+
*/
|
|
101
|
+
type SlotTargetKey<A> = [A] extends [string] ? A : 'children';
|
|
102
|
+
type SlotPropValue<TBinding, TLayers> = TBinding extends {
|
|
103
|
+
readonly __kind: 'slot';
|
|
104
|
+
readonly layer: infer L extends keyof TLayers & string;
|
|
105
|
+
readonly prop?: infer A;
|
|
106
|
+
} ? TLayers[L] extends {
|
|
107
|
+
readonly __config: infer TInner extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>;
|
|
108
|
+
} ? SlotTargetKey<A> extends keyof Props<TInner> ? Props<TInner>[SlotTargetKey<A> & keyof Props<TInner>] : ReactNode : TLayers[L] extends keyof JSX.IntrinsicElements ? SlotTargetKey<A> extends keyof ComponentPropsWithRef<TLayers[L]> ? ComponentPropsWithRef<TLayers[L]>[SlotTargetKey<A> & keyof ComponentPropsWithRef<TLayers[L]>] : ReactNode : TLayers[L] extends {
|
|
109
|
+
readonly tag: infer T extends keyof JSX.IntrinsicElements;
|
|
110
|
+
} ? SlotTargetKey<A> extends keyof ComponentPropsWithRef<T> ? ComponentPropsWithRef<T>[SlotTargetKey<A> & keyof ComponentPropsWithRef<T>] : ReactNode : ReactNode : ReactNode;
|
|
111
|
+
type IsSlotMarker<TBinding> = TBinding extends {
|
|
112
|
+
readonly __kind: 'slot';
|
|
113
|
+
} ? true : false;
|
|
33
114
|
/**
|
|
34
115
|
* Walk the config's `props` block and produce one optional JSX prop
|
|
35
|
-
* per entry
|
|
116
|
+
* per entry:
|
|
117
|
+
*
|
|
118
|
+
* - `slot('layer/prop')` markers narrow to the value type the target
|
|
119
|
+
* layer exposes under `prop` — see {@link SlotPropValue}.
|
|
120
|
+
* - `styleProp(ref)` markers narrow to the registered token union.
|
|
121
|
+
* - `composite(ref)` markers narrow to the composite group's `styles`
|
|
122
|
+
* keys union.
|
|
123
|
+
* - Anything unrecognized stays open as `unknown`.
|
|
36
124
|
*/
|
|
37
|
-
type PropsFromConfig<TProps> = { [K in keyof TProps]?: StylePropRefName<TProps[K]> extends never ? unknown : StylePropValue<Extract<StylePropRefName<TProps[K]>, keyof RegisteredStyleProps>> };
|
|
125
|
+
type PropsFromConfig<TProps, TLayers> = { [K in keyof TProps]?: IsSlotMarker<TProps[K]> extends true ? SlotPropValue<TProps[K], TLayers> : StylePropRefName<TProps[K]> extends never ? CompositeRefName<TProps[K]> extends never ? unknown : CompositeValue<Extract<CompositeRefName<TProps[K]>, keyof RegisteredComposites>> : StylePropValue<Extract<StylePropRefName<TProps[K]>, keyof RegisteredStyleProps>> };
|
|
38
126
|
/**
|
|
39
127
|
* Force TypeScript to fully evaluate a mapped/conditional type so the
|
|
40
128
|
* hover display shows the resolved shape (`bg?: 'brand' | 'accent'`)
|
|
41
129
|
* instead of the unevaluated type expression
|
|
42
|
-
* (`PropsFromConfig<{ readonly bg: '
|
|
130
|
+
* (`PropsFromConfig<{ readonly bg: StylePropMarker<'root', 'bg'> }>`).
|
|
43
131
|
*/
|
|
44
132
|
type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
133
|
+
/**
|
|
134
|
+
* `layerProps={{ overlay: { bg: '...' }, panel: { width: '...' } }}` — the
|
|
135
|
+
* value-type for one layer. If the layer is a defined component (carries a
|
|
136
|
+
* `__config` slot), use that component's full `Props<...>` surface so style
|
|
137
|
+
* props, modifiers, and HTML attrs all autocomplete. Otherwise (a bare
|
|
138
|
+
* HTML-tag string layer), widen to a permissive style-prop bag.
|
|
139
|
+
*/
|
|
140
|
+
type LayerPropsValue<TLayer> = TLayer extends {
|
|
141
|
+
readonly __config: infer TInner extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>;
|
|
142
|
+
} ? Partial<Props<TInner>> : Partial<HTMLAttributes<HTMLElement>> & { [K in keyof RegisteredStyleProps]?: StylePropValue<K> };
|
|
143
|
+
/**
|
|
144
|
+
* `{ overlay?: ..., panel?: ..., dismiss?: ..., ... }` — every layer in
|
|
145
|
+
* `TLayers` is reachable.
|
|
146
|
+
*/
|
|
147
|
+
type LayerPropsMap<TLayers extends Record<string, LayerInput>> = { [K in keyof TLayers]?: LayerPropsValue<TLayers[K]> };
|
|
45
148
|
/**
|
|
46
149
|
* Standard `data-*` attributes are valid on every HTML element by spec.
|
|
47
150
|
* React 19's bundled types don't carry an index signature for them, so
|
|
@@ -51,24 +154,57 @@ type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
|
51
154
|
interface DataAttrs {
|
|
52
155
|
[key: `data-${string}`]: unknown;
|
|
53
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Component prop surface without modifiers — the "base" type that
|
|
159
|
+
* `Props<TConfig>` wraps with `RegisteredModifiers<PropsBase<TConfig>>`.
|
|
160
|
+
*
|
|
161
|
+
* Splitting the modifier layer out breaks a self-reference cycle:
|
|
162
|
+
* TS can resolve `RegisteredModifiers<PropsBase<TConfig>>` because
|
|
163
|
+
* PropsBase doesn't reference itself, but
|
|
164
|
+
* `RegisteredModifiers<Props<TConfig>>` directly inside `Props<TConfig>`
|
|
165
|
+
* leaves TS unable to materialize the recursive shape and the
|
|
166
|
+
* modifier keys collapse to nothing at consumer call sites.
|
|
167
|
+
*
|
|
168
|
+
* Modifier values consequently autocomplete against the component's
|
|
169
|
+
* full top-level surface but don't carry recursive modifier nesting
|
|
170
|
+
* (`_hover={{ _focus: { ... } }}` won't typecheck through this path).
|
|
171
|
+
* Codegen-emitted `Registered${Name}Props` keeps the recursive shape
|
|
172
|
+
* because it self-references through a *named* alias the compiler
|
|
173
|
+
* can name-resolve lazily — `Props<TConfig>` can't replicate that.
|
|
174
|
+
*/
|
|
175
|
+
type PropsBase<TConfig extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>> = TConfig extends ComponentConfigValue<infer TLayers extends Record<string, LayerInput>, infer TProps extends Record<string, PropBinding>, infer TTag extends HtmlTag | undefined> ? PropsFromConfig<TProps, TLayers> & Omit<ComposedRootProps<TLayers>, keyof TProps> & Omit<ElementProps<TTag>, keyof TProps | keyof ComposedRootProps<TLayers>> & DataAttrs & {
|
|
176
|
+
as?: keyof JSX.IntrinsicElements;
|
|
177
|
+
layerProps?: LayerPropsMap<TLayers>;
|
|
178
|
+
} : never;
|
|
54
179
|
/**
|
|
55
180
|
* Public derived-props type.
|
|
56
181
|
*
|
|
57
|
-
*
|
|
182
|
+
* Layers — same shape codegen emits for `Registered${Name}Props` in
|
|
183
|
+
* `uds-env.d.ts` so `React.ComponentProps<typeof Box>` resolves to a
|
|
184
|
+
* type structurally equivalent to `RegisteredBoxProps<'div'>`:
|
|
185
|
+
*
|
|
58
186
|
* 1. `PropsFromConfig<TConfig['props']>` — the config's declared props.
|
|
59
|
-
* 2. `
|
|
60
|
-
*
|
|
61
|
-
* `
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
187
|
+
* 2. `ComposedRootProps<TLayers>` — the wrapped component's registered
|
|
188
|
+
* prop shape when the root layer is a ComposedLayer
|
|
189
|
+
* (`{ component: '{Box}' }`). Falls back to `{}` otherwise.
|
|
190
|
+
* 3. `Omit<ComponentPropsWithRef<TTag>, ...>` — native attrs narrowed
|
|
191
|
+
* to the root tag (or the wrapper's `defaultProps.as` for value-
|
|
192
|
+
* extends — captured as TTag at defineComponent time). Anything
|
|
193
|
+
* colliding with (1) or (2) is stripped out.
|
|
194
|
+
* 4. `DataAttrs` — permissive `data-*` index signature (React's
|
|
195
|
+
* `ComponentPropsWithRef` doesn't carry this).
|
|
196
|
+
* 5. `RegisteredModifiers<PropsBase<TConfig>>` — narrowed
|
|
197
|
+
* `_<modifier>` keys with `Partial<...>` values. Augmented by
|
|
198
|
+
* codegen from `BUILT_IN_PSEUDO` + config-defined modes + custom
|
|
199
|
+
* modifiers.
|
|
200
|
+
* 6. Polymorphic `as` prop — `keyof JSX.IntrinsicElements` so the
|
|
201
|
+
* value is a real tag name, matching codegen's emission.
|
|
65
202
|
*/
|
|
66
|
-
type Props<TConfig extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>> =
|
|
67
|
-
as?: string;
|
|
68
|
-
}> : never;
|
|
203
|
+
type Props<TConfig extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined>> = Prettify<PropsBase<TConfig> & RegisteredModifiers<PropsBase<TConfig>>>;
|
|
69
204
|
/**
|
|
70
205
|
* `Props<typeof boxConfig>` for the common 'use the config's inferred
|
|
71
206
|
* type' invocation. Keeps `box.tsx` from having to repeat the generic.
|
|
72
207
|
*/
|
|
208
|
+
type PropsOf<TConfig> = TConfig extends ComponentConfigValue<Record<string, LayerInput>, Record<string, PropBinding>, HtmlTag | undefined> ? Props<TConfig> : never; //#endregion
|
|
73
209
|
//#endregion
|
|
74
|
-
export { Props };
|
|
210
|
+
export { Props, PropsOf };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LayerBundle, LayerInput } from "./component-config.js";
|
|
2
|
+
|
|
3
|
+
//#region ../config/dist/bindRender.d.ts
|
|
4
|
+
//#region src/bindRender.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Arguments handed to the user's render function. `props` is keyed by
|
|
7
|
+
* the component's layer names; `children` is React's standard
|
|
8
|
+
* children. Extra incoming props that aren't claimed by the config
|
|
9
|
+
* arrive on the same object.
|
|
10
|
+
*/
|
|
11
|
+
interface CreateComponentRenderArgs<TLayers extends Record<string, LayerInput>> {
|
|
12
|
+
props: { [K in keyof TLayers]: LayerBundle };
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
} //#endregion
|
|
15
|
+
//#endregion
|
|
16
|
+
export { CreateComponentRenderArgs };
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { buildStylePropClassName } from "./className.js";
|
|
2
|
+
import { kebabCase } from "../../utils/dist/string-utils/kebabCase.js";
|
|
3
|
+
import { componentCompoundClass, componentSlotClass, componentVariantClass } from "../../utils/dist/string-utils/componentClassName.js";
|
|
4
|
+
import "../../utils/dist/index.js";
|
|
5
|
+
import { getRegisteredComposite, getRegisteredStyleProp } from "./runtime-registry.js";
|
|
6
|
+
//#region ../config/dist/bindRender.js
|
|
7
|
+
/**
|
|
8
|
+
* **NEW-API ONLY** — internal runtime for `defineComponent`-authored
|
|
9
|
+
* configs. Binds a config to a React render function and walks the
|
|
10
|
+
* `layers` / `props` blocks on every render to produce `LayerBundle`s.
|
|
11
|
+
*
|
|
12
|
+
* Does NOT touch any legacy `createComponent` / `defineComponents`
|
|
13
|
+
* code path. The legacy `createComponent` factory lives in
|
|
14
|
+
* `@uds/components` and has its own runtime (className composition
|
|
15
|
+
* via `getStyles` / `processStyleProps`).
|
|
16
|
+
*
|
|
17
|
+
* Render-time behavior:
|
|
18
|
+
*
|
|
19
|
+
* 1. The framework walks each entry in `config.layers` and builds a
|
|
20
|
+
* `LayerBundle` per layer — a `className` string plus any HTML
|
|
21
|
+
* attrs / forwarded props. Primitive layers with `defaultProps`
|
|
22
|
+
* pick up the deterministic `componentName-layerName` @utility
|
|
23
|
+
* class (the same one codegen emits from those defaults).
|
|
24
|
+
*
|
|
25
|
+
* 2. Incoming JSX props are partitioned per the `props` config:
|
|
26
|
+
* style-prop bindings → contribute classes to a specific layer's
|
|
27
|
+
* bundle; composite bindings → expand to multiple layers' bundles;
|
|
28
|
+
* surface forwards → land verbatim on the target layer's bundle;
|
|
29
|
+
* bool/enum markers → contribute data-attrs or per-layer overrides.
|
|
30
|
+
*
|
|
31
|
+
* 3. The render function receives `{ props, children, ...rest }` where
|
|
32
|
+
* `props.<layer>` is the computed bundle for that layer and
|
|
33
|
+
* `...rest` carries any props that weren't claimed by the config.
|
|
34
|
+
*
|
|
35
|
+
* Exported surface: `bindRender` (consumed by `defineComponent.ts`).
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Type-guard: a `StylePropMarker` is the helper-emitted binding with
|
|
39
|
+
* `__kind: 'styleProp'`, `layer`, and `ref` (bare registered style-
|
|
40
|
+
* prop name). Authored via `styleProp(ref).on(layer)`.
|
|
41
|
+
*/
|
|
42
|
+
function isStylePropMarker(binding) {
|
|
43
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "styleProp" && typeof binding.ref === "string" && typeof binding.layer === "string";
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Type-guard: a `StringMarker` carries only `__kind: 'string'`.
|
|
47
|
+
* Authored via `string()` — parallel to `bool()`, but the JSX value
|
|
48
|
+
* is a string written verbatim into `data-<kebab-name>="<value>"` on
|
|
49
|
+
* every layer's bundle.
|
|
50
|
+
*/
|
|
51
|
+
function isStringMarker(binding) {
|
|
52
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "string";
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Type-guard: an `EnumMarker` carries the `__kind: 'enum'` brand and a
|
|
56
|
+
* `values` map (axis-value → per-layer style map). Authored via
|
|
57
|
+
* `enums({...})` in the `props` block of a verbose-form
|
|
58
|
+
* `defineComponent` call.
|
|
59
|
+
*/
|
|
60
|
+
function isEnumMarker(binding) {
|
|
61
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "enum";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Type-guard: a `BoolMarker` carries only the `__kind: 'bool'` brand.
|
|
65
|
+
* Authored via `bool()` in the `props` block (e.g. `loading: bool()`).
|
|
66
|
+
*/
|
|
67
|
+
function isBoolMarker(binding) {
|
|
68
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "bool";
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Type-guard: a `SlotMarker` carries `__kind: 'slot'`, a `layer` name,
|
|
72
|
+
* and optionally an `as` target. Authored via `slot('layer')` or
|
|
73
|
+
* `slot('layer', { as: 'propName' })`.
|
|
74
|
+
*/
|
|
75
|
+
function isSlotMarker(binding) {
|
|
76
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "slot" && typeof binding.layer === "string";
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Type-guard: a `CompositeMarker` carries `__kind: 'composite'` and a
|
|
80
|
+
* brace-ref `ref` field pointing at a registered composite group.
|
|
81
|
+
* Authored via `composite('{textVariant}')` in the `props` block —
|
|
82
|
+
* the implicit-root-layer shorthand for composite bindings.
|
|
83
|
+
*/
|
|
84
|
+
function isCompositeMarker(binding) {
|
|
85
|
+
return typeof binding === "object" && binding !== null && binding.__kind === "composite" && typeof binding.ref === "string";
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Type-guard: a layer value is a component value (a `defineComponent`
|
|
89
|
+
* result). Recognized by the `__config` brand attached to every bound
|
|
90
|
+
* component. Stand-alone primitives (a `string` tag, `{ tag, attrs }`)
|
|
91
|
+
* never carry `__config` so the discriminator is unambiguous.
|
|
92
|
+
*/
|
|
93
|
+
function isComposedComponentValue(value) {
|
|
94
|
+
return typeof value === "function" && "__config" in value;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Append a className to a layer bundle, joining with a space if a class
|
|
98
|
+
* was already accumulated. Empty / falsy contributions are dropped.
|
|
99
|
+
*/
|
|
100
|
+
function appendClassName(bundle, className) {
|
|
101
|
+
if (!className) return;
|
|
102
|
+
const existing = bundle.className;
|
|
103
|
+
bundle.className = existing ? `${existing} ${className}` : className;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Build an initial `LayerBundle` for a layer.
|
|
107
|
+
*
|
|
108
|
+
* - `PrimitiveLayer.attrs` — locked HTML attrs (`role="alert"`,
|
|
109
|
+
* `aria-live="polite"`, …) seeded onto the bundle so the rendered
|
|
110
|
+
* element carries them.
|
|
111
|
+
* - Bare-tag string layers (`'div'`), bare component-value layers
|
|
112
|
+
* (`{ root: Card }`) — bundle starts empty; per-layer base styles
|
|
113
|
+
* come from the config's top-level `base: { <layer>: {...} }`
|
|
114
|
+
* block in a later pass.
|
|
115
|
+
*/
|
|
116
|
+
function buildLayerBundle(layer, _layerName, _componentName) {
|
|
117
|
+
const bundle = {};
|
|
118
|
+
if (layer === null || layer === void 0) return bundle;
|
|
119
|
+
if (isComposedComponentValue(layer)) return bundle;
|
|
120
|
+
if (typeof layer !== "object") return bundle;
|
|
121
|
+
if ("tag" in layer) {
|
|
122
|
+
const { attrs } = layer;
|
|
123
|
+
if (attrs) for (const [key, value] of Object.entries(attrs)) bundle[key] = value;
|
|
124
|
+
}
|
|
125
|
+
return bundle;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Internal: bind a config to a render function and return a React.FC.
|
|
129
|
+
* Shared by `createComponent` (public, type-explicit two-arg form) and
|
|
130
|
+
* `defineComponent` (primitive auto-render + chained `.render()`).
|
|
131
|
+
*/
|
|
132
|
+
function bindRender(config, render, options) {
|
|
133
|
+
const Component = (incomingProps) => {
|
|
134
|
+
const componentName = config.__componentName;
|
|
135
|
+
const configDefaults = config.defaultProps;
|
|
136
|
+
const effectiveProps = configDefaults ? {
|
|
137
|
+
...configDefaults,
|
|
138
|
+
...incomingProps
|
|
139
|
+
} : incomingProps;
|
|
140
|
+
const bundles = {};
|
|
141
|
+
for (const [layerName, layerValue] of Object.entries(config.layers)) bundles[layerName] = buildLayerBundle(layerValue, layerName, componentName);
|
|
142
|
+
const baseBlock = config.base;
|
|
143
|
+
if (baseBlock && componentName) for (const layerName of Object.keys(baseBlock)) {
|
|
144
|
+
const target = bundles[layerName];
|
|
145
|
+
if (!target) continue;
|
|
146
|
+
appendClassName(target, componentSlotClass(componentName, layerName));
|
|
147
|
+
}
|
|
148
|
+
const claimedKeys = /* @__PURE__ */ new Set();
|
|
149
|
+
const propsBlock = config.props;
|
|
150
|
+
if (propsBlock) for (const [jsxPropKey, binding] of Object.entries(propsBlock)) {
|
|
151
|
+
const incoming = effectiveProps[jsxPropKey];
|
|
152
|
+
if (isStylePropMarker(binding)) {
|
|
153
|
+
claimedKeys.add(jsxPropKey);
|
|
154
|
+
if (incoming === void 0 || incoming === null || incoming === false) continue;
|
|
155
|
+
const styleProp = getRegisteredStyleProp(binding.ref);
|
|
156
|
+
if (!styleProp) continue;
|
|
157
|
+
const target = bundles[binding.layer];
|
|
158
|
+
if (!target) continue;
|
|
159
|
+
const className = buildStylePropClassName(styleProp, incoming);
|
|
160
|
+
if (className) appendClassName(target, className);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (isEnumMarker(binding)) {
|
|
164
|
+
claimedKeys.add(jsxPropKey);
|
|
165
|
+
if (incoming === void 0 || incoming === null || !componentName) continue;
|
|
166
|
+
const valueKey = String(incoming);
|
|
167
|
+
const perLayerStyles = binding.values[valueKey];
|
|
168
|
+
if (typeof perLayerStyles !== "object" || perLayerStyles === null) continue;
|
|
169
|
+
for (const layerName of Object.keys(perLayerStyles)) {
|
|
170
|
+
const target = bundles[layerName];
|
|
171
|
+
if (!target) continue;
|
|
172
|
+
appendClassName(target, componentVariantClass(componentName, layerName, jsxPropKey, valueKey));
|
|
173
|
+
}
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (isSlotMarker(binding)) {
|
|
177
|
+
if (!binding.layer) continue;
|
|
178
|
+
claimedKeys.add(jsxPropKey);
|
|
179
|
+
if (incoming === void 0 || incoming === null) continue;
|
|
180
|
+
const target = bundles[binding.layer];
|
|
181
|
+
if (!target) continue;
|
|
182
|
+
target[binding.prop ?? "children"] = incoming;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (isCompositeMarker(binding)) {
|
|
186
|
+
claimedKeys.add(jsxPropKey);
|
|
187
|
+
if (incoming === void 0 || incoming === null) continue;
|
|
188
|
+
const refName = binding.ref;
|
|
189
|
+
if (!refName) continue;
|
|
190
|
+
const composite = getRegisteredComposite(refName);
|
|
191
|
+
if (!composite) continue;
|
|
192
|
+
const valueKey = String(incoming);
|
|
193
|
+
if (!composite.styles[valueKey]) continue;
|
|
194
|
+
const rootBundle = bundles.root;
|
|
195
|
+
if (!rootBundle) continue;
|
|
196
|
+
appendClassName(rootBundle, `${refName}-${valueKey.replace(/\./g, "_").replace(/\//g, "-")}`);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (isBoolMarker(binding)) {
|
|
200
|
+
claimedKeys.add(jsxPropKey);
|
|
201
|
+
if (!incoming) continue;
|
|
202
|
+
const attrName = `data-${kebabCase(jsxPropKey)}`;
|
|
203
|
+
for (const layerName of Object.keys(bundles)) {
|
|
204
|
+
const target = bundles[layerName];
|
|
205
|
+
if (target) target[attrName] = "true";
|
|
206
|
+
}
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
if (isStringMarker(binding)) {
|
|
210
|
+
claimedKeys.add(jsxPropKey);
|
|
211
|
+
if (incoming === void 0 || incoming === null || incoming === "") continue;
|
|
212
|
+
const attrName = `data-${kebabCase(jsxPropKey)}`;
|
|
213
|
+
const attrValue = String(incoming);
|
|
214
|
+
for (const layerName of Object.keys(bundles)) {
|
|
215
|
+
const target = bundles[layerName];
|
|
216
|
+
if (target) target[attrName] = attrValue;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
const compoundProps = config.compoundProps;
|
|
221
|
+
if (compoundProps && componentName) for (const entry of compoundProps) {
|
|
222
|
+
const conditions = {};
|
|
223
|
+
let match = true;
|
|
224
|
+
for (const [conditionKey, conditionValue] of Object.entries(entry.when)) {
|
|
225
|
+
const incoming = effectiveProps[conditionKey];
|
|
226
|
+
if (incoming === void 0 || incoming === null) {
|
|
227
|
+
match = false;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
const incomingStr = String(incoming);
|
|
231
|
+
if (incomingStr !== String(conditionValue)) {
|
|
232
|
+
match = false;
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
conditions[conditionKey] = incomingStr;
|
|
236
|
+
}
|
|
237
|
+
if (!match) continue;
|
|
238
|
+
for (const [layerName, layerOverride] of Object.entries(entry.layers)) {
|
|
239
|
+
const target = bundles[layerName];
|
|
240
|
+
if (!target) continue;
|
|
241
|
+
if (layerOverride?.__kind === "hidden") {
|
|
242
|
+
target.__hidden = true;
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
appendClassName(target, componentCompoundClass(componentName, layerName, conditions));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const layerPropsValue = effectiveProps.layerProps;
|
|
249
|
+
if (typeof layerPropsValue === "object" && layerPropsValue !== null && !Array.isArray(layerPropsValue)) {
|
|
250
|
+
claimedKeys.add("layerProps");
|
|
251
|
+
for (const [layerName, overrides] of Object.entries(layerPropsValue)) {
|
|
252
|
+
if (typeof overrides !== "object" || overrides === null || Array.isArray(overrides)) continue;
|
|
253
|
+
const bundle = bundles[layerName];
|
|
254
|
+
if (!bundle) continue;
|
|
255
|
+
for (const [propKey, propValue] of Object.entries(overrides)) {
|
|
256
|
+
if (propKey.startsWith("_")) {
|
|
257
|
+
if (typeof propValue !== "object" || propValue === null) continue;
|
|
258
|
+
const variantName = propKey.slice(1);
|
|
259
|
+
for (const [innerKey, innerValue] of Object.entries(propValue)) {
|
|
260
|
+
const styleProp = getRegisteredStyleProp(innerKey);
|
|
261
|
+
if (!styleProp) continue;
|
|
262
|
+
const className = buildStylePropClassName(styleProp, innerValue);
|
|
263
|
+
if (className) appendClassName(bundle, `${variantName}:${className}`);
|
|
264
|
+
}
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
const styleProp = getRegisteredStyleProp(propKey);
|
|
268
|
+
if (styleProp) {
|
|
269
|
+
if (propValue === void 0 || propValue === null || propValue === false) continue;
|
|
270
|
+
const className = buildStylePropClassName(styleProp, propValue);
|
|
271
|
+
if (className) appendClassName(bundle, className);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
if (propKey === "className" && typeof propValue === "string") {
|
|
275
|
+
appendClassName(bundle, propValue);
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
bundle[propKey] = propValue;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const rootBundleForMods = bundles.root;
|
|
283
|
+
for (const [key, value] of Object.entries(effectiveProps)) {
|
|
284
|
+
if (!key.startsWith("_")) continue;
|
|
285
|
+
if (claimedKeys.has(key)) continue;
|
|
286
|
+
claimedKeys.add(key);
|
|
287
|
+
if (!rootBundleForMods) continue;
|
|
288
|
+
if (typeof value !== "object" || value === null) continue;
|
|
289
|
+
const variantName = key.slice(1);
|
|
290
|
+
for (const [innerKey, innerValue] of Object.entries(value)) {
|
|
291
|
+
const styleProp = getRegisteredStyleProp(innerKey);
|
|
292
|
+
if (!styleProp) continue;
|
|
293
|
+
const baseClass = buildStylePropClassName(styleProp, innerValue);
|
|
294
|
+
if (!baseClass) continue;
|
|
295
|
+
appendClassName(rootBundleForMods, `${variantName}:${baseClass}`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const passthrough = {};
|
|
299
|
+
for (const [key, value] of Object.entries(effectiveProps)) if (!claimedKeys.has(key)) passthrough[key] = value;
|
|
300
|
+
return render({
|
|
301
|
+
...passthrough,
|
|
302
|
+
props: bundles
|
|
303
|
+
});
|
|
304
|
+
};
|
|
305
|
+
const displayName = options?.displayName || render.displayName || render.name?.trim() || void 0;
|
|
306
|
+
if (displayName) Component.displayName = displayName;
|
|
307
|
+
return Component;
|
|
308
|
+
}
|
|
309
|
+
//#endregion
|
|
310
|
+
export { bindRender };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//#region ../config/dist/className.d.ts
|
|
2
|
+
//#region src/className.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* **NEW-API ONLY** — shared utility-class derivation for
|
|
5
|
+
* `defineComponent`-authored components.
|
|
6
|
+
*
|
|
7
|
+
* Single source of truth for `(prop, value, styleProp) → class`.
|
|
8
|
+
* Consumed by:
|
|
9
|
+
*
|
|
10
|
+
* - `bindRender.ts` (runtime) — emits the per-layer className
|
|
11
|
+
* bundle as JSX renders.
|
|
12
|
+
* - `getStylesForConfig.ts` (build-time) — derives the same
|
|
13
|
+
* className list for the CSS scanner's safelist so the purger
|
|
14
|
+
* keeps every class the runtime can produce.
|
|
15
|
+
*
|
|
16
|
+
* Both paths MUST agree on the className shape. Centralising the
|
|
17
|
+
* derivation here is the contract: any change to the convention
|
|
18
|
+
* (e.g. boolean-alias handling) updates one place and both paths
|
|
19
|
+
* stay in lockstep.
|
|
20
|
+
*
|
|
21
|
+
* Does NOT touch the legacy `@uds/core`'s `getStyles` /
|
|
22
|
+
* `propMappings` — that's the legacy `createComponent` factory's
|
|
23
|
+
* world and lives in a different package.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Build the utility-class name a style prop emits for a given
|
|
27
|
+
* JSX-level value. Mirrors the codegen convention in
|
|
28
|
+
* `prepareCss.ts`'s @utility emission:
|
|
29
|
+
*
|
|
30
|
+
* - `classPrefix === ''` — the value IS the class (e.g.
|
|
31
|
+
* `<Box display="block">` → `.block`).
|
|
32
|
+
* - Boolean `true` — the class IS the bare `classPrefix`
|
|
33
|
+
* (`<Box border>` / `<Box border={true}>` → `.border`, never
|
|
34
|
+
* `.border-true`). Falsy (`undefined` / `null` / `false`) →
|
|
35
|
+
* `undefined`, so the caller omits the class entirely. The "no
|
|
36
|
+
* border" state is the default; adding a class to undo one that
|
|
37
|
+
* was never applied is pointless.
|
|
38
|
+
* - Bracketed arbitrary values (`'[#abc]'`, `'[100px]'`) keep
|
|
39
|
+
* their brackets verbatim: `bg-[#abc]`, `w-[100px]`.
|
|
40
|
+
* - Otherwise: `${classPrefix}-${safeTokenName(value)}`. Authors
|
|
41
|
+
* write the original token name (`'1.5'`); the @utility block
|
|
42
|
+
* is keyed by the class-name-safe form (`'1_5'`), so apply the
|
|
43
|
+
* conversion at emit time. Bracketed arbitrary values are left
|
|
44
|
+
* alone — Tailwind's wildcard utility expansion expects them
|
|
45
|
+
* verbatim.
|
|
46
|
+
*
|
|
47
|
+
* Returns `undefined` when no class should be emitted — callers
|
|
48
|
+
* skip the contribution rather than push a malformed token.
|
|
49
|
+
*/
|
|
50
|
+
declare function buildStylePropClassName(styleProp: {
|
|
51
|
+
classPrefix: string;
|
|
52
|
+
}, value: unknown): string | undefined; //#endregion
|
|
53
|
+
//#endregion
|
|
54
|
+
export { buildStylePropClassName };
|