Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
861ded0
feat: add ControlPresentation primitive
pawelgrimm May 15, 2026
345d57d
test: add coverage for ControlPresentation
pawelgrimm May 15, 2026
35cbcf1
fix: Support focusing <select>
pawelgrimm May 15, 2026
9757c41
refactor: use flex gap instead of slot margins for slot spacing
pawelgrimm May 15, 2026
66df893
fix: prevent onClick from firing twice on wrapper background click
pawelgrimm May 15, 2026
fc5050d
refactor: prune ControlPresentation test suite to behavioral coverage
pawelgrimm May 15, 2026
fd3b6ea
refactor: drop onClick and forwardClickToControl from ControlPresenta…
pawelgrimm May 15, 2026
7b9c4e2
feat: add FieldChromeContainer private primitive
pawelgrimm May 15, 2026
957bcc0
test: add FieldChromeContainer border-radius and class assertions
pawelgrimm May 15, 2026
b6842d3
refactor: compose ControlPresentation on top of FieldChromeContainer
pawelgrimm May 15, 2026
d06b923
refactor: narrow FieldChromeContainer's public surface
pawelgrimm May 15, 2026
2682265
refactor: rename FieldChromeContainer to OutlinedControlContainer; ti…
pawelgrimm May 15, 2026
9927dc5
feat: add BorderedTextField component
pawelgrimm May 16, 2026
713633c
docs: add BorderedTextField stories
pawelgrimm May 16, 2026
f4e7ba9
feat!: drop variant prop from TextField; compose ControlPresentation
pawelgrimm May 16, 2026
d6924e0
feat!: drop variant prop from SelectField; compose ControlPresentation
pawelgrimm May 16, 2026
c69ff1d
feat!: drop variant prop from TextArea; compose OutlinedControlContainer
pawelgrimm May 16, 2026
91bb0e3
feat!: scope BaseField down to scaffolding only
pawelgrimm May 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions .react-compiler.rec.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
{
"recordVersion": 1,
"react-compiler-version": "1.0.0",
"files": {
"src/checkbox-field/checkbox-field.tsx": {
"CompileError": 1
},
"src/checkbox-field/use-fork-ref.ts": {
"CompileError": 1
},
"src/components/keyboard-shortcut/keyboard-shortcut.tsx": {
"CompileError": 1
},
"src/hooks/use-previous/use-previous.ts": {
"CompileError": 1
},
"src/menu/menu.tsx": {
"CompileError": 2
},
"src/tabs/tabs.tsx": {
"CompileError": 4
},
"src/tooltip/tooltip.tsx": {
"CompileError": 1
},
"src/utils/common-helpers.ts": {
"CompileError": 2
}
"recordVersion": 1,
"react-compiler-version": "1.0.0",
"files": {
"src/checkbox-field/checkbox-field.tsx": {
"CompileError": 1
},
"src/checkbox-field/use-fork-ref.ts": {
"CompileError": 1
},
"src/components/keyboard-shortcut/keyboard-shortcut.tsx": {
"CompileError": 1
},
"src/hooks/use-previous/use-previous.ts": {
"CompileError": 1
},
"src/menu/menu.tsx": {
"CompileError": 2
},
"src/tabs/tabs.tsx": {
"CompileError": 4
},
"src/tooltip/tooltip.tsx": {
"CompileError": 1
},
"src/utils/common-helpers.ts": {
"CompileError": 2
}
}
}
}
55 changes: 8 additions & 47 deletions src/base-field/base-field.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,68 +2,29 @@
--reactist-field-label-padding-bottom: 6px;
--reactist-field-label-line-height: inherit;
}

.container {
font-family: var(--reactist-font-family);
display: flex;
flex-direction: column;
}

.container label {
letter-spacing: -0.15px;
padding-bottom: var(--reactist-field-label-padding-bottom);
line-height: var(--reactist-field-label-line-height);
}

.container label,
.container .auxiliaryLabel {
text-align: right;
padding-bottom: var(--reactist-field-label-padding-bottom);
line-height: var(--reactist-field-label-line-height);
}

.container.bordered {
border-radius: var(--reactist-border-radius-large);
border: 1px solid var(--reactist-inputs-idle);
padding: var(--reactist-spacing-small);
padding-bottom: var(--reactist-spacing-xsmall);
overflow: clip;
}

.container.bordered label {
/* so that clicking in blank areas to the right of the label will focus the field element */
flex-grow: 1;
/* to convey that clicking in blank area to the right of the label places focus on the text field */
cursor: text;
}

.container.bordered label span {
/* overrides the cursor set above, so that hovering over the non-blank parts of the label stay unaffected */
cursor: default;
}

.container.bordered:hover {
border-color: var(--reactist-inputs-hover) !important;
}

.container.bordered:focus-within {
border-color: var(--reactist-inputs-focus) !important;
}

.container.bordered.error {
border-color: var(--reactist-inputs-alert) !important;
}

.container.bordered .primaryLabel {
font-weight: 500;
}

.container.bordered .auxiliaryLabel {
font-size: var(--reactist-font-size-caption);
}

.container:not(.bordered) .primaryLabel {
.container .primaryLabel {
font-weight: var(--reactist-font-weight-strong);
}

.container:not(.bordered) .auxiliaryLabel {
font-size: var(--reactist-font-size-body);
}

.container input,
.container textarea,
.container select {
Expand All @@ -75,7 +36,7 @@
}

.auxiliaryLabel {
text-align: right;
font-size: var(--reactist-font-size-body);
}

.loadingIcon {
Expand Down
Loading
Loading