@ntbjs/react-components 3.0.0-rc.1 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +34 -0
  2. package/build/data/Alert/Alert.js.map +1 -1
  3. package/build/data/Alert/Alert.styled.js.map +1 -1
  4. package/build/data/Badge/Badge.js.map +1 -1
  5. package/build/data/Badge/Badge.styled.js.map +1 -1
  6. package/build/data/Popover/Popover.js.map +1 -1
  7. package/build/data/Popover/Popover.styled.js.map +1 -1
  8. package/build/data/SeverityBadge/SeverityBadge.js.map +1 -1
  9. package/build/data/Tab/Tab.js.map +1 -1
  10. package/build/data/Tab/Tab.styled.js.map +1 -1
  11. package/build/data/Tabs/Tabs.js.map +1 -1
  12. package/build/data/Tabs/Tabs.styled.js.map +1 -1
  13. package/build/data/Tooltip/Tooltip.js.map +1 -1
  14. package/build/data/Tooltip/Tooltip.styled.js.map +1 -1
  15. package/build/data/VerificationStatusIcon/VerificationStatusIcon.js.map +1 -1
  16. package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js.map +1 -1
  17. package/build/data/_shared/FloatingArrow.styled.js.map +1 -1
  18. package/build/hooks/useEventListner.js.map +1 -1
  19. package/build/hooks/useFloatingPopover.js.map +1 -1
  20. package/build/hooks/useIsomorphicLayoutEffect.js.map +1 -1
  21. package/build/hooks/useOnClickOutside.js.map +1 -1
  22. package/build/hooks/useTooltipAutoShow.js.map +1 -1
  23. package/build/inputs/ActionButton/ActionButton.js.map +1 -1
  24. package/build/inputs/ActionButton/ActionButton.styled.js.map +1 -1
  25. package/build/inputs/Button/Button.js.map +1 -1
  26. package/build/inputs/Button/Button.styled.js.map +1 -1
  27. package/build/inputs/Checkbox/Checkbox.js.map +1 -1
  28. package/build/inputs/Checkbox/Checkbox.styled.js.map +1 -1
  29. package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js.map +1 -1
  30. package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js.map +1 -1
  31. package/build/inputs/CompactStarRating/CompactStarRating.js.map +1 -1
  32. package/build/inputs/CompactStarRating/CompactStarRating.styled.js.map +1 -1
  33. package/build/inputs/CompactTextInput/CompactTextInput.js.map +1 -1
  34. package/build/inputs/CompactTextInput/CompactTextInput.styled.js.map +1 -1
  35. package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js.map +1 -1
  36. package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js.map +1 -1
  37. package/build/inputs/MultiLevelCheckbox/types.js.map +1 -1
  38. package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js.map +1 -1
  39. package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js.map +1 -1
  40. package/build/inputs/MultiSelect/MultiSelect.js.map +1 -1
  41. package/build/inputs/MultiSelect/MultiSelect.styled.js.map +1 -1
  42. package/build/inputs/Radio/Radio.js.map +1 -1
  43. package/build/inputs/Radio/Radio.styled.js.map +1 -1
  44. package/build/inputs/Switch/Switch.styled.js.map +1 -1
  45. package/build/inputs/TextArea/TextArea.js.map +1 -1
  46. package/build/inputs/TextArea/TextArea.styled.js.map +1 -1
  47. package/build/inputs/TextInput/TextInput.js.map +1 -1
  48. package/build/inputs/TextInput/TextInput.styled.js.map +1 -1
  49. package/build/layout/InputGroup/InputGroup.js.map +1 -1
  50. package/build/layout/InputGroup/InputGroup.styled.js.map +1 -1
  51. package/build/layout/SectionSeparator/SectionSeparator.js.map +1 -1
  52. package/build/layout/SectionSeparator/SectionSeparator.styled.js.map +1 -1
  53. package/build/styles/utils/colors-export.d.ts +6 -25
  54. package/build/utils/dateTime.js.map +1 -1
  55. package/build/utils/defaultTheme.js.map +1 -1
  56. package/build/utils/getElementRef.js.map +1 -1
  57. package/build/utils/parseTrigger.js.map +1 -1
  58. package/build/widgets/AssetAction/AssetAction.js.map +1 -1
  59. package/build/widgets/AssetAction/AssetAction.styled.js.map +1 -1
  60. package/build/widgets/AssetActionsBase/AssetActionsBase.js.map +1 -1
  61. package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js.map +1 -1
  62. package/build/widgets/AssetGallery/AssetGallery.js.map +1 -1
  63. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -1
  64. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js.map +1 -1
  65. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -1
  66. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -1
  67. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
  68. package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
  69. package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js.map +1 -1
  70. package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js.map +1 -1
  71. package/build/widgets/ContextMenu/ContextMenu.js.map +1 -1
  72. package/build/widgets/ContextMenu/ContextMenu.styled.js.map +1 -1
  73. package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js.map +1 -1
  74. package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js.map +1 -1
  75. package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js.map +1 -1
  76. package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js.map +1 -1
  77. package/build/widgets/InfoCard/InfoCard.js.map +1 -1
  78. package/build/widgets/InfoCard/InfoCard.styled.js.map +1 -1
  79. package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.js.map +1 -1
  80. package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.js.map +1 -1
  81. package/build/widgets/Instructions/Instructions.js.map +1 -1
  82. package/build/widgets/Instructions/Instructions.styled.js.map +1 -1
  83. package/build/widgets/ProgressBar/ProgressBar.js.map +1 -1
  84. package/build/widgets/ProgressBar/ProgressBar.styled.js.map +1 -1
  85. package/build/widgets/SummaryCard/SummaryCard.js.map +1 -1
  86. package/build/widgets/SummaryCard/SummaryCard.styled.js.map +1 -1
  87. package/package.json +8 -1
  88. package/styles/utils/colors-export.d.ts +6 -25
  89. package/types/components/data/Alert/Alert.styled.d.ts +6 -37
  90. package/types/components/data/Badge/Badge.d.ts +1 -9
  91. package/types/components/data/Badge/Badge.styled.d.ts +0 -99
  92. package/types/components/data/Popover/Popover.d.ts +11 -100
  93. package/types/components/data/Tab/Tab.d.ts +1 -14
  94. package/types/components/data/Tabs/Tabs.styled.d.ts +1 -17
  95. package/types/components/data/Tooltip/Tooltip.d.ts +4 -50
  96. package/types/components/data/VerificationStatusIcon/VerificationStatusIcon.styled.d.ts +3 -22
  97. package/types/components/data/_shared/FloatingArrow.styled.d.ts +1 -101
  98. package/types/components/inputs/ActionButton/ActionButton.styled.d.ts +2 -20
  99. package/types/components/inputs/Button/Button.styled.d.ts +0 -42
  100. package/types/components/inputs/Checkbox/Checkbox.d.ts +0 -9
  101. package/types/components/inputs/Checkbox/Checkbox.styled.d.ts +6 -10
  102. package/types/components/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.d.ts +4 -57
  103. package/types/components/inputs/CompactStarRating/CompactStarRating.styled.d.ts +3 -55
  104. package/types/components/inputs/CompactTextInput/CompactTextInput.styled.d.ts +4 -32
  105. package/types/components/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.d.ts +2 -10
  106. package/types/components/inputs/MultiLevelCheckbox/types.d.ts +3 -46
  107. package/types/components/inputs/MultiSelect/MultiSelect.d.ts +0 -57
  108. package/types/components/inputs/MultiSelect/MultiSelect.styled.d.ts +0 -65
  109. package/types/components/inputs/Radio/Radio.styled.d.ts +3 -3
  110. package/types/components/inputs/Switch/Switch.styled.d.ts +3 -7
  111. package/types/components/inputs/TextArea/TextArea.d.ts +0 -4
  112. package/types/components/inputs/TextArea/TextArea.styled.d.ts +5 -7
  113. package/types/components/inputs/TextInput/TextInput.styled.d.ts +1 -1
  114. package/types/components/layout/SectionSeparator/SectionSeparator.styled.d.ts +2 -9
  115. package/types/components/widgets/AssetAction/AssetAction.styled.d.ts +2 -7
  116. package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.d.ts +0 -12
  117. package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.d.ts +7 -55
  118. package/types/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.d.ts +7 -43
  119. package/types/components/widgets/AssetGallery/asset.types.d.ts +31 -148
  120. package/types/components/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.d.ts +6 -20
  121. package/types/components/widgets/ContextMenu/ContextMenu.d.ts +1 -17
  122. package/types/components/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.d.ts +5 -13
  123. package/types/components/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.d.ts +0 -18
  124. package/types/components/widgets/InfoCard/InfoCard.styled.d.ts +2 -19
  125. package/types/components/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.d.ts +9 -19
  126. package/types/components/widgets/Instructions/Instructions.styled.d.ts +2 -14
  127. package/types/components/widgets/ProgressBar/ProgressBar.styled.d.ts +6 -43
  128. package/types/components/widgets/SummaryCard/SummaryCard.styled.d.ts +7 -46
  129. package/types/hooks/useElementSize.d.ts +3 -14
  130. package/types/hooks/useEventListner.d.ts +6 -38
  131. package/types/hooks/useFloatingPopover.d.ts +9 -90
  132. package/types/hooks/useIsomorphicLayoutEffect.d.ts +0 -23
  133. package/types/hooks/useOnClickOutside.d.ts +5 -23
  134. package/types/hooks/useTooltipAutoShow.d.ts +8 -57
  135. package/types/styles/utils/colors-export.d.ts +6 -25
  136. package/types/utils/dateTime.d.ts +2 -7
  137. package/types/utils/defaultTheme.d.ts +13 -92
  138. package/types/utils/getElementRef.d.ts +0 -19
  139. package/types/utils/parseTrigger.d.ts +8 -78
@@ -1,11 +1,5 @@
1
1
  import React from 'react';
2
2
  import * as S from './MultiSelect.styled';
3
- /**
4
- * MultiSelect's OWN props — the 19 members that were the entirety of this component's
5
- * declared surface until NMB-3998, unchanged. They stay authoritative: `MultiSelectProps`
6
- * below `Omit`s these keys out of the base before intersecting, so nothing here is
7
- * narrowed by a colliding member of react-select's props.
8
- */
9
3
  export type MultiSelectOwnProps = {
10
4
  /**
11
5
  *
@@ -116,57 +110,6 @@ export type MultiSelectOwnProps = {
116
110
  */
117
111
  warning?: boolean | string;
118
112
  };
119
- /**
120
- * THE PUBLISHED PROPS TYPE. It has a base, and that is playbook §C.2, not a convenience.
121
- *
122
- * This component destructures `...rest` (below) and spreads it into react-select —
123
- * `sharedSelectProps = { ...rest, … }`, handed to `<SelectComponent {...sharedSelectProps} />`.
124
- * A closed 19-member type therefore REJECTED props that this component forwards and that
125
- * work at runtime: measured against mb-main-client, `className`, `name`, `onBlur` and
126
- * `required` are all real react-select props being passed today and all four were a hard
127
- * TS2322 the moment the library started shipping `.d.ts`. That is the library lying about
128
- * its own contract, which is the exact class §C.2 exists to prevent — and it is NOT the
129
- * same finding as the other 22 rejected consumer attributes, which are props no component
130
- * here spreads anywhere and which stay rejected on purpose.
131
- *
132
- * THE BASE IS READ OFF WHAT `rest` IS ACTUALLY SPREAD ONTO, never assumed. That target is
133
- * one of the four `styled(<react-select …>)` wrappers, chosen at runtime by `loadOptions`
134
- * and `creatable`. `S.MultiSelect` — `styled(Select)` — is the deliberate choice among the
135
- * four: `CreatableSelect`/`AsyncPaginate` add props on top of the plain select's surface,
136
- * so plain `Select` is the set that is valid in ALL FOUR configurations. Basing this on the
137
- * async-creatable wrapper instead would admit `debounceTimeout` and friends in the default
138
- * configuration, where they do nothing — the same mistake in the other direction.
139
- *
140
- * `Omit<Base, keyof Own> & Own`, NOT `Base & Own`. An intersection intersects a colliding
141
- * MEMBER rather than replacing it; measured on `TextArea`, `rows?: number | string` met
142
- * `styled.textarea`'s `rows?: number` and `rows="4"` became an error — half a published
143
- * prop silently deleted by the pass meant to widen it. Disjoint pairs collapse to `never`.
144
- *
145
- * `ComponentPropsWithoutRef`, NOT `…WithRef`. `React.forwardRef` below supplies `ref`
146
- * itself; `WithRef` was measured to let `<MultiSelect ref={…} />` compile with the ref
147
- * silently dropped.
148
- *
149
- * BOTH ALIASES ARE `export`ed AND THE `const` BELOW IS ANNOTATED, for declaration emit
150
- * only — same mechanism and same audit as `CompactAutocompleteSelect` (577fc8d, §G.4.1).
151
- * tsc prints an exported alias from its source text and EXPANDS an unexported one, and the
152
- * expansion here reaches react-select's `PublicBaseSelectProps` /
153
- * `StateManagerAdditionalProps`, which `react-select`'s `exports` map does not serve:
154
- * TS2883, and with `noEmitOnError: false` that means the `.d.ts` is silently not written.
155
- * The annotation on the `const` is needed for the same reason — `forwardRef` infers
156
- * `ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<any>>` and tsc computes
157
- * `PropsWithoutRef<P>` eagerly, which re-expands what the exported alias just avoided.
158
- *
159
- * THE SWALLOW THIS PARAGRAPH USED TO RECORD AS OPEN IS FIXED. `sharedSelectProps` still
160
- * lists 14 keys after `...rest` and they still win — deliberately, and the reasoning is
161
- * written out at the literal itself — but `onFocus`, `onBlur` and `onChange` are no longer
162
- * among them: they now run the component's own logic and then call the caller's handler.
163
- * So `onBlur`, the one a consumer passes today, is both admitted by this type and actually
164
- * forwarded. Do not narrow this type to "reflect" the remaining 14: they are the runtime
165
- * form of props this component already declares (`selectedOptions`, `availableOptions`,
166
- * `disabled`/`readOnly`, `loadOptions`) plus its own rendering and CSS contract, and
167
- * `Omit`ting them would only stop react-select's own names from being accepted while
168
- * changing nothing about which value wins.
169
- */
170
113
  export type MultiSelectProps = Omit<React.ComponentPropsWithoutRef<typeof S.MultiSelect>, keyof MultiSelectOwnProps> & MultiSelectOwnProps;
171
114
  declare const MultiSelect: React.ForwardRefExoticComponent<MultiSelectProps & React.RefAttributes<any>>;
172
115
  export default MultiSelect;
@@ -3,66 +3,9 @@ import Select from 'react-select';
3
3
  import CreatableSelect from 'react-select/creatable';
4
4
  import { AsyncPaginate } from 'react-select-async-paginate';
5
5
  import type { PartialNtbTheme } from '../../../utils/defaultTheme';
6
- /**
7
- * The `theme` prop of the four react-select wrappers below, restated as OUR theme.
8
- *
9
- * WHY THIS EXISTS. `theme` is the one prop name that both styled-components and
10
- * react-select claim. react-select declares it `ThemeConfig = Theme | ((t: Theme) => Theme)`
11
- * and its `Theme` requires `borderRadius`, which `NtbTheme` does not have — so
12
- * `.attrs(applyDefaultTheme)`, whose return type is `{ theme: NtbTheme }`, was
13
- * unassignable to `Attrs<SelectProps>` and each wrapper reported:
14
- *
15
- * TS2345 … Types of property 'theme' are incompatible.
16
- * Type 'NtbTheme' is not assignable to type 'ThemeConfig'.
17
- * Property 'borderRadius' is missing in type 'NtbTheme' but required in type 'Theme'.
18
- *
19
- * `.attrs<{ theme?: PartialNtbTheme }>` fixes it because `attrs`' generic is applied as
20
- * `Substitute<OuterProps, P> = FastOmit<OuterProps, keyof P> & P` — i.e. declaring
21
- * `theme` REPLACES react-select's declaration of it rather than intersecting with it.
22
- *
23
- * AND THAT IS THE TRUTH ABOUT THIS BOUNDARY, not a workaround. At runtime `.attrs()`
24
- * hands react-select the merged `NtbTheme`, and react-select's `getTheme()` does
25
- * `{ ...its defaultTheme, ...this.props.theme }`: our `colors` and `spacing` win — which
26
- * is why `ThemeColors`/`ThemeSpacing` in `utils/defaultTheme.ts` carry react-select's
27
- * member names and not design-token names — and `borderRadius` falls through to
28
- * react-select's own `4`. `NtbTheme` is deliberately a PARTIAL override of react-select's
29
- * theme, so `ThemeConfig` was never the right type for this prop here.
30
- *
31
- * `PartialNtbTheme` and not `NtbTheme` because this is the INPUT side: a caller may pass
32
- * any subset and `applyDefaultTheme` fills the rest in, exactly as `ThemedProps` states
33
- * for every other file. Do NOT "fix" this by adding `borderRadius` to `NtbTheme`: that
34
- * would hand react-select a border radius it does not get today and is a render change.
35
- */
36
6
  interface SelectThemeProp {
37
- /** A partial override merged over `defaultTheme` by `applyDefaultTheme`. */
38
7
  theme?: PartialNtbTheme;
39
8
  }
40
- /**
41
- * The WRITTEN type of the four `styled(<react-select component>)` exports below, and the
42
- * reason they are annotated at all when nothing else in this repo is.
43
- *
44
- * `styled(Select).attrs<SelectThemeProp>(…)` INFERS a correct type. It is not a
45
- * WRITEABLE one: `tsc --declaration` has to print it into `MultiSelect.styled.d.ts`, the
46
- * printed form expands to react-select's `PublicBaseSelectProps` and
47
- * `StateManagerAdditionalProps`, and neither is re-exported from `react-select`'s public
48
- * entry — react-select has an `exports` map with no wildcard, so
49
- * `react-select/dist/declarations/src/Select` does not resolve for a consumer at all.
50
- * The result was 11 x TS2883 in this file, and the consequence was worse than the
51
- * message: `noEmitOnError` is false, so the build "succeeded" while this file's `.d.ts`
52
- * was SILENTLY NOT WRITTEN.
53
- *
54
- * A generic alias fixes it because tsc prints an alias APPLICATION by reference —
55
- * `SelectWrapper<typeof Select>` — instead of expanding it, and `typeof Select` is
56
- * `typeof import('react-select').default`, which is nameable. Nothing here is widened or
57
- * narrowed for the sake of the declaration: `Omit<ComponentProps<C>, keyof P> & P` is
58
- * exactly styled-components' own `Substitute<OuterProps, P>`, which is the rule
59
- * `SelectThemeProp` above relies on.
60
- *
61
- * What IS given up is the styled-components-specific surface of these four bindings —
62
- * `.withConfig()`, `.attrs()` and re-wrapping with `styled(S.MultiSelect)`. Audited:
63
- * nothing in this repo does any of the three to them. Adding one means annotating with
64
- * `IStyledComponent` instead, which puts the same non-portable expansion back.
65
- */
66
9
  type SelectWrapper<C extends React.ComponentType<any>> = React.ComponentType<Omit<React.ComponentProps<C>, keyof SelectThemeProp> & SelectThemeProp>;
67
10
  declare const AsyncCreatableSelectPaginate: import("react-select-async-paginate").WithAsyncPaginateType;
68
11
  export declare const MultiSelectWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
@@ -83,16 +26,8 @@ export declare const DropdownOptionDeleteIcon: import("styled-components/dist/ty
83
26
  export declare const ShowMoreWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
84
27
  export declare const ShowMoreOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
85
28
  export declare const ShowMoreText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
86
- /**
87
- * `MultiSelect.tsx` renders `<S.ErrorMessage $error={!!error} $warning={!!warning}>`
88
- * (line 461), so both are `boolean` — the `!!` is in the JSX, not here. Optional per
89
- * §J.5; the template's own ternary chain already ends in `'inherit'` for the
90
- * neither-set case.
91
- */
92
29
  interface ErrorMessageStyleProps {
93
- /** `!!error` — red. Wins over `$warning` when both are set. */
94
30
  $error?: boolean;
95
- /** `!!warning` — orange. */
96
31
  $warning?: boolean;
97
32
  }
98
33
  export declare const ErrorMessage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, ErrorMessageStyleProps>, never>> & string;
@@ -1,10 +1,10 @@
1
1
  export declare const RadioLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
2
2
  interface RadioStyleProps {
3
- /** `checked` — `PropTypes.bool`, passed through as the checked-state affordance. */
3
+ /** `checked` — passed through as the checked-state affordance. */
4
4
  $isChecked?: boolean;
5
- /** `disabled` — `PropTypes.bool`. Leaks to the DOM; see above. */
5
+ /** `disabled` — leaks to DOM. */
6
6
  disabled?: boolean;
7
- /** `readOnly` — `PropTypes.bool`. Leaks to the DOM; see above. */
7
+ /** `readOnly` — leaks to DOM. */
8
8
  readOnly?: boolean;
9
9
  }
10
10
  export declare const Radio: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>>, RadioStyleProps>, never>> & string;
@@ -1,7 +1,7 @@
1
1
  interface SwitchStyleProps {
2
- /** `disabled` — dims and blocks pointer events. Leaks to the DOM; see above. */
2
+ /** `disabled` — dims and blocks pointer events. Leaks to DOM. */
3
3
  disabled?: boolean;
4
- /** `readOnly` — dims and blocks pointer events. Leaks to the DOM; see above. */
4
+ /** `readOnly` — dims and blocks pointer events. Leaks to DOM. */
5
5
  readOnly?: boolean;
6
6
  }
7
7
  export declare const Switch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, SwitchStyleProps>, never>> & string;
@@ -10,11 +10,7 @@ export declare const SwitchIndicatorButton: import("styled-components/dist/types
10
10
  export declare const SwitchIndicatorLabelText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, never>, never>> & string;
11
11
  export declare const SwitchLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>>, never>, never>> & string;
12
12
  export declare const Description: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, {
13
- /**
14
- * `spaciousDescription` — `PropTypes.bool`. Lower-case `$spaciousdescription` by
15
- * existing convention at both ends; renaming it would be a two-file change for no
16
- * type benefit.
17
- */
13
+ /** `spaciousDescription` — lower-case by convention; renaming would require two-file change. */
18
14
  $spaciousdescription?: boolean;
19
15
  }>, never>> & string;
20
16
  export {};
@@ -73,10 +73,6 @@ type TextAreaOwnProps = {
73
73
  style?: any;
74
74
  /**
75
75
  * Add padding (small-medium-large)
76
- *
77
- * `''` is not from this component's propTypes; `Instructions` forwards its own
78
- * `'' | 'small' | 'medium' | 'large'` straight in at `Instructions.tsx:354`. Kept in
79
- * sync with `TextAreaPadding` in `TextArea.styled.ts`, which has the full rationale.
80
76
  */
81
77
  padding?: '' | 'small' | 'medium' | 'large';
82
78
  /**
@@ -4,10 +4,9 @@
4
4
  * carried as `$type` by `TextInputField`, `TextInputFieldIconAlert`, `TextInput` and
5
5
  * `Description`.
6
6
  *
7
- * Closed on purpose (§J.6): the templates below branch on this value 26 times, and with a
8
- * closed union a mistyped state name is TS2367 instead of a rule that silently never
9
- * fires — which is exactly the failure this file already contains three of. `''` is a
10
- * member because the component defaults `type = ''` (tsx line 40).
7
+ * Closed on purpose: the templates branch on this value 26 times, so a mistyped state name
8
+ * becomes a type error instead of a rule that silently never fires. `''` is a member because
9
+ * the component defaults `type = ''`.
11
10
  */
12
11
  type TextAreaType = '' | 'error' | 'error-border' | 'warning-border' | 'warning' | 'loading' | 'success' | 'instructions-warning';
13
12
  /**
@@ -33,9 +32,8 @@ export declare const InputIconContainer: import("styled-components/dist/types").
33
32
  * Props of `TextInputField`, the `<textarea>` itself. Six transient props plus the two
34
33
  * halves of a defect.
35
34
  *
36
- * `readOnly` and `disabled` are read by the template (7 times between them) and are
37
- * deliberately ABSENT from this interface: both are real `TextareaHTMLAttributes` members,
38
- * so those reads already typecheck and declaring them would add nothing. §J.9's first case.
35
+ * `readOnly` and `disabled` are deliberately absent: both are real `TextareaHTMLAttributes`
36
+ * members, so the template's reads already typecheck.
39
37
  */
40
38
  export interface TextInputFieldStyleProps {
41
39
  /**
@@ -4,7 +4,7 @@
4
4
  * `boolean` for both, and NOT the `bool | string` that `error`'s and `warning`'s own
5
5
  * propTypes allow: `TextInput.tsx` derives `hasError` / `hasWarning`
6
6
  * (`isBoolean(x) ? x : !isEmpty(x)`) and passes those, keeping the message text for
7
- * `Description`'s children. §J.6, rule 2 — the JSX site says which value arrives.
7
+ * `Description`'s children. The JSX site says which value arrives.
8
8
  */
9
9
  export interface ValidationStyleProps {
10
10
  /** `hasError` — red border / red message. */
@@ -1,14 +1,7 @@
1
- /**
2
- * Props of the styled root, i.e. `SectionSeparator.tsx`'s `vertical` / `margin`
3
- * carried across the `shouldForwardProp` boundary.
4
- */
5
1
  export interface SectionSeparatorStyleProps {
6
- /** `vertical` — swaps which axis gets the 1px hairline and which gets 100%. */
2
+ /** `vertical` — swaps which axis gets the 1px hairline. */
7
3
  $vertical?: boolean;
8
- /**
9
- * `margin` — px, interpolated as `${props.$margin}px`, so `number` and not
10
- * `number | string`: a string here would already render `margin-top: 8pxpx`.
11
- */
4
+ /** `margin` — px, interpolated so type is `number`. */
12
5
  $margin?: number;
13
6
  }
14
7
  export declare const SectionSeparator: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, SectionSeparatorStyleProps>, never>> & string;
@@ -1,14 +1,9 @@
1
1
  /**
2
- * `AssetActionButton`'s props, i.e. what `AssetAction.tsx` passes to it:
3
- * `$actionWidthHeight={action.actionWidthHeight}` and nothing else.
2
+ * Props passed by `AssetAction.tsx` to `<S.AssetActionButton>`.
4
3
  */
5
4
  interface AssetActionButtonStyleProps {
6
5
  /**
7
- * `action.actionWidthHeight` — `PropTypes.arrayOf(PropTypes.number)`, read as
8
- * `[width, height]`. `number[]` and not `[number, number]`: the propTypes say an
9
- * array of numbers of any length, and the template guards on the array's presence
10
- * rather than its length. The values are px and are also used arithmetically
11
- * (`- 14`), so `number` and not `number | string`.
6
+ * `[width, height]` in pixels, used arithmetically.
12
7
  */
13
8
  $actionWidthHeight?: number[];
14
9
  }
@@ -32,18 +32,6 @@ type AssetGalleryBaseOwnProps = {
32
32
  customSelectedBorder?: string[];
33
33
  /**
34
34
  * An array containing the key of all selected assets
35
- *
36
- * NMB-3998: `(string | number)[]`, not the `string[] | number[]` the propTypes codemod
37
- * produced from `oneOfType([arrayOf(string), arrayOf(number)])`. Calling `.includes()` on
38
- * a union OF ARRAY TYPES intersects the candidate signatures' parameters, giving
39
- * `string & number` = `never`, so all three `selectedAssetKeys.includes(...)` reads in
40
- * this file failed with "not assignable to parameter of type 'never'".
41
- *
42
- * The union was also the wrong contract, not merely an awkward one. `Asset['key']` is
43
- * `string | number`, and this array is compared against `asset.key` at lines 585, 659 and
44
- * 676 — so a gallery whose assets have mixed key types needs a mixed array, which
45
- * `arrayOf(string) | arrayOf(number)` cannot express. This records what the component
46
- * does; it is a pure widening, so no existing consumer call site can break.
47
35
  */
48
36
  selectedAssetKeys: (string | number)[];
49
37
  /**
@@ -1,68 +1,20 @@
1
1
  import type { AssetNoteType } from '../../asset.types';
2
- /**
3
- * `asset.disabled` — `PropTypes.bool` on the asset shape.
4
- *
5
- * NO `$`, AND THAT IS A DEFECT — AND THIS IS THE ONE OF THE FOUR THAT IS ALREADY IN
6
- * THE BASELINE. `shouldForwardProp` forwards every non-`$` prop; React does recognise
7
- * `disabled` and renders it as a bare boolean attribute even on a `<div>`, so
8
- * `disabled=""` sits on both the wrapper and the card root in
9
- * `scripts/r19-harness/baseline.json` under `widgets/AssetGalleryCompactCard#disabled`.
10
- * Grep it: `disabled=` appears 35 times across that file.
11
- *
12
- * The fix is to rename it `$disabled` at both ends, which REMOVES that attribute and
13
- * therefore MOVES the render baseline — C10 work, §E.4.
14
- *
15
- * Hosts: `AssetGalleryWrapper` and `AssetGalleryCompactCard`.
16
- */
2
+ /** NO `$` is a defect but already in baseline (`disabled=""` on wrapper and card). Deferred to C10. */
17
3
  interface AssetGalleryDisabledStyleProps {
18
4
  disabled?: boolean;
19
5
  }
20
- /**
21
- * The selection-state props, declared once because six components take overlapping
22
- * subsets of them; each one below `Pick`s exactly what its JSX site passes.
23
- * `AssetGalleryCompactCard.tsx` is the only caller.
24
- */
6
+ /** Selection-state props used across multiple components. AssetGalleryCompactCard.tsx is the only caller. */
25
7
  interface AssetGallerySelectionStyleProps {
26
- /**
27
- * `selected` — `PropTypes.bool`.
28
- *
29
- * NO `$`, AND THAT IS A DEFECT — BUT NOT A DOM LEAK, and the difference is worth
30
- * stating because the obvious guess is wrong. `shouldForwardProp` does forward it to
31
- * React, but React DROPS a boolean `selected` on anything that is not an `<option>`,
32
- * silently and with no warning; measured by rendering `<div selected>` through
33
- * react-dom@19.2.4, and confirmed by `selected=` appearing ZERO times in
34
- * `scripts/r19-harness/baseline.json`.
35
- *
36
- * So the defect is that the prop is unfiltered and the render only stays clean because
37
- * React cleans up after it. Prefixing it is still the right fix and still a behaviour
38
- * change to review on its own (C10) — it just would not move the baseline.
39
- */
8
+ /** NO `$` is a defect but not a DOM leak: React drops boolean `selected` on non-`<option>` elements. Deferred to C10. */
40
9
  selected?: boolean;
41
- /** `softSelected` — `PropTypes.bool.isRequired` on the COMPONENT, but optional here: a
42
- * required declaration produces TS2769 at `<X />` and at `<X {...props} />`. §J.5. */
10
+ /** Optional here to avoid TS2769 at call sites, though required on the component itself. */
43
11
  $softSelected?: boolean;
44
- /** `customSelectedBorder` — `PropTypes.arrayOf(PropTypes.string)`, read as
45
- * `[darkModeColor, lightModeColor]`. `string[]` and not `[string, string]`, because
46
- * that is what the propTypes say. */
12
+ /** Read as `[darkModeColor, lightModeColor]`; `string[]` not `[string, string]` to match propTypes. */
47
13
  $customSelectedBorder?: string[];
48
14
  }
49
- /**
50
- * The card root's props. `as={ComputedRootComponent}` is passed alongside these and that
51
- * wrapper re-renders this same styled component with the leftover props, so both passes
52
- * see the same shape.
53
- */
15
+ /** Card root props (both passes see the same shape via ComputedRootComponent). */
54
16
  interface AssetGalleryCompactCardStyleProps extends AssetGalleryDisabledStyleProps, Pick<AssetGallerySelectionStyleProps, 'selected'> {
55
- /**
56
- * `extendedSelectMode` — `PropTypes.bool`. Makes the whole card a selectable area.
57
- *
58
- * NO `$`, AND THAT IS A DEFECT — and it reaches the DOM even less than `selected`
59
- * does, for two independent reasons. `ComputedRootComponent` explicitly `omit`s this
60
- * key before re-rendering the card, so the inner pass never sees it; and React drops
61
- * an unrecognised camelCase prop whose value is `true` anyway, warning "React does
62
- * not recognize the `extendedSelectMode` prop on a DOM element". Both measured.
63
- * `extendedselectmode` appears ZERO times in the recorded baseline, with the base
64
- * fixture passing `extendedSelectMode: true`. Declared here, renamed in C10.
65
- */
17
+ /** NO `$` is a defect but not a DOM leak: ComputedRootComponent omits it and React drops camelCase props. Deferred to C10. */
66
18
  extendedSelectMode?: boolean;
67
19
  }
68
20
  export declare const AssetGalleryWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, AssetGalleryDisabledStyleProps>, never>> & string;
@@ -1,56 +1,20 @@
1
1
  export declare const AssetGalleryWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, Pick<AssetGalleryGridCardStyleProps, "disabled">>, never>> & string;
2
- /**
3
- * What `ringState` reads. Also the reason the card root needs a generic at all: three of
4
- * these five are only ever read HERE, inside the `.attrs()` callback, not in the template.
5
- */
2
+ /** Props that ringState reads. Reason card root needs a generic at all. */
6
3
  interface AssetGalleryGridCardRingProps {
7
- /**
8
- * `selected` — `PropTypes.bool`.
9
- *
10
- * NO `$`, AND THAT IS A DEFECT — but NOT a DOM leak. `ComputedRootComponent` spreads it
11
- * onto a plain `<div>` and React DROPS a boolean `selected` on any element that is not
12
- * an `<option>`, silently; `selected=` occurs zero times in
13
- * `scripts/r19-harness/baseline.json`. Prefixing it is still a behaviour change to
14
- * review on its own (C10, §E.4) — it just would not move the baseline.
15
- */
4
+ /** NO `$` is a defect but not a DOM leak: React drops boolean `selected` on non-`<option>` elements. Deferred to C10. */
16
5
  selected?: boolean;
17
- /**
18
- * `asset.completed` — `PropTypes.bool`.
19
- *
20
- * NO `$`, AND THAT IS A DEFECT — and again not a DOM leak, for a different reason:
21
- * `ComputedRootComponent` explicitly `omit`s `completed`, and React would drop it
22
- * anyway ("Received `true` for a non-boolean attribute `completed`"). Measured both ways.
23
- */
6
+ /** NO `$` is a defect but not a DOM leak: ComputedRootComponent explicitly omits it. Deferred to C10. */
24
7
  completed?: boolean;
25
- /** `softSelected` — `PropTypes.bool.isRequired` on the COMPONENT, optional here per §J.5. */
26
8
  $softSelected?: boolean;
27
- /** `asset.hasError` — `PropTypes.bool`. */
28
9
  $hasError?: boolean;
29
- /** `customSelectedBorder` — `PropTypes.arrayOf(PropTypes.string)`, read as
30
- * `[darkModeColor, lightModeColor]` and written into the `--ring-dark` / `--ring-light`
31
- * custom properties by the `.attrs()` callback. */
10
+ /** Read as `[darkModeColor, lightModeColor]` and written to `--ring-dark` / `--ring-light` custom properties. */
32
11
  $customSelectedBorder?: string[];
33
12
  }
34
- /**
35
- * The card root's props: everything `ringState` reads, plus the two the TEMPLATE reads.
36
- */
13
+ /** Card root props: everything ringState reads, plus what the template reads. */
37
14
  interface AssetGalleryGridCardStyleProps extends AssetGalleryGridCardRingProps {
38
- /**
39
- * `asset.disabled` — `PropTypes.bool`.
40
- *
41
- * NO `$`, AND THIS IS THE ONE THAT REALLY REACHES THE DOM. React recognises
42
- * `disabled` and renders it as a bare boolean attribute even on a `<div>`, so
43
- * `disabled=""` is on both the wrapper and the card root in
44
- * `widgets/AssetGalleryGridCard#disabled` in the recorded baseline. Renaming it
45
- * `$disabled` REMOVES that attribute and therefore MOVES the baseline — C10, §E.4.
46
- */
15
+ /** NO `$` reaches the DOM; defect deferred to C10. Baseline shows `disabled=""` on wrapper and card root. */
47
16
  disabled?: boolean;
48
- /**
49
- * `extendedSelectMode` — `PropTypes.bool`. Makes the whole card a selectable area.
50
- *
51
- * NO `$`, AND THAT IS A DEFECT — not a DOM leak twice over: `ComputedRootComponent`
52
- * `omit`s it, and React drops an unrecognised camelCase prop whose value is `true`.
53
- */
17
+ /** NO `$` is a defect but not a DOM leak: ComputedRootComponent omits it and React drops unrecognised camelCase props. */
54
18
  extendedSelectMode?: boolean;
55
19
  }
56
20
  export declare const AssetGalleryGridCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>, AssetGalleryGridCardStyleProps>, never>> & string;