@panphora/bevel 0.1.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/LICENSE +16 -0
- package/README.md +226 -0
- package/bevel-fonts.css +16 -0
- package/bevel.css +3075 -0
- package/bevel.js +2126 -0
- package/dist/react/components/activity-feed.d.ts +89 -0
- package/dist/react/components/activity-feed.js +54 -0
- package/dist/react/components/alert-dialog.d.ts +14 -0
- package/dist/react/components/alert-dialog.js +19 -0
- package/dist/react/components/app-shell.d.ts +98 -0
- package/dist/react/components/app-shell.js +86 -0
- package/dist/react/components/app-toolbar.d.ts +19 -0
- package/dist/react/components/app-toolbar.js +22 -0
- package/dist/react/components/avatar-group.d.ts +67 -0
- package/dist/react/components/avatar-group.js +49 -0
- package/dist/react/components/badge-and-pill.d.ts +34 -0
- package/dist/react/components/badge-and-pill.js +12 -0
- package/dist/react/components/breadcrumbs.d.ts +56 -0
- package/dist/react/components/breadcrumbs.js +44 -0
- package/dist/react/components/bulk-bar.d.ts +22 -0
- package/dist/react/components/bulk-bar.js +59 -0
- package/dist/react/components/button.d.ts +15 -0
- package/dist/react/components/button.js +20 -0
- package/dist/react/components/callout-and-hint.d.ts +17 -0
- package/dist/react/components/callout-and-hint.js +8 -0
- package/dist/react/components/checkbox.d.ts +5 -0
- package/dist/react/components/checkbox.js +13 -0
- package/dist/react/components/chip.d.ts +149 -0
- package/dist/react/components/chip.js +29 -0
- package/dist/react/components/code-block.d.ts +50 -0
- package/dist/react/components/code-block.js +77 -0
- package/dist/react/components/code-editor.d.ts +122 -0
- package/dist/react/components/code-editor.js +695 -0
- package/dist/react/components/column-manager.d.ts +28 -0
- package/dist/react/components/column-manager.js +85 -0
- package/dist/react/components/combobox.d.ts +32 -0
- package/dist/react/components/combobox.js +37 -0
- package/dist/react/components/data-grid.d.ts +108 -0
- package/dist/react/components/data-grid.js +159 -0
- package/dist/react/components/data-table.d.ts +2 -0
- package/dist/react/components/data-table.js +6 -0
- package/dist/react/components/date.d.ts +23 -0
- package/dist/react/components/date.js +11 -0
- package/dist/react/components/details.d.ts +13 -0
- package/dist/react/components/details.js +20 -0
- package/dist/react/components/dialog.d.ts +74 -0
- package/dist/react/components/dialog.js +31 -0
- package/dist/react/components/diff-view.d.ts +73 -0
- package/dist/react/components/diff-view.js +68 -0
- package/dist/react/components/documents.d.ts +70 -0
- package/dist/react/components/documents.js +10 -0
- package/dist/react/components/drawer.d.ts +45 -0
- package/dist/react/components/drawer.js +35 -0
- package/dist/react/components/editable-grid-cells.d.ts +32 -0
- package/dist/react/components/editable-grid-cells.js +116 -0
- package/dist/react/components/eyebrow-kicker-lede-pull-quote.d.ts +39 -0
- package/dist/react/components/eyebrow-kicker-lede-pull-quote.js +12 -0
- package/dist/react/components/field.d.ts +32 -0
- package/dist/react/components/field.js +27 -0
- package/dist/react/components/file-tree.d.ts +75 -0
- package/dist/react/components/file-tree.js +247 -0
- package/dist/react/components/file.d.ts +43 -0
- package/dist/react/components/file.js +73 -0
- package/dist/react/components/files-table.d.ts +174 -0
- package/dist/react/components/files-table.js +237 -0
- package/dist/react/components/filter-builder.d.ts +37 -0
- package/dist/react/components/filter-builder.js +109 -0
- package/dist/react/components/form-error-summary.d.ts +16 -0
- package/dist/react/components/form-error-summary.js +49 -0
- package/dist/react/components/icon-button.d.ts +8 -0
- package/dist/react/components/icon-button.js +14 -0
- package/dist/react/components/icon.d.ts +7 -0
- package/dist/react/components/icon.js +15 -0
- package/dist/react/components/image.d.ts +72 -0
- package/dist/react/components/image.js +24 -0
- package/dist/react/components/inline-edit.d.ts +70 -0
- package/dist/react/components/inline-edit.js +149 -0
- package/dist/react/components/input.d.ts +29 -0
- package/dist/react/components/input.js +20 -0
- package/dist/react/components/kanban-board.d.ts +140 -0
- package/dist/react/components/kanban-board.js +374 -0
- package/dist/react/components/layout.d.ts +51 -0
- package/dist/react/components/layout.js +28 -0
- package/dist/react/components/list.d.ts +28 -0
- package/dist/react/components/list.js +6 -0
- package/dist/react/components/masthead-and-verdict.d.ts +60 -0
- package/dist/react/components/masthead-and-verdict.js +8 -0
- package/dist/react/components/menu.d.ts +26 -0
- package/dist/react/components/menu.js +31 -0
- package/dist/react/components/multi-select-picker.d.ts +49 -0
- package/dist/react/components/multi-select-picker.js +20 -0
- package/dist/react/components/note.d.ts +33 -0
- package/dist/react/components/note.js +8 -0
- package/dist/react/components/number-field.d.ts +16 -0
- package/dist/react/components/number-field.js +17 -0
- package/dist/react/components/pagination.d.ts +45 -0
- package/dist/react/components/pagination.js +87 -0
- package/dist/react/components/persistent-action-banner.d.ts +71 -0
- package/dist/react/components/persistent-action-banner.js +39 -0
- package/dist/react/components/popconfirm.d.ts +42 -0
- package/dist/react/components/popconfirm.js +59 -0
- package/dist/react/components/popover.d.ts +16 -0
- package/dist/react/components/popover.js +21 -0
- package/dist/react/components/progress-and-gauge.d.ts +44 -0
- package/dist/react/components/progress-and-gauge.js +19 -0
- package/dist/react/components/radio.d.ts +7 -0
- package/dist/react/components/radio.js +13 -0
- package/dist/react/components/rich-text-toolbar.d.ts +26 -0
- package/dist/react/components/rich-text-toolbar.js +64 -0
- package/dist/react/components/rows-and-card.d.ts +88 -0
- package/dist/react/components/rows-and-card.js +10 -0
- package/dist/react/components/save-status-indicator.d.ts +11 -0
- package/dist/react/components/save-status-indicator.js +33 -0
- package/dist/react/components/segmented-control.d.ts +21 -0
- package/dist/react/components/segmented-control.js +15 -0
- package/dist/react/components/select.d.ts +29 -0
- package/dist/react/components/select.js +29 -0
- package/dist/react/components/selectable-cards.d.ts +30 -0
- package/dist/react/components/selectable-cards.js +29 -0
- package/dist/react/components/settings-rows.d.ts +51 -0
- package/dist/react/components/settings-rows.js +8 -0
- package/dist/react/components/sidebar-nav.d.ts +77 -0
- package/dist/react/components/sidebar-nav.js +41 -0
- package/dist/react/components/skeleton-and-empty.d.ts +51 -0
- package/dist/react/components/skeleton-and-empty.js +14 -0
- package/dist/react/components/slider.d.ts +19 -0
- package/dist/react/components/slider.js +17 -0
- package/dist/react/components/small-charts.d.ts +60 -0
- package/dist/react/components/small-charts.js +76 -0
- package/dist/react/components/sortable.d.ts +30 -0
- package/dist/react/components/sortable.js +85 -0
- package/dist/react/components/split-button.d.ts +38 -0
- package/dist/react/components/split-button.js +43 -0
- package/dist/react/components/split-panes.d.ts +35 -0
- package/dist/react/components/split-panes.js +102 -0
- package/dist/react/components/stat-tiles.d.ts +54 -0
- package/dist/react/components/stat-tiles.js +8 -0
- package/dist/react/components/steps.d.ts +11 -0
- package/dist/react/components/steps.js +13 -0
- package/dist/react/components/switch.d.ts +6 -0
- package/dist/react/components/switch.js +13 -0
- package/dist/react/components/table.d.ts +61 -0
- package/dist/react/components/table.js +6 -0
- package/dist/react/components/tabs.d.ts +7 -0
- package/dist/react/components/tabs.js +13 -0
- package/dist/react/components/tags.d.ts +33 -0
- package/dist/react/components/tags.js +83 -0
- package/dist/react/components/textarea.d.ts +10 -0
- package/dist/react/components/textarea.js +6 -0
- package/dist/react/components/toast.d.ts +35 -0
- package/dist/react/components/toast.js +90 -0
- package/dist/react/components/tooltip-and-key.d.ts +20 -0
- package/dist/react/components/tooltip-and-key.js +20 -0
- package/dist/react/components/tree-view.d.ts +34 -0
- package/dist/react/components/tree-view.js +118 -0
- package/dist/react/components/upload-dropzone.d.ts +92 -0
- package/dist/react/components/upload-dropzone.js +116 -0
- package/dist/react/components/wizard-shell.d.ts +78 -0
- package/dist/react/components/wizard-shell.js +176 -0
- package/dist/react/fonts.css.d.ts +1 -0
- package/dist/react/index.d.ts +76 -0
- package/dist/react/index.js +77 -0
- package/dist/react/integrations/quickcrop.d.ts +58 -0
- package/dist/react/integrations/quickcrop.js +137 -0
- package/dist/react/integrations/richclay.d.ts +43 -0
- package/dist/react/integrations/richclay.js +129 -0
- package/dist/react/internal/classes.d.ts +3 -0
- package/dist/react/internal/classes.js +10 -0
- package/dist/react/internal/close-mark.d.ts +1 -0
- package/dist/react/internal/close-mark.js +10 -0
- package/dist/react/internal/controllable-state.d.ts +9 -0
- package/dist/react/internal/controllable-state.js +22 -0
- package/dist/react/internal/drop-effect.d.ts +28 -0
- package/dist/react/internal/drop-effect.js +8 -0
- package/dist/react/internal/form-reset.d.ts +2 -0
- package/dist/react/internal/form-reset.js +22 -0
- package/dist/react/internal/format.d.ts +1 -0
- package/dist/react/internal/format.js +14 -0
- package/dist/react/internal/link.d.ts +2 -0
- package/dist/react/internal/link.js +8 -0
- package/dist/react/internal/part.d.ts +20 -0
- package/dist/react/internal/part.js +47 -0
- package/dist/react/internal/pointer-session.d.ts +8 -0
- package/dist/react/internal/pointer-session.js +60 -0
- package/dist/react/internal/refs.d.ts +2 -0
- package/dist/react/internal/refs.js +22 -0
- package/dist/react/internal/rich-text.d.ts +28 -0
- package/dist/react/internal/rich-text.js +4 -0
- package/dist/react/internal/table-context.d.ts +39 -0
- package/dist/react/internal/table-context.js +12 -0
- package/dist/react/internal/use-object-url.d.ts +1 -0
- package/dist/react/internal/use-object-url.js +15 -0
- package/dist/react/layout.css +274 -0
- package/dist/react/layout.css.d.ts +1 -0
- package/dist/react/models/filter.d.ts +31 -0
- package/dist/react/models/filter.js +79 -0
- package/dist/react/models/kanban.d.ts +51 -0
- package/dist/react/models/kanban.js +35 -0
- package/dist/react/models/reorder.d.ts +9 -0
- package/dist/react/models/reorder.js +23 -0
- package/dist/react/models/table.d.ts +85 -0
- package/dist/react/models/table.js +144 -0
- package/dist/react/models/tree.d.ts +16 -0
- package/dist/react/models/tree.js +26 -0
- package/dist/react/provider.d.ts +18 -0
- package/dist/react/provider.js +31 -0
- package/dist/react/recipes/context-hypercms.d.ts +17 -0
- package/dist/react/recipes/context-hypercms.js +71 -0
- package/dist/react/recipes/context-quickcrop.d.ts +8 -0
- package/dist/react/recipes/context-quickcrop.js +49 -0
- package/dist/react/theme.css +8004 -0
- package/dist/react/theme.css.d.ts +1 -0
- package/examples/README.md +34 -0
- package/examples/components/activity-feed.html +28 -0
- package/examples/components/app-shell.html +12 -0
- package/examples/components/app-toolbar.html +38 -0
- package/examples/components/avatar-group.html +27 -0
- package/examples/components/breadcrumbs.html +26 -0
- package/examples/components/bulk-bar.html +22 -0
- package/examples/components/code-block.html +12 -0
- package/examples/components/code-editor.html +25 -0
- package/examples/components/column-manager.html +9 -0
- package/examples/components/combobox.html +13 -0
- package/examples/components/context-hypercms.css +41 -0
- package/examples/components/context-hypercms.html +40 -0
- package/examples/components/context-hypercms.js +62 -0
- package/examples/components/context-quickcrop.html +137 -0
- package/examples/components/diff-view.html +9 -0
- package/examples/components/drawer.html +11 -0
- package/examples/components/editable-grid-cells.html +9 -0
- package/examples/components/file-browser.html +53 -0
- package/examples/components/file-tree.html +34 -0
- package/examples/components/files-table.html +80 -0
- package/examples/components/filter-builder.html +11 -0
- package/examples/components/form-error-summary.html +11 -0
- package/examples/components/index.html +51 -0
- package/examples/components/inline-edit.html +42 -0
- package/examples/components/kanban-board.html +42 -0
- package/examples/components/manifest.json +3279 -0
- package/examples/components/modal.html +11 -0
- package/examples/components/multi-select-picker.html +13 -0
- package/examples/components/pagination.html +32 -0
- package/examples/components/persistent-action-banner.html +23 -0
- package/examples/components/popconfirm.html +13 -0
- package/examples/components/popover-menu.html +13 -0
- package/examples/components/reference/baseline/DECISIONS.md +85 -0
- package/examples/components/reference/baseline/README.md +58 -0
- package/examples/components/reference/baseline/bevel-fonts.css +16 -0
- package/examples/components/reference/baseline/bevel.css +1339 -0
- package/examples/components/reference/baseline/bevel.js +496 -0
- package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-mono.txt +93 -0
- package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-sans.txt +93 -0
- package/examples/components/reference/baseline/fonts/LICENSE-newsreader.txt +93 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
- package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
- package/examples/components/reference/fable/IMPROVEMENTS.md +106 -0
- package/examples/components/reference/fable/PARENT-REPAIRS.md +17 -0
- package/examples/components/reference/fable/__pycache__/build_repairs.cpython-311.pyc +0 -0
- package/examples/components/reference/fable/__pycache__/kanban.cpython-311.pyc +0 -0
- package/examples/components/reference/fable/as-authored/IMPROVEMENTS-completed.md +106 -0
- package/examples/components/reference/fable/as-authored/base-astra.css +17 -0
- package/examples/components/reference/fable/as-authored/base-parent.css +416 -0
- package/examples/components/reference/fable/as-authored/build.py +858 -0
- package/examples/components/reference/fable/as-authored/fable.css +823 -0
- package/examples/components/reference/fable/as-authored/kanban-completed.css +235 -0
- package/examples/components/reference/fable/as-authored/kanban-completed.html +53 -0
- package/examples/components/reference/fable/as-authored/kanban-completed.py +212 -0
- package/examples/components/reference/fable/as-authored/kanban.py +207 -0
- package/examples/components/reference/fable/base-astra.css +17 -0
- package/examples/components/reference/fable/base-parent.css +416 -0
- package/examples/components/reference/fable/build.py +858 -0
- package/examples/components/reference/fable/build_repairs.py +25 -0
- package/examples/components/reference/fable/components/activity-feed.html +3 -0
- package/examples/components/reference/fable/components/app-toolbar.html +3 -0
- package/examples/components/reference/fable/components/avatar-group.html +4 -0
- package/examples/components/reference/fable/components/breadcrumbs.html +3 -0
- package/examples/components/reference/fable/components/code-block.html +9 -0
- package/examples/components/reference/fable/components/column-manager.html +3 -0
- package/examples/components/reference/fable/components/combobox.html +6 -0
- package/examples/components/reference/fable/components/context-hypercms.html +3 -0
- package/examples/components/reference/fable/components/context-quickcrop.html +4 -0
- package/examples/components/reference/fable/components/diff-view.html +13 -0
- package/examples/components/reference/fable/components/drawer.html +3 -0
- package/examples/components/reference/fable/components/editable-grid-cells.html +3 -0
- package/examples/components/reference/fable/components/filter-builder.html +3 -0
- package/examples/components/reference/fable/components/form-error-summary.html +4 -0
- package/examples/components/reference/fable/components/inline-edit.html +3 -0
- package/examples/components/reference/fable/components/kanban-board.html +53 -0
- package/examples/components/reference/fable/components/modal.html +3 -0
- package/examples/components/reference/fable/components/multi-select-picker.html +5 -0
- package/examples/components/reference/fable/components/pagination.html +3 -0
- package/examples/components/reference/fable/components/persistent-action-banner.html +4 -0
- package/examples/components/reference/fable/components/popconfirm.html +5 -0
- package/examples/components/reference/fable/components/popover-menu.html +3 -0
- package/examples/components/reference/fable/components/rich-text-toolbar.html +3 -0
- package/examples/components/reference/fable/components/save-status-indicator.html +2 -0
- package/examples/components/reference/fable/components/selectable-cards.html +3 -0
- package/examples/components/reference/fable/components/settings-rows.html +3 -0
- package/examples/components/reference/fable/components/sidebar-nav.html +4 -0
- package/examples/components/reference/fable/components/small-charts.html +5 -0
- package/examples/components/reference/fable/components/split-button.html +4 -0
- package/examples/components/reference/fable/components/split-panes.html +8 -0
- package/examples/components/reference/fable/components/stat-tiles.html +3 -0
- package/examples/components/reference/fable/components/toast-stack.html +5 -0
- package/examples/components/reference/fable/components/tree-view.html +4 -0
- package/examples/components/reference/fable/components/upload-dropzone.html +6 -0
- package/examples/components/reference/fable/components/wizard-shell.html +3 -0
- package/examples/components/reference/fable/coverage.json +414 -0
- package/examples/components/reference/fable/fable.css +823 -0
- package/examples/components/reference/fable/index.html +5 -0
- package/examples/components/reference/fable/kanban.css +237 -0
- package/examples/components/reference/fable/kanban.py +212 -0
- package/examples/components/reference/fable/parent-repairs.css +9 -0
- package/examples/components/reference/fixtures/data.json +102 -0
- package/examples/components/reference/fixtures/host.js +47 -0
- package/examples/components/reference/fixtures/static-host.js +39 -0
- package/examples/components/reference/fixtures/workspace.jpg +0 -0
- package/examples/components/reference/parent/CHANGES.md +179 -0
- package/examples/components/reference/parent/__pycache__/kanban.cpython-311.pyc +0 -0
- package/examples/components/reference/parent/base-astra.css +17 -0
- package/examples/components/reference/parent/base-parent.css +416 -0
- package/examples/components/reference/parent/build.py +148 -0
- package/examples/components/reference/parent/components/activity-feed.html +2 -0
- package/examples/components/reference/parent/components/app-toolbar.html +2 -0
- package/examples/components/reference/parent/components/avatar-group.html +4 -0
- package/examples/components/reference/parent/components/breadcrumbs.html +2 -0
- package/examples/components/reference/parent/components/code-block.html +8 -0
- package/examples/components/reference/parent/components/column-manager.html +2 -0
- package/examples/components/reference/parent/components/combobox.html +6 -0
- package/examples/components/reference/parent/components/context-hypercms.html +2 -0
- package/examples/components/reference/parent/components/context-quickcrop.html +4 -0
- package/examples/components/reference/parent/components/diff-view.html +4 -0
- package/examples/components/reference/parent/components/drawer.html +2 -0
- package/examples/components/reference/parent/components/editable-grid-cells.html +2 -0
- package/examples/components/reference/parent/components/filter-builder.html +2 -0
- package/examples/components/reference/parent/components/form-error-summary.html +2 -0
- package/examples/components/reference/parent/components/inline-edit.html +2 -0
- package/examples/components/reference/parent/components/kanban-board.html +84 -0
- package/examples/components/reference/parent/components/modal.html +2 -0
- package/examples/components/reference/parent/components/multi-select-picker.html +5 -0
- package/examples/components/reference/parent/components/pagination.html +2 -0
- package/examples/components/reference/parent/components/persistent-action-banner.html +4 -0
- package/examples/components/reference/parent/components/popconfirm.html +5 -0
- package/examples/components/reference/parent/components/popover-menu.html +2 -0
- package/examples/components/reference/parent/components/rich-text-toolbar.html +2 -0
- package/examples/components/reference/parent/components/save-status-indicator.html +2 -0
- package/examples/components/reference/parent/components/selectable-cards.html +2 -0
- package/examples/components/reference/parent/components/settings-rows.html +2 -0
- package/examples/components/reference/parent/components/sidebar-nav.html +4 -0
- package/examples/components/reference/parent/components/small-charts.html +2 -0
- package/examples/components/reference/parent/components/split-button.html +5 -0
- package/examples/components/reference/parent/components/split-panes.html +8 -0
- package/examples/components/reference/parent/components/stat-tiles.html +2 -0
- package/examples/components/reference/parent/components/toast-stack.html +5 -0
- package/examples/components/reference/parent/components/tree-view.html +4 -0
- package/examples/components/reference/parent/components/upload-dropzone.html +6 -0
- package/examples/components/reference/parent/components/wizard-shell.html +2 -0
- package/examples/components/reference/parent/coverage.json +414 -0
- package/examples/components/reference/parent/index.html +1 -0
- package/examples/components/reference/parent/kanban.css +114 -0
- package/examples/components/reference/parent/kanban.py +55 -0
- package/examples/components/reference/parent/refinement.css +53 -0
- package/examples/components/reference/selected/build.py +70 -0
- package/examples/components/reference/selected/components/activity-feed.html +3 -0
- package/examples/components/reference/selected/components/app-toolbar.html +3 -0
- package/examples/components/reference/selected/components/avatar-group.html +4 -0
- package/examples/components/reference/selected/components/breadcrumbs.html +3 -0
- package/examples/components/reference/selected/components/code-block.html +9 -0
- package/examples/components/reference/selected/components/column-manager.html +3 -0
- package/examples/components/reference/selected/components/combobox.html +6 -0
- package/examples/components/reference/selected/components/context-hypercms.html +3 -0
- package/examples/components/reference/selected/components/context-quickcrop.html +4 -0
- package/examples/components/reference/selected/components/diff-view.html +13 -0
- package/examples/components/reference/selected/components/drawer.html +3 -0
- package/examples/components/reference/selected/components/editable-grid-cells.html +3 -0
- package/examples/components/reference/selected/components/filter-builder.html +3 -0
- package/examples/components/reference/selected/components/form-error-summary.html +4 -0
- package/examples/components/reference/selected/components/inline-edit.html +3 -0
- package/examples/components/reference/selected/components/kanban-board.html +53 -0
- package/examples/components/reference/selected/components/modal.html +2 -0
- package/examples/components/reference/selected/components/multi-select-picker.html +5 -0
- package/examples/components/reference/selected/components/pagination.html +3 -0
- package/examples/components/reference/selected/components/persistent-action-banner.html +4 -0
- package/examples/components/reference/selected/components/popconfirm.html +5 -0
- package/examples/components/reference/selected/components/popover-menu.html +3 -0
- package/examples/components/reference/selected/components/rich-text-toolbar.html +3 -0
- package/examples/components/reference/selected/components/save-status-indicator.html +2 -0
- package/examples/components/reference/selected/components/selectable-cards.html +3 -0
- package/examples/components/reference/selected/components/settings-rows.html +3 -0
- package/examples/components/reference/selected/components/sidebar-nav.html +4 -0
- package/examples/components/reference/selected/components/small-charts.html +5 -0
- package/examples/components/reference/selected/components/split-button.html +4 -0
- package/examples/components/reference/selected/components/split-panes.html +8 -0
- package/examples/components/reference/selected/components/stat-tiles.html +3 -0
- package/examples/components/reference/selected/components/toast-stack.html +5 -0
- package/examples/components/reference/selected/components/tree-view.html +4 -0
- package/examples/components/reference/selected/components/upload-dropzone.html +6 -0
- package/examples/components/reference/selected/components/wizard-shell.html +3 -0
- package/examples/components/reference/selected/corrections.css +11 -0
- package/examples/components/reference/selected/coverage.json +413 -0
- package/examples/components/reference/selected/gallery-build.mjs +49 -0
- package/examples/components/reference/selected/gallery-spec.json +12 -0
- package/examples/components/reference/selected/index.html +1 -0
- package/examples/components/reference/selected/kanban-comparison.json +6 -0
- package/examples/components/reference/selected/manifest.json +476 -0
- package/examples/components/reference/sha256.json +142 -0
- package/examples/components/reference/sources/diagonal-close.svg +1 -0
- package/examples/components/reference/sources/hyperclay/public-assets/css/hyperclay-app-source.css +614 -0
- package/examples/components/reference/sources/hyperclay/public-assets/js/app.js +94 -0
- package/examples/components/reference/sources/hyperclayjs/src/ui/theModal.js +897 -0
- package/examples/components/reference/sources/hypercms/scripts/build-theme.js +203 -0
- package/examples/components/reference/sources/hypercms/src/anchor.js +24 -0
- package/examples/components/reference/sources/hypercms/src/apply-loop.js +167 -0
- package/examples/components/reference/sources/hypercms/src/diagnostics.js +44 -0
- package/examples/components/reference/sources/hypercms/src/enhance.js +173 -0
- package/examples/components/reference/sources/hypercms/src/events.js +955 -0
- package/examples/components/reference/sources/hypercms/src/form-builder.js +518 -0
- package/examples/components/reference/sources/hypercms/src/form-rules.js +208 -0
- package/examples/components/reference/sources/hypercms/src/hooks.js +100 -0
- package/examples/components/reference/sources/hypercms/src/hypercms-bundle.js +10 -0
- package/examples/components/reference/sources/hypercms/src/hypercms.js +347 -0
- package/examples/components/reference/sources/hypercms/src/morph.js +10 -0
- package/examples/components/reference/sources/hypercms/src/path.js +61 -0
- package/examples/components/reference/sources/hypercms/src/place.js +131 -0
- package/examples/components/reference/sources/hypercms/src/platform.js +131 -0
- package/examples/components/reference/sources/hypercms/src/refresh.js +87 -0
- package/examples/components/reference/sources/hypercms/src/richclay-bridge.js +140 -0
- package/examples/components/reference/sources/hypercms/src/row-identity.js +111 -0
- package/examples/components/reference/sources/hypercms/src/scaffold.js +10 -0
- package/examples/components/reference/sources/hypercms/src/session.js +303 -0
- package/examples/components/reference/sources/hypercms/src/shell.js +248 -0
- package/examples/components/reference/sources/hypercms/src/styles.css +298 -0
- package/examples/components/reference/sources/hypercms/src/targets.js +144 -0
- package/examples/components/reference/sources/hypercms/src/templates.js +656 -0
- package/examples/components/reference/sources/hypercms/src/theme/pixel-quiet.overrides.css +761 -0
- package/examples/components/reference/sources/hypercms/src/theme.generated.css +1772 -0
- package/examples/components/reference/sources/hypercms/src/toggle.js +666 -0
- package/examples/components/reference/sources/hypercms/src/unresolved.js +211 -0
- package/examples/components/reference/sources/hypercms/src/vendor/mirk.vendor.js +212 -0
- package/examples/components/reference/sources/hypercms/src/views/inline-layer.js +421 -0
- package/examples/components/reference/sources/hypercms/src/views/inline.js +1072 -0
- package/examples/components/reference/sources/hypercms/src/views/sidebar.js +97 -0
- package/examples/components/reference/sources/modal-reference.html +301 -0
- package/examples/components/reference/sources/quickcrop/quickcrop.css +124 -0
- package/examples/components/reference/sources/quickcrop/quickcrop.js +400 -0
- package/examples/components/reference/sources/richclay/richclay.css +416 -0
- package/examples/components/reference/sources/richclay/richclay.js +2962 -0
- package/examples/components/reference/sources/richclay/src/a11y.js +67 -0
- package/examples/components/reference/sources/richclay/src/browser-global.js +7 -0
- package/examples/components/reference/sources/richclay/src/buttons.js +254 -0
- package/examples/components/reference/sources/richclay/src/hyperclay.js +470 -0
- package/examples/components/reference/sources/richclay/src/normalize.js +380 -0
- package/examples/components/reference/sources/richclay/src/richclay.js +1356 -0
- package/examples/components/reference/sources/richclay/src/sanitize.js +189 -0
- package/examples/components/reference/sources/richclay/src/styles.js +23 -0
- package/examples/components/reference/sources/richclay/src/toolbar-float.js +175 -0
- package/examples/components/reference/sources/richclay/src/toolbar.js +394 -0
- package/examples/components/reference/sources/richclay/src/vendor-bundle.js +15 -0
- package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE +202 -0
- package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
- package/examples/components/reference/sources/richclay/vendor/SQUIRE-LICENSE +21 -0
- package/examples/components/reference/sources/richclay/vendor/purify.es.mjs +2249 -0
- package/examples/components/reference/sources/richclay/vendor/purify.min.js +3 -0
- package/examples/components/reference/sources/richclay/vendor/squire.js +22 -0
- package/examples/components/reference/sources/richclay/vendor/squire.mjs +22 -0
- package/examples/components/reference/sources/richclay/vendor/squire.provenance.json +19 -0
- package/examples/components/rich-text-toolbar.html +43 -0
- package/examples/components/save-status-indicator.html +11 -0
- package/examples/components/selectable-cards.html +9 -0
- package/examples/components/settings-rows.html +10 -0
- package/examples/components/sidebar-nav.html +9 -0
- package/examples/components/small-charts.html +21 -0
- package/examples/components/split-button.html +13 -0
- package/examples/components/split-panes-editor.html +6 -0
- package/examples/components/split-panes.html +9 -0
- package/examples/components/stat-tiles.html +23 -0
- package/examples/components/toast-stack.html +21 -0
- package/examples/components/tree-view.html +9 -0
- package/examples/components/upload-dropzone.html +88 -0
- package/examples/components/wizard-shell.html +50 -0
- package/examples/datastar/index.html +38 -0
- package/examples/datastar/server.mjs +31 -0
- package/examples/fixtures/field-guide.pdf +14 -0
- package/examples/fixtures/workspace.jpg +0 -0
- package/examples/setup-peers.mjs +35 -0
- package/fonts/LICENSE-ibm-plex-mono.txt +93 -0
- package/fonts/LICENSE-ibm-plex-sans.txt +93 -0
- package/fonts/LICENSE-newsreader.txt +93 -0
- package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
- package/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
- package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
- package/icons/LICENSE +21 -0
- package/icons/house.json +71 -0
- package/icons/icons.d.ts +17 -0
- package/icons/icons.js +648 -0
- package/icons/icons.svg +126 -0
- package/icons/marks/build-tray.source.mjs +45 -0
- package/icons/marks/hyperclay-local.svg +11 -0
- package/icons/phosphor.json +53 -0
- package/icons/round.json +8 -0
- package/integrations/datastar.js +202 -0
- package/integrations/quickcrop.css +26 -0
- package/integrations/quickcrop.js +56 -0
- package/integrations/richclay.css +100 -0
- package/integrations/richclay.js +131 -0
- package/package.json +630 -0
- package/react/README.md +244 -0
- package/src/README.md +83 -0
- package/vendor/datastar/datastar-1.0.3.js +10 -0
- package/vendor/datastar/provenance.json +6 -0
- package/vendor/floating-ui/LICENSE-core +20 -0
- package/vendor/floating-ui/LICENSE-dom +20 -0
- package/vendor/floating-ui/floating-ui.core.umd.min.js +1 -0
- package/vendor/floating-ui/floating-ui.dom.umd.min.js +1 -0
- package/vendor/floating-ui/provenance.json +17 -0
- package/vendor/richclay/LICENSE +16 -0
- package/vendor/richclay/THIRD-PARTY-NOTICES.md +45 -0
- package/vendor/richclay/provenance.json +17 -0
- package/vendor/richclay/richclay.css +404 -0
- package/vendor/richclay/richclay.js +2940 -0
- package/vendor/richclay/vendor/DOMPURIFY-LICENSE +202 -0
- package/vendor/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
- package/vendor/richclay/vendor/SQUIRE-LICENSE +21 -0
- package/vendor/richclay/vendor/purify.min.js +3 -0
- package/vendor/richclay/vendor/squire.js +22 -0
- package/vendor/richclay/vendor/squire.provenance.json +30 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import '../peers/clay-mutation/src/lib/mutation.js';
|
|
2
|
+
|
|
3
|
+
const page = document.querySelector('#page-content');
|
|
4
|
+
const mount = document.querySelector('#inspector-mount');
|
|
5
|
+
const rules = {
|
|
6
|
+
pageTitle: '.page-title',
|
|
7
|
+
introduction: '.page-introduction',
|
|
8
|
+
fieldGuideLink: { label: '.page-guide', destination: '.page-guide@href' },
|
|
9
|
+
contributors: ['.page-contributor', { name: '.contributor-name' }],
|
|
10
|
+
coverImage: '.page-cover@src'
|
|
11
|
+
};
|
|
12
|
+
const cms = window.hypercms.cms;
|
|
13
|
+
const closeIcon = '<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/></svg>';
|
|
14
|
+
|
|
15
|
+
function clearChrome(root) {
|
|
16
|
+
root.querySelectorAll('[data-hcms-shell], [data-hcms-overlay], [data-hcms-bundled-styles], #hcms-shell-styles').forEach(node => node.remove());
|
|
17
|
+
const body = root.querySelector('body');
|
|
18
|
+
body?.classList.remove('hcms-open', 'hcms-overlay', 'hcms-side-left', 'hcms-session-open');
|
|
19
|
+
}
|
|
20
|
+
function serialize() {
|
|
21
|
+
const clone = document.documentElement.cloneNode(true);
|
|
22
|
+
Bevel.prepareForSave(clone);
|
|
23
|
+
clearChrome(clone);
|
|
24
|
+
return `<!doctype html>${clone.outerHTML}`;
|
|
25
|
+
}
|
|
26
|
+
function valid() {
|
|
27
|
+
const field = mount.querySelector('[data-hcms-path="pageTitle"] textarea');
|
|
28
|
+
const validTitle = Boolean(field?.value.trim());
|
|
29
|
+
field?.setAttribute('aria-invalid', String(!validTitle));
|
|
30
|
+
field?.setCustomValidity(validTitle ? '' : 'A title is required.');
|
|
31
|
+
const error = mount.querySelector('.hcms-shell-error');
|
|
32
|
+
if (error) { error.textContent = validTitle ? '' : 'Give the page a title before saving.'; error.hidden = validTitle; }
|
|
33
|
+
return validTitle;
|
|
34
|
+
}
|
|
35
|
+
function open() {
|
|
36
|
+
if (cms.isOpen) return;
|
|
37
|
+
cms.open({ pageRoot: page, mountTo: mount, rules, title: 'Page content', eyebrow: 'HYPERCMS / INSPECTOR', showSaveButton: true, richText: false, confirmRemove: false, theme: document.documentElement.dataset.theme || 'light' });
|
|
38
|
+
for (const button of mount.querySelectorAll('[data-hcms-action="close"]')) {
|
|
39
|
+
button.className = 'hcms-shell-close'; button.innerHTML = closeIcon; button.setAttribute('aria-label', 'Close inspector');
|
|
40
|
+
}
|
|
41
|
+
const save = mount.querySelector('[trigger-save]');
|
|
42
|
+
save.className = 'bevel-button'; save.innerHTML = '<span class="bevel-button__label">Save changes</span>';
|
|
43
|
+
const note = document.createElement('p'); note.className = 'cms-export-note'; note.textContent = 'Downloads an HTML copy. Keep it beside this example to reopen with its local assets.';
|
|
44
|
+
save.after(note);
|
|
45
|
+
const field = mount.querySelector('[data-hcms-path="pageTitle"] textarea');
|
|
46
|
+
if (field) field.required = true;
|
|
47
|
+
}
|
|
48
|
+
mount.querySelectorAll('[data-hcms-shell]').forEach(node => node.remove());
|
|
49
|
+
document.body.classList.remove('hcms-open', 'hcms-overlay', 'hcms-side-left', 'hcms-session-open');
|
|
50
|
+
document.querySelector('#open-inspector').addEventListener('click', open);
|
|
51
|
+
document.addEventListener('click', event => {
|
|
52
|
+
if (!event.target.closest('#inspector-mount [trigger-save]')) return;
|
|
53
|
+
event.preventDefault();
|
|
54
|
+
if (!valid()) { mount.querySelector('[aria-invalid="true"]')?.focus(); return; }
|
|
55
|
+
const url = URL.createObjectURL(new Blob([serialize()], { type: 'text/html' }));
|
|
56
|
+
const link = document.createElement('a'); link.href = url; link.download = 'field-notes.html'; link.click();
|
|
57
|
+
setTimeout(() => URL.revokeObjectURL(url), 1000);
|
|
58
|
+
mount.querySelector('.cms-export-note').textContent = 'HTML copy downloaded. Keep it beside this example to reopen with its local assets.';
|
|
59
|
+
});
|
|
60
|
+
document.addEventListener('hcms:change', () => { if (mount.querySelector('[aria-invalid="true"]')) valid(); });
|
|
61
|
+
window.bevelCmsExample = { serialize, open };
|
|
62
|
+
open();
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html data-theme="light" lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>Quickcrop upload and crop · Bevel</title>
|
|
7
|
+
<link rel="stylesheet" href="../../bevel-fonts.css">
|
|
8
|
+
<link rel="stylesheet" href="../../bevel.css">
|
|
9
|
+
<link rel="stylesheet" href="../../integrations/quickcrop.css">
|
|
10
|
+
<link rel="stylesheet" href="../peers/quickcrop/quickcrop.css">
|
|
11
|
+
</head>
|
|
12
|
+
<body data-bevel-example="context-quickcrop">
|
|
13
|
+
<main class="bevel-anchor-example bevel-quickcrop-context">
|
|
14
|
+
<header class="bevel-anchor-example__header">
|
|
15
|
+
<div class="bevel-overlay__eyebrow">Theme in context</div>
|
|
16
|
+
<h1>Finish the image before it lands</h1>
|
|
17
|
+
<p>Quickcrop’s stage inside the Hyperclay modal family.</p>
|
|
18
|
+
</header>
|
|
19
|
+
<section class="bevel-dropzone" data-bevel-max-bytes="10485760" data-bevel-download aria-labelledby="quickcrop-upload-title">
|
|
20
|
+
<div class="bevel-dropzone__target">
|
|
21
|
+
<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M8.5 18H6a4 4 0 0 1 0-8c0-3.5 2.5-6 6-6s6 2.5 6 6a4 4 0 0 1 0 8h-2.5M12 21v-9m-3 3 3-3 3 3"/></svg>
|
|
22
|
+
<h2 class="bevel-dropzone__title" id="quickcrop-upload-title">Drop an image here</h2>
|
|
23
|
+
<p class="bevel-dropzone__hint">Images up to 10 MB · crop before upload</p>
|
|
24
|
+
<label class="bevel-button bevel-button--small"><input class="bevel-sr-only" type="file" accept="image/*"><span class="bevel-button__label">Choose an image</span></label>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="bevel-upload" data-bevel-upload-list></div>
|
|
27
|
+
<p class="bevel-dropzone__transport">This example prepares a local download. Applications can replace that operation with their own storage transport.</p>
|
|
28
|
+
</section>
|
|
29
|
+
</main>
|
|
30
|
+
<script src="../../bevel.js"></script>
|
|
31
|
+
<script src="../../integrations/quickcrop.js"></script>
|
|
32
|
+
<script type="module">
|
|
33
|
+
import quickcrop from "../peers/quickcrop/quickcrop.js";
|
|
34
|
+
|
|
35
|
+
const root = document.querySelector(".bevel-dropzone");
|
|
36
|
+
const files = new Map();
|
|
37
|
+
|
|
38
|
+
const labelCropDialog = (file, aspect) => {
|
|
39
|
+
let frames = 0;
|
|
40
|
+
const label = () => {
|
|
41
|
+
const dialog = document.querySelector("dialog.bevel-quickcrop");
|
|
42
|
+
if (!dialog) {
|
|
43
|
+
if (frames++ < 120) requestAnimationFrame(label);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
dialog.querySelector(".bevel-modal__heading").textContent = "Find the useful part.";
|
|
47
|
+
dialog.querySelector(".bevel-modal__description").textContent = `Image / ${file.name}`;
|
|
48
|
+
const badge = document.createElement("span");
|
|
49
|
+
badge.className = "bevel-quickcrop__badge";
|
|
50
|
+
badge.textContent = aspect === 1 ? "1:1 crop" : "Free crop";
|
|
51
|
+
dialog.querySelector(".bevel-modal__header").append(badge);
|
|
52
|
+
};
|
|
53
|
+
requestAnimationFrame(label);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const upload = async (key, file) => {
|
|
57
|
+
if (!file) return false;
|
|
58
|
+
if (window.bevelQuickcropTransport) return window.bevelQuickcropTransport({ root, key, file });
|
|
59
|
+
const url = await new Promise((resolve, reject) => {
|
|
60
|
+
const reader = new FileReader();
|
|
61
|
+
reader.addEventListener("load", () => resolve(reader.result), { once: true });
|
|
62
|
+
reader.addEventListener("error", () => reject(reader.error), { once: true });
|
|
63
|
+
reader.readAsDataURL(file);
|
|
64
|
+
});
|
|
65
|
+
const row = root.querySelector(`[data-bevel-file-key="${CSS.escape(key)}"]`);
|
|
66
|
+
if (!row || !Bevel.upload.update(root, key, { status: "uploaded", url, name: file.name })) return false;
|
|
67
|
+
row.querySelector(".bevel-upload__status").textContent = "Ready to download";
|
|
68
|
+
row.querySelector(".bevel-upload__link").textContent = "Download image";
|
|
69
|
+
return true;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const crop = async (key, trigger) => {
|
|
73
|
+
const original = files.get(key);
|
|
74
|
+
if (!original) return;
|
|
75
|
+
let aspect = 1;
|
|
76
|
+
while (root.querySelector(`[data-bevel-file-key="${CSS.escape(key)}"]`)) {
|
|
77
|
+
let preset = null;
|
|
78
|
+
const pending = Bevel.crop(original, {
|
|
79
|
+
quickcrop,
|
|
80
|
+
aspect,
|
|
81
|
+
trigger,
|
|
82
|
+
presets: [
|
|
83
|
+
{ label: "Square", value: "square" },
|
|
84
|
+
{ label: "Free", value: "free" },
|
|
85
|
+
{ label: "Reset preview", value: "reset" }
|
|
86
|
+
],
|
|
87
|
+
onPreset(value) { preset = value; }
|
|
88
|
+
});
|
|
89
|
+
labelCropDialog(original, aspect);
|
|
90
|
+
const result = await pending;
|
|
91
|
+
if (preset) {
|
|
92
|
+
if (preset === "square") aspect = 1;
|
|
93
|
+
if (preset === "free") aspect = null;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (!result) return;
|
|
97
|
+
const cropped = new File([result.blob], original.name, { type: result.blob.type, lastModified: Date.now() });
|
|
98
|
+
files.set(key, cropped);
|
|
99
|
+
const row = root.querySelector(`[data-bevel-file-key="${CSS.escape(key)}"]`);
|
|
100
|
+
row?.querySelector(".bevel-upload__meta")?.replaceChildren(`${result.width} × ${result.height} pixels after crop`);
|
|
101
|
+
await upload(key, cropped);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
root.addEventListener("bevel:files", event => {
|
|
107
|
+
for (const { key, file } of event.detail.files) {
|
|
108
|
+
files.set(key, file);
|
|
109
|
+
const row = root.querySelector(`[data-bevel-file-key="${CSS.escape(key)}"]`);
|
|
110
|
+
const actions = row.querySelector(".bevel-upload__actions");
|
|
111
|
+
const useOriginal = document.createElement("button");
|
|
112
|
+
useOriginal.type = "button";
|
|
113
|
+
useOriginal.className = "bevel-button bevel-button--small";
|
|
114
|
+
useOriginal.dataset.bevelTransient = "upload-file-action";
|
|
115
|
+
useOriginal.dataset.bevelUploadSelectAction = "";
|
|
116
|
+
useOriginal.textContent = "Use original";
|
|
117
|
+
useOriginal.addEventListener("click", () => upload(key, files.get(key)));
|
|
118
|
+
const edit = document.createElement("button");
|
|
119
|
+
edit.type = "button";
|
|
120
|
+
edit.className = "bevel-button bevel-button--small bevel-button--primary";
|
|
121
|
+
edit.dataset.bevelTransient = "upload-file-action";
|
|
122
|
+
edit.dataset.bevelUploadSelectAction = "";
|
|
123
|
+
edit.textContent = "Crop image";
|
|
124
|
+
edit.addEventListener("click", () => crop(key, edit));
|
|
125
|
+
actions.prepend(edit, useOriginal);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
root.addEventListener("bevel:action", event => {
|
|
130
|
+
if (event.detail.action === "retry") upload(event.detail.key, files.get(event.detail.key));
|
|
131
|
+
if (event.detail.action === "remove") files.delete(event.detail.key);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
window.quickcropContext = { root, files, crop, upload };
|
|
135
|
+
</script>
|
|
136
|
+
</body>
|
|
137
|
+
</html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" class="light">
|
|
3
|
+
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Diff view · Bevel</title><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"></head>
|
|
4
|
+
<body>
|
|
5
|
+
<main class="bevel-example bevel-reference-example"><header class="bevel-example__header"><div><div class="bevel-eyebrow">Reference / 23</div><h1>See what changed</h1><p>The before and after stay close enough to compare.</p></div></header><section class="bevel-diff" aria-label="Changes to field-note.html" data-bevel-layout="unified" data-bevel-filename="field-note.html @ 1,4" data-bevel-hunk="@@ 1,4 → 1,4 @@"><header class="bevel-diff__header"><span class="bevel-diff__group"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg> field-note.html</span><div class="bevel-diff__group"><span class="bevel-diff__count" data-bevel-kind="add">+2</span><span class="bevel-diff__count" data-bevel-kind="remove">−2</span><div aria-label="Layout" class="bevel-diff__controls" role="group"><button data-bevel-layout="unified" aria-pressed="true" class="bevel-button" type="button"><span class="bevel-button__label">Unified</span></button><button data-bevel-layout="split" aria-pressed="false" class="bevel-button" type="button"><span class="bevel-button__label">Split</span></button></div></div></header><template data-bevel-diff-records><div data-bevel-kind="same" data-bevel-key="line-1" data-bevel-old="1" data-bevel-new="1" ><code><article class="field-note"></code></div><div data-bevel-kind="remove" data-bevel-key="line-2" data-bevel-old="2" ><code><h1>A place for <mark>ideas</mark></h1></code></div><div data-bevel-kind="add" data-bevel-key="line-3" data-bevel-new="2" ><code><h1>A place for <mark>good work</mark></h1></code></div><div data-bevel-kind="remove" data-bevel-key="line-4" data-bevel-old="3" ><code><p>Keep <mark>everything</mark> close.</p></code></div><div data-bevel-kind="add" data-bevel-key="line-5" data-bevel-new="3" ><code><p>Keep <mark>the useful things</mark> close.</p></code></div><div data-bevel-kind="same" data-bevel-key="line-6" data-bevel-old="4" data-bevel-new="4" ><code></article></code></div></template><footer>Updated by Mira Chen · today at 10:42</footer></section></main>
|
|
6
|
+
<script src="../../bevel.js"></script>
|
|
7
|
+
|
|
8
|
+
</body>
|
|
9
|
+
</html>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html data-theme="light" lang="en">
|
|
3
|
+
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><title>Drawer · Bevel</title></head>
|
|
4
|
+
<body class="bevel-example-page">
|
|
5
|
+
<main class="bevel-drawer-context"><div class="bevel-overlay__eyebrow">Workspace</div><h1 class="bevel-drawer-context__title">Invoices</h1><p class="bevel-drawer-context__note">4 records · Northstar Studio</p><div class="bevel-drawer-context__list"><div class="bevel-drawer-context__row"><span class="bevel-overlay__mono">INV-0431</span><span>Juniper Health</span></div><div class="bevel-drawer-context__row" data-current><span class="bevel-overlay__mono">INV-0432</span><span>Northstar Studio</span></div><div class="bevel-drawer-context__row"><span class="bevel-overlay__mono">INV-0433</span><span>Maple House</span></div><div class="bevel-drawer-context__row"><span class="bevel-overlay__mono">INV-0434</span><span>Juniper Health</span></div></div><div class="bevel-example__actions"><button type="button" class="bevel-button" data-bevel-open="drawer-detail" aria-controls="drawer-detail" aria-expanded="false"><span class="bevel-button__label">Open invoice</span></button><button type="button" class="bevel-button" data-bevel-open="drawer-long" aria-controls="drawer-long" aria-expanded="false"><span class="bevel-button__label">Open long invoice</span></button></div></main><dialog class="bevel-drawer" id="drawer-detail" aria-labelledby="drawer-detail-title"><div class="bevel-drawer__inner"><header class="bevel-drawer__header"><button type="button" class="bevel-overlay__close" data-bevel-close aria-label="Close details"><svg aria-hidden="true" focusable="false" viewBox="0 0 256 256" fill="currentColor"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/></svg></button><div class="bevel-overlay__eyebrow">INVOICE / 0432</div><h2 id="drawer-detail-title" class="bevel-drawer__heading">Northstar Studio</h2><div class="bevel-drawer__amount"><span class="bevel-overlay__mono">$3,200.00</span><span class="bevel-overlay__badge bevel-overlay__badge--bad">Overdue</span></div></header><div class="bevel-drawer__body"><dl class="bevel-drawer__details"><dt>Client</dt><dd>Northstar Studio</dd><dt>Issued</dt><dd class="bevel-overlay__mono">Aug 24, 2026</dd><dt>Due</dt><dd class="bevel-overlay__mono bevel-overlay__bad">Sep 01, 2026</dd><dt>Owner</dt><dd>Mira Chen</dd></dl><section class="bevel-drawer__section"><div class="bevel-overlay__eyebrow">LINE ITEMS</div><div class="bevel-drawer__row"><span>Design direction <small>× 1</small></span><span class="bevel-overlay__mono">$2,400</span></div><div class="bevel-drawer__row"><span>Editorial review <small>× 2</small></span><span class="bevel-overlay__mono">$800</span></div></section></div><footer class="bevel-drawer__footer"><small>Updated at 10:42</small><button type="button" class="bevel-button bevel-button--primary" data-bevel-action="mark-paid"><span class="bevel-button__label">Mark as paid</span></button></footer></div></dialog><dialog class="bevel-drawer" id="drawer-long" aria-labelledby="drawer-long-title"><div class="bevel-drawer__inner"><header class="bevel-drawer__header"><button type="button" class="bevel-overlay__close" data-bevel-close aria-label="Close details"><svg aria-hidden="true" focusable="false" viewBox="0 0 256 256" fill="currentColor"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/></svg></button><div class="bevel-overlay__eyebrow">INVOICE / 0432</div><h2 id="drawer-long-title" class="bevel-drawer__heading">Northstar Studio</h2><div class="bevel-drawer__amount"><span class="bevel-overlay__mono">$3,200.00</span><span class="bevel-overlay__badge bevel-overlay__badge--bad">Overdue</span></div></header><div class="bevel-drawer__body"><dl class="bevel-drawer__details"><dt>Client</dt><dd>Northstar Studio</dd><dt>Issued</dt><dd class="bevel-overlay__mono">Aug 24, 2026</dd><dt>Due</dt><dd class="bevel-overlay__mono bevel-overlay__bad">Sep 01, 2026</dd><dt>Owner</dt><dd>Mira Chen</dd></dl><section class="bevel-drawer__section"><div class="bevel-overlay__eyebrow">LINE ITEMS</div><div class="bevel-drawer__row"><span>Design direction <small>× 1</small></span><span class="bevel-overlay__mono">$2,400</span></div><div class="bevel-drawer__row"><span>Editorial review <small>× 2</small></span><span class="bevel-overlay__mono">$800</span></div></section><section class="bevel-drawer__section"><div class="bevel-overlay__eyebrow">Activity</div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">01</span><div>Payment reminder prepared<br><small>Sep 07, 2026 · Mira Chen</small></div></div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">02</span><div>Due date reached<br><small>Sep 06, 2026 · Mira Chen</small></div></div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">03</span><div>Invoice viewed by client<br><small>Sep 05, 2026 · Mira Chen</small></div></div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">04</span><div>Invoice sent<br><small>Sep 04, 2026 · Mira Chen</small></div></div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">05</span><div>Draft approved<br><small>Sep 03, 2026 · Mira Chen</small></div></div><div class="bevel-drawer__row"><span class="bevel-overlay__mono">06</span><div>Line items updated<br><small>Sep 02, 2026 · Mira Chen</small></div></div></section></div><footer class="bevel-drawer__footer"><small>Updated at 10:42</small><button type="button" class="bevel-button bevel-button--primary" data-bevel-action="mark-paid"><span class="bevel-button__label">Mark as paid</span></button></footer></div></dialog>
|
|
6
|
+
<script src="../../vendor/floating-ui/floating-ui.core.umd.min.js"></script>
|
|
7
|
+
<script src="../../vendor/floating-ui/floating-ui.dom.umd.min.js"></script>
|
|
8
|
+
<script src="../../bevel.js"></script>
|
|
9
|
+
|
|
10
|
+
</body>
|
|
11
|
+
</html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html data-theme="light" lang="en">
|
|
3
|
+
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><title>Editable grid cells · Bevel</title></head>
|
|
4
|
+
<body>
|
|
5
|
+
<main class="bevel-grid-example"><header class="bevel-grid-example__header"><div class="bevel-overlay__eyebrow">Northstar Studio / Field notes</div><h1>The detail, right in the row.</h1><p>Invoices / Amount</p></header><div class="bevel-grid bevel-grid-edit-example" id="editable-grid" tabindex="-1"><table class="bevel-grid__table"><thead><tr><th data-bevel-column="invoice">Invoice</th><th data-bevel-column="client">Client</th><th data-bevel-column="amount" style="text-align:right">Amount</th><th data-bevel-column="status">Status</th></tr></thead><tbody><tr class="bevel-grid__row" data-bevel-key="0431"><td data-bevel-column="invoice">INV-0431</td><td data-bevel-column="client">Juniper Health</td><td class="bevel-grid__cell" data-bevel-column="amount" data-bevel-edit="number" data-bevel-format="currency" data-value="1240"><button type="button" data-bevel-cell-edit><span class="bevel-grid__cell-value">$1,240.00</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 256 256" fill="currentColor"><path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/></svg></button><small class="bevel-grid__cell-error" role="alert" hidden>Enter a number, like 3200</small></td><td data-bevel-column="status"><span class="bevel-badge bevel-badge--for" data-bevel-tone="good">Paid</span></td></tr><tr class="bevel-grid__row" data-bevel-key="0432"><td data-bevel-column="invoice">INV-0432</td><td data-bevel-column="client">Northstar Studio</td><td class="bevel-grid__cell" data-bevel-column="amount" data-bevel-edit="number" data-bevel-format="currency" data-value="3200"><button type="button" data-bevel-cell-edit><span class="bevel-grid__cell-value">$3,200.00</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 256 256" fill="currentColor"><path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/></svg></button><small class="bevel-grid__cell-error" role="alert" hidden>Enter a number, like 3200</small></td><td data-bevel-column="status"><span class="bevel-badge bevel-badge--alert" data-bevel-tone="bad">Overdue</span></td></tr><tr class="bevel-grid__row" data-bevel-key="0433"><td data-bevel-column="invoice">INV-0433</td><td data-bevel-column="client">Maple House</td><td class="bevel-grid__cell" data-bevel-column="amount" data-bevel-edit="number" data-bevel-format="currency" data-value="860"><button type="button" data-bevel-cell-edit><span class="bevel-grid__cell-value">$860.00</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 256 256" fill="currentColor"><path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/></svg></button><small class="bevel-grid__cell-error" role="alert" hidden>Enter a number, like 3200</small></td><td data-bevel-column="status"><span class="bevel-badge" data-bevel-tone="neutral">Sent</span></td></tr><tr class="bevel-grid__row" data-bevel-key="0434"><td data-bevel-column="invoice">INV-0434</td><td data-bevel-column="client">Juniper Health</td><td class="bevel-grid__cell" data-bevel-column="amount" data-bevel-edit="number" data-bevel-format="currency" data-value="410"><button type="button" data-bevel-cell-edit><span class="bevel-grid__cell-value">$410.00</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 256 256" fill="currentColor"><path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/></svg></button><small class="bevel-grid__cell-error" role="alert" hidden>Enter a number, like 3200</small></td><td data-bevel-column="status"><span class="bevel-badge" data-bevel-tone="neutral">Due soon</span></td></tr></tbody></table></div><p class="bevel-grid-edit-note"><svg aria-hidden="true" width="12" height="12" viewBox="0 0 256 256" fill="currentColor"><path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/></svg>Amounts can be edited in place. Choose a value to change it.</p><template><span class="bevel-grid__cell-editor"><input class="bevel-grid__cell-input"><button class="bevel-grid__cell-action" type="button" data-bevel-cell-action="save" aria-label="Save cell">Save</button><button class="bevel-grid__cell-action" type="button" data-bevel-cell-action="cancel" aria-label="Cancel cell">Cancel</button></span></template></main>
|
|
6
|
+
<script src="../../bevel.js"></script>
|
|
7
|
+
|
|
8
|
+
</body>
|
|
9
|
+
</html>
|