@gjermundgaraba-designs/pixel-paper 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +28 -3
- package/dist/src/adapters/diagram.d.ts +38 -0
- package/dist/src/adapters/diagram.d.ts.map +1 -0
- package/dist/src/adapters/diagram.js +206 -0
- package/dist/src/adapters/mermaid.d.ts +2 -20
- package/dist/src/adapters/mermaid.d.ts.map +1 -1
- package/dist/src/adapters/mermaid.js +9 -229
- package/dist/src/announcer/announcer.d.ts +0 -4
- package/dist/src/announcer/announcer.d.ts.map +1 -1
- package/dist/src/announcer/announcer.js +19 -18
- package/dist/src/attributes/attributes.d.ts.map +1 -1
- package/dist/src/{audioFrame/audioFrame.d.ts → audio-frame/audio-frame.d.ts} +1 -1
- package/dist/src/audio-frame/audio-frame.d.ts.map +1 -0
- package/dist/src/{audioFrame/audioFrame.js → audio-frame/audio-frame.js} +1 -1
- package/dist/src/audio-frame/index.d.ts +3 -0
- package/dist/src/audio-frame/index.d.ts.map +1 -0
- package/dist/src/audio-frame/index.js +1 -0
- package/dist/src/banner/banner.d.ts.map +1 -1
- package/dist/src/banner/index.d.ts.map +1 -1
- package/dist/src/{barChart/barChart.d.ts → bar-chart/bar-chart.d.ts} +2 -2
- package/dist/src/bar-chart/bar-chart.d.ts.map +1 -0
- package/dist/src/{barChart/barChart.js → bar-chart/bar-chart.js} +40 -35
- package/dist/src/bar-chart/index.d.ts +3 -0
- package/dist/src/bar-chart/index.d.ts.map +1 -0
- package/dist/src/bar-chart/index.js +1 -0
- package/dist/src/bench/bench.d.ts.map +1 -1
- package/dist/src/bench/index.d.ts.map +1 -1
- package/dist/src/board/board.d.ts +45 -46
- package/dist/src/board/board.d.ts.map +1 -1
- package/dist/src/board/board.js +76 -102
- package/dist/src/board/index.d.ts +1 -1
- package/dist/src/board/index.d.ts.map +1 -1
- package/dist/src/button/button.d.ts +1 -2
- package/dist/src/button/button.d.ts.map +1 -1
- package/dist/src/button/button.js +7 -5
- package/dist/src/button/index.d.ts +1 -1
- package/dist/src/button/index.d.ts.map +1 -1
- package/dist/src/card/card.d.ts.map +1 -1
- package/dist/src/card/card.js +4 -2
- package/dist/src/card/index.d.ts.map +1 -1
- package/dist/src/{chartTable/chartTable.d.ts → chart-table/chart-table.d.ts} +4 -14
- package/dist/src/chart-table/chart-table.d.ts.map +1 -0
- package/dist/src/{chartTable/chartTable.js → chart-table/chart-table.js} +9 -16
- package/dist/src/chip/chip.d.ts.map +1 -1
- package/dist/src/chip/chip.js +4 -2
- package/dist/src/chip/index.d.ts.map +1 -1
- package/dist/src/choice/choice.d.ts.map +1 -1
- package/dist/src/choice/choice.js +3 -1
- package/dist/src/choice/index.d.ts.map +1 -1
- package/dist/src/choices/choices.d.ts.map +1 -1
- package/dist/src/choices/index.d.ts.map +1 -1
- package/dist/src/{codeEditor/codeEditor.d.ts → code-editor/code-editor.d.ts} +1 -1
- package/dist/src/code-editor/code-editor.d.ts.map +1 -0
- package/dist/src/{codeEditor/codeEditor.js → code-editor/code-editor.js} +2 -2
- package/dist/src/code-editor/index.d.ts +3 -0
- package/dist/src/code-editor/index.d.ts.map +1 -0
- package/dist/src/code-editor/index.js +1 -0
- package/dist/src/{codeSurface/codeSurface.d.ts → code-surface/code-surface.d.ts} +1 -1
- package/dist/src/code-surface/code-surface.d.ts.map +1 -0
- package/dist/src/{codeSurface/codeSurface.js → code-surface/code-surface.js} +6 -1
- package/dist/src/code-surface/index.d.ts +3 -0
- package/dist/src/code-surface/index.d.ts.map +1 -0
- package/dist/src/code-surface/index.js +1 -0
- package/dist/src/{commandPalette/commandPalette.d.ts → command-palette/command-palette.d.ts} +85 -77
- package/dist/src/command-palette/command-palette.d.ts.map +1 -0
- package/dist/src/command-palette/command-palette.js +625 -0
- package/dist/src/{commandPalette → command-palette}/index.d.ts +2 -2
- package/dist/src/command-palette/index.d.ts.map +1 -0
- package/dist/src/{commandPalette → command-palette}/index.js +1 -1
- package/dist/src/{commandPalette → command-palette}/keys.d.ts +0 -21
- package/dist/src/command-palette/keys.d.ts.map +1 -0
- package/dist/src/command-palette/keys.js +85 -0
- package/dist/src/{commandPalette → command-palette}/match.d.ts +5 -11
- package/dist/src/command-palette/match.d.ts.map +1 -0
- package/dist/src/{commandPalette → command-palette}/match.js +20 -24
- package/dist/src/{commandPalette → command-palette}/message.d.ts +37 -26
- package/dist/src/command-palette/message.d.ts.map +1 -0
- package/dist/src/{commandPalette → command-palette}/message.js +8 -20
- package/dist/src/{confirmDialog/confirmDialog.d.ts → confirm-dialog/confirm-dialog.d.ts} +1 -1
- package/dist/src/confirm-dialog/confirm-dialog.d.ts.map +1 -0
- package/dist/src/{confirmDialog/confirmDialog.js → confirm-dialog/confirm-dialog.js} +18 -23
- package/dist/src/confirm-dialog/index.d.ts +3 -0
- package/dist/src/confirm-dialog/index.d.ts.map +1 -0
- package/dist/src/{confirmDialog → confirm-dialog}/index.js +1 -1
- package/dist/src/{contextMenu/contextMenu.d.ts → context-menu/context-menu.d.ts} +18 -21
- package/dist/src/context-menu/context-menu.d.ts.map +1 -0
- package/dist/src/{contextMenu/contextMenu.js → context-menu/context-menu.js} +45 -57
- package/dist/src/{contextMenu → context-menu}/index.d.ts +2 -2
- package/dist/src/context-menu/index.d.ts.map +1 -0
- package/dist/src/{contextMenu → context-menu}/index.js +1 -1
- package/dist/src/{copyButton/copyButton.d.ts → copy-button/copy-button.d.ts} +5 -7
- package/dist/src/copy-button/copy-button.d.ts.map +1 -0
- package/dist/src/{copyButton/copyButton.js → copy-button/copy-button.js} +18 -27
- package/dist/src/copy-button/index.d.ts +3 -0
- package/dist/src/copy-button/index.d.ts.map +1 -0
- package/dist/src/copy-button/index.js +1 -0
- package/dist/src/crumbs/crumbs.d.ts +1 -1
- package/dist/src/crumbs/crumbs.d.ts.map +1 -1
- package/dist/src/crumbs/index.d.ts.map +1 -1
- package/dist/src/deck/deck.d.ts.map +1 -1
- package/dist/src/deck/index.d.ts.map +1 -1
- package/dist/src/dialog/dialog.d.ts +6 -14
- package/dist/src/dialog/dialog.d.ts.map +1 -1
- package/dist/src/dialog/dialog.js +29 -36
- package/dist/src/dialog/fold.d.ts +3 -3
- package/dist/src/dialog/fold.d.ts.map +1 -1
- package/dist/src/dialog/fold.js +5 -4
- package/dist/src/dialog/index.d.ts +1 -1
- package/dist/src/dialog/index.d.ts.map +1 -1
- package/dist/src/disclosure/disclosure.d.ts.map +1 -1
- package/dist/src/disclosure/disclosure.js +3 -1
- package/dist/src/disclosure/index.d.ts.map +1 -1
- package/dist/src/dom/html-element.d.ts +3 -0
- package/dist/src/dom/html-element.d.ts.map +1 -0
- package/dist/src/dom/html-element.js +6 -0
- package/dist/src/drag/drag.d.ts +0 -34
- package/dist/src/drag/drag.d.ts.map +1 -1
- package/dist/src/drag/drag.js +27 -73
- package/dist/src/{dropZone/dropZone.d.ts → drop-zone/drop-zone.d.ts} +3 -3
- package/dist/src/drop-zone/drop-zone.d.ts.map +1 -0
- package/dist/src/{dropZone/dropZone.js → drop-zone/drop-zone.js} +13 -19
- package/dist/src/drop-zone/index.d.ts +3 -0
- package/dist/src/drop-zone/index.d.ts.map +1 -0
- package/dist/src/drop-zone/index.js +1 -0
- package/dist/src/{editableTitle/editableTitle.d.ts → editable-title/editable-title.d.ts} +14 -12
- package/dist/src/editable-title/editable-title.d.ts.map +1 -0
- package/dist/src/{editableTitle/editableTitle.js → editable-title/editable-title.js} +33 -39
- package/dist/src/editable-title/index.d.ts +4 -0
- package/dist/src/editable-title/index.d.ts.map +1 -0
- package/dist/src/{editableTitle → editable-title}/index.js +1 -1
- package/dist/src/{emptyState/emptyState.d.ts → empty-state/empty-state.d.ts} +1 -1
- package/dist/src/empty-state/empty-state.d.ts.map +1 -0
- package/dist/src/{emptyState/emptyState.js → empty-state/empty-state.js} +5 -2
- package/dist/src/empty-state/index.d.ts +3 -0
- package/dist/src/empty-state/index.d.ts.map +1 -0
- package/dist/src/empty-state/index.js +1 -0
- package/dist/src/{errorSummary/errorSummary.d.ts → error-summary/error-summary.d.ts} +2 -2
- package/dist/src/error-summary/error-summary.d.ts.map +1 -0
- package/dist/src/{errorSummary/errorSummary.js → error-summary/error-summary.js} +7 -5
- package/dist/src/error-summary/index.d.ts +3 -0
- package/dist/src/error-summary/index.d.ts.map +1 -0
- package/dist/src/error-summary/index.js +1 -0
- package/dist/src/field/field.d.ts +2 -7
- package/dist/src/field/field.d.ts.map +1 -1
- package/dist/src/field/field.js +12 -13
- package/dist/src/field/index.d.ts.map +1 -1
- package/dist/src/{fieldGrid/fieldGrid.d.ts → field-grid/field-grid.d.ts} +1 -1
- package/dist/src/field-grid/field-grid.d.ts.map +1 -0
- package/dist/src/{fieldGrid/fieldGrid.js → field-grid/field-grid.js} +1 -1
- package/dist/src/field-grid/index.d.ts +3 -0
- package/dist/src/field-grid/index.d.ts.map +1 -0
- package/dist/src/field-grid/index.js +1 -0
- package/dist/src/fields/fields.d.ts.map +1 -1
- package/dist/src/fields/fields.js +4 -1
- package/dist/src/fields/index.d.ts.map +1 -1
- package/dist/src/fieldset/fieldset.d.ts.map +1 -1
- package/dist/src/fieldset/index.d.ts.map +1 -1
- package/dist/src/{fileTree/fileTree.d.ts → file-tree/file-tree.d.ts} +5 -5
- package/dist/src/file-tree/file-tree.d.ts.map +1 -0
- package/dist/src/file-tree/file-tree.js +242 -0
- package/dist/src/file-tree/index.d.ts +3 -0
- package/dist/src/file-tree/index.d.ts.map +1 -0
- package/dist/src/{fileTree → file-tree}/index.js +1 -1
- package/dist/src/{filterChip/filterChip.d.ts → filter-chip/filter-chip.d.ts} +1 -1
- package/dist/src/filter-chip/filter-chip.d.ts.map +1 -0
- package/dist/src/{filterChip/filterChip.js → filter-chip/filter-chip.js} +11 -7
- package/dist/src/filter-chip/index.d.ts +3 -0
- package/dist/src/filter-chip/index.d.ts.map +1 -0
- package/dist/src/filter-chip/index.js +1 -0
- package/dist/src/{filterStrip/filterStrip.d.ts → filter-strip/filter-strip.d.ts} +1 -1
- package/dist/src/filter-strip/filter-strip.d.ts.map +1 -0
- package/dist/src/{filterStrip/filterStrip.js → filter-strip/filter-strip.js} +1 -1
- package/dist/src/filter-strip/index.d.ts +3 -0
- package/dist/src/filter-strip/index.d.ts.map +1 -0
- package/dist/src/filter-strip/index.js +1 -0
- package/dist/src/{flashWord/flashWord.d.ts → flash-word/flash-word.d.ts} +2 -2
- package/dist/src/flash-word/flash-word.d.ts.map +1 -0
- package/dist/src/{flashWord/flashWord.js → flash-word/flash-word.js} +2 -3
- package/dist/src/flash-word/index.d.ts +3 -0
- package/dist/src/flash-word/index.d.ts.map +1 -0
- package/dist/src/flash-word/index.js +1 -0
- package/dist/src/focus/focus.d.ts.map +1 -1
- package/dist/src/focus/focus.js +0 -2
- package/dist/src/format/format.d.ts +0 -7
- package/dist/src/format/format.d.ts.map +1 -1
- package/dist/src/format/format.js +7 -16
- package/dist/src/format/index.d.ts.map +1 -1
- package/dist/src/glyph/glyph.d.ts +1 -2
- package/dist/src/glyph/glyph.d.ts.map +1 -1
- package/dist/src/glyph/glyph.js +0 -2
- package/dist/src/glyph/glyphs.d.ts +19 -4
- package/dist/src/glyph/glyphs.d.ts.map +1 -1
- package/dist/src/glyph/glyphs.js +2577 -2594
- package/dist/src/glyph/index.d.ts.map +1 -1
- package/dist/src/group/group.d.ts.map +1 -1
- package/dist/src/group/index.d.ts.map +1 -1
- package/dist/src/history/history.d.ts +1 -1
- package/dist/src/history/history.d.ts.map +1 -1
- package/dist/src/history/history.js +6 -3
- package/dist/src/history/index.d.ts.map +1 -1
- package/dist/src/{iconButton/iconButton.d.ts → icon-button/icon-button.d.ts} +1 -1
- package/dist/src/icon-button/icon-button.d.ts.map +1 -0
- package/dist/src/{iconButton/iconButton.js → icon-button/icon-button.js} +6 -4
- package/dist/src/icon-button/index.d.ts +3 -0
- package/dist/src/icon-button/index.d.ts.map +1 -0
- package/dist/src/icon-button/index.js +1 -0
- package/dist/src/identity/identity.d.ts.map +1 -1
- package/dist/src/identity/index.d.ts.map +1 -1
- package/dist/src/{imageFrame/imageFrame.d.ts → image-frame/image-frame.d.ts} +1 -1
- package/dist/src/image-frame/image-frame.d.ts.map +1 -0
- package/dist/src/{imageFrame/imageFrame.js → image-frame/image-frame.js} +19 -12
- package/dist/src/image-frame/index.d.ts +3 -0
- package/dist/src/image-frame/index.d.ts.map +1 -0
- package/dist/src/image-frame/index.js +1 -0
- package/dist/src/index.d.ts +41 -41
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +41 -41
- package/dist/src/inline-input/index.d.ts +3 -0
- package/dist/src/inline-input/index.d.ts.map +1 -0
- package/dist/src/{inlineInput → inline-input}/index.js +1 -1
- package/dist/src/{inlineInput/inlineInput.d.ts → inline-input/inline-input.d.ts} +8 -12
- package/dist/src/inline-input/inline-input.d.ts.map +1 -0
- package/dist/src/{inlineInput/inlineInput.js → inline-input/inline-input.js} +60 -75
- package/dist/src/key-help/index.d.ts +3 -0
- package/dist/src/key-help/index.d.ts.map +1 -0
- package/dist/src/{keyHelp → key-help}/index.js +1 -1
- package/dist/src/{keyHelp/keyHelp.d.ts → key-help/key-help.d.ts} +7 -7
- package/dist/src/key-help/key-help.d.ts.map +1 -0
- package/dist/src/{keyHelp/keyHelp.js → key-help/key-help.js} +48 -47
- package/dist/src/key-hint/index.d.ts +4 -0
- package/dist/src/key-hint/index.d.ts.map +1 -0
- package/dist/src/key-hint/index.js +2 -0
- package/dist/src/{keyHint/keyHint.d.ts → key-hint/key-hint.d.ts} +2 -2
- package/dist/src/key-hint/key-hint.d.ts.map +1 -0
- package/dist/src/{keyHint/keyHint.js → key-hint/key-hint.js} +2 -2
- package/dist/src/{keyHint/keyLabel.d.ts → key-hint/key-label.d.ts} +2 -3
- package/dist/src/key-hint/key-label.d.ts.map +1 -0
- package/dist/src/{keyHint/keyLabel.js → key-hint/key-label.js} +29 -24
- package/dist/src/keymap/index.d.ts.map +1 -1
- package/dist/src/keymap/keymap.d.ts +2 -2
- package/dist/src/keymap/keymap.d.ts.map +1 -1
- package/dist/src/keymap/keymap.js +3 -1
- package/dist/src/keys/keys.d.ts +0 -2
- package/dist/src/keys/keys.d.ts.map +1 -1
- package/dist/src/keys/keys.js +0 -2
- package/dist/src/line-chart/index.d.ts +3 -0
- package/dist/src/line-chart/index.d.ts.map +1 -0
- package/dist/src/line-chart/index.js +1 -0
- package/dist/src/{lineChart/lineChart.d.ts → line-chart/line-chart.d.ts} +2 -2
- package/dist/src/line-chart/line-chart.d.ts.map +1 -0
- package/dist/src/{lineChart/lineChart.js → line-chart/line-chart.js} +52 -44
- package/dist/src/line-diff/diff.d.ts +29 -0
- package/dist/src/line-diff/diff.d.ts.map +1 -0
- package/dist/src/line-diff/diff.js +85 -0
- package/dist/src/line-diff/index.d.ts +5 -0
- package/dist/src/line-diff/index.d.ts.map +1 -0
- package/dist/src/line-diff/index.js +2 -0
- package/dist/src/{lineDiff/lineDiff.d.ts → line-diff/line-diff.d.ts} +1 -1
- package/dist/src/line-diff/line-diff.d.ts.map +1 -0
- package/dist/src/{lineDiff/lineDiff.js → line-diff/line-diff.js} +26 -19
- package/dist/src/{lineDiff → line-diff}/patch.d.ts +5 -9
- package/dist/src/line-diff/patch.d.ts.map +1 -0
- package/dist/src/{lineDiff → line-diff}/patch.js +54 -62
- package/dist/src/link-button/index.d.ts +3 -0
- package/dist/src/link-button/index.d.ts.map +1 -0
- package/dist/src/link-button/index.js +1 -0
- package/dist/src/{linkButton/linkButton.d.ts → link-button/link-button.d.ts} +2 -2
- package/dist/src/link-button/link-button.d.ts.map +1 -0
- package/dist/src/{linkButton/linkButton.js → link-button/link-button.js} +1 -1
- package/dist/src/link-state/index.d.ts +3 -0
- package/dist/src/link-state/index.d.ts.map +1 -0
- package/dist/src/link-state/index.js +1 -0
- package/dist/src/{linkState/linkState.d.ts → link-state/link-state.d.ts} +1 -1
- package/dist/src/link-state/link-state.d.ts.map +1 -0
- package/dist/src/link-state/link-state.js +24 -0
- package/dist/src/live-region/index.d.ts +3 -0
- package/dist/src/live-region/index.d.ts.map +1 -0
- package/dist/src/live-region/index.js +1 -0
- package/dist/src/{liveRegion/liveRegion.d.ts → live-region/live-region.d.ts} +6 -3
- package/dist/src/live-region/live-region.d.ts.map +1 -0
- package/dist/src/{liveRegion/liveRegion.js → live-region/live-region.js} +7 -5
- package/dist/src/loading/index.d.ts.map +1 -1
- package/dist/src/loading/loading.d.ts.map +1 -1
- package/dist/src/loading/loading.js +5 -1
- package/dist/src/mark/index.d.ts.map +1 -1
- package/dist/src/mark/mark.d.ts +0 -4
- package/dist/src/mark/mark.d.ts.map +1 -1
- package/dist/src/mark/mark.js +6 -3
- package/dist/src/media/index.d.ts.map +1 -1
- package/dist/src/media/media.d.ts +17 -42
- package/dist/src/media/media.d.ts.map +1 -1
- package/dist/src/media/media.js +106 -104
- package/dist/src/menu/index.d.ts.map +1 -1
- package/dist/src/menu/item.d.ts +8 -8
- package/dist/src/menu/item.d.ts.map +1 -1
- package/dist/src/menu/menu.d.ts +2 -5
- package/dist/src/menu/menu.d.ts.map +1 -1
- package/dist/src/menu/menu.js +19 -30
- package/dist/src/menu/slip.d.ts +4 -18
- package/dist/src/menu/slip.d.ts.map +1 -1
- package/dist/src/menu/slip.js +36 -36
- package/dist/src/meter/index.d.ts.map +1 -1
- package/dist/src/meter/meter.d.ts +1 -1
- package/dist/src/meter/meter.d.ts.map +1 -1
- package/dist/src/meter/meter.js +12 -15
- package/dist/src/monogram/index.d.ts.map +1 -1
- package/dist/src/monogram/monogram.d.ts.map +1 -1
- package/dist/src/monogram/monogram.js +9 -8
- package/dist/src/nav-strip/index.d.ts +3 -0
- package/dist/src/nav-strip/index.d.ts.map +1 -0
- package/dist/src/nav-strip/index.js +1 -0
- package/dist/src/{navStrip/navStrip.d.ts → nav-strip/nav-strip.d.ts} +3 -6
- package/dist/src/nav-strip/nav-strip.d.ts.map +1 -0
- package/dist/src/nav-strip/nav-strip.js +25 -0
- package/dist/src/notice/index.d.ts.map +1 -1
- package/dist/src/notice/notice.d.ts +0 -4
- package/dist/src/notice/notice.d.ts.map +1 -1
- package/dist/src/notice/notice.js +1 -4
- package/dist/src/outcome/index.d.ts.map +1 -1
- package/dist/src/outcome/outcome.d.ts.map +1 -1
- package/dist/src/outcome/outcome.js +1 -1
- package/dist/src/page-head/index.d.ts +3 -0
- package/dist/src/page-head/index.d.ts.map +1 -0
- package/dist/src/page-head/index.js +1 -0
- package/dist/src/{pageHead/pageHead.d.ts → page-head/page-head.d.ts} +1 -1
- package/dist/src/page-head/page-head.d.ts.map +1 -0
- package/dist/src/{pageHead/pageHead.js → page-head/page-head.js} +1 -1
- package/dist/src/panel/index.d.ts.map +1 -1
- package/dist/src/panel/panel.d.ts +0 -1
- package/dist/src/panel/panel.d.ts.map +1 -1
- package/dist/src/panel/panel.js +0 -1
- package/dist/src/password-field/index.d.ts +3 -0
- package/dist/src/password-field/index.d.ts.map +1 -0
- package/dist/src/password-field/index.js +1 -0
- package/dist/src/{passwordField/passwordField.d.ts → password-field/password-field.d.ts} +1 -1
- package/dist/src/password-field/password-field.d.ts.map +1 -0
- package/dist/src/{passwordField/passwordField.js → password-field/password-field.js} +4 -5
- package/dist/src/places/index.d.ts.map +1 -1
- package/dist/src/places/places.d.ts +3 -4
- package/dist/src/places/places.d.ts.map +1 -1
- package/dist/src/places/places.js +8 -2
- package/dist/src/props-list/index.d.ts +3 -0
- package/dist/src/props-list/index.d.ts.map +1 -0
- package/dist/src/props-list/index.js +1 -0
- package/dist/src/{propsList/propsList.d.ts → props-list/props-list.d.ts} +2 -2
- package/dist/src/props-list/props-list.d.ts.map +1 -0
- package/dist/src/{propsList/propsList.js → props-list/props-list.js} +2 -2
- package/dist/src/prose/index.d.ts.map +1 -1
- package/dist/src/prose/prose.d.ts.map +1 -1
- package/dist/src/query-chip/index.d.ts +3 -0
- package/dist/src/query-chip/index.d.ts.map +1 -0
- package/dist/src/query-chip/index.js +1 -0
- package/dist/src/{queryChip/queryChip.d.ts → query-chip/query-chip.d.ts} +1 -1
- package/dist/src/query-chip/query-chip.d.ts.map +1 -0
- package/dist/src/{queryChip/queryChip.js → query-chip/query-chip.js} +7 -4
- package/dist/src/{radioChoices → radio-choices}/index.d.ts +2 -2
- package/dist/src/radio-choices/index.d.ts.map +1 -0
- package/dist/src/{radioChoices → radio-choices}/index.js +1 -1
- package/dist/src/{radioChoices/radioChoices.d.ts → radio-choices/radio-choices.d.ts} +3 -3
- package/dist/src/radio-choices/radio-choices.d.ts.map +1 -0
- package/dist/src/{radioChoices/radioChoices.js → radio-choices/radio-choices.js} +25 -24
- package/dist/src/rail/index.d.ts.map +1 -1
- package/dist/src/rail/rail.d.ts +16 -32
- package/dist/src/rail/rail.d.ts.map +1 -1
- package/dist/src/rail/rail.js +97 -65
- package/dist/src/reel/index.d.ts +1 -1
- package/dist/src/reel/index.d.ts.map +1 -1
- package/dist/src/reel/layout.d.ts +12 -54
- package/dist/src/reel/layout.d.ts.map +1 -1
- package/dist/src/reel/layout.js +120 -145
- package/dist/src/reel/reel.d.ts +35 -34
- package/dist/src/reel/reel.d.ts.map +1 -1
- package/dist/src/reel/reel.js +253 -233
- package/dist/src/remote/index.d.ts.map +1 -1
- package/dist/src/remote/remote.d.ts +2 -2
- package/dist/src/remote/remote.d.ts.map +1 -1
- package/dist/src/remote/remote.js +6 -2
- package/dist/src/rows/index.d.ts.map +1 -1
- package/dist/src/rows/rows.d.ts +2 -2
- package/dist/src/rows/rows.d.ts.map +1 -1
- package/dist/src/rows/rows.js +16 -7
- package/dist/src/scheme/index.d.ts +1 -1
- package/dist/src/scheme/index.d.ts.map +1 -1
- package/dist/src/scheme/index.js +1 -1
- package/dist/src/scheme/{schemeSwitch.d.ts → scheme-switch.d.ts} +2 -2
- package/dist/src/scheme/scheme-switch.d.ts.map +1 -0
- package/dist/src/scheme/{schemeSwitch.js → scheme-switch.js} +33 -38
- package/dist/src/scheme/scheme.d.ts +0 -2
- package/dist/src/scheme/scheme.d.ts.map +1 -1
- package/dist/src/scheme/scheme.js +0 -2
- package/dist/src/secret/index.d.ts.map +1 -1
- package/dist/src/secret/secret.d.ts.map +1 -1
- package/dist/src/segmented/index.d.ts.map +1 -1
- package/dist/src/segmented/segmented.d.ts.map +1 -1
- package/dist/src/segmented/segmented.js +14 -3
- package/dist/src/select-all/index.d.ts +3 -0
- package/dist/src/select-all/index.d.ts.map +1 -0
- package/dist/src/select-all/index.js +1 -0
- package/dist/src/{selectAll/selectAll.d.ts → select-all/select-all.d.ts} +1 -1
- package/dist/src/select-all/select-all.d.ts.map +1 -0
- package/dist/src/{selectAll/selectAll.js → select-all/select-all.js} +2 -2
- package/dist/src/select-field/index.d.ts +3 -0
- package/dist/src/select-field/index.d.ts.map +1 -0
- package/dist/src/select-field/index.js +1 -0
- package/dist/src/{selectField/selectField.d.ts → select-field/select-field.d.ts} +2 -2
- package/dist/src/select-field/select-field.d.ts.map +1 -0
- package/dist/src/{selectField/selectField.js → select-field/select-field.js} +10 -7
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +4 -1
- package/dist/src/skip-link/index.d.ts +2 -0
- package/dist/src/skip-link/index.d.ts.map +1 -0
- package/dist/src/skip-link/index.js +1 -0
- package/dist/src/{skipLink/skipLink.d.ts → skip-link/skip-link.d.ts} +1 -3
- package/dist/src/skip-link/skip-link.d.ts.map +1 -0
- package/dist/src/{skipLink/skipLink.js → skip-link/skip-link.js} +7 -11
- package/dist/src/slot/slot.d.ts +1 -4
- package/dist/src/slot/slot.d.ts.map +1 -1
- package/dist/src/slot/slot.js +3 -3
- package/dist/src/sortable/index.d.ts.map +1 -1
- package/dist/src/sortable/sortable.d.ts +44 -44
- package/dist/src/sortable/sortable.d.ts.map +1 -1
- package/dist/src/sortable/sortable.js +60 -93
- package/dist/src/stack/index.d.ts.map +1 -1
- package/dist/src/stack/stack.d.ts.map +1 -1
- package/dist/src/stack/stack.js +0 -2
- package/dist/src/stage/index.d.ts.map +1 -1
- package/dist/src/stage/stage.d.ts +1 -1
- package/dist/src/stage/stage.d.ts.map +1 -1
- package/dist/src/stage/stage.js +4 -1
- package/dist/src/stat/index.d.ts.map +1 -1
- package/dist/src/stat/stat.d.ts +1 -1
- package/dist/src/stat/stat.d.ts.map +1 -1
- package/dist/src/stat/stat.js +17 -8
- package/dist/src/status-bar/index.d.ts +4 -0
- package/dist/src/status-bar/index.d.ts.map +1 -0
- package/dist/src/status-bar/index.js +2 -0
- package/dist/src/{statusBar/statusBar.d.ts → status-bar/status-bar.d.ts} +4 -4
- package/dist/src/status-bar/status-bar.d.ts.map +1 -0
- package/dist/src/{statusBar/statusBar.js → status-bar/status-bar.js} +5 -6
- package/dist/src/subscription/{prefixKeys.d.ts → prefix-keys.d.ts} +1 -2
- package/dist/src/subscription/prefix-keys.d.ts.map +1 -0
- package/dist/src/subscription/{prefixKeys.js → prefix-keys.js} +2 -5
- package/dist/src/table/index.d.ts.map +1 -1
- package/dist/src/table/table.d.ts +1 -1
- package/dist/src/table/table.d.ts.map +1 -1
- package/dist/src/table/table.js +19 -7
- package/dist/src/tabs/index.d.ts.map +1 -1
- package/dist/src/tabs/tabs.d.ts +4 -4
- package/dist/src/tabs/tabs.d.ts.map +1 -1
- package/dist/src/tabs/tabs.js +1 -6
- package/dist/src/tag/index.d.ts.map +1 -1
- package/dist/src/tag/tag.d.ts.map +1 -1
- package/dist/src/tag/tag.js +4 -1
- package/dist/src/text-button/index.d.ts +3 -0
- package/dist/src/text-button/index.d.ts.map +1 -0
- package/dist/src/text-button/index.js +1 -0
- package/dist/src/{textButton/textButton.d.ts → text-button/text-button.d.ts} +1 -1
- package/dist/src/text-button/text-button.d.ts.map +1 -0
- package/dist/src/{textButton/textButton.js → text-button/text-button.js} +2 -2
- package/dist/src/textarea-field/index.d.ts +3 -0
- package/dist/src/textarea-field/index.d.ts.map +1 -0
- package/dist/src/textarea-field/index.js +1 -0
- package/dist/src/{textareaField/textareaField.d.ts → textarea-field/textarea-field.d.ts} +1 -1
- package/dist/src/textarea-field/textarea-field.d.ts.map +1 -0
- package/dist/src/{textareaField/textareaField.js → textarea-field/textarea-field.js} +2 -2
- package/dist/src/time/index.d.ts.map +1 -1
- package/dist/src/time/time.d.ts.map +1 -1
- package/dist/src/time/time.js +16 -9
- package/dist/src/tips/index.d.ts.map +1 -1
- package/dist/src/tips/tips.d.ts +7 -18
- package/dist/src/tips/tips.d.ts.map +1 -1
- package/dist/src/tips/tips.js +67 -65
- package/dist/src/toast/index.d.ts.map +1 -1
- package/dist/src/toast/stack.d.ts +1 -8
- package/dist/src/toast/stack.d.ts.map +1 -1
- package/dist/src/toast/stack.js +5 -18
- package/dist/src/toast/toast.d.ts +3 -5
- package/dist/src/toast/toast.d.ts.map +1 -1
- package/dist/src/toast/toast.js +42 -39
- package/dist/src/toc/index.d.ts.map +1 -1
- package/dist/src/toc/toc.d.ts +3 -3
- package/dist/src/toc/toc.d.ts.map +1 -1
- package/dist/src/toc/toc.js +10 -7
- package/dist/src/toolbar/index.d.ts.map +1 -1
- package/dist/src/toolbar/toolbar.d.ts +1 -1
- package/dist/src/toolbar/toolbar.d.ts.map +1 -1
- package/dist/src/toolbar/toolbar.js +27 -24
- package/dist/src/{topBar/barHeight.d.ts → top-bar/bar-height.d.ts} +1 -2
- package/dist/src/top-bar/bar-height.d.ts.map +1 -0
- package/dist/src/{topBar/barHeight.js → top-bar/bar-height.js} +20 -13
- package/dist/src/top-bar/index.d.ts +4 -0
- package/dist/src/top-bar/index.d.ts.map +1 -0
- package/dist/src/top-bar/index.js +2 -0
- package/dist/src/{topBar/topBar.d.ts → top-bar/top-bar.d.ts} +3 -3
- package/dist/src/top-bar/top-bar.d.ts.map +1 -0
- package/dist/src/{topBar/topBar.js → top-bar/top-bar.js} +2 -2
- package/dist/src/video-frame/index.d.ts +3 -0
- package/dist/src/video-frame/index.d.ts.map +1 -0
- package/dist/src/video-frame/index.js +1 -0
- package/dist/src/{videoFrame/videoFrame.d.ts → video-frame/video-frame.d.ts} +1 -1
- package/dist/src/video-frame/video-frame.d.ts.map +1 -0
- package/dist/src/{videoFrame/videoFrame.js → video-frame/video-frame.js} +11 -7
- package/dist/src/wall/index.d.ts.map +1 -1
- package/dist/src/wall/wall.d.ts.map +1 -1
- package/dist/src/window/index.d.ts.map +1 -1
- package/dist/src/window/window.d.ts +2 -2
- package/dist/src/window/window.d.ts.map +1 -1
- package/dist/src/window/window.js +4 -2
- package/dist/src/wordmark/index.d.ts.map +1 -1
- package/dist/src/wordmark/wordmark.d.ts.map +1 -1
- package/dist/src/wrap/index.d.ts.map +1 -1
- package/dist/src/wrap/wrap.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/adapters/diagram.ts +278 -0
- package/src/adapters/mermaid.ts +13 -273
- package/src/announcer/announcer.ts +54 -35
- package/src/attributes/attributes.ts +3 -1
- package/src/{audioFrame/audioFrame.ts → audio-frame/audio-frame.ts} +4 -6
- package/src/audio-frame/index.ts +3 -0
- package/src/banner/banner.ts +5 -4
- package/src/banner/index.ts +1 -0
- package/src/{barChart/barChart.ts → bar-chart/bar-chart.ts} +81 -43
- package/src/bar-chart/index.ts +3 -0
- package/src/bench/bench.ts +5 -4
- package/src/bench/index.ts +1 -0
- package/src/board/board.ts +338 -243
- package/src/board/index.ts +8 -1
- package/src/button/button.ts +24 -16
- package/src/button/index.ts +8 -1
- package/src/card/card.ts +23 -21
- package/src/card/index.ts +1 -0
- package/src/chart-table/chart-table.ts +87 -0
- package/src/chip/chip.ts +13 -9
- package/src/chip/index.ts +1 -0
- package/src/choice/choice.ts +13 -7
- package/src/choice/index.ts +1 -0
- package/src/choices/choices.ts +4 -3
- package/src/choices/index.ts +1 -0
- package/src/{codeEditor/codeEditor.ts → code-editor/code-editor.ts} +5 -4
- package/src/code-editor/index.ts +3 -0
- package/src/{codeSurface/codeSurface.ts → code-surface/code-surface.ts} +11 -5
- package/src/code-surface/index.ts +3 -0
- package/src/{commandPalette/commandPalette.ts → command-palette/command-palette.ts} +470 -295
- package/src/{commandPalette → command-palette}/index.ts +12 -2
- package/src/{commandPalette → command-palette}/keys.ts +44 -43
- package/src/{commandPalette → command-palette}/match.ts +42 -30
- package/src/{commandPalette → command-palette}/message.ts +13 -20
- package/src/{confirmDialog/confirmDialog.ts → confirm-dialog/confirm-dialog.ts} +51 -46
- package/src/{confirmDialog → confirm-dialog}/index.ts +3 -2
- package/src/{contextMenu/contextMenu.ts → context-menu/context-menu.ts} +71 -70
- package/src/{contextMenu → context-menu}/index.ts +4 -2
- package/src/{copyButton/copyButton.ts → copy-button/copy-button.ts} +51 -54
- package/src/{copyButton → copy-button}/index.ts +3 -2
- package/src/crumbs/crumbs.ts +7 -6
- package/src/crumbs/index.ts +1 -0
- package/src/deck/deck.ts +4 -3
- package/src/deck/index.ts +1 -0
- package/src/dialog/dialog.ts +135 -113
- package/src/dialog/fold.ts +44 -25
- package/src/dialog/index.ts +9 -1
- package/src/disclosure/disclosure.ts +14 -8
- package/src/disclosure/index.ts +1 -0
- package/src/dom/html-element.ts +10 -0
- package/src/drag/drag.ts +102 -119
- package/src/{dropZone/dropZone.ts → drop-zone/drop-zone.ts} +43 -43
- package/src/drop-zone/index.ts +11 -0
- package/src/{editableTitle/editableTitle.ts → editable-title/editable-title.ts} +29 -32
- package/src/{editableTitle → editable-title}/index.ts +4 -2
- package/src/{emptyState/emptyState.ts → empty-state/empty-state.ts} +9 -5
- package/src/empty-state/index.ts +3 -0
- package/src/{errorSummary/errorSummary.ts → error-summary/error-summary.ts} +16 -7
- package/src/error-summary/index.ts +3 -0
- package/src/field/field.ts +38 -28
- package/src/field/index.ts +1 -0
- package/src/{fieldGrid/fieldGrid.ts → field-grid/field-grid.ts} +4 -3
- package/src/field-grid/index.ts +3 -0
- package/src/fields/fields.ts +9 -5
- package/src/fields/index.ts +1 -0
- package/src/fieldset/fieldset.ts +6 -5
- package/src/fieldset/index.ts +1 -0
- package/src/{fileTree/fileTree.ts → file-tree/file-tree.ts} +241 -166
- package/src/file-tree/index.ts +12 -0
- package/src/{filterChip/filterChip.ts → filter-chip/filter-chip.ts} +32 -13
- package/src/filter-chip/index.ts +3 -0
- package/src/{filterStrip/filterStrip.ts → filter-strip/filter-strip.ts} +4 -3
- package/src/filter-strip/index.ts +3 -0
- package/src/{flashWord/flashWord.ts → flash-word/flash-word.ts} +9 -7
- package/src/flash-word/index.ts +3 -0
- package/src/focus/focus.ts +5 -5
- package/src/format/format.ts +37 -31
- package/src/format/index.ts +1 -0
- package/src/glyph/glyph.ts +7 -6
- package/src/glyph/glyphs.ts +2601 -2611
- package/src/glyph/index.ts +3 -0
- package/src/group/group.ts +4 -3
- package/src/group/index.ts +1 -0
- package/src/history/history.ts +18 -10
- package/src/history/index.ts +1 -0
- package/src/{iconButton/iconButton.ts → icon-button/icon-button.ts} +13 -7
- package/src/icon-button/index.ts +3 -0
- package/src/identity/identity.ts +7 -6
- package/src/identity/index.ts +1 -0
- package/src/{imageFrame/imageFrame.ts → image-frame/image-frame.ts} +43 -25
- package/src/image-frame/index.ts +3 -0
- package/src/index.ts +139 -41
- package/src/{inlineInput → inline-input}/index.ts +3 -2
- package/src/{inlineInput/inlineInput.ts → inline-input/inline-input.ts} +97 -88
- package/src/{keyHelp → key-help}/index.ts +3 -2
- package/src/{keyHelp/keyHelp.ts → key-help/key-help.ts} +74 -62
- package/src/key-hint/index.ts +5 -0
- package/src/{keyHint/keyHint.ts → key-hint/key-hint.ts} +10 -5
- package/src/{keyHint/keyLabel.ts → key-hint/key-label.ts} +43 -22
- package/src/keymap/index.ts +1 -0
- package/src/keymap/keymap.ts +23 -9
- package/src/keys/keys.ts +0 -2
- package/src/line-chart/index.ts +3 -0
- package/src/{lineChart/lineChart.ts → line-chart/line-chart.ts} +71 -49
- package/src/line-diff/diff.ts +196 -0
- package/src/line-diff/index.ts +7 -0
- package/src/{lineDiff/lineDiff.ts → line-diff/line-diff.ts} +45 -23
- package/src/{lineDiff → line-diff}/patch.ts +104 -76
- package/src/link-button/index.ts +3 -0
- package/src/{linkButton/linkButton.ts → link-button/link-button.ts} +7 -5
- package/src/link-state/index.ts +3 -0
- package/src/{linkState/linkState.ts → link-state/link-state.ts} +20 -9
- package/src/live-region/index.ts +3 -0
- package/src/{liveRegion/liveRegion.ts → live-region/live-region.ts} +15 -11
- package/src/loading/index.ts +1 -0
- package/src/loading/loading.ts +10 -5
- package/src/mark/index.ts +1 -0
- package/src/mark/mark.ts +17 -15
- package/src/media/index.ts +1 -0
- package/src/media/media.ts +255 -157
- package/src/menu/index.ts +4 -0
- package/src/menu/item.ts +10 -11
- package/src/menu/menu.ts +110 -97
- package/src/menu/slip.ts +129 -92
- package/src/meter/index.ts +1 -0
- package/src/meter/meter.ts +52 -33
- package/src/monogram/index.ts +1 -0
- package/src/monogram/monogram.ts +27 -19
- package/src/nav-strip/index.ts +3 -0
- package/src/{navStrip/navStrip.ts → nav-strip/nav-strip.ts} +21 -13
- package/src/notice/index.ts +1 -0
- package/src/notice/notice.ts +24 -16
- package/src/outcome/index.ts +1 -0
- package/src/outcome/outcome.ts +14 -6
- package/src/page-head/index.ts +3 -0
- package/src/{pageHead/pageHead.ts → page-head/page-head.ts} +6 -5
- package/src/panel/index.ts +1 -0
- package/src/panel/panel.ts +6 -6
- package/src/password-field/index.ts +3 -0
- package/src/{passwordField/passwordField.ts → password-field/password-field.ts} +13 -13
- package/src/pixel-paper.css +26 -508
- package/src/places/index.ts +1 -0
- package/src/places/places.ts +22 -11
- package/src/props-list/index.ts +3 -0
- package/src/{propsList/propsList.ts → props-list/props-list.ts} +6 -6
- package/src/prose/index.ts +1 -0
- package/src/prose/prose.ts +4 -4
- package/src/query-chip/index.ts +3 -0
- package/src/{queryChip/queryChip.ts → query-chip/query-chip.ts} +18 -7
- package/src/{radioChoices → radio-choices}/index.ts +3 -2
- package/src/{radioChoices/radioChoices.ts → radio-choices/radio-choices.ts} +79 -65
- package/src/rail/index.ts +1 -0
- package/src/rail/rail.ts +291 -225
- package/src/reel/index.ts +8 -1
- package/src/reel/layout.ts +393 -238
- package/src/reel/reel.ts +750 -452
- package/src/remote/index.ts +1 -0
- package/src/remote/remote.ts +18 -11
- package/src/rows/index.ts +1 -0
- package/src/rows/rows.ts +83 -47
- package/src/scheme/index.ts +3 -1
- package/src/scheme/{schemeSwitch.ts → scheme-switch.ts} +24 -35
- package/src/scheme/scheme.ts +4 -4
- package/src/secret/index.ts +1 -0
- package/src/secret/secret.ts +5 -4
- package/src/segmented/index.ts +1 -0
- package/src/segmented/segmented.ts +22 -10
- package/src/select-all/index.ts +3 -0
- package/src/{selectAll/selectAll.ts → select-all/select-all.ts} +9 -8
- package/src/{selectField → select-field}/index.ts +3 -2
- package/src/{selectField/selectField.ts → select-field/select-field.ts} +25 -11
- package/src/sheet/index.ts +1 -0
- package/src/sheet/sheet.ts +9 -5
- package/src/skip-link/index.ts +1 -0
- package/src/{skipLink/skipLink.ts → skip-link/skip-link.ts} +9 -15
- package/src/slot/slot.ts +5 -6
- package/src/sortable/index.ts +1 -0
- package/src/sortable/sortable.ts +287 -206
- package/src/stack/index.ts +1 -0
- package/src/stack/stack.ts +6 -7
- package/src/stage/index.ts +1 -0
- package/src/stage/stage.ts +12 -8
- package/src/stat/index.ts +1 -0
- package/src/stat/stat.ts +39 -20
- package/src/status-bar/index.ts +5 -0
- package/src/{statusBar/statusBar.ts → status-bar/status-bar.ts} +18 -11
- package/src/subscription/{prefixKeys.ts → prefix-keys.ts} +5 -6
- package/src/table/index.ts +1 -0
- package/src/table/table.ts +49 -24
- package/src/tabs/index.ts +1 -0
- package/src/tabs/tabs.ts +58 -60
- package/src/tag/index.ts +1 -0
- package/src/tag/tag.ts +14 -7
- package/src/text-button/index.ts +3 -0
- package/src/{textButton/textButton.ts → text-button/text-button.ts} +7 -5
- package/src/textarea-field/index.ts +3 -0
- package/src/{textareaField/textareaField.ts → textarea-field/textarea-field.ts} +15 -7
- package/src/time/index.ts +1 -0
- package/src/time/time.ts +58 -25
- package/src/tips/index.ts +1 -0
- package/src/tips/tips.ts +183 -127
- package/src/toast/index.ts +3 -0
- package/src/toast/stack.ts +22 -23
- package/src/toast/toast.ts +168 -100
- package/src/toc/index.ts +1 -0
- package/src/toc/toc.ts +42 -27
- package/src/tokens.css +7 -24
- package/src/toolbar/index.ts +1 -0
- package/src/toolbar/toolbar.ts +78 -40
- package/src/{topBar/barHeight.ts → top-bar/bar-height.ts} +26 -12
- package/src/top-bar/index.ts +5 -0
- package/src/{topBar/topBar.ts → top-bar/top-bar.ts} +13 -7
- package/src/video-frame/index.ts +3 -0
- package/src/{videoFrame/videoFrame.ts → video-frame/video-frame.ts} +31 -18
- package/src/wall/index.ts +1 -0
- package/src/wall/wall.ts +13 -10
- package/src/window/index.ts +1 -0
- package/src/window/window.ts +15 -9
- package/src/wordmark/index.ts +1 -0
- package/src/wordmark/wordmark.ts +4 -3
- package/src/wrap/index.ts +1 -0
- package/src/wrap/wrap.ts +4 -3
- package/dist/src/audioFrame/audioFrame.d.ts.map +0 -1
- package/dist/src/audioFrame/index.d.ts +0 -3
- package/dist/src/audioFrame/index.d.ts.map +0 -1
- package/dist/src/audioFrame/index.js +0 -1
- package/dist/src/barChart/barChart.d.ts.map +0 -1
- package/dist/src/barChart/index.d.ts +0 -3
- package/dist/src/barChart/index.d.ts.map +0 -1
- package/dist/src/barChart/index.js +0 -1
- package/dist/src/chartTable/chartTable.d.ts.map +0 -1
- package/dist/src/codeEditor/codeEditor.d.ts.map +0 -1
- package/dist/src/codeEditor/index.d.ts +0 -3
- package/dist/src/codeEditor/index.d.ts.map +0 -1
- package/dist/src/codeEditor/index.js +0 -1
- package/dist/src/codeSurface/codeSurface.d.ts.map +0 -1
- package/dist/src/codeSurface/index.d.ts +0 -3
- package/dist/src/codeSurface/index.d.ts.map +0 -1
- package/dist/src/codeSurface/index.js +0 -1
- package/dist/src/commandPalette/commandPalette.d.ts.map +0 -1
- package/dist/src/commandPalette/commandPalette.js +0 -611
- package/dist/src/commandPalette/index.d.ts.map +0 -1
- package/dist/src/commandPalette/keys.d.ts.map +0 -1
- package/dist/src/commandPalette/keys.js +0 -102
- package/dist/src/commandPalette/match.d.ts.map +0 -1
- package/dist/src/commandPalette/message.d.ts.map +0 -1
- package/dist/src/confirmDialog/confirmDialog.d.ts.map +0 -1
- package/dist/src/confirmDialog/index.d.ts +0 -3
- package/dist/src/confirmDialog/index.d.ts.map +0 -1
- package/dist/src/contextMenu/contextMenu.d.ts.map +0 -1
- package/dist/src/contextMenu/index.d.ts.map +0 -1
- package/dist/src/copyButton/copyButton.d.ts.map +0 -1
- package/dist/src/copyButton/index.d.ts +0 -3
- package/dist/src/copyButton/index.d.ts.map +0 -1
- package/dist/src/copyButton/index.js +0 -1
- package/dist/src/dropZone/dropZone.d.ts.map +0 -1
- package/dist/src/dropZone/index.d.ts +0 -3
- package/dist/src/dropZone/index.d.ts.map +0 -1
- package/dist/src/dropZone/index.js +0 -1
- package/dist/src/editableTitle/editableTitle.d.ts.map +0 -1
- package/dist/src/editableTitle/index.d.ts +0 -4
- package/dist/src/editableTitle/index.d.ts.map +0 -1
- package/dist/src/emptyState/emptyState.d.ts.map +0 -1
- package/dist/src/emptyState/index.d.ts +0 -3
- package/dist/src/emptyState/index.d.ts.map +0 -1
- package/dist/src/emptyState/index.js +0 -1
- package/dist/src/errorSummary/errorSummary.d.ts.map +0 -1
- package/dist/src/errorSummary/index.d.ts +0 -3
- package/dist/src/errorSummary/index.d.ts.map +0 -1
- package/dist/src/errorSummary/index.js +0 -1
- package/dist/src/fieldGrid/fieldGrid.d.ts.map +0 -1
- package/dist/src/fieldGrid/index.d.ts +0 -3
- package/dist/src/fieldGrid/index.d.ts.map +0 -1
- package/dist/src/fieldGrid/index.js +0 -1
- package/dist/src/fileTree/fileTree.d.ts.map +0 -1
- package/dist/src/fileTree/fileTree.js +0 -230
- package/dist/src/fileTree/index.d.ts +0 -3
- package/dist/src/fileTree/index.d.ts.map +0 -1
- package/dist/src/filterChip/filterChip.d.ts.map +0 -1
- package/dist/src/filterChip/index.d.ts +0 -3
- package/dist/src/filterChip/index.d.ts.map +0 -1
- package/dist/src/filterChip/index.js +0 -1
- package/dist/src/filterStrip/filterStrip.d.ts.map +0 -1
- package/dist/src/filterStrip/index.d.ts +0 -3
- package/dist/src/filterStrip/index.d.ts.map +0 -1
- package/dist/src/filterStrip/index.js +0 -1
- package/dist/src/flashWord/flashWord.d.ts.map +0 -1
- package/dist/src/flashWord/index.d.ts +0 -3
- package/dist/src/flashWord/index.d.ts.map +0 -1
- package/dist/src/flashWord/index.js +0 -1
- package/dist/src/iconButton/iconButton.d.ts.map +0 -1
- package/dist/src/iconButton/index.d.ts +0 -3
- package/dist/src/iconButton/index.d.ts.map +0 -1
- package/dist/src/iconButton/index.js +0 -1
- package/dist/src/imageFrame/imageFrame.d.ts.map +0 -1
- package/dist/src/imageFrame/index.d.ts +0 -3
- package/dist/src/imageFrame/index.d.ts.map +0 -1
- package/dist/src/imageFrame/index.js +0 -1
- package/dist/src/inlineInput/index.d.ts +0 -3
- package/dist/src/inlineInput/index.d.ts.map +0 -1
- package/dist/src/inlineInput/inlineInput.d.ts.map +0 -1
- package/dist/src/keyHelp/index.d.ts +0 -3
- package/dist/src/keyHelp/index.d.ts.map +0 -1
- package/dist/src/keyHelp/keyHelp.d.ts.map +0 -1
- package/dist/src/keyHint/index.d.ts +0 -4
- package/dist/src/keyHint/index.d.ts.map +0 -1
- package/dist/src/keyHint/index.js +0 -2
- package/dist/src/keyHint/keyHint.d.ts.map +0 -1
- package/dist/src/keyHint/keyLabel.d.ts.map +0 -1
- package/dist/src/lineChart/index.d.ts +0 -3
- package/dist/src/lineChart/index.d.ts.map +0 -1
- package/dist/src/lineChart/index.js +0 -1
- package/dist/src/lineChart/lineChart.d.ts.map +0 -1
- package/dist/src/lineDiff/diff.d.ts +0 -41
- package/dist/src/lineDiff/diff.d.ts.map +0 -1
- package/dist/src/lineDiff/diff.js +0 -92
- package/dist/src/lineDiff/index.d.ts +0 -5
- package/dist/src/lineDiff/index.d.ts.map +0 -1
- package/dist/src/lineDiff/index.js +0 -2
- package/dist/src/lineDiff/lineDiff.d.ts.map +0 -1
- package/dist/src/lineDiff/patch.d.ts.map +0 -1
- package/dist/src/linkButton/index.d.ts +0 -3
- package/dist/src/linkButton/index.d.ts.map +0 -1
- package/dist/src/linkButton/index.js +0 -1
- package/dist/src/linkButton/linkButton.d.ts.map +0 -1
- package/dist/src/linkState/index.d.ts +0 -3
- package/dist/src/linkState/index.d.ts.map +0 -1
- package/dist/src/linkState/index.js +0 -1
- package/dist/src/linkState/linkState.d.ts.map +0 -1
- package/dist/src/linkState/linkState.js +0 -14
- package/dist/src/liveRegion/index.d.ts +0 -3
- package/dist/src/liveRegion/index.d.ts.map +0 -1
- package/dist/src/liveRegion/index.js +0 -1
- package/dist/src/liveRegion/liveRegion.d.ts.map +0 -1
- package/dist/src/navStrip/index.d.ts +0 -3
- package/dist/src/navStrip/index.d.ts.map +0 -1
- package/dist/src/navStrip/index.js +0 -1
- package/dist/src/navStrip/navStrip.d.ts.map +0 -1
- package/dist/src/navStrip/navStrip.js +0 -27
- package/dist/src/pageHead/index.d.ts +0 -3
- package/dist/src/pageHead/index.d.ts.map +0 -1
- package/dist/src/pageHead/index.js +0 -1
- package/dist/src/pageHead/pageHead.d.ts.map +0 -1
- package/dist/src/passwordField/index.d.ts +0 -3
- package/dist/src/passwordField/index.d.ts.map +0 -1
- package/dist/src/passwordField/index.js +0 -1
- package/dist/src/passwordField/passwordField.d.ts.map +0 -1
- package/dist/src/propsList/index.d.ts +0 -3
- package/dist/src/propsList/index.d.ts.map +0 -1
- package/dist/src/propsList/index.js +0 -1
- package/dist/src/propsList/propsList.d.ts.map +0 -1
- package/dist/src/queryChip/index.d.ts +0 -3
- package/dist/src/queryChip/index.d.ts.map +0 -1
- package/dist/src/queryChip/index.js +0 -1
- package/dist/src/queryChip/queryChip.d.ts.map +0 -1
- package/dist/src/radioChoices/index.d.ts.map +0 -1
- package/dist/src/radioChoices/radioChoices.d.ts.map +0 -1
- package/dist/src/scheme/schemeSwitch.d.ts.map +0 -1
- package/dist/src/selectAll/index.d.ts +0 -3
- package/dist/src/selectAll/index.d.ts.map +0 -1
- package/dist/src/selectAll/index.js +0 -1
- package/dist/src/selectAll/selectAll.d.ts.map +0 -1
- package/dist/src/selectField/index.d.ts +0 -3
- package/dist/src/selectField/index.d.ts.map +0 -1
- package/dist/src/selectField/index.js +0 -1
- package/dist/src/selectField/selectField.d.ts.map +0 -1
- package/dist/src/skipLink/index.d.ts +0 -2
- package/dist/src/skipLink/index.d.ts.map +0 -1
- package/dist/src/skipLink/index.js +0 -1
- package/dist/src/skipLink/skipLink.d.ts.map +0 -1
- package/dist/src/statusBar/index.d.ts +0 -4
- package/dist/src/statusBar/index.d.ts.map +0 -1
- package/dist/src/statusBar/index.js +0 -2
- package/dist/src/statusBar/statusBar.d.ts.map +0 -1
- package/dist/src/subscription/prefixKeys.d.ts.map +0 -1
- package/dist/src/textButton/index.d.ts +0 -3
- package/dist/src/textButton/index.d.ts.map +0 -1
- package/dist/src/textButton/index.js +0 -1
- package/dist/src/textButton/textButton.d.ts.map +0 -1
- package/dist/src/textareaField/index.d.ts +0 -3
- package/dist/src/textareaField/index.d.ts.map +0 -1
- package/dist/src/textareaField/index.js +0 -1
- package/dist/src/textareaField/textareaField.d.ts.map +0 -1
- package/dist/src/topBar/barHeight.d.ts.map +0 -1
- package/dist/src/topBar/index.d.ts +0 -4
- package/dist/src/topBar/index.d.ts.map +0 -1
- package/dist/src/topBar/index.js +0 -2
- package/dist/src/topBar/topBar.d.ts.map +0 -1
- package/dist/src/videoFrame/index.d.ts +0 -3
- package/dist/src/videoFrame/index.d.ts.map +0 -1
- package/dist/src/videoFrame/index.js +0 -1
- package/dist/src/videoFrame/videoFrame.d.ts.map +0 -1
- package/src/audioFrame/index.ts +0 -2
- package/src/barChart/index.ts +0 -2
- package/src/chartTable/chartTable.ts +0 -88
- package/src/codeEditor/index.ts +0 -2
- package/src/codeSurface/index.ts +0 -2
- package/src/dropZone/index.ts +0 -2
- package/src/emptyState/index.ts +0 -2
- package/src/errorSummary/index.ts +0 -2
- package/src/fieldGrid/index.ts +0 -2
- package/src/fileTree/index.ts +0 -2
- package/src/filterChip/index.ts +0 -2
- package/src/filterStrip/index.ts +0 -2
- package/src/flashWord/index.ts +0 -2
- package/src/iconButton/index.ts +0 -2
- package/src/imageFrame/index.ts +0 -2
- package/src/keyHint/index.ts +0 -3
- package/src/lineChart/index.ts +0 -2
- package/src/lineDiff/diff.ts +0 -182
- package/src/lineDiff/index.ts +0 -4
- package/src/linkButton/index.ts +0 -2
- package/src/linkState/index.ts +0 -2
- package/src/liveRegion/index.ts +0 -2
- package/src/navStrip/index.ts +0 -2
- package/src/pageHead/index.ts +0 -2
- package/src/passwordField/index.ts +0 -2
- package/src/propsList/index.ts +0 -2
- package/src/queryChip/index.ts +0 -2
- package/src/selectAll/index.ts +0 -2
- package/src/skipLink/index.ts +0 -1
- package/src/statusBar/index.ts +0 -3
- package/src/textButton/index.ts +0 -2
- package/src/textareaField/index.ts +0 -2
- package/src/topBar/index.ts +0 -3
- package/src/videoFrame/index.ts +0 -2
package/src/pixel-paper.css
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
|
-
/* pixel paper: base elements and every component class, built on the tokens only.
|
|
2
|
-
Components render exactly this markup; DESIGN.md documents it for use without Foldkit. */
|
|
3
|
-
|
|
4
1
|
@import "./tokens.css";
|
|
5
2
|
|
|
6
|
-
/* ---------- base ---------- */
|
|
7
|
-
|
|
8
3
|
* {
|
|
9
4
|
margin: 0;
|
|
10
5
|
padding: 0;
|
|
11
6
|
box-sizing: border-box;
|
|
12
7
|
}
|
|
13
8
|
|
|
14
|
-
/* anchors land 16px clear of the sticky top bar, at the height TopBar measures it to be
|
|
15
|
-
however it wraps; without Foldkit, at one line's height. A status bar along the bottom is
|
|
16
|
-
kept clear the same way: the page ends above it, and so does a scrolled-to anchor. The
|
|
17
|
-
measured heights are written inline on <html>, over these */
|
|
18
9
|
:root {
|
|
19
10
|
--topbar-h: 48px;
|
|
20
11
|
--statusbar-h: 0px;
|
|
@@ -87,7 +78,6 @@ kbd {
|
|
|
87
78
|
display: inline-block;
|
|
88
79
|
vertical-align: -1px;
|
|
89
80
|
flex: none;
|
|
90
|
-
/* the grid is pixels: never let the rasterizer soften a cell edge */
|
|
91
81
|
shape-rendering: crispedges;
|
|
92
82
|
}
|
|
93
83
|
|
|
@@ -124,10 +114,6 @@ kbd {
|
|
|
124
114
|
display: none !important;
|
|
125
115
|
}
|
|
126
116
|
|
|
127
|
-
/* ---------- hit areas: every target at least 24px square ---------- */
|
|
128
|
-
|
|
129
|
-
/* a control drawn smaller than 24px (a tab, a filter chip, a mark, a text button, a crumb)
|
|
130
|
-
keeps its look and takes the pointer over an invisible 24px square centred on it */
|
|
131
117
|
:is(
|
|
132
118
|
.nav.tabs button,
|
|
133
119
|
.switch > button,
|
|
@@ -162,7 +148,6 @@ kbd {
|
|
|
162
148
|
translate: -50% -50%;
|
|
163
149
|
}
|
|
164
150
|
|
|
165
|
-
/* an icon button never gives up its 24px square to a full line; a tag beside it clips first */
|
|
166
151
|
.iconbtn {
|
|
167
152
|
flex: none;
|
|
168
153
|
}
|
|
@@ -172,7 +157,6 @@ kbd {
|
|
|
172
157
|
min-width: 0;
|
|
173
158
|
}
|
|
174
159
|
|
|
175
|
-
/* a clickable tag clips its words inside, so its hit square is not clipped with them */
|
|
176
160
|
button.tag:has(> span) {
|
|
177
161
|
overflow: visible;
|
|
178
162
|
}
|
|
@@ -183,8 +167,6 @@ button.tag > span {
|
|
|
183
167
|
text-overflow: ellipsis;
|
|
184
168
|
}
|
|
185
169
|
|
|
186
|
-
/* ---------- registers ---------- */
|
|
187
|
-
|
|
188
170
|
.label {
|
|
189
171
|
font-family: var(--font-px);
|
|
190
172
|
font-size: var(--type-label);
|
|
@@ -225,12 +207,6 @@ button.tag > span {
|
|
|
225
207
|
max-width: 46ch;
|
|
226
208
|
}
|
|
227
209
|
|
|
228
|
-
/* ---------- layout: stack, group, wrap ---------- */
|
|
229
|
-
|
|
230
|
-
/* Space between components, and nothing else: no paper, border or shadow. A stack is a
|
|
231
|
-
column whose children take its width (s, m or l apart; m by default); a group is one line
|
|
232
|
-
centred on its cross axis that never wraps (s apart); a wrap is a line that wraps, for
|
|
233
|
-
buttons and chips (s apart). */
|
|
234
210
|
.stack {
|
|
235
211
|
display: grid;
|
|
236
212
|
align-content: start;
|
|
@@ -253,7 +229,6 @@ button.tag > span {
|
|
|
253
229
|
min-width: 0;
|
|
254
230
|
}
|
|
255
231
|
|
|
256
|
-
/* a wide table or a long line scrolls inside its own box, never widening the stack */
|
|
257
232
|
.stack > *,
|
|
258
233
|
.group > * {
|
|
259
234
|
min-width: 0;
|
|
@@ -271,8 +246,6 @@ button.tag > span {
|
|
|
271
246
|
gap: var(--space-l);
|
|
272
247
|
}
|
|
273
248
|
|
|
274
|
-
/* ---------- the page head: a working screen's name, its count and its actions ---------- */
|
|
275
|
-
|
|
276
249
|
.page-head {
|
|
277
250
|
display: flex;
|
|
278
251
|
flex-wrap: wrap;
|
|
@@ -299,7 +272,6 @@ button.tag > span {
|
|
|
299
272
|
overflow-wrap: anywhere;
|
|
300
273
|
}
|
|
301
274
|
|
|
302
|
-
/* on the dithered ground muted ink is too faint: the count prints in ink */
|
|
303
275
|
.page-head .meta {
|
|
304
276
|
font-size: var(--type-state);
|
|
305
277
|
color: var(--ink);
|
|
@@ -318,9 +290,6 @@ button.tag > span {
|
|
|
318
290
|
}
|
|
319
291
|
}
|
|
320
292
|
|
|
321
|
-
/* ---------- top bar ---------- */
|
|
322
|
-
|
|
323
|
-
/* the rail and the stage hang from the bar's lower edge, whatever its height */
|
|
324
293
|
.topbar {
|
|
325
294
|
anchor-name: --topbar;
|
|
326
295
|
position: sticky;
|
|
@@ -346,9 +315,6 @@ button.tag > span {
|
|
|
346
315
|
white-space: nowrap;
|
|
347
316
|
}
|
|
348
317
|
|
|
349
|
-
/* the block cursor, blinking in whole steps: after a word that is busy (a button, a
|
|
350
|
-
chip, the connection word, a loading line), and four times after the wordmark. Each
|
|
351
|
-
place sets only its size */
|
|
352
318
|
.cursor {
|
|
353
319
|
display: inline-block;
|
|
354
320
|
width: 6px;
|
|
@@ -378,8 +344,6 @@ button.tag > span {
|
|
|
378
344
|
flex: 1;
|
|
379
345
|
}
|
|
380
346
|
|
|
381
|
-
/* the right-hand tools wrap as one group, never one control per line; a group wider than the
|
|
382
|
-
window wraps onto lines of its own, at the right */
|
|
383
347
|
.topbar-tools {
|
|
384
348
|
display: flex;
|
|
385
349
|
flex-wrap: wrap;
|
|
@@ -417,7 +381,6 @@ button.tag > span {
|
|
|
417
381
|
color: var(--muted);
|
|
418
382
|
}
|
|
419
383
|
|
|
420
|
-
/* the link dropped and is coming back: a warning, on amber, until it holds or gives up */
|
|
421
384
|
.link-state.reconnecting {
|
|
422
385
|
padding: 2px 6px;
|
|
423
386
|
color: var(--on-status);
|
|
@@ -445,8 +408,6 @@ a.textbtn {
|
|
|
445
408
|
border-bottom-color: var(--ink);
|
|
446
409
|
}
|
|
447
410
|
|
|
448
|
-
/* ---------- nav and tabs: one ink-bordered strip of segments ---------- */
|
|
449
|
-
|
|
450
411
|
.nav {
|
|
451
412
|
display: flex;
|
|
452
413
|
gap: 0;
|
|
@@ -455,7 +416,6 @@ a.textbtn {
|
|
|
455
416
|
border: var(--line) solid var(--ink);
|
|
456
417
|
}
|
|
457
418
|
|
|
458
|
-
/* tabs at the top of a flush panel sit inside its padding */
|
|
459
419
|
.panel > .tabbed > .nav.tabs {
|
|
460
420
|
margin: var(--pad) var(--pad) 0;
|
|
461
421
|
}
|
|
@@ -475,7 +435,6 @@ a.textbtn {
|
|
|
475
435
|
white-space: nowrap;
|
|
476
436
|
}
|
|
477
437
|
|
|
478
|
-
/* every segment after the first (the element rules above would otherwise remove it) */
|
|
479
438
|
.nav > :is(a, button) + :is(a, button) {
|
|
480
439
|
border-left: var(--line) solid var(--ink);
|
|
481
440
|
}
|
|
@@ -487,7 +446,6 @@ a.textbtn {
|
|
|
487
446
|
color: var(--paper);
|
|
488
447
|
}
|
|
489
448
|
|
|
490
|
-
/* --on-head remains readable on plain and inverted segments. */
|
|
491
449
|
.nav .navnum {
|
|
492
450
|
display: inline-block;
|
|
493
451
|
margin-left: 8px;
|
|
@@ -502,7 +460,6 @@ a.textbtn {
|
|
|
502
460
|
font-size: var(--type-state);
|
|
503
461
|
}
|
|
504
462
|
|
|
505
|
-
/* a phone keeps every segment on one strip: tighter pads, never a horizontal scroll */
|
|
506
463
|
@media (max-width: 600px) {
|
|
507
464
|
.nav a,
|
|
508
465
|
.nav button {
|
|
@@ -514,9 +471,6 @@ a.textbtn {
|
|
|
514
471
|
margin-left: 5px;
|
|
515
472
|
}
|
|
516
473
|
|
|
517
|
-
/* the phone bar: wordmark and tools on one line, the page nav as a full-width strip
|
|
518
|
-
under them. Where the two do not fit side by side the tools wrap under the wordmark,
|
|
519
|
-
which never clips. Every tool stays: a session action may have nowhere else to live */
|
|
520
474
|
.topbar {
|
|
521
475
|
gap: 8px 12px;
|
|
522
476
|
padding: 8px 12px;
|
|
@@ -538,8 +492,6 @@ a.textbtn {
|
|
|
538
492
|
}
|
|
539
493
|
}
|
|
540
494
|
|
|
541
|
-
/* ---------- places: a column of places to go, the one you are in inverted ---------- */
|
|
542
|
-
|
|
543
495
|
.places ul {
|
|
544
496
|
list-style: none;
|
|
545
497
|
}
|
|
@@ -575,7 +527,6 @@ a.textbtn {
|
|
|
575
527
|
cursor: pointer;
|
|
576
528
|
}
|
|
577
529
|
|
|
578
|
-
/* the ring sits inside the line, so the panel's edge never cuts it */
|
|
579
530
|
.places li > :is(a, button):focus-visible {
|
|
580
531
|
outline-offset: -4px;
|
|
581
532
|
}
|
|
@@ -612,8 +563,6 @@ a.textbtn {
|
|
|
612
563
|
outline-color: var(--paper);
|
|
613
564
|
}
|
|
614
565
|
|
|
615
|
-
/* ---------- buttons ---------- */
|
|
616
|
-
|
|
617
566
|
.btn {
|
|
618
567
|
font-family: var(--font-px);
|
|
619
568
|
font-size: var(--type-control);
|
|
@@ -676,14 +625,10 @@ a.textbtn {
|
|
|
676
625
|
color: var(--paper);
|
|
677
626
|
}
|
|
678
627
|
|
|
679
|
-
/* One ring at a time: once the action bar holds focus anywhere, focus carries the ring;
|
|
680
|
-
the resting default falls back to the plain print shadow so the ring visibly moves. */
|
|
681
628
|
.card-actions:focus-within .btn.default-ring:not(:focus) {
|
|
682
629
|
box-shadow: var(--shadow-button);
|
|
683
630
|
}
|
|
684
631
|
|
|
685
|
-
/* a held default that does not hold focus (a confirm's cancel while its delete runs) prints
|
|
686
|
-
as every held button, with no ring and no shadow; its margin stays, so nothing moves */
|
|
687
632
|
.btn.default-ring[aria-disabled="true"]:not(:focus),
|
|
688
633
|
.card-actions:focus-within .btn.default-ring[aria-disabled="true"]:not(:focus) {
|
|
689
634
|
box-shadow: none;
|
|
@@ -700,8 +645,6 @@ a.textbtn {
|
|
|
700
645
|
box-shadow: none;
|
|
701
646
|
}
|
|
702
647
|
|
|
703
|
-
/* red at rest is reserved: .danger is the commit button inside a confirm card, never a
|
|
704
|
-
row or form action. Rows carry neutral buttons; the confirm card turns them red */
|
|
705
648
|
.btn.danger {
|
|
706
649
|
color: var(--red);
|
|
707
650
|
border-color: var(--red);
|
|
@@ -733,7 +676,6 @@ a.textbtn {
|
|
|
733
676
|
color: var(--ink);
|
|
734
677
|
}
|
|
735
678
|
|
|
736
|
-
/* the key that does the same, small after the words, in the button's own colour */
|
|
737
679
|
.btn .key-hint {
|
|
738
680
|
margin-left: var(--space-s);
|
|
739
681
|
font-family: var(--font-px);
|
|
@@ -743,10 +685,6 @@ a.textbtn {
|
|
|
743
685
|
opacity: 0.65;
|
|
744
686
|
}
|
|
745
687
|
|
|
746
|
-
/* ---------- buttons: busy and done ---------- */
|
|
747
|
-
|
|
748
|
-
/* busy: the working cursor prints in the right padding, one cell after the label, so going
|
|
749
|
-
busy moves nothing and the button keeps its width */
|
|
750
688
|
.btn {
|
|
751
689
|
position: relative;
|
|
752
690
|
}
|
|
@@ -764,9 +702,6 @@ a.textbtn {
|
|
|
764
702
|
height: 9px;
|
|
765
703
|
}
|
|
766
704
|
|
|
767
|
-
/* done: the work went (a form sent). Ink, as the ok notice's glyph box is, because success
|
|
768
|
-
is not a status colour and never green; flat and still, because nothing is left to press.
|
|
769
|
-
The check takes the glyph's place and both words share one cell, so the width holds */
|
|
770
705
|
.btn.done[aria-disabled="true"] {
|
|
771
706
|
color: var(--paper);
|
|
772
707
|
background: var(--ink);
|
|
@@ -786,8 +721,6 @@ a.textbtn {
|
|
|
786
721
|
visibility: hidden;
|
|
787
722
|
}
|
|
788
723
|
|
|
789
|
-
/* ---------- menus: one printed slip under its toggle ---------- */
|
|
790
|
-
|
|
791
724
|
/* hung under its toggle by @foldkit/ui's Anchor, which positions it and flips it near the
|
|
792
725
|
window edge, in the page's top layer (inside the open dialog when there is one). Anchor
|
|
793
726
|
writes left and top for an absolute box (fixed it sets itself, under a fixed toggle), so
|
|
@@ -809,7 +742,6 @@ a.textbtn {
|
|
|
809
742
|
position: relative;
|
|
810
743
|
}
|
|
811
744
|
|
|
812
|
-
/* a context menu hangs from the pointer; ContextMenu keeps it inside the window */
|
|
813
745
|
.menu.at-point {
|
|
814
746
|
position: fixed;
|
|
815
747
|
}
|
|
@@ -843,8 +775,6 @@ a.textbtn {
|
|
|
843
775
|
background: var(--head);
|
|
844
776
|
}
|
|
845
777
|
|
|
846
|
-
/* unavailable: printed muted, no hover, still reached by the arrows (its ring shows where
|
|
847
|
-
the keyboard is). The item in force keeps its inversion below */
|
|
848
778
|
.menu [role^="menuitem"][aria-disabled="true"] {
|
|
849
779
|
color: var(--muted);
|
|
850
780
|
cursor: default;
|
|
@@ -869,7 +799,9 @@ a.textbtn {
|
|
|
869
799
|
color: var(--muted);
|
|
870
800
|
}
|
|
871
801
|
|
|
872
|
-
.menu
|
|
802
|
+
.menu
|
|
803
|
+
:is([aria-current="page"], [role="menuitemradio"][aria-checked="true"])
|
|
804
|
+
.key-hint {
|
|
873
805
|
color: inherit;
|
|
874
806
|
opacity: var(--fade-on-ink);
|
|
875
807
|
}
|
|
@@ -893,7 +825,6 @@ a.textbtn {
|
|
|
893
825
|
background: var(--ink);
|
|
894
826
|
}
|
|
895
827
|
|
|
896
|
-
/* a sentence, not a label: sans, sentence case, one quiet line; a group's heading too */
|
|
897
828
|
.menu .menu-note {
|
|
898
829
|
display: block;
|
|
899
830
|
padding: 7px 12px;
|
|
@@ -913,12 +844,10 @@ a.textbtn {
|
|
|
913
844
|
gap: var(--gap);
|
|
914
845
|
}
|
|
915
846
|
|
|
916
|
-
/* grid items must never let min-content widen a panel past the deck */
|
|
917
847
|
.deck > * {
|
|
918
848
|
min-width: 0;
|
|
919
849
|
}
|
|
920
850
|
|
|
921
|
-
/* a sheet takes a panel's place on the page, so it prints as one */
|
|
922
851
|
.panel,
|
|
923
852
|
.sheet {
|
|
924
853
|
background: var(--paper);
|
|
@@ -974,29 +903,20 @@ a.textbtn {
|
|
|
974
903
|
margin-left: auto;
|
|
975
904
|
}
|
|
976
905
|
|
|
977
|
-
/* a notice in a foot takes the whole line */
|
|
978
906
|
.panel-foot > .notice {
|
|
979
907
|
flex: 1 1 100%;
|
|
980
908
|
}
|
|
981
909
|
|
|
982
|
-
/* the shelf: a strip on the head tint under the bar, for a field that picks what the body
|
|
983
|
-
shows */
|
|
984
910
|
.panel-shelf {
|
|
985
911
|
padding: 10px 12px 12px;
|
|
986
912
|
background: var(--head);
|
|
987
913
|
border-bottom: var(--hair) solid var(--rule);
|
|
988
914
|
}
|
|
989
915
|
|
|
990
|
-
/* on the head tint a field's label takes on-head: muted misses AA there */
|
|
991
916
|
.panel-shelf :is(.field > label:not(.choice), .field-label) {
|
|
992
917
|
color: var(--on-head);
|
|
993
918
|
}
|
|
994
919
|
|
|
995
|
-
/* ---------- the panel's title-bar lead and actions ---------- */
|
|
996
|
-
|
|
997
|
-
/* small buttons and icon buttons at the bar's right end, and an icon button before the
|
|
998
|
-
title; the bar trims its padding around them, as a window's does, so a small button keeps
|
|
999
|
-
the bar near its one-line height */
|
|
1000
920
|
.panel-tb:has(> :is(.panel-lead, .panel-acts)) {
|
|
1001
921
|
align-items: center;
|
|
1002
922
|
padding-block: 3px;
|
|
@@ -1025,13 +945,10 @@ a.textbtn {
|
|
|
1025
945
|
flex: none;
|
|
1026
946
|
}
|
|
1027
947
|
|
|
1028
|
-
/* a meta keeps its place right of the title, before the actions */
|
|
1029
948
|
.panel-tb:has(> .panel-acts) > .meta {
|
|
1030
949
|
margin-left: 0;
|
|
1031
950
|
}
|
|
1032
951
|
|
|
1033
|
-
/* on the ink bar a button prints in paper: an outline, or filled when primary. No print
|
|
1034
|
-
shadow (it cannot show on ink), so a press nudges 1px, as a toolbar tool does */
|
|
1035
952
|
.panel-lead .btn,
|
|
1036
953
|
.panel-acts .btn {
|
|
1037
954
|
color: var(--paper);
|
|
@@ -1058,22 +975,17 @@ a.textbtn {
|
|
|
1058
975
|
opacity: var(--fade-held);
|
|
1059
976
|
}
|
|
1060
977
|
|
|
1061
|
-
/* a quiet icon button prints in paper, and a hover cannot darken it to the ink of the bar */
|
|
1062
978
|
.panel-lead .iconbtn.quiet,
|
|
1063
979
|
.panel-acts .iconbtn.quiet {
|
|
1064
980
|
color: inherit;
|
|
1065
981
|
}
|
|
1066
982
|
|
|
1067
|
-
/* the ring sits 4px inside the button in its own text colour, so it reads on an outline and
|
|
1068
|
-
on a filled one alike */
|
|
1069
983
|
.panel-lead .btn:focus-visible,
|
|
1070
984
|
.panel-acts .btn:focus-visible {
|
|
1071
985
|
outline-color: currentColor;
|
|
1072
986
|
outline-offset: -4px;
|
|
1073
987
|
}
|
|
1074
988
|
|
|
1075
|
-
/* ---------- the filter strip ---------- */
|
|
1076
|
-
|
|
1077
989
|
.strip {
|
|
1078
990
|
display: flex;
|
|
1079
991
|
align-items: center;
|
|
@@ -1158,7 +1070,6 @@ button.fchip:active {
|
|
|
1158
1070
|
color: var(--paper);
|
|
1159
1071
|
}
|
|
1160
1072
|
|
|
1161
|
-
/* inverted, the name prints in paper like its value: a faded paper misses AA on plum */
|
|
1162
1073
|
.fchip.pinned .fchip-name,
|
|
1163
1074
|
.fchip[aria-pressed="true"] .fchip-name {
|
|
1164
1075
|
color: inherit;
|
|
@@ -1173,8 +1084,6 @@ button.fchip:active {
|
|
|
1173
1084
|
background: var(--head);
|
|
1174
1085
|
}
|
|
1175
1086
|
|
|
1176
|
-
/* the input lies above the chip's hit square (in the chip's own stacking context), so a press
|
|
1177
|
-
in it places the caret or selects; the rest of the square is the label's, which focuses it */
|
|
1178
1087
|
.fchip.query input {
|
|
1179
1088
|
position: relative;
|
|
1180
1089
|
z-index: 1;
|
|
@@ -1212,8 +1121,6 @@ button.fchip:active {
|
|
|
1212
1121
|
border-color: var(--ink);
|
|
1213
1122
|
}
|
|
1214
1123
|
|
|
1215
|
-
/* ---------- chips ---------- */
|
|
1216
|
-
|
|
1217
1124
|
.chip {
|
|
1218
1125
|
font-family: var(--font-px);
|
|
1219
1126
|
font-size: var(--type-state);
|
|
@@ -1232,7 +1139,6 @@ button.fchip:active {
|
|
|
1232
1139
|
color: var(--on-status);
|
|
1233
1140
|
}
|
|
1234
1141
|
|
|
1235
|
-
/* amber: a warning the row carries (an update waiting, a source behind) */
|
|
1236
1142
|
.chip.warn {
|
|
1237
1143
|
background: var(--amber);
|
|
1238
1144
|
color: var(--on-status);
|
|
@@ -1249,11 +1155,6 @@ button.fchip:active {
|
|
|
1249
1155
|
border-color: var(--muted);
|
|
1250
1156
|
}
|
|
1251
1157
|
|
|
1252
|
-
/* a chip as a cell, where its word would take a title's room: a 10px square, hollow where the
|
|
1253
|
-
chip is plain and filled where it has a tone, so plain and toned differ by form, not hue.
|
|
1254
|
-
Blocked fills red, where the chip only outlines it, and done fills muted, where the chip only
|
|
1255
|
-
tints, since neither an outline nor a tint reads in a 6px cell. Its word is its name and its
|
|
1256
|
-
tip. In a row it keeps the 18px of the glyph cell it stands in */
|
|
1257
1158
|
.chip-dot {
|
|
1258
1159
|
display: inline-block;
|
|
1259
1160
|
flex: none;
|
|
@@ -1286,7 +1187,6 @@ button.fchip:active {
|
|
|
1286
1187
|
margin-inline: 4px;
|
|
1287
1188
|
}
|
|
1288
1189
|
|
|
1289
|
-
/* Black on amber preserves 3:1 contrast; an amber glyph on paper does not. */
|
|
1290
1190
|
.mark {
|
|
1291
1191
|
display: inline-flex;
|
|
1292
1192
|
align-items: center;
|
|
@@ -1302,7 +1202,6 @@ button.mark {
|
|
|
1302
1202
|
cursor: pointer;
|
|
1303
1203
|
}
|
|
1304
1204
|
|
|
1305
|
-
/* where every row is marked the mark prints plain: amber is for the one among many */
|
|
1306
1205
|
.mark.plain {
|
|
1307
1206
|
background: none;
|
|
1308
1207
|
color: var(--muted);
|
|
@@ -1333,8 +1232,6 @@ button.tag:hover {
|
|
|
1333
1232
|
border-color: var(--muted);
|
|
1334
1233
|
}
|
|
1335
1234
|
|
|
1336
|
-
/* ---------- rows and the outline ---------- */
|
|
1337
|
-
|
|
1338
1235
|
.rows {
|
|
1339
1236
|
list-style: none;
|
|
1340
1237
|
}
|
|
@@ -1343,7 +1240,6 @@ button.tag:hover {
|
|
|
1343
1240
|
padding: 8px 0 14px;
|
|
1344
1241
|
}
|
|
1345
1242
|
|
|
1346
|
-
/* nested lists indent 26px and hang on a 1px rule guide */
|
|
1347
1243
|
.tree ul.rows {
|
|
1348
1244
|
position: relative;
|
|
1349
1245
|
padding-left: 26px;
|
|
@@ -1368,7 +1264,6 @@ button.tag:hover {
|
|
|
1368
1264
|
min-height: var(--row);
|
|
1369
1265
|
}
|
|
1370
1266
|
|
|
1371
|
-
/* background-color, not background: hover must not wipe the inline indent guides */
|
|
1372
1267
|
.row:hover,
|
|
1373
1268
|
.row:focus-within {
|
|
1374
1269
|
background-color: var(--head);
|
|
@@ -1395,8 +1290,6 @@ button.glyph {
|
|
|
1395
1290
|
color: var(--ink);
|
|
1396
1291
|
}
|
|
1397
1292
|
|
|
1398
|
-
/* the text clips, but 4px of room inside the clip (given back by the margin, so nothing moves)
|
|
1399
|
-
lets a title's ring, 2px out and 2px wide, print whole */
|
|
1400
1293
|
.row .grow {
|
|
1401
1294
|
flex: 1;
|
|
1402
1295
|
min-width: 0;
|
|
@@ -1407,7 +1300,6 @@ button.glyph {
|
|
|
1407
1300
|
margin: -4px;
|
|
1408
1301
|
}
|
|
1409
1302
|
|
|
1410
|
-
/* the title opens the record; the pencil renames */
|
|
1411
1303
|
.row .title {
|
|
1412
1304
|
font: inherit;
|
|
1413
1305
|
background: none;
|
|
@@ -1427,13 +1319,10 @@ button.glyph {
|
|
|
1427
1319
|
text-underline-offset: 3px;
|
|
1428
1320
|
}
|
|
1429
1321
|
|
|
1430
|
-
/* held while work runs: the words stay as they are, only the press and the underline go */
|
|
1431
1322
|
.board-card .title[aria-disabled="true"] {
|
|
1432
1323
|
cursor: default;
|
|
1433
1324
|
}
|
|
1434
1325
|
|
|
1435
|
-
/* stays in layout so hover never reflows the row; dims instead of hiding.
|
|
1436
|
-
0.55 keeps the icons above the 3:1 UI-component contrast floor */
|
|
1437
1326
|
.row .tools {
|
|
1438
1327
|
display: inline-flex;
|
|
1439
1328
|
align-items: center;
|
|
@@ -1446,8 +1335,6 @@ button.glyph {
|
|
|
1446
1335
|
opacity: 1;
|
|
1447
1336
|
}
|
|
1448
1337
|
|
|
1449
|
-
/* a treegrid's own cells around the parts the caller gives (the glyph, the actions): they hold
|
|
1450
|
-
their parts as the row would, so a row lays out the same in a treegrid or out of one */
|
|
1451
1338
|
.row > .cell {
|
|
1452
1339
|
display: inline-flex;
|
|
1453
1340
|
align-items: center;
|
|
@@ -1469,10 +1356,6 @@ button.glyph {
|
|
|
1469
1356
|
gap: 6px;
|
|
1470
1357
|
}
|
|
1471
1358
|
|
|
1472
|
-
/* a row whose box is its link's target: the link's ::after covers the row (the row places it;
|
|
1473
|
-
the text's clip does not, being no containing block). Only the row's controls and what has a
|
|
1474
|
-
tip sit above it, so a menu stays its own target and a dot's tip still shows, while a chip or
|
|
1475
|
-
a due day is the link's like the rest of the row */
|
|
1476
1359
|
.row.linked .grow a {
|
|
1477
1360
|
color: inherit;
|
|
1478
1361
|
text-decoration: none;
|
|
@@ -1494,7 +1377,6 @@ button.glyph {
|
|
|
1494
1377
|
text-underline-offset: 3px;
|
|
1495
1378
|
}
|
|
1496
1379
|
|
|
1497
|
-
/* the keyboard's one stop is the link; its ring is the row's, 4px inside it */
|
|
1498
1380
|
.row.linked .grow a:focus-visible {
|
|
1499
1381
|
outline: 0;
|
|
1500
1382
|
}
|
|
@@ -1504,11 +1386,7 @@ button.glyph {
|
|
|
1504
1386
|
outline-offset: -4px;
|
|
1505
1387
|
}
|
|
1506
1388
|
|
|
1507
|
-
/*
|
|
1508
|
-
a place does and as the system marks the one current thing: hover adds nothing, what prints
|
|
1509
|
-
muted on paper prints in paper at --fade-on-ink, as a title bar's meta does, chips, marks
|
|
1510
|
-
and buttons keep their own fills, and a ring inside prints in paper. Each selector is
|
|
1511
|
-
written out, not joined in :is(), so each keeps its own specificity */
|
|
1389
|
+
/* each selector is written out, not joined in :is(), so each keeps its own specificity */
|
|
1512
1390
|
.row.linked:has(.grow a[aria-current]),
|
|
1513
1391
|
.board-card[aria-current="true"] {
|
|
1514
1392
|
background-color: var(--ink);
|
|
@@ -1519,8 +1397,10 @@ button.glyph {
|
|
|
1519
1397
|
border-color: var(--paper);
|
|
1520
1398
|
}
|
|
1521
1399
|
|
|
1522
|
-
.row.linked:has(.grow a[aria-current])
|
|
1523
|
-
|
|
1400
|
+
.row.linked:has(.grow a[aria-current])
|
|
1401
|
+
:is(.glyph, .age, .due, .tag, .done-title, .iconbtn.quiet),
|
|
1402
|
+
.board-card[aria-current="true"]
|
|
1403
|
+
:is(.glyph, .age, .due, .tag, .done-title, .iconbtn.quiet) {
|
|
1524
1404
|
color: inherit;
|
|
1525
1405
|
opacity: var(--fade-on-ink);
|
|
1526
1406
|
}
|
|
@@ -1530,7 +1410,6 @@ button.glyph {
|
|
|
1530
1410
|
border-color: currentColor;
|
|
1531
1411
|
}
|
|
1532
1412
|
|
|
1533
|
-
/* lateness cannot be red on ink: it takes a red slip, drawn by a spread so nothing moves */
|
|
1534
1413
|
.row.linked:has(.grow a[aria-current]) :is(.due.late, .age.stale),
|
|
1535
1414
|
.board-card[aria-current="true"] :is(.due.late, .age.stale) {
|
|
1536
1415
|
opacity: 1;
|
|
@@ -1545,14 +1424,6 @@ button.glyph {
|
|
|
1545
1424
|
outline-color: var(--paper);
|
|
1546
1425
|
}
|
|
1547
1426
|
|
|
1548
|
-
/* the cursor: the one row (or board card) the keyboard's commands act on. It is not focus
|
|
1549
|
-
(the ring, which can be elsewhere) and not selection (the box's cell).
|
|
1550
|
-
|
|
1551
|
-
A list's cursor row is drawn, not filled: a 1px muted line 4px inside the row, so it follows
|
|
1552
|
-
the indent of a nested row and never leaves the panel. The row keeps its own colours and
|
|
1553
|
-
no fill at all, not even the hover or focus tint other rows take. Focus on the row itself
|
|
1554
|
-
thickens that same line to 2px: one line inside the row, never a second ring outside it.
|
|
1555
|
-
Controls and fields in the row keep their own ring and surface. */
|
|
1556
1427
|
.row[aria-current="true"] {
|
|
1557
1428
|
outline: 1px solid var(--muted);
|
|
1558
1429
|
outline-offset: -4px;
|
|
@@ -1568,8 +1439,6 @@ button.glyph {
|
|
|
1568
1439
|
opacity: 1;
|
|
1569
1440
|
}
|
|
1570
1441
|
|
|
1571
|
-
/* a phone has no room for the hover tools; the detail card carries every edit. Titles
|
|
1572
|
-
wrap to a second line instead of clipping to a few characters beside the chips */
|
|
1573
1442
|
@media (max-width: 600px) {
|
|
1574
1443
|
.row .tools {
|
|
1575
1444
|
display: none;
|
|
@@ -1592,10 +1461,6 @@ button.glyph {
|
|
|
1592
1461
|
}
|
|
1593
1462
|
}
|
|
1594
1463
|
|
|
1595
|
-
/* ---------- selectable rows and the select-all head ---------- */
|
|
1596
|
-
|
|
1597
|
-
/* the box's cell: the row's full height at its left edge, all of it the box's target. The
|
|
1598
|
-
text beside it is the box's label, so a click there toggles too */
|
|
1599
1464
|
.row-check {
|
|
1600
1465
|
position: relative;
|
|
1601
1466
|
align-self: stretch;
|
|
@@ -1606,8 +1471,6 @@ button.glyph {
|
|
|
1606
1471
|
padding: 0 10px;
|
|
1607
1472
|
}
|
|
1608
1473
|
|
|
1609
|
-
/* the box: a role="checkbox" button printed as a choice's box is, with the same 6px mark
|
|
1610
|
-
painted only when checked */
|
|
1611
1474
|
.row-check > [role="checkbox"] {
|
|
1612
1475
|
appearance: none;
|
|
1613
1476
|
width: 14px;
|
|
@@ -1628,7 +1491,6 @@ button.glyph {
|
|
|
1628
1491
|
height: 6px;
|
|
1629
1492
|
}
|
|
1630
1493
|
|
|
1631
|
-
/* a press anywhere in the cell lands on the box */
|
|
1632
1494
|
.row-check > [role="checkbox"]::after {
|
|
1633
1495
|
content: "";
|
|
1634
1496
|
position: absolute;
|
|
@@ -1639,11 +1501,6 @@ button.glyph {
|
|
|
1639
1501
|
cursor: pointer;
|
|
1640
1502
|
}
|
|
1641
1503
|
|
|
1642
|
-
/* selected: the box's cell inverts, an ink square at the row's edge with the box printed in
|
|
1643
|
-
paper inside it. Not the whole row: inversion is the system's mark for the one current
|
|
1644
|
-
thing, and a list with half its rows inverted reads as a barcode that buries its titles
|
|
1645
|
-
and chips. A column of ink cells still reads at a glance, as a history's inverted version
|
|
1646
|
-
box does */
|
|
1647
1504
|
.row-check:has(> [aria-checked="true"]) {
|
|
1648
1505
|
background: var(--ink);
|
|
1649
1506
|
}
|
|
@@ -1661,19 +1518,16 @@ button.glyph {
|
|
|
1661
1518
|
outline-color: var(--paper);
|
|
1662
1519
|
}
|
|
1663
1520
|
|
|
1664
|
-
/* a box that cannot be picked (a select-all over an empty list, never checked) prints muted */
|
|
1665
1521
|
.row-check > [aria-disabled="true"] {
|
|
1666
1522
|
border-color: var(--muted);
|
|
1667
1523
|
cursor: default;
|
|
1668
1524
|
}
|
|
1669
1525
|
|
|
1670
|
-
/* mixed: some of the list, not all; a 2px bar across the box's cell */
|
|
1671
1526
|
.row-check > [aria-checked="mixed"]::before {
|
|
1672
1527
|
height: 2px;
|
|
1673
1528
|
background: var(--ink);
|
|
1674
1529
|
}
|
|
1675
1530
|
|
|
1676
|
-
/* the head above a selectable list: the box, the count, and the bulk actions */
|
|
1677
1531
|
.row.bulk {
|
|
1678
1532
|
border-bottom: var(--hair) solid var(--rule);
|
|
1679
1533
|
}
|
|
@@ -1687,7 +1541,8 @@ button.glyph {
|
|
|
1687
1541
|
color: var(--muted);
|
|
1688
1542
|
}
|
|
1689
1543
|
|
|
1690
|
-
.row.bulk:has(> .row-check > :is([aria-checked="true"], [aria-checked="mixed"]))
|
|
1544
|
+
.row.bulk:has(> .row-check > :is([aria-checked="true"], [aria-checked="mixed"]))
|
|
1545
|
+
.bulk-count {
|
|
1691
1546
|
color: var(--ink);
|
|
1692
1547
|
}
|
|
1693
1548
|
|
|
@@ -1698,7 +1553,6 @@ button.glyph {
|
|
|
1698
1553
|
flex: none;
|
|
1699
1554
|
}
|
|
1700
1555
|
|
|
1701
|
-
/* inline editing: the ghost ⇄ input swap must not change the row's height */
|
|
1702
1556
|
input.inline-input {
|
|
1703
1557
|
font: inherit;
|
|
1704
1558
|
color: inherit;
|
|
@@ -1710,7 +1564,6 @@ input.inline-input {
|
|
|
1710
1564
|
height: calc(1lh + 1px);
|
|
1711
1565
|
}
|
|
1712
1566
|
|
|
1713
|
-
/* a write is out: the text holds, muted, until it settles; a refused one keeps it on a red rule */
|
|
1714
1567
|
input.inline-input[aria-busy="true"] {
|
|
1715
1568
|
color: var(--muted);
|
|
1716
1569
|
cursor: progress;
|
|
@@ -1720,9 +1573,6 @@ input.inline-input[aria-invalid="true"] {
|
|
|
1720
1573
|
border-bottom-color: var(--red);
|
|
1721
1574
|
}
|
|
1722
1575
|
|
|
1723
|
-
/* in a row, focus shows as the caret and the rule, not a ring: the rule doubles to 2px, as a
|
|
1724
|
-
field's baseline does, drawn inside the box, so the row keeps its height, and in the rule's
|
|
1725
|
-
own colour, so a refused edit stays red */
|
|
1726
1576
|
.row .grow input.inline-input:focus-visible {
|
|
1727
1577
|
outline: none;
|
|
1728
1578
|
box-shadow: inset 0 -1px 0 var(--ink);
|
|
@@ -1732,7 +1582,6 @@ input.inline-input[aria-invalid="true"] {
|
|
|
1732
1582
|
box-shadow: inset 0 -1px 0 var(--red);
|
|
1733
1583
|
}
|
|
1734
1584
|
|
|
1735
|
-
/* the flash word: a transient confirmation printed beside the action, then gone */
|
|
1736
1585
|
.flash-word {
|
|
1737
1586
|
font-family: var(--font-px);
|
|
1738
1587
|
font-size: var(--type-state);
|
|
@@ -1746,8 +1595,6 @@ input.inline-input[aria-invalid="true"] {
|
|
|
1746
1595
|
display: none;
|
|
1747
1596
|
}
|
|
1748
1597
|
|
|
1749
|
-
/* ---------- selects, checks, radios ---------- */
|
|
1750
|
-
|
|
1751
1598
|
select,
|
|
1752
1599
|
select::picker(select) {
|
|
1753
1600
|
appearance: none;
|
|
@@ -1795,9 +1642,6 @@ select option {
|
|
|
1795
1642
|
cursor: pointer;
|
|
1796
1643
|
}
|
|
1797
1644
|
|
|
1798
|
-
/* a field that cannot change prints its value muted. The boxless one also drops its dotted
|
|
1799
|
-
baseline, the mark of a place to type, so it reads as a value; boxed ones mute their box.
|
|
1800
|
-
The .boxed selector is there for its weight: it out-weighs `.field.boxed input`, below */
|
|
1801
1645
|
.field :is(input, textarea):disabled,
|
|
1802
1646
|
.field.boxed :is(input, textarea):disabled,
|
|
1803
1647
|
select:disabled {
|
|
@@ -1824,8 +1668,6 @@ select:disabled {
|
|
|
1824
1668
|
cursor: pointer;
|
|
1825
1669
|
}
|
|
1826
1670
|
|
|
1827
|
-
/* a radio choice is its option: the whole line is the button, so a press anywhere on it
|
|
1828
|
-
chooses it */
|
|
1829
1671
|
button.choice {
|
|
1830
1672
|
appearance: none;
|
|
1831
1673
|
font: inherit;
|
|
@@ -1853,16 +1695,12 @@ button.choice {
|
|
|
1853
1695
|
gap: 2px;
|
|
1854
1696
|
}
|
|
1855
1697
|
|
|
1856
|
-
/* side by side while they fit, then onto the next line: never off the panel's edge */
|
|
1857
1698
|
.choices.inline {
|
|
1858
1699
|
display: flex;
|
|
1859
1700
|
flex-wrap: wrap;
|
|
1860
1701
|
gap: 2px 24px;
|
|
1861
1702
|
}
|
|
1862
1703
|
|
|
1863
|
-
/* the choice's box: a role="checkbox" button, or the mark inside a role="radio" one, a 14px
|
|
1864
|
-
ink square whose 6px mark exists in both states and is only painted when checked, so the
|
|
1865
|
-
line never bounces on toggle */
|
|
1866
1704
|
.choice-box {
|
|
1867
1705
|
appearance: none;
|
|
1868
1706
|
width: 14px;
|
|
@@ -1884,8 +1722,6 @@ button.choice {
|
|
|
1884
1722
|
height: 6px;
|
|
1885
1723
|
}
|
|
1886
1724
|
|
|
1887
|
-
/* a radio's mark is a diamond: the same cell, turned, so a single choice reads differently
|
|
1888
|
-
from a checkbox at a glance */
|
|
1889
1725
|
.choice[role="radio"] > .choice-box::before {
|
|
1890
1726
|
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
|
|
1891
1727
|
width: 8px;
|
|
@@ -1897,8 +1733,6 @@ button.choice {
|
|
|
1897
1733
|
background: var(--ink);
|
|
1898
1734
|
}
|
|
1899
1735
|
|
|
1900
|
-
/* a failed radio group (the group is aria-invalid, which a radio does not take): each box and
|
|
1901
|
-
its name turn red; the mark inside stays ink */
|
|
1902
1736
|
.choices[aria-invalid="true"] > .choice[role="radio"] > .choice-box {
|
|
1903
1737
|
border-color: var(--red);
|
|
1904
1738
|
}
|
|
@@ -1919,8 +1753,6 @@ button.choice {
|
|
|
1919
1753
|
cursor: default;
|
|
1920
1754
|
}
|
|
1921
1755
|
|
|
1922
|
-
/* ---------- fields ---------- */
|
|
1923
|
-
|
|
1924
1756
|
.field > label:not(.choice),
|
|
1925
1757
|
.field-label {
|
|
1926
1758
|
display: block;
|
|
@@ -1932,7 +1764,6 @@ button.choice {
|
|
|
1932
1764
|
margin-bottom: 4px;
|
|
1933
1765
|
}
|
|
1934
1766
|
|
|
1935
|
-
/* boxless: a dotted muted baseline that becomes solid ink on focus */
|
|
1936
1767
|
.field input,
|
|
1937
1768
|
.field textarea {
|
|
1938
1769
|
width: 100%;
|
|
@@ -1963,7 +1794,6 @@ textarea::-webkit-resizer {
|
|
|
1963
1794
|
padding-bottom: 1px;
|
|
1964
1795
|
}
|
|
1965
1796
|
|
|
1966
|
-
/* the failed field wears red on its own rule and label, not only in the notice above */
|
|
1967
1797
|
.field input[aria-invalid="true"],
|
|
1968
1798
|
.field textarea[aria-invalid="true"] {
|
|
1969
1799
|
border-bottom: 2px solid var(--red);
|
|
@@ -1981,7 +1811,6 @@ textarea::-webkit-resizer {
|
|
|
1981
1811
|
color: var(--muted);
|
|
1982
1812
|
}
|
|
1983
1813
|
|
|
1984
|
-
/* why the field failed, said in red ink under the control and before its help */
|
|
1985
1814
|
.field .field-error {
|
|
1986
1815
|
color: var(--red);
|
|
1987
1816
|
}
|
|
@@ -1992,7 +1821,6 @@ textarea::-webkit-resizer {
|
|
|
1992
1821
|
gap: 12px 16px;
|
|
1993
1822
|
}
|
|
1994
1823
|
|
|
1995
|
-
/* boxed: the field that is the whole job of its row (sign-in, a quick-add field) */
|
|
1996
1824
|
.field.boxed input,
|
|
1997
1825
|
.field.boxed textarea {
|
|
1998
1826
|
border: var(--line) solid var(--ink);
|
|
@@ -2012,7 +1840,6 @@ textarea::-webkit-resizer {
|
|
|
2012
1840
|
padding-bottom: 5px;
|
|
2013
1841
|
}
|
|
2014
1842
|
|
|
2015
|
-
/* a password: the show/hide toggle sits inside the box, at its right end */
|
|
2016
1843
|
.password {
|
|
2017
1844
|
display: grid;
|
|
2018
1845
|
}
|
|
@@ -2031,7 +1858,6 @@ textarea::-webkit-resizer {
|
|
|
2031
1858
|
padding-right: 32px;
|
|
2032
1859
|
}
|
|
2033
1860
|
|
|
2034
|
-
/* a new password's strength: four short cells and its word, under the box */
|
|
2035
1861
|
.field .strength {
|
|
2036
1862
|
display: flex;
|
|
2037
1863
|
align-items: center;
|
|
@@ -2039,9 +1865,6 @@ textarea::-webkit-resizer {
|
|
|
2039
1865
|
margin-top: 6px;
|
|
2040
1866
|
}
|
|
2041
1867
|
|
|
2042
|
-
/* a date is picked like a select: always boxed (Field adds .boxed), a little shorter, in
|
|
2043
|
-
the pixel face. After the boxed rules, so its padding holds when it fails or has focus;
|
|
2044
|
-
its border, red or muted, is theirs */
|
|
2045
1868
|
.field.boxed input[type="date"] {
|
|
2046
1869
|
min-height: 30px;
|
|
2047
1870
|
padding: 3px 8px;
|
|
@@ -2078,9 +1901,6 @@ input.inline-input.title-edit {
|
|
|
2078
1901
|
border-bottom-color: var(--muted);
|
|
2079
1902
|
}
|
|
2080
1903
|
|
|
2081
|
-
/* ---------- notices: one line, a glyph in a box, the product's own words ---------- */
|
|
2082
|
-
|
|
2083
|
-
/* a link or a path in a notice breaks rather than pushing its box wide */
|
|
2084
1904
|
.notice {
|
|
2085
1905
|
white-space: normal;
|
|
2086
1906
|
overflow-wrap: anywhere;
|
|
@@ -2116,8 +1936,6 @@ input.inline-input.title-edit {
|
|
|
2116
1936
|
display: block;
|
|
2117
1937
|
}
|
|
2118
1938
|
|
|
2119
|
-
/* the glyph box a notice, an outcome or a banner opens with, filled in its tone: amber by
|
|
2120
|
-
default */
|
|
2121
1939
|
:is(.notice, .outcome, .banner) > .glyph {
|
|
2122
1940
|
flex: none;
|
|
2123
1941
|
width: 20px;
|
|
@@ -2135,8 +1953,6 @@ input.inline-input.title-edit {
|
|
|
2135
1953
|
border-color: var(--red);
|
|
2136
1954
|
}
|
|
2137
1955
|
|
|
2138
|
-
/* done: a committed change the product wants acknowledged (registered, published). Ink,
|
|
2139
|
-
not green: green means active, and success is not a status */
|
|
2140
1956
|
:is(.notice, .outcome, .banner) > .glyph.ok {
|
|
2141
1957
|
background: var(--ink);
|
|
2142
1958
|
color: var(--paper);
|
|
@@ -2148,20 +1964,14 @@ input.inline-input.title-edit {
|
|
|
2148
1964
|
border-color: var(--rule);
|
|
2149
1965
|
}
|
|
2150
1966
|
|
|
2151
|
-
/* ---------- form errors: the failed field in red, and the summary above the form ---------- */
|
|
2152
|
-
|
|
2153
|
-
/* a failed select: a red box, as a failed boxed field is */
|
|
2154
1967
|
select[aria-invalid="true"] {
|
|
2155
1968
|
border-color: var(--red);
|
|
2156
1969
|
}
|
|
2157
1970
|
|
|
2158
|
-
/* a fieldset holding a failed control turns its legend red, as a field turns its label */
|
|
2159
1971
|
.field:has([aria-invalid="true"]) > legend {
|
|
2160
1972
|
color: var(--red);
|
|
2161
1973
|
}
|
|
2162
1974
|
|
|
2163
|
-
/* the summary: the error notice, its headline, then a link to each failed field */
|
|
2164
|
-
/* links 24px apart, so each keeps its 24px hit square to itself */
|
|
2165
1975
|
.error-summary ul {
|
|
2166
1976
|
list-style: none;
|
|
2167
1977
|
margin-top: 4px;
|
|
@@ -2180,8 +1990,6 @@ select[aria-invalid="true"] {
|
|
|
2180
1990
|
text-decoration-thickness: 2px;
|
|
2181
1991
|
}
|
|
2182
1992
|
|
|
2183
|
-
/* ---------- tables ---------- */
|
|
2184
|
-
|
|
2185
1993
|
.table-wrap {
|
|
2186
1994
|
overflow-x: auto;
|
|
2187
1995
|
}
|
|
@@ -2234,7 +2042,6 @@ select[aria-invalid="true"] {
|
|
|
2234
2042
|
white-space: nowrap;
|
|
2235
2043
|
}
|
|
2236
2044
|
|
|
2237
|
-
/* the actions stay in reach while a wide table scrolls under them */
|
|
2238
2045
|
.table td.acts,
|
|
2239
2046
|
.table:has(td.acts) th:last-child {
|
|
2240
2047
|
position: sticky;
|
|
@@ -2250,7 +2057,6 @@ select[aria-invalid="true"] {
|
|
|
2250
2057
|
background: var(--head);
|
|
2251
2058
|
}
|
|
2252
2059
|
|
|
2253
|
-
/* the pinned column is a printed seam: the rest of the row scrolls under a 2px ink rule */
|
|
2254
2060
|
@media (max-width: 600px) {
|
|
2255
2061
|
/* a box-shadow, not a border: collapsed table borders paint with the table and stay
|
|
2256
2062
|
behind when the cell sticks; the inset shadow travels with the cell */
|
|
@@ -2265,8 +2071,6 @@ select[aria-invalid="true"] {
|
|
|
2265
2071
|
margin-left: 8px;
|
|
2266
2072
|
}
|
|
2267
2073
|
|
|
2268
|
-
/* a stacked table: on a phone each row becomes a block of label and value lines, so a
|
|
2269
|
-
pinned action column never slices through what the row says */
|
|
2270
2074
|
@media (max-width: 600px) {
|
|
2271
2075
|
.table thead {
|
|
2272
2076
|
display: none;
|
|
@@ -2325,14 +2129,12 @@ select[aria-invalid="true"] {
|
|
|
2325
2129
|
text-decoration: line-through;
|
|
2326
2130
|
}
|
|
2327
2131
|
|
|
2328
|
-
/* ---------- properties: label, value, copy ---------- */
|
|
2329
|
-
|
|
2330
|
-
/* cells stretch so every rule in a row meets at one line; each cell centres its own content */
|
|
2331
|
-
/* the action column stands against the longest value, not at the far edge of a wide
|
|
2332
|
-
panel, so a copy button reads as belonging to its value; the rules still run full width */
|
|
2333
2132
|
.props {
|
|
2334
2133
|
display: grid;
|
|
2335
|
-
grid-template-columns: max-content minmax(0, max-content) minmax(
|
|
2134
|
+
grid-template-columns: max-content minmax(0, max-content) minmax(
|
|
2135
|
+
max-content,
|
|
2136
|
+
1fr
|
|
2137
|
+
);
|
|
2336
2138
|
align-items: stretch;
|
|
2337
2139
|
}
|
|
2338
2140
|
|
|
@@ -2396,8 +2198,6 @@ select[aria-invalid="true"] {
|
|
|
2396
2198
|
padding: 1px 6px;
|
|
2397
2199
|
}
|
|
2398
2200
|
|
|
2399
|
-
/* ---------- code surfaces and secrets ---------- */
|
|
2400
|
-
|
|
2401
2201
|
.code-surface {
|
|
2402
2202
|
display: block;
|
|
2403
2203
|
width: 100%;
|
|
@@ -2418,7 +2218,6 @@ textarea.code-surface {
|
|
|
2418
2218
|
max-height: 60vh;
|
|
2419
2219
|
}
|
|
2420
2220
|
|
|
2421
|
-
/* a phone wraps code rather than scrolling it sideways under a thumb */
|
|
2422
2221
|
@media (max-width: 600px) {
|
|
2423
2222
|
textarea.code-surface {
|
|
2424
2223
|
white-space: pre-wrap;
|
|
@@ -2517,7 +2316,6 @@ pre.code-surface {
|
|
|
2517
2316
|
letter-spacing: 0.02em;
|
|
2518
2317
|
}
|
|
2519
2318
|
|
|
2520
|
-
/* a phone wraps the value rather than hiding its end past the edge */
|
|
2521
2319
|
@media (max-width: 600px) {
|
|
2522
2320
|
.secret code {
|
|
2523
2321
|
white-space: normal;
|
|
@@ -2525,8 +2323,6 @@ pre.code-surface {
|
|
|
2525
2323
|
}
|
|
2526
2324
|
}
|
|
2527
2325
|
|
|
2528
|
-
/* ---------- history ---------- */
|
|
2529
|
-
|
|
2530
2326
|
.history-list {
|
|
2531
2327
|
list-style: none;
|
|
2532
2328
|
border-top: var(--hair) solid var(--rule);
|
|
@@ -2572,13 +2368,11 @@ pre.code-surface {
|
|
|
2572
2368
|
white-space: nowrap;
|
|
2573
2369
|
}
|
|
2574
2370
|
|
|
2575
|
-
/* every version keeps the same box, so inverting the one in force moves nothing */
|
|
2576
2371
|
.history-list li.current .v {
|
|
2577
2372
|
background: var(--ink);
|
|
2578
2373
|
color: var(--paper);
|
|
2579
2374
|
}
|
|
2580
2375
|
|
|
2581
|
-
/* a Time in it (an age, "4m ago") takes the inverted box's paper, not its own muted ink */
|
|
2582
2376
|
.history-list li.current .v .age {
|
|
2583
2377
|
color: inherit;
|
|
2584
2378
|
}
|
|
@@ -2646,7 +2440,6 @@ pre.code-surface {
|
|
|
2646
2440
|
color: var(--ink);
|
|
2647
2441
|
}
|
|
2648
2442
|
|
|
2649
|
-
/* an added line sits on the head tint, where muted misses AA in plum */
|
|
2650
2443
|
.diff tr.add td.ln {
|
|
2651
2444
|
color: var(--on-head);
|
|
2652
2445
|
}
|
|
@@ -2659,7 +2452,6 @@ pre.code-surface {
|
|
|
2659
2452
|
color: var(--red);
|
|
2660
2453
|
}
|
|
2661
2454
|
|
|
2662
|
-
/* a folded run prints as a ruled gap, not as code */
|
|
2663
2455
|
.diff tr.fold td {
|
|
2664
2456
|
font-family: var(--font-px);
|
|
2665
2457
|
font-size: var(--type-label);
|
|
@@ -2679,8 +2471,6 @@ pre.code-surface {
|
|
|
2679
2471
|
}
|
|
2680
2472
|
}
|
|
2681
2473
|
|
|
2682
|
-
/* ---------- overlays ---------- */
|
|
2683
|
-
|
|
2684
2474
|
/* A dialog opens with show(), in place: Foldkit's Dialog makes the page around it inert and
|
|
2685
2475
|
hidden from screen readers, and sets its fixed, full-viewport box inline. The veil is an
|
|
2686
2476
|
element of its own (.veil-backdrop) under the pad; the pad lets a press through to it
|
|
@@ -2784,20 +2574,16 @@ dialog.veil:focus {
|
|
|
2784
2574
|
opacity: var(--fade-on-ink);
|
|
2785
2575
|
}
|
|
2786
2576
|
|
|
2787
|
-
/* a held icon button fades on the bar, as a held button in a panel's title bar does */
|
|
2788
2577
|
:is(.card-tb, .panel-tb) .iconbtn[aria-disabled="true"] {
|
|
2789
2578
|
opacity: var(--fade-held);
|
|
2790
2579
|
cursor: default;
|
|
2791
2580
|
}
|
|
2792
2581
|
|
|
2793
|
-
/* an ink ring vanishes on an ink bar: in a title bar the ring prints in paper and sits
|
|
2794
|
-
inside the control, so it never runs off the bar's edge onto paper */
|
|
2795
2582
|
:is(.panel-tb, .card-tb) :focus-visible {
|
|
2796
2583
|
outline-color: var(--paper);
|
|
2797
2584
|
outline-offset: -2px;
|
|
2798
2585
|
}
|
|
2799
2586
|
|
|
2800
|
-
/* a word longer than the card (a path, a link, an id) breaks rather than pushing it wide */
|
|
2801
2587
|
.card-body {
|
|
2802
2588
|
overflow-wrap: break-word;
|
|
2803
2589
|
padding: var(--pad);
|
|
@@ -2820,7 +2606,6 @@ dialog.veil:focus {
|
|
|
2820
2606
|
flex-wrap: wrap;
|
|
2821
2607
|
}
|
|
2822
2608
|
|
|
2823
|
-
/* the actions hold together at the right; when the bar wraps they drop below the lead as one */
|
|
2824
2609
|
.card-acts {
|
|
2825
2610
|
display: flex;
|
|
2826
2611
|
flex-wrap: wrap;
|
|
@@ -2830,8 +2615,6 @@ dialog.veil:focus {
|
|
|
2830
2615
|
margin-left: auto;
|
|
2831
2616
|
}
|
|
2832
2617
|
|
|
2833
|
-
/* ---------- outcomes: a glyph in a box, a headline, a sentence ---------- */
|
|
2834
|
-
|
|
2835
2618
|
.outcome {
|
|
2836
2619
|
display: flex;
|
|
2837
2620
|
gap: 14px;
|
|
@@ -2868,8 +2651,6 @@ dialog.veil:focus {
|
|
|
2868
2651
|
margin-top: 8px;
|
|
2869
2652
|
}
|
|
2870
2653
|
|
|
2871
|
-
/* ---------- the keymap card ---------- */
|
|
2872
|
-
|
|
2873
2654
|
.keymap {
|
|
2874
2655
|
display: grid;
|
|
2875
2656
|
gap: 14px;
|
|
@@ -2910,10 +2691,6 @@ dialog.veil:focus {
|
|
|
2910
2691
|
color: var(--muted);
|
|
2911
2692
|
}
|
|
2912
2693
|
|
|
2913
|
-
/* ---------- the command palette ---------- */
|
|
2914
|
-
|
|
2915
|
-
/* the scope (what the commands act on, a long title as well) wraps inside its chip, and the
|
|
2916
|
-
field takes its own line when what is left is too narrow to type in */
|
|
2917
2694
|
.palette-q {
|
|
2918
2695
|
display: flex;
|
|
2919
2696
|
flex-wrap: wrap;
|
|
@@ -2940,7 +2717,6 @@ dialog.veil:focus {
|
|
|
2940
2717
|
overflow-wrap: anywhere;
|
|
2941
2718
|
}
|
|
2942
2719
|
|
|
2943
|
-
/* on a page, its name after the scope: what is being chosen for what */
|
|
2944
2720
|
.palette-title {
|
|
2945
2721
|
font-family: var(--font-px);
|
|
2946
2722
|
font-size: var(--type-label);
|
|
@@ -2969,9 +2745,8 @@ dialog.veil:focus {
|
|
|
2969
2745
|
align-items: center;
|
|
2970
2746
|
gap: 10px;
|
|
2971
2747
|
width: 100%;
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
padding: 8px 16px 8px calc(16px + min((var(--palette-level, 1) - 1) * 20px, 33%));
|
|
2748
|
+
padding: 8px 16px 8px
|
|
2749
|
+
calc(16px + min((var(--palette-level, 1) - 1) * 20px, 33%));
|
|
2975
2750
|
font-family: var(--font-px);
|
|
2976
2751
|
font-size: var(--type-control);
|
|
2977
2752
|
text-transform: uppercase;
|
|
@@ -2983,15 +2758,11 @@ dialog.veil:focus {
|
|
|
2983
2758
|
text-align: left;
|
|
2984
2759
|
}
|
|
2985
2760
|
|
|
2986
|
-
/* a row that cannot run now prints muted, its reason in the hint; on the cursor it inverts
|
|
2987
|
-
like any other, and the reason says why Enter does nothing */
|
|
2988
2761
|
.palette-row[aria-disabled="true"] {
|
|
2989
2762
|
color: var(--muted);
|
|
2990
2763
|
cursor: default;
|
|
2991
2764
|
}
|
|
2992
2765
|
|
|
2993
|
-
/* the cursor: the inverted row, moved by the keys only. The pointer shades the row under it,
|
|
2994
|
-
as a list's row does on hover, and a click picks it */
|
|
2995
2766
|
.palette-row[aria-selected="true"] {
|
|
2996
2767
|
background: var(--ink);
|
|
2997
2768
|
color: var(--paper);
|
|
@@ -3001,7 +2772,6 @@ dialog.veil:focus {
|
|
|
3001
2772
|
background-color: var(--head);
|
|
3002
2773
|
}
|
|
3003
2774
|
|
|
3004
|
-
/* a choice a query keeps only to show where a found one sits: muted, still pickable */
|
|
3005
2775
|
.palette-row.context:not([aria-selected="true"]) {
|
|
3006
2776
|
color: var(--muted);
|
|
3007
2777
|
}
|
|
@@ -3051,7 +2821,6 @@ dialog.veil:focus {
|
|
|
3051
2821
|
color: inherit;
|
|
3052
2822
|
}
|
|
3053
2823
|
|
|
3054
|
-
/* a command that opens a page of choices says so at the far right */
|
|
3055
2824
|
.palette-row .glyph.opens {
|
|
3056
2825
|
display: inline-flex;
|
|
3057
2826
|
color: var(--muted);
|
|
@@ -3065,7 +2834,6 @@ dialog.veil:focus {
|
|
|
3065
2834
|
margin-left: auto;
|
|
3066
2835
|
}
|
|
3067
2836
|
|
|
3068
|
-
/* above the list: the app's own word (a sync notice, why a pick was refused) */
|
|
3069
2837
|
.palette-detail {
|
|
3070
2838
|
display: grid;
|
|
3071
2839
|
gap: 8px;
|
|
@@ -3081,8 +2849,6 @@ dialog.veil:focus {
|
|
|
3081
2849
|
color: var(--muted);
|
|
3082
2850
|
}
|
|
3083
2851
|
|
|
3084
|
-
/* ---------- empty states ---------- */
|
|
3085
|
-
|
|
3086
2852
|
.empty {
|
|
3087
2853
|
padding: 26px 16px;
|
|
3088
2854
|
text-align: center;
|
|
@@ -3108,8 +2874,6 @@ dialog.veil:focus {
|
|
|
3108
2874
|
margin-top: 6px;
|
|
3109
2875
|
}
|
|
3110
2876
|
|
|
3111
|
-
/* ---------- banners and walls ---------- */
|
|
3112
|
-
|
|
3113
2877
|
.banner {
|
|
3114
2878
|
position: fixed;
|
|
3115
2879
|
bottom: calc(var(--statusbar-h) + 16px);
|
|
@@ -3162,11 +2926,6 @@ dialog.veil:focus {
|
|
|
3162
2926
|
color: var(--ink);
|
|
3163
2927
|
}
|
|
3164
2928
|
|
|
3165
|
-
/* ---------- the wall's corner: a slip of controls where a top bar would be ---------- */
|
|
3166
|
-
|
|
3167
|
-
/* A page with no top bar keeps what a bar would hold (the palette switch) on a paper slip in
|
|
3168
|
-
its top-left corner, outside the wall's card. It sits in the page, not fixed to the window,
|
|
3169
|
-
so it scrolls away with the top and never covers a tall card. */
|
|
3170
2929
|
.wall-corner {
|
|
3171
2930
|
position: absolute;
|
|
3172
2931
|
top: 12px;
|
|
@@ -3183,12 +2942,10 @@ dialog.veil:focus {
|
|
|
3183
2942
|
box-shadow: var(--shadow-button);
|
|
3184
2943
|
}
|
|
3185
2944
|
|
|
3186
|
-
/* the card keeps clear of the slip */
|
|
3187
2945
|
.wall-corner ~ .wall {
|
|
3188
2946
|
padding-top: 72px;
|
|
3189
2947
|
}
|
|
3190
2948
|
|
|
3191
|
-
/* a phone has no corner to spare: the slip wraps in the page's flow above the card */
|
|
3192
2949
|
@media (max-width: 600px) {
|
|
3193
2950
|
.wall-corner {
|
|
3194
2951
|
position: static;
|
|
@@ -3201,22 +2958,15 @@ dialog.veil:focus {
|
|
|
3201
2958
|
}
|
|
3202
2959
|
}
|
|
3203
2960
|
|
|
3204
|
-
/* ---------- lists in a card: rows of identities, edge to edge ---------- */
|
|
3205
|
-
|
|
3206
|
-
/* a list of rows in a card's body meets the card's edges, between two rules */
|
|
3207
2961
|
.card-body > .rows {
|
|
3208
2962
|
margin-inline: calc(-1 * var(--pad));
|
|
3209
2963
|
border-block: var(--hair) solid var(--rule);
|
|
3210
2964
|
}
|
|
3211
2965
|
|
|
3212
|
-
/* an identity as a row's text wraps its name instead of clipping it */
|
|
3213
2966
|
.row .grow > .identity {
|
|
3214
2967
|
white-space: normal;
|
|
3215
2968
|
}
|
|
3216
2969
|
|
|
3217
|
-
/* ---------- groups in an outline ---------- */
|
|
3218
|
-
|
|
3219
|
-
/* a group's name: the row that owns the rows under it */
|
|
3220
2970
|
.group-name {
|
|
3221
2971
|
font-family: var(--font-px);
|
|
3222
2972
|
font-size: var(--type-name);
|
|
@@ -3224,14 +2974,12 @@ dialog.veil:focus {
|
|
|
3224
2974
|
letter-spacing: var(--tracking-caps);
|
|
3225
2975
|
}
|
|
3226
2976
|
|
|
3227
|
-
/* outside a filter, printed only to keep a match on its chain: muted, no chips */
|
|
3228
2977
|
.row.context .title,
|
|
3229
2978
|
.row.context .group-name,
|
|
3230
2979
|
.row.context:hover button.glyph {
|
|
3231
2980
|
color: var(--muted);
|
|
3232
2981
|
}
|
|
3233
2982
|
|
|
3234
|
-
/* a phone gives the title its own line; chips and tools go under it */
|
|
3235
2983
|
@media (max-width: 600px) {
|
|
3236
2984
|
.tree .row {
|
|
3237
2985
|
flex-wrap: wrap;
|
|
@@ -3256,8 +3004,6 @@ dialog.veil:focus {
|
|
|
3256
3004
|
}
|
|
3257
3005
|
}
|
|
3258
3006
|
|
|
3259
|
-
/* ---------- due days ---------- */
|
|
3260
|
-
|
|
3261
3007
|
.due {
|
|
3262
3008
|
font-family: var(--font-px);
|
|
3263
3009
|
font-size: var(--type-state);
|
|
@@ -3269,8 +3015,6 @@ dialog.veil:focus {
|
|
|
3269
3015
|
color: var(--red);
|
|
3270
3016
|
}
|
|
3271
3017
|
|
|
3272
|
-
/* ---------- the board: columns of printed slips ---------- */
|
|
3273
|
-
|
|
3274
3018
|
.board {
|
|
3275
3019
|
display: grid;
|
|
3276
3020
|
grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
|
|
@@ -3341,25 +3085,20 @@ dialog.veil:focus {
|
|
|
3341
3085
|
.board-card [data-board-grip] {
|
|
3342
3086
|
margin-right: -6px;
|
|
3343
3087
|
cursor: grab;
|
|
3344
|
-
/* the grip is where a finger drags; the rest of the slip scrolls the page */
|
|
3345
3088
|
touch-action: none;
|
|
3346
3089
|
}
|
|
3347
3090
|
|
|
3348
|
-
/* the held copy that follows the pointer: lifted onto the card shadow */
|
|
3349
3091
|
.board-card.lifted {
|
|
3350
3092
|
cursor: grabbing;
|
|
3351
3093
|
background: var(--head);
|
|
3352
3094
|
box-shadow: var(--shadow-card);
|
|
3353
3095
|
}
|
|
3354
3096
|
|
|
3355
|
-
/* its holder, placed at the pointer by the board; the board measures the card it lifts,
|
|
3356
|
-
so the copy is as wide as the card and keeps the pointer where it pressed */
|
|
3357
3097
|
.board-lift {
|
|
3358
3098
|
width: var(--lift-width, 240px);
|
|
3359
3099
|
translate: var(--lift-x, 0) var(--lift-y, 0);
|
|
3360
3100
|
}
|
|
3361
3101
|
|
|
3362
|
-
/* a card held by the keyboard prints its copy at the top of the column it would land in */
|
|
3363
3102
|
.board-lift-slot {
|
|
3364
3103
|
list-style: none;
|
|
3365
3104
|
}
|
|
@@ -3372,7 +3111,6 @@ dialog.veil:focus {
|
|
|
3372
3111
|
opacity: var(--fade-dragged);
|
|
3373
3112
|
}
|
|
3374
3113
|
|
|
3375
|
-
/* focus on the title rings the whole slip, outside its own border */
|
|
3376
3114
|
.board-card:focus-within {
|
|
3377
3115
|
outline: var(--line) solid var(--ink);
|
|
3378
3116
|
outline-offset: 2px;
|
|
@@ -3383,7 +3121,6 @@ dialog.veil:focus {
|
|
|
3383
3121
|
outline: none;
|
|
3384
3122
|
}
|
|
3385
3123
|
|
|
3386
|
-
/* the card's own hover and focus tints come after the cursor: it keeps its ink */
|
|
3387
3124
|
.board-card[aria-current="true"]:is(:hover, :focus-within) {
|
|
3388
3125
|
background-color: var(--ink);
|
|
3389
3126
|
}
|
|
@@ -3403,8 +3140,6 @@ dialog.veil:focus {
|
|
|
3403
3140
|
overflow-wrap: anywhere;
|
|
3404
3141
|
}
|
|
3405
3142
|
|
|
3406
|
-
/* a title edited in place prints ink on paper, on the cursor's inverted slip too; its caret
|
|
3407
|
-
and its rule are its focus, inside the slip's ring */
|
|
3408
3143
|
.board-card input.inline-input {
|
|
3409
3144
|
color: var(--ink);
|
|
3410
3145
|
}
|
|
@@ -3424,13 +3159,10 @@ dialog.veil:focus {
|
|
|
3424
3159
|
flex: 1;
|
|
3425
3160
|
}
|
|
3426
3161
|
|
|
3427
|
-
/* ---------- sortable: items the reader puts in order, as rows or tiles ---------- */
|
|
3428
|
-
|
|
3429
3162
|
.sortable-items {
|
|
3430
3163
|
list-style: none;
|
|
3431
3164
|
}
|
|
3432
3165
|
|
|
3433
|
-
/* a row: the grip, then the item, between 1px rules, edge to edge in a flush panel */
|
|
3434
3166
|
.sortable-item {
|
|
3435
3167
|
display: flex;
|
|
3436
3168
|
align-items: center;
|
|
@@ -3455,7 +3187,6 @@ dialog.veil:focus {
|
|
|
3455
3187
|
flex: none;
|
|
3456
3188
|
}
|
|
3457
3189
|
|
|
3458
|
-
/* the grip is the only handle: the rest of the item selects its text and scrolls the page */
|
|
3459
3190
|
.sortable-item.movable [data-sortable-grip] {
|
|
3460
3191
|
cursor: grab;
|
|
3461
3192
|
touch-action: none;
|
|
@@ -3465,8 +3196,6 @@ dialog.veil:focus {
|
|
|
3465
3196
|
opacity: var(--fade-dragged);
|
|
3466
3197
|
}
|
|
3467
3198
|
|
|
3468
|
-
/* where a pointer would drop the held item: a 2px dashed ink line beside the item it lands
|
|
3469
|
-
next to, drawn over the layout so nothing moves under the pointer */
|
|
3470
3199
|
.sortable-item:is(.drop-before, .drop-after)::before {
|
|
3471
3200
|
content: "";
|
|
3472
3201
|
position: absolute;
|
|
@@ -3484,7 +3213,8 @@ dialog.veil:focus {
|
|
|
3484
3213
|
bottom: -1px;
|
|
3485
3214
|
}
|
|
3486
3215
|
|
|
3487
|
-
.sortable:is(.grid, .panels)
|
|
3216
|
+
.sortable:is(.grid, .panels)
|
|
3217
|
+
.sortable-item:is(.drop-before, .drop-after)::before {
|
|
3488
3218
|
top: -2px;
|
|
3489
3219
|
bottom: -2px;
|
|
3490
3220
|
left: auto;
|
|
@@ -3501,8 +3231,6 @@ dialog.veil:focus {
|
|
|
3501
3231
|
right: -9px;
|
|
3502
3232
|
}
|
|
3503
3233
|
|
|
3504
|
-
/* the held copy, following the pointer or where the keyboard would drop it: lifted onto the
|
|
3505
|
-
card shadow and tinted, as a board's is; the held item keeps its own print */
|
|
3506
3234
|
.sortable-item.lifted {
|
|
3507
3235
|
border: var(--line) solid var(--ink);
|
|
3508
3236
|
background: var(--head);
|
|
@@ -3521,7 +3249,6 @@ dialog.veil:focus {
|
|
|
3521
3249
|
translate: var(--lift-x, 0) var(--lift-y, 0);
|
|
3522
3250
|
}
|
|
3523
3251
|
|
|
3524
|
-
/* tiles: paper slips on the 3px print shadow that wrap, 180px and up */
|
|
3525
3252
|
.sortable.grid .sortable-items {
|
|
3526
3253
|
display: grid;
|
|
3527
3254
|
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
|
@@ -3545,9 +3272,6 @@ dialog.veil:focus {
|
|
|
3545
3272
|
padding: 0;
|
|
3546
3273
|
}
|
|
3547
3274
|
|
|
3548
|
-
/* panels: the parent's own panels, up to three across in the deck's gutter and 300px and up,
|
|
3549
|
-
so two across and then one as the column narrows. A row takes its tallest panel's height,
|
|
3550
|
-
and each panel's foot sits at its bottom */
|
|
3551
3275
|
.sortable.panels .sortable-items {
|
|
3552
3276
|
display: grid;
|
|
3553
3277
|
grid-template-columns: repeat(
|
|
@@ -3578,7 +3302,6 @@ dialog.veil:focus {
|
|
|
3578
3302
|
margin-top: auto;
|
|
3579
3303
|
}
|
|
3580
3304
|
|
|
3581
|
-
/* the drop line runs down the middle of the gutter */
|
|
3582
3305
|
.sortable.panels .sortable-item.drop-before::before {
|
|
3583
3306
|
left: calc(var(--gap) / -2 - 1px);
|
|
3584
3307
|
}
|
|
@@ -3587,7 +3310,6 @@ dialog.veil:focus {
|
|
|
3587
3310
|
right: calc(var(--gap) / -2 - 1px);
|
|
3588
3311
|
}
|
|
3589
3312
|
|
|
3590
|
-
/* the held copy is the panel itself, tinted head and lifted onto the card shadow */
|
|
3591
3313
|
.sortable.panels .sortable-item.lifted {
|
|
3592
3314
|
border: 0;
|
|
3593
3315
|
box-shadow: none;
|
|
@@ -3602,7 +3324,6 @@ dialog.veil:focus {
|
|
|
3602
3324
|
padding: 0;
|
|
3603
3325
|
}
|
|
3604
3326
|
|
|
3605
|
-
/* while a pointer carries an item, the page grabs and selects nothing */
|
|
3606
3327
|
:root[data-pixel-paper-dragging] {
|
|
3607
3328
|
user-select: none;
|
|
3608
3329
|
}
|
|
@@ -3611,8 +3332,6 @@ dialog.veil:focus {
|
|
|
3611
3332
|
cursor: grabbing !important;
|
|
3612
3333
|
}
|
|
3613
3334
|
|
|
3614
|
-
/* ---------- cells: a reading printed as ink squares in a box ---------- */
|
|
3615
|
-
|
|
3616
3335
|
.cells {
|
|
3617
3336
|
display: inline-flex;
|
|
3618
3337
|
gap: 2px;
|
|
@@ -3637,23 +3356,17 @@ dialog.veil:focus {
|
|
|
3637
3356
|
height: 8px;
|
|
3638
3357
|
}
|
|
3639
3358
|
|
|
3640
|
-
/* meters in a list step down by their column instead (below) */
|
|
3641
3359
|
@media (max-width: 600px) {
|
|
3642
3360
|
.cells:not(.short, .meters *) .cell {
|
|
3643
3361
|
width: 8px;
|
|
3644
3362
|
}
|
|
3645
3363
|
}
|
|
3646
3364
|
|
|
3647
|
-
/* ---------- meters: a named reading, its cells, the numbers and a foot line ---------- */
|
|
3648
|
-
|
|
3649
|
-
/* the list is the container its rows measure: they stack and their cells narrow by the
|
|
3650
|
-
column they are placed in, not by the window */
|
|
3651
3365
|
.meters {
|
|
3652
3366
|
container: meters / inline-size;
|
|
3653
3367
|
list-style: none;
|
|
3654
3368
|
}
|
|
3655
3369
|
|
|
3656
|
-
/* name and plan in a left column; the cells, the reading and the foot beside them */
|
|
3657
3370
|
.meter-row {
|
|
3658
3371
|
display: grid;
|
|
3659
3372
|
grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
|
|
@@ -3697,8 +3410,6 @@ dialog.veil:focus {
|
|
|
3697
3410
|
}
|
|
3698
3411
|
}
|
|
3699
3412
|
|
|
3700
|
-
/* twenty cells take 246px at 10px each; in a narrower column they step down whole pixels,
|
|
3701
|
-
never to a fraction, so a meter fits a column of 160px and up */
|
|
3702
3413
|
@container meters (width < 280px) {
|
|
3703
3414
|
.meters .cells .cell {
|
|
3704
3415
|
width: 8px;
|
|
@@ -3738,8 +3449,6 @@ dialog.veil:focus {
|
|
|
3738
3449
|
flex-wrap: wrap;
|
|
3739
3450
|
}
|
|
3740
3451
|
|
|
3741
|
-
/* a toned meter's lit cells take its reading's tone, amber from 80% and red at the maximum,
|
|
3742
|
-
unless the reading is stale */
|
|
3743
3452
|
.meter-row.toned.high:not(.stale) .cells .cell.on {
|
|
3744
3453
|
background: var(--amber);
|
|
3745
3454
|
}
|
|
@@ -3748,7 +3457,6 @@ dialog.veil:focus {
|
|
|
3748
3457
|
background: var(--red);
|
|
3749
3458
|
}
|
|
3750
3459
|
|
|
3751
|
-
/* a stale reading prints its cells muted: the number is last known, not current */
|
|
3752
3460
|
.meter-row.stale .cells .cell.on {
|
|
3753
3461
|
background: var(--muted);
|
|
3754
3462
|
}
|
|
@@ -3784,7 +3492,6 @@ dialog.veil:focus {
|
|
|
3784
3492
|
color: var(--red);
|
|
3785
3493
|
}
|
|
3786
3494
|
|
|
3787
|
-
/* a history list of checks: when, what was checked, what it read */
|
|
3788
3495
|
.history-list.checks {
|
|
3789
3496
|
border-top: 0;
|
|
3790
3497
|
}
|
|
@@ -3804,12 +3511,6 @@ dialog.veil:focus {
|
|
|
3804
3511
|
}
|
|
3805
3512
|
}
|
|
3806
3513
|
|
|
3807
|
-
/* wrapped: each entry in full, compact enough for a rail's panel. When (a whole timestamp,
|
|
3808
|
-
muted, flush with the what under it) and who share the first line, with the action at its
|
|
3809
|
-
end; what runs under them in the note size and wraps. No rule above the first entry and no
|
|
3810
|
-
padding outside the first and last, so the list starts and ends where its body's content
|
|
3811
|
-
does. The version in force still inverts only its own box, padded so its ink clears the
|
|
3812
|
-
words */
|
|
3813
3514
|
.history-list.wrapped {
|
|
3814
3515
|
border-top: 0;
|
|
3815
3516
|
}
|
|
@@ -3859,9 +3560,6 @@ dialog.veil:focus {
|
|
|
3859
3560
|
overflow-wrap: anywhere;
|
|
3860
3561
|
}
|
|
3861
3562
|
|
|
3862
|
-
/* ---------- charts: amounts as cells, a reading over time as a stepped line ---------- */
|
|
3863
|
-
|
|
3864
|
-
/* the picture is aria-hidden; screen readers read the chart's table (.sr-only) instead */
|
|
3865
3563
|
.chart {
|
|
3866
3564
|
min-width: 0;
|
|
3867
3565
|
}
|
|
@@ -3874,7 +3572,6 @@ dialog.veil:focus {
|
|
|
3874
3572
|
background: var(--ink);
|
|
3875
3573
|
}
|
|
3876
3574
|
|
|
3877
|
-
/* scale, labels and the key: the label register, figures tabular */
|
|
3878
3575
|
.bar-scale,
|
|
3879
3576
|
.bar-label,
|
|
3880
3577
|
.line-scale,
|
|
@@ -3889,8 +3586,6 @@ dialog.veil:focus {
|
|
|
3889
3586
|
line-height: 10px;
|
|
3890
3587
|
}
|
|
3891
3588
|
|
|
3892
|
-
/* a reading: the meter's numbers, 11px muted tabular; a toned one is the amber mark or the
|
|
3893
|
-
red chip, so the cells stay ink */
|
|
3894
3589
|
.bar-num {
|
|
3895
3590
|
font-family: var(--font-px);
|
|
3896
3591
|
font-size: var(--type-state);
|
|
@@ -3901,14 +3596,11 @@ dialog.veil:focus {
|
|
|
3901
3596
|
font-variant-numeric: tabular-nums;
|
|
3902
3597
|
}
|
|
3903
3598
|
|
|
3904
|
-
/* a missing reading says so; over a column it breaks onto two lines to keep the column narrow */
|
|
3905
3599
|
.bar-cols .bar-num.none {
|
|
3906
3600
|
white-space: normal;
|
|
3907
3601
|
text-align: center;
|
|
3908
3602
|
}
|
|
3909
3603
|
|
|
3910
|
-
/* columns: the scale, then a column of cells per point in one 2px ink frame; readings over
|
|
3911
|
-
it, labels under it. Past twelve points the columns narrow and only a toned reading prints. */
|
|
3912
3604
|
.bar-cols {
|
|
3913
3605
|
display: grid;
|
|
3914
3606
|
grid-template-columns: max-content repeat(var(--n), minmax(6px, 40px));
|
|
@@ -3923,7 +3615,6 @@ dialog.veil:focus {
|
|
|
3923
3615
|
grid-template-columns: max-content repeat(var(--n), minmax(min-content, 48px));
|
|
3924
3616
|
}
|
|
3925
3617
|
|
|
3926
|
-
/* the frame: drawn behind the cells, 2px of paper and 2px of ink outside them */
|
|
3927
3618
|
.bar-cols::before,
|
|
3928
3619
|
.bar-rows::before {
|
|
3929
3620
|
content: "";
|
|
@@ -3963,7 +3654,6 @@ dialog.veil:focus {
|
|
|
3963
3654
|
gap: 2px;
|
|
3964
3655
|
}
|
|
3965
3656
|
|
|
3966
|
-
/* a label under its column, or under the run of columns it stands for, clipped to fit */
|
|
3967
3657
|
.bar-cols .bar-label {
|
|
3968
3658
|
grid-row: 3;
|
|
3969
3659
|
width: 0;
|
|
@@ -3981,7 +3671,6 @@ dialog.veil:focus {
|
|
|
3981
3671
|
text-align: center;
|
|
3982
3672
|
}
|
|
3983
3673
|
|
|
3984
|
-
/* rows: the label, a row of the meter's cells inside the one frame, the reading */
|
|
3985
3674
|
.bar-rows {
|
|
3986
3675
|
display: grid;
|
|
3987
3676
|
grid-template-columns: minmax(0, max-content) minmax(120px, 1fr) max-content;
|
|
@@ -4018,7 +3707,6 @@ dialog.veil:focus {
|
|
|
4018
3707
|
align-items: center;
|
|
4019
3708
|
}
|
|
4020
3709
|
|
|
4021
|
-
/* a toned reading keeps to the row's 14px, so the cells stay 2px apart */
|
|
4022
3710
|
.bar-rows .chip {
|
|
4023
3711
|
padding-block: 0;
|
|
4024
3712
|
line-height: 10px;
|
|
@@ -4035,7 +3723,6 @@ dialog.veil:focus {
|
|
|
4035
3723
|
}
|
|
4036
3724
|
}
|
|
4037
3725
|
|
|
4038
|
-
/* the line chart: the key over the plot, the scale beside it, the labels under it */
|
|
4039
3726
|
.line-chart {
|
|
4040
3727
|
display: grid;
|
|
4041
3728
|
grid-template-columns: max-content minmax(0, 1fr);
|
|
@@ -4074,7 +3761,6 @@ dialog.veil:focus {
|
|
|
4074
3761
|
background: var(--muted);
|
|
4075
3762
|
}
|
|
4076
3763
|
|
|
4077
|
-
/* the scale's top and zero centre on the plot's top line and on its axis */
|
|
4078
3764
|
.line-scale {
|
|
4079
3765
|
grid-area: scale;
|
|
4080
3766
|
display: flex;
|
|
@@ -4092,7 +3778,6 @@ dialog.veil:focus {
|
|
|
4092
3778
|
translate: 0 50%;
|
|
4093
3779
|
}
|
|
4094
3780
|
|
|
4095
|
-
/* the axes are the plot's 1px rules; the SVG inside keeps its points clear of them */
|
|
4096
3781
|
.line-plot {
|
|
4097
3782
|
grid-area: plot;
|
|
4098
3783
|
height: var(--chart-plot);
|
|
@@ -4120,7 +3805,6 @@ dialog.veil:focus {
|
|
|
4120
3805
|
stroke-width: var(--line);
|
|
4121
3806
|
}
|
|
4122
3807
|
|
|
4123
|
-
/* a zero-length stroke with square caps: a 6px cell at each point, whatever the width */
|
|
4124
3808
|
.line-cells {
|
|
4125
3809
|
stroke-width: 6px;
|
|
4126
3810
|
}
|
|
@@ -4133,7 +3817,6 @@ dialog.veil:focus {
|
|
|
4133
3817
|
stroke-width: 4px;
|
|
4134
3818
|
}
|
|
4135
3819
|
|
|
4136
|
-
/* labels sit under their points, the first and the last inside the plot's ends */
|
|
4137
3820
|
.line-labels {
|
|
4138
3821
|
grid-area: labels;
|
|
4139
3822
|
position: relative;
|
|
@@ -4159,15 +3842,12 @@ dialog.veil:focus {
|
|
|
4159
3842
|
translate: -100% 0;
|
|
4160
3843
|
}
|
|
4161
3844
|
|
|
4162
|
-
/* a phone has room for half the labels */
|
|
4163
3845
|
@media (max-width: 600px) {
|
|
4164
3846
|
.line-labels > span:nth-child(even) {
|
|
4165
3847
|
display: none;
|
|
4166
3848
|
}
|
|
4167
3849
|
}
|
|
4168
3850
|
|
|
4169
|
-
/* ---------- crumbs: the path to where you are ---------- */
|
|
4170
|
-
|
|
4171
3851
|
.crumbs ol {
|
|
4172
3852
|
list-style: none;
|
|
4173
3853
|
display: flex;
|
|
@@ -4200,14 +3880,11 @@ dialog.veil:focus {
|
|
|
4200
3880
|
color: var(--ink);
|
|
4201
3881
|
}
|
|
4202
3882
|
|
|
4203
|
-
/* ---------- the file tree ---------- */
|
|
4204
|
-
|
|
4205
3883
|
.file-tree {
|
|
4206
3884
|
border: var(--line) solid var(--ink);
|
|
4207
3885
|
padding: 6px 0;
|
|
4208
3886
|
}
|
|
4209
3887
|
|
|
4210
|
-
/* flush in a panel, the panel's border is the tree's */
|
|
4211
3888
|
.panel > .file-tree {
|
|
4212
3889
|
border: 0;
|
|
4213
3890
|
}
|
|
@@ -4276,8 +3953,6 @@ dialog.veil:focus {
|
|
|
4276
3953
|
white-space: nowrap;
|
|
4277
3954
|
}
|
|
4278
3955
|
|
|
4279
|
-
/* ---------- the drop zone: dashed while waiting, solid and tinted while a file hovers ---------- */
|
|
4280
|
-
|
|
4281
3956
|
.drop-zone {
|
|
4282
3957
|
display: grid;
|
|
4283
3958
|
justify-items: center;
|
|
@@ -4322,8 +3997,6 @@ dialog.veil:focus {
|
|
|
4322
3997
|
outline-offset: 2px;
|
|
4323
3998
|
}
|
|
4324
3999
|
|
|
4325
|
-
/* ---------- the reading sheet: an authored page in a panel's place ---------- */
|
|
4326
|
-
|
|
4327
4000
|
.sheet {
|
|
4328
4001
|
padding: 28px 32px 36px;
|
|
4329
4002
|
}
|
|
@@ -4382,8 +4055,6 @@ dialog.veil:focus {
|
|
|
4382
4055
|
}
|
|
4383
4056
|
}
|
|
4384
4057
|
|
|
4385
|
-
/* ---------- prose: text keeps a reading measure; code and tables may use the whole sheet ---------- */
|
|
4386
|
-
|
|
4387
4058
|
.prose {
|
|
4388
4059
|
font: var(--read-body) / 1.65 var(--font-body);
|
|
4389
4060
|
color: var(--ink);
|
|
@@ -4402,7 +4073,6 @@ dialog.veil:focus {
|
|
|
4402
4073
|
margin-top: 1em;
|
|
4403
4074
|
}
|
|
4404
4075
|
|
|
4405
|
-
/* an h1 inside prose (a document's own title, under the page's) reads as a section */
|
|
4406
4076
|
.prose :is(h1, h2) {
|
|
4407
4077
|
font: var(--read-weight) var(--read-h2) / 1.3 var(--font-body);
|
|
4408
4078
|
letter-spacing: -0.005em;
|
|
@@ -4415,9 +4085,6 @@ dialog.veil:focus {
|
|
|
4415
4085
|
margin-top: 1.6em;
|
|
4416
4086
|
}
|
|
4417
4087
|
|
|
4418
|
-
/* below h3 the reading scale has no smaller step that still reads as a heading, so each
|
|
4419
|
-
deeper level changes voice instead: pixel caps, then bold body type at the UI's body
|
|
4420
|
-
size, then the muted pixel label. Each stands as far below the text above as an h3 */
|
|
4421
4088
|
.prose :is(h4, h5, h6) {
|
|
4422
4089
|
margin-top: calc(1.6 * var(--read-body));
|
|
4423
4090
|
}
|
|
@@ -4526,15 +4193,12 @@ dialog.veil:focus {
|
|
|
4526
4193
|
text-decoration-thickness: 2px;
|
|
4527
4194
|
}
|
|
4528
4195
|
|
|
4529
|
-
/* a link to a page that does not exist: red, the error colour, on a dotted rule */
|
|
4530
4196
|
.prose a.missing {
|
|
4531
4197
|
color: var(--red);
|
|
4532
4198
|
text-decoration-style: dotted;
|
|
4533
4199
|
text-decoration-color: var(--red);
|
|
4534
4200
|
}
|
|
4535
4201
|
|
|
4536
|
-
/* ---------- contents: the page's headings, with the reading position ---------- */
|
|
4537
|
-
|
|
4538
4202
|
.toc {
|
|
4539
4203
|
list-style: none;
|
|
4540
4204
|
padding: 6px 0;
|
|
@@ -4556,13 +4220,11 @@ dialog.veil:focus {
|
|
|
4556
4220
|
color: var(--muted);
|
|
4557
4221
|
}
|
|
4558
4222
|
|
|
4559
|
-
/* an entry with detail: its words, and what the section holds under them */
|
|
4560
4223
|
.toc-entry {
|
|
4561
4224
|
display: grid;
|
|
4562
4225
|
gap: 2px;
|
|
4563
4226
|
}
|
|
4564
4227
|
|
|
4565
|
-
/* the reading position: one ink cell before the entry; every entry keeps the slot */
|
|
4566
4228
|
.toc a::before {
|
|
4567
4229
|
content: "";
|
|
4568
4230
|
flex: none;
|
|
@@ -4583,8 +4245,6 @@ dialog.veil:focus {
|
|
|
4583
4245
|
background: var(--head);
|
|
4584
4246
|
}
|
|
4585
4247
|
|
|
4586
|
-
/* ---------- the working cursor's sizes ---------- */
|
|
4587
|
-
|
|
4588
4248
|
.chip .cursor,
|
|
4589
4249
|
.link-state .cursor {
|
|
4590
4250
|
width: 5px;
|
|
@@ -4596,8 +4256,6 @@ dialog.veil:focus {
|
|
|
4596
4256
|
margin-left: 6px;
|
|
4597
4257
|
}
|
|
4598
4258
|
|
|
4599
|
-
/* ---------- loading: the place content will be, working ---------- */
|
|
4600
|
-
|
|
4601
4259
|
.loading {
|
|
4602
4260
|
padding: 26px 16px;
|
|
4603
4261
|
text-align: center;
|
|
@@ -4615,8 +4273,6 @@ dialog.veil:focus {
|
|
|
4615
4273
|
position: absolute;
|
|
4616
4274
|
}
|
|
4617
4275
|
|
|
4618
|
-
/* ---------- monograms: letters in an ink square, or a mark the product draws in cells ---------- */
|
|
4619
|
-
|
|
4620
4276
|
.monogram {
|
|
4621
4277
|
display: inline-grid;
|
|
4622
4278
|
place-items: center;
|
|
@@ -4644,7 +4300,6 @@ dialog.veil:focus {
|
|
|
4644
4300
|
color: var(--paper);
|
|
4645
4301
|
}
|
|
4646
4302
|
|
|
4647
|
-
/* a mark drawn in cells prints bare, in ink, in the square the letters would take */
|
|
4648
4303
|
.monogram.drawn {
|
|
4649
4304
|
border: 0;
|
|
4650
4305
|
background: none;
|
|
@@ -4654,8 +4309,6 @@ dialog.veil:focus {
|
|
|
4654
4309
|
background: var(--ink);
|
|
4655
4310
|
}
|
|
4656
4311
|
|
|
4657
|
-
/* ---------- identity: who or what, as its monogram beside its name ---------- */
|
|
4658
|
-
|
|
4659
4312
|
.identity {
|
|
4660
4313
|
display: flex;
|
|
4661
4314
|
align-items: center;
|
|
@@ -4689,13 +4342,6 @@ dialog.veil:focus {
|
|
|
4689
4342
|
font-size: var(--type-title);
|
|
4690
4343
|
}
|
|
4691
4344
|
|
|
4692
|
-
/* ---------- stats: a figure, what changed, and what it means, in ruled cells ---------- */
|
|
4693
|
-
|
|
4694
|
-
/* Stats are cells in a flush panel, parted by 1px rules like meter rows, not a grid of
|
|
4695
|
-
shadowed slips: a figure belongs to the panel that names what it measures, and a row of
|
|
4696
|
-
raised cards each holding one big number is the hero-metric template this world refuses.
|
|
4697
|
-
Each cell carries its rules right and below; the last column's and row's are clipped by
|
|
4698
|
-
the box, so the rules only ever divide. */
|
|
4699
4345
|
.stats {
|
|
4700
4346
|
display: grid;
|
|
4701
4347
|
grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
|
|
@@ -4727,12 +4373,10 @@ dialog.veil:focus {
|
|
|
4727
4373
|
color: var(--ink);
|
|
4728
4374
|
}
|
|
4729
4375
|
|
|
4730
|
-
/* not known: a muted dash, with words for screen readers */
|
|
4731
4376
|
.stat-value.unknown {
|
|
4732
4377
|
color: var(--muted);
|
|
4733
4378
|
}
|
|
4734
4379
|
|
|
4735
|
-
/* the working cursor at the figure's height while the value is on its way */
|
|
4736
4380
|
.stat-value .cursor {
|
|
4737
4381
|
width: 12px;
|
|
4738
4382
|
height: 24px;
|
|
@@ -4747,8 +4391,6 @@ dialog.veil:focus {
|
|
|
4747
4391
|
color: var(--muted);
|
|
4748
4392
|
}
|
|
4749
4393
|
|
|
4750
|
-
/* the change: ink, its direction a glyph, never a hue. A warning fills amber, a fault
|
|
4751
|
-
prints red in a red box, as a meter's reading and its full chip do */
|
|
4752
4394
|
.stat-delta {
|
|
4753
4395
|
display: inline-flex;
|
|
4754
4396
|
align-items: center;
|
|
@@ -4783,12 +4425,10 @@ dialog.veil:focus {
|
|
|
4783
4425
|
color: var(--muted);
|
|
4784
4426
|
}
|
|
4785
4427
|
|
|
4786
|
-
/* the last cell has nothing beside it to divide from, in a short last row too */
|
|
4787
4428
|
.stat:last-child {
|
|
4788
4429
|
border-right: 0;
|
|
4789
4430
|
}
|
|
4790
4431
|
|
|
4791
|
-
/* narrower, four figures across step down the ramp before they would break */
|
|
4792
4432
|
@media (max-width: 900px) {
|
|
4793
4433
|
.stat-value {
|
|
4794
4434
|
font-size: var(--type-figure-narrow);
|
|
@@ -4810,12 +4450,6 @@ dialog.veil:focus {
|
|
|
4810
4450
|
}
|
|
4811
4451
|
}
|
|
4812
4452
|
|
|
4813
|
-
/* ---------- tips: an inverted label above its control ---------- */
|
|
4814
|
-
|
|
4815
|
-
/* the page's one tip, anchored to the control it names (its source). A label, not a surface:
|
|
4816
|
-
flat ink with no print shadow, ringed in paper so it parts from an ink bar under it.
|
|
4817
|
-
Centred above its control; near an edge it hangs from the control's side instead, and
|
|
4818
|
-
flips below when the window has no room above */
|
|
4819
4453
|
.tip[popover] {
|
|
4820
4454
|
position-anchor: auto;
|
|
4821
4455
|
inset: auto;
|
|
@@ -4841,7 +4475,6 @@ dialog.veil:focus {
|
|
|
4841
4475
|
overflow: visible;
|
|
4842
4476
|
}
|
|
4843
4477
|
|
|
4844
|
-
/* the key that does the same as the control, after its words, as a button prints it */
|
|
4845
4478
|
.tip .key-hint {
|
|
4846
4479
|
margin-left: 6px;
|
|
4847
4480
|
font-family: var(--font-px);
|
|
@@ -4851,9 +4484,6 @@ dialog.veil:focus {
|
|
|
4851
4484
|
opacity: var(--fade-on-ink);
|
|
4852
4485
|
}
|
|
4853
4486
|
|
|
4854
|
-
/* ---------- toolbars: one strip of tools, one stop for Tab ---------- */
|
|
4855
|
-
|
|
4856
|
-
/* the rules between tools are the strip's ink showing through a 2px gap */
|
|
4857
4487
|
.toolbar {
|
|
4858
4488
|
display: inline-flex;
|
|
4859
4489
|
gap: var(--line);
|
|
@@ -4901,8 +4531,6 @@ dialog.veil:focus {
|
|
|
4901
4531
|
background: var(--head);
|
|
4902
4532
|
}
|
|
4903
4533
|
|
|
4904
|
-
/* the ring sits inside the tool in the tool's own ink, so it reads on a pressed (inverted)
|
|
4905
|
-
tool and never lands on the strip's ink between tools */
|
|
4906
4534
|
.toolbar > :focus-visible {
|
|
4907
4535
|
outline-color: currentColor;
|
|
4908
4536
|
outline-offset: -4px;
|
|
@@ -4925,16 +4553,12 @@ dialog.veil:focus {
|
|
|
4925
4553
|
cursor: default;
|
|
4926
4554
|
}
|
|
4927
4555
|
|
|
4928
|
-
/* beside a vertical strip of tools, not over the next tool */
|
|
4929
4556
|
.tip[popover][data-side="right"] {
|
|
4930
4557
|
margin: 0 0 0 6px;
|
|
4931
4558
|
position-area: right;
|
|
4932
4559
|
position-try-fallbacks: flip-inline;
|
|
4933
4560
|
}
|
|
4934
4561
|
|
|
4935
|
-
/* ---------- disclosures: a line that opens what hangs under it ---------- */
|
|
4936
|
-
|
|
4937
|
-
/* the line is a summary in plain markup, or the component's button.disclosure-summary */
|
|
4938
4562
|
.disclosure > :is(summary, .disclosure-summary) {
|
|
4939
4563
|
display: flex;
|
|
4940
4564
|
align-items: center;
|
|
@@ -4958,7 +4582,6 @@ dialog.veil:focus {
|
|
|
4958
4582
|
display: none;
|
|
4959
4583
|
}
|
|
4960
4584
|
|
|
4961
|
-
/* the caret turns a quarter, in one step: the grid survives a right angle */
|
|
4962
4585
|
.disclosure[open] > summary .px-icon,
|
|
4963
4586
|
.disclosure > .disclosure-summary[aria-expanded="true"] .px-icon {
|
|
4964
4587
|
transform: rotate(90deg);
|
|
@@ -4977,7 +4600,9 @@ dialog.veil:focus {
|
|
|
4977
4600
|
cursor: default;
|
|
4978
4601
|
}
|
|
4979
4602
|
|
|
4980
|
-
.disclosure
|
|
4603
|
+
.disclosure
|
|
4604
|
+
> .disclosure-summary[aria-disabled="true"]:hover
|
|
4605
|
+
.disclosure-label {
|
|
4981
4606
|
border-bottom-color: transparent;
|
|
4982
4607
|
}
|
|
4983
4608
|
|
|
@@ -4985,7 +4610,6 @@ dialog.veil:focus {
|
|
|
4985
4610
|
margin-left: auto;
|
|
4986
4611
|
}
|
|
4987
4612
|
|
|
4988
|
-
/* the content hangs from the caret on a 1px guide, level with the summary's words */
|
|
4989
4613
|
.disclosure-body {
|
|
4990
4614
|
display: grid;
|
|
4991
4615
|
gap: var(--space-m);
|
|
@@ -4998,12 +4622,6 @@ dialog.veil:focus {
|
|
|
4998
4622
|
min-width: 0;
|
|
4999
4623
|
}
|
|
5000
4624
|
|
|
5001
|
-
/* ---------- the status bar: the quiet line along the bottom ---------- */
|
|
5002
|
-
|
|
5003
|
-
/* fixed along the bottom edge at the height StatusBar measures it to be (`--statusbar-h`,
|
|
5004
|
-
one line without Foldkit): the page, the rail, the stage, a banner and the toasts all stop
|
|
5005
|
-
above it, as they hang below the top bar. The status at the left, the keys at the right;
|
|
5006
|
-
narrow, the keys drop under the status rather than leaving the bar */
|
|
5007
4625
|
.statusbar {
|
|
5008
4626
|
position: fixed;
|
|
5009
4627
|
right: 0;
|
|
@@ -5042,13 +4660,6 @@ dialog.veil:focus {
|
|
|
5042
4660
|
color: var(--ink);
|
|
5043
4661
|
}
|
|
5044
4662
|
|
|
5045
|
-
/* ---------- the rail: a column of panels beside the deck, a drawer on a phone ---------- */
|
|
5046
|
-
|
|
5047
|
-
/* one element in two places: at rest, fixed down the left edge from the top bar's lower
|
|
5048
|
-
edge (as the stage hangs); on a phone the same element opens as a popover drawer. The reader's width, when they gave one, is --railed-width, which the view
|
|
5049
|
-
sets on .railed, so the page's padding and the rail's width follow it together; without one,
|
|
5050
|
-
--rail. It is not inherited: each box it sizes takes it from .railed by name, so a width that
|
|
5051
|
-
changes under a dragged splitter restyles those four and none of the rows inside them */
|
|
5052
4663
|
@property --railed-width {
|
|
5053
4664
|
syntax: "*";
|
|
5054
4665
|
inherits: false;
|
|
@@ -5085,10 +4696,6 @@ dialog.veil:focus {
|
|
|
5085
4696
|
min-width: 0;
|
|
5086
4697
|
}
|
|
5087
4698
|
|
|
5088
|
-
/* the rail's top stays put: what comes before its last panel keeps its height, and the last
|
|
5089
|
-
panel takes the room left, at most its own height, its bar, shelf and foot staying while
|
|
5090
|
-
its body scrolls (the padded body, or a flush body's list). The rail scrolls as a whole
|
|
5091
|
-
only when what comes before that panel is taller than the column */
|
|
5092
4699
|
.rail > .panel:last-child {
|
|
5093
4700
|
display: flex;
|
|
5094
4701
|
flex-direction: column;
|
|
@@ -5106,7 +4713,6 @@ dialog.veil:focus {
|
|
|
5106
4713
|
overflow-y: auto;
|
|
5107
4714
|
}
|
|
5108
4715
|
|
|
5109
|
-
/* a long name ends short of the bar's tools rather than wrapping the bar taller */
|
|
5110
4716
|
.rail .panel-tb h2 {
|
|
5111
4717
|
min-width: 0;
|
|
5112
4718
|
overflow: hidden;
|
|
@@ -5115,15 +4721,10 @@ dialog.veil:focus {
|
|
|
5115
4721
|
text-overflow: ellipsis;
|
|
5116
4722
|
}
|
|
5117
4723
|
|
|
5118
|
-
/* the toggle is the button itself in the bar's lead */
|
|
5119
4724
|
.rail-toggle {
|
|
5120
4725
|
display: contents;
|
|
5121
4726
|
}
|
|
5122
4727
|
|
|
5123
|
-
/* the splitter on the rail's right edge: a 12px strip from the edge outward, over the page's
|
|
5124
|
-
margin and never over the rail's own scrollbar, and beside the rail rather than in it (the
|
|
5125
|
-
rail scrolls, and its drawer's first Tab stop is its first control). It shows itself as a
|
|
5126
|
-
2px ink line down the edge while it is hovered or focused */
|
|
5127
4728
|
.rail-resize {
|
|
5128
4729
|
position: fixed;
|
|
5129
4730
|
top: anchor(--topbar bottom, 0px);
|
|
@@ -5160,11 +4761,6 @@ dialog.veil:focus {
|
|
|
5160
4761
|
display: none;
|
|
5161
4762
|
}
|
|
5162
4763
|
|
|
5163
|
-
/* folded: the first panel stands its title bar on end on the ground where the rail stood, the
|
|
5164
|
-
toggle at its top and the title and count reading down; the rest of the rail and the
|
|
5165
|
-
splitter are gone, and the deck takes the width. Above 900px only: the drawer opens whole.
|
|
5166
|
-
Folding and unfolding move in three steps, as the drawer enters, but never while a pointer
|
|
5167
|
-
drags the splitter, where the rail follows the pointer */
|
|
5168
4764
|
@media not (max-width: 900px) {
|
|
5169
4765
|
.railed.folded {
|
|
5170
4766
|
--railed-width: var(--rail-folded);
|
|
@@ -5197,7 +4793,8 @@ dialog.veil:focus {
|
|
|
5197
4793
|
transition-property: padding-left, width, left;
|
|
5198
4794
|
}
|
|
5199
4795
|
|
|
5200
|
-
:root[data-pixel-paper-dragging]
|
|
4796
|
+
:root[data-pixel-paper-dragging]
|
|
4797
|
+
:is(.railed, .railed > .rail, .railed > .bench) {
|
|
5201
4798
|
transition: none;
|
|
5202
4799
|
}
|
|
5203
4800
|
}
|
|
@@ -5212,7 +4809,6 @@ dialog.veil:focus {
|
|
|
5212
4809
|
display: none;
|
|
5213
4810
|
}
|
|
5214
4811
|
|
|
5215
|
-
/* a slice of the ground slides in from the left edge, in three steps */
|
|
5216
4812
|
.rail[popover]:popover-open {
|
|
5217
4813
|
inset: 0 auto 0 0;
|
|
5218
4814
|
width: min(var(--rail-drawer), calc(100vw - 40px));
|
|
@@ -5241,8 +4837,6 @@ dialog.veil:focus {
|
|
|
5241
4837
|
justify-self: start;
|
|
5242
4838
|
}
|
|
5243
4839
|
|
|
5244
|
-
/* the drawer opens and closes but never folds, so it prints no toggle, and the bar the
|
|
5245
|
-
toggle led keeps its own padding */
|
|
5246
4840
|
.panel-lead:has(> .rail-toggle) {
|
|
5247
4841
|
display: none;
|
|
5248
4842
|
}
|
|
@@ -5258,14 +4852,6 @@ dialog.veil:focus {
|
|
|
5258
4852
|
}
|
|
5259
4853
|
}
|
|
5260
4854
|
|
|
5261
|
-
/* ---------- the bench: a page's work, the window wide, under its head ---------- */
|
|
5262
|
-
|
|
5263
|
-
/* hung from the top bar's lower edge like the stage, down to the status bar, edge to edge, or
|
|
5264
|
-
from the rail's edge beside one (a fixed box takes nothing from .railed's padding). The head
|
|
5265
|
-
takes its own height while the work keeps at least --bench-work-min, or all but the head's
|
|
5266
|
-
first --bench-head-min (its padding and a small button: the rail's open button) on a window too short
|
|
5267
|
-
for both; past that the head scrolls itself. The work takes the rest and lays out what
|
|
5268
|
-
fills it (a reel's height is 100% of it). The page does not scroll */
|
|
5269
4855
|
.bench {
|
|
5270
4856
|
position: fixed;
|
|
5271
4857
|
top: anchor(--topbar bottom, 0px);
|
|
@@ -5283,10 +4869,6 @@ dialog.veil:focus {
|
|
|
5283
4869
|
left: var(--railed-width, var(--rail));
|
|
5284
4870
|
}
|
|
5285
4871
|
|
|
5286
|
-
/* the head lines up with a reel's windows, a reel's gutter in from the edge; the reel's own
|
|
5287
|
-
gutter is the space between the head and the windows. A scroller clips at its padding, so
|
|
5288
|
-
the head pads its foot by the ink a control prints past its box (a 3px shadow, a 4px focus
|
|
5289
|
-
ring) and hands that back to the work, which starts where it would */
|
|
5290
4872
|
.bench-head {
|
|
5291
4873
|
display: grid;
|
|
5292
4874
|
align-content: start;
|
|
@@ -5311,9 +4893,6 @@ dialog.veil:focus {
|
|
|
5311
4893
|
}
|
|
5312
4894
|
}
|
|
5313
4895
|
|
|
5314
|
-
/* ---------- the stage: the ground itself, under the top bar, for a canvas ---------- */
|
|
5315
|
-
|
|
5316
|
-
/* it does not scroll: what is on it pans. It hangs from the top bar's lower edge */
|
|
5317
4896
|
.stage {
|
|
5318
4897
|
position: fixed;
|
|
5319
4898
|
top: anchor(--topbar bottom, 0px);
|
|
@@ -5352,7 +4931,6 @@ dialog.veil:focus {
|
|
|
5352
4931
|
translate: -50% 0;
|
|
5353
4932
|
}
|
|
5354
4933
|
|
|
5355
|
-
/* the link dropped: the veil comes down over the work, which stops taking input */
|
|
5356
4934
|
.stage-paused {
|
|
5357
4935
|
position: absolute;
|
|
5358
4936
|
inset: 0;
|
|
@@ -5376,15 +4954,11 @@ dialog.veil:focus {
|
|
|
5376
4954
|
translate: -50% 0;
|
|
5377
4955
|
}
|
|
5378
4956
|
|
|
5379
|
-
/* along the bottom edge the canvas's tools lie flat */
|
|
5380
4957
|
.stage-tools .toolbar {
|
|
5381
4958
|
flex-direction: row;
|
|
5382
4959
|
}
|
|
5383
4960
|
}
|
|
5384
4961
|
|
|
5385
|
-
/* ---------- windows: a panel on a stage ---------- */
|
|
5386
|
-
|
|
5387
|
-
/* the panel's box and bar, filling whatever places it; the bar is trimmed to hold tools */
|
|
5388
4962
|
.window {
|
|
5389
4963
|
display: flex;
|
|
5390
4964
|
flex-direction: column;
|
|
@@ -5400,7 +4974,6 @@ dialog.veil:focus {
|
|
|
5400
4974
|
user-select: none;
|
|
5401
4975
|
}
|
|
5402
4976
|
|
|
5403
|
-
/* a lead (a reel's grip) trims the bar's left, as a panel's does */
|
|
5404
4977
|
.window > .panel-tb:has(> .panel-lead) {
|
|
5405
4978
|
padding-left: 3px;
|
|
5406
4979
|
}
|
|
@@ -5421,8 +4994,6 @@ dialog.veil:focus {
|
|
|
5421
4994
|
color: inherit;
|
|
5422
4995
|
}
|
|
5423
4996
|
|
|
5424
|
-
/* a child Submodel's tools come back as one element; the group is no box of its own, so its
|
|
5425
|
-
buttons take the bar's gap as the others do */
|
|
5426
4997
|
.window-tools {
|
|
5427
4998
|
display: contents;
|
|
5428
4999
|
}
|
|
@@ -5442,7 +5013,6 @@ dialog.veil:focus {
|
|
|
5442
5013
|
padding: 0;
|
|
5443
5014
|
}
|
|
5444
5015
|
|
|
5445
|
-
/* flush, what fills the body lets the window's border be its own */
|
|
5446
5016
|
.window.flush .window-body > :is(.code-surface, .file-tree, .diff-wrap) {
|
|
5447
5017
|
min-height: 100%;
|
|
5448
5018
|
border: 0;
|
|
@@ -5452,8 +5022,6 @@ dialog.veil:focus {
|
|
|
5452
5022
|
min-width: 0;
|
|
5453
5023
|
}
|
|
5454
5024
|
|
|
5455
|
-
/* ---------- the reel: a scrolling row of columns of panes ---------- */
|
|
5456
|
-
|
|
5457
5025
|
/* the reel takes its height from whatever holds it; the held copy hangs from it, outside the
|
|
5458
5026
|
scroller, whose containment would hold a fixed copy inside it */
|
|
5459
5027
|
.reel {
|
|
@@ -5461,8 +5029,6 @@ dialog.veil:focus {
|
|
|
5461
5029
|
min-height: 0;
|
|
5462
5030
|
}
|
|
5463
5031
|
|
|
5464
|
-
/* the scroller, sideways and, where a column is taller than the view, down. Its size is what
|
|
5465
|
-
a column's width (100cqw) and least height (100cqh) are shares of, so it takes no padding */
|
|
5466
5032
|
.reel-view {
|
|
5467
5033
|
height: 100%;
|
|
5468
5034
|
overflow: auto;
|
|
@@ -5470,8 +5036,6 @@ dialog.veil:focus {
|
|
|
5470
5036
|
container-type: size;
|
|
5471
5037
|
}
|
|
5472
5038
|
|
|
5473
|
-
/* the columns in a row, and the panes' containing block. Each pane is pinned to its slot by
|
|
5474
|
-
anchor positioning, so a move changes where a pane is drawn and never its place in the page */
|
|
5475
5039
|
.reel-track {
|
|
5476
5040
|
position: relative;
|
|
5477
5041
|
display: flex;
|
|
@@ -5489,10 +5053,6 @@ dialog.veil:focus {
|
|
|
5489
5053
|
width: var(--reel-gutter);
|
|
5490
5054
|
}
|
|
5491
5055
|
|
|
5492
|
-
/* a column is width × (view − gutter) − gutter wide, so columns whose widths add up to one
|
|
5493
|
-
fill the view with a gutter between each and at either side; never under the minimum. It is
|
|
5494
|
-
the view's height less a gutter above and below, and taller where its panes need more, which
|
|
5495
|
-
the view scrolls to */
|
|
5496
5056
|
.reel-column {
|
|
5497
5057
|
display: flex;
|
|
5498
5058
|
flex: none;
|
|
@@ -5504,7 +5064,6 @@ dialog.veil:focus {
|
|
|
5504
5064
|
min-height: calc(100cqh - 2 * var(--reel-gutter));
|
|
5505
5065
|
}
|
|
5506
5066
|
|
|
5507
|
-
/* a slot holds a pane's place, its share of the column by weight; the pane is drawn over it */
|
|
5508
5067
|
.reel-slot {
|
|
5509
5068
|
position: relative;
|
|
5510
5069
|
flex: var(--reel-weight, 1) 1 0;
|
|
@@ -5512,7 +5071,6 @@ dialog.veil:focus {
|
|
|
5512
5071
|
anchor-name: var(--reel-anchor);
|
|
5513
5072
|
}
|
|
5514
5073
|
|
|
5515
|
-
/* the splitters: the gutter between two panes, and the one after each column */
|
|
5516
5074
|
.reel-split {
|
|
5517
5075
|
position: relative;
|
|
5518
5076
|
flex: none;
|
|
@@ -5526,8 +5084,6 @@ dialog.veil:focus {
|
|
|
5526
5084
|
touch-action: none;
|
|
5527
5085
|
}
|
|
5528
5086
|
|
|
5529
|
-
/* a splitter shows itself as a 2px ink line along the middle of its gutter while it is
|
|
5530
|
-
hovered or focused; focused, the ring is the system's */
|
|
5531
5087
|
.reel-resize::after,
|
|
5532
5088
|
.reel-split::after {
|
|
5533
5089
|
content: "";
|
|
@@ -5561,8 +5117,6 @@ dialog.veil:focus {
|
|
|
5561
5117
|
outline-offset: -2px;
|
|
5562
5118
|
}
|
|
5563
5119
|
|
|
5564
|
-
/* where a drop would land: a 2px dashed ink line down the gap it would open, or across the
|
|
5565
|
-
gutter between the panes it would join, drawn over the layout so nothing moves under it */
|
|
5566
5120
|
.reel-gap.drop-here::before {
|
|
5567
5121
|
content: "";
|
|
5568
5122
|
position: absolute;
|
|
@@ -5590,12 +5144,10 @@ dialog.veil:focus {
|
|
|
5590
5144
|
bottom: calc(var(--reel-gutter) / -2 - 1px);
|
|
5591
5145
|
}
|
|
5592
5146
|
|
|
5593
|
-
/* the panes' layer is no box of its own: each pane's containing block is the track */
|
|
5594
5147
|
.reel-panes {
|
|
5595
5148
|
display: contents;
|
|
5596
5149
|
}
|
|
5597
5150
|
|
|
5598
|
-
/* a pane or a column scrolled into view keeps its gutter showing */
|
|
5599
5151
|
.reel-pane,
|
|
5600
5152
|
.reel-column {
|
|
5601
5153
|
scroll-margin: var(--reel-gutter);
|
|
@@ -5611,8 +5163,6 @@ dialog.veil:focus {
|
|
|
5611
5163
|
min-width: 0;
|
|
5612
5164
|
}
|
|
5613
5165
|
|
|
5614
|
-
/* the focused pane lifts onto the card shadow; taking focus itself (it holds no control), it
|
|
5615
|
-
keeps the system's ring outside its window */
|
|
5616
5166
|
.reel-pane.focused > .window {
|
|
5617
5167
|
box-shadow: var(--shadow-card);
|
|
5618
5168
|
}
|
|
@@ -5630,8 +5180,6 @@ dialog.veil:focus {
|
|
|
5630
5180
|
opacity: var(--fade-dragged);
|
|
5631
5181
|
}
|
|
5632
5182
|
|
|
5633
|
-
/* under tabs, the reel is its tab list over the scroller, which takes the height left. The
|
|
5634
|
-
list sits a gutter in from the reel's edges, as the windows do */
|
|
5635
5183
|
.reel.tabbed {
|
|
5636
5184
|
display: flex;
|
|
5637
5185
|
flex-direction: column;
|
|
@@ -5649,8 +5197,6 @@ dialog.veil:focus {
|
|
|
5649
5197
|
margin: var(--reel-gutter) var(--reel-gutter) 0;
|
|
5650
5198
|
}
|
|
5651
5199
|
|
|
5652
|
-
/* a tab holds a kind glyph before its words, and gives up width before the list overflows:
|
|
5653
|
-
its words end in an ellipsis */
|
|
5654
5200
|
.reel-tabs button {
|
|
5655
5201
|
display: inline-flex;
|
|
5656
5202
|
align-items: center;
|
|
@@ -5664,7 +5210,6 @@ dialog.veil:focus {
|
|
|
5664
5210
|
text-overflow: ellipsis;
|
|
5665
5211
|
}
|
|
5666
5212
|
|
|
5667
|
-
/* the one slot under tabs: the view less a gutter at every edge, every pane pinned to it */
|
|
5668
5213
|
.reel-stage {
|
|
5669
5214
|
flex: 1 1 0;
|
|
5670
5215
|
height: calc(100cqh - 2 * var(--reel-gutter));
|
|
@@ -5672,20 +5217,15 @@ dialog.veil:focus {
|
|
|
5672
5217
|
margin-inline: var(--reel-gutter);
|
|
5673
5218
|
}
|
|
5674
5219
|
|
|
5675
|
-
/* a pane behind the selected tab keeps its place and its size, so what sizes itself by its
|
|
5676
|
-
box (a terminal) is not resized as the tabs change; it is only not drawn */
|
|
5677
5220
|
.reel-pane.behind {
|
|
5678
5221
|
visibility: hidden;
|
|
5679
5222
|
}
|
|
5680
5223
|
|
|
5681
|
-
/* only the grips lift: a pane's text selects and its terminal takes the pointer */
|
|
5682
5224
|
[data-reel-grip] {
|
|
5683
5225
|
cursor: grab;
|
|
5684
5226
|
touch-action: none;
|
|
5685
5227
|
}
|
|
5686
5228
|
|
|
5687
|
-
/* the held copy, following the pointer from the window's corner (its transform puts it at the
|
|
5688
|
-
pointer): the title bar alone, tinted head on the card shadow */
|
|
5689
5229
|
.reel-lift {
|
|
5690
5230
|
position: fixed;
|
|
5691
5231
|
top: 0;
|
|
@@ -5700,11 +5240,6 @@ dialog.veil:focus {
|
|
|
5700
5240
|
box-shadow: var(--shadow-card);
|
|
5701
5241
|
}
|
|
5702
5242
|
|
|
5703
|
-
/* ---------- images and media: a picture or a player in a 2px ink frame, at rest ---------- */
|
|
5704
|
-
|
|
5705
|
-
/* a figure sits at rest wherever it is placed (a panel, prose): no print shadow. The frame
|
|
5706
|
-
keeps --ratio from the first paint, so nothing moves when the picture arrives; a figure
|
|
5707
|
-
given a width prints at it and shrinks to fit, never grows */
|
|
5708
5243
|
.image,
|
|
5709
5244
|
.video {
|
|
5710
5245
|
display: grid;
|
|
@@ -5713,7 +5248,6 @@ dialog.veil:focus {
|
|
|
5713
5248
|
min-width: 0;
|
|
5714
5249
|
}
|
|
5715
5250
|
|
|
5716
|
-
/* the ratio is the picture's, inside the border */
|
|
5717
5251
|
.image-frame,
|
|
5718
5252
|
.media-screen {
|
|
5719
5253
|
position: relative;
|
|
@@ -5739,7 +5273,6 @@ dialog.veil:focus {
|
|
|
5739
5273
|
object-fit: cover;
|
|
5740
5274
|
}
|
|
5741
5275
|
|
|
5742
|
-
/* a video is never cropped */
|
|
5743
5276
|
.media-screen > video {
|
|
5744
5277
|
object-fit: contain;
|
|
5745
5278
|
}
|
|
@@ -5750,7 +5283,6 @@ dialog.veil:focus {
|
|
|
5750
5283
|
color: var(--paper);
|
|
5751
5284
|
}
|
|
5752
5285
|
|
|
5753
|
-
/* under the picture, which paints over it when it arrives: head tint and the picture glyph */
|
|
5754
5286
|
.image-wait {
|
|
5755
5287
|
position: absolute;
|
|
5756
5288
|
inset: 0;
|
|
@@ -5760,13 +5292,10 @@ dialog.veil:focus {
|
|
|
5760
5292
|
color: var(--on-head);
|
|
5761
5293
|
}
|
|
5762
5294
|
|
|
5763
|
-
/* held loading (.waiting, never the loading line's .loading): the placeholder shows whatever
|
|
5764
|
-
the picture does */
|
|
5765
5295
|
.image.waiting img {
|
|
5766
5296
|
visibility: hidden;
|
|
5767
5297
|
}
|
|
5768
5298
|
|
|
5769
|
-
/* waiting for data: the loading line on a paper slip over the picture */
|
|
5770
5299
|
.media-wait {
|
|
5771
5300
|
position: absolute;
|
|
5772
5301
|
inset: 0;
|
|
@@ -5782,8 +5311,6 @@ dialog.veil:focus {
|
|
|
5782
5311
|
color: var(--ink);
|
|
5783
5312
|
}
|
|
5784
5313
|
|
|
5785
|
-
/* failed: the frame turns red and its notice fills it, unboxed, so the red rule is the
|
|
5786
|
-
frame's own */
|
|
5787
5314
|
.image.broken > .image-frame,
|
|
5788
5315
|
.video.broken > .media-box,
|
|
5789
5316
|
.audio.broken {
|
|
@@ -5823,7 +5350,6 @@ dialog.veil:focus {
|
|
|
5823
5350
|
margin-left: auto;
|
|
5824
5351
|
}
|
|
5825
5352
|
|
|
5826
|
-
/* the player's controls: glyph buttons, the place as cells, the time */
|
|
5827
5353
|
.media-bar {
|
|
5828
5354
|
display: flex;
|
|
5829
5355
|
flex-wrap: wrap;
|
|
@@ -5861,7 +5387,6 @@ dialog.veil:focus {
|
|
|
5861
5387
|
white-space: nowrap;
|
|
5862
5388
|
}
|
|
5863
5389
|
|
|
5864
|
-
/* cells to see, a native range over them (unseen) to use */
|
|
5865
5390
|
.media-seek {
|
|
5866
5391
|
position: relative;
|
|
5867
5392
|
display: flex;
|
|
@@ -5889,7 +5414,6 @@ dialog.veil:focus {
|
|
|
5889
5414
|
cursor: pointer;
|
|
5890
5415
|
}
|
|
5891
5416
|
|
|
5892
|
-
/* a thin thumb, so the place under the pointer is the place it seeks to */
|
|
5893
5417
|
.media-seek > input::-webkit-slider-thumb {
|
|
5894
5418
|
appearance: none;
|
|
5895
5419
|
width: 2px;
|
|
@@ -5901,7 +5425,6 @@ dialog.veil:focus {
|
|
|
5901
5425
|
border: 0;
|
|
5902
5426
|
}
|
|
5903
5427
|
|
|
5904
|
-
/* disabled while broken, held (aria-disabled) while the length is unknown */
|
|
5905
5428
|
.media-seek > input:is(:disabled, [aria-disabled="true"]) {
|
|
5906
5429
|
cursor: default;
|
|
5907
5430
|
}
|
|
@@ -5935,14 +5458,14 @@ dialog.veil:focus {
|
|
|
5935
5458
|
margin-left: 4px;
|
|
5936
5459
|
}
|
|
5937
5460
|
|
|
5938
|
-
/* ---------- toasts: printed slips at the bottom right, the newest lowest ---------- */
|
|
5939
|
-
|
|
5940
5461
|
/* the page's stack: @foldkit/ui's Toast container, fixed at the bottom right above the page
|
|
5941
5462
|
and inside the open dialog when Toaster is rendered there. Its placement is inline (16px
|
|
5942
5463
|
padding from the corner), so the stylesheet raises it clear of a banner, its anchor when one
|
|
5943
5464
|
is showing, or of a status bar, and sets the gap. A phone spans it across the bottom */
|
|
5944
5465
|
.toasts .toast-stack {
|
|
5945
|
-
bottom: calc(
|
|
5466
|
+
bottom: calc(
|
|
5467
|
+
anchor(--banner top, calc(var(--statusbar-h) + 4px)) - 4px
|
|
5468
|
+
) !important;
|
|
5946
5469
|
gap: 10px !important;
|
|
5947
5470
|
width: min(392px, 100vw);
|
|
5948
5471
|
}
|
|
@@ -5951,8 +5474,6 @@ dialog.veil:focus {
|
|
|
5951
5474
|
anchor-name: --banner;
|
|
5952
5475
|
}
|
|
5953
5476
|
|
|
5954
|
-
/* a notice on the button's print. On the ground every slip is closed in ink (an error in
|
|
5955
|
-
red), so a quiet one keeps the ink border and speaks through its tinted glyph box */
|
|
5956
5477
|
.toast {
|
|
5957
5478
|
box-shadow: var(--shadow-button);
|
|
5958
5479
|
}
|
|
@@ -5971,7 +5492,6 @@ dialog.veil:focus {
|
|
|
5971
5492
|
margin: -2px -4px -2px 0;
|
|
5972
5493
|
}
|
|
5973
5494
|
|
|
5974
|
-
/* a slip arrives in three steps, like a card; it leaves at once */
|
|
5975
5495
|
.toasts .toast {
|
|
5976
5496
|
animation: toastIn var(--motion-card) steps(3, end);
|
|
5977
5497
|
}
|
|
@@ -5990,8 +5510,6 @@ dialog.veil:focus {
|
|
|
5990
5510
|
}
|
|
5991
5511
|
}
|
|
5992
5512
|
|
|
5993
|
-
/* ---------- reduced motion ---------- */
|
|
5994
|
-
|
|
5995
5513
|
@media (prefers-reduced-motion: reduce) {
|
|
5996
5514
|
.cursor,
|
|
5997
5515
|
.veil-backdrop,
|