ngwr 7.3.0 → 8.0.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/README.md +5 -4
- package/alert/styles/_index.scss +44 -17
- package/avatar/styles/_index.scss +2 -2
- package/badge/styles/_index.scss +11 -7
- package/badge/styles/_tag.scss +1 -1
- package/bar-chart/styles/_index.scss +1 -2
- package/breadcrumbs/styles/_index.scss +4 -2
- package/burger/styles/_index.scss +2 -2
- package/button/styles/_index.scss +30 -20
- package/calendar/styles/_index.scss +11 -9
- package/calendar-heatmap/styles/_index.scss +2 -0
- package/card/styles/_index.scss +1 -1
- package/carousel/styles/_index.scss +1 -1
- package/cascader/styles/_index.scss +54 -14
- package/checkbox/styles/_index.scss +21 -4
- package/collapse/styles/_index.scss +1 -1
- package/color-picker/styles/_index.scss +11 -12
- package/command-palette/styles/_index.scss +3 -3
- package/compare/styles/_index.scss +3 -3
- package/context-menu/styles/_index.scss +1 -1
- package/date-picker/styles/_index.scss +5 -6
- package/density/styles/_index.scss +3 -3
- package/dialog/styles/_index.scss +3 -3
- package/divider/styles/_index.scss +1 -1
- package/drawer/styles/_index.scss +11 -11
- package/dropdown/styles/_index.scss +2 -2
- package/fesm2022/ngwr-affix.mjs +3 -3
- package/fesm2022/ngwr-alert.mjs +22 -10
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bar-chart.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-border-glow.mjs +3 -3
- package/fesm2022/ngwr-breadcrumbs.mjs +7 -7
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar-heatmap.mjs +3 -3
- package/fesm2022/ngwr-calendar.mjs +4 -4
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +10 -10
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-cascader.mjs +12 -35
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +13 -30
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +3 -3
- package/fesm2022/ngwr-click-spark.mjs +25 -6
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-clipboard.mjs +27 -6
- package/fesm2022/ngwr-clipboard.mjs.map +1 -1
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +7 -7
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette.mjs +3 -3
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-context-menu.mjs +40 -88
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +12 -8
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
- package/fesm2022/ngwr-date-adapter.mjs +3 -3
- package/fesm2022/ngwr-date-picker.mjs +25 -11
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-density.mjs +14 -14
- package/fesm2022/ngwr-density.mjs.map +1 -1
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog.mjs +15 -15
- package/fesm2022/ngwr-directives.mjs +15 -87
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart.mjs +10 -4
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +6 -6
- package/fesm2022/ngwr-drawer.mjs +15 -15
- package/fesm2022/ngwr-dropdown.mjs +9 -9
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-falling-text.mjs +3 -3
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form.mjs +9 -9
- package/fesm2022/ngwr-fuzzy-text.mjs +8 -7
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +3 -3
- package/fesm2022/ngwr-glitch-text.mjs +15 -7
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +3 -3
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-input-number.mjs +4 -4
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp.mjs +10 -4
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +25 -16
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +3 -3
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +17 -5
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +3 -3
- package/fesm2022/ngwr-list.mjs +7 -7
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-marquee.mjs +3 -3
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention.mjs +6 -6
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-meter-group.mjs +3 -3
- package/fesm2022/ngwr-overlay.mjs +3 -3
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs +5 -15
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +3 -3
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popover.mjs +6 -6
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +3 -3
- package/fesm2022/ngwr-radio.mjs +28 -26
- package/fesm2022/ngwr-radio.mjs.map +1 -1
- package/fesm2022/ngwr-rating.mjs +12 -23
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs +10 -22
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +26 -13
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-sidebar.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +3 -3
- package/fesm2022/ngwr-sparkline.mjs +3 -3
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-spotlight-card.mjs +8 -8
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-squircle.mjs +6 -6
- package/fesm2022/ngwr-star-border.mjs +3 -3
- package/fesm2022/ngwr-statistic.mjs +79 -10
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs +10 -14
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table.mjs +12 -12
- package/fesm2022/ngwr-tabs.mjs +8 -6
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea.mjs +84 -25
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast.mjs +46 -24
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tree.mjs +3 -3
- package/fesm2022/ngwr-typewriter.mjs +3 -3
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-validators.mjs +41 -3
- package/fesm2022/ngwr-validators.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-window.mjs +12 -12
- package/file-upload/styles/_index.scss +3 -3
- package/form/styles/_index.scss +5 -5
- package/glitch-text/styles/_index.scss +3 -6
- package/image-cropper/styles/_index.scss +3 -3
- package/input/styles/_index.scss +26 -7
- package/input-otp/styles/_index.scss +23 -5
- package/keyboard/styles/_index.scss +6 -4
- package/knob/styles/_index.scss +1 -1
- package/lightbox/styles/_index.scss +29 -10
- package/list/styles/_index.scss +3 -3
- package/llms-full.txt +14 -19
- package/mention/styles/_index.scss +2 -2
- package/overlay/styles/_index.scss +1 -1
- package/package.json +1 -6
- package/pagination/styles/_index.scss +3 -26
- package/popconfirm/styles/_index.scss +1 -1
- package/popover/styles/_index.scss +2 -2
- package/radio/styles/_index.scss +20 -5
- package/rating/styles/_index.scss +12 -1
- package/schematics/migrations/v8/index.js +122 -0
- package/schematics/migrations.json +5 -0
- package/schematics/ng-add/index.js +3 -3
- package/schematics/ng-add/schema.json +6 -6
- package/schematics/provider/schema.json +1 -1
- package/schematics/use/symbol-map.json +11 -2
- package/segmented/styles/_index.scss +31 -8
- package/select/styles/_index.scss +73 -25
- package/sidebar/styles/_index.scss +3 -3
- package/slider/styles/_index.scss +2 -3
- package/speed-dial/styles/_index.scss +1 -0
- package/splitter/styles/_index.scss +4 -4
- package/spotlight-card/styles/_index.scss +8 -4
- package/stepper/styles/_index.scss +4 -4
- package/styles/_animations.scss +0 -23
- package/styles.scss +0 -1
- package/switch/styles/_index.scss +25 -6
- package/table/styles/_index.scss +9 -9
- package/tabs/styles/_index.scss +22 -3
- package/textarea/styles/_index.scss +59 -4
- package/theme/styles/_colors.scss +57 -0
- package/theme/styles/_dark.scss +22 -8
- package/theme/styles/_focus.scss +5 -0
- package/theme/styles/_variables.scss +24 -0
- package/timeline/styles/_index.scss +11 -2
- package/toast/styles/_index.scss +13 -5
- package/toolbar/styles/_index.scss +1 -1
- package/tree/styles/_index.scss +18 -17
- package/types/ngwr-alert.d.ts +16 -6
- package/types/ngwr-cascader.d.ts +5 -2
- package/types/ngwr-checkbox.d.ts +5 -2
- package/types/ngwr-click-spark.d.ts +13 -1
- package/types/ngwr-clipboard.d.ts +12 -1
- package/types/ngwr-context-menu.d.ts +20 -25
- package/types/ngwr-date-picker.d.ts +3 -0
- package/types/ngwr-density.d.ts +7 -7
- package/types/ngwr-directives.d.ts +17 -49
- package/types/ngwr-fuzzy-text.d.ts +1 -1
- package/types/ngwr-glitch-text.d.ts +9 -3
- package/types/ngwr-input-otp.d.ts +6 -2
- package/types/ngwr-input.d.ts +27 -13
- package/types/ngwr-lightbox.d.ts +9 -1
- package/types/ngwr-pagination.d.ts +3 -9
- package/types/ngwr-radio.d.ts +14 -3
- package/types/ngwr-rating.d.ts +5 -1
- package/types/ngwr-segmented.d.ts +5 -2
- package/types/ngwr-select.d.ts +6 -2
- package/types/ngwr-spotlight-card.d.ts +1 -1
- package/types/ngwr-statistic.d.ts +35 -1
- package/types/ngwr-switch.d.ts +5 -1
- package/types/ngwr-textarea.d.ts +25 -3
- package/types/ngwr-toast.d.ts +7 -1
- package/types/ngwr-validators.d.ts +3 -1
- package/types/ngwr-version.d.ts +1 -1
- package/window/styles/_index.scss +8 -8
- package/fesm2022/ngwr-scramble-text.mjs +0 -165
- package/fesm2022/ngwr-scramble-text.mjs.map +0 -1
- package/scramble-text/scramble-text.scss +0 -1
- package/scramble-text/styles/_index.scss +0 -8
- package/types/ngwr-scramble-text.d.ts +0 -49
package/fesm2022/ngwr-window.mjs
CHANGED
|
@@ -487,10 +487,10 @@ class WrWindow {
|
|
|
487
487
|
this.x_.set(clamp(this.x_(), MIN_ON_VIEWPORT - w, vw - MIN_ON_VIEWPORT));
|
|
488
488
|
this.y_.set(clamp(this.y_(), 0, vh - MIN_ON_VIEWPORT));
|
|
489
489
|
}
|
|
490
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
491
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
490
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
491
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: WrWindow, isStandalone: true, selector: "wr-window", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, initialX: { classPropertyName: "initialX", publicName: "initialX", isSignal: true, isRequired: false, transformFunction: null }, initialY: { classPropertyName: "initialY", publicName: "initialY", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, initialWidth: { classPropertyName: "initialWidth", publicName: "initialWidth", isSignal: true, isRequired: false, transformFunction: null }, initialHeight: { classPropertyName: "initialHeight", publicName: "initialHeight", isSignal: true, isRequired: false, transformFunction: null }, os: { classPropertyName: "os", publicName: "os", isSignal: true, isRequired: false, transformFunction: null }, chromeSize: { classPropertyName: "chromeSize", publicName: "chromeSize", isSignal: true, isRequired: false, transformFunction: null }, animations: { classPropertyName: "animations", publicName: "animations", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, keepInViewport: { classPropertyName: "keepInViewport", publicName: "keepInViewport", isSignal: true, isRequired: false, transformFunction: null }, snap: { classPropertyName: "snap", publicName: "snap", isSignal: true, isRequired: false, transformFunction: null }, dragHandle: { classPropertyName: "dragHandle", publicName: "dragHandle", isSignal: true, isRequired: false, transformFunction: null }, showMinimize: { classPropertyName: "showMinimize", publicName: "showMinimize", isSignal: true, isRequired: false, transformFunction: null }, showMaximize: { classPropertyName: "showMaximize", publicName: "showMaximize", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", state: "stateChange", closed: "closed", moved: "moved", resized: "resized" }, host: { attributes: { "role": "dialog" }, listeners: { "pointerdown": "focusWindow()" }, properties: { "class": "classes()", "style.left.px": "x()", "style.top.px": "y()", "style.width.px": "width()", "style.height.px": "height()", "style.z-index": "z()", "attr.aria-hidden": "!open()", "attr.aria-labelledby": "titleId" } }, ngImport: i0, template: "<div class=\"wr-window__chrome\" (pointerdown)=\"startMove($event)\" (dblclick)=\"showMaximize() && maximize()\">\n <div class=\"wr-window__title\" [attr.id]=\"titleId\">{{ title() }}</div>\n <div class=\"wr-window__title-extra\">\n <ng-content select=\"[wrWindowTitleExtra]\" />\n </div>\n\n <div class=\"wr-window__chrome-actions\">\n @if (resolvedOs() === 'macos') {\n <!-- macOS-style traffic-light cluster: close \u2192 minimize \u2192 maximize.\n Glyphs (\u00D7, \u2212, +) appear on cluster hover. -->\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--close\"\n aria-label=\"Close\"\n (click)=\"close()\"\n >\n <svg class=\"wr-window__chrome-action-glyph\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <path\n d=\"M2.2 2.2 L7.8 7.8 M7.8 2.2 L2.2 7.8\"\n stroke=\"currentColor\"\n stroke-width=\"1.4\"\n stroke-linecap=\"round\"\n />\n </svg>\n </button>\n }\n @if (showMinimize()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--minimize\"\n [attr.aria-label]=\"state() === 'minimized' ? 'Restore' : 'Minimize'\"\n (click)=\"minimize()\"\n >\n <svg class=\"wr-window__chrome-action-glyph\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <line x1=\"2\" y1=\"5\" x2=\"8\" y2=\"5\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" />\n </svg>\n </button>\n }\n @if (showMaximize()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--maximize\"\n [attr.aria-label]=\"state() === 'maximized' ? 'Restore down' : 'Maximize'\"\n (click)=\"maximize()\"\n >\n <svg class=\"wr-window__chrome-action-glyph\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n @if (state() === 'maximized') {\n <path\n d=\"M3 1 L1 1 L1 3 M7 1 L9 1 L9 3 M1 7 L1 9 L3 9 M9 7 L9 9 L7 9\"\n stroke=\"currentColor\"\n stroke-width=\"1.4\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n } @else {\n <path d=\"M2 5 L8 5 M5 2 L5 8\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" />\n }\n </svg>\n </button>\n }\n } @else {\n <!-- Windows / Linux glyph buttons -->\n @if (resolvedOs() !== 'linux' && showMinimize()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--minimize\"\n [attr.aria-label]=\"state() === 'minimized' ? 'Restore' : 'Minimize'\"\n (click)=\"minimize()\"\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <line x1=\"1\" y1=\"8\" x2=\"9\" y2=\"8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n </button>\n }\n\n @if (resolvedOs() !== 'linux' && showMaximize()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--maximize\"\n [attr.aria-label]=\"state() === 'maximized' ? 'Restore down' : 'Maximize'\"\n (click)=\"maximize()\"\n >\n @if (state() === 'maximized') {\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"2.5\" width=\"6\" height=\"6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.2\" />\n <rect x=\"3\" y=\"1\" width=\"6\" height=\"6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.2\" />\n </svg>\n } @else {\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"8\" height=\"8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.2\" />\n </svg>\n }\n </button>\n }\n\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"wr-window__chrome-action wr-window__chrome-action--close\"\n aria-label=\"Close\"\n (click)=\"close()\"\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <path d=\"M1 1 L9 9 M9 1 L1 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n </button>\n }\n }\n </div>\n</div>\n\n<div class=\"wr-window__body\">\n <ng-content />\n</div>\n\n<div class=\"wr-window__status-bar\">\n <ng-content select=\"[wrWindowStatusBar]\" />\n</div>\n\n@if (resizable() && state() === 'normal') {\n <span class=\"wr-window__handle wr-window__handle--t\" (pointerdown)=\"resizeT($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--r\" (pointerdown)=\"resizeR($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--b\" (pointerdown)=\"resizeB($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--l\" (pointerdown)=\"resizeL($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--tl\" (pointerdown)=\"resizeTL($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--tr\" (pointerdown)=\"resizeTR($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--bl\" (pointerdown)=\"resizeBL($event)\"></span>\n <span class=\"wr-window__handle wr-window__handle--br\" (pointerdown)=\"resizeBR($event)\"></span>\n}\n", encapsulation: i0.ViewEncapsulation.None });
|
|
492
492
|
}
|
|
493
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
493
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindow, decorators: [{
|
|
494
494
|
type: Component,
|
|
495
495
|
args: [{ selector: 'wr-window', encapsulation: ViewEncapsulation.None, host: {
|
|
496
496
|
role: 'dialog',
|
|
@@ -639,10 +639,10 @@ class WrWindowContainer {
|
|
|
639
639
|
});
|
|
640
640
|
});
|
|
641
641
|
}
|
|
642
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
643
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
642
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
643
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: WrWindowContainer, isStandalone: true, selector: "wr-window-container", viewQueries: [{ propertyName: "contentVcr", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "wrWindow", first: true, predicate: WrWindow, descendants: true, isSignal: true }], ngImport: i0, template: "<wr-window\n [open]=\"true\"\n [title]=\"ref.title()\"\n [os]=\"config.os ?? 'auto'\"\n [size]=\"config.size ?? 'md'\"\n [chromeSize]=\"config.chromeSize ?? 'normal'\"\n [animations]=\"config.animations ?? true\"\n [initialX]=\"config.x ?? null\"\n [initialY]=\"config.y ?? null\"\n [initialWidth]=\"config.width ?? null\"\n [initialHeight]=\"config.height ?? null\"\n [minWidth]=\"config.minWidth ?? 220\"\n [minHeight]=\"config.minHeight ?? 140\"\n [maxWidth]=\"config.maxWidth ?? 1000000\"\n [maxHeight]=\"config.maxHeight ?? 1000000\"\n [movable]=\"config.movable ?? true\"\n [resizable]=\"config.resizable ?? true\"\n [keepInViewport]=\"config.keepInViewport ?? true\"\n [snap]=\"config.snap ?? 'none'\"\n [dragHandle]=\"config.dragHandle ?? null\"\n [showMinimize]=\"config.showMinimize ?? true\"\n [showMaximize]=\"config.showMaximize ?? true\"\n [showClose]=\"config.showClose ?? true\"\n (closed)=\"ref.close()\"\n #window\n>\n <ng-container #content />\n</wr-window>\n\n@if (window.snapTarget(); as target) {\n <div class=\"wr-window__snap-hint\" [attr.data-target]=\"target\" aria-hidden=\"true\"></div>\n}\n", dependencies: [{ kind: "component", type: WrWindow, selector: "wr-window", inputs: ["open", "state", "title", "initialX", "initialY", "size", "initialWidth", "initialHeight", "os", "chromeSize", "animations", "minWidth", "minHeight", "maxWidth", "maxHeight", "movable", "resizable", "keepInViewport", "snap", "dragHandle", "showMinimize", "showMaximize", "showClose"], outputs: ["openChange", "stateChange", "closed", "moved", "resized"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
644
644
|
}
|
|
645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowContainer, decorators: [{
|
|
646
646
|
type: Component,
|
|
647
647
|
args: [{ selector: 'wr-window-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [WrWindow], template: "<wr-window\n [open]=\"true\"\n [title]=\"ref.title()\"\n [os]=\"config.os ?? 'auto'\"\n [size]=\"config.size ?? 'md'\"\n [chromeSize]=\"config.chromeSize ?? 'normal'\"\n [animations]=\"config.animations ?? true\"\n [initialX]=\"config.x ?? null\"\n [initialY]=\"config.y ?? null\"\n [initialWidth]=\"config.width ?? null\"\n [initialHeight]=\"config.height ?? null\"\n [minWidth]=\"config.minWidth ?? 220\"\n [minHeight]=\"config.minHeight ?? 140\"\n [maxWidth]=\"config.maxWidth ?? 1000000\"\n [maxHeight]=\"config.maxHeight ?? 1000000\"\n [movable]=\"config.movable ?? true\"\n [resizable]=\"config.resizable ?? true\"\n [keepInViewport]=\"config.keepInViewport ?? true\"\n [snap]=\"config.snap ?? 'none'\"\n [dragHandle]=\"config.dragHandle ?? null\"\n [showMinimize]=\"config.showMinimize ?? true\"\n [showMaximize]=\"config.showMaximize ?? true\"\n [showClose]=\"config.showClose ?? true\"\n (closed)=\"ref.close()\"\n #window\n>\n <ng-container #content />\n</wr-window>\n\n@if (window.snapTarget(); as target) {\n <div class=\"wr-window__snap-hint\" [attr.data-target]=\"target\" aria-hidden=\"true\"></div>\n}\n" }]
|
|
648
648
|
}], ctorParameters: () => [], propDecorators: { contentVcr: [{ type: i0.ViewChild, args: ['content', { ...{ read: ViewContainerRef }, isSignal: true }] }], wrWindow: [{ type: i0.ViewChild, args: [i0.forwardRef(() => WrWindow), { isSignal: true }] }] } });
|
|
@@ -1073,10 +1073,10 @@ class WrWindowManager {
|
|
|
1073
1073
|
clearLayout(name) {
|
|
1074
1074
|
this.storage.remove(this.layoutKey(name));
|
|
1075
1075
|
}
|
|
1076
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
1077
|
-
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.
|
|
1076
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowManager, deps: [], target: i0.ɵɵFactoryTarget.Service });
|
|
1077
|
+
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.4", ngImport: i0, type: WrWindowManager });
|
|
1078
1078
|
}
|
|
1079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
1079
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowManager, decorators: [{
|
|
1080
1080
|
type: Service
|
|
1081
1081
|
}] });
|
|
1082
1082
|
|
|
@@ -1121,10 +1121,10 @@ class WrWindowTaskbar {
|
|
|
1121
1121
|
event.stopPropagation();
|
|
1122
1122
|
void ref.close();
|
|
1123
1123
|
}
|
|
1124
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
1125
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
1124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowTaskbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: WrWindowTaskbar, isStandalone: true, selector: "wr-window-taskbar", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar", "aria-label": "Minimized windows" }, properties: { "class": "classes()" } }, ngImport: i0, template: "@if (items().length > 0) {\n <div class=\"wr-window-taskbar__rail\">\n @for (ref of items(); track ref.id) {\n <button\n type=\"button\"\n class=\"wr-window-taskbar__tab\"\n [attr.aria-label]=\"`Restore ${ref.title() || 'Untitled'}`\"\n (click)=\"restore(ref)\"\n >\n <span class=\"wr-window-taskbar__tab-title\">{{ ref.title() || 'Untitled' }}</span>\n <span\n class=\"wr-window-taskbar__tab-close\"\n role=\"button\"\n tabindex=\"0\"\n aria-label=\"Close window\"\n (click)=\"close(ref, $event)\"\n (keydown.enter)=\"close(ref, $event)\"\n >\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <path d=\"M1 1 L9 9 M9 1 L1 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n </span>\n </button>\n }\n </div>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1126
1126
|
}
|
|
1127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
1127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: WrWindowTaskbar, decorators: [{
|
|
1128
1128
|
type: Component,
|
|
1129
1129
|
args: [{ selector: 'wr-window-taskbar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { '[class]': 'classes()', role: 'toolbar', 'aria-label': 'Minimized windows' }, template: "@if (items().length > 0) {\n <div class=\"wr-window-taskbar__rail\">\n @for (ref of items(); track ref.id) {\n <button\n type=\"button\"\n class=\"wr-window-taskbar__tab\"\n [attr.aria-label]=\"`Restore ${ref.title() || 'Untitled'}`\"\n (click)=\"restore(ref)\"\n >\n <span class=\"wr-window-taskbar__tab-title\">{{ ref.title() || 'Untitled' }}</span>\n <span\n class=\"wr-window-taskbar__tab-close\"\n role=\"button\"\n tabindex=\"0\"\n aria-label=\"Close window\"\n (click)=\"close(ref, $event)\"\n (keydown.enter)=\"close(ref, $event)\"\n >\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 10 10\" aria-hidden=\"true\">\n <path d=\"M1 1 L9 9 M9 1 L1 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n </span>\n </button>\n }\n </div>\n}\n" }]
|
|
1130
1130
|
}], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
display: flex;
|
|
58
58
|
flex-direction: column;
|
|
59
59
|
gap: 0.125rem;
|
|
60
|
-
font-size:
|
|
60
|
+
font-size: var(--wr-text-sm);
|
|
61
61
|
line-height: 1.25rem;
|
|
62
62
|
|
|
63
63
|
strong {
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
small {
|
|
73
73
|
margin-top: 0.25rem;
|
|
74
74
|
color: var(--wr-color-medium);
|
|
75
|
-
font-size:
|
|
75
|
+
font-size: var(--wr-text-xs);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
background: var(--wr-color-white);
|
|
107
107
|
border: 1px solid var(--wr-color-light);
|
|
108
108
|
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
109
|
-
font-size:
|
|
109
|
+
font-size: var(--wr-text-sm);
|
|
110
110
|
line-height: 1.25rem;
|
|
111
111
|
}
|
|
112
112
|
|
package/form/styles/_index.scss
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
> label {
|
|
10
10
|
color: var(--wr-color-medium);
|
|
11
|
-
font-size:
|
|
11
|
+
font-size: var(--wr-text-sm);
|
|
12
12
|
font-weight: 500;
|
|
13
13
|
line-height: 1.25rem;
|
|
14
14
|
transition: color var(--wr-transition-base);
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
.wr-form-error {
|
|
31
31
|
display: block;
|
|
32
32
|
color: var(--wr-color-danger);
|
|
33
|
-
font-size:
|
|
33
|
+
font-size: var(--wr-text-xs);
|
|
34
34
|
line-height: 1rem;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
align-items: center;
|
|
46
46
|
gap: 0.25rem;
|
|
47
47
|
color: var(--wr-color-dark);
|
|
48
|
-
font-size:
|
|
48
|
+
font-size: var(--wr-text-sm);
|
|
49
49
|
font-weight: 500;
|
|
50
50
|
line-height: 1.25rem;
|
|
51
51
|
}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
&__optional {
|
|
58
58
|
color: var(--wr-color-medium);
|
|
59
59
|
font-weight: 400;
|
|
60
|
-
font-size:
|
|
60
|
+
font-size: var(--wr-text-sm);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
&__control {
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
|
|
80
80
|
&__error {
|
|
81
81
|
color: var(--wr-color-danger);
|
|
82
|
-
font-size:
|
|
82
|
+
font-size: var(--wr-text-sm);
|
|
83
83
|
line-height: 1.25;
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -5,11 +5,8 @@
|
|
|
5
5
|
.wr-glitch-text {
|
|
6
6
|
--wr-glitch-text-before-duration: 2s;
|
|
7
7
|
--wr-glitch-text-after-duration: 3s;
|
|
8
|
-
--wr-glitch-text-before-shadow: 5px 0
|
|
9
|
-
--wr-glitch-text-after-shadow: -5px 0
|
|
10
|
-
// Clone backgrounds must match the page surface for the slicing
|
|
11
|
-
// illusion; the text itself uses the readable foreground token.
|
|
12
|
-
--wr-glitch-text-bg: var(--wr-color-white, #fff);
|
|
8
|
+
--wr-glitch-text-before-shadow: 5px 0 var(--wr-color-info);
|
|
9
|
+
--wr-glitch-text-after-shadow: -5px 0 var(--wr-color-danger);
|
|
13
10
|
|
|
14
11
|
position: relative;
|
|
15
12
|
display: inline-block;
|
|
@@ -24,7 +21,7 @@
|
|
|
24
21
|
position: absolute;
|
|
25
22
|
top: 0;
|
|
26
23
|
color: inherit;
|
|
27
|
-
background-color: var(--wr-glitch-text-bg);
|
|
24
|
+
background-color: var(--wr-glitch-text-bg, transparent);
|
|
28
25
|
overflow: hidden;
|
|
29
26
|
clip-path: inset(0 0 0 0);
|
|
30
27
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
&__backdrop {
|
|
26
26
|
position: absolute;
|
|
27
27
|
inset: 0;
|
|
28
|
-
background:
|
|
28
|
+
background: var(--wr-color-overlay);
|
|
29
29
|
pointer-events: none;
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
background: var(--wr-color-white);
|
|
45
45
|
border: 1px solid var(--wr-color-primary);
|
|
46
46
|
border-radius: 50%;
|
|
47
|
-
box-shadow: 0 0 0 1px rgba(
|
|
47
|
+
box-shadow: 0 0 0 1px rgba(var(--wr-color-black-rgb), 0.15);
|
|
48
48
|
box-sizing: border-box;
|
|
49
49
|
|
|
50
50
|
// Position each handle by its edge / corner.
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
padding: 2rem;
|
|
108
108
|
text-align: center;
|
|
109
109
|
color: var(--wr-color-medium);
|
|
110
|
-
background:
|
|
110
|
+
background: var(--wr-color-hover);
|
|
111
111
|
border: 1px dashed var(--wr-color-light);
|
|
112
112
|
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
113
113
|
}
|
package/input/styles/_index.scss
CHANGED
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
--wr-input-placeholder: rgba(var(--wr-color-medium-rgb), 0.7);
|
|
11
11
|
--wr-input-bg: var(--wr-color-white);
|
|
12
12
|
--wr-input-border: var(--wr-color-light);
|
|
13
|
-
--wr-input-radius: var(--wr-
|
|
13
|
+
--wr-input-radius: var(--wr-control-radius-md);
|
|
14
14
|
--wr-input-ring: transparent;
|
|
15
|
-
--wr-input-padding-y:
|
|
16
|
-
--wr-input-padding-x:
|
|
17
|
-
--wr-input-font-size:
|
|
18
|
-
--wr-input-line-height:
|
|
15
|
+
--wr-input-padding-y: var(--wr-control-padding-y-md);
|
|
16
|
+
--wr-input-padding-x: var(--wr-control-padding-x-md);
|
|
17
|
+
--wr-input-font-size: var(--wr-control-font-size-md);
|
|
18
|
+
--wr-input-line-height: var(--wr-control-line-height-md);
|
|
19
19
|
|
|
20
20
|
display: inline-block;
|
|
21
21
|
width: 100%;
|
|
@@ -57,6 +57,25 @@
|
|
|
57
57
|
cursor: not-allowed;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
// Sizes — share the `--wr-control-*` contract (22 / 30 / 36 px). Declared
|
|
61
|
+
// before `--rounded` so the pill modifier's radius / padding-x still win
|
|
62
|
+
// when both classes are present.
|
|
63
|
+
&--sm {
|
|
64
|
+
--wr-input-radius: var(--wr-control-radius-sm);
|
|
65
|
+
--wr-input-padding-y: var(--wr-control-padding-y-sm);
|
|
66
|
+
--wr-input-padding-x: var(--wr-control-padding-x-sm);
|
|
67
|
+
--wr-input-font-size: var(--wr-control-font-size-sm);
|
|
68
|
+
--wr-input-line-height: var(--wr-control-line-height-sm);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&--lg {
|
|
72
|
+
--wr-input-radius: var(--wr-control-radius-lg);
|
|
73
|
+
--wr-input-padding-y: var(--wr-control-padding-y-lg);
|
|
74
|
+
--wr-input-padding-x: var(--wr-control-padding-x-lg);
|
|
75
|
+
--wr-input-font-size: var(--wr-control-font-size-lg);
|
|
76
|
+
--wr-input-line-height: var(--wr-control-line-height-lg);
|
|
77
|
+
}
|
|
78
|
+
|
|
60
79
|
&--rounded {
|
|
61
80
|
--wr-input-radius: var(--wr-border-radius-pill);
|
|
62
81
|
--wr-input-padding-x: 1rem;
|
|
@@ -70,7 +89,7 @@
|
|
|
70
89
|
// `[wrInputPrefix]` / `[wrInputSuffix]` / `<wr-password-toggle>` siblings.
|
|
71
90
|
//
|
|
72
91
|
.wr-input-group {
|
|
73
|
-
--wr-input-group-radius: var(--wr-
|
|
92
|
+
--wr-input-group-radius: var(--wr-control-radius-md);
|
|
74
93
|
--wr-input-group-bg: var(--wr-color-white);
|
|
75
94
|
--wr-input-group-border: var(--wr-color-light);
|
|
76
95
|
--wr-input-group-ring: transparent;
|
|
@@ -120,7 +139,7 @@
|
|
|
120
139
|
user-select: none;
|
|
121
140
|
font-weight: 500;
|
|
122
141
|
font-family: var(--wr-font-family-base);
|
|
123
|
-
font-size:
|
|
142
|
+
font-size: var(--wr-text-sm);
|
|
124
143
|
line-height: 1.25rem;
|
|
125
144
|
}
|
|
126
145
|
|
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
--wr-input-otp-border: var(--wr-color-light);
|
|
6
6
|
--wr-input-otp-color: var(--wr-color-dark);
|
|
7
7
|
--wr-input-otp-focus: var(--wr-color-primary);
|
|
8
|
-
--wr-input-otp-size: 2.
|
|
8
|
+
--wr-input-otp-size: 2.5rem; // md cell (40px)
|
|
9
|
+
--wr-input-otp-font: var(--wr-text-lg); // 18px
|
|
10
|
+
--wr-input-otp-radius: var(--wr-control-radius-md);
|
|
11
|
+
--wr-input-otp-gap: 0.5rem;
|
|
9
12
|
|
|
10
13
|
display: inline-flex;
|
|
11
14
|
align-items: center;
|
|
12
|
-
gap:
|
|
15
|
+
gap: var(--wr-input-otp-gap);
|
|
13
16
|
font-family: var(--wr-font-family-base);
|
|
14
17
|
|
|
15
18
|
&__cell {
|
|
@@ -18,20 +21,20 @@
|
|
|
18
21
|
padding: 0;
|
|
19
22
|
text-align: center;
|
|
20
23
|
font-family: var(--wr-font-family-mono, monospace);
|
|
21
|
-
font-size:
|
|
24
|
+
font-size: var(--wr-input-otp-font);
|
|
22
25
|
font-weight: 500;
|
|
23
26
|
line-height: 1;
|
|
24
27
|
color: var(--wr-input-otp-color);
|
|
25
28
|
background: var(--wr-input-otp-bg);
|
|
26
29
|
border: 1px solid var(--wr-input-otp-border);
|
|
27
|
-
@include theme.smooth-br(var(--wr-
|
|
30
|
+
@include theme.smooth-br(var(--wr-input-otp-radius));
|
|
28
31
|
appearance: none;
|
|
29
32
|
transition:
|
|
30
33
|
border-color var(--wr-transition-base),
|
|
31
34
|
box-shadow var(--wr-transition-base);
|
|
32
35
|
|
|
33
36
|
&::placeholder {
|
|
34
|
-
color:
|
|
37
|
+
color: var(--wr-color-text-faint);
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
&:focus {
|
|
@@ -47,6 +50,21 @@
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
53
|
+
// Sizes — cell, digit font, radius + gap scale together.
|
|
54
|
+
&--sm {
|
|
55
|
+
--wr-input-otp-size: 2rem; // 32px
|
|
56
|
+
--wr-input-otp-font: var(--wr-text-base); // 16px
|
|
57
|
+
--wr-input-otp-radius: var(--wr-control-radius-sm);
|
|
58
|
+
--wr-input-otp-gap: 0.375rem;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&--lg {
|
|
62
|
+
--wr-input-otp-size: 3rem; // 48px
|
|
63
|
+
--wr-input-otp-font: var(--wr-text-xl); // 20px
|
|
64
|
+
--wr-input-otp-radius: var(--wr-control-radius-lg);
|
|
65
|
+
--wr-input-otp-gap: 0.625rem;
|
|
66
|
+
}
|
|
67
|
+
|
|
50
68
|
&--disabled {
|
|
51
69
|
opacity: 0.7;
|
|
52
70
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
--wr-kbd-border: rgba(var(--wr-color-dark-rgb), 0.18);
|
|
5
5
|
--wr-kbd-border-bottom: rgba(var(--wr-color-dark-rgb), 0.32);
|
|
6
6
|
--wr-kbd-color: var(--wr-color-dark);
|
|
7
|
-
--wr-kbd-radius:
|
|
7
|
+
--wr-kbd-radius: var(--wr-control-radius-md);
|
|
8
8
|
// Shadow uses the always-black backdrop token, not `--wr-color-dark-rgb`
|
|
9
9
|
// — the dark RGB flips to light in dark mode, which would turn the
|
|
10
10
|
// 1px drop-shadow into a top highlight.
|
|
@@ -33,23 +33,25 @@
|
|
|
33
33
|
white-space: nowrap;
|
|
34
34
|
|
|
35
35
|
&--sm {
|
|
36
|
+
--wr-kbd-radius: var(--wr-control-radius-sm);
|
|
36
37
|
min-width: 1.375rem;
|
|
37
38
|
height: 1.375rem;
|
|
38
39
|
padding: 0 0.3125rem;
|
|
39
|
-
font-size:
|
|
40
|
+
font-size: var(--wr-text-xs);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
&--md {
|
|
43
44
|
min-width: 1.75rem;
|
|
44
45
|
height: 1.75rem;
|
|
45
46
|
padding: 0 0.4375rem;
|
|
46
|
-
font-size:
|
|
47
|
+
font-size: var(--wr-text-sm);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
&--lg {
|
|
51
|
+
--wr-kbd-radius: var(--wr-control-radius-lg);
|
|
50
52
|
min-width: 2.125rem;
|
|
51
53
|
height: 2.125rem;
|
|
52
54
|
padding: 0 0.5625rem;
|
|
53
|
-
font-size:
|
|
55
|
+
font-size: var(--wr-text-base);
|
|
54
56
|
}
|
|
55
57
|
}
|
package/knob/styles/_index.scss
CHANGED
|
@@ -9,21 +9,30 @@
|
|
|
9
9
|
overflow: hidden;
|
|
10
10
|
@include theme.smooth-br(var(--wr-lightbox-radius, var(--wr-border-radius-base)));
|
|
11
11
|
cursor: zoom-in;
|
|
12
|
-
background:
|
|
12
|
+
background: var(--wr-color-hover);
|
|
13
|
+
|
|
14
|
+
// Reserve space before the image resolves so the box doesn't collapse to
|
|
15
|
+
// 0 and shove the layout when the thumbnail pops in.
|
|
16
|
+
&--loading {
|
|
17
|
+
min-height: var(--wr-lightbox-loading-min-height, 4rem);
|
|
18
|
+
}
|
|
13
19
|
|
|
14
20
|
&--loading::after {
|
|
15
21
|
content: '';
|
|
16
22
|
position: absolute;
|
|
17
23
|
inset: 0;
|
|
24
|
+
// Sit above the host's empty placeholder background and below the image,
|
|
25
|
+
// so the shimmer is visible over the reserved area while loading.
|
|
18
26
|
background: linear-gradient(
|
|
19
27
|
90deg,
|
|
20
|
-
rgba(
|
|
21
|
-
rgba(
|
|
22
|
-
rgba(
|
|
28
|
+
rgba(var(--wr-color-white-rgb), 0) 0%,
|
|
29
|
+
rgba(var(--wr-color-white-rgb), 0.45) 50%,
|
|
30
|
+
rgba(var(--wr-color-white-rgb), 0) 100%
|
|
23
31
|
);
|
|
24
32
|
background-size: 200% 100%;
|
|
25
33
|
animation: wr-lightbox-shimmer 1.4s linear infinite;
|
|
26
34
|
pointer-events: none;
|
|
35
|
+
z-index: 1;
|
|
27
36
|
}
|
|
28
37
|
|
|
29
38
|
&__trigger {
|
|
@@ -49,6 +58,16 @@
|
|
|
49
58
|
object-fit: cover;
|
|
50
59
|
user-select: none;
|
|
51
60
|
-webkit-user-drag: none;
|
|
61
|
+
// Fade in once the `loaded` signal drops the `--loading` class, so the
|
|
62
|
+
// image resolves smoothly instead of snapping in. Sits above the shimmer.
|
|
63
|
+
position: relative;
|
|
64
|
+
z-index: 2;
|
|
65
|
+
opacity: 1;
|
|
66
|
+
transition: opacity 0.25s ease;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&--loading &__thumb {
|
|
70
|
+
opacity: 0;
|
|
52
71
|
}
|
|
53
72
|
}
|
|
54
73
|
|
|
@@ -95,8 +114,8 @@
|
|
|
95
114
|
padding: 0;
|
|
96
115
|
border: 0;
|
|
97
116
|
border-radius: 999px;
|
|
98
|
-
background: rgba(
|
|
99
|
-
color: rgba(
|
|
117
|
+
background: rgba(var(--wr-color-white-rgb), 0.12);
|
|
118
|
+
color: rgba(var(--wr-color-white-rgb), 0.9);
|
|
100
119
|
cursor: pointer;
|
|
101
120
|
transition:
|
|
102
121
|
background 0.15s ease,
|
|
@@ -105,7 +124,7 @@
|
|
|
105
124
|
@include theme.touch-target($positioned: true); // 36px -> 44px tap area on touch
|
|
106
125
|
|
|
107
126
|
&:hover {
|
|
108
|
-
background: rgba(
|
|
127
|
+
background: rgba(var(--wr-color-white-rgb), 0.2);
|
|
109
128
|
}
|
|
110
129
|
|
|
111
130
|
&:active {
|
|
@@ -113,7 +132,7 @@
|
|
|
113
132
|
}
|
|
114
133
|
|
|
115
134
|
&:focus-visible {
|
|
116
|
-
outline: 2px solid rgba(
|
|
135
|
+
outline: 2px solid rgba(var(--wr-color-white-rgb), 0.9);
|
|
117
136
|
outline-offset: 2px;
|
|
118
137
|
}
|
|
119
138
|
}
|
|
@@ -128,9 +147,9 @@
|
|
|
128
147
|
}
|
|
129
148
|
|
|
130
149
|
&__caption {
|
|
131
|
-
color: rgba(
|
|
150
|
+
color: rgba(var(--wr-color-white-rgb), 0.85);
|
|
132
151
|
font-family: var(--wr-font-family-base);
|
|
133
|
-
font-size:
|
|
152
|
+
font-size: var(--wr-text-sm);
|
|
134
153
|
text-align: center;
|
|
135
154
|
max-width: 60ch;
|
|
136
155
|
}
|
package/list/styles/_index.scss
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
--wr-list-item-gap: 0.75rem;
|
|
12
12
|
--wr-list-divider-color: var(--wr-color-light);
|
|
13
13
|
--wr-list-bg: transparent;
|
|
14
|
-
--wr-list-hover-bg:
|
|
14
|
+
--wr-list-hover-bg: var(--wr-color-hover);
|
|
15
15
|
--wr-list-active-bg: rgba(var(--wr-color-primary-rgb), 0.08);
|
|
16
16
|
|
|
17
17
|
display: block;
|
|
18
18
|
font-family: var(--wr-font-family-base);
|
|
19
|
-
font-size:
|
|
19
|
+
font-size: var(--wr-text-sm);
|
|
20
20
|
color: var(--wr-color-dark);
|
|
21
21
|
background: var(--wr-list-bg);
|
|
22
22
|
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
&:focus-visible {
|
|
68
|
-
|
|
68
|
+
@include theme.focus-ring;
|
|
69
69
|
outline-offset: -2px;
|
|
70
70
|
}
|
|
71
71
|
}
|