@xeplr/ui-factory 1.0.7 → 1.0.8
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xeplr/ui-factory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Design data-entry screens on @xeplr/ui-canvas, save them as JSON, run them as auto-saving forms with lists of saved records — built for Claude to draft and people to refine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -195,9 +195,9 @@ function RadioView({ node, p, design, value, error, options, onChange, onBlur, d
|
|
|
195
195
|
const text = boxStyle(p.style)
|
|
196
196
|
return (
|
|
197
197
|
<Field node={node} p={p} error={error || (!design && options.error) || null}>
|
|
198
|
-
<div className={`xeplr-factory-
|
|
198
|
+
<div className={`xeplr-factory-choices xeplr-factory-choices--${p.layout === 'horizontal' ? 'horizontal' : 'vertical'}`} role="radiogroup" aria-labelledby={`${ids(node)}-label`}>
|
|
199
199
|
{items.map((o) => (
|
|
200
|
-
<label key={String(o.id)} className="xeplr-factory-
|
|
200
|
+
<label key={String(o.id)} className="xeplr-factory-choice" style={{ fontSize: text.fontSize, fontWeight: text.fontWeight, fontStyle: text.fontStyle, color: text.color }}>
|
|
201
201
|
<input
|
|
202
202
|
type="radio"
|
|
203
203
|
name={p.name}
|
|
@@ -228,9 +228,9 @@ function MultiselectView({ node, p, design, value, error, options, onChange, onB
|
|
|
228
228
|
}
|
|
229
229
|
return (
|
|
230
230
|
<Field node={node} p={p} error={error || (!design && options.error) || null}>
|
|
231
|
-
<div className={`xeplr-factory-
|
|
231
|
+
<div className={`xeplr-factory-choices xeplr-factory-choices--${p.layout === 'horizontal' ? 'horizontal' : 'vertical'}`} role="group" aria-labelledby={`${ids(node)}-label`}>
|
|
232
232
|
{items.map((o) => (
|
|
233
|
-
<label key={String(o.id)} className="xeplr-factory-
|
|
233
|
+
<label key={String(o.id)} className="xeplr-factory-choice" style={{ fontSize: text.fontSize, fontWeight: text.fontWeight, fontStyle: text.fontStyle, color: text.color }}>
|
|
234
234
|
<input
|
|
235
235
|
type="checkbox"
|
|
236
236
|
name={p.name}
|
package/src/designs/factory.css
CHANGED
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
/* ── option groups (radio, multi-select) ───────────────────────────────────
|
|
75
75
|
The group scrolls rather than spilling over the control below it, so a long
|
|
76
76
|
list of options cannot cover the next field. */
|
|
77
|
-
.xeplr-factory-
|
|
78
|
-
.xeplr-factory-
|
|
79
|
-
.xeplr-factory-
|
|
80
|
-
.xeplr-factory-
|
|
81
|
-
.xeplr-factory-
|
|
77
|
+
.xeplr-factory-choices { display: flex; gap: calc(6 * var(--xf-u)) calc(16 * var(--xf-u)); overflow: auto; min-height: 0; }
|
|
78
|
+
.xeplr-factory-choices--vertical { flex-direction: column; }
|
|
79
|
+
.xeplr-factory-choices--horizontal { flex-direction: row; flex-wrap: wrap; align-items: center; }
|
|
80
|
+
.xeplr-factory-choice { display: flex; align-items: center; gap: calc(8 * var(--xf-u)); cursor: pointer; color: var(--xf-ink); }
|
|
81
|
+
.xeplr-factory-choice input { width: calc(16 * var(--xf-u)); height: calc(16 * var(--xf-u)); min-width: 11px; min-height: 11px; margin: 0; accent-color: var(--xf-accent); }
|
|
82
82
|
|
|
83
83
|
/* ── file ─────────────────────────────────────────────────────────────────── */
|
|
84
84
|
.xeplr-factory-file { display: flex; align-items: center; gap: calc(8 * var(--xf-u)); min-width: 0; }
|