@vielzeug/refine 1.1.3 → 1.3.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/dist/accordion-item.cjs +4 -4
- package/dist/accordion-item.cjs.map +1 -1
- package/dist/accordion-item.js +41 -41
- package/dist/accordion-item.js.map +1 -1
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.cjs.map +1 -1
- package/dist/accordion.js +21 -21
- package/dist/accordion.js.map +1 -1
- package/dist/alert.cjs +5 -5
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.js +21 -21
- package/dist/alert.js.map +1 -1
- package/dist/async.cjs +10 -10
- package/dist/async.cjs.map +1 -1
- package/dist/async.js +27 -27
- package/dist/async.js.map +1 -1
- package/dist/avatar.cjs +2 -2
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js +30 -30
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.js +1 -1
- package/dist/box.cjs +1 -1
- package/dist/box.cjs.map +1 -1
- package/dist/box.js +1 -1
- package/dist/breadcrumb.cjs +2 -2
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +20 -20
- package/dist/breadcrumb.js.map +1 -1
- package/dist/button-group.cjs +1 -1
- package/dist/button-group.cjs.map +1 -1
- package/dist/button-group.js +7 -7
- package/dist/button-group.js.map +1 -1
- package/dist/button.cjs +6 -6
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +44 -42
- package/dist/button.js.map +1 -1
- package/dist/calendar.cjs +28 -28
- package/dist/calendar.cjs.map +1 -1
- package/dist/calendar.js +93 -91
- package/dist/calendar.js.map +1 -1
- package/dist/card.cjs +6 -6
- package/dist/card.cjs.map +1 -1
- package/dist/card.js +35 -34
- package/dist/card.js.map +1 -1
- package/dist/carousel.cjs +19 -19
- package/dist/carousel.cjs.map +1 -1
- package/dist/carousel.js +111 -111
- package/dist/carousel.js.map +1 -1
- package/dist/chat-message.cjs +47 -0
- package/dist/chat-message.cjs.map +1 -0
- package/dist/chat-message.js +121 -0
- package/dist/chat-message.js.map +1 -0
- package/dist/checkbox-group.cjs +9 -9
- package/dist/checkbox-group.cjs.map +1 -1
- package/dist/checkbox-group.js +54 -52
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.cjs +4 -4
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.js +39 -37
- package/dist/checkbox.js.map +1 -1
- package/dist/chip.cjs +14 -14
- package/dist/chip.cjs.map +1 -1
- package/dist/chip.js +43 -43
- package/dist/chip.js.map +1 -1
- package/dist/code-window.cjs +1 -1
- package/dist/code-window.cjs.map +1 -1
- package/dist/code-window.js +1 -1
- package/dist/combobox.cjs +25 -25
- package/dist/combobox.cjs.map +1 -1
- package/dist/combobox.js +181 -179
- package/dist/combobox.js.map +1 -1
- package/dist/command-palette.cjs +62 -0
- package/dist/command-palette.cjs.map +1 -0
- package/dist/command-palette.js +179 -0
- package/dist/command-palette.js.map +1 -0
- package/dist/content/avatar/{avatar-group.css?inline.cjs → avatar-group.css.cjs} +1 -1
- package/dist/content/avatar/avatar-group.css.cjs.map +1 -0
- package/dist/content/avatar/{avatar-group.css?inline.js → avatar-group.css.js} +1 -1
- package/dist/content/avatar/avatar-group.css.js.map +1 -0
- package/dist/content/avatar/{avatar.css?inline.cjs → avatar.css.cjs} +1 -1
- package/dist/content/avatar/avatar.css.cjs.map +1 -0
- package/dist/content/avatar/{avatar.css?inline.js → avatar.css.js} +1 -1
- package/dist/content/avatar/avatar.css.js.map +1 -0
- package/dist/content/breadcrumb/{breadcrumb-item.css?inline.cjs → breadcrumb-item.css.cjs} +1 -1
- package/dist/content/breadcrumb/breadcrumb-item.css.cjs.map +1 -0
- package/dist/content/breadcrumb/{breadcrumb-item.css?inline.js → breadcrumb-item.css.js} +1 -1
- package/dist/content/breadcrumb/breadcrumb-item.css.js.map +1 -0
- package/dist/content/breadcrumb/{breadcrumb.css?inline.cjs → breadcrumb.css.cjs} +1 -1
- package/dist/content/breadcrumb/breadcrumb.css.cjs.map +1 -0
- package/dist/content/breadcrumb/{breadcrumb.css?inline.js → breadcrumb.css.js} +1 -1
- package/dist/content/breadcrumb/breadcrumb.css.js.map +1 -0
- package/dist/content/card/{card.css?inline.cjs → card.css.cjs} +1 -1
- package/dist/content/card/card.css.cjs.map +1 -0
- package/dist/content/card/{card.css?inline.js → card.css.js} +1 -1
- package/dist/content/card/card.css.js.map +1 -0
- package/dist/content/carousel/carousel-slide.cjs +1 -1
- package/dist/content/carousel/carousel-slide.cjs.map +1 -1
- package/dist/content/carousel/{carousel-slide.css?inline.cjs → carousel-slide.css.cjs} +1 -1
- package/dist/content/carousel/carousel-slide.css.cjs.map +1 -0
- package/dist/content/carousel/{carousel-slide.css?inline.js → carousel-slide.css.js} +1 -1
- package/dist/content/carousel/carousel-slide.css.js.map +1 -0
- package/dist/content/carousel/carousel-slide.js +7 -7
- package/dist/content/carousel/carousel-slide.js.map +1 -1
- package/dist/content/carousel/{carousel.css?inline.cjs → carousel.css.cjs} +1 -1
- package/dist/content/carousel/carousel.css.cjs.map +1 -0
- package/dist/content/carousel/{carousel.css?inline.js → carousel.css.js} +1 -1
- package/dist/content/carousel/carousel.css.js.map +1 -0
- package/dist/content/chat-message/chat-message.css.cjs +2 -0
- package/dist/content/chat-message/chat-message.css.cjs.map +1 -0
- package/dist/content/chat-message/chat-message.css.js +6 -0
- package/dist/content/chat-message/chat-message.css.js.map +1 -0
- package/dist/content/chat-message/chat-message.d.ts +87 -0
- package/dist/content/chat-message/chat-message.d.ts.map +1 -0
- package/dist/content/code-window/{code-window.css?inline.cjs → code-window.css.cjs} +1 -1
- package/dist/content/code-window/code-window.css.cjs.map +1 -0
- package/dist/content/code-window/{code-window.css?inline.js → code-window.css.js} +1 -1
- package/dist/content/code-window/code-window.css.js.map +1 -0
- package/dist/content/copy-command/{copy-command.css?inline.cjs → copy-command.css.cjs} +1 -1
- package/dist/content/copy-command/copy-command.css.cjs.map +1 -0
- package/dist/content/copy-command/{copy-command.css?inline.js → copy-command.css.js} +1 -1
- package/dist/content/copy-command/copy-command.css.js.map +1 -0
- package/dist/content/icon/{icon.css?inline.cjs → icon.css.cjs} +1 -1
- package/dist/content/icon/icon.css.cjs.map +1 -0
- package/dist/content/icon/{icon.css?inline.js → icon.css.js} +1 -1
- package/dist/content/icon/icon.css.js.map +1 -0
- package/dist/content/index.d.ts +2 -0
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/pagination/{pagination.css?inline.cjs → pagination.css.cjs} +1 -1
- package/dist/content/pagination/pagination.css.cjs.map +1 -0
- package/dist/content/pagination/{pagination.css?inline.js → pagination.css.js} +1 -1
- package/dist/content/pagination/pagination.css.js.map +1 -0
- package/dist/content/separator/{separator.css?inline.cjs → separator.css.cjs} +1 -1
- package/dist/content/separator/separator.css.cjs.map +1 -0
- package/dist/content/separator/{separator.css?inline.js → separator.css.js} +1 -1
- package/dist/content/separator/separator.css.js.map +1 -0
- package/dist/content/table/{table.css?inline.cjs → table.css.cjs} +1 -1
- package/dist/content/table/table.css.cjs.map +1 -0
- package/dist/content/table/{table.css?inline.js → table.css.js} +1 -1
- package/dist/content/table/table.css.js.map +1 -0
- package/dist/content/text/{text.css?inline.cjs → text.css.cjs} +1 -1
- package/dist/content/text/text.css.cjs.map +1 -0
- package/dist/content/text/{text.css?inline.js → text.css.js} +1 -1
- package/dist/content/text/text.css.js.map +1 -0
- package/dist/copy-command.cjs +5 -5
- package/dist/copy-command.cjs.map +1 -1
- package/dist/copy-command.js +25 -25
- package/dist/copy-command.js.map +1 -1
- package/dist/custom-elements.json +4716 -3980
- package/dist/datagrid.cjs +109 -109
- package/dist/datagrid.cjs.map +1 -1
- package/dist/datagrid.js +194 -194
- package/dist/datagrid.js.map +1 -1
- package/dist/date-picker.cjs +40 -40
- package/dist/date-picker.cjs.map +1 -1
- package/dist/date-picker.js +116 -114
- package/dist/date-picker.js.map +1 -1
- package/dist/dialog.cjs +5 -5
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +28 -28
- package/dist/dialog.js.map +1 -1
- package/dist/disclosure/accordion/{accordion.css?inline.cjs → accordion.css.cjs} +1 -1
- package/dist/disclosure/accordion/accordion.css.cjs.map +1 -0
- package/dist/disclosure/accordion/{accordion.css?inline.js → accordion.css.js} +1 -1
- package/dist/disclosure/accordion/accordion.css.js.map +1 -0
- package/dist/disclosure/accordion-item/{accordion-item.css?inline.cjs → accordion-item.css.cjs} +1 -1
- package/dist/disclosure/accordion-item/accordion-item.css.cjs.map +1 -0
- package/dist/disclosure/accordion-item/{accordion-item.css?inline.js → accordion-item.css.js} +1 -1
- package/dist/disclosure/accordion-item/accordion-item.css.js.map +1 -0
- package/dist/disclosure/tab-item/{tab-item.css?inline.cjs → tab-item.css.cjs} +1 -1
- package/dist/disclosure/tab-item/tab-item.css.cjs.map +1 -0
- package/dist/disclosure/tab-item/{tab-item.css?inline.js → tab-item.css.js} +1 -1
- package/dist/disclosure/tab-item/tab-item.css.js.map +1 -0
- package/dist/disclosure/tab-panel/{tab-panel.css?inline.cjs → tab-panel.css.cjs} +1 -1
- package/dist/disclosure/tab-panel/tab-panel.css.cjs.map +1 -0
- package/dist/disclosure/tab-panel/{tab-panel.css?inline.js → tab-panel.css.js} +1 -1
- package/dist/disclosure/tab-panel/tab-panel.css.js.map +1 -0
- package/dist/disclosure/tabs/{tabs.css?inline.cjs → tabs.css.cjs} +1 -1
- package/dist/disclosure/tabs/tabs.css.cjs.map +1 -0
- package/dist/disclosure/tabs/{tabs.css?inline.js → tabs.css.js} +1 -1
- package/dist/disclosure/tabs/tabs.css.js.map +1 -0
- package/dist/drawer.cjs +9 -9
- package/dist/drawer.cjs.map +1 -1
- package/dist/drawer.js +80 -80
- package/dist/drawer.js.map +1 -1
- package/dist/feedback/alert/{alert.css?inline.cjs → alert.css.cjs} +1 -1
- package/dist/feedback/alert/alert.css.cjs.map +1 -0
- package/dist/feedback/alert/{alert.css?inline.js → alert.css.js} +1 -1
- package/dist/feedback/alert/alert.css.js.map +1 -0
- package/dist/feedback/async/{async.css?inline.cjs → async.css.cjs} +1 -1
- package/dist/feedback/async/async.css.cjs.map +1 -0
- package/dist/feedback/async/{async.css?inline.js → async.css.js} +1 -1
- package/dist/feedback/async/async.css.js.map +1 -0
- package/dist/feedback/badge/{badge.css?inline.cjs → badge.css.cjs} +1 -1
- package/dist/feedback/badge/badge.css.cjs.map +1 -0
- package/dist/feedback/badge/{badge.css?inline.js → badge.css.js} +1 -1
- package/dist/feedback/badge/badge.css.js.map +1 -0
- package/dist/feedback/chip/{chip.css?inline.cjs → chip.css.cjs} +1 -1
- package/dist/feedback/chip/chip.css.cjs.map +1 -0
- package/dist/feedback/chip/{chip.css?inline.js → chip.css.js} +1 -1
- package/dist/feedback/chip/chip.css.js.map +1 -0
- package/dist/feedback/index.d.ts +2 -0
- package/dist/feedback/index.d.ts.map +1 -1
- package/dist/feedback/password-strength/{password-strength.css?inline.cjs → password-strength.css.cjs} +1 -1
- package/dist/feedback/password-strength/password-strength.css.cjs.map +1 -0
- package/dist/feedback/password-strength/{password-strength.css?inline.js → password-strength.css.js} +1 -1
- package/dist/feedback/password-strength/password-strength.css.js.map +1 -0
- package/dist/feedback/progress/{progress.css?inline.cjs → progress.css.cjs} +1 -1
- package/dist/feedback/progress/progress.css.cjs.map +1 -0
- package/dist/feedback/progress/{progress.css?inline.js → progress.css.js} +1 -1
- package/dist/feedback/progress/progress.css.js.map +1 -0
- package/dist/feedback/skeleton/{skeleton.css?inline.cjs → skeleton.css.cjs} +1 -1
- package/dist/feedback/skeleton/skeleton.css.cjs.map +1 -0
- package/dist/feedback/skeleton/{skeleton.css?inline.js → skeleton.css.js} +1 -1
- package/dist/feedback/skeleton/skeleton.css.js.map +1 -0
- package/dist/feedback/toast/{toast.css?inline.cjs → toast.css.cjs} +1 -1
- package/dist/feedback/toast/toast.css.cjs.map +1 -0
- package/dist/feedback/toast/{toast.css?inline.js → toast.css.js} +1 -1
- package/dist/feedback/toast/toast.css.js.map +1 -0
- package/dist/feedback/toast/toast.d.ts.map +1 -1
- package/dist/feedback/typing-indicator/typing-indicator.css.cjs +2 -0
- package/dist/feedback/typing-indicator/typing-indicator.css.cjs.map +1 -0
- package/dist/feedback/typing-indicator/typing-indicator.css.js +6 -0
- package/dist/feedback/typing-indicator/typing-indicator.css.js.map +1 -0
- package/dist/feedback/typing-indicator/typing-indicator.d.ts +42 -0
- package/dist/feedback/typing-indicator/typing-indicator.d.ts.map +1 -0
- package/dist/file-input.cjs +56 -34
- package/dist/file-input.cjs.map +1 -1
- package/dist/file-input.js +143 -104
- package/dist/file-input.js.map +1 -1
- package/dist/form.cjs +3 -3
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +28 -25
- package/dist/form.js.map +1 -1
- package/dist/grid-item.cjs +1 -1
- package/dist/grid-item.cjs.map +1 -1
- package/dist/grid-item.js +19 -19
- package/dist/grid-item.js.map +1 -1
- package/dist/grid.cjs +1 -1
- package/dist/grid.cjs.map +1 -1
- package/dist/grid.js +48 -48
- package/dist/grid.js.map +1 -1
- package/dist/icon.cjs +1 -1
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.js +26 -26
- package/dist/icon.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +52 -49
- package/dist/input.cjs +25 -25
- package/dist/input.cjs.map +1 -1
- package/dist/input.js +75 -73
- package/dist/input.js.map +1 -1
- package/dist/inputs/button/{button.css?inline.cjs → button.css.cjs} +1 -1
- package/dist/inputs/button/button.css.cjs.map +1 -0
- package/dist/inputs/button/{button.css?inline.js → button.css.js} +1 -1
- package/dist/inputs/button/button.css.js.map +1 -0
- package/dist/inputs/button/button.d.ts.map +1 -1
- package/dist/inputs/button-group/{button-group.css?inline.cjs → button-group.css.cjs} +1 -1
- package/dist/inputs/button-group/button-group.css.cjs.map +1 -0
- package/dist/inputs/button-group/{button-group.css?inline.js → button-group.css.js} +1 -1
- package/dist/inputs/button-group/button-group.css.js.map +1 -0
- package/dist/inputs/calendar/{calendar.css?inline.cjs → calendar.css.cjs} +1 -1
- package/dist/inputs/calendar/calendar.css.cjs.map +1 -0
- package/dist/inputs/calendar/{calendar.css?inline.js → calendar.css.js} +1 -1
- package/dist/inputs/calendar/calendar.css.js.map +1 -0
- package/dist/inputs/calendar/calendar.d.ts.map +1 -1
- package/dist/inputs/checkbox/{checkbox.css?inline.cjs → checkbox.css.cjs} +1 -1
- package/dist/inputs/checkbox/checkbox.css.cjs.map +1 -0
- package/dist/inputs/checkbox/{checkbox.css?inline.js → checkbox.css.js} +1 -1
- package/dist/inputs/checkbox/checkbox.css.js.map +1 -0
- package/dist/inputs/checkbox/checkbox.d.ts.map +1 -1
- package/dist/inputs/checkbox-group/{checkbox-group.css?inline.cjs → checkbox-group.css.cjs} +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.cjs.map +1 -0
- package/dist/inputs/checkbox-group/{checkbox-group.css?inline.js → checkbox-group.css.js} +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.js.map +1 -0
- package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/inputs/combobox/{combobox.css?inline.cjs → combobox.css.cjs} +1 -1
- package/dist/inputs/combobox/combobox.css.cjs.map +1 -0
- package/dist/inputs/combobox/{combobox.css?inline.js → combobox.css.js} +1 -1
- package/dist/inputs/combobox/combobox.css.js.map +1 -0
- package/dist/inputs/combobox/combobox.d.ts.map +1 -1
- package/dist/inputs/datagrid/{datagrid.css?inline.cjs → datagrid.css.cjs} +1 -1
- package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -0
- package/dist/inputs/datagrid/{datagrid.css?inline.js → datagrid.css.js} +1 -1
- package/dist/inputs/datagrid/datagrid.css.js.map +1 -0
- package/dist/inputs/date-picker/{date-picker.css?inline.cjs → date-picker.css.cjs} +1 -1
- package/dist/inputs/date-picker/date-picker.css.cjs.map +1 -0
- package/dist/inputs/date-picker/{date-picker.css?inline.js → date-picker.css.js} +1 -1
- package/dist/inputs/date-picker/date-picker.css.js.map +1 -0
- package/dist/inputs/date-picker/date-picker.d.ts.map +1 -1
- package/dist/inputs/file-input/{file-input.css?inline.cjs → file-input.css.cjs} +2 -2
- package/dist/inputs/file-input/file-input.css.cjs.map +1 -0
- package/dist/inputs/file-input/{file-input.css?inline.js → file-input.css.js} +2 -2
- package/dist/inputs/file-input/file-input.css.js.map +1 -0
- package/dist/inputs/file-input/file-input.d.ts +9 -0
- package/dist/inputs/file-input/file-input.d.ts.map +1 -1
- package/dist/inputs/form/{form.css?inline.cjs → form.css.cjs} +1 -1
- package/dist/inputs/form/form.css.cjs.map +1 -0
- package/dist/inputs/form/{form.css?inline.js → form.css.js} +1 -1
- package/dist/inputs/form/form.css.js.map +1 -0
- package/dist/inputs/input/{input.css?inline.cjs → input.css.cjs} +1 -1
- package/dist/inputs/input/input.css.cjs.map +1 -0
- package/dist/inputs/input/{input.css?inline.js → input.css.js} +1 -1
- package/dist/inputs/input/input.css.js.map +1 -0
- package/dist/inputs/input/input.d.ts.map +1 -1
- package/dist/inputs/number-input/{number-input.css?inline.cjs → number-input.css.cjs} +1 -1
- package/dist/inputs/number-input/number-input.css.cjs.map +1 -0
- package/dist/inputs/number-input/{number-input.css?inline.js → number-input.css.js} +1 -1
- package/dist/inputs/number-input/number-input.css.js.map +1 -0
- package/dist/inputs/otp-input/{otp-input.css?inline.cjs → otp-input.css.cjs} +1 -1
- package/dist/inputs/otp-input/otp-input.css.cjs.map +1 -0
- package/dist/inputs/otp-input/{otp-input.css?inline.js → otp-input.css.js} +1 -1
- package/dist/inputs/otp-input/otp-input.css.js.map +1 -0
- package/dist/inputs/otp-input/otp-input.d.ts.map +1 -1
- package/dist/inputs/radio/{radio.css?inline.cjs → radio.css.cjs} +1 -1
- package/dist/inputs/radio/radio.css.cjs.map +1 -0
- package/dist/inputs/radio/{radio.css?inline.js → radio.css.js} +1 -1
- package/dist/inputs/radio/radio.css.js.map +1 -0
- package/dist/inputs/radio/radio.d.ts.map +1 -1
- package/dist/inputs/radio-group/{radio-group.css?inline.cjs → radio-group.css.cjs} +1 -1
- package/dist/inputs/radio-group/radio-group.css.cjs.map +1 -0
- package/dist/inputs/radio-group/{radio-group.css?inline.js → radio-group.css.js} +1 -1
- package/dist/inputs/radio-group/radio-group.css.js.map +1 -0
- package/dist/inputs/radio-group/radio-group.d.ts.map +1 -1
- package/dist/inputs/rating/{rating.css?inline.cjs → rating.css.cjs} +1 -1
- package/dist/inputs/rating/rating.css.cjs.map +1 -0
- package/dist/inputs/rating/{rating.css?inline.js → rating.css.js} +1 -1
- package/dist/inputs/rating/rating.css.js.map +1 -0
- package/dist/inputs/rating/rating.d.ts.map +1 -1
- package/dist/inputs/select/{select.css?inline.cjs → select.css.cjs} +1 -1
- package/dist/inputs/select/select.css.cjs.map +1 -0
- package/dist/inputs/select/{select.css?inline.js → select.css.js} +1 -1
- package/dist/inputs/select/select.css.js.map +1 -0
- package/dist/inputs/select/select.d.ts.map +1 -1
- package/dist/inputs/shared/field-binding.cjs +1 -1
- package/dist/inputs/shared/field-binding.cjs.map +1 -1
- package/dist/inputs/shared/field-binding.d.ts +1 -2
- package/dist/inputs/shared/field-binding.d.ts.map +1 -1
- package/dist/inputs/shared/field-binding.js +3 -2
- package/dist/inputs/shared/field-binding.js.map +1 -1
- package/dist/inputs/shared/form-context.cjs +1 -1
- package/dist/inputs/shared/form-context.cjs.map +1 -1
- package/dist/inputs/shared/form-context.d.ts +4 -4
- package/dist/inputs/shared/form-context.d.ts.map +1 -1
- package/dist/inputs/shared/form-context.js +10 -10
- package/dist/inputs/shared/form-context.js.map +1 -1
- package/dist/inputs/slider/{slider.css?inline.cjs → slider.css.cjs} +1 -1
- package/dist/inputs/slider/slider.css.cjs.map +1 -0
- package/dist/inputs/slider/{slider.css?inline.js → slider.css.js} +1 -1
- package/dist/inputs/slider/slider.css.js.map +1 -0
- package/dist/inputs/slider/slider.d.ts.map +1 -1
- package/dist/inputs/switch/{switch.css?inline.cjs → switch.css.cjs} +1 -1
- package/dist/inputs/switch/switch.css.cjs.map +1 -0
- package/dist/inputs/switch/{switch.css?inline.js → switch.css.js} +1 -1
- package/dist/inputs/switch/switch.css.js.map +1 -0
- package/dist/inputs/switch/switch.d.ts.map +1 -1
- package/dist/inputs/textarea/{textarea.css?inline.cjs → textarea.css.cjs} +1 -1
- package/dist/inputs/textarea/textarea.css.cjs.map +1 -0
- package/dist/inputs/textarea/{textarea.css?inline.js → textarea.css.js} +1 -1
- package/dist/inputs/textarea/textarea.css.js.map +1 -0
- package/dist/inputs/textarea/textarea.d.ts.map +1 -1
- package/dist/inputs/time-picker/{time-picker.css?inline.cjs → time-picker.css.cjs} +1 -1
- package/dist/inputs/time-picker/time-picker.css.cjs.map +1 -0
- package/dist/inputs/time-picker/{time-picker.css?inline.js → time-picker.css.js} +1 -1
- package/dist/inputs/time-picker/time-picker.css.js.map +1 -0
- package/dist/inputs/time-picker/time-picker.d.ts.map +1 -1
- package/dist/keymap/dist/_dev.cjs +2 -0
- package/dist/keymap/dist/_dev.cjs.map +1 -0
- package/dist/keymap/dist/_dev.js +4 -0
- package/dist/keymap/dist/_dev.js.map +1 -0
- package/dist/keymap/dist/format.cjs +1 -0
- package/dist/keymap/dist/format.js +1 -0
- package/dist/keymap/dist/index.cjs +1 -0
- package/dist/keymap/dist/index.js +4 -0
- package/dist/keymap/dist/keymap.cjs +2 -0
- package/dist/keymap/dist/keymap.cjs.map +1 -0
- package/dist/keymap/dist/keymap.js +221 -0
- package/dist/keymap/dist/keymap.js.map +1 -0
- package/dist/keymap/dist/layer.cjs +1 -0
- package/dist/keymap/dist/layer.js +1 -0
- package/dist/layout/box/{box.css?inline.cjs → box.css.cjs} +1 -1
- package/dist/layout/box/box.css.cjs.map +1 -0
- package/dist/layout/box/{box.css?inline.js → box.css.js} +1 -1
- package/dist/layout/box/box.css.js.map +1 -0
- package/dist/layout/grid/{grid.css?inline.cjs → grid.css.cjs} +1 -1
- package/dist/layout/grid/grid.css.cjs.map +1 -0
- package/dist/layout/grid/{grid.css?inline.js → grid.css.js} +1 -1
- package/dist/layout/grid/grid.css.js.map +1 -0
- package/dist/layout/grid-item/{grid-item.css?inline.cjs → grid-item.css.cjs} +1 -1
- package/dist/layout/grid-item/grid-item.css.cjs.map +1 -0
- package/dist/layout/grid-item/{grid-item.css?inline.js → grid-item.css.js} +1 -1
- package/dist/layout/grid-item/grid-item.css.js.map +1 -0
- package/dist/layout/navbar/{navbar.css?inline.cjs → navbar.css.cjs} +1 -1
- package/dist/layout/navbar/navbar.css.cjs.map +1 -0
- package/dist/layout/navbar/{navbar.css?inline.js → navbar.css.js} +1 -1
- package/dist/layout/navbar/navbar.css.js.map +1 -0
- package/dist/layout/navbar/navbar.d.ts.map +1 -1
- package/dist/layout/sidebar/{sidebar-group.css?inline.cjs → sidebar-group.css.cjs} +1 -1
- package/dist/layout/sidebar/sidebar-group.css.cjs.map +1 -0
- package/dist/layout/sidebar/{sidebar-group.css?inline.js → sidebar-group.css.js} +1 -1
- package/dist/layout/sidebar/sidebar-group.css.js.map +1 -0
- package/dist/layout/sidebar/{sidebar-item.css?inline.cjs → sidebar-item.css.cjs} +1 -1
- package/dist/layout/sidebar/sidebar-item.css.cjs.map +1 -0
- package/dist/layout/sidebar/{sidebar-item.css?inline.js → sidebar-item.css.js} +1 -1
- package/dist/layout/sidebar/sidebar-item.css.js.map +1 -0
- package/dist/layout/sidebar/{sidebar.css?inline.cjs → sidebar.css.cjs} +1 -1
- package/dist/layout/sidebar/sidebar.css.cjs.map +1 -0
- package/dist/layout/sidebar/{sidebar.css?inline.js → sidebar.css.js} +1 -1
- package/dist/layout/sidebar/sidebar.css.js.map +1 -0
- package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
- package/dist/menu.cjs +5 -5
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +85 -85
- package/dist/menu.js.map +1 -1
- package/dist/navbar.cjs +15 -15
- package/dist/navbar.cjs.map +1 -1
- package/dist/navbar.js +127 -127
- package/dist/navbar.js.map +1 -1
- package/dist/number-input.cjs +11 -11
- package/dist/number-input.cjs.map +1 -1
- package/dist/number-input.js +69 -69
- package/dist/number-input.js.map +1 -1
- package/dist/ore/dist/_dev.cjs.map +1 -1
- package/dist/ore/dist/_dev.js.map +1 -1
- package/dist/ore/dist/base-element.cjs +1 -1
- package/dist/ore/dist/base-element.cjs.map +1 -1
- package/dist/ore/dist/base-element.js +37 -35
- package/dist/ore/dist/base-element.js.map +1 -1
- package/dist/ore/dist/context.cjs +1 -1
- package/dist/ore/dist/context.cjs.map +1 -1
- package/dist/ore/dist/context.js +6 -33
- package/dist/ore/dist/context.js.map +1 -1
- package/dist/ore/dist/define.cjs.map +1 -1
- package/dist/ore/dist/define.js.map +1 -1
- package/dist/ore/dist/directives/raw.cjs +1 -1
- package/dist/ore/dist/directives/raw.cjs.map +1 -1
- package/dist/ore/dist/directives/raw.js +20 -17
- package/dist/ore/dist/directives/raw.js.map +1 -1
- package/dist/ore/dist/directives/when.cjs +1 -1
- package/dist/ore/dist/directives/when.cjs.map +1 -1
- package/dist/ore/dist/directives/when.js +29 -24
- package/dist/ore/dist/directives/when.js.map +1 -1
- package/dist/ore/dist/errors.cjs +2 -2
- package/dist/ore/dist/errors.cjs.map +1 -1
- package/dist/ore/dist/errors.js +12 -3
- package/dist/ore/dist/errors.js.map +1 -1
- package/dist/ore/dist/forms/context.cjs +2 -0
- package/dist/ore/dist/forms/context.cjs.map +1 -0
- package/dist/ore/dist/forms/context.js +6 -0
- package/dist/ore/dist/forms/context.js.map +1 -0
- package/dist/ore/dist/forms/field.cjs +2 -0
- package/dist/ore/dist/forms/field.cjs.map +1 -0
- package/dist/ore/dist/forms/field.js +35 -0
- package/dist/ore/dist/forms/field.js.map +1 -0
- package/dist/ore/dist/forms.cjs +1 -0
- package/dist/ore/dist/forms.js +3 -0
- package/dist/ore/dist/props.cjs +1 -1
- package/dist/ore/dist/props.cjs.map +1 -1
- package/dist/ore/dist/props.js +29 -27
- package/dist/ore/dist/props.js.map +1 -1
- package/dist/ore/dist/runtime.cjs +1 -1
- package/dist/ore/dist/runtime.cjs.map +1 -1
- package/dist/ore/dist/runtime.js +13 -23
- package/dist/ore/dist/runtime.js.map +1 -1
- package/dist/ore/dist/testing/render-hook.cjs +1 -1
- package/dist/ore/dist/testing/render-hook.js +0 -1
- package/dist/ore/dist/utils/dom.cjs +1 -1
- package/dist/ore/dist/utils/dom.cjs.map +1 -1
- package/dist/ore/dist/utils/dom.js +2 -6
- package/dist/ore/dist/utils/dom.js.map +1 -1
- package/dist/otp-input.cjs +9 -9
- package/dist/otp-input.cjs.map +1 -1
- package/dist/otp-input.js +70 -68
- package/dist/otp-input.js.map +1 -1
- package/dist/overlay/command-palette/command-palette-items.cjs +2 -0
- package/dist/overlay/command-palette/command-palette-items.cjs.map +1 -0
- package/dist/overlay/command-palette/command-palette-items.d.ts +22 -0
- package/dist/overlay/command-palette/command-palette-items.d.ts.map +1 -0
- package/dist/overlay/command-palette/command-palette-items.js +55 -0
- package/dist/overlay/command-palette/command-palette-items.js.map +1 -0
- package/dist/overlay/command-palette/command-palette.css.cjs +2 -0
- package/dist/overlay/command-palette/command-palette.css.cjs.map +1 -0
- package/dist/overlay/command-palette/command-palette.css.js +6 -0
- package/dist/overlay/command-palette/command-palette.css.js.map +1 -0
- package/dist/overlay/command-palette/command-palette.d.ts +72 -0
- package/dist/overlay/command-palette/command-palette.d.ts.map +1 -0
- package/dist/overlay/command-palette/command-palette.types.d.ts +76 -0
- package/dist/overlay/command-palette/command-palette.types.d.ts.map +1 -0
- package/dist/overlay/dialog/{dialog.css?inline.cjs → dialog.css.cjs} +1 -1
- package/dist/overlay/dialog/dialog.css.cjs.map +1 -0
- package/dist/overlay/dialog/{dialog.css?inline.js → dialog.css.js} +1 -1
- package/dist/overlay/dialog/dialog.css.js.map +1 -0
- package/dist/overlay/drawer/{drawer.css?inline.cjs → drawer.css.cjs} +1 -1
- package/dist/overlay/drawer/drawer.css.cjs.map +1 -0
- package/dist/overlay/drawer/{drawer.css?inline.js → drawer.css.js} +1 -1
- package/dist/overlay/drawer/drawer.css.js.map +1 -0
- package/dist/overlay/drawer/drawer.d.ts.map +1 -1
- package/dist/overlay/index.d.ts +2 -0
- package/dist/overlay/index.d.ts.map +1 -1
- package/dist/overlay/menu/{menu-item.css?inline.cjs → menu-item.css.cjs} +1 -1
- package/dist/overlay/menu/menu-item.css.cjs.map +1 -0
- package/dist/overlay/menu/{menu-item.css?inline.js → menu-item.css.js} +1 -1
- package/dist/overlay/menu/menu-item.css.js.map +1 -0
- package/dist/overlay/menu/{menu-separator.css?inline.cjs → menu-separator.css.cjs} +1 -1
- package/dist/overlay/menu/menu-separator.css.cjs.map +1 -0
- package/dist/overlay/menu/{menu-separator.css?inline.js → menu-separator.css.js} +1 -1
- package/dist/overlay/menu/menu-separator.css.js.map +1 -0
- package/dist/overlay/menu/{menu.css?inline.cjs → menu.css.cjs} +1 -1
- package/dist/overlay/menu/menu.css.cjs.map +1 -0
- package/dist/overlay/menu/{menu.css?inline.js → menu.css.js} +1 -1
- package/dist/overlay/menu/menu.css.js.map +1 -0
- package/dist/overlay/menu/menu.d.ts.map +1 -1
- package/dist/overlay/popover/{popover.css?inline.cjs → popover.css.cjs} +1 -1
- package/dist/overlay/popover/popover.css.cjs.map +1 -0
- package/dist/overlay/popover/{popover.css?inline.js → popover.css.js} +1 -1
- package/dist/overlay/popover/popover.css.js.map +1 -0
- package/dist/overlay/popover/popover.d.ts.map +1 -1
- package/dist/overlay/tooltip/{tooltip.css?inline.cjs → tooltip.css.cjs} +1 -1
- package/dist/overlay/tooltip/tooltip.css.cjs.map +1 -0
- package/dist/overlay/tooltip/{tooltip.css?inline.js → tooltip.css.js} +1 -1
- package/dist/overlay/tooltip/tooltip.css.js.map +1 -0
- package/dist/pagination.cjs +12 -12
- package/dist/pagination.cjs.map +1 -1
- package/dist/pagination.js +39 -38
- package/dist/pagination.js.map +1 -1
- package/dist/password-strength.cjs +8 -8
- package/dist/password-strength.cjs.map +1 -1
- package/dist/password-strength.js +34 -34
- package/dist/password-strength.js.map +1 -1
- package/dist/popover.cjs +4 -4
- package/dist/popover.cjs.map +1 -1
- package/dist/popover.js +30 -30
- package/dist/popover.js.map +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.cjs.map +1 -1
- package/dist/progress.js +30 -30
- package/dist/progress.js.map +1 -1
- package/dist/radio-group.cjs +11 -11
- package/dist/radio-group.cjs.map +1 -1
- package/dist/radio-group.js +67 -63
- package/dist/radio-group.js.map +1 -1
- package/dist/radio.cjs +4 -4
- package/dist/radio.cjs.map +1 -1
- package/dist/radio.js +69 -67
- package/dist/radio.js.map +1 -1
- package/dist/rating.cjs +4 -4
- package/dist/rating.cjs.map +1 -1
- package/dist/rating.js +57 -55
- package/dist/rating.js.map +1 -1
- package/dist/refine.cjs +753 -620
- package/dist/refine.cjs.map +1 -1
- package/dist/refine.iife.js +742 -609
- package/dist/refine.iife.js.map +1 -1
- package/dist/refine.js +777 -644
- package/dist/refine.js.map +1 -1
- package/dist/select.cjs +37 -37
- package/dist/select.cjs.map +1 -1
- package/dist/select.js +130 -128
- package/dist/select.js.map +1 -1
- package/dist/separator.cjs +1 -1
- package/dist/separator.cjs.map +1 -1
- package/dist/separator.js +1 -1
- package/dist/sidebar.cjs +22 -22
- package/dist/sidebar.cjs.map +1 -1
- package/dist/sidebar.js +135 -135
- package/dist/sidebar.js.map +1 -1
- package/dist/skeleton.cjs +2 -2
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js +28 -28
- package/dist/skeleton.js.map +1 -1
- package/dist/slider.cjs +13 -13
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +142 -140
- package/dist/slider.js.map +1 -1
- package/dist/switch.cjs +4 -4
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +35 -33
- package/dist/switch.js.map +1 -1
- package/dist/tab-item.cjs +5 -5
- package/dist/tab-item.cjs.map +1 -1
- package/dist/tab-item.js +25 -25
- package/dist/tab-item.js.map +1 -1
- package/dist/tab-panel.cjs +6 -6
- package/dist/tab-panel.cjs.map +1 -1
- package/dist/tab-panel.js +24 -24
- package/dist/tab-panel.js.map +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +36 -35
- package/dist/table.js.map +1 -1
- package/dist/tabs.cjs +3 -3
- package/dist/tabs.cjs.map +1 -1
- package/dist/tabs.js +61 -61
- package/dist/tabs.js.map +1 -1
- package/dist/text.cjs +1 -1
- package/dist/text.cjs.map +1 -1
- package/dist/text.js +16 -16
- package/dist/text.js.map +1 -1
- package/dist/textarea.cjs +15 -15
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.js +67 -65
- package/dist/textarea.js.map +1 -1
- package/dist/time-picker.cjs +31 -31
- package/dist/time-picker.cjs.map +1 -1
- package/dist/time-picker.js +115 -113
- package/dist/time-picker.js.map +1 -1
- package/dist/toast.cjs +14 -14
- package/dist/toast.cjs.map +1 -1
- package/dist/toast.js +85 -85
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.cjs +5 -5
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +55 -55
- package/dist/tooltip.js.map +1 -1
- package/dist/typing-indicator.cjs +8 -0
- package/dist/typing-indicator.cjs.map +1 -0
- package/dist/typing-indicator.js +49 -0
- package/dist/typing-indicator.js.map +1 -0
- package/package.json +21 -2
- package/dist/content/avatar/avatar-group.css?inline.cjs.map +0 -1
- package/dist/content/avatar/avatar-group.css?inline.js.map +0 -1
- package/dist/content/avatar/avatar.css?inline.cjs.map +0 -1
- package/dist/content/avatar/avatar.css?inline.js.map +0 -1
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs.map +0 -1
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.js.map +0 -1
- package/dist/content/breadcrumb/breadcrumb.css?inline.cjs.map +0 -1
- package/dist/content/breadcrumb/breadcrumb.css?inline.js.map +0 -1
- package/dist/content/card/card.css?inline.cjs.map +0 -1
- package/dist/content/card/card.css?inline.js.map +0 -1
- package/dist/content/carousel/carousel-slide.css?inline.cjs.map +0 -1
- package/dist/content/carousel/carousel-slide.css?inline.js.map +0 -1
- package/dist/content/carousel/carousel.css?inline.cjs.map +0 -1
- package/dist/content/carousel/carousel.css?inline.js.map +0 -1
- package/dist/content/code-window/code-window.css?inline.cjs.map +0 -1
- package/dist/content/code-window/code-window.css?inline.js.map +0 -1
- package/dist/content/copy-command/copy-command.css?inline.cjs.map +0 -1
- package/dist/content/copy-command/copy-command.css?inline.js.map +0 -1
- package/dist/content/icon/icon.css?inline.cjs.map +0 -1
- package/dist/content/icon/icon.css?inline.js.map +0 -1
- package/dist/content/pagination/pagination.css?inline.cjs.map +0 -1
- package/dist/content/pagination/pagination.css?inline.js.map +0 -1
- package/dist/content/separator/separator.css?inline.cjs.map +0 -1
- package/dist/content/separator/separator.css?inline.js.map +0 -1
- package/dist/content/table/table.css?inline.cjs.map +0 -1
- package/dist/content/table/table.css?inline.js.map +0 -1
- package/dist/content/text/text.css?inline.cjs.map +0 -1
- package/dist/content/text/text.css?inline.js.map +0 -1
- package/dist/disclosure/accordion/accordion.css?inline.cjs.map +0 -1
- package/dist/disclosure/accordion/accordion.css?inline.js.map +0 -1
- package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs.map +0 -1
- package/dist/disclosure/accordion-item/accordion-item.css?inline.js.map +0 -1
- package/dist/disclosure/tab-item/tab-item.css?inline.cjs.map +0 -1
- package/dist/disclosure/tab-item/tab-item.css?inline.js.map +0 -1
- package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs.map +0 -1
- package/dist/disclosure/tab-panel/tab-panel.css?inline.js.map +0 -1
- package/dist/disclosure/tabs/tabs.css?inline.cjs.map +0 -1
- package/dist/disclosure/tabs/tabs.css?inline.js.map +0 -1
- package/dist/feedback/alert/alert.css?inline.cjs.map +0 -1
- package/dist/feedback/alert/alert.css?inline.js.map +0 -1
- package/dist/feedback/async/async.css?inline.cjs.map +0 -1
- package/dist/feedback/async/async.css?inline.js.map +0 -1
- package/dist/feedback/badge/badge.css?inline.cjs.map +0 -1
- package/dist/feedback/badge/badge.css?inline.js.map +0 -1
- package/dist/feedback/chip/chip.css?inline.cjs.map +0 -1
- package/dist/feedback/chip/chip.css?inline.js.map +0 -1
- package/dist/feedback/password-strength/password-strength.css?inline.cjs.map +0 -1
- package/dist/feedback/password-strength/password-strength.css?inline.js.map +0 -1
- package/dist/feedback/progress/progress.css?inline.cjs.map +0 -1
- package/dist/feedback/progress/progress.css?inline.js.map +0 -1
- package/dist/feedback/skeleton/skeleton.css?inline.cjs.map +0 -1
- package/dist/feedback/skeleton/skeleton.css?inline.js.map +0 -1
- package/dist/feedback/toast/toast.css?inline.cjs.map +0 -1
- package/dist/feedback/toast/toast.css?inline.js.map +0 -1
- package/dist/inputs/button/button.css?inline.cjs.map +0 -1
- package/dist/inputs/button/button.css?inline.js.map +0 -1
- package/dist/inputs/button-group/button-group.css?inline.cjs.map +0 -1
- package/dist/inputs/button-group/button-group.css?inline.js.map +0 -1
- package/dist/inputs/calendar/calendar.css?inline.cjs.map +0 -1
- package/dist/inputs/calendar/calendar.css?inline.js.map +0 -1
- package/dist/inputs/checkbox/checkbox.css?inline.cjs.map +0 -1
- package/dist/inputs/checkbox/checkbox.css?inline.js.map +0 -1
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs.map +0 -1
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.js.map +0 -1
- package/dist/inputs/combobox/combobox.css?inline.cjs.map +0 -1
- package/dist/inputs/combobox/combobox.css?inline.js.map +0 -1
- package/dist/inputs/datagrid/datagrid.css?inline.cjs.map +0 -1
- package/dist/inputs/datagrid/datagrid.css?inline.js.map +0 -1
- package/dist/inputs/date-picker/date-picker.css?inline.cjs.map +0 -1
- package/dist/inputs/date-picker/date-picker.css?inline.js.map +0 -1
- package/dist/inputs/file-input/file-input.css?inline.cjs.map +0 -1
- package/dist/inputs/file-input/file-input.css?inline.js.map +0 -1
- package/dist/inputs/form/form.css?inline.cjs.map +0 -1
- package/dist/inputs/form/form.css?inline.js.map +0 -1
- package/dist/inputs/input/input.css?inline.cjs.map +0 -1
- package/dist/inputs/input/input.css?inline.js.map +0 -1
- package/dist/inputs/number-input/number-input.css?inline.cjs.map +0 -1
- package/dist/inputs/number-input/number-input.css?inline.js.map +0 -1
- package/dist/inputs/otp-input/otp-input.css?inline.cjs.map +0 -1
- package/dist/inputs/otp-input/otp-input.css?inline.js.map +0 -1
- package/dist/inputs/radio/radio.css?inline.cjs.map +0 -1
- package/dist/inputs/radio/radio.css?inline.js.map +0 -1
- package/dist/inputs/radio-group/radio-group.css?inline.cjs.map +0 -1
- package/dist/inputs/radio-group/radio-group.css?inline.js.map +0 -1
- package/dist/inputs/rating/rating.css?inline.cjs.map +0 -1
- package/dist/inputs/rating/rating.css?inline.js.map +0 -1
- package/dist/inputs/select/select.css?inline.cjs.map +0 -1
- package/dist/inputs/select/select.css?inline.js.map +0 -1
- package/dist/inputs/slider/slider.css?inline.cjs.map +0 -1
- package/dist/inputs/slider/slider.css?inline.js.map +0 -1
- package/dist/inputs/switch/switch.css?inline.cjs.map +0 -1
- package/dist/inputs/switch/switch.css?inline.js.map +0 -1
- package/dist/inputs/textarea/textarea.css?inline.cjs.map +0 -1
- package/dist/inputs/textarea/textarea.css?inline.js.map +0 -1
- package/dist/inputs/time-picker/time-picker.css?inline.cjs.map +0 -1
- package/dist/inputs/time-picker/time-picker.css?inline.js.map +0 -1
- package/dist/layout/box/box.css?inline.cjs.map +0 -1
- package/dist/layout/box/box.css?inline.js.map +0 -1
- package/dist/layout/grid/grid.css?inline.cjs.map +0 -1
- package/dist/layout/grid/grid.css?inline.js.map +0 -1
- package/dist/layout/grid-item/grid-item.css?inline.cjs.map +0 -1
- package/dist/layout/grid-item/grid-item.css?inline.js.map +0 -1
- package/dist/layout/navbar/navbar.css?inline.cjs.map +0 -1
- package/dist/layout/navbar/navbar.css?inline.js.map +0 -1
- package/dist/layout/sidebar/sidebar-group.css?inline.cjs.map +0 -1
- package/dist/layout/sidebar/sidebar-group.css?inline.js.map +0 -1
- package/dist/layout/sidebar/sidebar-item.css?inline.cjs.map +0 -1
- package/dist/layout/sidebar/sidebar-item.css?inline.js.map +0 -1
- package/dist/layout/sidebar/sidebar.css?inline.cjs.map +0 -1
- package/dist/layout/sidebar/sidebar.css?inline.js.map +0 -1
- package/dist/ore/dist/aria.cjs +0 -2
- package/dist/ore/dist/aria.cjs.map +0 -1
- package/dist/ore/dist/aria.js +0 -37
- package/dist/ore/dist/aria.js.map +0 -1
- package/dist/ore/dist/context-bag.cjs +0 -2
- package/dist/ore/dist/context-bag.cjs.map +0 -1
- package/dist/ore/dist/context-bag.js +0 -28
- package/dist/ore/dist/context-bag.js.map +0 -1
- package/dist/ore/dist/host-bind.cjs +0 -2
- package/dist/ore/dist/host-bind.cjs.map +0 -1
- package/dist/ore/dist/host-bind.js +0 -60
- package/dist/ore/dist/host-bind.js.map +0 -1
- package/dist/ore/dist/slots.cjs +0 -2
- package/dist/ore/dist/slots.cjs.map +0 -1
- package/dist/ore/dist/slots.js +0 -61
- package/dist/ore/dist/slots.js.map +0 -1
- package/dist/ore/dist/utils/aria.cjs +0 -2
- package/dist/ore/dist/utils/aria.cjs.map +0 -1
- package/dist/ore/dist/utils/aria.js +0 -6
- package/dist/ore/dist/utils/aria.js.map +0 -1
- package/dist/ore/dist/utils/emit.cjs +0 -2
- package/dist/ore/dist/utils/emit.cjs.map +0 -1
- package/dist/ore/dist/utils/emit.js +0 -16
- package/dist/ore/dist/utils/emit.js.map +0 -1
- package/dist/overlay/dialog/dialog.css?inline.cjs.map +0 -1
- package/dist/overlay/dialog/dialog.css?inline.js.map +0 -1
- package/dist/overlay/drawer/drawer.css?inline.cjs.map +0 -1
- package/dist/overlay/drawer/drawer.css?inline.js.map +0 -1
- package/dist/overlay/menu/menu-item.css?inline.cjs.map +0 -1
- package/dist/overlay/menu/menu-item.css?inline.js.map +0 -1
- package/dist/overlay/menu/menu-separator.css?inline.cjs.map +0 -1
- package/dist/overlay/menu/menu-separator.css?inline.js.map +0 -1
- package/dist/overlay/menu/menu.css?inline.cjs.map +0 -1
- package/dist/overlay/menu/menu.css?inline.js.map +0 -1
- package/dist/overlay/popover/popover.css?inline.cjs.map +0 -1
- package/dist/overlay/popover/popover.css?inline.js.map +0 -1
- package/dist/overlay/tooltip/tooltip.css?inline.cjs.map +0 -1
- package/dist/overlay/tooltip/tooltip.css?inline.js.map +0 -1
package/dist/alert.js
CHANGED
|
@@ -3,37 +3,37 @@ import { roundedVariantMixin as n, sizeVariantMixin as r } from "./styles/mixins
|
|
|
3
3
|
import { colorThemeMixin as i, forcedColorsMixin as a } from "./styles/mixins/theme.css.js";
|
|
4
4
|
import { roundableBundle as o, sizableBundle as s, themableBundle as c } from "./shared/prop-bundles.js";
|
|
5
5
|
import { awaitExit as l } from "./overlay/shared/await-exit.js";
|
|
6
|
-
import u from "./feedback/alert/alert.css
|
|
7
|
-
import { define as d,
|
|
6
|
+
import u from "./feedback/alert/alert.css.js";
|
|
7
|
+
import { define as d, getHost as f, html as p, prop as m, useEmit as h, useSlots as g } from "@vielzeug/ore";
|
|
8
8
|
//#region src/feedback/alert/alert.ts
|
|
9
|
-
var
|
|
10
|
-
d(
|
|
9
|
+
var _ = "ore-alert";
|
|
10
|
+
d(_, {
|
|
11
11
|
props: {
|
|
12
12
|
...c,
|
|
13
13
|
...s,
|
|
14
14
|
...o,
|
|
15
|
-
accented:
|
|
16
|
-
dismissible:
|
|
17
|
-
heading:
|
|
18
|
-
horizontal:
|
|
19
|
-
variant:
|
|
15
|
+
accented: m.bool(!1),
|
|
16
|
+
dismissible: m.bool(!1),
|
|
17
|
+
heading: m.string(),
|
|
18
|
+
horizontal: m.bool(!1),
|
|
19
|
+
variant: m.string()
|
|
20
20
|
},
|
|
21
|
-
setup(e
|
|
22
|
-
let
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
setup(e) {
|
|
22
|
+
let t = f(), n = h(), r = g(), i = null, a = (e) => {
|
|
23
|
+
i && (i.textContent = "", requestAnimationFrame(() => {
|
|
24
|
+
i && (i.textContent = e);
|
|
25
25
|
}));
|
|
26
26
|
};
|
|
27
|
-
return
|
|
27
|
+
return p`
|
|
28
28
|
<span
|
|
29
29
|
class="sr-announce"
|
|
30
30
|
aria-live="polite"
|
|
31
31
|
aria-atomic="true"
|
|
32
32
|
ref="${(e) => {
|
|
33
|
-
|
|
33
|
+
i = e;
|
|
34
34
|
}}"></span>
|
|
35
35
|
<div class="alert" :role="${() => e.color.value === "error" ? "alert" : "status"}" part="alert">
|
|
36
|
-
<span class="icon" part="icon" aria-hidden="true" ?hidden="${() => !
|
|
36
|
+
<span class="icon" part="icon" aria-hidden="true" ?hidden="${() => !r.has("icon").value}">
|
|
37
37
|
<slot name="icon"></slot>
|
|
38
38
|
</span>
|
|
39
39
|
<div class="header" part="header" ?hidden="${() => !e.heading.value}">
|
|
@@ -47,7 +47,7 @@ d(m, {
|
|
|
47
47
|
<slot></slot>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
|
-
<div class="actions" part="actions" ?hidden="${() => !
|
|
50
|
+
<div class="actions" part="actions" ?hidden="${() => !r.has("actions").value}">
|
|
51
51
|
<slot name="actions"></slot>
|
|
52
52
|
</div>
|
|
53
53
|
<button
|
|
@@ -56,9 +56,9 @@ d(m, {
|
|
|
56
56
|
type="button"
|
|
57
57
|
aria-label="Dismiss alert"
|
|
58
58
|
?hidden="${() => !e.dismissible.value}"
|
|
59
|
-
@click="${(
|
|
60
|
-
e.dismissible.value && (
|
|
61
|
-
|
|
59
|
+
@click="${(r) => {
|
|
60
|
+
e.dismissible.value && (t.setAttribute("dismissing", ""), l(t, () => {
|
|
61
|
+
t.removeAttribute("dismissing"), t.setAttribute("dismissed", ""), a("Alert dismissed"), n("dismiss", { originalEvent: r });
|
|
62
62
|
}));
|
|
63
63
|
}}">
|
|
64
64
|
<ore-icon name="x" size="16" stroke-width="2.5" aria-hidden="true"></ore-icon>
|
|
@@ -88,6 +88,6 @@ d(m, {
|
|
|
88
88
|
]
|
|
89
89
|
});
|
|
90
90
|
//#endregion
|
|
91
|
-
export {
|
|
91
|
+
export { _ as ALERT_TAG };
|
|
92
92
|
|
|
93
93
|
//# sourceMappingURL=alert.js.map
|
package/dist/alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","names":[],"sources":["../src/feedback/alert/alert.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\n\nimport type { ComponentSize, RoundedSize, ThemeColor } from '../../types';\n\nimport '../../content/icon/icon';\nimport { awaitExit } from '../../overlay/shared/await-exit';\nimport { roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n forcedColorsMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport componentStyles from './alert.css?inline';\n\nexport type OreAlertEvents = {\n dismiss: { originalEvent: MouseEvent };\n};\n\nexport type OreAlertProps = {\n /** Show a left accent border (for flat/bordered variants) */\n accented?: boolean;\n /** Theme color */\n color?: ThemeColor;\n /** Show a dismissible (×) button */\n dismissible?: boolean;\n /** Heading text shown above the content */\n heading?: string;\n /** Position action buttons to the right instead of below */\n horizontal?: boolean;\n /** Border radius */\n rounded?: RoundedSize | '';\n /** Alert size */\n size?: ComponentSize;\n /** Visual style variant */\n variant?: 'solid' | 'flat' | 'bordered';\n};\n\n/**\n * A status/feedback banner with optional heading, icon slot, and dismiss button.\n *\n * @element ore-alert\n *\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual style: 'flat' | 'solid' | 'bordered'\n * @attr {string} size - Size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} heading - Bold heading text above the content\n * @attr {boolean} dismissible - Show a close (×) button\n * @attr {boolean} accented - Add a left accent border (flat/bordered only)\n * @attr {boolean} horizontal - Position action buttons to the right instead of below\n *\n * @fires dismiss - Fired when the alert is dismissed. detail: { originalEvent: MouseEvent }\n *\n * @slot - Default slot for the alert message content\n * @slot icon - Icon on the left side\n * @slot meta - Metadata displayed alongside the heading (lighter, right-aligned)\n * @slot actions - Action buttons shown below the message\n *\n * @cssprop --alert-bg - Background color\n * @cssprop --alert-color - Text/icon color\n * @cssprop --alert-border-color - Border color\n * @cssprop --alert-shadow - Box shadow\n * @cssprop --alert-radius - Border radius\n * @cssprop --alert-padding - Padding\n * @cssprop --alert-gap - Gap between icon, body, and close button\n * @cssprop --alert-font-size - Font size\n *\n * @part alert - Alert root container.\n * @part icon - Icon container.\n * @part header - Header container.\n * @part heading - Heading text element.\n * @part meta - Meta text container.\n * @part body - Body content container.\n * @part content - Content container.\n * @part actions - Actions slot container.\n * @part close - Close action control.\n * @example\n * ```html\n * <ore-alert color=\"success\">Your changes have been saved.</ore-alert>\n * <ore-alert color=\"error\" variant=\"solid\" dismissible heading=\"Something went wrong\">\n * Please try again later.\n * </ore-alert>\n * ```\n */\nexport const ALERT_TAG = 'ore-alert' as const;\ndefine<OreAlertProps
|
|
1
|
+
{"version":3,"file":"alert.js","names":[],"sources":["../src/feedback/alert/alert.ts"],"sourcesContent":["import { define, html, prop, getHost, useEmit, useSlots } from '@vielzeug/ore';\n\nimport type { ComponentSize, RoundedSize, ThemeColor } from '../../types';\n\nimport '../../content/icon/icon';\nimport { awaitExit } from '../../overlay/shared/await-exit';\nimport { roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n forcedColorsMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport componentStyles from './alert.css?inline';\n\nexport type OreAlertEvents = {\n dismiss: { originalEvent: MouseEvent };\n};\n\nexport type OreAlertProps = {\n /** Show a left accent border (for flat/bordered variants) */\n accented?: boolean;\n /** Theme color */\n color?: ThemeColor;\n /** Show a dismissible (×) button */\n dismissible?: boolean;\n /** Heading text shown above the content */\n heading?: string;\n /** Position action buttons to the right instead of below */\n horizontal?: boolean;\n /** Border radius */\n rounded?: RoundedSize | '';\n /** Alert size */\n size?: ComponentSize;\n /** Visual style variant */\n variant?: 'solid' | 'flat' | 'bordered';\n};\n\n/**\n * A status/feedback banner with optional heading, icon slot, and dismiss button.\n *\n * @element ore-alert\n *\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual style: 'flat' | 'solid' | 'bordered'\n * @attr {string} size - Size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} heading - Bold heading text above the content\n * @attr {boolean} dismissible - Show a close (×) button\n * @attr {boolean} accented - Add a left accent border (flat/bordered only)\n * @attr {boolean} horizontal - Position action buttons to the right instead of below\n *\n * @fires dismiss - Fired when the alert is dismissed. detail: { originalEvent: MouseEvent }\n *\n * @slot - Default slot for the alert message content\n * @slot icon - Icon on the left side\n * @slot meta - Metadata displayed alongside the heading (lighter, right-aligned)\n * @slot actions - Action buttons shown below the message\n *\n * @cssprop --alert-bg - Background color\n * @cssprop --alert-color - Text/icon color\n * @cssprop --alert-border-color - Border color\n * @cssprop --alert-shadow - Box shadow\n * @cssprop --alert-radius - Border radius\n * @cssprop --alert-padding - Padding\n * @cssprop --alert-gap - Gap between icon, body, and close button\n * @cssprop --alert-font-size - Font size\n *\n * @part alert - Alert root container.\n * @part icon - Icon container.\n * @part header - Header container.\n * @part heading - Heading text element.\n * @part meta - Meta text container.\n * @part body - Body content container.\n * @part content - Content container.\n * @part actions - Actions slot container.\n * @part close - Close action control.\n * @example\n * ```html\n * <ore-alert color=\"success\">Your changes have been saved.</ore-alert>\n * <ore-alert color=\"error\" variant=\"solid\" dismissible heading=\"Something went wrong\">\n * Please try again later.\n * </ore-alert>\n * ```\n */\nexport const ALERT_TAG = 'ore-alert' as const;\ndefine<OreAlertProps>(ALERT_TAG, {\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...roundableBundle,\n accented: prop.bool(false),\n dismissible: prop.bool(false),\n heading: prop.string(),\n horizontal: prop.bool(false),\n variant: prop.string<'solid' | 'flat' | 'bordered'>(),\n },\n setup(props) {\n const el = getHost();\n const emit = useEmit<OreAlertEvents>();\n const slots = useSlots();\n\n let announceEl: HTMLElement | null = null;\n\n const announce = (message: string) => {\n if (!announceEl) return;\n\n announceEl.textContent = '';\n requestAnimationFrame(() => {\n if (announceEl) announceEl.textContent = message;\n });\n };\n\n const handleDismiss = (e: MouseEvent) => {\n if (!props.dismissible.value) return;\n\n el.setAttribute('dismissing', '');\n awaitExit(el, () => {\n el.removeAttribute('dismissing');\n el.setAttribute('dismissed', '');\n announce('Alert dismissed');\n emit('dismiss', { originalEvent: e });\n });\n };\n\n const alertRole = () => (props.color.value === 'error' ? 'alert' : 'status');\n\n return html`\n <span\n class=\"sr-announce\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n ref=\"${(ref: HTMLElement) => {\n announceEl = ref;\n }}\"></span>\n <div class=\"alert\" :role=\"${alertRole}\" part=\"alert\">\n <span class=\"icon\" part=\"icon\" aria-hidden=\"true\" ?hidden=\"${() => !slots.has('icon').value}\">\n <slot name=\"icon\"></slot>\n </span>\n <div class=\"header\" part=\"header\" ?hidden=\"${() => !props.heading.value}\">\n <span class=\"heading\" part=\"heading\">${props.heading}</span>\n <span class=\"meta\" part=\"meta\">\n <slot name=\"meta\"></slot>\n </span>\n </div>\n <div class=\"body\" part=\"body\">\n <div class=\"content\" part=\"content\">\n <slot></slot>\n </div>\n </div>\n <div class=\"actions\" part=\"actions\" ?hidden=\"${() => !slots.has('actions').value}\">\n <slot name=\"actions\"></slot>\n </div>\n <button\n class=\"close\"\n part=\"close\"\n type=\"button\"\n aria-label=\"Dismiss alert\"\n ?hidden=\"${() => !props.dismissible.value}\"\n @click=\"${handleDismiss}\">\n <ore-icon name=\"x\" size=\"16\" stroke-width=\"2.5\" aria-hidden=\"true\"></ore-icon>\n </button>\n </div>\n `;\n },\n styles: [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n forcedColorsMixin,\n sizeVariantMixin({\n lg: { '--_padding': 'var(--size-4) var(--size-5)', fontSize: 'var(--text-base)', gap: 'var(--size-3-5)' },\n sm: { '--_padding': 'var(--size-2) var(--size-3)', fontSize: 'var(--text-xs)', gap: 'var(--size-2)' },\n }),\n componentStyles,\n ],\n});\n"],"mappings":";;;;;;;;AAuFA,IAAa,IAAY;AACzB,EAAsB,GAAW;CAC/B,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,UAAU,EAAK,KAAK,EAAK;EACzB,aAAa,EAAK,KAAK,EAAK;EAC5B,SAAS,EAAK,OAAO;EACrB,YAAY,EAAK,KAAK,EAAK;EAC3B,SAAS,EAAK,OAAsC;CACtD;CACA,MAAM,GAAO;EACX,IAAM,IAAK,EAAQ,GACb,IAAO,EAAwB,GAC/B,IAAQ,EAAS,GAEnB,IAAiC,MAE/B,KAAY,MAAoB;GAC/B,MAEL,EAAW,cAAc,IACzB,4BAA4B;IAC1B,AAAI,MAAY,EAAW,cAAc;GAC3C,CAAC;EACH;EAgBA,OAAO,CAAI;;;;;gBAKC,MAAqB;GAC3B,IAAa;EACf,EAAE;wCATmB,EAAM,MAAM,UAAU,UAAU,UAAU,SAU3B;2EAC+B,CAAC,EAAM,IAAI,MAAM,CAAC,CAAC,MAAM;;;2DAGzC,CAAC,EAAM,QAAQ,MAAM;iDAC/B,EAAM,QAAQ;;;;;;;;;;6DAUF,CAAC,EAAM,IAAI,SAAS,CAAC,CAAC,MAAM;;;;;;;;2BAQ9D,CAAC,EAAM,YAAY,MAAM;qBA7CzB,MAAkB;GAClC,EAAM,YAAY,UAEvB,EAAG,aAAa,cAAc,EAAE,GAChC,EAAU,SAAU;IAIlB,AAHA,EAAG,gBAAgB,YAAY,GAC/B,EAAG,aAAa,aAAa,EAAE,GAC/B,EAAS,iBAAiB,GAC1B,EAAK,WAAW,EAAE,eAAe,EAAE,CAAC;GACtC,CAAC;EACH,EAoC8B;;;;;CAKhC;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA,EAAiB;GACf,IAAI;IAAE,cAAc;IAA+B,UAAU;IAAoB,KAAK;GAAkB;GACxG,IAAI;IAAE,cAAc;IAA+B,UAAU;IAAkB,KAAK;GAAgB;EACtG,CAAC;EACD;CACF;AACF,CAAC"}
|
package/dist/async.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./styles/mixins/accessibility.css.cjs"),n=require("./feedback/async/async.css
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./styles/mixins/accessibility.css.cjs"),n=require("./feedback/async/async.css.cjs");let r=require("@vielzeug/ore"),i=require("@vielzeug/ripple");var a=`ore-async`;(0,r.define)(a,{props:{"empty-description":r.prop.string(),"empty-label":r.prop.string(`No content yet`),"error-description":r.prop.string(),"error-label":r.prop.string(`Something went wrong`),retryable:r.prop.bool(!1),status:r.prop.oneOf([`idle`,`loading`,`empty`,`error`,`success`],`success`)},setup(t){let n=(0,r.useEmit)(),a=(0,i.signal)(!1),o=(0,i.signal)(!1),s=(0,i.signal)(!1);(0,r.bind)({attr:{ariaBusy:()=>t.status.value===`loading`?`true`:`false`,ariaLabel:()=>t.status.value===`loading`?`Loading…`:null,ariaLive:()=>t.status.value===`error`?`assertive`:`polite`,status:t.status}});let c=(e,t)=>()=>t?.value?r.html`<p class="${e}">${t}</p>`:``;return r.html`
|
|
2
2
|
<div class="region region-idle" role="presentation"></div>
|
|
3
3
|
|
|
4
4
|
<div class="region region-loading" role="status">
|
|
5
5
|
<slot
|
|
6
6
|
name="loading"
|
|
7
|
-
@slotchange=${e=>{
|
|
8
|
-
${e.when(
|
|
7
|
+
@slotchange=${e=>{a.value=e.target.assignedNodes().length>0}}></slot>
|
|
8
|
+
${e.when(a,()=>r.html``,()=>r.html`
|
|
9
9
|
<div class="loading-default" aria-hidden="true">
|
|
10
10
|
<ore-skeleton variant="text" lines="1" width="40%"></ore-skeleton>
|
|
11
11
|
<ore-skeleton variant="text" lines="3" width="100%"></ore-skeleton>
|
|
@@ -17,13 +17,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
|
|
|
17
17
|
<div class="region region-empty">
|
|
18
18
|
<slot
|
|
19
19
|
name="empty"
|
|
20
|
-
@slotchange=${e=>{
|
|
21
|
-
${e.when(
|
|
20
|
+
@slotchange=${e=>{o.value=e.target.assignedNodes().length>0}}></slot>
|
|
21
|
+
${e.when(o,()=>r.html``,()=>r.html`
|
|
22
22
|
<div class="empty-state" role="status">
|
|
23
23
|
<div class="icon">
|
|
24
24
|
<ore-icon name="inbox" size="100%" stroke-width="1.75" aria-hidden="true"></ore-icon>
|
|
25
25
|
</div>
|
|
26
|
-
${
|
|
26
|
+
${c(`title`,t[`empty-label`])} ${c(`description`,t[`empty-description`])}
|
|
27
27
|
</div>
|
|
28
28
|
`)}
|
|
29
29
|
</div>
|
|
@@ -31,15 +31,15 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
|
|
|
31
31
|
<div class="region region-error">
|
|
32
32
|
<slot
|
|
33
33
|
name="error"
|
|
34
|
-
@slotchange=${e=>{
|
|
35
|
-
${e.when(
|
|
34
|
+
@slotchange=${e=>{s.value=e.target.assignedNodes().length>0}}></slot>
|
|
35
|
+
${e.when(s,()=>r.html``,()=>r.html`
|
|
36
36
|
<div class="error-state" role="alert">
|
|
37
37
|
<div class="icon">
|
|
38
38
|
<ore-icon name="triangle-alert" size="100%" stroke-width="1.75" aria-hidden="true"></ore-icon>
|
|
39
39
|
</div>
|
|
40
|
-
${
|
|
40
|
+
${c(`title`,t[`error-label`])} ${c(`description`,t[`error-description`])}
|
|
41
41
|
${e.when(()=>!!t.retryable.value,()=>r.html`
|
|
42
|
-
<button class="retry-btn" type="button" @click=${()=>
|
|
42
|
+
<button class="retry-btn" type="button" @click=${()=>n(`retry`)}>
|
|
43
43
|
<ore-icon name="refresh-cw" size="1em" stroke-width="2" aria-hidden="true"></ore-icon>
|
|
44
44
|
Try again
|
|
45
45
|
</button>
|
package/dist/async.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.cjs","names":[],"sources":["../src/feedback/async/async.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { when } from '@vielzeug/ore/directives';\nimport { type Readable, signal } from '@vielzeug/ripple';\n\nimport { reducedMotionMixin } from '../../styles';\nimport componentStyles from './async.css?inline';\n\nexport type AsyncStatus = 'idle' | 'loading' | 'empty' | 'error' | 'success';\n\nexport type OreAsyncEvents = {\n retry: void;\n};\n\nexport type OreAsyncProps = {\n 'empty-description'?: string;\n 'empty-label'?: string;\n 'error-description'?: string;\n 'error-label'?: string;\n retryable?: boolean;\n status?: AsyncStatus;\n};\n\n/**\n * A container for handling asynchronous states (loading, empty, error, success).\n * Simplifies data fetching UI by providing consistent fallbacks.\n *\n * @element ore-async\n *\n * @attr {string} status - current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')\n * @attr {boolean} retryable - show retry button in error state (default: false)\n * @attr {string} empty-label - title for empty state (default: 'No content yet')\n * @attr {string} empty-description - optional text for empty state\n * @attr {string} error-label - title for error state (default: 'Something went wrong')\n * @attr {string} error-description - optional text for error state\n *\n * @fires retry - Emitted when the retry button is clicked (no detail payload)\n *\n * @slot - default content shown in 'success' state\n * @slot loading - custom loading UI (overrides default skeletons)\n * @slot empty - custom empty UI (overrides default icon/label)\n * @slot error - custom error UI (overrides default icon/label)\n *\n * @cssprop --async-color - Text/icon color used by default async state content\n * @cssprop --async-gap - Vertical spacing between icon, title, description, and actions\n * @cssprop --async-icon-size - Icon size for built-in loading/empty/error visuals\n * @example\n * ```html\n * <!-- Success state: default slot is shown -->\n * <ore-async status=\"success\">\n * <ul><li>Item one</li><li>Item two</li></ul>\n * </ore-async>\n *\n * <!-- Loading state: shows skeleton placeholders -->\n * <ore-async status=\"loading\"></ore-async>\n *\n * <!-- Empty state with custom message -->\n * <ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n *\n * <!-- Error state with retry button -->\n * <ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n * ```\n */\nexport const ASYNC_TAG = 'ore-async' as const;\ndefine<OreAsyncProps
|
|
1
|
+
{"version":3,"file":"async.cjs","names":[],"sources":["../src/feedback/async/async.ts"],"sourcesContent":["import { define, html, prop, bind, useEmit } from '@vielzeug/ore';\nimport { when } from '@vielzeug/ore/directives';\nimport { type Readable, signal } from '@vielzeug/ripple';\n\nimport { reducedMotionMixin } from '../../styles';\nimport componentStyles from './async.css?inline';\n\nexport type AsyncStatus = 'idle' | 'loading' | 'empty' | 'error' | 'success';\n\nexport type OreAsyncEvents = {\n retry: void;\n};\n\nexport type OreAsyncProps = {\n 'empty-description'?: string;\n 'empty-label'?: string;\n 'error-description'?: string;\n 'error-label'?: string;\n retryable?: boolean;\n status?: AsyncStatus;\n};\n\n/**\n * A container for handling asynchronous states (loading, empty, error, success).\n * Simplifies data fetching UI by providing consistent fallbacks.\n *\n * @element ore-async\n *\n * @attr {string} status - current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')\n * @attr {boolean} retryable - show retry button in error state (default: false)\n * @attr {string} empty-label - title for empty state (default: 'No content yet')\n * @attr {string} empty-description - optional text for empty state\n * @attr {string} error-label - title for error state (default: 'Something went wrong')\n * @attr {string} error-description - optional text for error state\n *\n * @fires retry - Emitted when the retry button is clicked (no detail payload)\n *\n * @slot - default content shown in 'success' state\n * @slot loading - custom loading UI (overrides default skeletons)\n * @slot empty - custom empty UI (overrides default icon/label)\n * @slot error - custom error UI (overrides default icon/label)\n *\n * @cssprop --async-color - Text/icon color used by default async state content\n * @cssprop --async-gap - Vertical spacing between icon, title, description, and actions\n * @cssprop --async-icon-size - Icon size for built-in loading/empty/error visuals\n * @example\n * ```html\n * <!-- Success state: default slot is shown -->\n * <ore-async status=\"success\">\n * <ul><li>Item one</li><li>Item two</li></ul>\n * </ore-async>\n *\n * <!-- Loading state: shows skeleton placeholders -->\n * <ore-async status=\"loading\"></ore-async>\n *\n * <!-- Empty state with custom message -->\n * <ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n *\n * <!-- Error state with retry button -->\n * <ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n * ```\n */\nexport const ASYNC_TAG = 'ore-async' as const;\ndefine<OreAsyncProps>(ASYNC_TAG, {\n props: {\n 'empty-description': prop.string(),\n 'empty-label': prop.string('No content yet'),\n 'error-description': prop.string(),\n 'error-label': prop.string('Something went wrong'),\n retryable: prop.bool(false),\n status: prop.oneOf(['idle', 'loading', 'empty', 'error', 'success'] as const, 'success'),\n },\n setup(props) {\n const emit = useEmit<OreAsyncEvents>();\n\n const hasLoadingSlot = signal(false);\n const hasEmptySlot = signal(false);\n const hasErrorSlot = signal(false);\n\n // Reflect status onto the host so CSS can show/hide each region.\n // ARIA attributes are driven reactively by bind().\n bind({\n attr: {\n ariaBusy: () => (props.status.value === 'loading' ? 'true' : 'false'),\n ariaLabel: () => (props.status.value === 'loading' ? 'Loading…' : null),\n ariaLive: () => (props.status.value === 'error' ? 'assertive' : 'polite'),\n status: props.status,\n },\n });\n\n const renderText = (className: 'title' | 'description', text: Readable<string | undefined> | undefined) => () =>\n text?.value ? html`<p class=\"${className}\">${text}</p>` : '';\n\n // All four regions are always in the shadow DOM — CSS on :host([status=\"…\"])\n // toggles their visibility. This means:\n // - No DOM churn on status transitions (no teardown/rebuild of slot elements).\n // - Live regions are always present, so screen readers announce correctly.\n // - focus is never lost across status changes.\n return html`\n <div class=\"region region-idle\" role=\"presentation\"></div>\n\n <div class=\"region region-loading\" role=\"status\">\n <slot\n name=\"loading\"\n @slotchange=${(e: Event) => {\n hasLoadingSlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasLoadingSlot,\n () => html``,\n () => html`\n <div class=\"loading-default\" aria-hidden=\"true\">\n <ore-skeleton variant=\"text\" lines=\"1\" width=\"40%\"></ore-skeleton>\n <ore-skeleton variant=\"text\" lines=\"3\" width=\"100%\"></ore-skeleton>\n <ore-skeleton variant=\"text\" lines=\"1\" width=\"60%\"></ore-skeleton>\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-empty\">\n <slot\n name=\"empty\"\n @slotchange=${(e: Event) => {\n hasEmptySlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasEmptySlot,\n () => html``,\n () => html`\n <div class=\"empty-state\" role=\"status\">\n <div class=\"icon\">\n <ore-icon name=\"inbox\" size=\"100%\" stroke-width=\"1.75\" aria-hidden=\"true\"></ore-icon>\n </div>\n ${renderText('title', props['empty-label'])} ${renderText('description', props['empty-description'])}\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-error\">\n <slot\n name=\"error\"\n @slotchange=${(e: Event) => {\n hasErrorSlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasErrorSlot,\n () => html``,\n () => html`\n <div class=\"error-state\" role=\"alert\">\n <div class=\"icon\">\n <ore-icon name=\"triangle-alert\" size=\"100%\" stroke-width=\"1.75\" aria-hidden=\"true\"></ore-icon>\n </div>\n ${renderText('title', props['error-label'])} ${renderText('description', props['error-description'])}\n ${when(\n () => Boolean(props.retryable.value),\n () => html`\n <button class=\"retry-btn\" type=\"button\" @click=${() => emit('retry')}>\n <ore-icon name=\"refresh-cw\" size=\"1em\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n Try again\n </button>\n `,\n )}\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-success\" role=\"presentation\">\n <slot></slot>\n </div>\n `;\n },\n styles: [reducedMotionMixin, componentStyles],\n});\n"],"mappings":"4TA8DA,IAAa,EAAY,yBACH,EAAW,CAC/B,MAAO,CACL,oBAAqB,EAAA,KAAK,OAAO,EACjC,cAAe,EAAA,KAAK,OAAO,gBAAgB,EAC3C,oBAAqB,EAAA,KAAK,OAAO,EACjC,cAAe,EAAA,KAAK,OAAO,sBAAsB,EACjD,UAAW,EAAA,KAAK,KAAK,EAAK,EAC1B,OAAQ,EAAA,KAAK,MAAM,CAAC,OAAQ,UAAW,QAAS,QAAS,SAAS,EAAY,SAAS,CACzF,EACA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,QAAA,CAA+B,EAE/B,GAAA,EAAA,EAAA,OAAA,CAAwB,EAAK,EAC7B,GAAA,EAAA,EAAA,OAAA,CAAsB,EAAK,EAC3B,GAAA,EAAA,EAAA,OAAA,CAAsB,EAAK,GAIjC,EAAA,EAAA,KAAA,CAAK,CACH,KAAM,CACJ,aAAiB,EAAM,OAAO,QAAU,UAAY,OAAS,QAC7D,cAAkB,EAAM,OAAO,QAAU,UAAY,WAAa,KAClE,aAAiB,EAAM,OAAO,QAAU,QAAU,YAAc,SAChE,OAAQ,EAAM,MAChB,CACF,CAAC,EAED,IAAM,GAAc,EAAoC,QACtD,GAAM,MAAQ,EAAA,IAAI,aAAa,EAAU,IAAI,EAAK,MAAQ,GAO5D,MAAO,GAAA,IAAI;;;;;;wBAMU,GAAa,CAC1B,EAAe,MAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,OAAS,CAChF,EAAE;UACF,EAAA,KACA,MACM,EAAA,IAAI,OACJ,EAAA,IAAI;;;;;;WAOZ,EAAE;;;;;;wBAMe,GAAa,CAC1B,EAAa,MAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,OAAS,CAC9E,EAAE;UACF,EAAA,KACA,MACM,EAAA,IAAI,OACJ,EAAA,IAAI;;;;;gBAKJ,EAAW,QAAS,EAAM,cAAc,EAAE,GAAG,EAAW,cAAe,EAAM,oBAAoB,EAAE;;WAG3G,EAAE;;;;;;wBAMe,GAAa,CAC1B,EAAa,MAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,OAAS,CAC9E,EAAE;UACF,EAAA,KACA,MACM,EAAA,IAAI,OACJ,EAAA,IAAI;;;;;gBAKJ,EAAW,QAAS,EAAM,cAAc,EAAE,GAAG,EAAW,cAAe,EAAM,oBAAoB,EAAE;gBACnG,EAAA,SACM,EAAQ,EAAM,UAAU,UACxB,EAAA,IAAI;uEAC+C,EAAK,OAAO,EAAE;;;;iBAKzE,EAAE;;WAGR,EAAE;;;;;;KAOR,EACA,OAAQ,CAAC,EAAA,mBAAoB,EAAA,OAAe,CAC9C,CAAC"}
|
package/dist/async.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { when as e } from "./ore/dist/directives/when.js";
|
|
2
2
|
import "./ore/dist/directives.js";
|
|
3
3
|
import { reducedMotionMixin as t } from "./styles/mixins/accessibility.css.js";
|
|
4
|
-
import n from "./feedback/async/async.css
|
|
5
|
-
import {
|
|
6
|
-
import { signal as
|
|
4
|
+
import n from "./feedback/async/async.css.js";
|
|
5
|
+
import { bind as r, define as i, html as a, prop as o, useEmit as s } from "@vielzeug/ore";
|
|
6
|
+
import { signal as c } from "@vielzeug/ripple";
|
|
7
7
|
//#region src/feedback/async/async.ts
|
|
8
|
-
var
|
|
9
|
-
|
|
8
|
+
var l = "ore-async";
|
|
9
|
+
i(l, {
|
|
10
10
|
props: {
|
|
11
|
-
"empty-description":
|
|
12
|
-
"empty-label":
|
|
13
|
-
"error-description":
|
|
14
|
-
"error-label":
|
|
15
|
-
retryable:
|
|
16
|
-
status:
|
|
11
|
+
"empty-description": o.string(),
|
|
12
|
+
"empty-label": o.string("No content yet"),
|
|
13
|
+
"error-description": o.string(),
|
|
14
|
+
"error-label": o.string("Something went wrong"),
|
|
15
|
+
retryable: o.bool(!1),
|
|
16
|
+
status: o.oneOf([
|
|
17
17
|
"idle",
|
|
18
18
|
"loading",
|
|
19
19
|
"empty",
|
|
@@ -21,25 +21,25 @@ r(s, {
|
|
|
21
21
|
"success"
|
|
22
22
|
], "success")
|
|
23
23
|
},
|
|
24
|
-
setup(t
|
|
25
|
-
let
|
|
26
|
-
|
|
24
|
+
setup(t) {
|
|
25
|
+
let n = s(), i = c(!1), o = c(!1), l = c(!1);
|
|
26
|
+
r({ attr: {
|
|
27
27
|
ariaBusy: () => t.status.value === "loading" ? "true" : "false",
|
|
28
28
|
ariaLabel: () => t.status.value === "loading" ? "Loading…" : null,
|
|
29
29
|
ariaLive: () => t.status.value === "error" ? "assertive" : "polite",
|
|
30
30
|
status: t.status
|
|
31
31
|
} });
|
|
32
|
-
let
|
|
33
|
-
return
|
|
32
|
+
let u = (e, t) => () => t?.value ? a`<p class="${e}">${t}</p>` : "";
|
|
33
|
+
return a`
|
|
34
34
|
<div class="region region-idle" role="presentation"></div>
|
|
35
35
|
|
|
36
36
|
<div class="region region-loading" role="status">
|
|
37
37
|
<slot
|
|
38
38
|
name="loading"
|
|
39
39
|
@slotchange=${(e) => {
|
|
40
|
-
|
|
40
|
+
i.value = e.target.assignedNodes().length > 0;
|
|
41
41
|
}}></slot>
|
|
42
|
-
${e(
|
|
42
|
+
${e(i, () => a``, () => a`
|
|
43
43
|
<div class="loading-default" aria-hidden="true">
|
|
44
44
|
<ore-skeleton variant="text" lines="1" width="40%"></ore-skeleton>
|
|
45
45
|
<ore-skeleton variant="text" lines="3" width="100%"></ore-skeleton>
|
|
@@ -52,14 +52,14 @@ r(s, {
|
|
|
52
52
|
<slot
|
|
53
53
|
name="empty"
|
|
54
54
|
@slotchange=${(e) => {
|
|
55
|
-
|
|
55
|
+
o.value = e.target.assignedNodes().length > 0;
|
|
56
56
|
}}></slot>
|
|
57
|
-
${e(
|
|
57
|
+
${e(o, () => a``, () => a`
|
|
58
58
|
<div class="empty-state" role="status">
|
|
59
59
|
<div class="icon">
|
|
60
60
|
<ore-icon name="inbox" size="100%" stroke-width="1.75" aria-hidden="true"></ore-icon>
|
|
61
61
|
</div>
|
|
62
|
-
${
|
|
62
|
+
${u("title", t["empty-label"])} ${u("description", t["empty-description"])}
|
|
63
63
|
</div>
|
|
64
64
|
`)}
|
|
65
65
|
</div>
|
|
@@ -68,16 +68,16 @@ r(s, {
|
|
|
68
68
|
<slot
|
|
69
69
|
name="error"
|
|
70
70
|
@slotchange=${(e) => {
|
|
71
|
-
|
|
71
|
+
l.value = e.target.assignedNodes().length > 0;
|
|
72
72
|
}}></slot>
|
|
73
|
-
${e(
|
|
73
|
+
${e(l, () => a``, () => a`
|
|
74
74
|
<div class="error-state" role="alert">
|
|
75
75
|
<div class="icon">
|
|
76
76
|
<ore-icon name="triangle-alert" size="100%" stroke-width="1.75" aria-hidden="true"></ore-icon>
|
|
77
77
|
</div>
|
|
78
|
-
${
|
|
79
|
-
${e(() => !!t.retryable.value, () =>
|
|
80
|
-
<button class="retry-btn" type="button" @click=${() =>
|
|
78
|
+
${u("title", t["error-label"])} ${u("description", t["error-description"])}
|
|
79
|
+
${e(() => !!t.retryable.value, () => a`
|
|
80
|
+
<button class="retry-btn" type="button" @click=${() => n("retry")}>
|
|
81
81
|
<ore-icon name="refresh-cw" size="1em" stroke-width="2" aria-hidden="true"></ore-icon>
|
|
82
82
|
Try again
|
|
83
83
|
</button>
|
|
@@ -94,6 +94,6 @@ r(s, {
|
|
|
94
94
|
styles: [t, n]
|
|
95
95
|
});
|
|
96
96
|
//#endregion
|
|
97
|
-
export {
|
|
97
|
+
export { l as ASYNC_TAG };
|
|
98
98
|
|
|
99
99
|
//# sourceMappingURL=async.js.map
|
package/dist/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","names":[],"sources":["../src/feedback/async/async.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { when } from '@vielzeug/ore/directives';\nimport { type Readable, signal } from '@vielzeug/ripple';\n\nimport { reducedMotionMixin } from '../../styles';\nimport componentStyles from './async.css?inline';\n\nexport type AsyncStatus = 'idle' | 'loading' | 'empty' | 'error' | 'success';\n\nexport type OreAsyncEvents = {\n retry: void;\n};\n\nexport type OreAsyncProps = {\n 'empty-description'?: string;\n 'empty-label'?: string;\n 'error-description'?: string;\n 'error-label'?: string;\n retryable?: boolean;\n status?: AsyncStatus;\n};\n\n/**\n * A container for handling asynchronous states (loading, empty, error, success).\n * Simplifies data fetching UI by providing consistent fallbacks.\n *\n * @element ore-async\n *\n * @attr {string} status - current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')\n * @attr {boolean} retryable - show retry button in error state (default: false)\n * @attr {string} empty-label - title for empty state (default: 'No content yet')\n * @attr {string} empty-description - optional text for empty state\n * @attr {string} error-label - title for error state (default: 'Something went wrong')\n * @attr {string} error-description - optional text for error state\n *\n * @fires retry - Emitted when the retry button is clicked (no detail payload)\n *\n * @slot - default content shown in 'success' state\n * @slot loading - custom loading UI (overrides default skeletons)\n * @slot empty - custom empty UI (overrides default icon/label)\n * @slot error - custom error UI (overrides default icon/label)\n *\n * @cssprop --async-color - Text/icon color used by default async state content\n * @cssprop --async-gap - Vertical spacing between icon, title, description, and actions\n * @cssprop --async-icon-size - Icon size for built-in loading/empty/error visuals\n * @example\n * ```html\n * <!-- Success state: default slot is shown -->\n * <ore-async status=\"success\">\n * <ul><li>Item one</li><li>Item two</li></ul>\n * </ore-async>\n *\n * <!-- Loading state: shows skeleton placeholders -->\n * <ore-async status=\"loading\"></ore-async>\n *\n * <!-- Empty state with custom message -->\n * <ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n *\n * <!-- Error state with retry button -->\n * <ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n * ```\n */\nexport const ASYNC_TAG = 'ore-async' as const;\ndefine<OreAsyncProps
|
|
1
|
+
{"version":3,"file":"async.js","names":[],"sources":["../src/feedback/async/async.ts"],"sourcesContent":["import { define, html, prop, bind, useEmit } from '@vielzeug/ore';\nimport { when } from '@vielzeug/ore/directives';\nimport { type Readable, signal } from '@vielzeug/ripple';\n\nimport { reducedMotionMixin } from '../../styles';\nimport componentStyles from './async.css?inline';\n\nexport type AsyncStatus = 'idle' | 'loading' | 'empty' | 'error' | 'success';\n\nexport type OreAsyncEvents = {\n retry: void;\n};\n\nexport type OreAsyncProps = {\n 'empty-description'?: string;\n 'empty-label'?: string;\n 'error-description'?: string;\n 'error-label'?: string;\n retryable?: boolean;\n status?: AsyncStatus;\n};\n\n/**\n * A container for handling asynchronous states (loading, empty, error, success).\n * Simplifies data fetching UI by providing consistent fallbacks.\n *\n * @element ore-async\n *\n * @attr {string} status - current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')\n * @attr {boolean} retryable - show retry button in error state (default: false)\n * @attr {string} empty-label - title for empty state (default: 'No content yet')\n * @attr {string} empty-description - optional text for empty state\n * @attr {string} error-label - title for error state (default: 'Something went wrong')\n * @attr {string} error-description - optional text for error state\n *\n * @fires retry - Emitted when the retry button is clicked (no detail payload)\n *\n * @slot - default content shown in 'success' state\n * @slot loading - custom loading UI (overrides default skeletons)\n * @slot empty - custom empty UI (overrides default icon/label)\n * @slot error - custom error UI (overrides default icon/label)\n *\n * @cssprop --async-color - Text/icon color used by default async state content\n * @cssprop --async-gap - Vertical spacing between icon, title, description, and actions\n * @cssprop --async-icon-size - Icon size for built-in loading/empty/error visuals\n * @example\n * ```html\n * <!-- Success state: default slot is shown -->\n * <ore-async status=\"success\">\n * <ul><li>Item one</li><li>Item two</li></ul>\n * </ore-async>\n *\n * <!-- Loading state: shows skeleton placeholders -->\n * <ore-async status=\"loading\"></ore-async>\n *\n * <!-- Empty state with custom message -->\n * <ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n *\n * <!-- Error state with retry button -->\n * <ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n * ```\n */\nexport const ASYNC_TAG = 'ore-async' as const;\ndefine<OreAsyncProps>(ASYNC_TAG, {\n props: {\n 'empty-description': prop.string(),\n 'empty-label': prop.string('No content yet'),\n 'error-description': prop.string(),\n 'error-label': prop.string('Something went wrong'),\n retryable: prop.bool(false),\n status: prop.oneOf(['idle', 'loading', 'empty', 'error', 'success'] as const, 'success'),\n },\n setup(props) {\n const emit = useEmit<OreAsyncEvents>();\n\n const hasLoadingSlot = signal(false);\n const hasEmptySlot = signal(false);\n const hasErrorSlot = signal(false);\n\n // Reflect status onto the host so CSS can show/hide each region.\n // ARIA attributes are driven reactively by bind().\n bind({\n attr: {\n ariaBusy: () => (props.status.value === 'loading' ? 'true' : 'false'),\n ariaLabel: () => (props.status.value === 'loading' ? 'Loading…' : null),\n ariaLive: () => (props.status.value === 'error' ? 'assertive' : 'polite'),\n status: props.status,\n },\n });\n\n const renderText = (className: 'title' | 'description', text: Readable<string | undefined> | undefined) => () =>\n text?.value ? html`<p class=\"${className}\">${text}</p>` : '';\n\n // All four regions are always in the shadow DOM — CSS on :host([status=\"…\"])\n // toggles their visibility. This means:\n // - No DOM churn on status transitions (no teardown/rebuild of slot elements).\n // - Live regions are always present, so screen readers announce correctly.\n // - focus is never lost across status changes.\n return html`\n <div class=\"region region-idle\" role=\"presentation\"></div>\n\n <div class=\"region region-loading\" role=\"status\">\n <slot\n name=\"loading\"\n @slotchange=${(e: Event) => {\n hasLoadingSlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasLoadingSlot,\n () => html``,\n () => html`\n <div class=\"loading-default\" aria-hidden=\"true\">\n <ore-skeleton variant=\"text\" lines=\"1\" width=\"40%\"></ore-skeleton>\n <ore-skeleton variant=\"text\" lines=\"3\" width=\"100%\"></ore-skeleton>\n <ore-skeleton variant=\"text\" lines=\"1\" width=\"60%\"></ore-skeleton>\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-empty\">\n <slot\n name=\"empty\"\n @slotchange=${(e: Event) => {\n hasEmptySlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasEmptySlot,\n () => html``,\n () => html`\n <div class=\"empty-state\" role=\"status\">\n <div class=\"icon\">\n <ore-icon name=\"inbox\" size=\"100%\" stroke-width=\"1.75\" aria-hidden=\"true\"></ore-icon>\n </div>\n ${renderText('title', props['empty-label'])} ${renderText('description', props['empty-description'])}\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-error\">\n <slot\n name=\"error\"\n @slotchange=${(e: Event) => {\n hasErrorSlot.value = (e.target as HTMLSlotElement).assignedNodes().length > 0;\n }}></slot>\n ${when(\n hasErrorSlot,\n () => html``,\n () => html`\n <div class=\"error-state\" role=\"alert\">\n <div class=\"icon\">\n <ore-icon name=\"triangle-alert\" size=\"100%\" stroke-width=\"1.75\" aria-hidden=\"true\"></ore-icon>\n </div>\n ${renderText('title', props['error-label'])} ${renderText('description', props['error-description'])}\n ${when(\n () => Boolean(props.retryable.value),\n () => html`\n <button class=\"retry-btn\" type=\"button\" @click=${() => emit('retry')}>\n <ore-icon name=\"refresh-cw\" size=\"1em\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n Try again\n </button>\n `,\n )}\n </div>\n `,\n )}\n </div>\n\n <div class=\"region region-success\" role=\"presentation\">\n <slot></slot>\n </div>\n `;\n },\n styles: [reducedMotionMixin, componentStyles],\n});\n"],"mappings":";;;;;;;AA8DA,IAAa,IAAY;AACzB,EAAsB,GAAW;CAC/B,OAAO;EACL,qBAAqB,EAAK,OAAO;EACjC,eAAe,EAAK,OAAO,gBAAgB;EAC3C,qBAAqB,EAAK,OAAO;EACjC,eAAe,EAAK,OAAO,sBAAsB;EACjD,WAAW,EAAK,KAAK,EAAK;EAC1B,QAAQ,EAAK,MAAM;GAAC;GAAQ;GAAW;GAAS;GAAS;EAAS,GAAY,SAAS;CACzF;CACA,MAAM,GAAO;EACX,IAAM,IAAO,EAAwB,GAE/B,IAAiB,EAAO,EAAK,GAC7B,IAAe,EAAO,EAAK,GAC3B,IAAe,EAAO,EAAK;EAIjC,EAAK,EACH,MAAM;GACJ,gBAAiB,EAAM,OAAO,UAAU,YAAY,SAAS;GAC7D,iBAAkB,EAAM,OAAO,UAAU,YAAY,aAAa;GAClE,gBAAiB,EAAM,OAAO,UAAU,UAAU,cAAc;GAChE,QAAQ,EAAM;EAChB,EACF,CAAC;EAED,IAAM,KAAc,GAAoC,YACtD,GAAM,QAAQ,CAAI,aAAa,EAAU,IAAI,EAAK,QAAQ;EAO5D,OAAO,CAAI;;;;;;yBAMU,MAAa;GAC1B,EAAe,QAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,SAAS;EAChF,EAAE;UACF,EACA,SACM,CAAI,UACJ,CAAI;;;;;;WAOZ,EAAE;;;;;;yBAMe,MAAa;GAC1B,EAAa,QAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,SAAS;EAC9E,EAAE;UACF,EACA,SACM,CAAI,UACJ,CAAI;;;;;gBAKJ,EAAW,SAAS,EAAM,cAAc,EAAE,GAAG,EAAW,eAAe,EAAM,oBAAoB,EAAE;;WAG3G,EAAE;;;;;;yBAMe,MAAa;GAC1B,EAAa,QAAS,EAAE,OAA2B,cAAc,CAAC,CAAC,SAAS;EAC9E,EAAE;UACF,EACA,SACM,CAAI,UACJ,CAAI;;;;;gBAKJ,EAAW,SAAS,EAAM,cAAc,EAAE,GAAG,EAAW,eAAe,EAAM,oBAAoB,EAAE;gBACnG,QACM,EAAQ,EAAM,UAAU,aACxB,CAAI;yEAC+C,EAAK,OAAO,EAAE;;;;iBAKzE,EAAE;;WAGR,EAAE;;;;;;;CAOR;CACA,QAAQ,CAAC,GAAoB,CAAe;AAC9C,CAAC"}
|
package/dist/avatar.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/shape.css.cjs"),t=require("./styles/mixins/theme.css.cjs"),n=require("./shared/prop-bundles.cjs"),r=require("./content/avatar/avatar-group.css
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/shape.css.cjs"),t=require("./styles/mixins/theme.css.cjs"),n=require("./shared/prop-bundles.cjs"),r=require("./content/avatar/avatar-group.css.cjs"),i=require("./content/avatar/avatar.css.cjs");let a=require("@vielzeug/ore"),o=require("@vielzeug/ripple");var s={away:`Away`,busy:`Busy`,offline:`Offline`,online:`Online`},c=`ore-avatar`;(0,a.define)(c,{props:{...n.themableBundle,...n.sizableBundle,...n.roundableBundle,alt:a.prop.string(),initials:a.prop.string(),src:a.prop.string(),status:a.prop.string()},setup(e){let t=(0,o.signal)(!1);(0,o.watch)(e.src,()=>{t.value=!1});let n=e=>{e&&(e.addEventListener(`error`,()=>{t.value=!0}),e.addEventListener(`load`,()=>{t.value=!1}))},r=(0,o.computed)(()=>{if(e.initials.value)return e.initials.value.slice(0,2);let t=e.alt.value;if(!t)return``;let n=t.trim().split(/\s+/);return n.length>=2?(n[0][0]+n[n.length-1][0]).toUpperCase():n[0].slice(0,2).toUpperCase()}),i=(0,o.computed)(()=>!!e.src.value&&!t.value),c=(0,o.computed)(()=>!i.value&&!!r.value),l=(0,o.computed)(()=>!i.value&&!c.value),u=()=>{let t=e.alt.value||null,n=e.status.value,r=n?s[n]:null;return!t&&!r?null:t?r?`${t}, ${r}`:t:`Status: ${r}`};return a.html`
|
|
2
2
|
<span class="avatar" part="avatar" :aria-label="${u}" :role="${()=>u()?`img`:null}">
|
|
3
3
|
${()=>e.src.value?a.html`<img
|
|
4
4
|
ref="${n}"
|
|
@@ -11,7 +11,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
|
|
|
11
11
|
${()=>l.value?a.html`<ore-icon class="icon-fallback" part="fallback" name="user" size="50%"></ore-icon>`:``}
|
|
12
12
|
</span>
|
|
13
13
|
${()=>e.status.value?a.html`<span class="status" part="status" :data-status="${e.status}" aria-hidden="true"></span>`:``}
|
|
14
|
-
`},styles:[t.colorThemeMixin,e.roundedVariantMixin,e.sizeVariantMixin({lg:{fontSize:`var(--avatar-font-size, var(--text-base))`,size:`var(--avatar-size, var(--size-14))`},md:{fontSize:`var(--avatar-font-size, var(--text-sm))`,size:`var(--avatar-size, var(--size-10))`},sm:{fontSize:`var(--avatar-font-size, var(--text-xs))`,size:`var(--avatar-size, var(--size-7))`}}),i.default]});var l=`ore-avatar-group`;(0,a.define)(l,{props:{max:a.prop.number(5),total:a.prop.number()},setup(e
|
|
14
|
+
`},styles:[t.colorThemeMixin,e.roundedVariantMixin,e.sizeVariantMixin({lg:{fontSize:`var(--avatar-font-size, var(--text-base))`,size:`var(--avatar-size, var(--size-14))`},md:{fontSize:`var(--avatar-font-size, var(--text-sm))`,size:`var(--avatar-size, var(--size-10))`},sm:{fontSize:`var(--avatar-font-size, var(--text-xs))`,size:`var(--avatar-size, var(--size-7))`}}),i.default]});var l=`ore-avatar-group`;(0,a.define)(l,{props:{max:a.prop.number(5),total:a.prop.number()},setup(e){let t=(0,a.getHost)(),n=(0,a.useSlots)(),r=a.watchEffect,i=(0,o.signal)(0),s=()=>{let n=[...t.querySelectorAll(`ore-avatar`)],r=Number(e.max.value)||5,a=Math.max(0,n.length-r);i.value=e.total.value==null?a:Number(e.total.value)-r,n.forEach((e,t)=>{t>=r?e.setAttribute(`data-avatar-group-hidden`,``):e.removeAttribute(`data-avatar-group-hidden`)})};r(()=>{n.elements().value,s()});let c=()=>`+${i.value} more`,l=()=>`+${i.value}`;return a.html`
|
|
15
15
|
<slot></slot>
|
|
16
16
|
${()=>i.value>0?a.html`<span class="overflow-badge" part="overflow" aria-label="${c}"> ${l} </span>`:``}
|
|
17
17
|
`},styles:[r.default]}),exports.AVATAR_GROUP_TAG=l,exports.AVATAR_TAG=c;
|
package/dist/avatar.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.cjs","names":[],"sources":["../src/content/avatar/avatar.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor } from '../../types';\n\nimport '../icon/icon';\nimport { roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport { colorThemeMixin, roundedVariantMixin, sizeVariantMixin } from '../../styles';\nimport groupStyles from './avatar-group.css?inline';\nimport componentStyles from './avatar.css?inline';\n\nexport type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';\n\nconst STATUS_LABELS: Record<AvatarStatus, string> = {\n away: 'Away',\n busy: 'Busy',\n offline: 'Offline',\n online: 'Online',\n};\n\n/** Avatar component properties */\nexport type OreAvatarProps = {\n /** Alt text for the image; also used to derive initials when no `initials` prop is given */\n alt?: string;\n /** Theme color (used for initials background) */\n color?: ThemeColor;\n /** Explicit initials to display when no image is available (e.g. \"JD\") */\n initials?: string;\n /** Border radius */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Image source URL */\n src?: string;\n /** Online presence indicator */\n status?: AvatarStatus;\n};\n\n// ============================================\n// Component\n// ============================================\n\n/**\n * Displays a user avatar: image → initials → generic fallback icon, in that priority order.\n *\n * @element ore-avatar\n *\n * @attr {string} src - Image source URL\n * @attr {string} alt - Image alt text (also used to derive initials)\n * @attr {string} initials - Explicit initials (up to 2 chars)\n * @attr {string} color - Theme color for initials background: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} status - 'online' | 'offline' | 'busy' | 'away'\n *\n * @slot - Fallback content shown when image and initials are unavailable.\n * @cssprop --avatar-size - Diameter of the avatar\n * @cssprop --avatar-bg - Background color\n * @cssprop --avatar-color - Text/icon color\n * @cssprop --avatar-radius - Border radius\n * @cssprop --avatar-border - Border shorthand\n * @cssprop --avatar-border-color - Border color (also controls status dot border)\n *\n * @part avatar - Avatar root container.\n * @part img - Image element.\n * @part initials - Initials fallback element.\n * @part fallback - Shadow part for the `fallback` element.\n * @part status - Status indicator element.\n * @part overflow - Overflow indicator element.\n * @example\n * ```html\n * <ore-avatar src=\"/jane.jpg\" alt=\"Jane Doe\"></ore-avatar>\n * <ore-avatar initials=\"JD\" color=\"primary\"></ore-avatar>\n * <ore-avatar alt=\"John Smith\" status=\"online\"></ore-avatar>\n * ```\n */\nexport const AVATAR_TAG = 'ore-avatar' as const;\ndefine<OreAvatarProps>(AVATAR_TAG, {\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...roundableBundle,\n alt: prop.string(),\n initials: prop.string(),\n src: prop.string(),\n status: prop.string<AvatarStatus>(),\n },\n setup(props) {\n const imgFailed = signal(false);\n\n // Reset stale error state whenever src changes\n watch(props.src, () => {\n imgFailed.value = false;\n });\n\n // Attach load/error listeners reactively when the img element mounts\n const attachImgListeners = (el: HTMLImageElement | null) => {\n if (!el) return;\n\n el.addEventListener('error', () => {\n imgFailed.value = true;\n });\n el.addEventListener('load', () => {\n imgFailed.value = false;\n });\n };\n const derivedInitials = computed(() => {\n if (props.initials.value) return props.initials.value.slice(0, 2);\n\n const alt = props.alt.value;\n\n if (!alt) return '';\n\n const parts = alt.trim().split(/\\s+/);\n\n if (parts.length >= 2) return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n\n return parts[0].slice(0, 2).toUpperCase();\n });\n const showImage = computed(() => !!props.src.value && !imgFailed.value);\n const showInitials = computed(() => !showImage.value && !!derivedInitials.value);\n const showFallback = computed(() => !showImage.value && !showInitials.value);\n const avatarLabel = () => {\n const name = (props.alt.value as string | undefined) || null;\n const statusKey = props.status.value as AvatarStatus | undefined;\n const status = statusKey ? STATUS_LABELS[statusKey] : null;\n\n if (!name && !status) return null;\n\n if (!name) return `Status: ${status}`;\n\n if (!status) return name;\n\n return `${name}, ${status}`;\n };\n const avatarRole = () => (avatarLabel() ? 'img' : null);\n\n return html`\n <span class=\"avatar\" part=\"avatar\" :aria-label=\"${avatarLabel}\" :role=\"${avatarRole}\">\n ${() =>\n props.src.value\n ? html`<img\n ref=\"${attachImgListeners}\"\n part=\"img\"\n :src=\"${props.src}\"\n :alt=\"${props.alt}\"\n ?hidden=\"${() => !showImage.value}\"\n aria-hidden=\"true\" />`\n : ''}\n ${() =>\n showInitials.value\n ? html`<span class=\"initials\" part=\"initials\" aria-hidden=\"true\">${derivedInitials}</span>`\n : ''}\n ${() =>\n showFallback.value\n ? html`<ore-icon class=\"icon-fallback\" part=\"fallback\" name=\"user\" size=\"50%\"></ore-icon>`\n : ''}\n </span>\n ${() =>\n props.status.value\n ? html`<span class=\"status\" part=\"status\" :data-status=\"${props.status}\" aria-hidden=\"true\"></span>`\n : ''}\n `;\n },\n styles: [\n colorThemeMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: { fontSize: 'var(--avatar-font-size, var(--text-base))', size: 'var(--avatar-size, var(--size-14))' },\n md: { fontSize: 'var(--avatar-font-size, var(--text-sm))', size: 'var(--avatar-size, var(--size-10))' },\n sm: { fontSize: 'var(--avatar-font-size, var(--text-xs))', size: 'var(--avatar-size, var(--size-7))' },\n }),\n componentStyles,\n ],\n});\n\n// ============================================\n// AvatarGroup\n// ============================================\n\n/** AvatarGroup component properties */\nexport type OreAvatarGroupProps = {\n /** Maximum number of avatars to show before showing a +N badge */\n max?: number;\n /** Total count shown in the overflow badge (defaults to the actual hidden count) */\n total?: number;\n};\n\n/**\n * Groups multiple `ore-avatar` elements in a stacked, overlapping row.\n *\n * @element ore-avatar-group\n *\n * @attr {number} max - Max visible avatars before overflow badge (default: 5)\n * @attr {number} total - Override the total count displayed in the badge\n *\n * @slot - `ore-avatar` elements\n *\n * @cssprop --avatar-group-overlap - Negative margin creating the overlap (default: -0.75rem)\n *\n * @part overflow - Overflow count badge shown when avatars exceed `max`.\n *\n * @example\n * ```html\n * <ore-avatar-group max=\"3\">\n * <ore-avatar src=\"/a.jpg\" alt=\"Alice\"></ore-avatar>\n * <ore-avatar src=\"/b.jpg\" alt=\"Bob\"></ore-avatar>\n * <ore-avatar src=\"/c.jpg\" alt=\"Carol\"></ore-avatar>\n * <ore-avatar src=\"/d.jpg\" alt=\"Dave\"></ore-avatar>\n * </ore-avatar-group>\n * ```\n */\nexport const AVATAR_GROUP_TAG = 'ore-avatar-group' as const;\ndefine<OreAvatarGroupProps>(AVATAR_GROUP_TAG, {\n props: {\n max: prop.number(5),\n total: prop.number(),\n },\n setup(props, { el, slots, watch }) {\n const overflowCount = signal(0);\n\n const updateVisibility = () => {\n const avatars = [...el.querySelectorAll('ore-avatar')];\n const max = Number(props.max.value) || 5;\n const hidden = Math.max(0, avatars.length - max);\n\n overflowCount.value = props.total.value != null ? Number(props.total.value) - max : hidden;\n avatars.forEach((a, i) => {\n if (i >= max) a.setAttribute('data-avatar-group-hidden', '');\n else a.removeAttribute('data-avatar-group-hidden');\n });\n };\n\n watch(() => {\n void slots.elements().value;\n updateVisibility();\n });\n\n const overflowLabel = () => `+${overflowCount.value} more`;\n const overflowText = () => `+${overflowCount.value}`;\n\n return html`\n <slot></slot>\n ${() =>\n overflowCount.value > 0\n ? html`<span class=\"overflow-badge\" part=\"overflow\" aria-label=\"${overflowLabel}\"> ${overflowText} </span>`\n : ''}\n `;\n },\n styles: [groupStyles],\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar.cjs","names":[],"sources":["../src/content/avatar/avatar.ts"],"sourcesContent":["import { define, html, prop, getHost, useSlots, watchEffect } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor } from '../../types';\n\nimport '../icon/icon';\nimport { roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport { colorThemeMixin, roundedVariantMixin, sizeVariantMixin } from '../../styles';\nimport groupStyles from './avatar-group.css?inline';\nimport componentStyles from './avatar.css?inline';\n\nexport type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';\n\nconst STATUS_LABELS: Record<AvatarStatus, string> = {\n away: 'Away',\n busy: 'Busy',\n offline: 'Offline',\n online: 'Online',\n};\n\n/** Avatar component properties */\nexport type OreAvatarProps = {\n /** Alt text for the image; also used to derive initials when no `initials` prop is given */\n alt?: string;\n /** Theme color (used for initials background) */\n color?: ThemeColor;\n /** Explicit initials to display when no image is available (e.g. \"JD\") */\n initials?: string;\n /** Border radius */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Image source URL */\n src?: string;\n /** Online presence indicator */\n status?: AvatarStatus;\n};\n\n// ============================================\n// Component\n// ============================================\n\n/**\n * Displays a user avatar: image → initials → generic fallback icon, in that priority order.\n *\n * @element ore-avatar\n *\n * @attr {string} src - Image source URL\n * @attr {string} alt - Image alt text (also used to derive initials)\n * @attr {string} initials - Explicit initials (up to 2 chars)\n * @attr {string} color - Theme color for initials background: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} status - 'online' | 'offline' | 'busy' | 'away'\n *\n * @slot - Fallback content shown when image and initials are unavailable.\n * @cssprop --avatar-size - Diameter of the avatar\n * @cssprop --avatar-bg - Background color\n * @cssprop --avatar-color - Text/icon color\n * @cssprop --avatar-radius - Border radius\n * @cssprop --avatar-border - Border shorthand\n * @cssprop --avatar-border-color - Border color (also controls status dot border)\n *\n * @part avatar - Avatar root container.\n * @part img - Image element.\n * @part initials - Initials fallback element.\n * @part fallback - Shadow part for the `fallback` element.\n * @part status - Status indicator element.\n * @part overflow - Overflow indicator element.\n * @example\n * ```html\n * <ore-avatar src=\"/jane.jpg\" alt=\"Jane Doe\"></ore-avatar>\n * <ore-avatar initials=\"JD\" color=\"primary\"></ore-avatar>\n * <ore-avatar alt=\"John Smith\" status=\"online\"></ore-avatar>\n * ```\n */\nexport const AVATAR_TAG = 'ore-avatar' as const;\ndefine<OreAvatarProps>(AVATAR_TAG, {\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...roundableBundle,\n alt: prop.string(),\n initials: prop.string(),\n src: prop.string(),\n status: prop.string<AvatarStatus>(),\n },\n setup(props) {\n const imgFailed = signal(false);\n\n // Reset stale error state whenever src changes\n watch(props.src, () => {\n imgFailed.value = false;\n });\n\n // Attach load/error listeners reactively when the img element mounts\n const attachImgListeners = (el: HTMLImageElement | null) => {\n if (!el) return;\n\n el.addEventListener('error', () => {\n imgFailed.value = true;\n });\n el.addEventListener('load', () => {\n imgFailed.value = false;\n });\n };\n const derivedInitials = computed(() => {\n if (props.initials.value) return props.initials.value.slice(0, 2);\n\n const alt = props.alt.value;\n\n if (!alt) return '';\n\n const parts = alt.trim().split(/\\s+/);\n\n if (parts.length >= 2) return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n\n return parts[0].slice(0, 2).toUpperCase();\n });\n const showImage = computed(() => !!props.src.value && !imgFailed.value);\n const showInitials = computed(() => !showImage.value && !!derivedInitials.value);\n const showFallback = computed(() => !showImage.value && !showInitials.value);\n const avatarLabel = () => {\n const name = (props.alt.value as string | undefined) || null;\n const statusKey = props.status.value as AvatarStatus | undefined;\n const status = statusKey ? STATUS_LABELS[statusKey] : null;\n\n if (!name && !status) return null;\n\n if (!name) return `Status: ${status}`;\n\n if (!status) return name;\n\n return `${name}, ${status}`;\n };\n const avatarRole = () => (avatarLabel() ? 'img' : null);\n\n return html`\n <span class=\"avatar\" part=\"avatar\" :aria-label=\"${avatarLabel}\" :role=\"${avatarRole}\">\n ${() =>\n props.src.value\n ? html`<img\n ref=\"${attachImgListeners}\"\n part=\"img\"\n :src=\"${props.src}\"\n :alt=\"${props.alt}\"\n ?hidden=\"${() => !showImage.value}\"\n aria-hidden=\"true\" />`\n : ''}\n ${() =>\n showInitials.value\n ? html`<span class=\"initials\" part=\"initials\" aria-hidden=\"true\">${derivedInitials}</span>`\n : ''}\n ${() =>\n showFallback.value\n ? html`<ore-icon class=\"icon-fallback\" part=\"fallback\" name=\"user\" size=\"50%\"></ore-icon>`\n : ''}\n </span>\n ${() =>\n props.status.value\n ? html`<span class=\"status\" part=\"status\" :data-status=\"${props.status}\" aria-hidden=\"true\"></span>`\n : ''}\n `;\n },\n styles: [\n colorThemeMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: { fontSize: 'var(--avatar-font-size, var(--text-base))', size: 'var(--avatar-size, var(--size-14))' },\n md: { fontSize: 'var(--avatar-font-size, var(--text-sm))', size: 'var(--avatar-size, var(--size-10))' },\n sm: { fontSize: 'var(--avatar-font-size, var(--text-xs))', size: 'var(--avatar-size, var(--size-7))' },\n }),\n componentStyles,\n ],\n});\n\n// ============================================\n// AvatarGroup\n// ============================================\n\n/** AvatarGroup component properties */\nexport type OreAvatarGroupProps = {\n /** Maximum number of avatars to show before showing a +N badge */\n max?: number;\n /** Total count shown in the overflow badge (defaults to the actual hidden count) */\n total?: number;\n};\n\n/**\n * Groups multiple `ore-avatar` elements in a stacked, overlapping row.\n *\n * @element ore-avatar-group\n *\n * @attr {number} max - Max visible avatars before overflow badge (default: 5)\n * @attr {number} total - Override the total count displayed in the badge\n *\n * @slot - `ore-avatar` elements\n *\n * @cssprop --avatar-group-overlap - Negative margin creating the overlap (default: -0.75rem)\n *\n * @part overflow - Overflow count badge shown when avatars exceed `max`.\n *\n * @example\n * ```html\n * <ore-avatar-group max=\"3\">\n * <ore-avatar src=\"/a.jpg\" alt=\"Alice\"></ore-avatar>\n * <ore-avatar src=\"/b.jpg\" alt=\"Bob\"></ore-avatar>\n * <ore-avatar src=\"/c.jpg\" alt=\"Carol\"></ore-avatar>\n * <ore-avatar src=\"/d.jpg\" alt=\"Dave\"></ore-avatar>\n * </ore-avatar-group>\n * ```\n */\nexport const AVATAR_GROUP_TAG = 'ore-avatar-group' as const;\ndefine<OreAvatarGroupProps>(AVATAR_GROUP_TAG, {\n props: {\n max: prop.number(5),\n total: prop.number(),\n },\n setup(props) {\n const el = getHost();\n const slots = useSlots();\n const watch = watchEffect;\n\n const overflowCount = signal(0);\n\n const updateVisibility = () => {\n const avatars = [...el.querySelectorAll('ore-avatar')];\n const max = Number(props.max.value) || 5;\n const hidden = Math.max(0, avatars.length - max);\n\n overflowCount.value = props.total.value != null ? Number(props.total.value) - max : hidden;\n avatars.forEach((a, i) => {\n if (i >= max) a.setAttribute('data-avatar-group-hidden', '');\n else a.removeAttribute('data-avatar-group-hidden');\n });\n };\n\n watch(() => {\n void slots.elements().value;\n updateVisibility();\n });\n\n const overflowLabel = () => `+${overflowCount.value} more`;\n const overflowText = () => `+${overflowCount.value}`;\n\n return html`\n <slot></slot>\n ${() =>\n overflowCount.value > 0\n ? html`<span class=\"overflow-badge\" part=\"overflow\" aria-label=\"${overflowLabel}\"> ${overflowText} </span>`\n : ''}\n `;\n },\n styles: [groupStyles],\n});\n"],"mappings":"mWAaA,IAAM,EAA8C,CAClD,KAAM,OACN,KAAM,OACN,QAAS,UACT,OAAQ,QACV,EA0Da,EAAa,0BACH,EAAY,CACjC,MAAO,CACL,GAAG,EAAA,eACH,GAAG,EAAA,cACH,GAAG,EAAA,gBACH,IAAK,EAAA,KAAK,OAAO,EACjB,SAAU,EAAA,KAAK,OAAO,EACtB,IAAK,EAAA,KAAK,OAAO,EACjB,OAAQ,EAAA,KAAK,OAAqB,CACpC,EACA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,OAAA,CAAmB,EAAK,GAG9B,EAAA,EAAA,MAAA,CAAM,EAAM,QAAW,CACrB,EAAU,MAAQ,EACpB,CAAC,EAGD,IAAM,EAAsB,GAAgC,CACrD,IAEL,EAAG,iBAAiB,YAAe,CACjC,EAAU,MAAQ,EACpB,CAAC,EACD,EAAG,iBAAiB,WAAc,CAChC,EAAU,MAAQ,EACpB,CAAC,EACH,EACM,GAAA,EAAA,EAAA,SAAA,KAAiC,CACrC,GAAI,EAAM,SAAS,MAAO,OAAO,EAAM,SAAS,MAAM,MAAM,EAAG,CAAC,EAEhE,IAAM,EAAM,EAAM,IAAI,MAEtB,GAAI,CAAC,EAAK,MAAO,GAEjB,IAAM,EAAQ,EAAI,KAAK,CAAC,CAAC,MAAM,KAAK,EAIpC,OAFI,EAAM,QAAU,GAAW,EAAM,EAAE,CAAC,GAAK,EAAM,EAAM,OAAS,EAAE,CAAC,GAAA,CAAI,YAAY,EAE9E,EAAM,EAAE,CAAC,MAAM,EAAG,CAAC,CAAC,CAAC,YAAY,CAC1C,CAAC,EACK,GAAA,EAAA,EAAA,SAAA,KAA2B,CAAC,CAAC,EAAM,IAAI,OAAS,CAAC,EAAU,KAAK,EAChE,GAAA,EAAA,EAAA,SAAA,KAA8B,CAAC,EAAU,OAAS,CAAC,CAAC,EAAgB,KAAK,EACzE,GAAA,EAAA,EAAA,SAAA,KAA8B,CAAC,EAAU,OAAS,CAAC,EAAa,KAAK,EACrE,MAAoB,CACxB,IAAM,EAAQ,EAAM,IAAI,OAAgC,KAClD,EAAY,EAAM,OAAO,MACzB,EAAS,EAAY,EAAc,GAAa,KAQtD,MANI,CAAC,GAAQ,CAAC,EAAe,KAExB,EAEA,EAEE,GAAG,EAAK,IAAI,IAFC,EAFF,WAAW,GAK/B,EAGA,MAAO,GAAA,IAAI;wDACyC,EAAY,eAHtC,EAAY,EAAI,MAAQ,KAGoC;cAEhF,EAAM,IAAI,MACN,EAAA,IAAI;uBACK,EAAmB;;wBAElB,EAAM,IAAI;wBACV,EAAM,IAAI;+BACD,CAAC,EAAU,MAAM;uCAEpC,GAAG;cAEP,EAAa,MACT,EAAA,IAAI,6DAA6D,EAAgB,SACjF,GAAG;cAEP,EAAa,MACT,EAAA,IAAI,qFACJ,GAAG;;YAGT,EAAM,OAAO,MACT,EAAA,IAAI,oDAAoD,EAAM,OAAO,8BACrE,GAAG;KAEb,EACA,OAAQ,CACN,EAAA,gBACA,EAAA,oBACA,EAAA,iBAAiB,CACf,GAAI,CAAE,SAAU,4CAA6C,KAAM,oCAAqC,EACxG,GAAI,CAAE,SAAU,0CAA2C,KAAM,oCAAqC,EACtG,GAAI,CAAE,SAAU,0CAA2C,KAAM,mCAAoC,CACvG,CAAC,EACD,EAAA,OACF,CACF,CAAC,EAsCD,IAAa,EAAmB,gCACJ,EAAkB,CAC5C,MAAO,CACL,IAAK,EAAA,KAAK,OAAO,CAAC,EAClB,MAAO,EAAA,KAAK,OAAO,CACrB,EACA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,QAAA,CAAa,EACb,GAAA,EAAA,EAAA,SAAA,CAAiB,EACjB,EAAQ,EAAA,YAER,GAAA,EAAA,EAAA,OAAA,CAAuB,CAAC,EAExB,MAAyB,CAC7B,IAAM,EAAU,CAAC,GAAG,EAAG,iBAAiB,YAAY,CAAC,EAC/C,EAAM,OAAO,EAAM,IAAI,KAAK,GAAK,EACjC,EAAS,KAAK,IAAI,EAAG,EAAQ,OAAS,CAAG,EAE/C,EAAc,MAAQ,EAAM,MAAM,OAAS,KAAyC,EAAlC,OAAO,EAAM,MAAM,KAAK,EAAI,EAC9E,EAAQ,SAAS,EAAG,IAAM,CACpB,GAAK,EAAK,EAAE,aAAa,2BAA4B,EAAE,EACtD,EAAE,gBAAgB,0BAA0B,CACnD,CAAC,CACH,EAEA,MAAY,CACV,EAAW,SAAS,CAAC,CAAC,MACtB,EAAiB,CACnB,CAAC,EAED,IAAM,MAAsB,IAAI,EAAc,MAAM,OAC9C,MAAqB,IAAI,EAAc,QAE7C,MAAO,GAAA,IAAI;;YAGP,EAAc,MAAQ,EAClB,EAAA,IAAI,4DAA4D,EAAc,KAAK,EAAa,UAChG,GAAG;KAEb,EACA,OAAQ,CAAC,EAAA,OAAW,CACtB,CAAC"}
|
package/dist/avatar.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { roundedVariantMixin as e, sizeVariantMixin as t } from "./styles/mixins/shape.css.js";
|
|
2
2
|
import { colorThemeMixin as n } from "./styles/mixins/theme.css.js";
|
|
3
3
|
import { roundableBundle as r, sizableBundle as i, themableBundle as a } from "./shared/prop-bundles.js";
|
|
4
|
-
import o from "./content/avatar/avatar-group.css
|
|
5
|
-
import s from "./content/avatar/avatar.css
|
|
6
|
-
import { define as c,
|
|
7
|
-
import { computed as
|
|
4
|
+
import o from "./content/avatar/avatar-group.css.js";
|
|
5
|
+
import s from "./content/avatar/avatar.css.js";
|
|
6
|
+
import { define as c, getHost as l, html as u, prop as d, useSlots as f, watchEffect as p } from "@vielzeug/ore";
|
|
7
|
+
import { computed as m, signal as h, watch as g } from "@vielzeug/ripple";
|
|
8
8
|
//#region src/content/avatar/avatar.ts
|
|
9
|
-
var
|
|
9
|
+
var _ = {
|
|
10
10
|
away: "Away",
|
|
11
11
|
busy: "Busy",
|
|
12
12
|
offline: "Offline",
|
|
13
13
|
online: "Online"
|
|
14
|
-
},
|
|
15
|
-
c(
|
|
14
|
+
}, v = "ore-avatar";
|
|
15
|
+
c(v, {
|
|
16
16
|
props: {
|
|
17
17
|
...a,
|
|
18
18
|
...i,
|
|
19
19
|
...r,
|
|
20
|
-
alt:
|
|
21
|
-
initials:
|
|
22
|
-
src:
|
|
23
|
-
status:
|
|
20
|
+
alt: d.string(),
|
|
21
|
+
initials: d.string(),
|
|
22
|
+
src: d.string(),
|
|
23
|
+
status: d.string()
|
|
24
24
|
},
|
|
25
25
|
setup(e) {
|
|
26
|
-
let t =
|
|
27
|
-
|
|
26
|
+
let t = h(!1);
|
|
27
|
+
g(e.src, () => {
|
|
28
28
|
t.value = !1;
|
|
29
29
|
});
|
|
30
30
|
let n = (e) => {
|
|
@@ -33,29 +33,29 @@ c(h, {
|
|
|
33
33
|
}), e.addEventListener("load", () => {
|
|
34
34
|
t.value = !1;
|
|
35
35
|
}));
|
|
36
|
-
}, r =
|
|
36
|
+
}, r = m(() => {
|
|
37
37
|
if (e.initials.value) return e.initials.value.slice(0, 2);
|
|
38
38
|
let t = e.alt.value;
|
|
39
39
|
if (!t) return "";
|
|
40
40
|
let n = t.trim().split(/\s+/);
|
|
41
41
|
return n.length >= 2 ? (n[0][0] + n[n.length - 1][0]).toUpperCase() : n[0].slice(0, 2).toUpperCase();
|
|
42
|
-
}), i =
|
|
43
|
-
let t = e.alt.value || null, n = e.status.value, r = n ?
|
|
42
|
+
}), i = m(() => !!e.src.value && !t.value), a = m(() => !i.value && !!r.value), o = m(() => !i.value && !a.value), s = () => {
|
|
43
|
+
let t = e.alt.value || null, n = e.status.value, r = n ? _[n] : null;
|
|
44
44
|
return !t && !r ? null : t ? r ? `${t}, ${r}` : t : `Status: ${r}`;
|
|
45
45
|
};
|
|
46
|
-
return
|
|
46
|
+
return u`
|
|
47
47
|
<span class="avatar" part="avatar" :aria-label="${s}" :role="${() => s() ? "img" : null}">
|
|
48
|
-
${() => e.src.value ?
|
|
48
|
+
${() => e.src.value ? u`<img
|
|
49
49
|
ref="${n}"
|
|
50
50
|
part="img"
|
|
51
51
|
:src="${e.src}"
|
|
52
52
|
:alt="${e.alt}"
|
|
53
53
|
?hidden="${() => !i.value}"
|
|
54
54
|
aria-hidden="true" />` : ""}
|
|
55
|
-
${() => a.value ?
|
|
56
|
-
${() => o.value ?
|
|
55
|
+
${() => a.value ? u`<span class="initials" part="initials" aria-hidden="true">${r}</span>` : ""}
|
|
56
|
+
${() => o.value ? u`<ore-icon class="icon-fallback" part="fallback" name="user" size="50%"></ore-icon>` : ""}
|
|
57
57
|
</span>
|
|
58
|
-
${() => e.status.value ?
|
|
58
|
+
${() => e.status.value ? u`<span class="status" part="status" :data-status="${e.status}" aria-hidden="true"></span>` : ""}
|
|
59
59
|
`;
|
|
60
60
|
},
|
|
61
61
|
styles: [
|
|
@@ -78,14 +78,14 @@ c(h, {
|
|
|
78
78
|
s
|
|
79
79
|
]
|
|
80
80
|
});
|
|
81
|
-
var
|
|
82
|
-
c(
|
|
81
|
+
var y = "ore-avatar-group";
|
|
82
|
+
c(y, {
|
|
83
83
|
props: {
|
|
84
|
-
max:
|
|
85
|
-
total:
|
|
84
|
+
max: d.number(5),
|
|
85
|
+
total: d.number()
|
|
86
86
|
},
|
|
87
|
-
setup(e
|
|
88
|
-
let
|
|
87
|
+
setup(e) {
|
|
88
|
+
let t = l(), n = f(), r = p, i = h(0), a = () => {
|
|
89
89
|
let n = [...t.querySelectorAll("ore-avatar")], r = Number(e.max.value) || 5, a = Math.max(0, n.length - r);
|
|
90
90
|
i.value = e.total.value == null ? a : Number(e.total.value) - r, n.forEach((e, t) => {
|
|
91
91
|
t >= r ? e.setAttribute("data-avatar-group-hidden", "") : e.removeAttribute("data-avatar-group-hidden");
|
|
@@ -95,14 +95,14 @@ c(g, {
|
|
|
95
95
|
n.elements().value, a();
|
|
96
96
|
});
|
|
97
97
|
let o = () => `+${i.value} more`, s = () => `+${i.value}`;
|
|
98
|
-
return
|
|
98
|
+
return u`
|
|
99
99
|
<slot></slot>
|
|
100
|
-
${() => i.value > 0 ?
|
|
100
|
+
${() => i.value > 0 ? u`<span class="overflow-badge" part="overflow" aria-label="${o}"> ${s} </span>` : ""}
|
|
101
101
|
`;
|
|
102
102
|
},
|
|
103
103
|
styles: [o]
|
|
104
104
|
});
|
|
105
105
|
//#endregion
|
|
106
|
-
export {
|
|
106
|
+
export { y as AVATAR_GROUP_TAG, v as AVATAR_TAG };
|
|
107
107
|
|
|
108
108
|
//# sourceMappingURL=avatar.js.map
|