ngwr 6.1.1 → 7.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 +1 -3
- package/README.md +179 -32
- package/affix/styles/_index.scss +12 -0
- package/alert/styles/_index.scss +75 -32
- package/anchor/styles/_index.scss +59 -0
- package/aurora/aurora.scss +1 -0
- package/aurora/styles/_index.scss +30 -0
- package/avatar/styles/_index.scss +30 -14
- package/back-top/styles/_index.scss +42 -0
- package/badge/styles/_index.scss +80 -0
- package/badge/styles/_tag.scss +81 -0
- package/bar-chart/styles/_index.scss +56 -0
- package/blur-text/blur-text.scss +1 -0
- package/blur-text/styles/_index.scss +14 -0
- package/border-glow/border-glow.scss +4 -0
- package/border-glow/styles/_index.scss +228 -0
- package/breadcrumbs/breadcrumbs.scss +1 -0
- package/breadcrumbs/styles/_index.scss +76 -0
- package/burger/styles/_index.scss +101 -0
- package/button/styles/_index.scss +148 -125
- package/calendar/styles/_index.scss +252 -0
- package/calendar-heatmap/styles/_index.scss +69 -0
- package/card/card.scss +1 -0
- package/card/styles/_index.scss +96 -0
- package/carousel/styles/_index.scss +102 -0
- package/cascader/cascader.scss +1 -0
- package/cascader/styles/_index.scss +174 -0
- package/checkbox/styles/_index.scss +76 -60
- package/circular-text/circular-text.scss +1 -0
- package/circular-text/styles/_index.scss +45 -0
- package/click-spark/click-spark.scss +1 -0
- package/click-spark/styles/_index.scss +16 -0
- package/collapse/styles/_index.scss +92 -0
- package/color-picker/styles/_index.scss +247 -0
- package/command-palette/styles/_index.scss +188 -0
- package/compare/styles/_index.scss +100 -0
- package/context-menu/styles/_index.scss +112 -0
- package/counter/styles/_index.scss +44 -0
- package/date-picker/styles/_index.scss +204 -0
- package/decrypt-text/decrypt-text.scss +1 -0
- package/decrypt-text/styles/_index.scss +26 -0
- package/density/styles/_index.scss +37 -0
- package/descriptions/styles/_index.scss +104 -0
- package/dialog/styles/_index.scss +101 -27
- package/divider/styles/_index.scss +43 -24
- package/donut-chart/styles/_index.scss +76 -0
- package/drag-drop/sortable-list.scss +1 -0
- package/drag-drop/styles/_index.scss +99 -0
- package/drawer/styles/_index.scss +164 -0
- package/dropdown/styles/_index.scss +76 -56
- package/empty/styles/_index.scss +49 -0
- package/falling-text/falling-text.scss +1 -0
- package/falling-text/styles/_index.scss +30 -0
- package/fesm2022/ngwr-affix.mjs +102 -0
- package/fesm2022/ngwr-affix.mjs.map +1 -0
- package/fesm2022/ngwr-alert.mjs +70 -52
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +103 -0
- package/fesm2022/ngwr-anchor.mjs.map +1 -0
- package/fesm2022/ngwr-aurora.mjs +309 -0
- package/fesm2022/ngwr-aurora.mjs.map +1 -0
- package/fesm2022/ngwr-avatar.mjs +81 -71
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +81 -0
- package/fesm2022/ngwr-back-top.mjs.map +1 -0
- package/fesm2022/ngwr-badge.mjs +192 -0
- package/fesm2022/ngwr-badge.mjs.map +1 -0
- package/fesm2022/ngwr-bar-chart.mjs +69 -0
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -0
- package/fesm2022/ngwr-blur-text.mjs +181 -0
- package/fesm2022/ngwr-blur-text.mjs.map +1 -0
- package/fesm2022/ngwr-border-glow.mjs +278 -0
- package/fesm2022/ngwr-border-glow.mjs.map +1 -0
- package/fesm2022/ngwr-breadcrumbs.mjs +101 -0
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -0
- package/fesm2022/ngwr-burger.mjs +60 -0
- package/fesm2022/ngwr-burger.mjs.map +1 -0
- package/fesm2022/ngwr-button.mjs +179 -104
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +145 -0
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -0
- package/fesm2022/ngwr-calendar.mjs +402 -0
- package/fesm2022/ngwr-calendar.mjs.map +1 -0
- package/fesm2022/ngwr-card.mjs +100 -0
- package/fesm2022/ngwr-card.mjs.map +1 -0
- package/fesm2022/ngwr-carousel.mjs +128 -0
- package/fesm2022/ngwr-carousel.mjs.map +1 -0
- package/fesm2022/ngwr-cascader.mjs +280 -0
- package/fesm2022/ngwr-cascader.mjs.map +1 -0
- package/fesm2022/ngwr-checkbox.mjs +214 -54
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +168 -0
- package/fesm2022/ngwr-circular-text.mjs.map +1 -0
- package/fesm2022/ngwr-click-spark.mjs +163 -0
- package/fesm2022/ngwr-click-spark.mjs.map +1 -0
- package/fesm2022/ngwr-clipboard.mjs +130 -0
- package/fesm2022/ngwr-clipboard.mjs.map +1 -0
- package/fesm2022/ngwr-collapse.mjs +232 -0
- package/fesm2022/ngwr-collapse.mjs.map +1 -0
- package/fesm2022/ngwr-color-picker.mjs +646 -0
- package/fesm2022/ngwr-color-picker.mjs.map +1 -0
- package/fesm2022/ngwr-command-palette.mjs +259 -0
- package/fesm2022/ngwr-command-palette.mjs.map +1 -0
- package/fesm2022/ngwr-compare.mjs +137 -0
- package/fesm2022/ngwr-compare.mjs.map +1 -0
- package/fesm2022/ngwr-confetti.mjs +160 -0
- package/fesm2022/ngwr-confetti.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu.mjs +653 -0
- package/fesm2022/ngwr-context-menu.mjs.map +1 -0
- package/fesm2022/ngwr-cookie.mjs +127 -0
- package/fesm2022/ngwr-cookie.mjs.map +1 -0
- package/fesm2022/ngwr-counter.mjs +415 -0
- package/fesm2022/ngwr-counter.mjs.map +1 -0
- package/fesm2022/ngwr-date-adapter-fns.mjs +180 -0
- package/fesm2022/ngwr-date-adapter-fns.mjs.map +1 -0
- package/fesm2022/ngwr-date-adapter-luxon.mjs +201 -0
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -0
- package/fesm2022/ngwr-date-adapter.mjs +419 -0
- package/fesm2022/ngwr-date-adapter.mjs.map +1 -0
- package/fesm2022/ngwr-date-picker.mjs +624 -0
- package/fesm2022/ngwr-date-picker.mjs.map +1 -0
- package/fesm2022/ngwr-decrypt-text.mjs +396 -0
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -0
- package/fesm2022/ngwr-density.mjs +157 -0
- package/fesm2022/ngwr-density.mjs.map +1 -0
- package/fesm2022/ngwr-descriptions.mjs +83 -0
- package/fesm2022/ngwr-descriptions.mjs.map +1 -0
- package/fesm2022/ngwr-dialog.mjs +249 -377
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +315 -0
- package/fesm2022/ngwr-directives.mjs.map +1 -0
- package/fesm2022/ngwr-divider.mjs +74 -59
- package/fesm2022/ngwr-divider.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +131 -0
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -0
- package/fesm2022/ngwr-drag-drop.mjs +117 -0
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -0
- package/fesm2022/ngwr-drawer.mjs +315 -0
- package/fesm2022/ngwr-drawer.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown.mjs +276 -229
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +57 -0
- package/fesm2022/ngwr-empty.mjs.map +1 -0
- package/fesm2022/ngwr-falling-text.mjs +316 -0
- package/fesm2022/ngwr-falling-text.mjs.map +1 -0
- package/fesm2022/ngwr-file-upload.mjs +260 -0
- package/fesm2022/ngwr-file-upload.mjs.map +1 -0
- package/fesm2022/ngwr-form.mjs +133 -48
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +373 -0
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -0
- package/fesm2022/ngwr-gauge.mjs +83 -0
- package/fesm2022/ngwr-gauge.mjs.map +1 -0
- package/fesm2022/ngwr-glitch-text.mjs +67 -0
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -0
- package/fesm2022/ngwr-gradient-text.mjs +109 -0
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -0
- package/fesm2022/ngwr-hotkey.mjs +263 -0
- package/fesm2022/ngwr-hotkey.mjs.map +1 -0
- package/fesm2022/ngwr-i18n-en.mjs +168 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -0
- package/fesm2022/ngwr-i18n-ru.mjs +156 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -0
- package/fesm2022/ngwr-i18n.mjs +478 -0
- package/fesm2022/ngwr-i18n.mjs.map +1 -0
- package/fesm2022/ngwr-icon-adapters-feather.mjs +74 -0
- package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -0
- package/fesm2022/ngwr-icon-adapters-lucide.mjs +88 -0
- package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -0
- package/fesm2022/ngwr-icon.mjs +189 -649
- package/fesm2022/ngwr-icon.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper.mjs +299 -0
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -0
- package/fesm2022/ngwr-input-number.mjs +239 -0
- package/fesm2022/ngwr-input-number.mjs.map +1 -0
- package/fesm2022/ngwr-input-otp.mjs +216 -0
- package/fesm2022/ngwr-input-otp.mjs.map +1 -0
- package/fesm2022/ngwr-input.mjs +183 -104
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-keyboard.mjs +47 -0
- package/fesm2022/ngwr-keyboard.mjs.map +1 -0
- package/fesm2022/ngwr-knob.mjs +227 -0
- package/fesm2022/ngwr-knob.mjs.map +1 -0
- package/fesm2022/ngwr-layout.mjs +197 -0
- package/fesm2022/ngwr-layout.mjs.map +1 -0
- package/fesm2022/ngwr-lightbox.mjs +131 -0
- package/fesm2022/ngwr-lightbox.mjs.map +1 -0
- package/fesm2022/ngwr-line-chart.mjs +176 -0
- package/fesm2022/ngwr-line-chart.mjs.map +1 -0
- package/fesm2022/ngwr-list.mjs +132 -0
- package/fesm2022/ngwr-list.mjs.map +1 -0
- package/fesm2022/ngwr-loading-bar.mjs +160 -0
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -0
- package/fesm2022/ngwr-marquee.mjs +224 -0
- package/fesm2022/ngwr-marquee.mjs.map +1 -0
- package/fesm2022/ngwr-media.mjs +132 -0
- package/fesm2022/ngwr-media.mjs.map +1 -0
- package/fesm2022/ngwr-mention.mjs +374 -0
- package/fesm2022/ngwr-mention.mjs.map +1 -0
- package/fesm2022/ngwr-meta.mjs +323 -0
- package/fesm2022/ngwr-meta.mjs.map +1 -0
- package/fesm2022/ngwr-meter-group.mjs +73 -0
- package/fesm2022/ngwr-meter-group.mjs.map +1 -0
- package/fesm2022/ngwr-overlay.mjs +145 -0
- package/fesm2022/ngwr-overlay.mjs.map +1 -0
- package/fesm2022/ngwr-page-header.mjs +53 -0
- package/fesm2022/ngwr-page-header.mjs.map +1 -0
- package/fesm2022/ngwr-pagination.mjs +152 -96
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +290 -11
- package/fesm2022/ngwr-pipes.mjs.map +1 -1
- package/fesm2022/ngwr-platform.mjs +63 -0
- package/fesm2022/ngwr-platform.mjs.map +1 -0
- package/fesm2022/ngwr-popconfirm.mjs +188 -0
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -0
- package/fesm2022/ngwr-popover.mjs +365 -0
- package/fesm2022/ngwr-popover.mjs.map +1 -0
- package/fesm2022/ngwr-progress.mjs +47 -39
- package/fesm2022/ngwr-progress.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +160 -179
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio.mjs +204 -0
- package/fesm2022/ngwr-radio.mjs.map +1 -0
- package/fesm2022/ngwr-rating.mjs +180 -0
- package/fesm2022/ngwr-rating.mjs.map +1 -0
- package/fesm2022/ngwr-result.mjs +119 -0
- package/fesm2022/ngwr-result.mjs.map +1 -0
- package/fesm2022/ngwr-rotating-text.mjs +256 -0
- package/fesm2022/ngwr-rotating-text.mjs.map +1 -0
- package/fesm2022/ngwr-scramble-text.mjs +165 -0
- package/fesm2022/ngwr-scramble-text.mjs.map +1 -0
- package/fesm2022/ngwr-scroll.mjs +107 -0
- package/fesm2022/ngwr-scroll.mjs.map +1 -0
- package/fesm2022/ngwr-segmented.mjs +96 -0
- package/fesm2022/ngwr-segmented.mjs.map +1 -0
- package/fesm2022/ngwr-select.mjs +844 -309
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +127 -0
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -0
- package/fesm2022/ngwr-sidebar.mjs +134 -0
- package/fesm2022/ngwr-sidebar.mjs.map +1 -0
- package/fesm2022/ngwr-skeleton.mjs +59 -34
- package/fesm2022/ngwr-skeleton.mjs.map +1 -1
- package/fesm2022/ngwr-slider.mjs +234 -0
- package/fesm2022/ngwr-slider.mjs.map +1 -0
- package/fesm2022/ngwr-sparkline.mjs +104 -0
- package/fesm2022/ngwr-sparkline.mjs.map +1 -0
- package/fesm2022/ngwr-speed-dial.mjs +79 -0
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -0
- package/fesm2022/ngwr-spinner.mjs +34 -28
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +970 -0
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -0
- package/fesm2022/ngwr-split-text.mjs +200 -0
- package/fesm2022/ngwr-split-text.mjs.map +1 -0
- package/fesm2022/ngwr-splitter.mjs +125 -0
- package/fesm2022/ngwr-splitter.mjs.map +1 -0
- package/fesm2022/ngwr-spotlight-card.mjs +138 -0
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -0
- package/fesm2022/ngwr-squircle.mjs +320 -0
- package/fesm2022/ngwr-squircle.mjs.map +1 -0
- package/fesm2022/ngwr-star-border.mjs +72 -0
- package/fesm2022/ngwr-star-border.mjs.map +1 -0
- package/fesm2022/ngwr-statistic.mjs +220 -0
- package/fesm2022/ngwr-statistic.mjs.map +1 -0
- package/fesm2022/ngwr-stepper.mjs +186 -0
- package/fesm2022/ngwr-stepper.mjs.map +1 -0
- package/fesm2022/ngwr-storage.mjs +317 -0
- package/fesm2022/ngwr-storage.mjs.map +1 -0
- package/fesm2022/ngwr-switch.mjs +99 -0
- package/fesm2022/ngwr-switch.mjs.map +1 -0
- package/fesm2022/ngwr-table.mjs +217 -206
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs.mjs +217 -0
- package/fesm2022/ngwr-tabs.mjs.map +1 -0
- package/fesm2022/ngwr-textarea.mjs +106 -120
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-theme.mjs +152 -0
- package/fesm2022/ngwr-theme.mjs.map +1 -0
- package/fesm2022/ngwr-tilt-card.mjs +137 -0
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -0
- package/fesm2022/ngwr-timeline.mjs +73 -0
- package/fesm2022/ngwr-timeline.mjs.map +1 -0
- package/fesm2022/ngwr-toast.mjs +446 -0
- package/fesm2022/ngwr-toast.mjs.map +1 -0
- package/fesm2022/ngwr-toolbar.mjs +46 -0
- package/fesm2022/ngwr-toolbar.mjs.map +1 -0
- package/fesm2022/ngwr-tree.mjs +483 -0
- package/fesm2022/ngwr-tree.mjs.map +1 -0
- package/fesm2022/ngwr-typewriter.mjs +229 -0
- package/fesm2022/ngwr-typewriter.mjs.map +1 -0
- package/fesm2022/ngwr-typography.mjs +79 -0
- package/fesm2022/ngwr-typography.mjs.map +1 -0
- package/fesm2022/ngwr-utils.mjs +535 -0
- package/fesm2022/ngwr-utils.mjs.map +1 -0
- package/fesm2022/ngwr-validators.mjs +214 -0
- package/fesm2022/ngwr-validators.mjs.map +1 -0
- package/fesm2022/ngwr-version.mjs +51 -0
- package/fesm2022/ngwr-version.mjs.map +1 -0
- package/fesm2022/ngwr-virtual-scroll.mjs +99 -0
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -0
- package/fesm2022/ngwr-waves.mjs +356 -0
- package/fesm2022/ngwr-waves.mjs.map +1 -0
- package/fesm2022/ngwr-window.mjs +1141 -0
- package/fesm2022/ngwr-window.mjs.map +1 -0
- package/fesm2022/ngwr.mjs +0 -3
- package/fesm2022/ngwr.mjs.map +1 -1
- package/file-upload/styles/_index.scss +152 -0
- package/form/styles/_index.scss +85 -42
- package/gauge/styles/_index.scss +37 -0
- package/glitch-text/glitch-text.scss +1 -0
- package/glitch-text/styles/_index.scss +144 -0
- package/gradient-text/gradient-text.scss +1 -0
- package/gradient-text/styles/_index.scss +113 -0
- package/icon/styles/_index.scss +21 -15
- package/image-cropper/styles/_index.scss +114 -0
- package/input/styles/_index.scss +133 -93
- package/input-number/styles/_index.scss +75 -0
- package/input-otp/styles/_index.scss +53 -0
- package/keyboard/styles/_index.scss +55 -0
- package/knob/styles/_index.scss +54 -0
- package/layout/styles/_index.scss +65 -0
- package/lightbox/lightbox.scss +1 -0
- package/lightbox/styles/_index.scss +144 -0
- package/line-chart/styles/_index.scss +93 -0
- package/list/list.scss +1 -0
- package/list/styles/_index.scss +101 -0
- package/loading-bar/loading-bar.scss +1 -0
- package/loading-bar/styles/_index.scss +29 -0
- package/marquee/marquee.scss +1 -0
- package/marquee/styles/_index.scss +138 -0
- package/mention/styles/_index.scss +47 -0
- package/meter-group/styles/_index.scss +61 -0
- package/package.json +586 -104
- package/page-header/styles/_index.scss +78 -0
- package/pagination/styles/_index.scss +89 -34
- package/popconfirm/styles/_index.scss +32 -0
- package/popover/styles/_index.scss +99 -0
- package/progress/styles/_index.scss +29 -14
- package/qr/styles/_index.scss +6 -3
- package/radio/styles/_index.scss +111 -0
- package/rating/styles/_index.scss +63 -0
- package/result/styles/_index.scss +69 -0
- package/rotating-text/rotating-text.scss +1 -0
- package/rotating-text/styles/_index.scss +39 -0
- package/schematics/collection.json +37 -0
- package/schematics/component-style/index.js +49 -0
- package/{cdk/utils/index.d.ts → schematics/component-style/schema.js} +2 -8
- package/schematics/component-style/schema.json +20 -0
- package/schematics/icon-set/index.js +96 -0
- package/schematics/icon-set/schema.js +8 -0
- package/schematics/icon-set/schema.json +39 -0
- package/schematics/migrations/v7/index.js +187 -0
- package/schematics/migrations.json +10 -0
- package/schematics/ng-add/index.js +180 -0
- package/schematics/ng-add/schema.js +8 -0
- package/schematics/ng-add/schema.json +80 -0
- package/schematics/page/index.js +63 -0
- package/schematics/page/schema.js +8 -0
- package/schematics/page/schema.json +39 -0
- package/schematics/page/templates.js +198 -0
- package/schematics/provider/index.js +126 -0
- package/schematics/provider/schema.js +8 -0
- package/schematics/provider/schema.json +52 -0
- package/schematics/use/index.js +143 -0
- package/schematics/use/schema.js +8 -0
- package/schematics/use/schema.json +25 -0
- package/schematics/use/symbol-map.json +357 -0
- package/scramble-text/scramble-text.scss +1 -0
- package/scramble-text/styles/_index.scss +8 -0
- package/segmented/styles/_index.scss +92 -0
- package/select/styles/_index.scss +245 -159
- package/shiny-text/shiny-text.scss +1 -0
- package/shiny-text/styles/_index.scss +101 -0
- package/sidebar/styles/_index.scss +208 -0
- package/skeleton/styles/_index.scss +33 -33
- package/slider/styles/_index.scss +77 -0
- package/sparkline/styles/_index.scss +9 -0
- package/speed-dial/styles/_index.scss +158 -0
- package/spinner/styles/_index.scss +38 -22
- package/splash-cursor/splash-cursor.scss +1 -0
- package/splash-cursor/styles/_index.scss +27 -0
- package/split-text/split-text.scss +1 -0
- package/split-text/styles/_index.scss +22 -0
- package/splitter/styles/_index.scss +85 -0
- package/spotlight-card/spotlight-card.scss +1 -0
- package/spotlight-card/styles/_index.scss +43 -0
- package/squircle/styles/_index.scss +34 -0
- package/star-border/star-border.scss +1 -0
- package/star-border/styles/_index.scss +118 -0
- package/statistic/styles/_index.scss +54 -0
- package/stepper/styles/_index.scss +162 -0
- package/styles/_animations.scss +198 -0
- package/styles/_breakpoints.scss +75 -0
- package/styles/_grid.scss +71 -0
- package/styles/_reset.scss +123 -0
- package/styles/_typography.scss +122 -0
- package/styles.scss +103 -13
- package/switch/styles/_index.scss +82 -0
- package/table/styles/_index.scss +255 -4
- package/tabs/styles/_index.scss +71 -0
- package/textarea/styles/_index.scss +47 -56
- package/theme/styles/_colors.scss +83 -0
- package/theme/styles/_dark.scss +85 -0
- package/theme/styles/_focus.scss +93 -0
- package/theme/styles/_index.scss +5 -0
- package/theme/styles/_mixins.scss +57 -0
- package/theme/styles/_variables.scss +118 -0
- package/tilt-card/styles/_index.scss +40 -0
- package/tilt-card/tilt-card.scss +1 -0
- package/timeline/styles/_index.scss +127 -0
- package/toast/styles/_index.scss +263 -0
- package/toolbar/styles/_index.scss +65 -0
- package/tree/styles/_index.scss +271 -0
- package/types/ngwr-affix.d.ts +43 -0
- package/types/ngwr-alert.d.ts +68 -0
- package/types/ngwr-anchor.d.ts +53 -0
- package/types/ngwr-aurora.d.ts +52 -0
- package/types/ngwr-avatar.d.ts +90 -0
- package/types/ngwr-back-top.d.ts +37 -0
- package/types/ngwr-badge.d.ts +158 -0
- package/types/ngwr-bar-chart.d.ts +47 -0
- package/types/ngwr-blur-text.d.ts +62 -0
- package/types/ngwr-border-glow.d.ts +66 -0
- package/types/ngwr-breadcrumbs.d.ts +61 -0
- package/types/ngwr-burger.d.ts +36 -0
- package/types/ngwr-button.d.ts +176 -0
- package/types/ngwr-calendar-heatmap.d.ts +58 -0
- package/types/ngwr-calendar.d.ts +116 -0
- package/types/ngwr-card.d.ts +50 -0
- package/types/ngwr-carousel.d.ts +57 -0
- package/types/ngwr-cascader.d.ts +107 -0
- package/types/ngwr-checkbox.d.ts +139 -0
- package/types/ngwr-circular-text.d.ts +49 -0
- package/types/ngwr-click-spark.d.ts +52 -0
- package/types/ngwr-clipboard.d.ts +53 -0
- package/types/ngwr-collapse.d.ts +139 -0
- package/types/ngwr-color-picker.d.ts +302 -0
- package/types/ngwr-command-palette.d.ts +113 -0
- package/types/ngwr-compare.d.ts +55 -0
- package/types/ngwr-confetti.d.ts +70 -0
- package/types/ngwr-context-menu.d.ts +207 -0
- package/types/ngwr-cookie.d.ts +60 -0
- package/types/ngwr-counter.d.ts +182 -0
- package/types/ngwr-date-adapter-fns.d.ts +73 -0
- package/types/ngwr-date-adapter-luxon.d.ts +73 -0
- package/types/ngwr-date-adapter.d.ts +198 -0
- package/types/ngwr-date-picker.d.ts +117 -0
- package/types/ngwr-decrypt-text.d.ts +85 -0
- package/types/ngwr-density.d.ts +97 -0
- package/types/ngwr-descriptions.d.ts +41 -0
- package/types/ngwr-dialog.d.ts +210 -0
- package/types/ngwr-directives.d.ts +125 -0
- package/types/ngwr-divider.d.ts +73 -0
- package/types/ngwr-donut-chart.d.ts +53 -0
- package/types/ngwr-drag-drop.d.ts +83 -0
- package/types/ngwr-drawer.d.ts +155 -0
- package/types/ngwr-dropdown.d.ts +124 -0
- package/types/ngwr-empty.d.ts +38 -0
- package/types/ngwr-falling-text.d.ts +63 -0
- package/types/ngwr-file-upload.d.ts +94 -0
- package/types/ngwr-form.d.ts +95 -0
- package/types/ngwr-fuzzy-text.d.ts +74 -0
- package/types/ngwr-gauge.d.ts +39 -0
- package/types/ngwr-glitch-text.d.ts +31 -0
- package/types/ngwr-gradient-text.d.ts +46 -0
- package/types/ngwr-hotkey.d.ts +142 -0
- package/types/ngwr-i18n-en.d.ts +18 -0
- package/types/ngwr-i18n-ru.d.ts +6 -0
- package/types/ngwr-i18n.d.ts +336 -0
- package/types/ngwr-icon-adapters-feather.d.ts +44 -0
- package/types/ngwr-icon-adapters-lucide.d.ts +54 -0
- package/types/ngwr-icon.d.ts +180 -0
- package/types/ngwr-image-cropper.d.ts +110 -0
- package/types/ngwr-input-number.d.ts +77 -0
- package/types/ngwr-input-otp.d.ts +78 -0
- package/types/ngwr-input.d.ts +131 -0
- package/types/ngwr-keyboard.d.ts +34 -0
- package/types/ngwr-knob.d.ts +77 -0
- package/types/ngwr-layout.d.ts +89 -0
- package/types/ngwr-lightbox.d.ts +50 -0
- package/types/ngwr-line-chart.d.ts +90 -0
- package/types/ngwr-list.d.ts +71 -0
- package/types/ngwr-loading-bar.d.ts +79 -0
- package/types/ngwr-marquee.d.ts +95 -0
- package/types/ngwr-media.d.ts +74 -0
- package/types/ngwr-mention.d.ts +110 -0
- package/types/ngwr-meta.d.ts +188 -0
- package/types/ngwr-meter-group.d.ts +57 -0
- package/types/ngwr-overlay.d.ts +110 -0
- package/types/ngwr-page-header.d.ts +35 -0
- package/types/ngwr-pagination.d.ts +119 -0
- package/types/ngwr-pipes.d.ts +177 -0
- package/types/ngwr-platform.d.ts +38 -0
- package/types/ngwr-popconfirm.d.ts +79 -0
- package/types/ngwr-popover.d.ts +90 -0
- package/types/ngwr-progress.d.ts +33 -0
- package/types/ngwr-qr.d.ts +56 -0
- package/types/ngwr-radio.d.ts +120 -0
- package/types/ngwr-rating.d.ts +62 -0
- package/types/ngwr-result.d.ts +64 -0
- package/types/ngwr-rotating-text.d.ts +72 -0
- package/types/ngwr-scramble-text.d.ts +49 -0
- package/types/ngwr-scroll.d.ts +65 -0
- package/types/ngwr-segmented.d.ts +65 -0
- package/types/ngwr-select.d.ts +413 -0
- package/types/ngwr-shiny-text.d.ts +70 -0
- package/types/ngwr-sidebar.d.ts +83 -0
- package/types/ngwr-skeleton.d.ts +41 -0
- package/types/ngwr-slider.d.ts +86 -0
- package/types/ngwr-sparkline.d.ts +48 -0
- package/types/ngwr-speed-dial.d.ts +51 -0
- package/types/ngwr-spinner.d.ts +41 -0
- package/types/ngwr-splash-cursor.d.ts +94 -0
- package/types/ngwr-split-text.d.ts +83 -0
- package/types/ngwr-splitter.d.ts +52 -0
- package/types/ngwr-spotlight-card.d.ts +71 -0
- package/types/ngwr-squircle.d.ts +132 -0
- package/types/ngwr-star-border.d.ts +40 -0
- package/types/ngwr-statistic.d.ts +88 -0
- package/types/ngwr-stepper.d.ts +99 -0
- package/types/ngwr-storage.d.ts +178 -0
- package/types/ngwr-switch.d.ts +39 -0
- package/types/ngwr-table.d.ts +237 -0
- package/types/ngwr-tabs.d.ts +125 -0
- package/types/ngwr-textarea.d.ts +60 -0
- package/types/ngwr-theme.d.ts +124 -0
- package/types/ngwr-tilt-card.d.ts +63 -0
- package/types/ngwr-timeline.d.ts +40 -0
- package/types/ngwr-toast.d.ts +230 -0
- package/types/ngwr-toolbar.d.ts +30 -0
- package/types/ngwr-tree.d.ts +150 -0
- package/types/ngwr-typewriter.d.ts +84 -0
- package/types/ngwr-typography.d.ts +56 -0
- package/types/ngwr-utils.d.ts +447 -0
- package/types/ngwr-validators.d.ts +70 -0
- package/types/ngwr-version.d.ts +44 -0
- package/types/ngwr-virtual-scroll.d.ts +64 -0
- package/types/ngwr-waves.d.ts +71 -0
- package/types/ngwr-window.d.ts +437 -0
- package/typewriter/styles/_index.scss +33 -0
- package/typewriter/typewriter.scss +1 -0
- package/typography/styles/_index.scss +211 -0
- package/virtual-scroll/styles/_index.scss +27 -0
- package/virtual-scroll/virtual-scroll.scss +1 -0
- package/waves/styles/_index.scss +24 -0
- package/waves/waves.scss +1 -0
- package/window/styles/_index.scss +430 -0
- package/alert/index.d.ts +0 -32
- package/alert/styles/theming.scss +0 -26
- package/alert/styles/vars.scss +0 -11
- package/avatar/index.d.ts +0 -30
- package/button/index.d.ts +0 -45
- package/button/styles/vars.scss +0 -13
- package/cdk/index.d.ts +0 -24
- package/cdk/rxjs/index.d.ts +0 -40
- package/cdk/types/index.d.ts +0 -27
- package/checkbox/index.d.ts +0 -31
- package/checkbox/styles/vars.scss +0 -16
- package/dialog/index.d.ts +0 -193
- package/dialog/styles/vars.scss +0 -7
- package/divider/index.d.ts +0 -16
- package/dropdown/index.d.ts +0 -68
- package/dropdown/styles/vars.scss +0 -18
- package/fesm2022/ngwr-cdk-rxjs.mjs +0 -53
- package/fesm2022/ngwr-cdk-rxjs.mjs.map +0 -1
- package/fesm2022/ngwr-cdk-types.mjs +0 -44
- package/fesm2022/ngwr-cdk-types.mjs.map +0 -1
- package/fesm2022/ngwr-cdk-utils.mjs +0 -30
- package/fesm2022/ngwr-cdk-utils.mjs.map +0 -1
- package/fesm2022/ngwr-cdk.mjs +0 -46
- package/fesm2022/ngwr-cdk.mjs.map +0 -1
- package/fesm2022/ngwr-tag.mjs +0 -87
- package/fesm2022/ngwr-tag.mjs.map +0 -1
- package/form/index.d.ts +0 -28
- package/icon/index.d.ts +0 -830
- package/icon/styles/vars.scss +0 -3
- package/input/index.d.ts +0 -43
- package/input/styles/vars.scss +0 -17
- package/pagination/index.d.ts +0 -34
- package/pagination/styles/vars.scss +0 -14
- package/pipes/index.d.ts +0 -17
- package/progress/index.d.ts +0 -13
- package/progress/styles/theming.scss +0 -8
- package/progress/styles/vars.scss +0 -6
- package/qr/index.d.ts +0 -127
- package/select/index.d.ts +0 -121
- package/select/styles/vars.scss +0 -32
- package/skeleton/index.d.ts +0 -13
- package/spinner/index.d.ts +0 -23
- package/styles/animations.scss +0 -92
- package/styles/cdk.scss +0 -5
- package/styles/colors.scss +0 -72
- package/styles/grid.scss +0 -99
- package/styles/maps.scss +0 -31
- package/styles/reset.scss +0 -112
- package/styles/variables.scss +0 -72
- package/table/index.d.ts +0 -101
- package/table/styles/table-filter.scss +0 -202
- package/table/styles/table-sort.scss +0 -47
- package/table/styles/table.scss +0 -232
- package/table/styles/vars.scss +0 -21
- package/tag/index.d.ts +0 -24
- package/tag/styles/_index.scss +0 -32
- package/tag/styles/theming.scss +0 -21
- package/tag/styles/vars.scss +0 -12
- package/textarea/index.d.ts +0 -47
- package/textarea/styles/vars.scss +0 -17
- /package/{index.d.ts → types/ngwr.d.ts} +0 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ComponentRef, WritableSignal, Signal, InjectionToken } from '@angular/core';
|
|
3
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { ComponentType } from '@angular/cdk/portal';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
*
|
|
10
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
11
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Chrome bar density.
|
|
15
|
+
*
|
|
16
|
+
* - `normal` (default) — 2.25rem bar, regular title font.
|
|
17
|
+
* - `compact` — 1.625rem bar, smaller title + tighter action dots; useful
|
|
18
|
+
* for utility / docked panels where vertical space is precious.
|
|
19
|
+
*/
|
|
20
|
+
type WrWindowChromeSize = 'compact' | 'normal';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @license
|
|
24
|
+
*
|
|
25
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
26
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Chrome style preset. Picks the side, glyphs, and button look of the
|
|
30
|
+
* minimize / maximize / close cluster.
|
|
31
|
+
*
|
|
32
|
+
* - `auto` (default) — read the user's OS from the browser and pick
|
|
33
|
+
* `macos` / `windows` / `linux`. Unknown platforms fall back to
|
|
34
|
+
* `windows`. SSR-safe (resolves to `windows` on the server).
|
|
35
|
+
* - `macos` — traffic-light dots on the LEFT (red close, yellow minimize,
|
|
36
|
+
* green maximize). Glyphs (×, −, +) appear when the cluster is hovered.
|
|
37
|
+
* - `windows` — monochrome glyph buttons on the RIGHT.
|
|
38
|
+
* - `linux` — close-only on the right; minimize / maximize hidden unless
|
|
39
|
+
* explicitly requested.
|
|
40
|
+
*/
|
|
41
|
+
type WrWindowOs = 'auto' | 'macos' | 'windows' | 'linux';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @license
|
|
45
|
+
*
|
|
46
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
47
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* Size preset — seeds initial width / height when `[initialWidth]` /
|
|
51
|
+
* `[initialHeight]` are not provided.
|
|
52
|
+
*
|
|
53
|
+
* - `sm` — 320 × 200
|
|
54
|
+
* - `md` — 480 × 320 (default)
|
|
55
|
+
* - `lg` — 720 × 480
|
|
56
|
+
*/
|
|
57
|
+
type WrWindowSize = 'sm' | 'md' | 'lg';
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @license
|
|
61
|
+
*
|
|
62
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
63
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
64
|
+
*/
|
|
65
|
+
/**
|
|
66
|
+
* Edge / corner snap behaviour. Activated by dragging the title bar
|
|
67
|
+
* close to a viewport edge.
|
|
68
|
+
*
|
|
69
|
+
* - `none` — no snapping.
|
|
70
|
+
* - `edges` — left / right / top edges snap to halves; top snaps to maximise.
|
|
71
|
+
* - `all` — adds the four corners → quarter-screen snaps.
|
|
72
|
+
*/
|
|
73
|
+
type WrWindowSnap = 'none' | 'edges' | 'all';
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @license
|
|
77
|
+
*
|
|
78
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
79
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
/** What slice of geometry the storage layer should keep in sync. */
|
|
83
|
+
type WrWindowPersistMode = 'position' | 'size' | 'all';
|
|
84
|
+
/**
|
|
85
|
+
* Persistence configuration — drop into `WrWindowConfig.storage`.
|
|
86
|
+
*
|
|
87
|
+
* Reads and writes happen through the consumer's `WrStorage` instance.
|
|
88
|
+
* Override the underlying engine at any injector level with
|
|
89
|
+
* `provideWrStorage({ engine: window.sessionStorage })` when you want
|
|
90
|
+
* session-scoped persistence instead of the default `localStorage`.
|
|
91
|
+
*/
|
|
92
|
+
interface WrWindowStorageConfig {
|
|
93
|
+
/**
|
|
94
|
+
* Storage key for this window. Combined with `prefix` (if any) and a
|
|
95
|
+
* `wr:window:` namespace, e.g. `wr:window:my-app:editor`.
|
|
96
|
+
*/
|
|
97
|
+
readonly key: string;
|
|
98
|
+
/** Namespace prefix (typically your app id). @default '' */
|
|
99
|
+
readonly prefix?: string;
|
|
100
|
+
/** What to persist. @default 'all' */
|
|
101
|
+
readonly persist?: WrWindowPersistMode;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Options accepted by `WrWindowManager.open(component, config)`.
|
|
105
|
+
*
|
|
106
|
+
* Every property has a sensible default — pass `{}` to open a window
|
|
107
|
+
* with the standard chrome at the cascaded position.
|
|
108
|
+
*/
|
|
109
|
+
interface WrWindowConfig<D = unknown> {
|
|
110
|
+
/** Stable identifier — used by the taskbar, workspace save, and DI. */
|
|
111
|
+
readonly id?: string;
|
|
112
|
+
readonly title?: string;
|
|
113
|
+
readonly os?: WrWindowOs;
|
|
114
|
+
/** Initial size preset. Ignored when `width` / `height` are passed. */
|
|
115
|
+
readonly size?: WrWindowSize;
|
|
116
|
+
/** Title-bar density. @default 'normal' */
|
|
117
|
+
readonly chromeSize?: WrWindowChromeSize;
|
|
118
|
+
readonly x?: number;
|
|
119
|
+
readonly y?: number;
|
|
120
|
+
readonly width?: number;
|
|
121
|
+
readonly height?: number;
|
|
122
|
+
readonly minWidth?: number;
|
|
123
|
+
readonly minHeight?: number;
|
|
124
|
+
readonly maxWidth?: number;
|
|
125
|
+
readonly maxHeight?: number;
|
|
126
|
+
readonly movable?: boolean;
|
|
127
|
+
readonly resizable?: boolean;
|
|
128
|
+
readonly keepInViewport?: boolean;
|
|
129
|
+
readonly closeOnEscape?: boolean;
|
|
130
|
+
/** Snap-on-drag mode. @default 'none' */
|
|
131
|
+
readonly snap?: WrWindowSnap;
|
|
132
|
+
readonly showMinimize?: boolean;
|
|
133
|
+
readonly showMaximize?: boolean;
|
|
134
|
+
readonly showClose?: boolean;
|
|
135
|
+
/** Show in `<wr-window-taskbar>` when minimized. @default true */
|
|
136
|
+
readonly taskbar?: boolean;
|
|
137
|
+
readonly animations?: boolean;
|
|
138
|
+
/** CSS selector inside the projected content that restricts the move-grab area. */
|
|
139
|
+
readonly dragHandle?: string;
|
|
140
|
+
readonly storage?: WrWindowStorageConfig;
|
|
141
|
+
readonly data?: D;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @license
|
|
146
|
+
*
|
|
147
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
148
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
149
|
+
*/
|
|
150
|
+
/**
|
|
151
|
+
* Visual state of a `<wr-window>`:
|
|
152
|
+
* - `normal` — free-floating, drag / resize allowed
|
|
153
|
+
* - `minimized` — collapsed to a small bar (only the header is shown)
|
|
154
|
+
* - `maximized` — pinned to the full viewport, drag / resize disabled
|
|
155
|
+
*/
|
|
156
|
+
type WrWindowState = 'normal' | 'minimized' | 'maximized';
|
|
157
|
+
|
|
158
|
+
/** Hook signature for `WrWindowRef.beforeClose()`. Return falsy to veto. */
|
|
159
|
+
type WrWindowBeforeCloseHook<R> = (result: R | undefined) => boolean | Promise<boolean>;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @license
|
|
163
|
+
*
|
|
164
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
165
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Handle returned by `WrWindowManager.open()`.
|
|
170
|
+
*
|
|
171
|
+
* Wraps the underlying overlay, exposes signals for the live geometry,
|
|
172
|
+
* and gives the consumer programmatic control over the window
|
|
173
|
+
* (focus, move, resize, minimize, maximize, close).
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```ts
|
|
177
|
+
* const ref = manager.open(EditorComponent, {
|
|
178
|
+
* title: 'Untitled.md',
|
|
179
|
+
* storage: { key: 'editor', prefix: 'app' },
|
|
180
|
+
* });
|
|
181
|
+
*
|
|
182
|
+
* ref.beforeClose(async () => {
|
|
183
|
+
* if (!isDirty) return true;
|
|
184
|
+
* return await confirmDiscard();
|
|
185
|
+
* });
|
|
186
|
+
*
|
|
187
|
+
* const saved = await ref.afterClosed(); // resolves with whatever the
|
|
188
|
+
* // component passed to ref.close(value)
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
declare class WrWindowRef<C, R = unknown> {
|
|
192
|
+
readonly _overlayRef: OverlayRef;
|
|
193
|
+
/** Stable id — used by the taskbar, workspace save, and DI. */
|
|
194
|
+
readonly id: string;
|
|
195
|
+
/** @internal — emits the close result once and completes. */
|
|
196
|
+
readonly _closed: Subject<R | undefined>;
|
|
197
|
+
/** @internal — emits whenever the visual state changes. */
|
|
198
|
+
readonly _stateChanged: Subject<WrWindowState>;
|
|
199
|
+
/** @internal — set by the container right after attach. */
|
|
200
|
+
componentRef: ComponentRef<C> | null;
|
|
201
|
+
/** @internal — whether this window opts into the taskbar list. */
|
|
202
|
+
taskbarVisible: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* @internal — non-`normal` state to apply right after the container
|
|
205
|
+
* wires its bridges (so `restoreLayout` can land a window straight
|
|
206
|
+
* into `minimized` / `maximized` even though it just opened).
|
|
207
|
+
*/
|
|
208
|
+
pendingStateOnMount: WrWindowState | null;
|
|
209
|
+
/** @internal */ readonly _state: WritableSignal<WrWindowState>;
|
|
210
|
+
/** @internal */ readonly _x: WritableSignal<number>;
|
|
211
|
+
/** @internal */ readonly _y: WritableSignal<number>;
|
|
212
|
+
/** @internal */ readonly _width: WritableSignal<number>;
|
|
213
|
+
/** @internal */ readonly _height: WritableSignal<number>;
|
|
214
|
+
/** @internal */ readonly _z: WritableSignal<number>;
|
|
215
|
+
/** @internal */ readonly _title: WritableSignal<string>;
|
|
216
|
+
/** Window state. */
|
|
217
|
+
readonly state: Signal<WrWindowState>;
|
|
218
|
+
/** Live X. */
|
|
219
|
+
readonly x: Signal<number>;
|
|
220
|
+
/** Live Y. */
|
|
221
|
+
readonly y: Signal<number>;
|
|
222
|
+
/** Live width. */
|
|
223
|
+
readonly width: Signal<number>;
|
|
224
|
+
/** Live height. */
|
|
225
|
+
readonly height: Signal<number>;
|
|
226
|
+
/** Stack z-index. */
|
|
227
|
+
readonly z: Signal<number>;
|
|
228
|
+
/** Live title. */
|
|
229
|
+
readonly title: Signal<string>;
|
|
230
|
+
private _beforeCloseHook;
|
|
231
|
+
/** @internal */ _doClose: ((result: R | undefined) => void) | null;
|
|
232
|
+
/** @internal */ _doMinimize: (() => void) | null;
|
|
233
|
+
/** @internal */ _doMaximize: (() => void) | null;
|
|
234
|
+
/** @internal */ _doRestore: (() => void) | null;
|
|
235
|
+
/** @internal */ _doFocus: (() => void) | null;
|
|
236
|
+
/** @internal */ _doMoveTo: ((x: number, y: number) => void) | null;
|
|
237
|
+
/** @internal */ _doResizeTo: ((w: number, h: number) => void) | null;
|
|
238
|
+
/** @internal */ _doCenter: (() => void) | null;
|
|
239
|
+
/** @internal */ _doSetTitle: ((title: string) => void) | null;
|
|
240
|
+
constructor(id: string, _overlayRef: OverlayRef);
|
|
241
|
+
/** Resolved instance of the projected component. */
|
|
242
|
+
get componentInstance(): C;
|
|
243
|
+
/**
|
|
244
|
+
* Close the window, optionally returning a result. If a `beforeClose`
|
|
245
|
+
* hook is registered it is consulted first — a falsy resolution
|
|
246
|
+
* cancels the close.
|
|
247
|
+
*/
|
|
248
|
+
close(result?: R): Promise<void>;
|
|
249
|
+
/** Toggle the minimized state. */
|
|
250
|
+
minimize(): void;
|
|
251
|
+
/** Toggle the maximized state. */
|
|
252
|
+
maximize(): void;
|
|
253
|
+
/** Force-restore from minimized / maximized to `normal`. */
|
|
254
|
+
restore(): void;
|
|
255
|
+
/** Bring this window to the top of the stack. */
|
|
256
|
+
focus(): void;
|
|
257
|
+
moveTo(x: number, y: number): void;
|
|
258
|
+
resizeTo(width: number, height: number): void;
|
|
259
|
+
/** Re-position the window so it sits centered in the current viewport. */
|
|
260
|
+
center(): void;
|
|
261
|
+
setTitle(title: string): void;
|
|
262
|
+
/**
|
|
263
|
+
* Register a guard that runs before `close()`. Return `false` (or a
|
|
264
|
+
* Promise resolving to false) to veto. Only one hook per ref —
|
|
265
|
+
* subsequent calls replace the previous.
|
|
266
|
+
*/
|
|
267
|
+
beforeClose(hook: WrWindowBeforeCloseHook<R>): void;
|
|
268
|
+
/** Resolves with the result passed to `close()` (or `undefined`). */
|
|
269
|
+
afterClosed(): Promise<R | undefined>;
|
|
270
|
+
/** Escape hatch — the underlying CDK overlay ref. */
|
|
271
|
+
get overlayRef(): OverlayRef;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* @license
|
|
276
|
+
*
|
|
277
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
278
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
279
|
+
*/
|
|
280
|
+
|
|
281
|
+
/** Resolves to the active `WrWindowRef` inside a programmatically-opened window's content tree. */
|
|
282
|
+
declare const WR_WINDOW_REF: InjectionToken<WrWindowRef<unknown, unknown>>;
|
|
283
|
+
/** Resolves to the `data` passed in `WrWindowConfig.data`. */
|
|
284
|
+
declare const WR_WINDOW_DATA: InjectionToken<unknown>;
|
|
285
|
+
|
|
286
|
+
interface RestoreSnapshot {
|
|
287
|
+
readonly id: string;
|
|
288
|
+
readonly state: WrWindowState;
|
|
289
|
+
readonly x: number;
|
|
290
|
+
readonly y: number;
|
|
291
|
+
readonly width: number;
|
|
292
|
+
readonly height: number;
|
|
293
|
+
readonly title: string;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Owns the open `<wr-window>` stack, hands out z-indexes, cascades the
|
|
297
|
+
* default spawn position, and opens programmatic windows that wrap a
|
|
298
|
+
* consumer component.
|
|
299
|
+
*
|
|
300
|
+
* Inject the singleton and call `open(component, config)` for a
|
|
301
|
+
* dialog-style flow:
|
|
302
|
+
*
|
|
303
|
+
* ```ts
|
|
304
|
+
* const manager = inject(WrWindowManager);
|
|
305
|
+
*
|
|
306
|
+
* const ref = manager.open(EditorComponent, {
|
|
307
|
+
* title: 'Untitled.md',
|
|
308
|
+
* size: 'lg',
|
|
309
|
+
* storage: { key: 'editor', prefix: 'my-app' },
|
|
310
|
+
* });
|
|
311
|
+
*
|
|
312
|
+
* const saved = await ref.afterClosed();
|
|
313
|
+
* ```
|
|
314
|
+
*
|
|
315
|
+
* Declarative `<wr-window [(open)]="...">` instances also register with
|
|
316
|
+
* the manager on focus, so both styles share the same stack ordering.
|
|
317
|
+
*/
|
|
318
|
+
declare class WrWindowManager {
|
|
319
|
+
private readonly overlay;
|
|
320
|
+
private readonly parentInjector;
|
|
321
|
+
private readonly storage;
|
|
322
|
+
private readonly isBrowser;
|
|
323
|
+
private readonly baseZ;
|
|
324
|
+
private topZ;
|
|
325
|
+
private openCount;
|
|
326
|
+
/** All open windows opened via `open()` — declarative `<wr-window>` is not tracked here. */
|
|
327
|
+
private readonly _windows;
|
|
328
|
+
/**
|
|
329
|
+
* Filled by `restoreLayout` right before it invokes the consumer's
|
|
330
|
+
* opener callback. The next `open()` call with a matching `config.id`
|
|
331
|
+
* pops the entry and uses it as the initial geometry (so the seed
|
|
332
|
+
* lands at the saved coords instead of the cascade default) and
|
|
333
|
+
* applies any non-`normal` state after the bridges are wired.
|
|
334
|
+
*/
|
|
335
|
+
private readonly pendingRestores;
|
|
336
|
+
/** All currently-open programmatic windows. */
|
|
337
|
+
readonly windows: Signal<readonly WrWindowRef<unknown, unknown>[]>;
|
|
338
|
+
/** Programmatic windows that are minimized AND opted into the taskbar. */
|
|
339
|
+
readonly minimized: Signal<WrWindowRef<unknown, unknown>[]>;
|
|
340
|
+
/** Reserve the next z-index. Strictly increasing across the app's lifetime. */
|
|
341
|
+
bringToFront(): number;
|
|
342
|
+
/** Cascade offset for new windows, so two opens don't perfectly overlap. */
|
|
343
|
+
nextStartOffset(): {
|
|
344
|
+
readonly x: number;
|
|
345
|
+
readonly y: number;
|
|
346
|
+
};
|
|
347
|
+
/**
|
|
348
|
+
* Open a window with `component` rendered as its body. Returns a ref
|
|
349
|
+
* the caller can use to drive the window programmatically and await
|
|
350
|
+
* its result.
|
|
351
|
+
*
|
|
352
|
+
* **Singleton by id** — if `config.id` is set and a window with that
|
|
353
|
+
* id is already open, the existing ref is restored (if minimized),
|
|
354
|
+
* brought to the front, and returned. No duplicate window is
|
|
355
|
+
* created. Use this to coalesce repeated open() calls (e.g. a
|
|
356
|
+
* "Settings" menu item that should always re-focus the same window).
|
|
357
|
+
*/
|
|
358
|
+
open<C, R = unknown, D = unknown>(component: ComponentType<C>, config?: WrWindowConfig<D>): WrWindowRef<C, R>;
|
|
359
|
+
/** Close every programmatically-opened window. */
|
|
360
|
+
closeAll(): void;
|
|
361
|
+
/** Look up an open window by its `config.id`. Returns `null` when no match. */
|
|
362
|
+
findById(id: string): WrWindowRef<unknown, unknown> | null;
|
|
363
|
+
/**
|
|
364
|
+
* Drop the persisted geometry for a window so the next open uses the
|
|
365
|
+
* config defaults again. Matches `WrWindowConfig.storage` exactly.
|
|
366
|
+
*/
|
|
367
|
+
clearPersistedPosition(cfg: WrWindowStorageConfig): void;
|
|
368
|
+
/** Snapshot of one window — what `saveLayout` writes / `restoreLayout` returns. */
|
|
369
|
+
private layoutKey;
|
|
370
|
+
/**
|
|
371
|
+
* Persist the geometry + state of every open programmatic window
|
|
372
|
+
* under `name`. Pair with `restoreLayout(name)` after re-opening the
|
|
373
|
+
* matching components.
|
|
374
|
+
*/
|
|
375
|
+
saveLayout(name: string): void;
|
|
376
|
+
/** Read a saved workspace. Returns `null` when no snapshot is found. */
|
|
377
|
+
readLayout(name: string): readonly RestoreSnapshot[] | null;
|
|
378
|
+
/**
|
|
379
|
+
* Apply a saved workspace.
|
|
380
|
+
*
|
|
381
|
+
* Each saved entry is matched to a currently-open window by `id`. For
|
|
382
|
+
* matches, the geometry / state / title is re-applied immediately.
|
|
383
|
+
* For misses, the optional `open` callback is invoked so the consumer
|
|
384
|
+
* can re-open the right component for that id — the freshly-opened
|
|
385
|
+
* window then seeds straight to the saved geometry (no cascade flicker)
|
|
386
|
+
* and the saved state lands once the bridges are wired.
|
|
387
|
+
*
|
|
388
|
+
* ```ts
|
|
389
|
+
* manager.restoreLayout('default', (id, snap) => {
|
|
390
|
+
* if (id.startsWith('editor:')) {
|
|
391
|
+
* manager.open(EditorComponent, { id, title: snap.title, data: ... });
|
|
392
|
+
* }
|
|
393
|
+
* });
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
restoreLayout(name: string, open?: (id: string, snapshot: {
|
|
397
|
+
readonly title: string;
|
|
398
|
+
}) => void): void;
|
|
399
|
+
private applyRestore;
|
|
400
|
+
/** Drop a saved workspace. */
|
|
401
|
+
clearLayout(name: string): void;
|
|
402
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WrWindowManager, never>;
|
|
403
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<WrWindowManager>;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* OS-style window taskbar. Drop one anywhere in the app — typically
|
|
408
|
+
* fixed to the bottom of the viewport — and it lists every window
|
|
409
|
+
* `WrWindowManager.open()` has handed out that's currently
|
|
410
|
+
* `minimized`. Clicking a tab restores the window; clicking the close
|
|
411
|
+
* glyph dismisses it without restoring.
|
|
412
|
+
*
|
|
413
|
+
* Windows opted out via `config.taskbar = false` never show up here.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* ```html
|
|
417
|
+
* <wr-window-taskbar />
|
|
418
|
+
* <wr-window-taskbar position="top" />
|
|
419
|
+
* ```
|
|
420
|
+
*
|
|
421
|
+
* @see https://ngwr.dev/components/window
|
|
422
|
+
*/
|
|
423
|
+
declare class WrWindowTaskbar {
|
|
424
|
+
/** Edge the taskbar pins itself to. @default 'bottom' */
|
|
425
|
+
readonly position: i0.InputSignal<"top" | "bottom">;
|
|
426
|
+
private readonly manager;
|
|
427
|
+
/** @internal — minimized windows that haven't opted out via `taskbar: false`. */
|
|
428
|
+
protected readonly items: i0.Signal<WrWindowRef<unknown, unknown>[]>;
|
|
429
|
+
protected readonly classes: i0.Signal<string>;
|
|
430
|
+
protected restore(ref: WrWindowRef<unknown, unknown>): void;
|
|
431
|
+
protected close(ref: WrWindowRef<unknown, unknown>, event: Event): void;
|
|
432
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WrWindowTaskbar, never>;
|
|
433
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WrWindowTaskbar, "wr-window-taskbar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
export { WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowRef, WrWindowTaskbar };
|
|
437
|
+
export type { WrWindowBeforeCloseHook, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.wr-typewriter {
|
|
2
|
+
--wr-typewriter-cursor-blink: 0.5s;
|
|
3
|
+
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
align-items: baseline;
|
|
6
|
+
|
|
7
|
+
&__content {
|
|
8
|
+
white-space: pre;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&__cursor {
|
|
12
|
+
display: inline-block;
|
|
13
|
+
margin-left: 1px;
|
|
14
|
+
animation: wr-typewriter-blink var(--wr-typewriter-cursor-blink) ease-in-out infinite alternate;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@keyframes wr-typewriter-blink {
|
|
19
|
+
from {
|
|
20
|
+
opacity: 1;
|
|
21
|
+
}
|
|
22
|
+
to {
|
|
23
|
+
opacity: 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Reduced motion: solid cursor — the blink is decorative.
|
|
28
|
+
@media (prefers-reduced-motion: reduce) {
|
|
29
|
+
.wr-typewriter__cursor {
|
|
30
|
+
animation: none;
|
|
31
|
+
opacity: 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@forward './styles';
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
@use '../../theme/styles' as theme;
|
|
2
|
+
|
|
3
|
+
.wr-typography {
|
|
4
|
+
// Inherit the host element's native display (block for h1/p, inline for span).
|
|
5
|
+
margin: 0;
|
|
6
|
+
color: var(--wr-color-dark);
|
|
7
|
+
font-family: var(--wr-font-family-base);
|
|
8
|
+
|
|
9
|
+
&--display {
|
|
10
|
+
// Flowbite landing heading — 4xl that grows to 6xl on wide screens.
|
|
11
|
+
font-size: clamp(var(--wr-text-4xl), 6vw, 3.75rem);
|
|
12
|
+
font-weight: var(--wr-font-weight-extrabold);
|
|
13
|
+
line-height: var(--wr-leading-none);
|
|
14
|
+
letter-spacing: var(--wr-tracking-tight);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&--h1 {
|
|
18
|
+
font-size: var(--wr-text-5xl);
|
|
19
|
+
font-weight: var(--wr-font-weight-bold);
|
|
20
|
+
line-height: var(--wr-leading-none);
|
|
21
|
+
letter-spacing: var(--wr-tracking-tight);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&--h2 {
|
|
25
|
+
font-size: var(--wr-text-4xl);
|
|
26
|
+
font-weight: var(--wr-font-weight-bold);
|
|
27
|
+
line-height: 2.5rem;
|
|
28
|
+
letter-spacing: var(--wr-tracking-tight);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&--h3 {
|
|
32
|
+
font-size: var(--wr-text-3xl);
|
|
33
|
+
font-weight: var(--wr-font-weight-bold);
|
|
34
|
+
line-height: 2.25rem;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&--h4 {
|
|
38
|
+
font-size: var(--wr-text-2xl);
|
|
39
|
+
font-weight: var(--wr-font-weight-bold);
|
|
40
|
+
line-height: 2rem;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&--h5 {
|
|
44
|
+
font-size: var(--wr-text-xl);
|
|
45
|
+
font-weight: var(--wr-font-weight-bold);
|
|
46
|
+
line-height: 1.75rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&--h6 {
|
|
50
|
+
font-size: var(--wr-text-lg);
|
|
51
|
+
font-weight: var(--wr-font-weight-bold);
|
|
52
|
+
line-height: 1.75rem;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&--lead {
|
|
56
|
+
font-size: var(--wr-text-xl);
|
|
57
|
+
font-weight: var(--wr-font-weight-regular);
|
|
58
|
+
line-height: var(--wr-leading-relaxed);
|
|
59
|
+
color: var(--wr-color-medium);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&--body {
|
|
63
|
+
font-size: var(--wr-text-base);
|
|
64
|
+
font-weight: var(--wr-font-weight-regular);
|
|
65
|
+
line-height: var(--wr-leading-normal);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&--small {
|
|
69
|
+
font-size: var(--wr-text-sm);
|
|
70
|
+
line-height: var(--wr-leading-normal);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&--caption {
|
|
74
|
+
font-size: var(--wr-text-xs);
|
|
75
|
+
line-height: var(--wr-leading-normal);
|
|
76
|
+
color: var(--wr-color-medium);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&--overline {
|
|
80
|
+
font-size: var(--wr-text-xs);
|
|
81
|
+
font-weight: var(--wr-font-weight-semibold);
|
|
82
|
+
text-transform: uppercase;
|
|
83
|
+
letter-spacing: var(--wr-tracking-widest);
|
|
84
|
+
color: var(--wr-color-medium);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&--code {
|
|
88
|
+
padding: 0.0625rem 0.375rem;
|
|
89
|
+
background: rgba(var(--wr-color-light-rgb), 0.6);
|
|
90
|
+
border-radius: var(--wr-border-radius-sm);
|
|
91
|
+
font-size: 0.875em;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Lists — flowbite spacing and markers; element selector picks the
|
|
95
|
+
// marker so one variant covers ul / ol / dl.
|
|
96
|
+
&--list {
|
|
97
|
+
// Browser default padding-inline-start doubles the indent next to
|
|
98
|
+
// `inside` markers — the variant owns its own spacing.
|
|
99
|
+
padding: 0;
|
|
100
|
+
font-size: var(--wr-text-base);
|
|
101
|
+
line-height: var(--wr-leading-normal);
|
|
102
|
+
color: var(--wr-color-medium);
|
|
103
|
+
|
|
104
|
+
> li + li,
|
|
105
|
+
> li > ul,
|
|
106
|
+
> li > ol {
|
|
107
|
+
margin-top: 0.25rem;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
> li > ul,
|
|
111
|
+
> li > ol {
|
|
112
|
+
padding-left: 1.25rem;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@at-root {
|
|
117
|
+
ul#{&}--list {
|
|
118
|
+
list-style: disc inside;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
ol#{&}--list {
|
|
122
|
+
list-style: decimal inside;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
ul#{&}--list ul {
|
|
126
|
+
list-style: circle inside;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
ol#{&}--list ol,
|
|
130
|
+
ul#{&}--list ol {
|
|
131
|
+
list-style: decimal inside;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
dl#{&}--list dt {
|
|
135
|
+
margin-bottom: 0.25rem;
|
|
136
|
+
color: var(--wr-color-medium);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
dl#{&}--list dd {
|
|
140
|
+
font-size: var(--wr-text-lg);
|
|
141
|
+
font-weight: var(--wr-font-weight-medium);
|
|
142
|
+
color: var(--wr-color-dark);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
dl#{&}--list dd + dt {
|
|
146
|
+
margin-top: 0.75rem;
|
|
147
|
+
padding-top: 0.75rem;
|
|
148
|
+
border-top: 1px solid var(--wr-color-light);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Links — flowbite default: medium weight, brand color, underline on
|
|
153
|
+
// hover. Add your own `underline` class for the always-underlined look.
|
|
154
|
+
&--link {
|
|
155
|
+
font-weight: var(--wr-font-weight-medium);
|
|
156
|
+
color: var(--wr-color-primary);
|
|
157
|
+
text-decoration: none;
|
|
158
|
+
text-underline-offset: 2px;
|
|
159
|
+
cursor: pointer;
|
|
160
|
+
|
|
161
|
+
&:hover {
|
|
162
|
+
text-decoration: underline;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Tones
|
|
167
|
+
&--tone-dark {
|
|
168
|
+
color: var(--wr-color-dark);
|
|
169
|
+
}
|
|
170
|
+
&--tone-medium {
|
|
171
|
+
color: var(--wr-color-medium);
|
|
172
|
+
}
|
|
173
|
+
&--tone-primary {
|
|
174
|
+
color: var(--wr-color-primary);
|
|
175
|
+
}
|
|
176
|
+
&--tone-success {
|
|
177
|
+
color: var(--wr-color-success);
|
|
178
|
+
}
|
|
179
|
+
&--tone-warning {
|
|
180
|
+
color: var(--wr-color-warning);
|
|
181
|
+
}
|
|
182
|
+
&--tone-danger {
|
|
183
|
+
color: var(--wr-color-danger);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Modifiers
|
|
187
|
+
&--align-start {
|
|
188
|
+
text-align: start;
|
|
189
|
+
}
|
|
190
|
+
&--align-center {
|
|
191
|
+
text-align: center;
|
|
192
|
+
}
|
|
193
|
+
&--align-end {
|
|
194
|
+
text-align: end;
|
|
195
|
+
}
|
|
196
|
+
&--align-justify {
|
|
197
|
+
text-align: justify;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
&--truncate {
|
|
201
|
+
display: inline-block;
|
|
202
|
+
max-width: 100%;
|
|
203
|
+
overflow: hidden;
|
|
204
|
+
text-overflow: ellipsis;
|
|
205
|
+
white-space: nowrap;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
&--mono {
|
|
209
|
+
font-family: var(--wr-font-family-mono, ui-monospace, monospace);
|
|
210
|
+
}
|
|
211
|
+
}
|