@greypan/web-ui 11.2.0 → 12.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.CN.md +79 -68
- package/README.md +81 -72
- package/dist/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js +8 -0
- package/dist/assets/menu-portal.js +3 -4
- package/dist/assets/menu-portal.js.map +1 -1
- package/dist/assets/modal-surface.js +3 -4
- package/dist/assets/modal-surface.js.map +1 -1
- package/dist/assets/overlay-motion.js +3 -4
- package/dist/assets/overlay-motion.js.map +1 -1
- package/dist/assets/scrollbar.js +5 -0
- package/dist/assets/scrollbar.js.map +1 -0
- package/dist/assets/selection-control.js +3 -4
- package/dist/assets/selection-control.js.map +1 -1
- package/dist/assets/toast-containers.js +3 -4
- package/dist/assets/toast-containers.js.map +1 -1
- package/dist/classes/glass.js +3 -4
- package/dist/classes/glass.js.map +1 -1
- package/dist/classes/glow.js +3 -4
- package/dist/classes/glow.js.map +1 -1
- package/dist/components/autocomplete/index.d.ts +485 -483
- package/dist/components/autocomplete/index.d.ts.map +1 -0
- package/dist/components/autocomplete/index.js +475 -267
- package/dist/components/autocomplete/index.js.map +1 -1
- package/dist/components/autocomplete/style.js +3 -4
- package/dist/components/autocomplete/style.js.map +1 -1
- package/dist/components/avatar/index.d.ts +26 -24
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +72 -52
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/avatar/style.js +3 -4
- package/dist/components/avatar/style.js.map +1 -1
- package/dist/components/back-top/index.d.ts +30 -27
- package/dist/components/back-top/index.d.ts.map +1 -0
- package/dist/components/back-top/index.js +96 -62
- package/dist/components/back-top/index.js.map +1 -1
- package/dist/components/back-top/style.js +3 -4
- package/dist/components/back-top/style.js.map +1 -1
- package/dist/components/badge/index.d.ts +32 -26
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +116 -74
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/badge/style.js +3 -4
- package/dist/components/badge/style.js.map +1 -1
- package/dist/components/button/index.d.ts +392 -390
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +108 -74
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/style.js +3 -4
- package/dist/components/button/style.js.map +1 -1
- package/dist/components/button-group/index.d.ts +14 -13
- package/dist/components/button-group/index.d.ts.map +1 -0
- package/dist/components/button-group/index.js +43 -33
- package/dist/components/button-group/index.js.map +1 -1
- package/dist/components/button-group/style.js +3 -4
- package/dist/components/button-group/style.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +399 -397
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +103 -74
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/style.js +3 -4
- package/dist/components/checkbox/style.js.map +1 -1
- package/dist/components/checkbox-group/index.d.ts +397 -396
- package/dist/components/checkbox-group/index.d.ts.map +1 -0
- package/dist/components/checkbox-group/index.js +92 -70
- package/dist/components/checkbox-group/index.js.map +1 -1
- package/dist/components/checkbox-group/style.js +3 -4
- package/dist/components/checkbox-group/style.js.map +1 -1
- package/dist/components/collapse/index.d.ts +72 -71
- package/dist/components/collapse/index.d.ts.map +1 -0
- package/dist/components/collapse/index.js +225 -130
- package/dist/components/collapse/index.js.map +1 -1
- package/dist/components/collapse/style.js +3 -4
- package/dist/components/collapse/style.js.map +1 -1
- package/dist/components/context-menu/index.d.ts +307 -310
- package/dist/components/context-menu/index.d.ts.map +1 -0
- package/dist/components/context-menu/index.js +685 -270
- package/dist/components/context-menu/index.js.map +1 -1
- package/dist/components/context-menu/scrim.js +3 -4
- package/dist/components/context-menu/scrim.js.map +1 -1
- package/dist/components/context-menu/style.js +3 -4
- package/dist/components/context-menu/style.js.map +1 -1
- package/dist/components/dialog/index.d.ts +87 -78
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +183 -88
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/style.js +3 -4
- package/dist/components/dialog/style.js.map +1 -1
- package/dist/components/drawer/index.d.ts +159 -150
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/drawer/index.js +503 -242
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/style.js +3 -4
- package/dist/components/drawer/style.js.map +1 -1
- package/dist/components/dropdown/index.d.ts +125 -124
- package/dist/components/dropdown/index.d.ts.map +1 -0
- package/dist/components/dropdown/index.js +556 -328
- package/dist/components/dropdown/index.js.map +1 -1
- package/dist/components/dropdown/style.js +3 -4
- package/dist/components/dropdown/style.js.map +1 -1
- package/dist/components/dropdown-divider/index.d.ts +7 -6
- package/dist/components/dropdown-divider/index.d.ts.map +1 -0
- package/dist/components/dropdown-divider/index.js +10 -11
- package/dist/components/dropdown-divider/index.js.map +1 -1
- package/dist/components/dropdown-divider/style.js +3 -4
- package/dist/components/dropdown-divider/style.js.map +1 -1
- package/dist/components/dropdown-header/index.d.ts +7 -6
- package/dist/components/dropdown-header/index.d.ts.map +1 -0
- package/dist/components/dropdown-header/index.js +10 -11
- package/dist/components/dropdown-header/index.js.map +1 -1
- package/dist/components/dropdown-header/style.js +3 -4
- package/dist/components/dropdown-header/style.js.map +1 -1
- package/dist/components/dropdown-item/index.d.ts +13 -11
- package/dist/components/dropdown-item/index.d.ts.map +1 -0
- package/dist/components/dropdown-item/index.js +32 -25
- package/dist/components/dropdown-item/index.js.map +1 -1
- package/dist/components/dropdown-item/style.js +3 -4
- package/dist/components/dropdown-item/style.js.map +1 -1
- package/dist/components/editable-text/index.d.ts +506 -505
- package/dist/components/editable-text/index.d.ts.map +1 -0
- package/dist/components/editable-text/index.js +281 -127
- package/dist/components/editable-text/index.js.map +1 -1
- package/dist/components/editable-text/style.js +3 -4
- package/dist/components/editable-text/style.js.map +1 -1
- package/dist/components/empty/index.d.ts +17 -15
- package/dist/components/empty/index.d.ts.map +1 -0
- package/dist/components/empty/index.js +66 -37
- package/dist/components/empty/index.js.map +1 -1
- package/dist/components/empty/style.js +3 -4
- package/dist/components/empty/style.js.map +1 -1
- package/dist/components/icon/index.d.ts +12 -11
- package/dist/components/icon/index.d.ts.map +1 -0
- package/dist/components/icon/index.js +34 -27
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/icon/style.js +3 -4
- package/dist/components/icon/style.js.map +1 -1
- package/dist/components/image-preview/index.d.ts +58 -44
- package/dist/components/image-preview/index.d.ts.map +1 -0
- package/dist/components/image-preview/index.js +536 -265
- package/dist/components/image-preview/index.js.map +1 -1
- package/dist/components/image-preview/style.js +3 -4
- package/dist/components/image-preview/style.js.map +1 -1
- package/dist/components/index.d.ts +46 -43
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +41 -41
- package/dist/components/input/index.d.ts +418 -413
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +148 -84
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/style.js +3 -4
- package/dist/components/input/style.js.map +1 -1
- package/dist/components/input-number/index.d.ts +453 -447
- package/dist/components/input-number/index.d.ts.map +1 -0
- package/dist/components/input-number/index.js +484 -292
- package/dist/components/input-number/index.js.map +1 -1
- package/dist/components/input-number/style.js +3 -4
- package/dist/components/input-number/style.js.map +1 -1
- package/dist/components/layout/index.d.ts +110 -87
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +238 -144
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/style.js +3 -4
- package/dist/components/layout/style.js.map +1 -1
- package/dist/components/middle-ellipsis/index.d.ts +93 -92
- package/dist/components/middle-ellipsis/index.d.ts.map +1 -0
- package/dist/components/middle-ellipsis/index.js +261 -107
- package/dist/components/middle-ellipsis/index.js.map +1 -1
- package/dist/components/middle-ellipsis/style.js +3 -4
- package/dist/components/middle-ellipsis/style.js.map +1 -1
- package/dist/components/middle-ellipsis/truncate.js +60 -30
- package/dist/components/middle-ellipsis/truncate.js.map +1 -1
- package/dist/components/option/index.d.ts +20 -18
- package/dist/components/option/index.d.ts.map +1 -0
- package/dist/components/option/index.js +53 -40
- package/dist/components/option/index.js.map +1 -1
- package/dist/components/option/style.js +3 -4
- package/dist/components/option/style.js.map +1 -1
- package/dist/components/popover/index.d.ts +69 -68
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +221 -104
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/style.js +3 -4
- package/dist/components/popover/style.js.map +1 -1
- package/dist/components/radio/index.d.ts +396 -395
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +91 -62
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/interaction.js +10 -11
- package/dist/components/radio/interaction.js.map +1 -1
- package/dist/components/radio/style.js +3 -4
- package/dist/components/radio/style.js.map +1 -1
- package/dist/components/radio-group/index.d.ts +417 -416
- package/dist/components/radio-group/index.d.ts.map +1 -0
- package/dist/components/radio-group/index.js +307 -207
- package/dist/components/radio-group/index.js.map +1 -1
- package/dist/components/radio-group/style.js +3 -4
- package/dist/components/radio-group/style.js.map +1 -1
- package/dist/components/segmented/index.d.ts +408 -402
- package/dist/components/segmented/index.d.ts.map +1 -0
- package/dist/components/segmented/index.js +267 -158
- package/dist/components/segmented/index.js.map +1 -1
- package/dist/components/segmented/style.js +3 -4
- package/dist/components/segmented/style.js.map +1 -1
- package/dist/components/segmented-trigger/index.d.ts +18 -17
- package/dist/components/segmented-trigger/index.d.ts.map +1 -0
- package/dist/components/segmented-trigger/index.js +45 -36
- package/dist/components/segmented-trigger/index.js.map +1 -1
- package/dist/components/segmented-trigger/style.js +3 -4
- package/dist/components/segmented-trigger/style.js.map +1 -1
- package/dist/components/select/index.d.ts +450 -448
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +342 -188
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/select/style.js +3 -4
- package/dist/components/select/style.js.map +1 -1
- package/dist/components/slider/index.d.ts +428 -427
- package/dist/components/slider/index.d.ts.map +1 -0
- package/dist/components/slider/index.js +308 -216
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/style.js +3 -4
- package/dist/components/slider/style.js.map +1 -1
- package/dist/components/spinner/index.d.ts +39 -38
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +118 -65
- package/dist/components/spinner/index.js.map +1 -1
- package/dist/components/spinner/style.js +3 -4
- package/dist/components/spinner/style.js.map +1 -1
- package/dist/components/svg-draw-lines/index.d.ts +40 -39
- package/dist/components/svg-draw-lines/index.d.ts.map +1 -0
- package/dist/components/svg-draw-lines/index.js +189 -106
- package/dist/components/svg-draw-lines/index.js.map +1 -1
- package/dist/components/svg-draw-lines/style.js +3 -4
- package/dist/components/svg-draw-lines/style.js.map +1 -1
- package/dist/components/switch/index.d.ts +411 -409
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +193 -106
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/style.js +3 -4
- package/dist/components/switch/style.js.map +1 -1
- package/dist/components/textarea/index.d.ts +430 -425
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/index.js +187 -100
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/textarea/style.js +3 -4
- package/dist/components/textarea/style.js.map +1 -1
- package/dist/components/theme/index.d.ts +45 -44
- package/dist/components/theme/index.d.ts.map +1 -0
- package/dist/components/theme/index.js +268 -161
- package/dist/components/theme/index.js.map +1 -1
- package/dist/components/theme/style.js +3 -4
- package/dist/components/theme/style.js.map +1 -1
- package/dist/components/toast/index.d.ts +4 -3
- package/dist/components/toast/index.js +3 -3
- package/dist/components/toast/manager.d.ts +9 -8
- package/dist/components/toast/manager.d.ts.map +1 -0
- package/dist/components/toast/manager.js +215 -119
- package/dist/components/toast/manager.js.map +1 -1
- package/dist/components/toast/style.js +3 -4
- package/dist/components/toast/style.js.map +1 -1
- package/dist/components/toast/toast.d.ts +75 -71
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/toast/toast.js +203 -96
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toast/types.d.ts +10 -9
- package/dist/components/toast/types.d.ts.map +1 -0
- package/dist/components/tooltip/index.d.ts +72 -62
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +251 -93
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/style.js +3 -4
- package/dist/components/tooltip/style.js.map +1 -1
- package/dist/icons/generated/akar-icons-check.d.ts +5 -4
- package/dist/icons/generated/akar-icons-check.d.ts.map +1 -0
- package/dist/icons/generated/akar-icons-check.js +3 -4
- package/dist/icons/generated/akar-icons-check.js.map +1 -1
- package/dist/icons/generated/akar-icons-circle-check.d.ts +5 -4
- package/dist/icons/generated/akar-icons-circle-check.d.ts.map +1 -0
- package/dist/icons/generated/akar-icons-circle-check.js +3 -4
- package/dist/icons/generated/akar-icons-circle-check.js.map +1 -1
- package/dist/icons/generated/andrsrxn-inbox.d.ts +5 -4
- package/dist/icons/generated/andrsrxn-inbox.d.ts.map +1 -0
- package/dist/icons/generated/andrsrxn-inbox.js +3 -4
- package/dist/icons/generated/andrsrxn-inbox.js.map +1 -1
- package/dist/icons/generated/bi-check-lg.d.ts +5 -4
- package/dist/icons/generated/bi-check-lg.d.ts.map +1 -0
- package/dist/icons/generated/bi-check-lg.js +3 -4
- package/dist/icons/generated/bi-check-lg.js.map +1 -1
- package/dist/icons/generated/bi-check.d.ts +5 -4
- package/dist/icons/generated/bi-check.d.ts.map +1 -0
- package/dist/icons/generated/bi-check.js +3 -4
- package/dist/icons/generated/bi-check.js.map +1 -1
- package/dist/icons/generated/fluent-tag-search-24-regular.d.ts +5 -4
- package/dist/icons/generated/fluent-tag-search-24-regular.d.ts.map +1 -0
- package/dist/icons/generated/fluent-tag-search-24-regular.js +3 -4
- package/dist/icons/generated/fluent-tag-search-24-regular.js.map +1 -1
- package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.d.ts +5 -4
- package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.d.ts.map +1 -0
- package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.js +3 -4
- package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.js.map +1 -1
- package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.d.ts +5 -4
- package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.d.ts.map +1 -0
- package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.js +3 -4
- package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.js.map +1 -1
- package/dist/icons/generated/heroicons-check-16-solid.d.ts +5 -4
- package/dist/icons/generated/heroicons-check-16-solid.d.ts.map +1 -0
- package/dist/icons/generated/heroicons-check-16-solid.js +3 -4
- package/dist/icons/generated/heroicons-check-16-solid.js.map +1 -1
- package/dist/icons/generated/heroicons-x-mark-16-solid.d.ts +5 -4
- package/dist/icons/generated/heroicons-x-mark-16-solid.d.ts.map +1 -0
- package/dist/icons/generated/heroicons-x-mark-16-solid.js +3 -4
- package/dist/icons/generated/heroicons-x-mark-16-solid.js.map +1 -1
- package/dist/icons/generated/jam-close-circle-f.d.ts +7 -6
- package/dist/icons/generated/jam-close-circle-f.d.ts.map +1 -0
- package/dist/icons/generated/jam-close-circle-f.js +3 -4
- package/dist/icons/generated/jam-close-circle-f.js.map +1 -1
- package/dist/icons/generated/lucide-arrow-down-to-line.d.ts +5 -4
- package/dist/icons/generated/lucide-arrow-down-to-line.d.ts.map +1 -0
- package/dist/icons/generated/lucide-arrow-down-to-line.js +3 -4
- package/dist/icons/generated/lucide-arrow-down-to-line.js.map +1 -1
- package/dist/icons/generated/lucide-arrow-up-to-line.d.ts +5 -4
- package/dist/icons/generated/lucide-arrow-up-to-line.d.ts.map +1 -0
- package/dist/icons/generated/lucide-arrow-up-to-line.js +3 -4
- package/dist/icons/generated/lucide-arrow-up-to-line.js.map +1 -1
- package/dist/icons/generated/lucide-bell.d.ts +5 -4
- package/dist/icons/generated/lucide-bell.d.ts.map +1 -0
- package/dist/icons/generated/lucide-bell.js +3 -4
- package/dist/icons/generated/lucide-bell.js.map +1 -1
- package/dist/icons/generated/lucide-check.d.ts +5 -4
- package/dist/icons/generated/lucide-check.d.ts.map +1 -0
- package/dist/icons/generated/lucide-check.js +3 -4
- package/dist/icons/generated/lucide-check.js.map +1 -1
- package/dist/icons/generated/lucide-chevron-down.d.ts +5 -4
- package/dist/icons/generated/lucide-chevron-down.d.ts.map +1 -0
- package/dist/icons/generated/lucide-chevron-down.js +3 -4
- package/dist/icons/generated/lucide-chevron-down.js.map +1 -1
- package/dist/icons/generated/lucide-chevron-left.d.ts +5 -4
- package/dist/icons/generated/lucide-chevron-left.d.ts.map +1 -0
- package/dist/icons/generated/lucide-chevron-left.js +3 -4
- package/dist/icons/generated/lucide-chevron-left.js.map +1 -1
- package/dist/icons/generated/lucide-chevron-right.d.ts +5 -4
- package/dist/icons/generated/lucide-chevron-right.d.ts.map +1 -0
- package/dist/icons/generated/lucide-chevron-right.js +3 -4
- package/dist/icons/generated/lucide-chevron-right.js.map +1 -1
- package/dist/icons/generated/lucide-chevron-up.d.ts +5 -4
- package/dist/icons/generated/lucide-chevron-up.d.ts.map +1 -0
- package/dist/icons/generated/lucide-chevron-up.js +3 -4
- package/dist/icons/generated/lucide-chevron-up.js.map +1 -1
- package/dist/icons/generated/lucide-circle-alert.d.ts +5 -4
- package/dist/icons/generated/lucide-circle-alert.d.ts.map +1 -0
- package/dist/icons/generated/lucide-circle-alert.js +3 -4
- package/dist/icons/generated/lucide-circle-alert.js.map +1 -1
- package/dist/icons/generated/lucide-clapperboard.d.ts +5 -4
- package/dist/icons/generated/lucide-clapperboard.d.ts.map +1 -0
- package/dist/icons/generated/lucide-clapperboard.js +3 -4
- package/dist/icons/generated/lucide-clapperboard.js.map +1 -1
- package/dist/icons/generated/lucide-clipboard-paste.d.ts +5 -4
- package/dist/icons/generated/lucide-clipboard-paste.d.ts.map +1 -0
- package/dist/icons/generated/lucide-clipboard-paste.js +3 -4
- package/dist/icons/generated/lucide-clipboard-paste.js.map +1 -1
- package/dist/icons/generated/lucide-code.d.ts +5 -4
- package/dist/icons/generated/lucide-code.d.ts.map +1 -0
- package/dist/icons/generated/lucide-code.js +3 -4
- package/dist/icons/generated/lucide-code.js.map +1 -1
- package/dist/icons/generated/lucide-copy.d.ts +5 -4
- package/dist/icons/generated/lucide-copy.d.ts.map +1 -0
- package/dist/icons/generated/lucide-copy.js +3 -4
- package/dist/icons/generated/lucide-copy.js.map +1 -1
- package/dist/icons/generated/lucide-download.d.ts +5 -4
- package/dist/icons/generated/lucide-download.d.ts.map +1 -0
- package/dist/icons/generated/lucide-download.js +3 -4
- package/dist/icons/generated/lucide-download.js.map +1 -1
- package/dist/icons/generated/lucide-ellipsis-vertical.d.ts +5 -4
- package/dist/icons/generated/lucide-ellipsis-vertical.d.ts.map +1 -0
- package/dist/icons/generated/lucide-ellipsis-vertical.js +3 -4
- package/dist/icons/generated/lucide-ellipsis-vertical.js.map +1 -1
- package/dist/icons/generated/lucide-external-link.d.ts +5 -4
- package/dist/icons/generated/lucide-external-link.d.ts.map +1 -0
- package/dist/icons/generated/lucide-external-link.js +3 -4
- package/dist/icons/generated/lucide-external-link.js.map +1 -1
- package/dist/icons/generated/lucide-eye.d.ts +5 -4
- package/dist/icons/generated/lucide-eye.d.ts.map +1 -0
- package/dist/icons/generated/lucide-eye.js +3 -4
- package/dist/icons/generated/lucide-eye.js.map +1 -1
- package/dist/icons/generated/lucide-file-text.d.ts +5 -4
- package/dist/icons/generated/lucide-file-text.d.ts.map +1 -0
- package/dist/icons/generated/lucide-file-text.js +3 -4
- package/dist/icons/generated/lucide-file-text.js.map +1 -1
- package/dist/icons/generated/lucide-file.d.ts +5 -4
- package/dist/icons/generated/lucide-file.d.ts.map +1 -0
- package/dist/icons/generated/lucide-file.js +3 -4
- package/dist/icons/generated/lucide-file.js.map +1 -1
- package/dist/icons/generated/lucide-film.d.ts +5 -4
- package/dist/icons/generated/lucide-film.d.ts.map +1 -0
- package/dist/icons/generated/lucide-film.js +3 -4
- package/dist/icons/generated/lucide-film.js.map +1 -1
- package/dist/icons/generated/lucide-folder-open.d.ts +5 -4
- package/dist/icons/generated/lucide-folder-open.d.ts.map +1 -0
- package/dist/icons/generated/lucide-folder-open.js +3 -4
- package/dist/icons/generated/lucide-folder-open.js.map +1 -1
- package/dist/icons/generated/lucide-folder.d.ts +5 -4
- package/dist/icons/generated/lucide-folder.d.ts.map +1 -0
- package/dist/icons/generated/lucide-folder.js +3 -4
- package/dist/icons/generated/lucide-folder.js.map +1 -1
- package/dist/icons/generated/lucide-globe.d.ts +5 -4
- package/dist/icons/generated/lucide-globe.d.ts.map +1 -0
- package/dist/icons/generated/lucide-globe.js +3 -4
- package/dist/icons/generated/lucide-globe.js.map +1 -1
- package/dist/icons/generated/lucide-headphones.d.ts +5 -4
- package/dist/icons/generated/lucide-headphones.d.ts.map +1 -0
- package/dist/icons/generated/lucide-headphones.js +3 -4
- package/dist/icons/generated/lucide-headphones.js.map +1 -1
- package/dist/icons/generated/lucide-heart.d.ts +5 -4
- package/dist/icons/generated/lucide-heart.d.ts.map +1 -0
- package/dist/icons/generated/lucide-heart.js +3 -4
- package/dist/icons/generated/lucide-heart.js.map +1 -1
- package/dist/icons/generated/lucide-image.d.ts +5 -4
- package/dist/icons/generated/lucide-image.d.ts.map +1 -0
- package/dist/icons/generated/lucide-image.js +3 -4
- package/dist/icons/generated/lucide-image.js.map +1 -1
- package/dist/icons/generated/lucide-inbox.d.ts +5 -4
- package/dist/icons/generated/lucide-inbox.d.ts.map +1 -0
- package/dist/icons/generated/lucide-inbox.js +3 -4
- package/dist/icons/generated/lucide-inbox.js.map +1 -1
- package/dist/icons/generated/lucide-info.d.ts +5 -4
- package/dist/icons/generated/lucide-info.d.ts.map +1 -0
- package/dist/icons/generated/lucide-info.js +3 -4
- package/dist/icons/generated/lucide-info.js.map +1 -1
- package/dist/icons/generated/lucide-layout-grid.d.ts +5 -4
- package/dist/icons/generated/lucide-layout-grid.d.ts.map +1 -0
- package/dist/icons/generated/lucide-layout-grid.js +3 -4
- package/dist/icons/generated/lucide-layout-grid.js.map +1 -1
- package/dist/icons/generated/lucide-link.d.ts +5 -4
- package/dist/icons/generated/lucide-link.d.ts.map +1 -0
- package/dist/icons/generated/lucide-link.js +3 -4
- package/dist/icons/generated/lucide-link.js.map +1 -1
- package/dist/icons/generated/lucide-list-filter.d.ts +5 -4
- package/dist/icons/generated/lucide-list-filter.d.ts.map +1 -0
- package/dist/icons/generated/lucide-list-filter.js +3 -4
- package/dist/icons/generated/lucide-list-filter.js.map +1 -1
- package/dist/icons/generated/lucide-list-restart.d.ts +5 -4
- package/dist/icons/generated/lucide-list-restart.d.ts.map +1 -0
- package/dist/icons/generated/lucide-list-restart.js +3 -4
- package/dist/icons/generated/lucide-list-restart.js.map +1 -1
- package/dist/icons/generated/lucide-loader-circle.d.ts +5 -4
- package/dist/icons/generated/lucide-loader-circle.d.ts.map +1 -0
- package/dist/icons/generated/lucide-loader-circle.js +3 -4
- package/dist/icons/generated/lucide-loader-circle.js.map +1 -1
- package/dist/icons/generated/lucide-mail.d.ts +5 -4
- package/dist/icons/generated/lucide-mail.d.ts.map +1 -0
- package/dist/icons/generated/lucide-mail.js +3 -4
- package/dist/icons/generated/lucide-mail.js.map +1 -1
- package/dist/icons/generated/lucide-minus.d.ts +5 -4
- package/dist/icons/generated/lucide-minus.d.ts.map +1 -0
- package/dist/icons/generated/lucide-minus.js +3 -4
- package/dist/icons/generated/lucide-minus.js.map +1 -1
- package/dist/icons/generated/lucide-music.d.ts +5 -4
- package/dist/icons/generated/lucide-music.d.ts.map +1 -0
- package/dist/icons/generated/lucide-music.js +3 -4
- package/dist/icons/generated/lucide-music.js.map +1 -1
- package/dist/icons/generated/lucide-package.d.ts +5 -4
- package/dist/icons/generated/lucide-package.d.ts.map +1 -0
- package/dist/icons/generated/lucide-package.js +3 -4
- package/dist/icons/generated/lucide-package.js.map +1 -1
- package/dist/icons/generated/lucide-pen-line.d.ts +5 -4
- package/dist/icons/generated/lucide-pen-line.d.ts.map +1 -0
- package/dist/icons/generated/lucide-pen-line.js +3 -4
- package/dist/icons/generated/lucide-pen-line.js.map +1 -1
- package/dist/icons/generated/lucide-pencil.d.ts +5 -4
- package/dist/icons/generated/lucide-pencil.d.ts.map +1 -0
- package/dist/icons/generated/lucide-pencil.js +3 -4
- package/dist/icons/generated/lucide-pencil.js.map +1 -1
- package/dist/icons/generated/lucide-play.d.ts +5 -4
- package/dist/icons/generated/lucide-play.d.ts.map +1 -0
- package/dist/icons/generated/lucide-play.js +3 -4
- package/dist/icons/generated/lucide-play.js.map +1 -1
- package/dist/icons/generated/lucide-plus.d.ts +5 -4
- package/dist/icons/generated/lucide-plus.d.ts.map +1 -0
- package/dist/icons/generated/lucide-plus.js +3 -4
- package/dist/icons/generated/lucide-plus.js.map +1 -1
- package/dist/icons/generated/lucide-printer.d.ts +5 -4
- package/dist/icons/generated/lucide-printer.d.ts.map +1 -0
- package/dist/icons/generated/lucide-printer.js +3 -4
- package/dist/icons/generated/lucide-printer.js.map +1 -1
- package/dist/icons/generated/lucide-redo-2.d.ts +5 -4
- package/dist/icons/generated/lucide-redo-2.d.ts.map +1 -0
- package/dist/icons/generated/lucide-redo-2.js +3 -4
- package/dist/icons/generated/lucide-redo-2.js.map +1 -1
- package/dist/icons/generated/lucide-refresh-cw.d.ts +5 -4
- package/dist/icons/generated/lucide-refresh-cw.d.ts.map +1 -0
- package/dist/icons/generated/lucide-refresh-cw.js +3 -4
- package/dist/icons/generated/lucide-refresh-cw.js.map +1 -1
- package/dist/icons/generated/lucide-scissors.d.ts +5 -4
- package/dist/icons/generated/lucide-scissors.d.ts.map +1 -0
- package/dist/icons/generated/lucide-scissors.js +3 -4
- package/dist/icons/generated/lucide-scissors.js.map +1 -1
- package/dist/icons/generated/lucide-search.d.ts +5 -4
- package/dist/icons/generated/lucide-search.d.ts.map +1 -0
- package/dist/icons/generated/lucide-search.js +3 -4
- package/dist/icons/generated/lucide-search.js.map +1 -1
- package/dist/icons/generated/lucide-settings.d.ts +5 -4
- package/dist/icons/generated/lucide-settings.d.ts.map +1 -0
- package/dist/icons/generated/lucide-settings.js +3 -4
- package/dist/icons/generated/lucide-settings.js.map +1 -1
- package/dist/icons/generated/lucide-sliders-horizontal.d.ts +5 -4
- package/dist/icons/generated/lucide-sliders-horizontal.d.ts.map +1 -0
- package/dist/icons/generated/lucide-sliders-horizontal.js +3 -4
- package/dist/icons/generated/lucide-sliders-horizontal.js.map +1 -1
- package/dist/icons/generated/lucide-star.d.ts +5 -4
- package/dist/icons/generated/lucide-star.d.ts.map +1 -0
- package/dist/icons/generated/lucide-star.js +3 -4
- package/dist/icons/generated/lucide-star.js.map +1 -1
- package/dist/icons/generated/lucide-tag.d.ts +5 -4
- package/dist/icons/generated/lucide-tag.d.ts.map +1 -0
- package/dist/icons/generated/lucide-tag.js +3 -4
- package/dist/icons/generated/lucide-tag.js.map +1 -1
- package/dist/icons/generated/lucide-tags.d.ts +5 -4
- package/dist/icons/generated/lucide-tags.d.ts.map +1 -0
- package/dist/icons/generated/lucide-tags.js +3 -4
- package/dist/icons/generated/lucide-tags.js.map +1 -1
- package/dist/icons/generated/lucide-trash-2.d.ts +5 -4
- package/dist/icons/generated/lucide-trash-2.d.ts.map +1 -0
- package/dist/icons/generated/lucide-trash-2.js +3 -4
- package/dist/icons/generated/lucide-trash-2.js.map +1 -1
- package/dist/icons/generated/lucide-triangle-alert.d.ts +5 -4
- package/dist/icons/generated/lucide-triangle-alert.d.ts.map +1 -0
- package/dist/icons/generated/lucide-triangle-alert.js +3 -4
- package/dist/icons/generated/lucide-triangle-alert.js.map +1 -1
- package/dist/icons/generated/lucide-undo-2.d.ts +5 -4
- package/dist/icons/generated/lucide-undo-2.d.ts.map +1 -0
- package/dist/icons/generated/lucide-undo-2.js +3 -4
- package/dist/icons/generated/lucide-undo-2.js.map +1 -1
- package/dist/icons/generated/lucide-upload.d.ts +5 -4
- package/dist/icons/generated/lucide-upload.d.ts.map +1 -0
- package/dist/icons/generated/lucide-upload.js +3 -4
- package/dist/icons/generated/lucide-upload.js.map +1 -1
- package/dist/icons/generated/lucide-user.d.ts +5 -4
- package/dist/icons/generated/lucide-user.d.ts.map +1 -0
- package/dist/icons/generated/lucide-user.js +3 -4
- package/dist/icons/generated/lucide-user.js.map +1 -1
- package/dist/icons/generated/lucide-wrench.d.ts +5 -4
- package/dist/icons/generated/lucide-wrench.d.ts.map +1 -0
- package/dist/icons/generated/lucide-wrench.js +3 -4
- package/dist/icons/generated/lucide-wrench.js.map +1 -1
- package/dist/icons/generated/lucide-x.d.ts +5 -4
- package/dist/icons/generated/lucide-x.d.ts.map +1 -0
- package/dist/icons/generated/lucide-x.js +3 -4
- package/dist/icons/generated/lucide-x.js.map +1 -1
- package/dist/icons/generated/mdi-tag-search-outline.d.ts +5 -4
- package/dist/icons/generated/mdi-tag-search-outline.d.ts.map +1 -0
- package/dist/icons/generated/mdi-tag-search-outline.js +3 -4
- package/dist/icons/generated/mdi-tag-search-outline.js.map +1 -1
- package/dist/icons/generated/ooui-close.d.ts +5 -4
- package/dist/icons/generated/ooui-close.d.ts.map +1 -0
- package/dist/icons/generated/ooui-close.js +3 -4
- package/dist/icons/generated/ooui-close.js.map +1 -1
- package/dist/icons/generated/radix-icons-panel-left-minimized.d.ts +5 -4
- package/dist/icons/generated/radix-icons-panel-left-minimized.d.ts.map +1 -0
- package/dist/icons/generated/radix-icons-panel-left-minimized.js +3 -4
- package/dist/icons/generated/radix-icons-panel-left-minimized.js.map +1 -1
- package/dist/icons/generated/radix-icons-reset.d.ts +5 -4
- package/dist/icons/generated/radix-icons-reset.d.ts.map +1 -0
- package/dist/icons/generated/radix-icons-reset.js +3 -4
- package/dist/icons/generated/radix-icons-reset.js.map +1 -1
- package/dist/icons/generated/tabler-sort-ascending-letters.d.ts +5 -4
- package/dist/icons/generated/tabler-sort-ascending-letters.d.ts.map +1 -0
- package/dist/icons/generated/tabler-sort-ascending-letters.js +3 -4
- package/dist/icons/generated/tabler-sort-ascending-letters.js.map +1 -1
- package/dist/icons/index.d.ts +75 -74
- package/dist/icons/index.js +75 -75
- package/dist/shared/element-height/index.js +51 -25
- package/dist/shared/element-height/index.js.map +1 -1
- package/dist/shared/element-width/index.js +39 -24
- package/dist/shared/element-width/index.js.map +1 -1
- package/dist/shared/events/user-change.js +14 -8
- package/dist/shared/events/user-change.js.map +1 -1
- package/dist/shared/focus/pointer-focus.js +56 -30
- package/dist/shared/focus/pointer-focus.js.map +1 -1
- package/dist/shared/focus/tabbable.js +96 -0
- package/dist/shared/focus/tabbable.js.map +1 -0
- package/dist/shared/form-association/field-id.js +13 -6
- package/dist/shared/form-association/field-id.js.map +1 -1
- package/dist/shared/form-association/index.js +75 -42
- package/dist/shared/form-association/index.js.map +1 -1
- package/dist/shared/gesture/drag-gesture.js +239 -99
- package/dist/shared/gesture/drag-gesture.js.map +1 -1
- package/dist/shared/gesture/physics.js +49 -16
- package/dist/shared/gesture/physics.js.map +1 -1
- package/dist/shared/gesture/pinch-gesture.js +111 -60
- package/dist/shared/gesture/pinch-gesture.js.map +1 -1
- package/dist/shared/group-management/index.js +181 -84
- package/dist/shared/group-management/index.js.map +1 -1
- package/dist/shared/label-emptiness/index.js +45 -26
- package/dist/shared/label-emptiness/index.js.map +1 -1
- package/dist/shared/locale/builtin-labels.js +38 -0
- package/dist/shared/locale/builtin-labels.js.map +1 -0
- package/dist/shared/menu-behavior/index.js +113 -60
- package/dist/shared/menu-behavior/index.js.map +1 -1
- package/dist/shared/menu-portal/menu-portal.js +47 -26
- package/dist/shared/menu-portal/menu-portal.js.map +1 -1
- package/dist/shared/menu-portal/menu-tree.js +132 -75
- package/dist/shared/menu-portal/menu-tree.js.map +1 -1
- package/dist/shared/normalize/index.js +16 -7
- package/dist/shared/normalize/index.js.map +1 -1
- package/dist/shared/open-state/index.js +7 -8
- package/dist/shared/open-state/index.js.map +1 -1
- package/dist/shared/option-portal/combobox-shell.js +121 -56
- package/dist/shared/option-portal/combobox-shell.js.map +1 -1
- package/dist/shared/option-portal/index.js +65 -44
- package/dist/shared/option-portal/index.js.map +1 -1
- package/dist/shared/overlay/anchored-panel.js +75 -40
- package/dist/shared/overlay/anchored-panel.js.map +1 -1
- package/dist/shared/overlay/native-dialog-presence.js +116 -52
- package/dist/shared/overlay/native-dialog-presence.js.map +1 -1
- package/dist/shared/overlay/nested-drawer-layers.js +76 -46
- package/dist/shared/overlay/nested-drawer-layers.js.map +1 -1
- package/dist/shared/overlay/open-overlay.js +240 -136
- package/dist/shared/overlay/open-overlay.js.map +1 -1
- package/dist/shared/overlay/overlay-root.js +33 -24
- package/dist/shared/overlay/overlay-root.js.map +1 -1
- package/dist/shared/overlay/overlay.js +109 -66
- package/dist/shared/overlay/overlay.js.map +1 -1
- package/dist/shared/overlay/placement-props.js +9 -4
- package/dist/shared/overlay/placement-props.js.map +1 -1
- package/dist/shared/overlay/portal.d.ts +2 -0
- package/dist/shared/overlay/portal.d.ts.map +1 -0
- package/dist/shared/overlay/portal.js +202 -117
- package/dist/shared/overlay/portal.js.map +1 -1
- package/dist/shared/overlay/positioning-generation.js +9 -10
- package/dist/shared/overlay/positioning-generation.js.map +1 -1
- package/dist/shared/overlay/presence.js +43 -21
- package/dist/shared/overlay/presence.js.map +1 -1
- package/dist/shared/overlay/theme-overlay-scope.js +22 -19
- package/dist/shared/overlay/theme-overlay-scope.js.map +1 -1
- package/dist/shared/scroll-lock/scroll-lock.js +49 -15
- package/dist/shared/scroll-lock/scroll-lock.js.map +1 -1
- package/dist/shared/theme/duration.js +13 -6
- package/dist/shared/theme/duration.js.map +1 -1
- package/dist/shared/theme/reduced-motion.js +14 -9
- package/dist/shared/theme/reduced-motion.js.map +1 -1
- package/dist/shared/theme/root-sync.js +85 -32
- package/dist/shared/theme/root-sync.js.map +1 -1
- package/dist/shared/visible-area/index.js +81 -37
- package/dist/shared/visible-area/index.js.map +1 -1
- package/dist/types/iconify.d.ts +1 -1
- package/dist/types/iconify.js +0 -0
- package/dist/types/react.d.ts +8 -10
- package/dist/types/react.d.ts.map +1 -0
- package/dist/types/react.js +0 -0
- package/dist/types/utils.d.ts +8 -13
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/utils.js +0 -0
- package/dist/types/vue.d.ts +9 -13
- package/dist/types/vue.d.ts.map +1 -0
- package/dist/types/vue.js +0 -0
- package/dist/vite/index.d.ts +1 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +30 -4
- package/dist/vite/index.js.map +1 -1
- package/package.json +10 -23
- package/dist/_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js +0 -9
- package/dist/components/middle-ellipsis/truncate.d.ts +0 -62
- package/dist/components/radio/interaction.d.ts +0 -4
- package/dist/scrollbars/index.d.ts +0 -33
- package/dist/scrollbars/index.js +0 -18
- package/dist/scrollbars/index.js.map +0 -1
- package/dist/scrollbars/internal.js +0 -6
- package/dist/scrollbars/internal.js.map +0 -1
- package/dist/scrollbars/style.css +0 -10
|
@@ -1,31 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
2
2
|
import "../icon/index.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { normalizeLiteral
|
|
3
|
+
import glass_default from "../../classes/glass.js";
|
|
4
|
+
import ooui_close_default from "../../icons/generated/ooui-close.js";
|
|
5
|
+
import { normalizeLiteral } from "../../shared/normalize/index.js";
|
|
6
6
|
import "../button/index.js";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import
|
|
20
|
-
import {
|
|
21
|
-
import
|
|
22
|
-
|
|
23
|
-
|
|
7
|
+
import { resolveBuiltinLabel } from "../../shared/locale/builtin-labels.js";
|
|
8
|
+
import scrollbar_default from "../../assets/scrollbar.js";
|
|
9
|
+
import { dispatchOpenChangeEvent } from "../../shared/open-state/index.js";
|
|
10
|
+
import { defineOpenOverlay } from "../../shared/overlay/open-overlay.js";
|
|
11
|
+
import { defineScrollLockLease } from "../../shared/scroll-lock/scroll-lock.js";
|
|
12
|
+
import { prefersReducedMotion } from "../../shared/theme/reduced-motion.js";
|
|
13
|
+
import { UserChangeController } from "../../shared/events/user-change.js";
|
|
14
|
+
import modal_surface_default from "../../assets/modal-surface.js";
|
|
15
|
+
import { trapTabKey } from "../../shared/focus/tabbable.js";
|
|
16
|
+
import { defineNativeDialogPresence } from "../../shared/overlay/native-dialog-presence.js";
|
|
17
|
+
import { ElementHeightController } from "../../shared/element-height/index.js";
|
|
18
|
+
import { attachDragGesture } from "../../shared/gesture/drag-gesture.js";
|
|
19
|
+
import { dampOverscroll } from "../../shared/gesture/physics.js";
|
|
20
|
+
import { defineNestedDrawerLayers } from "../../shared/overlay/nested-drawer-layers.js";
|
|
21
|
+
import style_default from "./style.js";
|
|
22
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
23
|
+
import { customElement, property } from "lit/decorators.js";
|
|
24
|
+
// src/components/drawer/index.ts
|
|
25
|
+
const ALLOWED_PLACEMENTS = [
|
|
24
26
|
"right",
|
|
25
27
|
"left",
|
|
26
28
|
"top",
|
|
27
29
|
"bottom"
|
|
28
|
-
]
|
|
30
|
+
];
|
|
31
|
+
const DRAG_CLOSE_RATIO = .5;
|
|
32
|
+
const DRAG_MIN_CLOSE_DISTANCE = 10;
|
|
33
|
+
const DRAG_FLICK_VELOCITY = 500;
|
|
34
|
+
const DRAG_MIN_VELOCITY_SPAN_MS = 50;
|
|
35
|
+
const DRAG_REVERSE_CANCEL_THRESHOLD = 10;
|
|
36
|
+
const DRAG_REQUEST_WINDOW_MS = 120;
|
|
37
|
+
const BACKDROP_TAP_DISTANCE = 10;
|
|
38
|
+
const HEADER_FOOTER_INTERACTIVE_SELECTOR = [
|
|
29
39
|
"button",
|
|
30
40
|
"input",
|
|
31
41
|
"select",
|
|
@@ -51,13 +61,19 @@ var C = [
|
|
|
51
61
|
"[role=\"combobox\"]",
|
|
52
62
|
"[role=\"slider\"]",
|
|
53
63
|
"[role=\"spinbutton\"]"
|
|
54
|
-
].join(",")
|
|
55
|
-
|
|
64
|
+
].join(",");
|
|
65
|
+
const SETTLE_MIN_MS = 180;
|
|
66
|
+
const SETTLE_MAX_MS = 420;
|
|
67
|
+
const SETTLE_EASE_CLOSE = "cubic-bezier(0.32, 0.72, 0, 1)";
|
|
68
|
+
const SETTLE_EASE_REBOUND = "cubic-bezier(0.22, 1.3, 0.36, 1)";
|
|
69
|
+
const SETTLE_MIN_VELOCITY = 1;
|
|
70
|
+
const SETTLE_GRACE_MS = 80;
|
|
71
|
+
if (typeof CSS !== "undefined" && "registerProperty" in CSS) {
|
|
56
72
|
try {
|
|
57
73
|
CSS.registerProperty({
|
|
58
74
|
name: "--wui-internal-drag-backdrop-opacity",
|
|
59
75
|
syntax: "<number>",
|
|
60
|
-
inherits:
|
|
76
|
+
inherits: true,
|
|
61
77
|
initialValue: "1"
|
|
62
78
|
});
|
|
63
79
|
} catch {}
|
|
@@ -65,7 +81,7 @@ if (typeof CSS < "u" && "registerProperty" in CSS) {
|
|
|
65
81
|
CSS.registerProperty({
|
|
66
82
|
name: "--wui-drawer-inset",
|
|
67
83
|
syntax: "<length>",
|
|
68
|
-
inherits:
|
|
84
|
+
inherits: true,
|
|
69
85
|
initialValue: "8px"
|
|
70
86
|
});
|
|
71
87
|
} catch {}
|
|
@@ -73,7 +89,7 @@ if (typeof CSS < "u" && "registerProperty" in CSS) {
|
|
|
73
89
|
CSS.registerProperty({
|
|
74
90
|
name: "--wui-drawer-nested-peek-base",
|
|
75
91
|
syntax: "<length>",
|
|
76
|
-
inherits:
|
|
92
|
+
inherits: true,
|
|
77
93
|
initialValue: "43.2px"
|
|
78
94
|
});
|
|
79
95
|
} catch {}
|
|
@@ -81,61 +97,106 @@ if (typeof CSS < "u" && "registerProperty" in CSS) {
|
|
|
81
97
|
CSS.registerProperty({
|
|
82
98
|
name: "--wui-internal-settle-duration",
|
|
83
99
|
syntax: "<time>",
|
|
84
|
-
inherits:
|
|
100
|
+
inherits: true,
|
|
85
101
|
initialValue: "280ms"
|
|
86
102
|
});
|
|
87
103
|
} catch {}
|
|
88
104
|
}
|
|
89
|
-
|
|
90
|
-
constructor(...
|
|
91
|
-
super(...
|
|
105
|
+
let WebUiDrawer = class WebUiDrawer extends LitElement {
|
|
106
|
+
constructor(..._args) {
|
|
107
|
+
super(..._args);
|
|
108
|
+
this.open = false;
|
|
109
|
+
this.noScrollLock = false;
|
|
110
|
+
this.noBackdropClose = false;
|
|
111
|
+
this.controlled = false;
|
|
112
|
+
this._placement = "right";
|
|
113
|
+
this.heading = "";
|
|
114
|
+
this.closable = false;
|
|
115
|
+
this.headless = false;
|
|
116
|
+
this.ariaDialogLabel = "";
|
|
117
|
+
this.ariaCloseLabel = "";
|
|
118
|
+
this.draggable = false;
|
|
119
|
+
this._hasHeaderSlot = false;
|
|
120
|
+
this._hasFooterSlot = false;
|
|
121
|
+
this._userOpenChange = new UserChangeController();
|
|
122
|
+
this._headerHeight = new ElementHeightController(this, ".wui-drawer-header", (height) => this._setAvoidance("--wui-internal-drawer-header-inset", height));
|
|
123
|
+
this._footerHeight = new ElementHeightController(this, ".wui-drawer-footer", (height) => this._setAvoidance("--wui-internal-drawer-footer-inset", height));
|
|
124
|
+
this._scrollLock = defineScrollLockLease().make();
|
|
125
|
+
this._presence = defineNativeDialogPresence().make({
|
|
92
126
|
getDialog: () => this.dialog,
|
|
93
127
|
isConnected: () => this.isConnected,
|
|
94
128
|
isOpen: () => this.open
|
|
95
|
-
})
|
|
129
|
+
});
|
|
130
|
+
this._nestedLayers = defineNestedDrawerLayers().make({
|
|
96
131
|
getDialog: () => this.dialog,
|
|
97
132
|
getPlacement: () => this._placement
|
|
98
|
-
})
|
|
133
|
+
});
|
|
134
|
+
this._overlay = defineOpenOverlay().make({
|
|
99
135
|
requestClose: () => this._closeFromUser(),
|
|
100
136
|
isConnected: () => this.isConnected
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
|
|
137
|
+
});
|
|
138
|
+
this._handle = null;
|
|
139
|
+
this._dragGesture = null;
|
|
140
|
+
this._dragInitialOffset = 0;
|
|
141
|
+
this._dragOffset = 0;
|
|
142
|
+
this._cancelBaseline = 0;
|
|
143
|
+
this._lastAxisPos = 0;
|
|
144
|
+
this._swipeIntentDisp = -1;
|
|
145
|
+
this._swipeCancelled = false;
|
|
146
|
+
this._settleFinish = null;
|
|
147
|
+
this._dragAwaitWriteback = false;
|
|
148
|
+
this._handleDragWritebackTimeout = () => {
|
|
149
|
+
this._dragRequestTimer = void 0;
|
|
150
|
+
if (!this._dragAwaitWriteback || !this.open || this._isDragging()) {
|
|
151
|
+
this._dragAwaitWriteback = false;
|
|
104
152
|
return;
|
|
105
153
|
}
|
|
106
|
-
this._dragAwaitWriteback =
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
154
|
+
this._dragAwaitWriteback = false;
|
|
155
|
+
const dialog = this.dialog;
|
|
156
|
+
if (!dialog) return;
|
|
157
|
+
dialog.classList.add("is-visible");
|
|
158
|
+
this._settleRebound(dialog, 0, this._dragCloseDistance(dialog));
|
|
159
|
+
};
|
|
160
|
+
this._closeFromUser = () => {
|
|
161
|
+
if (!this.open) return;
|
|
162
|
+
if (this._dragAwaitWriteback) return;
|
|
163
|
+
if (this.controlled) {
|
|
164
|
+
this.emitOpenChange(false);
|
|
165
|
+
return;
|
|
116
166
|
}
|
|
117
|
-
|
|
167
|
+
this._userOpenChange.mark();
|
|
168
|
+
this.close();
|
|
169
|
+
};
|
|
170
|
+
this._backdropPress = null;
|
|
118
171
|
}
|
|
119
172
|
static {
|
|
120
173
|
this.styles = [
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
174
|
+
unsafeCSS(glass_default),
|
|
175
|
+
unsafeCSS(modal_surface_default),
|
|
176
|
+
unsafeCSS(scrollbar_default),
|
|
177
|
+
unsafeCSS(style_default)
|
|
125
178
|
];
|
|
126
179
|
}
|
|
127
180
|
get placement() {
|
|
128
181
|
return this._placement;
|
|
129
182
|
}
|
|
130
|
-
set placement(
|
|
131
|
-
|
|
132
|
-
this._placement =
|
|
183
|
+
set placement(v) {
|
|
184
|
+
const old = this._placement;
|
|
185
|
+
this._placement = normalizeLiteral(v, ALLOWED_PLACEMENTS, "right");
|
|
186
|
+
this.requestUpdate("placement", old);
|
|
187
|
+
}
|
|
188
|
+
/** @deprecated 用 `aria-dialog-label`。 */
|
|
189
|
+
get dialogLabel() {
|
|
190
|
+
return this.ariaDialogLabel;
|
|
191
|
+
}
|
|
192
|
+
set dialogLabel(value) {
|
|
193
|
+
this.ariaDialogLabel = value;
|
|
133
194
|
}
|
|
134
195
|
get dialog() {
|
|
135
196
|
return this.shadowRoot?.querySelector("dialog") ?? null;
|
|
136
197
|
}
|
|
137
|
-
_setAvoidance(
|
|
138
|
-
this.style.setProperty(
|
|
198
|
+
_setAvoidance(property, height) {
|
|
199
|
+
this.style.setProperty(property, height > 0 ? `calc(${height}px + var(--wui-drawer-drag-zone-inset, var(--wui-space-1, 4px)))` : "0px");
|
|
139
200
|
}
|
|
140
201
|
get _dragAxis() {
|
|
141
202
|
return this._placement === "left" || this._placement === "right" ? "x" : "y";
|
|
@@ -149,228 +210,401 @@ var R = class extends _ {
|
|
|
149
210
|
}
|
|
150
211
|
}
|
|
151
212
|
_measureDragSize() {
|
|
152
|
-
|
|
153
|
-
|
|
213
|
+
const dialog = this.dialog;
|
|
214
|
+
if (!dialog) return 0;
|
|
215
|
+
return this._dragAxis === "x" ? dialog.offsetWidth : dialog.offsetHeight;
|
|
154
216
|
}
|
|
155
|
-
_dragCloseThreshold(
|
|
156
|
-
return Math.max(
|
|
217
|
+
_dragCloseThreshold(size) {
|
|
218
|
+
return Math.max(size * DRAG_CLOSE_RATIO, DRAG_MIN_CLOSE_DISTANCE);
|
|
157
219
|
}
|
|
158
|
-
_readDrawerInset(
|
|
159
|
-
|
|
160
|
-
|
|
220
|
+
_readDrawerInset(dialog) {
|
|
221
|
+
const raw = getComputedStyle(dialog).getPropertyValue("--wui-internal-drawer-inset");
|
|
222
|
+
const parsed = Number.parseFloat(raw);
|
|
223
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
161
224
|
}
|
|
162
|
-
_dragCloseDistance(
|
|
163
|
-
return this._measureDragSize() + this._readDrawerInset(
|
|
225
|
+
_dragCloseDistance(dialog) {
|
|
226
|
+
return this._measureDragSize() + this._readDrawerInset(dialog);
|
|
164
227
|
}
|
|
165
228
|
_isDragging() {
|
|
166
|
-
return this._dragGesture?.isDragging() ??
|
|
229
|
+
return this._dragGesture?.isDragging() ?? false;
|
|
167
230
|
}
|
|
168
231
|
_syncDragInert() {
|
|
169
232
|
this._handle?.setInert(this._isDragging());
|
|
170
233
|
}
|
|
171
234
|
_cancelDragAwait() {
|
|
172
|
-
|
|
173
|
-
|
|
235
|
+
if (this._dragRequestTimer !== void 0) {
|
|
236
|
+
clearTimeout(this._dragRequestTimer);
|
|
237
|
+
this._dragRequestTimer = void 0;
|
|
238
|
+
}
|
|
239
|
+
this._dragAwaitWriteback = false;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* 上下 placement 的 header / footer 自己接拖拽手势。
|
|
243
|
+
*
|
|
244
|
+
* 为什么不是「把 drag zone 铺到 header 上」:那样 header 里的控件会被透明命中层吞掉,
|
|
245
|
+
* 正是 A6 修掉的那条缺陷。这里在事件层让开——控件照常收自己的事件,拖拽只在
|
|
246
|
+
* 「落点不是可点控件」时起手。
|
|
247
|
+
*
|
|
248
|
+
* 三道闸门任一不成立就不接管:
|
|
249
|
+
* 1. placement 必须是上下。左右 placement 的拖拽轴是 x,端头在竖边上,header
|
|
250
|
+
* 既不在可抓边缘上也不该起手(R4 的行为侧)。
|
|
251
|
+
* 2. 下层嵌套 drawer 整套拖拽提示一起退场。drag zone 与 drag edge 靠 CSS 的 pointer-events 退场,
|
|
252
|
+
* 事件层必须自己判同一条,否则 header 会成为唯一一条漏网的入口。
|
|
253
|
+
* 3. 落点路径里有可点控件就让开——控件优先于「这一块可拖」。
|
|
254
|
+
*/
|
|
174
255
|
_handleSectionDragPointerDown(e) {
|
|
175
256
|
if (this._placement !== "top" && this._placement !== "bottom") return;
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
257
|
+
const isHeader = (e.currentTarget?.closest(".wui-drawer-header, .wui-drawer-footer"))?.classList.contains("wui-drawer-header") ?? false;
|
|
258
|
+
if (this._placement === "bottom" && !isHeader) return;
|
|
259
|
+
if (this._placement === "top" && isHeader) return;
|
|
260
|
+
if (this.dialog?.classList.contains("is-nested-lower")) return;
|
|
261
|
+
if (this._isInteractivePath(e)) return;
|
|
262
|
+
this._handleDragPointerDown(e);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* 按下路径上是否出现可点控件。
|
|
266
|
+
*
|
|
267
|
+
* 走 composedPath 而不是 event.target:消费侧 slotted 控件与组件库自绘控件都各有
|
|
268
|
+
* shadow root,target 只给出最内层那个节点,沿 parentElement 上行会在 shadow 边界
|
|
269
|
+
* 断掉,控件自己那层反而看不见。
|
|
270
|
+
*/
|
|
179
271
|
_isInteractivePath(e) {
|
|
180
|
-
|
|
181
|
-
for (
|
|
182
|
-
return
|
|
272
|
+
const path = typeof e.composedPath === "function" ? e.composedPath() : [e.target];
|
|
273
|
+
for (const node of path) if (node instanceof Element && node.matches(HEADER_FOOTER_INTERACTIVE_SELECTOR)) return true;
|
|
274
|
+
return false;
|
|
183
275
|
}
|
|
184
276
|
_handleDragPointerDown(e) {
|
|
185
|
-
if (!this.open || !this.draggable || this._isDragging()
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
277
|
+
if (!this.open || !this.draggable || this._isDragging()) return;
|
|
278
|
+
if (e.isPrimary === false) return;
|
|
279
|
+
const dialog = this.dialog;
|
|
280
|
+
if (!dialog) return;
|
|
281
|
+
if (!dialog.classList.contains("is-visible")) return;
|
|
282
|
+
const currentTransform = getComputedStyle(dialog).transform;
|
|
283
|
+
const axisValue = currentTransform && currentTransform !== "none" && typeof DOMMatrixReadOnly === "function" ? new DOMMatrixReadOnly(currentTransform)[this._dragAxis === "x" ? "m41" : "m42"] : 0;
|
|
284
|
+
this._abortSettle();
|
|
285
|
+
this._cancelDragAwait();
|
|
286
|
+
this._dragInitialOffset = axisValue * this._dragCloseSign;
|
|
287
|
+
this._dragOffset = this._dragInitialOffset;
|
|
288
|
+
const axisPos = this._dragAxis === "x" ? e.clientX : e.clientY;
|
|
289
|
+
this._cancelBaseline = axisPos;
|
|
290
|
+
this._lastAxisPos = axisPos;
|
|
291
|
+
this._swipeIntentDisp = -1;
|
|
292
|
+
this._swipeCancelled = false;
|
|
293
|
+
dialog.classList.add("is-dragging");
|
|
294
|
+
this._applyDragOffset(dialog, this._dragOffset);
|
|
295
|
+
this._dragGesture = attachDragGesture(e, {
|
|
192
296
|
axis: this._dragAxis,
|
|
193
|
-
calibrateOnFirstMove:
|
|
194
|
-
onMove: (
|
|
195
|
-
|
|
196
|
-
this._dragOffset = this._dragInitialOffset +
|
|
197
|
-
|
|
198
|
-
|
|
297
|
+
calibrateOnFirstMove: true,
|
|
298
|
+
onMove: (info) => {
|
|
299
|
+
const dragDelta = (this._dragAxis === "x" ? info.deltaX : info.deltaY) * this._dragCloseSign;
|
|
300
|
+
this._dragOffset = this._dragInitialOffset + dampOverscroll(dragDelta);
|
|
301
|
+
this._trackSwipeCancel(this._dragAxis === "x" ? info.clientX : info.clientY, dragDelta);
|
|
302
|
+
const dragSize = this._measureDragSize();
|
|
303
|
+
const dragDisplacement = this._dragOffset - this._dragInitialOffset;
|
|
304
|
+
dialog.classList.toggle("is-drag-close", dragDisplacement > this._dragCloseThreshold(dragSize));
|
|
305
|
+
this._applyDragOffset(dialog, this._dragOffset);
|
|
199
306
|
},
|
|
200
|
-
onEnd: (
|
|
201
|
-
this._dragGesture = null
|
|
202
|
-
|
|
203
|
-
|
|
307
|
+
onEnd: (info) => {
|
|
308
|
+
this._dragGesture = null;
|
|
309
|
+
this._syncDragInert();
|
|
310
|
+
dialog.classList.remove("is-dragging", "is-drag-close");
|
|
311
|
+
const size = this._measureDragSize();
|
|
312
|
+
const velocity = (this._dragAxis === "x" ? info.velocityX : info.velocityY) * this._dragCloseSign;
|
|
313
|
+
const displacement = this._dragOffset - this._dragInitialOffset;
|
|
314
|
+
const netVelocity = info.duration > 0 ? displacement / Math.max(info.duration, DRAG_MIN_VELOCITY_SPAN_MS) * 1e3 : 0;
|
|
315
|
+
const flicked = displacement > 0 && netVelocity >= DRAG_FLICK_VELOCITY && !this._swipeCancelled;
|
|
316
|
+
if (displacement > this._dragCloseThreshold(size) || flicked) this._settleToClose(dialog, velocity);
|
|
317
|
+
else this._settleRebound(dialog, velocity, this._dragOffset);
|
|
204
318
|
},
|
|
205
319
|
onCancel: () => {
|
|
206
|
-
this._dragGesture = null
|
|
320
|
+
this._dragGesture = null;
|
|
321
|
+
this._syncDragInert();
|
|
322
|
+
dialog.classList.remove("is-dragging", "is-drag-close");
|
|
323
|
+
this._settleRebound(dialog, 0, this._dragOffset);
|
|
207
324
|
}
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
325
|
+
});
|
|
326
|
+
this._syncDragInert();
|
|
327
|
+
}
|
|
328
|
+
_trackSwipeCancel(axisPos, displacement) {
|
|
329
|
+
const movement = axisPos - this._lastAxisPos;
|
|
330
|
+
this._lastAxisPos = axisPos;
|
|
331
|
+
if (movement < 0 && axisPos > this._cancelBaseline || movement > 0 && axisPos < this._cancelBaseline) this._cancelBaseline = axisPos;
|
|
332
|
+
if (this._swipeIntentDisp < 0) {
|
|
333
|
+
if (displacement > 0) this._swipeIntentDisp = displacement;
|
|
214
334
|
return;
|
|
215
335
|
}
|
|
216
|
-
|
|
217
|
-
|
|
336
|
+
const cancelDisplacement = (axisPos - this._cancelBaseline) * this._dragCloseSign;
|
|
337
|
+
if (cancelDisplacement > this._dragCloseThreshold(this._measureDragSize())) this._swipeCancelled = false;
|
|
338
|
+
else if (this._swipeIntentDisp - cancelDisplacement >= DRAG_REVERSE_CANCEL_THRESHOLD) this._swipeCancelled = true;
|
|
218
339
|
}
|
|
219
340
|
_cancelActiveDrag() {
|
|
220
341
|
if (!this._isDragging()) return;
|
|
221
|
-
this._dragGesture?.destroy()
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
342
|
+
this._dragGesture?.destroy();
|
|
343
|
+
this._dragGesture = null;
|
|
344
|
+
this._syncDragInert();
|
|
345
|
+
const dialog = this.dialog;
|
|
346
|
+
if (!dialog) return;
|
|
347
|
+
dialog.classList.remove("is-dragging", "is-drag-close");
|
|
348
|
+
this._clearDragStyles(dialog);
|
|
349
|
+
}
|
|
350
|
+
_applyDragOffset(dialog, offset) {
|
|
351
|
+
const value = offset * this._dragCloseSign;
|
|
352
|
+
dialog.style.transform = this._dragAxis === "x" ? `translateX(${value}px)` : `translateY(${value}px)`;
|
|
353
|
+
const size = this._measureDragSize();
|
|
354
|
+
const progress = size > 0 ? Math.min(1, Math.max(0, offset / size)) : 0;
|
|
355
|
+
dialog.style.setProperty("--wui-internal-drag-backdrop-opacity", String(1 - progress));
|
|
356
|
+
}
|
|
357
|
+
_clearDragStyles(dialog) {
|
|
358
|
+
dialog.style.removeProperty("transform");
|
|
359
|
+
dialog.style.removeProperty("--wui-internal-drag-backdrop-opacity");
|
|
360
|
+
}
|
|
361
|
+
_settleToClose(dialog, velocity) {
|
|
362
|
+
const from = this._dragOffset;
|
|
236
363
|
this._dragOffset = 0;
|
|
237
|
-
|
|
238
|
-
|
|
364
|
+
const to = this._dragCloseDistance(dialog);
|
|
365
|
+
const finishClose = () => {
|
|
366
|
+
if (this.controlled) this._applyDragOffset(dialog, to);
|
|
367
|
+
else {
|
|
368
|
+
dialog.classList.remove("is-visible");
|
|
369
|
+
this._clearDragStyles(dialog);
|
|
370
|
+
}
|
|
371
|
+
this._closeFromDrag();
|
|
239
372
|
};
|
|
240
|
-
if (
|
|
241
|
-
|
|
373
|
+
if (prefersReducedMotion(this) || Math.abs(to - from) < 1) {
|
|
374
|
+
dialog.classList.remove("is-dragging");
|
|
375
|
+
finishClose();
|
|
242
376
|
return;
|
|
243
377
|
}
|
|
244
|
-
this._startSettle(
|
|
378
|
+
this._startSettle(dialog, to, 0, this._settleDuration(Math.abs(to - from), velocity), SETTLE_EASE_CLOSE, finishClose);
|
|
245
379
|
}
|
|
246
|
-
_settleRebound(
|
|
380
|
+
_settleRebound(dialog, velocity, from) {
|
|
247
381
|
this._dragOffset = 0;
|
|
248
|
-
|
|
249
|
-
this._clearDragStyles(
|
|
382
|
+
const finishRebound = () => {
|
|
383
|
+
this._clearDragStyles(dialog);
|
|
250
384
|
};
|
|
251
|
-
if (
|
|
252
|
-
|
|
385
|
+
if (prefersReducedMotion(this) || Math.abs(from) < 1) {
|
|
386
|
+
dialog.classList.remove("is-dragging");
|
|
387
|
+
finishRebound();
|
|
253
388
|
return;
|
|
254
389
|
}
|
|
255
|
-
this._startSettle(
|
|
390
|
+
this._startSettle(dialog, 0, 1, this._settleDuration(Math.abs(from), velocity), SETTLE_EASE_REBOUND, finishRebound);
|
|
256
391
|
}
|
|
257
|
-
_settleDuration(
|
|
258
|
-
|
|
259
|
-
return Math.min(
|
|
392
|
+
_settleDuration(distance, velocity) {
|
|
393
|
+
const ms = distance / Math.max(Math.abs(velocity), SETTLE_MIN_VELOCITY) * 1e3;
|
|
394
|
+
return Math.min(SETTLE_MAX_MS, Math.max(SETTLE_MIN_MS, ms));
|
|
260
395
|
}
|
|
261
|
-
_startSettle(
|
|
396
|
+
_startSettle(dialog, offset, backdropOpacity, duration, easing, onDone) {
|
|
262
397
|
this._abortSettle();
|
|
263
|
-
|
|
264
|
-
|
|
398
|
+
const sign = this._dragCloseSign;
|
|
399
|
+
dialog.style.setProperty("--wui-internal-settle-duration", `${duration}ms`);
|
|
400
|
+
dialog.style.setProperty("--wui-internal-settle-easing", easing);
|
|
401
|
+
dialog.style.transform = this._dragAxis === "x" ? `translateX(${offset * sign}px)` : `translateY(${offset * sign}px)`;
|
|
402
|
+
dialog.style.setProperty("--wui-internal-drag-backdrop-opacity", String(backdropOpacity));
|
|
403
|
+
dialog.classList.add("is-settling");
|
|
404
|
+
dialog.classList.remove("is-dragging");
|
|
405
|
+
this._settleFinish = onDone;
|
|
406
|
+
this._settleTimer = setTimeout(() => this._finishSettle(), duration + SETTLE_GRACE_MS);
|
|
265
407
|
}
|
|
266
408
|
_finishSettle() {
|
|
267
|
-
|
|
268
|
-
|
|
409
|
+
const finish = this._settleFinish;
|
|
410
|
+
if (!finish) return;
|
|
411
|
+
this._abortSettle();
|
|
412
|
+
finish();
|
|
269
413
|
}
|
|
270
414
|
_abortSettle() {
|
|
271
|
-
this._settleFinish = null
|
|
272
|
-
|
|
273
|
-
|
|
415
|
+
this._settleFinish = null;
|
|
416
|
+
if (this._settleTimer !== void 0) {
|
|
417
|
+
clearTimeout(this._settleTimer);
|
|
418
|
+
this._settleTimer = void 0;
|
|
419
|
+
}
|
|
420
|
+
const dialog = this.dialog;
|
|
421
|
+
if (!dialog) return;
|
|
422
|
+
dialog.classList.remove("is-settling");
|
|
423
|
+
dialog.style.removeProperty("--wui-internal-settle-duration");
|
|
424
|
+
dialog.style.removeProperty("--wui-internal-settle-easing");
|
|
274
425
|
}
|
|
275
426
|
_closeFromDrag() {
|
|
276
|
-
this._closeFromUser()
|
|
427
|
+
this._closeFromUser();
|
|
428
|
+
if (this.controlled) {
|
|
429
|
+
this._dragAwaitWriteback = true;
|
|
430
|
+
this._dragRequestTimer = setTimeout(this._handleDragWritebackTimeout, DRAG_REQUEST_WINDOW_MS);
|
|
431
|
+
}
|
|
277
432
|
}
|
|
278
433
|
connectedCallback() {
|
|
279
|
-
super.connectedCallback()
|
|
434
|
+
super.connectedCallback();
|
|
435
|
+
this._resyncSlotPresence();
|
|
436
|
+
this._presence.reconcile();
|
|
437
|
+
if (this.open) this._nestedLayers.register();
|
|
438
|
+
this._syncScrollLock();
|
|
439
|
+
this._reclaimIfOpen();
|
|
280
440
|
}
|
|
281
441
|
firstUpdated() {
|
|
282
442
|
this._checkSlotContent("footer");
|
|
283
443
|
}
|
|
284
444
|
disconnectedCallback() {
|
|
285
|
-
super.disconnectedCallback()
|
|
445
|
+
super.disconnectedCallback();
|
|
446
|
+
this._nestedLayers.dispose();
|
|
447
|
+
this._dragGesture?.destroy();
|
|
448
|
+
this._dragGesture = null;
|
|
449
|
+
this._presence.dispose();
|
|
450
|
+
this._scrollLock.release();
|
|
451
|
+
this._handle?.release();
|
|
452
|
+
this._handle = null;
|
|
453
|
+
this._abortSettle();
|
|
454
|
+
this._cancelDragAwait();
|
|
286
455
|
}
|
|
456
|
+
/** 「重挂载恢复」的调用方一半:模块刻意不观察 DOM 连接状态。 */
|
|
287
457
|
_reclaimIfOpen() {
|
|
288
458
|
if (!this.open || this._handle) return;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
459
|
+
const dialog = this.dialog;
|
|
460
|
+
if (!dialog) return;
|
|
461
|
+
this._handle = this._overlay.claim(dialog, { ancestryFrom: this });
|
|
462
|
+
this._syncDragInert();
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* 对账 header / footer slot 的有无,**只在真的变了时排一次更新**。
|
|
466
|
+
*
|
|
467
|
+
* 排更新是这条对账不可省的一半:`showHeader` 与 footer 的 `?hidden` 只在 render 里求值,
|
|
468
|
+
* 而 Lit 的 `connectedCallback` 只做 `enableUpdating(true)` 与 `setConnected(true)`,本身不排
|
|
469
|
+
* 更新。两条 slotchange 处理器也接不住这条路径——slotchange 只在**分配集合**变化时派发,
|
|
470
|
+
* 断连期间清空槽位内容时宿主节点本身没动,事件不触发(Chromium 实测)。
|
|
471
|
+
*
|
|
472
|
+
* 漏掉这一半的后果:断连前有 footer、重连时已清空的 drawer 留下一节空的 footer。它在 style.css
|
|
473
|
+
* 的 padding 下仍有真实高度(实测 32px),于是底部一条点不动的死带,拖拽 drag zone 的让位量也照
|
|
474
|
+
* 它算而不归零。
|
|
475
|
+
*
|
|
476
|
+
* 判据取 light DOM 子节点而非 `slot.assignedNodes()`:首次连接时 shadow 尚未渲染,slot 元素
|
|
477
|
+
* 还不存在,那一侧会直接跳过(首次连接的 presence 由 `firstUpdated()` 与 slotchange 兜底);
|
|
478
|
+
* 这里要的正是重连对账——shadow root 跨断连保留,两侧都可用,但只有子节点扫描不依赖渲染
|
|
479
|
+
* 时序。「只在真变了才排」与两条 slotchange 处理器同一纪律,避免每次重连都多一次空渲染。
|
|
480
|
+
*/
|
|
292
481
|
_resyncSlotPresence() {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
482
|
+
const hasHeader = this._hasSlottedChild("header");
|
|
483
|
+
const hasFooter = this._hasSlottedChild("footer");
|
|
484
|
+
if (hasHeader === this._hasHeaderSlot && hasFooter === this._hasFooterSlot) return;
|
|
485
|
+
this._hasHeaderSlot = hasHeader;
|
|
486
|
+
this._hasFooterSlot = hasFooter;
|
|
487
|
+
this.requestUpdate();
|
|
488
|
+
}
|
|
489
|
+
_hasSlottedChild(name) {
|
|
490
|
+
return Array.from(this.children).some((child) => child.getAttribute("slot") === name);
|
|
491
|
+
}
|
|
492
|
+
_checkSlotContent(name) {
|
|
493
|
+
const slot = this.shadowRoot?.querySelector(`slot[name="${name}"]`);
|
|
494
|
+
if (!slot) return;
|
|
495
|
+
const has = slot.assignedNodes().length > 0;
|
|
496
|
+
if (name === "footer" && has !== this._hasFooterSlot) {
|
|
497
|
+
this._hasFooterSlot = has;
|
|
498
|
+
this.requestUpdate();
|
|
499
|
+
}
|
|
304
500
|
}
|
|
305
501
|
handleHeaderSlotChange(e) {
|
|
306
|
-
|
|
307
|
-
|
|
502
|
+
const has = e.target.assignedNodes().length > 0;
|
|
503
|
+
if (has !== this._hasHeaderSlot) {
|
|
504
|
+
this._hasHeaderSlot = has;
|
|
505
|
+
this.requestUpdate();
|
|
506
|
+
}
|
|
308
507
|
}
|
|
309
508
|
handleFooterSlotChange(e) {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
509
|
+
const has = e.target.assignedNodes().length > 0;
|
|
510
|
+
if (has !== this._hasFooterSlot) {
|
|
511
|
+
this._hasFooterSlot = has;
|
|
512
|
+
this.requestUpdate();
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
updated(props) {
|
|
516
|
+
super.updated(props);
|
|
517
|
+
if (!this.isConnected) return;
|
|
518
|
+
if (props.has("open")) {
|
|
519
|
+
if (this._isDragging() && !this.open) this._cancelActiveDrag();
|
|
520
|
+
if (this._userOpenChange.consume()) this.emitOpenChange();
|
|
521
|
+
if (this._dragAwaitWriteback) {
|
|
522
|
+
this._cancelDragAwait();
|
|
523
|
+
const dialog = this.dialog;
|
|
524
|
+
if (dialog && !this.open) {
|
|
525
|
+
dialog.classList.remove("is-visible");
|
|
526
|
+
this._clearDragStyles(dialog);
|
|
527
|
+
} else if (dialog && this.open) this._settleRebound(dialog, 0, this._dragCloseDistance(dialog));
|
|
528
|
+
}
|
|
529
|
+
if (!this.open && !this._isDragging()) {
|
|
530
|
+
this._abortSettle();
|
|
531
|
+
const dialog = this.dialog;
|
|
532
|
+
if (dialog) this._clearDragStyles(dialog);
|
|
533
|
+
}
|
|
534
|
+
this._presence.sync(this.open);
|
|
535
|
+
if (this.open) {
|
|
536
|
+
window.getSelection()?.removeAllRanges();
|
|
537
|
+
this._nestedLayers.register();
|
|
538
|
+
const dialog = this.dialog;
|
|
539
|
+
if (dialog) {
|
|
540
|
+
this._handle?.release();
|
|
541
|
+
this._handle = this._overlay.claim(dialog, { ancestryFrom: this });
|
|
542
|
+
this._syncDragInert();
|
|
325
543
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
} else this._nestedLayers.unregister(), this._handle?.release(), this._handle = null;
|
|
544
|
+
} else {
|
|
545
|
+
this._nestedLayers.unregister();
|
|
546
|
+
this._handle?.release();
|
|
547
|
+
this._handle = null;
|
|
331
548
|
}
|
|
332
|
-
(e.has("open") || e.has("noScrollLock")) && this._syncScrollLock();
|
|
333
549
|
}
|
|
550
|
+
if (props.has("open") || props.has("noScrollLock")) this._syncScrollLock();
|
|
334
551
|
}
|
|
335
552
|
handleTransitionEnd(e) {
|
|
336
|
-
e.target
|
|
553
|
+
if (e.target !== e.currentTarget) return;
|
|
554
|
+
this._presence.handleTransitionEnd(e);
|
|
555
|
+
if (e.propertyName === "transform") this._finishSettle();
|
|
556
|
+
}
|
|
557
|
+
_isNestedDialogEvent(e) {
|
|
558
|
+
const path = e.composedPath();
|
|
559
|
+
const ownDialogIndex = path.indexOf(e.currentTarget);
|
|
560
|
+
return ownDialogIndex > 0 && path.slice(0, ownDialogIndex).some((node) => node instanceof HTMLDialogElement);
|
|
337
561
|
}
|
|
338
562
|
handleKeydown(e) {
|
|
339
|
-
if (e.key
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
563
|
+
if (e.key === "Tab") {
|
|
564
|
+
if (e.defaultPrevented || this._isNestedDialogEvent(e)) return;
|
|
565
|
+
const dialog = this.dialog;
|
|
566
|
+
if (dialog) trapTabKey(e, dialog);
|
|
567
|
+
return;
|
|
568
|
+
}
|
|
569
|
+
if (e.key !== "Escape") return;
|
|
570
|
+
if (e.defaultPrevented) return;
|
|
571
|
+
if (this._isNestedDialogEvent(e)) return;
|
|
572
|
+
if (this._isDragging()) {
|
|
573
|
+
e.preventDefault();
|
|
574
|
+
return;
|
|
347
575
|
}
|
|
576
|
+
e.preventDefault();
|
|
577
|
+
this._closeFromUser();
|
|
348
578
|
}
|
|
349
579
|
show() {
|
|
350
|
-
this.open
|
|
580
|
+
if (this.open) return;
|
|
581
|
+
this.open = true;
|
|
351
582
|
}
|
|
352
583
|
close() {
|
|
353
|
-
this.open
|
|
584
|
+
if (!this.open) return;
|
|
585
|
+
this.open = false;
|
|
354
586
|
}
|
|
355
587
|
handleCancel(e) {
|
|
356
|
-
e.preventDefault()
|
|
588
|
+
e.preventDefault();
|
|
589
|
+
this._closeFromUser();
|
|
357
590
|
}
|
|
358
591
|
handleNativeClose() {
|
|
359
592
|
if (!this.open) {
|
|
360
593
|
this._presence.handleNativeClose();
|
|
361
594
|
return;
|
|
362
595
|
}
|
|
363
|
-
if (
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
this._userOpenChange.mark(), this.open = !1;
|
|
596
|
+
if (this._presence.handleNativeClose()) return;
|
|
597
|
+
if (this._dragAwaitWriteback) {
|
|
598
|
+
this._cancelDragAwait();
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
if (this.controlled) {
|
|
602
|
+
this._presence.sync(true);
|
|
603
|
+
this.emitOpenChange(false);
|
|
604
|
+
return;
|
|
373
605
|
}
|
|
606
|
+
this._userOpenChange.mark();
|
|
607
|
+
this.open = false;
|
|
374
608
|
}
|
|
375
609
|
handleDialogPointerDown(e) {
|
|
376
610
|
this._backdropPress = {
|
|
@@ -380,26 +614,36 @@ var R = class extends _ {
|
|
|
380
614
|
};
|
|
381
615
|
}
|
|
382
616
|
handleBackdropClick(e) {
|
|
383
|
-
if (e.target !== e.currentTarget
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
this.
|
|
617
|
+
if (e.target !== e.currentTarget) return;
|
|
618
|
+
if (this.noBackdropClose) return;
|
|
619
|
+
if (this._isDragging()) return;
|
|
620
|
+
if (e.detail === 0) return;
|
|
621
|
+
const press = this._backdropPress;
|
|
622
|
+
this._backdropPress = null;
|
|
623
|
+
if (!press || !press.onMask) return;
|
|
624
|
+
if (Math.hypot(e.clientX - press.x, e.clientY - press.y) > BACKDROP_TAP_DISTANCE) return;
|
|
625
|
+
this._closeFromUser();
|
|
626
|
+
}
|
|
627
|
+
emitOpenChange(open = this.open) {
|
|
628
|
+
dispatchOpenChangeEvent(this, open);
|
|
629
|
+
}
|
|
630
|
+
_syncScrollLock(isOpen = this.open) {
|
|
631
|
+
this._scrollLock.sync(isOpen && !this.noScrollLock);
|
|
392
632
|
}
|
|
393
633
|
render() {
|
|
394
|
-
|
|
395
|
-
|
|
634
|
+
const showHeader = this._hasHeaderSlot || !!this.heading;
|
|
635
|
+
const dialogLabel = this.ariaDialogLabel.trim();
|
|
636
|
+
const dialogLabelledBy = !dialogLabel && !this.headless && showHeader ? "wui-drawer-heading" : nothing;
|
|
637
|
+
const needsEdgeBand = this.placement === "top" || this.placement === "bottom";
|
|
638
|
+
const dragBar = this.draggable ? html`
|
|
639
|
+
${needsEdgeBand ? html`<div class="wui-drawer-drag-edge" @pointerdown=${this._handleDragPointerDown}></div>` : nothing}
|
|
396
640
|
<div class="wui-drawer-drag-zone" @pointerdown=${this._handleDragPointerDown}></div>
|
|
397
641
|
<div class="wui-drawer-drag-bar"></div>
|
|
398
|
-
` :
|
|
399
|
-
return
|
|
642
|
+
` : nothing;
|
|
643
|
+
return html`
|
|
400
644
|
<dialog
|
|
401
|
-
aria-label=${
|
|
402
|
-
aria-labelledby=${
|
|
645
|
+
aria-label=${dialogLabel || nothing}
|
|
646
|
+
aria-labelledby=${dialogLabelledBy}
|
|
403
647
|
@cancel=${this.handleCancel}
|
|
404
648
|
@close=${this.handleNativeClose}
|
|
405
649
|
@click=${this.handleBackdropClick}
|
|
@@ -407,16 +651,16 @@ var R = class extends _ {
|
|
|
407
651
|
@keydown=${this.handleKeydown}
|
|
408
652
|
@transitionend=${this.handleTransitionEnd}
|
|
409
653
|
>
|
|
410
|
-
${this.headless ?
|
|
654
|
+
${this.headless ? html`<slot></slot>${dragBar}` : html`
|
|
411
655
|
<div class="wui-drawer-body wui-glass">
|
|
412
656
|
<div
|
|
413
657
|
class="wui-drawer-header"
|
|
414
658
|
id="wui-drawer-heading"
|
|
415
|
-
?hidden=${!
|
|
659
|
+
?hidden=${!showHeader}
|
|
416
660
|
@pointerdown=${this._handleSectionDragPointerDown}
|
|
417
661
|
>
|
|
418
662
|
<slot name="header" @slotchange=${this.handleHeaderSlotChange}>
|
|
419
|
-
${this.heading ?
|
|
663
|
+
${this.heading ? html`<span class="wui-drawer-heading">${this.heading}</span>` : nothing}
|
|
420
664
|
</slot>
|
|
421
665
|
</div>
|
|
422
666
|
<div class="wui-drawer-content wui-scroll">
|
|
@@ -430,55 +674,72 @@ var R = class extends _ {
|
|
|
430
674
|
<slot name="footer" @slotchange=${this.handleFooterSlotChange}></slot>
|
|
431
675
|
</div>
|
|
432
676
|
</div>
|
|
433
|
-
${this.closable ?
|
|
677
|
+
${this.closable ? html`
|
|
434
678
|
<web-ui-button
|
|
435
679
|
class="wui-drawer-close"
|
|
436
680
|
@click=${this._closeFromUser}
|
|
437
|
-
aria-label
|
|
681
|
+
aria-label=${resolveBuiltinLabel("close", this.ariaCloseLabel)}
|
|
438
682
|
variant="secondary"
|
|
439
683
|
icon
|
|
440
684
|
size="26"
|
|
441
685
|
>
|
|
442
|
-
<web-ui-icon size="14" .icon=${
|
|
686
|
+
<web-ui-icon size="14" .icon=${ooui_close_default}></web-ui-icon>
|
|
443
687
|
</web-ui-button>
|
|
444
|
-
` :
|
|
445
|
-
${
|
|
688
|
+
` : nothing}
|
|
689
|
+
${dragBar}
|
|
446
690
|
`}
|
|
447
691
|
</dialog>
|
|
448
692
|
`;
|
|
449
693
|
}
|
|
450
694
|
};
|
|
451
|
-
|
|
695
|
+
__decorate([property({
|
|
452
696
|
type: Boolean,
|
|
453
|
-
reflect:
|
|
454
|
-
})],
|
|
697
|
+
reflect: true
|
|
698
|
+
})], WebUiDrawer.prototype, "open", void 0);
|
|
699
|
+
__decorate([property({
|
|
455
700
|
type: Boolean,
|
|
456
|
-
reflect:
|
|
701
|
+
reflect: true,
|
|
457
702
|
attribute: "no-scroll-lock"
|
|
458
|
-
})],
|
|
703
|
+
})], WebUiDrawer.prototype, "noScrollLock", void 0);
|
|
704
|
+
__decorate([property({
|
|
459
705
|
type: Boolean,
|
|
460
|
-
reflect:
|
|
706
|
+
reflect: true,
|
|
461
707
|
attribute: "no-backdrop-close"
|
|
462
|
-
})],
|
|
708
|
+
})], WebUiDrawer.prototype, "noBackdropClose", void 0);
|
|
709
|
+
__decorate([property({
|
|
463
710
|
type: Boolean,
|
|
464
|
-
reflect:
|
|
465
|
-
})],
|
|
711
|
+
reflect: true
|
|
712
|
+
})], WebUiDrawer.prototype, "controlled", void 0);
|
|
713
|
+
__decorate([property({
|
|
466
714
|
type: String,
|
|
467
|
-
reflect:
|
|
468
|
-
})],
|
|
715
|
+
reflect: true
|
|
716
|
+
})], WebUiDrawer.prototype, "placement", null);
|
|
717
|
+
__decorate([property({ type: String })], WebUiDrawer.prototype, "heading", void 0);
|
|
718
|
+
__decorate([property({
|
|
469
719
|
type: Boolean,
|
|
470
|
-
reflect:
|
|
471
|
-
})],
|
|
720
|
+
reflect: true
|
|
721
|
+
})], WebUiDrawer.prototype, "closable", void 0);
|
|
722
|
+
__decorate([property({
|
|
472
723
|
type: Boolean,
|
|
473
|
-
reflect:
|
|
474
|
-
})],
|
|
724
|
+
reflect: true
|
|
725
|
+
})], WebUiDrawer.prototype, "headless", void 0);
|
|
726
|
+
__decorate([property({
|
|
727
|
+
type: String,
|
|
728
|
+
attribute: "aria-dialog-label"
|
|
729
|
+
})], WebUiDrawer.prototype, "ariaDialogLabel", void 0);
|
|
730
|
+
__decorate([property({
|
|
475
731
|
type: String,
|
|
476
732
|
attribute: "dialog-label"
|
|
477
|
-
})],
|
|
733
|
+
})], WebUiDrawer.prototype, "dialogLabel", null);
|
|
734
|
+
__decorate([property({
|
|
735
|
+
type: String,
|
|
736
|
+
attribute: "aria-close-label"
|
|
737
|
+
})], WebUiDrawer.prototype, "ariaCloseLabel", void 0);
|
|
738
|
+
__decorate([property({
|
|
478
739
|
type: Boolean,
|
|
479
|
-
reflect:
|
|
480
|
-
})],
|
|
481
|
-
|
|
482
|
-
export {
|
|
740
|
+
reflect: true
|
|
741
|
+
})], WebUiDrawer.prototype, "draggable", void 0);
|
|
742
|
+
WebUiDrawer = __decorate([customElement("web-ui-drawer")], WebUiDrawer);
|
|
743
|
+
export { WebUiDrawer };
|
|
483
744
|
|
|
484
745
|
//# sourceMappingURL=index.js.map
|