@fieldia/widgets 0.12.0 → 0.13.1
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 +2 -2
- package/src/lib/cards.js +2 -2
- package/src/lib/cards.js.map +1 -1
- package/src/lib/cards.mjs +2 -2
- package/src/lib/cards.mjs.map +1 -1
- package/src/lib/choice-tags.js +4 -2
- package/src/lib/choice-tags.js.map +1 -1
- package/src/lib/choice-tags.mjs +4 -2
- package/src/lib/choice-tags.mjs.map +1 -1
- package/src/lib/float.d.mts +14 -0
- package/src/lib/float.d.ts +14 -0
- package/src/lib/float.js +91 -0
- package/src/lib/float.js.map +1 -0
- package/src/lib/float.mjs +88 -0
- package/src/lib/float.mjs.map +1 -0
- package/src/lib/labels.d.mts +2 -0
- package/src/lib/labels.d.ts +2 -0
- package/src/lib/labels.js +1 -0
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +1 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/layout-styles.d.mts +1 -1
- package/src/lib/layout-styles.d.ts +1 -1
- package/src/lib/layout-styles.js +12 -5
- package/src/lib/layout-styles.js.map +1 -1
- package/src/lib/layout-styles.mjs +12 -5
- package/src/lib/layout-styles.mjs.map +1 -1
- package/src/lib/lines.js +123 -12
- package/src/lib/lines.js.map +1 -1
- package/src/lib/lines.mjs +123 -12
- package/src/lib/lines.mjs.map +1 -1
- package/src/lib/locales/ar.js +1 -0
- package/src/lib/locales/ar.js.map +1 -1
- package/src/lib/locales/ar.mjs +1 -0
- package/src/lib/locales/ar.mjs.map +1 -1
- package/src/lib/locales/de.js +1 -0
- package/src/lib/locales/de.js.map +1 -1
- package/src/lib/locales/de.mjs +1 -0
- package/src/lib/locales/de.mjs.map +1 -1
- package/src/lib/locales/fr.js +1 -0
- package/src/lib/locales/fr.js.map +1 -1
- package/src/lib/locales/fr.mjs +1 -0
- package/src/lib/locales/fr.mjs.map +1 -1
- package/src/lib/numbers.d.mts +5 -1
- package/src/lib/numbers.d.ts +5 -1
- package/src/lib/numbers.js +15 -2
- package/src/lib/numbers.js.map +1 -1
- package/src/lib/numbers.mjs +13 -2
- package/src/lib/numbers.mjs.map +1 -1
- package/src/lib/relations.js +11 -2
- package/src/lib/relations.js.map +1 -1
- package/src/lib/relations.mjs +11 -2
- package/src/lib/relations.mjs.map +1 -1
- package/src/lib/styles-business.d.mts +1 -1
- package/src/lib/styles-business.d.ts +1 -1
- package/src/lib/styles-business.js +1 -1
- package/src/lib/styles-business.mjs +1 -1
- package/src/lib/styles-inputs.d.mts +1 -1
- package/src/lib/styles-inputs.d.ts +1 -1
- package/src/lib/styles-inputs.js +2 -0
- package/src/lib/styles-inputs.js.map +1 -1
- package/src/lib/styles-inputs.mjs +2 -0
- package/src/lib/styles-inputs.mjs.map +1 -1
- package/src/lib/styles-kinds.d.mts +1 -1
- package/src/lib/styles-kinds.d.ts +1 -1
- package/src/lib/styles-kinds.js +1 -1
- package/src/lib/styles-kinds.mjs +1 -1
- package/src/lib/styles-sheet.d.mts +1 -1
- package/src/lib/styles-sheet.d.ts +1 -1
- package/src/lib/styles-sheet.js +28 -12
- package/src/lib/styles-sheet.js.map +1 -1
- package/src/lib/styles-sheet.mjs +28 -12
- package/src/lib/styles-sheet.mjs.map +1 -1
- package/src/lib/styles.js +83 -19
- package/src/lib/styles.js.map +1 -1
- package/src/lib/styles.mjs +83 -19
- package/src/lib/styles.mjs.map +1 -1
- package/src/lib/themes.d.mts +29 -0
- package/src/lib/themes.d.ts +29 -0
- package/src/lib/themes.js +180 -0
- package/src/lib/themes.js.map +1 -0
- package/src/lib/themes.mjs +177 -0
- package/src/lib/themes.mjs.map +1 -0
- package/src/lib/widgets.d.mts +7 -1
- package/src/lib/widgets.d.ts +7 -1
- package/src/lib/widgets.js +29 -6
- package/src/lib/widgets.js.map +1 -1
- package/src/lib/widgets.mjs +30 -7
- package/src/lib/widgets.mjs.map +1 -1
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Logical properties throughout, so right to left mirrors on its own.
|
|
10
10
|
*/
|
|
11
|
-
export declare const LAYOUT_CSS = "\n/* ---- arrangements: parts side by side or one under another, nothing drawn round them ---- */\n/* On its grid's columns: the grid's own tracks and gaps, so its parts line up with everything above and below. */\n.fd-grid > .fd-section[data-place=\"tracks\"] {\n /* The columns it covers: its span, never more than its grid has at this width. */\n --fd-tracks: min(var(--fd-span, 1), var(--fd-cols));\n grid-template-columns: subgrid;\n column-gap: var(--fd-gap-x);\n}\n.fd-form .fd-section[data-place=\"tracks\"] > .fd-grid { --fd-cols: var(--fd-tracks); grid-column: 1 / -1; grid-template-columns: subgrid; }\n.fd-section[data-place] > .fd-section-description { grid-column: 1 / -1; }\n/* Parts sharing one cell, side by side; one under the other where the cell is too narrow for that. */\n.fd-grid > .fd-section[data-place=\"shared\"] { container-type: inline-size; }\n.fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: var(--fd-columns, 1); }\n@container (max-width: 330px) {\n .fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: 1; }\n}\n\n/* ---- how a group is drawn: a card, plain, a line under its title, or a frame round it ---- */\n/* A group of its own paints the ground it stands on, so nothing of the grid round it shows through. */\n.fd-form { --fd-ground: transparent; }\n.fd-card, .fd-form[data-fd-skin=\"outlined\"] .fd-section[data-style=\"card\"][data-on-page] { --fd-ground: var(--fd-surface); }\nfieldset.fd-section[data-style] { background-color: var(--fd-ground); }\n.fd-form .fd-section[data-style=\"line\"] > .fd-section-title { border-block-end: 1px solid var(--fd-border); padding-block-end: 8px; }\n.fd-form .fd-section[data-style=\"plain\"] > .fd-section-title { border-block-end: 0; padding-block-end: 0; }\n.fd-form .fd-section[data-style=\"framed\"] {\n border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); padding: 6px 18px 18px;\n}\n/* The title sits on the frame, as a fieldset's legend does: the frame breaks round it. */\n.fd-form .fd-section[data-style=\"framed\"] > .fd-section-title {\n float: none; width: auto; max-width: 100%; padding: 0 6px; margin-inline-start: -6px; border: 0;\n}\n\n/* ---- where labels sit: as the page, a group or the field itself says (data-labels), in either skin ---- */\n.fd-form .fd-field[data-labels] { grid-template-columns: minmax(0, 1fr); }\n.fd-form .fd-field[data-labels] > * { grid-column: 1 / -1; }\n/* Beside: the label in a column of its own while the field has room for both. In a cell narrower\n than that the label goes back above its box, so the box is never crushed. */\n.fd-form .fd-field[data-labels=\"beside\"] {\n container-type: inline-size;\n grid-template-columns: minmax(0, var(--fd-label-width, 140px)) minmax(0, 1fr);\n column-gap: 14px;\n}\n@container (min-width: 300px) {\n .fd-form .fd-field[data-labels=\"beside\"] > .fd-label {\n grid-column: 1; align-self: start; padding-block-start: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n }\n .fd-form .fd-field[data-labels=\"beside\"] > :not(.fd-label) { grid-column: 2; }\n}\n/* Hidden: out of sight, still the box's name for a screen reader; the empty box shows it instead. */\n.fd-form .fd-field[data-labels=\"hidden\"] > .fd-label {\n position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;\n}\n/* After: a tick box, then its words on the same line, as a sentence; its help and messages under the words. They\n drop to sit level with the boxes beside them in a row, by margins: the field's own padding is left to whoever\n draws round it (a designer's canvas rings a part there). */\n.fd-form .fd-field[data-labels=\"after\"] {\n grid-template-columns: auto minmax(0, 1fr); column-gap: 9px; align-items: start;\n --fd-tick-drop: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n}\n/* The box, or what holds it (a designer's canvas wraps each answer box). */\n.fd-form .fd-field[data-labels=\"after\"] > :is(.fd-tick, :has(> .fd-tick)) { grid-column: 1; grid-row: 1; display: flex; margin-block-start: calc(var(--fd-tick-drop) + (1.45em - 17px) / 2); }\n.fd-form .fd-field[data-labels=\"after\"] .fd-tick { width: 17px; height: 17px; }\n.fd-form .fd-field[data-labels=\"after\"] > :not(.fd-tick, :has(> .fd-tick)) { grid-column: 2; }\n.fd-form .fd-field[data-labels=\"after\"] > .fd-label { grid-row: 1; margin-block-start: var(--fd-tick-drop); font-weight: inherit; line-height: 1.45; cursor: pointer; }\n/* A field or a cell that measures itself is drawn over its neighbours while it is worked in: its lists and calendars open over them. */\n.fd-form .fd-field[data-labels=\"beside\"]:focus-within, .fd-grid > .fd-section[data-place=\"shared\"]:focus-within { z-index: 3; }\n\n/* ---- widths for tabs, words and buttons: they span columns like fields; a button stays as wide as its words ---- */\n:is(.fd-grid, .fd-sections) > .fd-button { justify-self: start; }\n/* A note: words set apart in a soft panel, a shade off whatever it stands on \u2014 a card, the page, or the dark. */\n.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }\n\n/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ---- */\n:is(.fd-form, .fd-form-dialog)[data-font=\"serif\"] { --fd-font: \"Source Serif 4\", Georgia, serif; }\n:is(.fd-form, .fd-form-dialog)[data-font=\"rounded\"] { --fd-font: Nunito, \"Varela Round\", system-ui; }\n/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */\n:is(.fd-form, .fd-form-dialog)[data-density=\"compact\"] { --fd-gap-y: 10px; --fd-gap-x: 16px; --fd-control-height: 30px; --fd-gap-block: 16px; --fd-group-pad: 14px 16px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"comfortable\"] { --fd-gap-y: 16px; --fd-gap-x: 20px; --fd-control-height: 36px; --fd-gap-block: 22px; --fd-group-pad: 18px 22px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"roomy\"] { --fd-gap-y: 22px; --fd-gap-x: 28px; --fd-control-height: 42px; --fd-gap-block: 30px; --fd-group-pad: 24px 30px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"square\"] { --fd-radius: 0px; --fd-control-radius: 0px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"soft\"] { --fd-radius: 10px; --fd-control-radius: 6px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"round\"] { --fd-radius: 16px; --fd-control-radius: 12px; }\n\n/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it. */\n.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); --fd-ground: var(--fd-page); }\n.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }\n/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */\n.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }\n.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] {\n color-scheme: dark;\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n}\n/* Auto follows the reader's system: the same dark tokens, when it is dark. */\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] {\n color-scheme: dark;\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n }\n}\n\n/* The page's accent, and the softer and hover shades mixed from it on whatever surface the scheme has. */\n:is(.fd-form, .fd-form-dialog)[data-accent] {\n --fd-accent: var(--fd-look-accent);\n --fd-accent-text: var(--fd-look-accent-text);\n --fd-focus: var(--fd-look-accent);\n --fd-accent-soft: color-mix(in srgb, var(--fd-accent) 12%, var(--fd-surface));\n --fd-accent-hover: color-mix(in srgb, var(--fd-accent) 84%, var(--fd-text));\n}\n/* On a dark page, the accent the viewer lightened, when it had to be, so it still reads there. */\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n}\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n }\n}\n:is(.fd-form, .fd-form-dialog)[data-fd-skin=\"outlined\"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }\n:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }\n/* A band of the accent under the page's title. */\n.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }\n";
|
|
11
|
+
export declare const LAYOUT_CSS = "\n/* ---- arrangements: parts side by side or one under another, nothing drawn round them ---- */\n/* On its grid's columns: the grid's own tracks and gaps, so its parts line up with everything above and below. */\n.fd-grid > .fd-section[data-place=\"tracks\"] {\n /* The columns it covers: its span, never more than its grid has at this width. */\n --fd-tracks: min(var(--fd-span, 1), var(--fd-cols));\n grid-template-columns: subgrid;\n column-gap: var(--fd-gap-x);\n}\n.fd-form .fd-section[data-place=\"tracks\"] > .fd-grid { --fd-cols: var(--fd-tracks); grid-column: 1 / -1; grid-template-columns: subgrid; }\n.fd-section[data-place] > .fd-section-description { grid-column: 1 / -1; }\n/* Parts sharing one cell, side by side; one under the other where the cell is too narrow for that. */\n.fd-grid > .fd-section[data-place=\"shared\"] { container-type: inline-size; }\n.fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: var(--fd-columns, 1); }\n@container (max-width: 330px) {\n .fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: 1; }\n}\n\n/* ---- how a group is drawn: a card, plain, a line under its title, or a frame round it ---- */\n/* A group of its own paints the ground it stands on, so nothing of the grid round it shows through. */\n.fd-form { --fd-ground: transparent; }\n.fd-card, .fd-form[data-fd-skin=\"outlined\"] .fd-section[data-style=\"card\"][data-on-page] { --fd-ground: var(--fd-surface); }\nfieldset.fd-section[data-style] { background-color: var(--fd-ground); }\n.fd-form .fd-section[data-style=\"line\"] > .fd-section-title { border-block-end: 1px solid var(--fd-border); padding-block-end: 8px; }\n.fd-form .fd-section[data-style=\"plain\"] > .fd-section-title { border-block-end: 0; padding-block-end: 0; }\n.fd-form .fd-section[data-style=\"framed\"] {\n border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); padding: 6px 18px 18px;\n}\n/* The title sits on the frame, as a fieldset's legend does: the frame breaks round it. */\n.fd-form .fd-section[data-style=\"framed\"] > .fd-section-title {\n float: none; width: auto; max-width: 100%; padding: 0 6px; margin-inline-start: -6px; border: 0;\n}\n\n/* ---- where labels sit: as the page, a group or the field itself says (data-labels), in either skin ---- */\n.fd-form .fd-field[data-labels] { grid-template-columns: minmax(0, 1fr); }\n.fd-form .fd-field[data-labels] > * { grid-column: 1 / -1; }\n/* Beside: the label in a column of its own while the field has room for both. In a cell narrower\n than that the label goes back above its box, so the box is never crushed. */\n.fd-form .fd-field[data-labels=\"beside\"] {\n container-type: inline-size;\n grid-template-columns: minmax(0, var(--fd-label-width, 140px)) minmax(0, 1fr);\n column-gap: 14px;\n}\n@container (min-width: 300px) {\n .fd-form .fd-field[data-labels=\"beside\"] > .fd-label {\n grid-column: 1; align-self: start; padding-block-start: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n }\n .fd-form .fd-field[data-labels=\"beside\"] > :not(.fd-label) { grid-column: 2; }\n}\n/* Hidden: out of sight, still the box's name for a screen reader; the empty box shows it instead. */\n.fd-form .fd-field[data-labels=\"hidden\"] > .fd-label {\n position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;\n}\n/* After: a tick box, then its words on the same line, as a sentence; its help and messages under the words. They\n drop to sit level with the boxes beside them in a row, by margins: the field's own padding is left to whoever\n draws round it (a designer's canvas rings a part there). */\n.fd-form .fd-field[data-labels=\"after\"] {\n grid-template-columns: auto minmax(0, 1fr); column-gap: 9px; align-items: start;\n --fd-tick-drop: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n}\n/* The box, or what holds it (a designer's canvas wraps each answer box). */\n.fd-form .fd-field[data-labels=\"after\"] > :is(.fd-tick, :has(> .fd-tick)) { grid-column: 1; grid-row: 1; display: flex; margin-block-start: calc(var(--fd-tick-drop) + (1.45em - 17px) / 2); }\n.fd-form .fd-field[data-labels=\"after\"] .fd-tick { width: 17px; height: 17px; }\n.fd-form .fd-field[data-labels=\"after\"] > :not(.fd-tick, :has(> .fd-tick)) { grid-column: 2; }\n.fd-form .fd-field[data-labels=\"after\"] > .fd-label { grid-row: 1; margin-block-start: var(--fd-tick-drop); font-weight: inherit; line-height: 1.45; cursor: pointer; }\n/* A field or a cell that measures itself is drawn over its neighbours while it is worked in: its lists and calendars open over them. */\n.fd-form .fd-field[data-labels=\"beside\"]:focus-within, .fd-grid > .fd-section[data-place=\"shared\"]:focus-within { z-index: 3; }\n\n/* ---- widths for tabs, words and buttons: they span columns like fields; a button stays as wide as its words ---- */\n:is(.fd-grid, .fd-sections) > .fd-button { justify-self: start; }\n/* A note: words set apart in a soft panel, a shade off whatever it stands on \u2014 a card, the page, or the dark. */\n.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }\n\n/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----\n Its tokens in Fieldia's tokens' layer (styles.ts): a host's own rule sets them over the page's. */\n@layer fieldia-tokens {\n:is(.fd-form, .fd-form-dialog)[data-font=\"serif\"] { --fd-font: \"Source Serif 4\", Georgia, serif; }\n:is(.fd-form, .fd-form-dialog)[data-font=\"rounded\"] { --fd-font: Nunito, \"Varela Round\", system-ui; }\n/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */\n:is(.fd-form, .fd-form-dialog)[data-density=\"compact\"] { --fd-gap-y: 10px; --fd-gap-x: 16px; --fd-control-height: 30px; --fd-gap-block: 16px; --fd-group-pad: 14px 16px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"comfortable\"] { --fd-gap-y: 16px; --fd-gap-x: 20px; --fd-control-height: 36px; --fd-gap-block: 22px; --fd-group-pad: 18px 22px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"roomy\"] { --fd-gap-y: 22px; --fd-gap-x: 28px; --fd-control-height: 42px; --fd-gap-block: 30px; --fd-group-pad: 24px 30px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"square\"] { --fd-radius: 0px; --fd-control-radius: 0px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"soft\"] { --fd-radius: 10px; --fd-control-radius: 6px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"round\"] { --fd-radius: 16px; --fd-control-radius: 12px; }\n.fd-form[data-scheme] { --fd-ground: var(--fd-page); }\n}\n\n/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.\n Its native controls (scroll bars, date pickers) follow it. */\n.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); }\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] { color-scheme: dark; }\n@media (prefers-color-scheme: dark) { :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] { color-scheme: dark; } }\n.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }\n/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */\n.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }\n.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }\n@layer fieldia-tokens {\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] {\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n}\n/* Auto follows the reader's system: the same dark tokens, when it is dark. */\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] {\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n }\n}\n\n/* The page's accent, and the softer and hover shades mixed from it on whatever surface the scheme has. */\n:is(.fd-form, .fd-form-dialog)[data-accent] {\n --fd-accent: var(--fd-look-accent);\n --fd-accent-text: var(--fd-look-accent-text);\n --fd-focus: var(--fd-look-accent);\n --fd-accent-soft: color-mix(in srgb, var(--fd-accent) 12%, var(--fd-surface));\n --fd-accent-hover: color-mix(in srgb, var(--fd-accent) 84%, var(--fd-text));\n}\n/* On a dark page, the accent the viewer lightened, when it had to be, so it still reads there. */\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n}\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n }\n}\n:is(.fd-form, .fd-form-dialog)[data-fd-skin=\"outlined\"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }\n}\n:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }\n/* A band of the accent under the page's title. */\n.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }\n";
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Logical properties throughout, so right to left mirrors on its own.
|
|
10
10
|
*/
|
|
11
|
-
export declare const LAYOUT_CSS = "\n/* ---- arrangements: parts side by side or one under another, nothing drawn round them ---- */\n/* On its grid's columns: the grid's own tracks and gaps, so its parts line up with everything above and below. */\n.fd-grid > .fd-section[data-place=\"tracks\"] {\n /* The columns it covers: its span, never more than its grid has at this width. */\n --fd-tracks: min(var(--fd-span, 1), var(--fd-cols));\n grid-template-columns: subgrid;\n column-gap: var(--fd-gap-x);\n}\n.fd-form .fd-section[data-place=\"tracks\"] > .fd-grid { --fd-cols: var(--fd-tracks); grid-column: 1 / -1; grid-template-columns: subgrid; }\n.fd-section[data-place] > .fd-section-description { grid-column: 1 / -1; }\n/* Parts sharing one cell, side by side; one under the other where the cell is too narrow for that. */\n.fd-grid > .fd-section[data-place=\"shared\"] { container-type: inline-size; }\n.fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: var(--fd-columns, 1); }\n@container (max-width: 330px) {\n .fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: 1; }\n}\n\n/* ---- how a group is drawn: a card, plain, a line under its title, or a frame round it ---- */\n/* A group of its own paints the ground it stands on, so nothing of the grid round it shows through. */\n.fd-form { --fd-ground: transparent; }\n.fd-card, .fd-form[data-fd-skin=\"outlined\"] .fd-section[data-style=\"card\"][data-on-page] { --fd-ground: var(--fd-surface); }\nfieldset.fd-section[data-style] { background-color: var(--fd-ground); }\n.fd-form .fd-section[data-style=\"line\"] > .fd-section-title { border-block-end: 1px solid var(--fd-border); padding-block-end: 8px; }\n.fd-form .fd-section[data-style=\"plain\"] > .fd-section-title { border-block-end: 0; padding-block-end: 0; }\n.fd-form .fd-section[data-style=\"framed\"] {\n border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); padding: 6px 18px 18px;\n}\n/* The title sits on the frame, as a fieldset's legend does: the frame breaks round it. */\n.fd-form .fd-section[data-style=\"framed\"] > .fd-section-title {\n float: none; width: auto; max-width: 100%; padding: 0 6px; margin-inline-start: -6px; border: 0;\n}\n\n/* ---- where labels sit: as the page, a group or the field itself says (data-labels), in either skin ---- */\n.fd-form .fd-field[data-labels] { grid-template-columns: minmax(0, 1fr); }\n.fd-form .fd-field[data-labels] > * { grid-column: 1 / -1; }\n/* Beside: the label in a column of its own while the field has room for both. In a cell narrower\n than that the label goes back above its box, so the box is never crushed. */\n.fd-form .fd-field[data-labels=\"beside\"] {\n container-type: inline-size;\n grid-template-columns: minmax(0, var(--fd-label-width, 140px)) minmax(0, 1fr);\n column-gap: 14px;\n}\n@container (min-width: 300px) {\n .fd-form .fd-field[data-labels=\"beside\"] > .fd-label {\n grid-column: 1; align-self: start; padding-block-start: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n }\n .fd-form .fd-field[data-labels=\"beside\"] > :not(.fd-label) { grid-column: 2; }\n}\n/* Hidden: out of sight, still the box's name for a screen reader; the empty box shows it instead. */\n.fd-form .fd-field[data-labels=\"hidden\"] > .fd-label {\n position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;\n}\n/* After: a tick box, then its words on the same line, as a sentence; its help and messages under the words. They\n drop to sit level with the boxes beside them in a row, by margins: the field's own padding is left to whoever\n draws round it (a designer's canvas rings a part there). */\n.fd-form .fd-field[data-labels=\"after\"] {\n grid-template-columns: auto minmax(0, 1fr); column-gap: 9px; align-items: start;\n --fd-tick-drop: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n}\n/* The box, or what holds it (a designer's canvas wraps each answer box). */\n.fd-form .fd-field[data-labels=\"after\"] > :is(.fd-tick, :has(> .fd-tick)) { grid-column: 1; grid-row: 1; display: flex; margin-block-start: calc(var(--fd-tick-drop) + (1.45em - 17px) / 2); }\n.fd-form .fd-field[data-labels=\"after\"] .fd-tick { width: 17px; height: 17px; }\n.fd-form .fd-field[data-labels=\"after\"] > :not(.fd-tick, :has(> .fd-tick)) { grid-column: 2; }\n.fd-form .fd-field[data-labels=\"after\"] > .fd-label { grid-row: 1; margin-block-start: var(--fd-tick-drop); font-weight: inherit; line-height: 1.45; cursor: pointer; }\n/* A field or a cell that measures itself is drawn over its neighbours while it is worked in: its lists and calendars open over them. */\n.fd-form .fd-field[data-labels=\"beside\"]:focus-within, .fd-grid > .fd-section[data-place=\"shared\"]:focus-within { z-index: 3; }\n\n/* ---- widths for tabs, words and buttons: they span columns like fields; a button stays as wide as its words ---- */\n:is(.fd-grid, .fd-sections) > .fd-button { justify-self: start; }\n/* A note: words set apart in a soft panel, a shade off whatever it stands on \u2014 a card, the page, or the dark. */\n.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }\n\n/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ---- */\n:is(.fd-form, .fd-form-dialog)[data-font=\"serif\"] { --fd-font: \"Source Serif 4\", Georgia, serif; }\n:is(.fd-form, .fd-form-dialog)[data-font=\"rounded\"] { --fd-font: Nunito, \"Varela Round\", system-ui; }\n/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */\n:is(.fd-form, .fd-form-dialog)[data-density=\"compact\"] { --fd-gap-y: 10px; --fd-gap-x: 16px; --fd-control-height: 30px; --fd-gap-block: 16px; --fd-group-pad: 14px 16px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"comfortable\"] { --fd-gap-y: 16px; --fd-gap-x: 20px; --fd-control-height: 36px; --fd-gap-block: 22px; --fd-group-pad: 18px 22px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"roomy\"] { --fd-gap-y: 22px; --fd-gap-x: 28px; --fd-control-height: 42px; --fd-gap-block: 30px; --fd-group-pad: 24px 30px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"square\"] { --fd-radius: 0px; --fd-control-radius: 0px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"soft\"] { --fd-radius: 10px; --fd-control-radius: 6px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"round\"] { --fd-radius: 16px; --fd-control-radius: 12px; }\n\n/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it. */\n.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); --fd-ground: var(--fd-page); }\n.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }\n/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */\n.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }\n.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] {\n color-scheme: dark;\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n}\n/* Auto follows the reader's system: the same dark tokens, when it is dark. */\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] {\n color-scheme: dark;\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n }\n}\n\n/* The page's accent, and the softer and hover shades mixed from it on whatever surface the scheme has. */\n:is(.fd-form, .fd-form-dialog)[data-accent] {\n --fd-accent: var(--fd-look-accent);\n --fd-accent-text: var(--fd-look-accent-text);\n --fd-focus: var(--fd-look-accent);\n --fd-accent-soft: color-mix(in srgb, var(--fd-accent) 12%, var(--fd-surface));\n --fd-accent-hover: color-mix(in srgb, var(--fd-accent) 84%, var(--fd-text));\n}\n/* On a dark page, the accent the viewer lightened, when it had to be, so it still reads there. */\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n}\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n }\n}\n:is(.fd-form, .fd-form-dialog)[data-fd-skin=\"outlined\"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }\n:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }\n/* A band of the accent under the page's title. */\n.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }\n";
|
|
11
|
+
export declare const LAYOUT_CSS = "\n/* ---- arrangements: parts side by side or one under another, nothing drawn round them ---- */\n/* On its grid's columns: the grid's own tracks and gaps, so its parts line up with everything above and below. */\n.fd-grid > .fd-section[data-place=\"tracks\"] {\n /* The columns it covers: its span, never more than its grid has at this width. */\n --fd-tracks: min(var(--fd-span, 1), var(--fd-cols));\n grid-template-columns: subgrid;\n column-gap: var(--fd-gap-x);\n}\n.fd-form .fd-section[data-place=\"tracks\"] > .fd-grid { --fd-cols: var(--fd-tracks); grid-column: 1 / -1; grid-template-columns: subgrid; }\n.fd-section[data-place] > .fd-section-description { grid-column: 1 / -1; }\n/* Parts sharing one cell, side by side; one under the other where the cell is too narrow for that. */\n.fd-grid > .fd-section[data-place=\"shared\"] { container-type: inline-size; }\n.fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: var(--fd-columns, 1); }\n@container (max-width: 330px) {\n .fd-form .fd-section[data-place=\"shared\"] > .fd-grid { --fd-cols: 1; }\n}\n\n/* ---- how a group is drawn: a card, plain, a line under its title, or a frame round it ---- */\n/* A group of its own paints the ground it stands on, so nothing of the grid round it shows through. */\n.fd-form { --fd-ground: transparent; }\n.fd-card, .fd-form[data-fd-skin=\"outlined\"] .fd-section[data-style=\"card\"][data-on-page] { --fd-ground: var(--fd-surface); }\nfieldset.fd-section[data-style] { background-color: var(--fd-ground); }\n.fd-form .fd-section[data-style=\"line\"] > .fd-section-title { border-block-end: 1px solid var(--fd-border); padding-block-end: 8px; }\n.fd-form .fd-section[data-style=\"plain\"] > .fd-section-title { border-block-end: 0; padding-block-end: 0; }\n.fd-form .fd-section[data-style=\"framed\"] {\n border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); padding: 6px 18px 18px;\n}\n/* The title sits on the frame, as a fieldset's legend does: the frame breaks round it. */\n.fd-form .fd-section[data-style=\"framed\"] > .fd-section-title {\n float: none; width: auto; max-width: 100%; padding: 0 6px; margin-inline-start: -6px; border: 0;\n}\n\n/* ---- where labels sit: as the page, a group or the field itself says (data-labels), in either skin ---- */\n.fd-form .fd-field[data-labels] { grid-template-columns: minmax(0, 1fr); }\n.fd-form .fd-field[data-labels] > * { grid-column: 1 / -1; }\n/* Beside: the label in a column of its own while the field has room for both. In a cell narrower\n than that the label goes back above its box, so the box is never crushed. */\n.fd-form .fd-field[data-labels=\"beside\"] {\n container-type: inline-size;\n grid-template-columns: minmax(0, var(--fd-label-width, 140px)) minmax(0, 1fr);\n column-gap: 14px;\n}\n@container (min-width: 300px) {\n .fd-form .fd-field[data-labels=\"beside\"] > .fd-label {\n grid-column: 1; align-self: start; padding-block-start: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n }\n .fd-form .fd-field[data-labels=\"beside\"] > :not(.fd-label) { grid-column: 2; }\n}\n/* Hidden: out of sight, still the box's name for a screen reader; the empty box shows it instead. */\n.fd-form .fd-field[data-labels=\"hidden\"] > .fd-label {\n position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;\n}\n/* After: a tick box, then its words on the same line, as a sentence; its help and messages under the words. They\n drop to sit level with the boxes beside them in a row, by margins: the field's own padding is left to whoever\n draws round it (a designer's canvas rings a part there). */\n.fd-form .fd-field[data-labels=\"after\"] {\n grid-template-columns: auto minmax(0, 1fr); column-gap: 9px; align-items: start;\n --fd-tick-drop: max(0px, calc((var(--fd-control-height, 30px) - 1.45em) / 2));\n}\n/* The box, or what holds it (a designer's canvas wraps each answer box). */\n.fd-form .fd-field[data-labels=\"after\"] > :is(.fd-tick, :has(> .fd-tick)) { grid-column: 1; grid-row: 1; display: flex; margin-block-start: calc(var(--fd-tick-drop) + (1.45em - 17px) / 2); }\n.fd-form .fd-field[data-labels=\"after\"] .fd-tick { width: 17px; height: 17px; }\n.fd-form .fd-field[data-labels=\"after\"] > :not(.fd-tick, :has(> .fd-tick)) { grid-column: 2; }\n.fd-form .fd-field[data-labels=\"after\"] > .fd-label { grid-row: 1; margin-block-start: var(--fd-tick-drop); font-weight: inherit; line-height: 1.45; cursor: pointer; }\n/* A field or a cell that measures itself is drawn over its neighbours while it is worked in: its lists and calendars open over them. */\n.fd-form .fd-field[data-labels=\"beside\"]:focus-within, .fd-grid > .fd-section[data-place=\"shared\"]:focus-within { z-index: 3; }\n\n/* ---- widths for tabs, words and buttons: they span columns like fields; a button stays as wide as its words ---- */\n:is(.fd-grid, .fd-sections) > .fd-button { justify-self: start; }\n/* A note: words set apart in a soft panel, a shade off whatever it stands on \u2014 a card, the page, or the dark. */\n.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }\n\n/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----\n Its tokens in Fieldia's tokens' layer (styles.ts): a host's own rule sets them over the page's. */\n@layer fieldia-tokens {\n:is(.fd-form, .fd-form-dialog)[data-font=\"serif\"] { --fd-font: \"Source Serif 4\", Georgia, serif; }\n:is(.fd-form, .fd-form-dialog)[data-font=\"rounded\"] { --fd-font: Nunito, \"Varela Round\", system-ui; }\n/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */\n:is(.fd-form, .fd-form-dialog)[data-density=\"compact\"] { --fd-gap-y: 10px; --fd-gap-x: 16px; --fd-control-height: 30px; --fd-gap-block: 16px; --fd-group-pad: 14px 16px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"comfortable\"] { --fd-gap-y: 16px; --fd-gap-x: 20px; --fd-control-height: 36px; --fd-gap-block: 22px; --fd-group-pad: 18px 22px; }\n:is(.fd-form, .fd-form-dialog)[data-density=\"roomy\"] { --fd-gap-y: 22px; --fd-gap-x: 28px; --fd-control-height: 42px; --fd-gap-block: 30px; --fd-group-pad: 24px 30px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"square\"] { --fd-radius: 0px; --fd-control-radius: 0px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"soft\"] { --fd-radius: 10px; --fd-control-radius: 6px; }\n:is(.fd-form, .fd-form-dialog)[data-corners=\"round\"] { --fd-radius: 16px; --fd-control-radius: 12px; }\n.fd-form[data-scheme] { --fd-ground: var(--fd-page); }\n}\n\n/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.\n Its native controls (scroll bars, date pickers) follow it. */\n.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); }\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] { color-scheme: dark; }\n@media (prefers-color-scheme: dark) { :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] { color-scheme: dark; } }\n.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }\n/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */\n.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }\n.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }\n@layer fieldia-tokens {\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"] {\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n}\n/* Auto follows the reader's system: the same dark tokens, when it is dark. */\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"] {\n --fd-text: #e8eaed;\n --fd-muted: #a3a9b2;\n --fd-page: #16191e;\n --fd-surface: #1f2329;\n --fd-border: #3a4048;\n --fd-border-strong: #59616c;\n --fd-accent: #5aa2ff;\n --fd-accent-text: #0b1220;\n --fd-accent-soft: rgba(90, 162, 255, 0.16);\n --fd-focus: #5aa2ff;\n --fd-error: #ff8a7a;\n --fd-error-soft: rgba(255, 138, 122, 0.13);\n --fd-success: #6fd08e;\n --fd-success-soft: rgba(111, 208, 142, 0.14);\n --fd-warning: #f2b55c;\n --fd-warning-soft: rgba(242, 181, 92, 0.13);\n --fd-info: #7db7ff;\n --fd-info-soft: rgba(90, 162, 255, 0.14);\n --fd-edge: #59616c;\n }\n}\n\n/* The page's accent, and the softer and hover shades mixed from it on whatever surface the scheme has. */\n:is(.fd-form, .fd-form-dialog)[data-accent] {\n --fd-accent: var(--fd-look-accent);\n --fd-accent-text: var(--fd-look-accent-text);\n --fd-focus: var(--fd-look-accent);\n --fd-accent-soft: color-mix(in srgb, var(--fd-accent) 12%, var(--fd-surface));\n --fd-accent-hover: color-mix(in srgb, var(--fd-accent) 84%, var(--fd-text));\n}\n/* On a dark page, the accent the viewer lightened, when it had to be, so it still reads there. */\n:is(.fd-form, .fd-form-dialog)[data-scheme=\"dark\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n}\n@media (prefers-color-scheme: dark) {\n :is(.fd-form, .fd-form-dialog)[data-scheme=\"auto\"][data-accent] {\n --fd-accent: var(--fd-look-accent-dark);\n --fd-accent-text: var(--fd-look-accent-dark-text);\n --fd-focus: var(--fd-look-accent-dark);\n }\n}\n:is(.fd-form, .fd-form-dialog)[data-fd-skin=\"outlined\"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }\n}\n:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }\n/* A band of the accent under the page's title. */\n.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }\n";
|
package/src/lib/layout-styles.js
CHANGED
|
@@ -84,7 +84,9 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
84
84
|
/* A note: words set apart in a soft panel, a shade off whatever it stands on — a card, the page, or the dark. */
|
|
85
85
|
.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }
|
|
86
86
|
|
|
87
|
-
/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----
|
|
87
|
+
/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----
|
|
88
|
+
Its tokens in Fieldia's tokens' layer (styles.ts): a host's own rule sets them over the page's. */
|
|
89
|
+
@layer fieldia-tokens {
|
|
88
90
|
:is(.fd-form, .fd-form-dialog)[data-font="serif"] { --fd-font: "Source Serif 4", Georgia, serif; }
|
|
89
91
|
:is(.fd-form, .fd-form-dialog)[data-font="rounded"] { --fd-font: Nunito, "Varela Round", system-ui; }
|
|
90
92
|
/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */
|
|
@@ -94,15 +96,20 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
94
96
|
:is(.fd-form, .fd-form-dialog)[data-corners="square"] { --fd-radius: 0px; --fd-control-radius: 0px; }
|
|
95
97
|
:is(.fd-form, .fd-form-dialog)[data-corners="soft"] { --fd-radius: 10px; --fd-control-radius: 6px; }
|
|
96
98
|
:is(.fd-form, .fd-form-dialog)[data-corners="round"] { --fd-radius: 16px; --fd-control-radius: 12px; }
|
|
99
|
+
.fd-form[data-scheme] { --fd-ground: var(--fd-page); }
|
|
100
|
+
}
|
|
97
101
|
|
|
98
|
-
/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.
|
|
99
|
-
|
|
102
|
+
/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.
|
|
103
|
+
Its native controls (scroll bars, date pickers) follow it. */
|
|
104
|
+
.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); }
|
|
105
|
+
:is(.fd-form, .fd-form-dialog)[data-scheme="dark"] { color-scheme: dark; }
|
|
106
|
+
@media (prefers-color-scheme: dark) { :is(.fd-form, .fd-form-dialog)[data-scheme="auto"] { color-scheme: dark; } }
|
|
100
107
|
.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }
|
|
101
108
|
/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */
|
|
102
109
|
.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }
|
|
103
110
|
.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }
|
|
111
|
+
@layer fieldia-tokens {
|
|
104
112
|
:is(.fd-form, .fd-form-dialog)[data-scheme="dark"] {
|
|
105
|
-
color-scheme: dark;
|
|
106
113
|
--fd-text: #e8eaed;
|
|
107
114
|
--fd-muted: #a3a9b2;
|
|
108
115
|
--fd-page: #16191e;
|
|
@@ -126,7 +133,6 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
126
133
|
/* Auto follows the reader's system: the same dark tokens, when it is dark. */
|
|
127
134
|
@media (prefers-color-scheme: dark) {
|
|
128
135
|
:is(.fd-form, .fd-form-dialog)[data-scheme="auto"] {
|
|
129
|
-
color-scheme: dark;
|
|
130
136
|
--fd-text: #e8eaed;
|
|
131
137
|
--fd-muted: #a3a9b2;
|
|
132
138
|
--fd-page: #16191e;
|
|
@@ -171,6 +177,7 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
171
177
|
}
|
|
172
178
|
}
|
|
173
179
|
:is(.fd-form, .fd-form-dialog)[data-fd-skin="outlined"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }
|
|
180
|
+
}
|
|
174
181
|
:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }
|
|
175
182
|
/* A band of the accent under the page's title. */
|
|
176
183
|
.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-styles.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/layout-styles.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACU,QAAA,UAAU,GAAa
|
|
1
|
+
{"version":3,"file":"layout-styles.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/layout-styles.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACU,QAAA,UAAU,GAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0KnC,CAAC"}
|
|
@@ -81,7 +81,9 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
81
81
|
/* A note: words set apart in a soft panel, a shade off whatever it stands on — a card, the page, or the dark. */
|
|
82
82
|
.fd-form .fd-text-note { background: color-mix(in srgb, var(--fd-text) 6%, transparent); color: var(--fd-text); border-radius: var(--fd-control-radius, 6px); padding: 10px 12px; }
|
|
83
83
|
|
|
84
|
-
/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----
|
|
84
|
+
/* ---- the page's look: worn by the form, and by a dialog it opens (its box and the page in it) ----
|
|
85
|
+
Its tokens in Fieldia's tokens' layer (styles.ts): a host's own rule sets them over the page's. */
|
|
86
|
+
@layer fieldia-tokens {
|
|
85
87
|
:is(.fd-form, .fd-form-dialog)[data-font="serif"] { --fd-font: "Source Serif 4", Georgia, serif; }
|
|
86
88
|
:is(.fd-form, .fd-form-dialog)[data-font="rounded"] { --fd-font: Nunito, "Varela Round", system-ui; }
|
|
87
89
|
/* Room between and inside parts: gaps, the height of a box, a group's padding, the space between groups. */
|
|
@@ -91,15 +93,20 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
91
93
|
:is(.fd-form, .fd-form-dialog)[data-corners="square"] { --fd-radius: 0px; --fd-control-radius: 0px; }
|
|
92
94
|
:is(.fd-form, .fd-form-dialog)[data-corners="soft"] { --fd-radius: 10px; --fd-control-radius: 6px; }
|
|
93
95
|
:is(.fd-form, .fd-form-dialog)[data-corners="round"] { --fd-radius: 16px; --fd-control-radius: 12px; }
|
|
96
|
+
.fd-form[data-scheme] { --fd-ground: var(--fd-page); }
|
|
97
|
+
}
|
|
94
98
|
|
|
95
|
-
/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.
|
|
96
|
-
|
|
99
|
+
/* Light or dark: a page that names its scheme paints its own ground, so it reads the same on any page round it.
|
|
100
|
+
Its native controls (scroll bars, date pickers) follow it. */
|
|
101
|
+
.fd-form[data-scheme] { color-scheme: light; background: var(--fd-page); color: var(--fd-text); border-radius: var(--fd-radius); }
|
|
102
|
+
:is(.fd-form, .fd-form-dialog)[data-scheme="dark"] { color-scheme: dark; }
|
|
103
|
+
@media (prefers-color-scheme: dark) { :is(.fd-form, .fd-form-dialog)[data-scheme="auto"] { color-scheme: dark; } }
|
|
97
104
|
.fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 20px; }
|
|
98
105
|
/* A page in a dialog paints no ground of its own and adds no room: the dialog is its ground. */
|
|
99
106
|
.fd-form-dialog-body > .fd-form[data-scheme] { background: none; border-radius: 0; }
|
|
100
107
|
.fd-form-dialog-body > .fd-form[data-scheme] > .fd-content:not(:has(> .fd-sheet-page)) { padding: 0; }
|
|
108
|
+
@layer fieldia-tokens {
|
|
101
109
|
:is(.fd-form, .fd-form-dialog)[data-scheme="dark"] {
|
|
102
|
-
color-scheme: dark;
|
|
103
110
|
--fd-text: #e8eaed;
|
|
104
111
|
--fd-muted: #a3a9b2;
|
|
105
112
|
--fd-page: #16191e;
|
|
@@ -123,7 +130,6 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
123
130
|
/* Auto follows the reader's system: the same dark tokens, when it is dark. */
|
|
124
131
|
@media (prefers-color-scheme: dark) {
|
|
125
132
|
:is(.fd-form, .fd-form-dialog)[data-scheme="auto"] {
|
|
126
|
-
color-scheme: dark;
|
|
127
133
|
--fd-text: #e8eaed;
|
|
128
134
|
--fd-muted: #a3a9b2;
|
|
129
135
|
--fd-page: #16191e;
|
|
@@ -168,6 +174,7 @@ fieldset.fd-section[data-style] { background-color: var(--fd-ground); }
|
|
|
168
174
|
}
|
|
169
175
|
}
|
|
170
176
|
:is(.fd-form, .fd-form-dialog)[data-fd-skin="outlined"][data-accent] { --fd-focus-ring: 0 0 0 2px color-mix(in srgb, var(--fd-accent) 22%, transparent); }
|
|
177
|
+
}
|
|
171
178
|
:is(.fd-form, .fd-form-dialog)[data-accent] .fd-button-primary:hover { filter: none; background: var(--fd-accent-hover); border-color: var(--fd-accent-hover); }
|
|
172
179
|
/* A band of the accent under the page's title. */
|
|
173
180
|
.fd-form[data-accent] .fd-page-head { border-block-end: 3px solid var(--fd-accent); padding-block-end: 14px; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-styles.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/layout-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"layout-styles.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/layout-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0KnC,CAAC"}
|
package/src/lib/lines.js
CHANGED
|
@@ -12,6 +12,25 @@ const kind_parts_1 = require("./kind-parts");
|
|
|
12
12
|
const labels_1 = require("./labels");
|
|
13
13
|
const line_moves_1 = require("./line-moves");
|
|
14
14
|
const widgets_1 = require("./widgets");
|
|
15
|
+
/**
|
|
16
|
+
* A one2many as an editable table. Each cell is an ordinary widget; a small
|
|
17
|
+
* adapter routes its edits to `updateLine` and its searches to `searchLine`,
|
|
18
|
+
* so a many2one inside a line searches with that line's own values. Rows are
|
|
19
|
+
* matched by line key, so adding or removing a line never rebuilds the others.
|
|
20
|
+
* When the field declares `lineKinds`, a section or a note is one wide row of
|
|
21
|
+
* its text.
|
|
22
|
+
*
|
|
23
|
+
* A line moves by the grip at its start, or by Alt+↑/↓ from inside it, said
|
|
24
|
+
* aloud. The node's `options`: `min` lines at least — a new table starts with
|
|
25
|
+
* them — and `max` at most; `addLabel`, the Add button's words (and
|
|
26
|
+
* `addSectionLabel`, `addNoteLabel`, its section's and note's); `emptyLabel`,
|
|
27
|
+
* a sentence while there is no line; `confirmDelete`, asking before a line
|
|
28
|
+
* with something in it goes.
|
|
29
|
+
*/
|
|
30
|
+
/** The kinds of field whose column is as wide as its values, so the columns of words and links have the rest. */
|
|
31
|
+
/** Columns of numbers, which grow past their kind's width for a long value. */
|
|
32
|
+
const NUMERIC = new Set(['integer', 'float', 'monetary']);
|
|
33
|
+
const FIXED_WIDTH = new Set(['boolean', 'integer', 'float', 'monetary', 'date', 'datetime']);
|
|
15
34
|
const count = (value) => (typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : undefined);
|
|
16
35
|
/** The field a section or note is typed into: one line for a heading, a growing box for a note. */
|
|
17
36
|
function kindTextField(def, kind) {
|
|
@@ -75,7 +94,7 @@ async function openLineDialog(form, name, node, line, dialogs, readonly) {
|
|
|
75
94
|
if (values)
|
|
76
95
|
write(values);
|
|
77
96
|
}
|
|
78
|
-
const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.WIDGET_LABELS.en, locale, dialogs }) => {
|
|
97
|
+
const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.WIDGET_LABELS.en, locale, dialogs, widgets }) => {
|
|
79
98
|
const def = field;
|
|
80
99
|
const kinds = def.lineKinds;
|
|
81
100
|
const make = (0, kind_parts_1.maker)(document);
|
|
@@ -119,6 +138,9 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
119
138
|
const width = node.cells?.[column]?.width;
|
|
120
139
|
if (width)
|
|
121
140
|
th.style.width = `${width}ch`;
|
|
141
|
+
// Its kind, which sizes a column of yes/no, numbers, money or dates to its values, as Flectra's lists do.
|
|
142
|
+
else if (FIXED_WIDTH.has(def.fields[column].type))
|
|
143
|
+
th.dataset['fit'] = def.fields[column].type;
|
|
122
144
|
heads.set(column, th);
|
|
123
145
|
headRow.append(th);
|
|
124
146
|
}
|
|
@@ -246,6 +268,8 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
246
268
|
const rows = new Map();
|
|
247
269
|
let focusNew = null;
|
|
248
270
|
let readonly = false;
|
|
271
|
+
/** The lines the columns were last sized for, by their keys. */
|
|
272
|
+
let columnsSizedFor = null;
|
|
249
273
|
const current = () => form.getState().values[name] ?? [];
|
|
250
274
|
// A new table starts with the lines it needs at least.
|
|
251
275
|
for (let have = current().length; have < min; have++)
|
|
@@ -263,6 +287,65 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
263
287
|
focused.focus();
|
|
264
288
|
voice.textContent = (0, kind_parts_1.fillIn)(labels.movedTo, { label: typeof first === 'string' && first.trim() ? first : (0, kind_parts_1.fillIn)(labels.lineN, { n: from + 1 }), n: to + 1, total: current().length });
|
|
265
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* A line lifted by its grip: it follows the pointer, the lines it passes
|
|
292
|
+
* slide out of its way, and the table's value changes once, when it is let
|
|
293
|
+
* go — as a grid's row drags. Escape puts it back.
|
|
294
|
+
*/
|
|
295
|
+
function lift(tr, key, startY) {
|
|
296
|
+
const all = [...body.children];
|
|
297
|
+
const from = all.indexOf(tr);
|
|
298
|
+
const others = all.filter((row) => row !== tr);
|
|
299
|
+
const box = tr.getBoundingClientRect();
|
|
300
|
+
const middles = others.map((row) => {
|
|
301
|
+
const at = row.getBoundingClientRect();
|
|
302
|
+
return at.top + at.height / 2;
|
|
303
|
+
});
|
|
304
|
+
let to = from;
|
|
305
|
+
let lifted = false;
|
|
306
|
+
const escape = (event) => {
|
|
307
|
+
if (event.key !== 'Escape')
|
|
308
|
+
return;
|
|
309
|
+
event.preventDefault();
|
|
310
|
+
settle();
|
|
311
|
+
};
|
|
312
|
+
function settle() {
|
|
313
|
+
for (const row of all)
|
|
314
|
+
row.style.transform = '';
|
|
315
|
+
tr.classList.remove('fd-line-lifted');
|
|
316
|
+
body.classList.remove('fd-lines-dragging');
|
|
317
|
+
document.removeEventListener('keydown', escape, true);
|
|
318
|
+
lifted = false;
|
|
319
|
+
}
|
|
320
|
+
return {
|
|
321
|
+
follow(y) {
|
|
322
|
+
const by = y - startY;
|
|
323
|
+
if (!lifted) {
|
|
324
|
+
// A press that hardly moves is not a drag yet.
|
|
325
|
+
if (Math.abs(by) < 4 || readonly)
|
|
326
|
+
return;
|
|
327
|
+
lifted = true;
|
|
328
|
+
tr.classList.add('fd-line-lifted');
|
|
329
|
+
body.classList.add('fd-lines-dragging');
|
|
330
|
+
document.addEventListener('keydown', escape, true);
|
|
331
|
+
}
|
|
332
|
+
tr.style.transform = `translateY(${by}px)`;
|
|
333
|
+
// Its place: after every other line whose middle its own middle has passed.
|
|
334
|
+
const middle = box.top + box.height / 2 + by;
|
|
335
|
+
to = middles.filter((at) => at < middle).length;
|
|
336
|
+
others.forEach((row, i) => {
|
|
337
|
+
row.style.transform = i >= from && i < to ? `translateY(${-box.height}px)` : i < from && i >= to ? `translateY(${box.height}px)` : '';
|
|
338
|
+
});
|
|
339
|
+
},
|
|
340
|
+
drop() {
|
|
341
|
+
const moved = lifted && to !== from;
|
|
342
|
+
settle();
|
|
343
|
+
if (moved)
|
|
344
|
+
move(key, to);
|
|
345
|
+
},
|
|
346
|
+
settle,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
266
349
|
body.addEventListener('keydown', (event) => {
|
|
267
350
|
const key = event.target.closest('tr')?.dataset['line'];
|
|
268
351
|
if (!key || !event.altKey || (event.key !== 'ArrowUp' && event.key !== 'ArrowDown'))
|
|
@@ -277,10 +360,12 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
277
360
|
// Its settings reach its widget even without a widget named: a calendar's week numbers.
|
|
278
361
|
const look = rules?.badge ? { widget: 'badge' } : rules?.widget ? { widget: rules.widget, ...(rules.options ? { options: rules.options } : {}) } : rules?.options ? { options: rules.options } : {};
|
|
279
362
|
const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column, ...look };
|
|
280
|
-
const widget = (0, widgets_1.createWidget)({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels, locale, dialogs });
|
|
363
|
+
const widget = (0, widgets_1.createWidget)({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels, locale, dialogs, widgets });
|
|
281
364
|
const td = document.createElement('td');
|
|
282
365
|
td.colSpan = span;
|
|
283
366
|
td.dataset['column'] = column;
|
|
367
|
+
if (FIXED_WIDTH.has(sub.type))
|
|
368
|
+
td.dataset['fit'] = sub.type;
|
|
284
369
|
// Its column's label, which a card shows before its value.
|
|
285
370
|
td.dataset['label'] = sub.label;
|
|
286
371
|
const label = document.createElement('label');
|
|
@@ -300,24 +385,25 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
300
385
|
const kind = (0, core_1.lineKind)(def, line.values);
|
|
301
386
|
if (kind)
|
|
302
387
|
tr.className = `fd-line-${kind}`;
|
|
303
|
-
// Dragged by its grip, the line
|
|
388
|
+
// Dragged by its grip, the line follows the pointer and takes its place when let go.
|
|
304
389
|
const grip = make('span', { class: 'fd-line-grip fd-rank-grip', 'aria-hidden': 'true' });
|
|
305
|
-
let
|
|
390
|
+
let drag = null;
|
|
306
391
|
grip.addEventListener('pointerdown', (event) => {
|
|
307
392
|
if (readonly || event.button !== 0)
|
|
308
393
|
return;
|
|
309
394
|
event.preventDefault();
|
|
310
395
|
grip.setPointerCapture?.(event.pointerId);
|
|
311
|
-
|
|
396
|
+
drag = lift(tr, line.key, event.clientY);
|
|
312
397
|
});
|
|
313
|
-
grip.addEventListener('pointermove', (event) =>
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
398
|
+
grip.addEventListener('pointermove', (event) => drag?.follow(event.clientY));
|
|
399
|
+
grip.addEventListener('pointerup', () => {
|
|
400
|
+
drag?.drop();
|
|
401
|
+
drag = null;
|
|
402
|
+
});
|
|
403
|
+
grip.addEventListener('pointercancel', () => {
|
|
404
|
+
drag?.settle();
|
|
405
|
+
drag = null;
|
|
318
406
|
});
|
|
319
|
-
for (const end of ['pointerup', 'pointercancel'])
|
|
320
|
-
grip.addEventListener(end, () => (dragging = false));
|
|
321
407
|
// Its tick for the table's buttons for chosen lines, before the grip.
|
|
322
408
|
const pick = choosing && !kind ? make('input', { type: 'checkbox', class: 'fd-checkbox fd-line-pick' }) : null;
|
|
323
409
|
pick?.addEventListener('change', () => {
|
|
@@ -420,6 +506,31 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
420
506
|
th.hidden = gone.has(column);
|
|
421
507
|
for (const [column, td] of footCells)
|
|
422
508
|
td.hidden = gone.has(column);
|
|
509
|
+
// A column of words or links as wide as its longest value, as a list of words is: a long name has the room a code does not need.
|
|
510
|
+
// Measured as lines come and go, not as a cell is typed in: the columns never move under the person's hands.
|
|
511
|
+
const sizedFor = current.map((line) => line.key).join(' ');
|
|
512
|
+
const resize = sizedFor !== columnsSizedFor;
|
|
513
|
+
columnsSizedFor = sizedFor;
|
|
514
|
+
for (const [column, th] of resize ? heads : new Map()) {
|
|
515
|
+
if (node.cells?.[column]?.width)
|
|
516
|
+
continue;
|
|
517
|
+
const sub = def.fields[column];
|
|
518
|
+
if (th.dataset['fit']) {
|
|
519
|
+
// A number keeps its kind's width at the least, and has room for its longest value too ("E£ 21,600,000.00"), never cut.
|
|
520
|
+
if (!NUMERIC.has(sub.type))
|
|
521
|
+
continue;
|
|
522
|
+
const widest = current.reduce((most, line) => ((0, core_1.lineKind)(def, line.values) ? most : Math.max(most, (0, display_1.cellText)(sub, line.values[column], line.values, locale).length)), 0);
|
|
523
|
+
th.style.setProperty('--fd-fit-need', `${widest + 4}ch`);
|
|
524
|
+
continue;
|
|
525
|
+
}
|
|
526
|
+
const longest = current.reduce((most, line) => ((0, core_1.lineKind)(def, line.values) ? most : Math.max(most, (0, display_1.cellText)(sub, line.values[column], line.values, locale).length)), 0);
|
|
527
|
+
// A link's box holds its open and clear buttons too.
|
|
528
|
+
const buttons = sub.type === 'many2one' ? 5 : 0;
|
|
529
|
+
// Its head may wrap: a long label over short codes does not widen it.
|
|
530
|
+
th.style.width = `${Math.min(Math.max(longest, Math.min(sub.label.length, 10), 6), 32) + 4 + buttons}ch`;
|
|
531
|
+
// Short values keep their whole width when the table is tight: the long ones give way.
|
|
532
|
+
th.style.minWidth = `${Math.min(Math.max(longest, 6), 14) + 4}ch`;
|
|
533
|
+
}
|
|
423
534
|
const keep = new Set(current.map((line) => line.key));
|
|
424
535
|
for (const [key, row] of rows) {
|
|
425
536
|
if (!keep.has(key)) {
|
package/src/lib/lines.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
|