@vielzeug/refine 1.1.1 → 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 +5579 -4843
- 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 +763 -630
- package/dist/refine.cjs.map +1 -1
- package/dist/refine.iife.js +752 -619
- package/dist/refine.iife.js.map +1 -1
- package/dist/refine.js +774 -641
- 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/grid-item.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-item.cjs","names":[],"sources":["../src/layout/grid-item/grid-item.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport styles from './grid-item.css?inline';\n\n/** Grid item component properties */\nexport type OreGridItemProps = {\n /** Align self vertically within the grid cell */\n align?: 'start' | 'center' | 'end' | 'stretch';\n /** Named grid area to place the item into. */\n area?: string;\n /** Explicit grid-column value — overrides col-span (e.g. '2 / 5', 'span 3', '1 / -1'). */\n col?: string;\n /** Span N columns. Use 'full' to span all columns (1 / -1). */\n colSpan?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full';\n /** Justify self horizontally within the grid cell */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Explicit grid-row value — overrides row-span (e.g. '1 / 3', 'span 2'). */\n row?: string;\n /** Span N rows. Use 'full' to span all rows (1 / -1). */\n rowSpan?: '1' | '2' | '3' | '4' | '5' | '6' | 'full';\n};\n\n/**\n * ore-grid-item — A grid cell with declarative placement and span control.\n *\n * Use `col-span` / `row-span` for the common case of spanning columns/rows.\n * Use `col` / `row` for full CSS grid-column / grid-row shorthand power\n * (e.g. explicit placement, mixed span + start, negative lines).\n *\n * @element ore-grid-item\n *\n * @attr {string} area - CSS grid-area value for named-area placement\n * @attr {string} col-span - Columns to span: '1'–'12' | 'full'\n * @attr {string} row-span - Rows to span: '1'–'6' | 'full'\n * @attr {string} col - CSS grid-column value (overrides col-span)\n * @attr {string} row - CSS grid-row value (overrides row-span)\n * @attr {string} align - align-self: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} justify - justify-self: 'start' | 'center' | 'end' | 'stretch'\n *\n * @slot - Grid item content\n *\n * @example\n * <!-- Span 2 columns -->\n * <ore-grid-item col-span=\"2\">Wide</ore-grid-item>\n *\n * @example\n * <!-- Full-width row -->\n * <ore-grid-item col-span=\"full\">Banner</ore-grid-item>\n *\n * @example\n * <!-- Named area placement -->\n * <ore-grid-item area=\"sidebar\">Nav</ore-grid-item>\n *\n * @example\n * <!-- Explicit placement -->\n * <ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>\n */\nexport const GRID_ITEM_TAG = 'ore-grid-item' as const;\ndefine<OreGridItemProps>(GRID_ITEM_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n area: prop.string(),\n col: prop.string(),\n colSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n row: prop.string(),\n rowSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | 'full'>(),\n },\n setup(props
|
|
1
|
+
{"version":3,"file":"grid-item.cjs","names":[],"sources":["../src/layout/grid-item/grid-item.ts"],"sourcesContent":["import { bind, define, html, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport styles from './grid-item.css?inline';\n\n/** Grid item component properties */\nexport type OreGridItemProps = {\n /** Align self vertically within the grid cell */\n align?: 'start' | 'center' | 'end' | 'stretch';\n /** Named grid area to place the item into. */\n area?: string;\n /** Explicit grid-column value — overrides col-span (e.g. '2 / 5', 'span 3', '1 / -1'). */\n col?: string;\n /** Span N columns. Use 'full' to span all columns (1 / -1). */\n colSpan?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full';\n /** Justify self horizontally within the grid cell */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Explicit grid-row value — overrides row-span (e.g. '1 / 3', 'span 2'). */\n row?: string;\n /** Span N rows. Use 'full' to span all rows (1 / -1). */\n rowSpan?: '1' | '2' | '3' | '4' | '5' | '6' | 'full';\n};\n\n/**\n * ore-grid-item — A grid cell with declarative placement and span control.\n *\n * Use `col-span` / `row-span` for the common case of spanning columns/rows.\n * Use `col` / `row` for full CSS grid-column / grid-row shorthand power\n * (e.g. explicit placement, mixed span + start, negative lines).\n *\n * @element ore-grid-item\n *\n * @attr {string} area - CSS grid-area value for named-area placement\n * @attr {string} col-span - Columns to span: '1'–'12' | 'full'\n * @attr {string} row-span - Rows to span: '1'–'6' | 'full'\n * @attr {string} col - CSS grid-column value (overrides col-span)\n * @attr {string} row - CSS grid-row value (overrides row-span)\n * @attr {string} align - align-self: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} justify - justify-self: 'start' | 'center' | 'end' | 'stretch'\n *\n * @slot - Grid item content\n *\n * @example\n * <!-- Span 2 columns -->\n * <ore-grid-item col-span=\"2\">Wide</ore-grid-item>\n *\n * @example\n * <!-- Full-width row -->\n * <ore-grid-item col-span=\"full\">Banner</ore-grid-item>\n *\n * @example\n * <!-- Named area placement -->\n * <ore-grid-item area=\"sidebar\">Nav</ore-grid-item>\n *\n * @example\n * <!-- Explicit placement -->\n * <ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>\n */\nexport const GRID_ITEM_TAG = 'ore-grid-item' as const;\ndefine<OreGridItemProps>(GRID_ITEM_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n area: prop.string(),\n col: prop.string(),\n colSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n row: prop.string(),\n rowSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | 'full'>(),\n },\n setup(props) {\n const gridColumn = computed(() => {\n const col = props.col.value;\n const span = props.colSpan.value;\n\n if (col) return col;\n\n if (span === 'full') return '1 / -1';\n\n if (span) return `span ${span}`;\n\n return '';\n });\n\n const gridRow = computed(() => {\n const row = props.row.value;\n const span = props.rowSpan.value;\n\n if (row) return row;\n\n if (span === 'full') return '1 / -1';\n\n if (span) return `span ${span}`;\n\n return '';\n });\n\n bind({\n style: {\n gridArea: props.area,\n gridColumn,\n gridRow,\n },\n });\n\n return html`<slot></slot>`;\n },\n styles: [styles],\n});\n"],"mappings":"wLA0DA,IAAa,EAAgB,6BACJ,EAAe,CACtC,MAAO,CACL,MAAO,EAAA,KAAK,OAA+C,EAC3D,KAAM,EAAA,KAAK,OAAO,EAClB,IAAK,EAAA,KAAK,OAAO,EACjB,QAAS,EAAA,KAAK,OAA0F,EACxG,QAAS,EAAA,KAAK,OAA+C,EAC7D,IAAK,EAAA,KAAK,OAAO,EACjB,QAAS,EAAA,KAAK,OAAmD,CACnE,EACA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,SAAA,KAA4B,CAChC,IAAM,EAAM,EAAM,IAAI,MAChB,EAAO,EAAM,QAAQ,MAQ3B,OANI,IAEA,IAAS,OAAe,SAExB,EAAa,QAAQ,IAElB,GACT,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,IAAM,EAAM,EAAM,IAAI,MAChB,EAAO,EAAM,QAAQ,MAQ3B,OANI,IAEA,IAAS,OAAe,SAExB,EAAa,QAAQ,IAElB,GACT,CAAC,EAUD,OARA,EAAA,EAAA,KAAA,CAAK,CACH,MAAO,CACL,SAAU,EAAM,KAChB,aACA,SACF,CACF,CAAC,EAEM,EAAA,IAAI,eACb,EACA,OAAQ,CAAC,EAAA,OAAM,CACjB,CAAC"}
|
package/dist/grid-item.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import e from "./layout/grid-item/grid-item.css
|
|
2
|
-
import {
|
|
3
|
-
import { computed as
|
|
1
|
+
import e from "./layout/grid-item/grid-item.css.js";
|
|
2
|
+
import { bind as t, define as n, html as r, prop as i } from "@vielzeug/ore";
|
|
3
|
+
import { computed as a } from "@vielzeug/ripple";
|
|
4
4
|
//#region src/layout/grid-item/grid-item.ts
|
|
5
|
-
var
|
|
6
|
-
|
|
5
|
+
var o = "ore-grid-item";
|
|
6
|
+
n(o, {
|
|
7
7
|
props: {
|
|
8
|
-
align:
|
|
9
|
-
area:
|
|
10
|
-
col:
|
|
11
|
-
colSpan:
|
|
12
|
-
justify:
|
|
13
|
-
row:
|
|
14
|
-
rowSpan:
|
|
8
|
+
align: i.string(),
|
|
9
|
+
area: i.string(),
|
|
10
|
+
col: i.string(),
|
|
11
|
+
colSpan: i.string(),
|
|
12
|
+
justify: i.string(),
|
|
13
|
+
row: i.string(),
|
|
14
|
+
rowSpan: i.string()
|
|
15
15
|
},
|
|
16
|
-
setup(e
|
|
17
|
-
let
|
|
16
|
+
setup(e) {
|
|
17
|
+
let n = a(() => {
|
|
18
18
|
let t = e.col.value, n = e.colSpan.value;
|
|
19
19
|
return t || (n === "full" ? "1 / -1" : n ? `span ${n}` : "");
|
|
20
|
-
}),
|
|
20
|
+
}), i = a(() => {
|
|
21
21
|
let t = e.row.value, n = e.rowSpan.value;
|
|
22
22
|
return t || (n === "full" ? "1 / -1" : n ? `span ${n}` : "");
|
|
23
23
|
});
|
|
24
24
|
return t({ style: {
|
|
25
25
|
gridArea: e.area,
|
|
26
|
-
gridColumn:
|
|
27
|
-
gridRow:
|
|
28
|
-
} }),
|
|
26
|
+
gridColumn: n,
|
|
27
|
+
gridRow: i
|
|
28
|
+
} }), r`<slot></slot>`;
|
|
29
29
|
},
|
|
30
30
|
styles: [e]
|
|
31
31
|
});
|
|
32
32
|
//#endregion
|
|
33
|
-
export {
|
|
33
|
+
export { o as GRID_ITEM_TAG };
|
|
34
34
|
|
|
35
35
|
//# sourceMappingURL=grid-item.js.map
|
package/dist/grid-item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-item.js","names":[],"sources":["../src/layout/grid-item/grid-item.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport styles from './grid-item.css?inline';\n\n/** Grid item component properties */\nexport type OreGridItemProps = {\n /** Align self vertically within the grid cell */\n align?: 'start' | 'center' | 'end' | 'stretch';\n /** Named grid area to place the item into. */\n area?: string;\n /** Explicit grid-column value — overrides col-span (e.g. '2 / 5', 'span 3', '1 / -1'). */\n col?: string;\n /** Span N columns. Use 'full' to span all columns (1 / -1). */\n colSpan?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full';\n /** Justify self horizontally within the grid cell */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Explicit grid-row value — overrides row-span (e.g. '1 / 3', 'span 2'). */\n row?: string;\n /** Span N rows. Use 'full' to span all rows (1 / -1). */\n rowSpan?: '1' | '2' | '3' | '4' | '5' | '6' | 'full';\n};\n\n/**\n * ore-grid-item — A grid cell with declarative placement and span control.\n *\n * Use `col-span` / `row-span` for the common case of spanning columns/rows.\n * Use `col` / `row` for full CSS grid-column / grid-row shorthand power\n * (e.g. explicit placement, mixed span + start, negative lines).\n *\n * @element ore-grid-item\n *\n * @attr {string} area - CSS grid-area value for named-area placement\n * @attr {string} col-span - Columns to span: '1'–'12' | 'full'\n * @attr {string} row-span - Rows to span: '1'–'6' | 'full'\n * @attr {string} col - CSS grid-column value (overrides col-span)\n * @attr {string} row - CSS grid-row value (overrides row-span)\n * @attr {string} align - align-self: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} justify - justify-self: 'start' | 'center' | 'end' | 'stretch'\n *\n * @slot - Grid item content\n *\n * @example\n * <!-- Span 2 columns -->\n * <ore-grid-item col-span=\"2\">Wide</ore-grid-item>\n *\n * @example\n * <!-- Full-width row -->\n * <ore-grid-item col-span=\"full\">Banner</ore-grid-item>\n *\n * @example\n * <!-- Named area placement -->\n * <ore-grid-item area=\"sidebar\">Nav</ore-grid-item>\n *\n * @example\n * <!-- Explicit placement -->\n * <ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>\n */\nexport const GRID_ITEM_TAG = 'ore-grid-item' as const;\ndefine<OreGridItemProps>(GRID_ITEM_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n area: prop.string(),\n col: prop.string(),\n colSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n row: prop.string(),\n rowSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | 'full'>(),\n },\n setup(props
|
|
1
|
+
{"version":3,"file":"grid-item.js","names":[],"sources":["../src/layout/grid-item/grid-item.ts"],"sourcesContent":["import { bind, define, html, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport styles from './grid-item.css?inline';\n\n/** Grid item component properties */\nexport type OreGridItemProps = {\n /** Align self vertically within the grid cell */\n align?: 'start' | 'center' | 'end' | 'stretch';\n /** Named grid area to place the item into. */\n area?: string;\n /** Explicit grid-column value — overrides col-span (e.g. '2 / 5', 'span 3', '1 / -1'). */\n col?: string;\n /** Span N columns. Use 'full' to span all columns (1 / -1). */\n colSpan?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full';\n /** Justify self horizontally within the grid cell */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Explicit grid-row value — overrides row-span (e.g. '1 / 3', 'span 2'). */\n row?: string;\n /** Span N rows. Use 'full' to span all rows (1 / -1). */\n rowSpan?: '1' | '2' | '3' | '4' | '5' | '6' | 'full';\n};\n\n/**\n * ore-grid-item — A grid cell with declarative placement and span control.\n *\n * Use `col-span` / `row-span` for the common case of spanning columns/rows.\n * Use `col` / `row` for full CSS grid-column / grid-row shorthand power\n * (e.g. explicit placement, mixed span + start, negative lines).\n *\n * @element ore-grid-item\n *\n * @attr {string} area - CSS grid-area value for named-area placement\n * @attr {string} col-span - Columns to span: '1'–'12' | 'full'\n * @attr {string} row-span - Rows to span: '1'–'6' | 'full'\n * @attr {string} col - CSS grid-column value (overrides col-span)\n * @attr {string} row - CSS grid-row value (overrides row-span)\n * @attr {string} align - align-self: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} justify - justify-self: 'start' | 'center' | 'end' | 'stretch'\n *\n * @slot - Grid item content\n *\n * @example\n * <!-- Span 2 columns -->\n * <ore-grid-item col-span=\"2\">Wide</ore-grid-item>\n *\n * @example\n * <!-- Full-width row -->\n * <ore-grid-item col-span=\"full\">Banner</ore-grid-item>\n *\n * @example\n * <!-- Named area placement -->\n * <ore-grid-item area=\"sidebar\">Nav</ore-grid-item>\n *\n * @example\n * <!-- Explicit placement -->\n * <ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>\n */\nexport const GRID_ITEM_TAG = 'ore-grid-item' as const;\ndefine<OreGridItemProps>(GRID_ITEM_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n area: prop.string(),\n col: prop.string(),\n colSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'full'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n row: prop.string(),\n rowSpan: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | 'full'>(),\n },\n setup(props) {\n const gridColumn = computed(() => {\n const col = props.col.value;\n const span = props.colSpan.value;\n\n if (col) return col;\n\n if (span === 'full') return '1 / -1';\n\n if (span) return `span ${span}`;\n\n return '';\n });\n\n const gridRow = computed(() => {\n const row = props.row.value;\n const span = props.rowSpan.value;\n\n if (row) return row;\n\n if (span === 'full') return '1 / -1';\n\n if (span) return `span ${span}`;\n\n return '';\n });\n\n bind({\n style: {\n gridArea: props.area,\n gridColumn,\n gridRow,\n },\n });\n\n return html`<slot></slot>`;\n },\n styles: [styles],\n});\n"],"mappings":";;;;AA0DA,IAAa,IAAgB;AAC7B,EAAyB,GAAe;CACtC,OAAO;EACL,OAAO,EAAK,OAA+C;EAC3D,MAAM,EAAK,OAAO;EAClB,KAAK,EAAK,OAAO;EACjB,SAAS,EAAK,OAA0F;EACxG,SAAS,EAAK,OAA+C;EAC7D,KAAK,EAAK,OAAO;EACjB,SAAS,EAAK,OAAmD;CACnE;CACA,MAAM,GAAO;EACX,IAAM,IAAa,QAAe;GAChC,IAAM,IAAM,EAAM,IAAI,OAChB,IAAO,EAAM,QAAQ;GAQ3B,OANI,MAEA,MAAS,SAAe,WAExB,IAAa,QAAQ,MAElB;EACT,CAAC,GAEK,IAAU,QAAe;GAC7B,IAAM,IAAM,EAAM,IAAI,OAChB,IAAO,EAAM,QAAQ;GAQ3B,OANI,MAEA,MAAS,SAAe,WAExB,IAAa,QAAQ,MAElB;EACT,CAAC;EAUD,OARA,EAAK,EACH,OAAO;GACL,UAAU,EAAM;GAChB;GACA;EACF,EACF,CAAC,GAEM,CAAI;CACb;CACA,QAAQ,CAAC,CAAM;AACjB,CAAC"}
|
package/dist/grid.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/observers/resize-observe.cjs");require("./ore/dist/observers.cjs");const t=require("./layout/grid/grid.css
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/observers/resize-observe.cjs");require("./ore/dist/observers.cjs");const t=require("./layout/grid/grid.css.cjs");let n=require("@vielzeug/ore");var r=[[`cols2xl`,`--size-screen-2xl`],[`colsXl`,`--size-screen-xl`],[`colsLg`,`--size-screen-lg`],[`colsMd`,`--size-screen-md`],[`colsSm`,`--size-screen-sm`]],i=[[`areas2xl`,`--size-screen-2xl`],[`areasXl`,`--size-screen-xl`],[`areasLg`,`--size-screen-lg`],[`areasMd`,`--size-screen-md`],[`areasSm`,`--size-screen-sm`]],a=(e,t,n)=>{let r=getComputedStyle(e).getPropertyValue(t).trim(),i=Number.parseFloat(r);return Number.isFinite(i)?i:n},o={"--size-screen-2xl":1536,"--size-screen-lg":1024,"--size-screen-md":768,"--size-screen-sm":640,"--size-screen-xl":1280},s=`ore-grid`;(0,n.define)(s,{props:{align:n.prop.string(),areas:n.prop.string(),areas2xl:n.prop.string(),areasLg:n.prop.string(),areasMd:n.prop.string(),areasSm:n.prop.string(),areasXl:n.prop.string(),cols:n.prop.string(),cols2xl:n.prop.string(),colsLg:n.prop.string(),colsMd:n.prop.string(),colsSm:n.prop.string(),colsXl:n.prop.string(),flow:n.prop.string(),fullwidth:n.prop.bool(!1),gap:n.prop.string(),justify:n.prop.string(),minColWidth:n.prop.string(),responsive:n.prop.bool(!1),rows:n.prop.string()},setup(t){let s=(0,n.getHost)(),c=n.watchEffect,l=(e,t,n)=>e===`auto`||!e&&t?`repeat(auto-fit, minmax(${n||`250px`}, 1fr))`:e?`repeat(${e}, 1fr)`:null,u=()=>{let e=s.offsetWidth,n=!!t.responsive.value,i=t.minColWidth.value??``,c;for(let[n,i]of r)if(e>=a(s,i,o[i])&&t[n].value){c=t[n].value;break}c||=t.cols.value||void 0;let u=l(c,n,i);u?s.style.setProperty(`--_cols`,u):s.style.removeProperty(`--_cols`)};c(()=>{t.cols.value,t.colsSm.value,t.colsMd.value,t.colsLg.value,t.colsXl.value,t.cols2xl.value,t.responsive.value,t.minColWidth.value,u()});let d=()=>{let e=s.offsetWidth,n=``;for(let[r,c]of i)if(e>=a(s,c,o[c])&&t[r].value){n=t[r].value;break}n||=t.areas.value||``,n?s.style.setProperty(`grid-template-areas`,n):s.style.removeProperty(`grid-template-areas`)};return c(()=>{let e=t.rows.value;e&&e!==`auto`?s.style.setProperty(`--_rows`,`repeat(${e}, 1fr)`):s.style.removeProperty(`--_rows`)}),c(()=>{t.areas.value,t.areasSm.value,t.areasMd.value,t.areasLg.value,t.areasXl.value,t.areas2xl.value,d()}),(0,n.onMounted)(()=>{let t=e.resizeObserver(s);c(()=>{t.value,u(),d()})}),n.html`<slot></slot>`},styles:[t.default]}),exports.GRID_TAG=s;
|
|
2
2
|
//# sourceMappingURL=grid.cjs.map
|
package/dist/grid.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.cjs","names":[],"sources":["../src/layout/grid/grid.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { resizeObserver } from '@vielzeug/ore/observers';\n\nimport styles from './grid.css?inline';\n\nconst BREAKPOINTS: ['cols2xl' | 'colsXl' | 'colsLg' | 'colsMd' | 'colsSm', string][] = [\n ['cols2xl', '--size-screen-2xl'],\n ['colsXl', '--size-screen-xl'],\n ['colsLg', '--size-screen-lg'],\n ['colsMd', '--size-screen-md'],\n ['colsSm', '--size-screen-sm'],\n];\n\nconst AREAS_BREAKPOINTS: ['areas2xl' | 'areasXl' | 'areasLg' | 'areasMd' | 'areasSm', string][] = [\n ['areas2xl', '--size-screen-2xl'],\n ['areasXl', '--size-screen-xl'],\n ['areasLg', '--size-screen-lg'],\n ['areasMd', '--size-screen-md'],\n ['areasSm', '--size-screen-sm'],\n];\n\nconst resolveBp = (host: HTMLElement, varName: string, fallback: number): number => {\n const raw = getComputedStyle(host).getPropertyValue(varName).trim();\n const parsed = Number.parseFloat(raw);\n\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst BP_FALLBACKS: Record<string, number> = {\n '--size-screen-2xl': 1536,\n '--size-screen-lg': 1024,\n '--size-screen-md': 768,\n '--size-screen-sm': 640,\n '--size-screen-xl': 1280,\n};\n\ntype ColCount = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n\n/** Grid component properties */\nexport type OreGridProps = {\n /** Align items vertically */\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n /** CSS grid-template-areas value */\n areas?: string;\n /** grid-template-areas at 2xl breakpoint (≥1536px) */\n areas2xl?: string;\n /** grid-template-areas at lg breakpoint (≥1024px) */\n areasLg?: string;\n /** grid-template-areas at md breakpoint (≥768px) */\n areasMd?: string;\n /** grid-template-areas at sm breakpoint (≥640px) */\n areasSm?: string;\n /** grid-template-areas at xl breakpoint (≥1280px) */\n areasXl?: string;\n /** Number of columns: '1'-'12' | 'auto' */\n cols?: ColCount;\n /** Columns at 2xl breakpoint (≥1536px) */\n cols2xl?: ColCount;\n /** Columns at lg breakpoint (≥1024px) */\n colsLg?: ColCount;\n /** Columns at md breakpoint (≥768px) */\n colsMd?: ColCount;\n /** Columns at sm breakpoint (≥640px) */\n colsSm?: ColCount;\n /** Columns at xl breakpoint (≥1280px) */\n colsXl?: ColCount;\n /** Grid auto flow direction */\n flow?: 'row' | 'column' | 'row-dense' | 'column-dense';\n /** Stretch the grid to fill its container's full width */\n fullwidth?: boolean;\n /** Gap between items */\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Justify items horizontally */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Minimum column width for responsive mode (default: 250px) */\n minColWidth?: string;\n /** Use auto-fit responsive columns */\n responsive?: boolean;\n /** Number of rows: '1'-'12' | 'auto' */\n rows?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n};\n\n/**\n * ore-grid — Flexible grid layout with responsive column control.\n *\n * Columns are computed in JS and applied as `--_cols` inline, so they respond\n * to the element's own width via ResizeObserver. CSS custom properties\n * `--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\n * are honoured as fallbacks when no attribute is set.\n *\n * @element ore-grid\n *\n * @attr {string} cols - Column count: '1'–'12' | 'auto'\n * @attr {string} cols-sm - Columns when width ≥ 640px\n * @attr {string} cols-md - Columns when width ≥ 768px\n * @attr {string} cols-lg - Columns when width ≥ 1024px\n * @attr {string} cols-xl - Columns when width ≥ 1280px\n * @attr {string} cols-2xl - Columns when width ≥ 1536px\n * @attr {string} rows - Row count: '1'–'12' | 'auto'\n * @attr {string} gap - Gap token: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n * @attr {string} align - align-items: 'start' | 'center' | 'end' | 'stretch' | 'baseline'\n * @attr {string} justify - justify-items: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} flow - grid-auto-flow: 'row' | 'column' | 'row-dense' | 'column-dense'\n * @attr {boolean} responsive - Enables auto-fit columns without a fixed count\n * @attr {string} min-col-width - Min column width for responsive mode (default: 250px)\n * @attr {boolean} fullwidth - Stretch the grid to fill its container's full width\n * @attr {string} areas - CSS grid-template-areas value (e.g. \"'header header' 'nav main'\")\n * @attr {string} areas-sm - grid-template-areas when width ≥ 640px\n * @attr {string} areas-md - grid-template-areas when width ≥ 768px\n * @attr {string} areas-lg - grid-template-areas when width ≥ 1024px\n * @attr {string} areas-xl - grid-template-areas when width ≥ 1280px\n * @attr {string} areas-2xl - grid-template-areas when width ≥ 1536px\n *\n * @slot - Grid items\n *\n * @cssprop --grid-cols - Fallback column template (used when no cols attr is set)\n * @cssprop --grid-rows - Fallback row template\n * @cssprop --grid-gap - Fallback gap\n * @cssprop --grid-row-gap - Fallback row gap\n * @cssprop --grid-col-gap - Fallback column gap\n *\n * @example\n * <ore-grid cols=\"1\" cols-sm=\"2\" cols-lg=\"4\" gap=\"md\">\n * <div>Item</div>\n * </ore-grid>\n *\n * @example\n * <!-- Responsive auto-fit -->\n * <ore-grid responsive min-col-width=\"200px\" gap=\"sm\">\n * <div>Card</div>\n * </ore-grid>\n *\n * @example\n * <!-- Named grid areas -->\n * <ore-grid cols=\"2\" rows=\"2\" areas=\"'header header' 'nav main'\">\n * <header style=\"grid-area: header\">Header</header>\n * <nav style=\"grid-area: nav\">Nav</nav>\n * <main style=\"grid-area: main\">Main</main>\n * </ore-grid>\n */\nexport const GRID_TAG = 'ore-grid' as const;\ndefine<OreGridProps>(GRID_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch' | 'baseline'>(),\n areas: prop.string(),\n areas2xl: prop.string(),\n areasLg: prop.string(),\n areasMd: prop.string(),\n areasSm: prop.string(),\n areasXl: prop.string(),\n cols: prop.string<ColCount>(),\n cols2xl: prop.string<ColCount>(),\n colsLg: prop.string<ColCount>(),\n colsMd: prop.string<ColCount>(),\n colsSm: prop.string<ColCount>(),\n colsXl: prop.string<ColCount>(),\n flow: prop.string<'row' | 'column' | 'row-dense' | 'column-dense'>(),\n fullwidth: prop.bool(false),\n gap: prop.string<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n minColWidth: prop.string(),\n responsive: prop.bool(false),\n rows: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto'>(),\n },\n\n setup(props, { el, onMounted, watch }) {\n const computeCols = (activeCols: string | undefined, responsive: boolean, minW: string): string | null => {\n if (activeCols === 'auto' || (!activeCols && responsive)) {\n return `repeat(auto-fit, minmax(${minW || '250px'}, 1fr))`;\n }\n\n return activeCols ? `repeat(${activeCols}, 1fr)` : null;\n };\n const updateCols = () => {\n const w = el.offsetWidth;\n const responsive = Boolean(props.responsive.value);\n const minW = props.minColWidth.value ?? '';\n let activeCols: string | undefined;\n\n for (const [key, cssVar] of BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n activeCols = props[key].value!;\n break;\n }\n }\n activeCols ||= props.cols.value || undefined;\n\n const colsValue = computeCols(activeCols, responsive, minW);\n\n if (colsValue) {\n el.style.setProperty('--_cols', colsValue);\n } else {\n el.style.removeProperty('--_cols');\n }\n };\n\n // Re-run cols whenever any responsive prop changes\n watch(() => {\n void [\n props.cols.value,\n props.colsSm.value,\n props.colsMd.value,\n props.colsLg.value,\n props.colsXl.value,\n props.cols2xl.value,\n props.responsive.value,\n props.minColWidth.value,\n ];\n updateCols();\n });\n\n const updateAreas = () => {\n const w = el.offsetWidth;\n let active = '';\n\n for (const [key, cssVar] of AREAS_BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n active = props[key].value!;\n break;\n }\n }\n active ||= props.areas.value || '';\n\n if (active) {\n el.style.setProperty('grid-template-areas', active);\n } else {\n el.style.removeProperty('grid-template-areas');\n }\n };\n\n // Rows\n watch(() => {\n const rows = props.rows.value;\n\n if (rows && rows !== 'auto') {\n el.style.setProperty('--_rows', `repeat(${rows}, 1fr)`);\n } else {\n el.style.removeProperty('--_rows');\n }\n });\n // Grid template areas (responsive)\n watch(() => {\n void [\n props.areas.value,\n props.areasSm.value,\n props.areasMd.value,\n props.areasLg.value,\n props.areasXl.value,\n props.areas2xl.value,\n ];\n updateAreas();\n });\n\n // Also, update on element resize (drives breakpoint switching)\n onMounted(() => {\n const size = resizeObserver(el);\n\n watch(() => {\n void size.value;\n updateCols();\n updateAreas();\n });\n });\n\n return html`<slot></slot>`;\n },\n\n styles: [styles],\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid.cjs","names":[],"sources":["../src/layout/grid/grid.ts"],"sourcesContent":["import { define, html, prop, getHost, onMounted, watchEffect } from '@vielzeug/ore';\nimport { resizeObserver } from '@vielzeug/ore/observers';\n\nimport styles from './grid.css?inline';\n\nconst BREAKPOINTS: ['cols2xl' | 'colsXl' | 'colsLg' | 'colsMd' | 'colsSm', string][] = [\n ['cols2xl', '--size-screen-2xl'],\n ['colsXl', '--size-screen-xl'],\n ['colsLg', '--size-screen-lg'],\n ['colsMd', '--size-screen-md'],\n ['colsSm', '--size-screen-sm'],\n];\n\nconst AREAS_BREAKPOINTS: ['areas2xl' | 'areasXl' | 'areasLg' | 'areasMd' | 'areasSm', string][] = [\n ['areas2xl', '--size-screen-2xl'],\n ['areasXl', '--size-screen-xl'],\n ['areasLg', '--size-screen-lg'],\n ['areasMd', '--size-screen-md'],\n ['areasSm', '--size-screen-sm'],\n];\n\nconst resolveBp = (host: HTMLElement, varName: string, fallback: number): number => {\n const raw = getComputedStyle(host).getPropertyValue(varName).trim();\n const parsed = Number.parseFloat(raw);\n\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst BP_FALLBACKS: Record<string, number> = {\n '--size-screen-2xl': 1536,\n '--size-screen-lg': 1024,\n '--size-screen-md': 768,\n '--size-screen-sm': 640,\n '--size-screen-xl': 1280,\n};\n\ntype ColCount = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n\n/** Grid component properties */\nexport type OreGridProps = {\n /** Align items vertically */\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n /** CSS grid-template-areas value */\n areas?: string;\n /** grid-template-areas at 2xl breakpoint (≥1536px) */\n areas2xl?: string;\n /** grid-template-areas at lg breakpoint (≥1024px) */\n areasLg?: string;\n /** grid-template-areas at md breakpoint (≥768px) */\n areasMd?: string;\n /** grid-template-areas at sm breakpoint (≥640px) */\n areasSm?: string;\n /** grid-template-areas at xl breakpoint (≥1280px) */\n areasXl?: string;\n /** Number of columns: '1'-'12' | 'auto' */\n cols?: ColCount;\n /** Columns at 2xl breakpoint (≥1536px) */\n cols2xl?: ColCount;\n /** Columns at lg breakpoint (≥1024px) */\n colsLg?: ColCount;\n /** Columns at md breakpoint (≥768px) */\n colsMd?: ColCount;\n /** Columns at sm breakpoint (≥640px) */\n colsSm?: ColCount;\n /** Columns at xl breakpoint (≥1280px) */\n colsXl?: ColCount;\n /** Grid auto flow direction */\n flow?: 'row' | 'column' | 'row-dense' | 'column-dense';\n /** Stretch the grid to fill its container's full width */\n fullwidth?: boolean;\n /** Gap between items */\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Justify items horizontally */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Minimum column width for responsive mode (default: 250px) */\n minColWidth?: string;\n /** Use auto-fit responsive columns */\n responsive?: boolean;\n /** Number of rows: '1'-'12' | 'auto' */\n rows?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n};\n\n/**\n * ore-grid — Flexible grid layout with responsive column control.\n *\n * Columns are computed in JS and applied as `--_cols` inline, so they respond\n * to the element's own width via ResizeObserver. CSS custom properties\n * `--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\n * are honoured as fallbacks when no attribute is set.\n *\n * @element ore-grid\n *\n * @attr {string} cols - Column count: '1'–'12' | 'auto'\n * @attr {string} cols-sm - Columns when width ≥ 640px\n * @attr {string} cols-md - Columns when width ≥ 768px\n * @attr {string} cols-lg - Columns when width ≥ 1024px\n * @attr {string} cols-xl - Columns when width ≥ 1280px\n * @attr {string} cols-2xl - Columns when width ≥ 1536px\n * @attr {string} rows - Row count: '1'–'12' | 'auto'\n * @attr {string} gap - Gap token: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n * @attr {string} align - align-items: 'start' | 'center' | 'end' | 'stretch' | 'baseline'\n * @attr {string} justify - justify-items: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} flow - grid-auto-flow: 'row' | 'column' | 'row-dense' | 'column-dense'\n * @attr {boolean} responsive - Enables auto-fit columns without a fixed count\n * @attr {string} min-col-width - Min column width for responsive mode (default: 250px)\n * @attr {boolean} fullwidth - Stretch the grid to fill its container's full width\n * @attr {string} areas - CSS grid-template-areas value (e.g. \"'header header' 'nav main'\")\n * @attr {string} areas-sm - grid-template-areas when width ≥ 640px\n * @attr {string} areas-md - grid-template-areas when width ≥ 768px\n * @attr {string} areas-lg - grid-template-areas when width ≥ 1024px\n * @attr {string} areas-xl - grid-template-areas when width ≥ 1280px\n * @attr {string} areas-2xl - grid-template-areas when width ≥ 1536px\n *\n * @slot - Grid items\n *\n * @cssprop --grid-cols - Fallback column template (used when no cols attr is set)\n * @cssprop --grid-rows - Fallback row template\n * @cssprop --grid-gap - Fallback gap\n * @cssprop --grid-row-gap - Fallback row gap\n * @cssprop --grid-col-gap - Fallback column gap\n *\n * @example\n * <ore-grid cols=\"1\" cols-sm=\"2\" cols-lg=\"4\" gap=\"md\">\n * <div>Item</div>\n * </ore-grid>\n *\n * @example\n * <!-- Responsive auto-fit -->\n * <ore-grid responsive min-col-width=\"200px\" gap=\"sm\">\n * <div>Card</div>\n * </ore-grid>\n *\n * @example\n * <!-- Named grid areas -->\n * <ore-grid cols=\"2\" rows=\"2\" areas=\"'header header' 'nav main'\">\n * <header style=\"grid-area: header\">Header</header>\n * <nav style=\"grid-area: nav\">Nav</nav>\n * <main style=\"grid-area: main\">Main</main>\n * </ore-grid>\n */\nexport const GRID_TAG = 'ore-grid' as const;\ndefine<OreGridProps>(GRID_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch' | 'baseline'>(),\n areas: prop.string(),\n areas2xl: prop.string(),\n areasLg: prop.string(),\n areasMd: prop.string(),\n areasSm: prop.string(),\n areasXl: prop.string(),\n cols: prop.string<ColCount>(),\n cols2xl: prop.string<ColCount>(),\n colsLg: prop.string<ColCount>(),\n colsMd: prop.string<ColCount>(),\n colsSm: prop.string<ColCount>(),\n colsXl: prop.string<ColCount>(),\n flow: prop.string<'row' | 'column' | 'row-dense' | 'column-dense'>(),\n fullwidth: prop.bool(false),\n gap: prop.string<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n minColWidth: prop.string(),\n responsive: prop.bool(false),\n rows: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto'>(),\n },\n\n setup(props) {\n const el = getHost();\n const watch = watchEffect;\n\n const computeCols = (activeCols: string | undefined, responsive: boolean, minW: string): string | null => {\n if (activeCols === 'auto' || (!activeCols && responsive)) {\n return `repeat(auto-fit, minmax(${minW || '250px'}, 1fr))`;\n }\n\n return activeCols ? `repeat(${activeCols}, 1fr)` : null;\n };\n const updateCols = () => {\n const w = el.offsetWidth;\n const responsive = Boolean(props.responsive.value);\n const minW = props.minColWidth.value ?? '';\n let activeCols: string | undefined;\n\n for (const [key, cssVar] of BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n activeCols = props[key].value!;\n break;\n }\n }\n activeCols ||= props.cols.value || undefined;\n\n const colsValue = computeCols(activeCols, responsive, minW);\n\n if (colsValue) {\n el.style.setProperty('--_cols', colsValue);\n } else {\n el.style.removeProperty('--_cols');\n }\n };\n\n // Re-run cols whenever any responsive prop changes\n watch(() => {\n void [\n props.cols.value,\n props.colsSm.value,\n props.colsMd.value,\n props.colsLg.value,\n props.colsXl.value,\n props.cols2xl.value,\n props.responsive.value,\n props.minColWidth.value,\n ];\n updateCols();\n });\n\n const updateAreas = () => {\n const w = el.offsetWidth;\n let active = '';\n\n for (const [key, cssVar] of AREAS_BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n active = props[key].value!;\n break;\n }\n }\n active ||= props.areas.value || '';\n\n if (active) {\n el.style.setProperty('grid-template-areas', active);\n } else {\n el.style.removeProperty('grid-template-areas');\n }\n };\n\n // Rows\n watch(() => {\n const rows = props.rows.value;\n\n if (rows && rows !== 'auto') {\n el.style.setProperty('--_rows', `repeat(${rows}, 1fr)`);\n } else {\n el.style.removeProperty('--_rows');\n }\n });\n // Grid template areas (responsive)\n watch(() => {\n void [\n props.areas.value,\n props.areasSm.value,\n props.areasMd.value,\n props.areasLg.value,\n props.areasXl.value,\n props.areas2xl.value,\n ];\n updateAreas();\n });\n\n // Also, update on element resize (drives breakpoint switching)\n onMounted(() => {\n const size = resizeObserver(el);\n\n watch(() => {\n void size.value;\n updateCols();\n updateAreas();\n });\n });\n\n return html`<slot></slot>`;\n },\n\n styles: [styles],\n});\n"],"mappings":"+OAKA,IAAM,EAAiF,CACrF,CAAC,UAAW,mBAAmB,EAC/B,CAAC,SAAU,kBAAkB,EAC7B,CAAC,SAAU,kBAAkB,EAC7B,CAAC,SAAU,kBAAkB,EAC7B,CAAC,SAAU,kBAAkB,CAC/B,EAEM,EAA4F,CAChG,CAAC,WAAY,mBAAmB,EAChC,CAAC,UAAW,kBAAkB,EAC9B,CAAC,UAAW,kBAAkB,EAC9B,CAAC,UAAW,kBAAkB,EAC9B,CAAC,UAAW,kBAAkB,CAChC,EAEM,GAAa,EAAmB,EAAiB,IAA6B,CAClF,IAAM,EAAM,iBAAiB,CAAI,CAAC,CAAC,iBAAiB,CAAO,CAAC,CAAC,KAAK,EAC5D,EAAS,OAAO,WAAW,CAAG,EAEpC,OAAO,OAAO,SAAS,CAAM,EAAI,EAAS,CAC5C,EAEM,EAAuC,CAC3C,oBAAqB,KACrB,mBAAoB,KACpB,mBAAoB,IACpB,mBAAoB,IACpB,mBAAoB,IACtB,EA0Ga,EAAW,wBACH,EAAU,CAC7B,MAAO,CACL,MAAO,EAAA,KAAK,OAA4D,EACxE,MAAO,EAAA,KAAK,OAAO,EACnB,SAAU,EAAA,KAAK,OAAO,EACtB,QAAS,EAAA,KAAK,OAAO,EACrB,QAAS,EAAA,KAAK,OAAO,EACrB,QAAS,EAAA,KAAK,OAAO,EACrB,QAAS,EAAA,KAAK,OAAO,EACrB,KAAM,EAAA,KAAK,OAAiB,EAC5B,QAAS,EAAA,KAAK,OAAiB,EAC/B,OAAQ,EAAA,KAAK,OAAiB,EAC9B,OAAQ,EAAA,KAAK,OAAiB,EAC9B,OAAQ,EAAA,KAAK,OAAiB,EAC9B,OAAQ,EAAA,KAAK,OAAiB,EAC9B,KAAM,EAAA,KAAK,OAAwD,EACnE,UAAW,EAAA,KAAK,KAAK,EAAK,EAC1B,IAAK,EAAA,KAAK,OAA0D,EACpE,QAAS,EAAA,KAAK,OAA+C,EAC7D,YAAa,EAAA,KAAK,OAAO,EACzB,WAAY,EAAA,KAAK,KAAK,EAAK,EAC3B,KAAM,EAAA,KAAK,OAA0F,CACvG,EAEA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,QAAA,CAAa,EACb,EAAQ,EAAA,YAER,GAAe,EAAgC,EAAqB,IACpE,IAAe,QAAW,CAAC,GAAc,EACpC,2BAA2B,GAAQ,QAAQ,SAG7C,EAAa,UAAU,EAAW,QAAU,KAE/C,MAAmB,CACvB,IAAM,EAAI,EAAG,YACP,EAAa,EAAQ,EAAM,WAAW,MACtC,EAAO,EAAM,YAAY,OAAS,GACpC,EAEJ,IAAK,GAAM,CAAC,EAAK,KAAW,EAC1B,GAAI,GAAK,EAAU,EAAI,EAAQ,EAAa,EAAO,GAAK,EAAM,EAAI,CAAC,MAAO,CACxE,EAAa,EAAM,EAAI,CAAC,MACxB,KACF,CAEF,IAAe,EAAM,KAAK,OAAS,IAAA,GAEnC,IAAM,EAAY,EAAY,EAAY,EAAY,CAAI,EAEtD,EACF,EAAG,MAAM,YAAY,UAAW,CAAS,EAEzC,EAAG,MAAM,eAAe,SAAS,CAErC,EAGA,MAAY,CACV,EACQ,KAAK,MACX,EAAM,OAAO,MACb,EAAM,OAAO,MACb,EAAM,OAAO,MACb,EAAM,OAAO,MACb,EAAM,QAAQ,MACd,EAAM,WAAW,MACjB,EAAM,YAAY,MAEpB,EAAW,CACb,CAAC,EAED,IAAM,MAAoB,CACxB,IAAM,EAAI,EAAG,YACT,EAAS,GAEb,IAAK,GAAM,CAAC,EAAK,KAAW,EAC1B,GAAI,GAAK,EAAU,EAAI,EAAQ,EAAa,EAAO,GAAK,EAAM,EAAI,CAAC,MAAO,CACxE,EAAS,EAAM,EAAI,CAAC,MACpB,KACF,CAEF,IAAW,EAAM,MAAM,OAAS,GAE5B,EACF,EAAG,MAAM,YAAY,sBAAuB,CAAM,EAElD,EAAG,MAAM,eAAe,qBAAqB,CAEjD,EAoCA,OAjCA,MAAY,CACV,IAAM,EAAO,EAAM,KAAK,MAEpB,GAAQ,IAAS,OACnB,EAAG,MAAM,YAAY,UAAW,UAAU,EAAK,OAAO,EAEtD,EAAG,MAAM,eAAe,SAAS,CAErC,CAAC,EAED,MAAY,CACV,EACQ,MAAM,MACZ,EAAM,QAAQ,MACd,EAAM,QAAQ,MACd,EAAM,QAAQ,MACd,EAAM,QAAQ,MACd,EAAM,SAAS,MAEjB,EAAY,CACd,CAAC,GAGD,EAAA,EAAA,UAAA,KAAgB,CACd,IAAM,EAAO,EAAA,eAAe,CAAE,EAE9B,MAAY,CACV,EAAU,MACV,EAAW,EACX,EAAY,CACd,CAAC,CACH,CAAC,EAEM,EAAA,IAAI,eACb,EAEA,OAAQ,CAAC,EAAA,OAAM,CACjB,CAAC"}
|
package/dist/grid.js
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
1
|
import { resizeObserver as e } from "./ore/dist/observers/resize-observe.js";
|
|
2
2
|
import "./ore/dist/observers.js";
|
|
3
|
-
import t from "./layout/grid/grid.css
|
|
4
|
-
import { define as n,
|
|
3
|
+
import t from "./layout/grid/grid.css.js";
|
|
4
|
+
import { define as n, getHost as r, html as i, onMounted as a, prop as o, watchEffect as s } from "@vielzeug/ore";
|
|
5
5
|
//#region src/layout/grid/grid.ts
|
|
6
|
-
var
|
|
6
|
+
var c = [
|
|
7
7
|
["cols2xl", "--size-screen-2xl"],
|
|
8
8
|
["colsXl", "--size-screen-xl"],
|
|
9
9
|
["colsLg", "--size-screen-lg"],
|
|
10
10
|
["colsMd", "--size-screen-md"],
|
|
11
11
|
["colsSm", "--size-screen-sm"]
|
|
12
|
-
],
|
|
12
|
+
], l = [
|
|
13
13
|
["areas2xl", "--size-screen-2xl"],
|
|
14
14
|
["areasXl", "--size-screen-xl"],
|
|
15
15
|
["areasLg", "--size-screen-lg"],
|
|
16
16
|
["areasMd", "--size-screen-md"],
|
|
17
17
|
["areasSm", "--size-screen-sm"]
|
|
18
|
-
],
|
|
18
|
+
], u = (e, t, n) => {
|
|
19
19
|
let r = getComputedStyle(e).getPropertyValue(t).trim(), i = Number.parseFloat(r);
|
|
20
20
|
return Number.isFinite(i) ? i : n;
|
|
21
|
-
},
|
|
21
|
+
}, d = {
|
|
22
22
|
"--size-screen-2xl": 1536,
|
|
23
23
|
"--size-screen-lg": 1024,
|
|
24
24
|
"--size-screen-md": 768,
|
|
25
25
|
"--size-screen-sm": 640,
|
|
26
26
|
"--size-screen-xl": 1280
|
|
27
|
-
},
|
|
28
|
-
n(
|
|
27
|
+
}, f = "ore-grid";
|
|
28
|
+
n(f, {
|
|
29
29
|
props: {
|
|
30
|
-
align:
|
|
31
|
-
areas:
|
|
32
|
-
areas2xl:
|
|
33
|
-
areasLg:
|
|
34
|
-
areasMd:
|
|
35
|
-
areasSm:
|
|
36
|
-
areasXl:
|
|
37
|
-
cols:
|
|
38
|
-
cols2xl:
|
|
39
|
-
colsLg:
|
|
40
|
-
colsMd:
|
|
41
|
-
colsSm:
|
|
42
|
-
colsXl:
|
|
43
|
-
flow:
|
|
44
|
-
fullwidth:
|
|
45
|
-
gap:
|
|
46
|
-
justify:
|
|
47
|
-
minColWidth:
|
|
48
|
-
responsive:
|
|
49
|
-
rows:
|
|
30
|
+
align: o.string(),
|
|
31
|
+
areas: o.string(),
|
|
32
|
+
areas2xl: o.string(),
|
|
33
|
+
areasLg: o.string(),
|
|
34
|
+
areasMd: o.string(),
|
|
35
|
+
areasSm: o.string(),
|
|
36
|
+
areasXl: o.string(),
|
|
37
|
+
cols: o.string(),
|
|
38
|
+
cols2xl: o.string(),
|
|
39
|
+
colsLg: o.string(),
|
|
40
|
+
colsMd: o.string(),
|
|
41
|
+
colsSm: o.string(),
|
|
42
|
+
colsXl: o.string(),
|
|
43
|
+
flow: o.string(),
|
|
44
|
+
fullwidth: o.bool(!1),
|
|
45
|
+
gap: o.string(),
|
|
46
|
+
justify: o.string(),
|
|
47
|
+
minColWidth: o.string(),
|
|
48
|
+
responsive: o.bool(!1),
|
|
49
|
+
rows: o.string()
|
|
50
50
|
},
|
|
51
|
-
setup(t
|
|
52
|
-
let
|
|
53
|
-
let e = n.offsetWidth, r = !!t.responsive.value, i = t.minColWidth.value ?? "",
|
|
54
|
-
for (let [r, i] of
|
|
55
|
-
|
|
51
|
+
setup(t) {
|
|
52
|
+
let n = r(), o = s, f = (e, t, n) => e === "auto" || !e && t ? `repeat(auto-fit, minmax(${n || "250px"}, 1fr))` : e ? `repeat(${e}, 1fr)` : null, p = () => {
|
|
53
|
+
let e = n.offsetWidth, r = !!t.responsive.value, i = t.minColWidth.value ?? "", a;
|
|
54
|
+
for (let [r, i] of c) if (e >= u(n, i, d[i]) && t[r].value) {
|
|
55
|
+
a = t[r].value;
|
|
56
56
|
break;
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
let
|
|
60
|
-
|
|
58
|
+
a ||= t.cols.value || void 0;
|
|
59
|
+
let o = f(a, r, i);
|
|
60
|
+
o ? n.style.setProperty("--_cols", o) : n.style.removeProperty("--_cols");
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
t.cols.value, t.colsSm.value, t.colsMd.value, t.colsLg.value, t.colsXl.value, t.cols2xl.value, t.responsive.value, t.minColWidth.value,
|
|
62
|
+
o(() => {
|
|
63
|
+
t.cols.value, t.colsSm.value, t.colsMd.value, t.colsLg.value, t.colsXl.value, t.cols2xl.value, t.responsive.value, t.minColWidth.value, p();
|
|
64
64
|
});
|
|
65
|
-
let
|
|
65
|
+
let m = () => {
|
|
66
66
|
let e = n.offsetWidth, r = "";
|
|
67
|
-
for (let [i, a] of
|
|
67
|
+
for (let [i, a] of l) if (e >= u(n, a, d[a]) && t[i].value) {
|
|
68
68
|
r = t[i].value;
|
|
69
69
|
break;
|
|
70
70
|
}
|
|
71
71
|
r ||= t.areas.value || "", r ? n.style.setProperty("grid-template-areas", r) : n.style.removeProperty("grid-template-areas");
|
|
72
72
|
};
|
|
73
|
-
return
|
|
73
|
+
return o(() => {
|
|
74
74
|
let e = t.rows.value;
|
|
75
75
|
e && e !== "auto" ? n.style.setProperty("--_rows", `repeat(${e}, 1fr)`) : n.style.removeProperty("--_rows");
|
|
76
|
-
}),
|
|
77
|
-
t.areas.value, t.areasSm.value, t.areasMd.value, t.areasLg.value, t.areasXl.value, t.areas2xl.value,
|
|
78
|
-
}),
|
|
76
|
+
}), o(() => {
|
|
77
|
+
t.areas.value, t.areasSm.value, t.areasMd.value, t.areasLg.value, t.areasXl.value, t.areas2xl.value, m();
|
|
78
|
+
}), a(() => {
|
|
79
79
|
let t = e(n);
|
|
80
|
-
|
|
81
|
-
t.value,
|
|
80
|
+
o(() => {
|
|
81
|
+
t.value, p(), m();
|
|
82
82
|
});
|
|
83
|
-
}),
|
|
83
|
+
}), i`<slot></slot>`;
|
|
84
84
|
},
|
|
85
85
|
styles: [t]
|
|
86
86
|
});
|
|
87
87
|
//#endregion
|
|
88
|
-
export {
|
|
88
|
+
export { f as GRID_TAG };
|
|
89
89
|
|
|
90
90
|
//# sourceMappingURL=grid.js.map
|
package/dist/grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","names":[],"sources":["../src/layout/grid/grid.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { resizeObserver } from '@vielzeug/ore/observers';\n\nimport styles from './grid.css?inline';\n\nconst BREAKPOINTS: ['cols2xl' | 'colsXl' | 'colsLg' | 'colsMd' | 'colsSm', string][] = [\n ['cols2xl', '--size-screen-2xl'],\n ['colsXl', '--size-screen-xl'],\n ['colsLg', '--size-screen-lg'],\n ['colsMd', '--size-screen-md'],\n ['colsSm', '--size-screen-sm'],\n];\n\nconst AREAS_BREAKPOINTS: ['areas2xl' | 'areasXl' | 'areasLg' | 'areasMd' | 'areasSm', string][] = [\n ['areas2xl', '--size-screen-2xl'],\n ['areasXl', '--size-screen-xl'],\n ['areasLg', '--size-screen-lg'],\n ['areasMd', '--size-screen-md'],\n ['areasSm', '--size-screen-sm'],\n];\n\nconst resolveBp = (host: HTMLElement, varName: string, fallback: number): number => {\n const raw = getComputedStyle(host).getPropertyValue(varName).trim();\n const parsed = Number.parseFloat(raw);\n\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst BP_FALLBACKS: Record<string, number> = {\n '--size-screen-2xl': 1536,\n '--size-screen-lg': 1024,\n '--size-screen-md': 768,\n '--size-screen-sm': 640,\n '--size-screen-xl': 1280,\n};\n\ntype ColCount = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n\n/** Grid component properties */\nexport type OreGridProps = {\n /** Align items vertically */\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n /** CSS grid-template-areas value */\n areas?: string;\n /** grid-template-areas at 2xl breakpoint (≥1536px) */\n areas2xl?: string;\n /** grid-template-areas at lg breakpoint (≥1024px) */\n areasLg?: string;\n /** grid-template-areas at md breakpoint (≥768px) */\n areasMd?: string;\n /** grid-template-areas at sm breakpoint (≥640px) */\n areasSm?: string;\n /** grid-template-areas at xl breakpoint (≥1280px) */\n areasXl?: string;\n /** Number of columns: '1'-'12' | 'auto' */\n cols?: ColCount;\n /** Columns at 2xl breakpoint (≥1536px) */\n cols2xl?: ColCount;\n /** Columns at lg breakpoint (≥1024px) */\n colsLg?: ColCount;\n /** Columns at md breakpoint (≥768px) */\n colsMd?: ColCount;\n /** Columns at sm breakpoint (≥640px) */\n colsSm?: ColCount;\n /** Columns at xl breakpoint (≥1280px) */\n colsXl?: ColCount;\n /** Grid auto flow direction */\n flow?: 'row' | 'column' | 'row-dense' | 'column-dense';\n /** Stretch the grid to fill its container's full width */\n fullwidth?: boolean;\n /** Gap between items */\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Justify items horizontally */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Minimum column width for responsive mode (default: 250px) */\n minColWidth?: string;\n /** Use auto-fit responsive columns */\n responsive?: boolean;\n /** Number of rows: '1'-'12' | 'auto' */\n rows?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n};\n\n/**\n * ore-grid — Flexible grid layout with responsive column control.\n *\n * Columns are computed in JS and applied as `--_cols` inline, so they respond\n * to the element's own width via ResizeObserver. CSS custom properties\n * `--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\n * are honoured as fallbacks when no attribute is set.\n *\n * @element ore-grid\n *\n * @attr {string} cols - Column count: '1'–'12' | 'auto'\n * @attr {string} cols-sm - Columns when width ≥ 640px\n * @attr {string} cols-md - Columns when width ≥ 768px\n * @attr {string} cols-lg - Columns when width ≥ 1024px\n * @attr {string} cols-xl - Columns when width ≥ 1280px\n * @attr {string} cols-2xl - Columns when width ≥ 1536px\n * @attr {string} rows - Row count: '1'–'12' | 'auto'\n * @attr {string} gap - Gap token: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n * @attr {string} align - align-items: 'start' | 'center' | 'end' | 'stretch' | 'baseline'\n * @attr {string} justify - justify-items: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} flow - grid-auto-flow: 'row' | 'column' | 'row-dense' | 'column-dense'\n * @attr {boolean} responsive - Enables auto-fit columns without a fixed count\n * @attr {string} min-col-width - Min column width for responsive mode (default: 250px)\n * @attr {boolean} fullwidth - Stretch the grid to fill its container's full width\n * @attr {string} areas - CSS grid-template-areas value (e.g. \"'header header' 'nav main'\")\n * @attr {string} areas-sm - grid-template-areas when width ≥ 640px\n * @attr {string} areas-md - grid-template-areas when width ≥ 768px\n * @attr {string} areas-lg - grid-template-areas when width ≥ 1024px\n * @attr {string} areas-xl - grid-template-areas when width ≥ 1280px\n * @attr {string} areas-2xl - grid-template-areas when width ≥ 1536px\n *\n * @slot - Grid items\n *\n * @cssprop --grid-cols - Fallback column template (used when no cols attr is set)\n * @cssprop --grid-rows - Fallback row template\n * @cssprop --grid-gap - Fallback gap\n * @cssprop --grid-row-gap - Fallback row gap\n * @cssprop --grid-col-gap - Fallback column gap\n *\n * @example\n * <ore-grid cols=\"1\" cols-sm=\"2\" cols-lg=\"4\" gap=\"md\">\n * <div>Item</div>\n * </ore-grid>\n *\n * @example\n * <!-- Responsive auto-fit -->\n * <ore-grid responsive min-col-width=\"200px\" gap=\"sm\">\n * <div>Card</div>\n * </ore-grid>\n *\n * @example\n * <!-- Named grid areas -->\n * <ore-grid cols=\"2\" rows=\"2\" areas=\"'header header' 'nav main'\">\n * <header style=\"grid-area: header\">Header</header>\n * <nav style=\"grid-area: nav\">Nav</nav>\n * <main style=\"grid-area: main\">Main</main>\n * </ore-grid>\n */\nexport const GRID_TAG = 'ore-grid' as const;\ndefine<OreGridProps>(GRID_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch' | 'baseline'>(),\n areas: prop.string(),\n areas2xl: prop.string(),\n areasLg: prop.string(),\n areasMd: prop.string(),\n areasSm: prop.string(),\n areasXl: prop.string(),\n cols: prop.string<ColCount>(),\n cols2xl: prop.string<ColCount>(),\n colsLg: prop.string<ColCount>(),\n colsMd: prop.string<ColCount>(),\n colsSm: prop.string<ColCount>(),\n colsXl: prop.string<ColCount>(),\n flow: prop.string<'row' | 'column' | 'row-dense' | 'column-dense'>(),\n fullwidth: prop.bool(false),\n gap: prop.string<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n minColWidth: prop.string(),\n responsive: prop.bool(false),\n rows: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto'>(),\n },\n\n setup(props, { el, onMounted, watch }) {\n const computeCols = (activeCols: string | undefined, responsive: boolean, minW: string): string | null => {\n if (activeCols === 'auto' || (!activeCols && responsive)) {\n return `repeat(auto-fit, minmax(${minW || '250px'}, 1fr))`;\n }\n\n return activeCols ? `repeat(${activeCols}, 1fr)` : null;\n };\n const updateCols = () => {\n const w = el.offsetWidth;\n const responsive = Boolean(props.responsive.value);\n const minW = props.minColWidth.value ?? '';\n let activeCols: string | undefined;\n\n for (const [key, cssVar] of BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n activeCols = props[key].value!;\n break;\n }\n }\n activeCols ||= props.cols.value || undefined;\n\n const colsValue = computeCols(activeCols, responsive, minW);\n\n if (colsValue) {\n el.style.setProperty('--_cols', colsValue);\n } else {\n el.style.removeProperty('--_cols');\n }\n };\n\n // Re-run cols whenever any responsive prop changes\n watch(() => {\n void [\n props.cols.value,\n props.colsSm.value,\n props.colsMd.value,\n props.colsLg.value,\n props.colsXl.value,\n props.cols2xl.value,\n props.responsive.value,\n props.minColWidth.value,\n ];\n updateCols();\n });\n\n const updateAreas = () => {\n const w = el.offsetWidth;\n let active = '';\n\n for (const [key, cssVar] of AREAS_BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n active = props[key].value!;\n break;\n }\n }\n active ||= props.areas.value || '';\n\n if (active) {\n el.style.setProperty('grid-template-areas', active);\n } else {\n el.style.removeProperty('grid-template-areas');\n }\n };\n\n // Rows\n watch(() => {\n const rows = props.rows.value;\n\n if (rows && rows !== 'auto') {\n el.style.setProperty('--_rows', `repeat(${rows}, 1fr)`);\n } else {\n el.style.removeProperty('--_rows');\n }\n });\n // Grid template areas (responsive)\n watch(() => {\n void [\n props.areas.value,\n props.areasSm.value,\n props.areasMd.value,\n props.areasLg.value,\n props.areasXl.value,\n props.areas2xl.value,\n ];\n updateAreas();\n });\n\n // Also, update on element resize (drives breakpoint switching)\n onMounted(() => {\n const size = resizeObserver(el);\n\n watch(() => {\n void size.value;\n updateCols();\n updateAreas();\n });\n });\n\n return html`<slot></slot>`;\n },\n\n styles: [styles],\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid.js","names":[],"sources":["../src/layout/grid/grid.ts"],"sourcesContent":["import { define, html, prop, getHost, onMounted, watchEffect } from '@vielzeug/ore';\nimport { resizeObserver } from '@vielzeug/ore/observers';\n\nimport styles from './grid.css?inline';\n\nconst BREAKPOINTS: ['cols2xl' | 'colsXl' | 'colsLg' | 'colsMd' | 'colsSm', string][] = [\n ['cols2xl', '--size-screen-2xl'],\n ['colsXl', '--size-screen-xl'],\n ['colsLg', '--size-screen-lg'],\n ['colsMd', '--size-screen-md'],\n ['colsSm', '--size-screen-sm'],\n];\n\nconst AREAS_BREAKPOINTS: ['areas2xl' | 'areasXl' | 'areasLg' | 'areasMd' | 'areasSm', string][] = [\n ['areas2xl', '--size-screen-2xl'],\n ['areasXl', '--size-screen-xl'],\n ['areasLg', '--size-screen-lg'],\n ['areasMd', '--size-screen-md'],\n ['areasSm', '--size-screen-sm'],\n];\n\nconst resolveBp = (host: HTMLElement, varName: string, fallback: number): number => {\n const raw = getComputedStyle(host).getPropertyValue(varName).trim();\n const parsed = Number.parseFloat(raw);\n\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst BP_FALLBACKS: Record<string, number> = {\n '--size-screen-2xl': 1536,\n '--size-screen-lg': 1024,\n '--size-screen-md': 768,\n '--size-screen-sm': 640,\n '--size-screen-xl': 1280,\n};\n\ntype ColCount = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n\n/** Grid component properties */\nexport type OreGridProps = {\n /** Align items vertically */\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n /** CSS grid-template-areas value */\n areas?: string;\n /** grid-template-areas at 2xl breakpoint (≥1536px) */\n areas2xl?: string;\n /** grid-template-areas at lg breakpoint (≥1024px) */\n areasLg?: string;\n /** grid-template-areas at md breakpoint (≥768px) */\n areasMd?: string;\n /** grid-template-areas at sm breakpoint (≥640px) */\n areasSm?: string;\n /** grid-template-areas at xl breakpoint (≥1280px) */\n areasXl?: string;\n /** Number of columns: '1'-'12' | 'auto' */\n cols?: ColCount;\n /** Columns at 2xl breakpoint (≥1536px) */\n cols2xl?: ColCount;\n /** Columns at lg breakpoint (≥1024px) */\n colsLg?: ColCount;\n /** Columns at md breakpoint (≥768px) */\n colsMd?: ColCount;\n /** Columns at sm breakpoint (≥640px) */\n colsSm?: ColCount;\n /** Columns at xl breakpoint (≥1280px) */\n colsXl?: ColCount;\n /** Grid auto flow direction */\n flow?: 'row' | 'column' | 'row-dense' | 'column-dense';\n /** Stretch the grid to fill its container's full width */\n fullwidth?: boolean;\n /** Gap between items */\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Justify items horizontally */\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Minimum column width for responsive mode (default: 250px) */\n minColWidth?: string;\n /** Use auto-fit responsive columns */\n responsive?: boolean;\n /** Number of rows: '1'-'12' | 'auto' */\n rows?: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto';\n};\n\n/**\n * ore-grid — Flexible grid layout with responsive column control.\n *\n * Columns are computed in JS and applied as `--_cols` inline, so they respond\n * to the element's own width via ResizeObserver. CSS custom properties\n * `--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\n * are honoured as fallbacks when no attribute is set.\n *\n * @element ore-grid\n *\n * @attr {string} cols - Column count: '1'–'12' | 'auto'\n * @attr {string} cols-sm - Columns when width ≥ 640px\n * @attr {string} cols-md - Columns when width ≥ 768px\n * @attr {string} cols-lg - Columns when width ≥ 1024px\n * @attr {string} cols-xl - Columns when width ≥ 1280px\n * @attr {string} cols-2xl - Columns when width ≥ 1536px\n * @attr {string} rows - Row count: '1'–'12' | 'auto'\n * @attr {string} gap - Gap token: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n * @attr {string} align - align-items: 'start' | 'center' | 'end' | 'stretch' | 'baseline'\n * @attr {string} justify - justify-items: 'start' | 'center' | 'end' | 'stretch'\n * @attr {string} flow - grid-auto-flow: 'row' | 'column' | 'row-dense' | 'column-dense'\n * @attr {boolean} responsive - Enables auto-fit columns without a fixed count\n * @attr {string} min-col-width - Min column width for responsive mode (default: 250px)\n * @attr {boolean} fullwidth - Stretch the grid to fill its container's full width\n * @attr {string} areas - CSS grid-template-areas value (e.g. \"'header header' 'nav main'\")\n * @attr {string} areas-sm - grid-template-areas when width ≥ 640px\n * @attr {string} areas-md - grid-template-areas when width ≥ 768px\n * @attr {string} areas-lg - grid-template-areas when width ≥ 1024px\n * @attr {string} areas-xl - grid-template-areas when width ≥ 1280px\n * @attr {string} areas-2xl - grid-template-areas when width ≥ 1536px\n *\n * @slot - Grid items\n *\n * @cssprop --grid-cols - Fallback column template (used when no cols attr is set)\n * @cssprop --grid-rows - Fallback row template\n * @cssprop --grid-gap - Fallback gap\n * @cssprop --grid-row-gap - Fallback row gap\n * @cssprop --grid-col-gap - Fallback column gap\n *\n * @example\n * <ore-grid cols=\"1\" cols-sm=\"2\" cols-lg=\"4\" gap=\"md\">\n * <div>Item</div>\n * </ore-grid>\n *\n * @example\n * <!-- Responsive auto-fit -->\n * <ore-grid responsive min-col-width=\"200px\" gap=\"sm\">\n * <div>Card</div>\n * </ore-grid>\n *\n * @example\n * <!-- Named grid areas -->\n * <ore-grid cols=\"2\" rows=\"2\" areas=\"'header header' 'nav main'\">\n * <header style=\"grid-area: header\">Header</header>\n * <nav style=\"grid-area: nav\">Nav</nav>\n * <main style=\"grid-area: main\">Main</main>\n * </ore-grid>\n */\nexport const GRID_TAG = 'ore-grid' as const;\ndefine<OreGridProps>(GRID_TAG, {\n props: {\n align: prop.string<'start' | 'center' | 'end' | 'stretch' | 'baseline'>(),\n areas: prop.string(),\n areas2xl: prop.string(),\n areasLg: prop.string(),\n areasMd: prop.string(),\n areasSm: prop.string(),\n areasXl: prop.string(),\n cols: prop.string<ColCount>(),\n cols2xl: prop.string<ColCount>(),\n colsLg: prop.string<ColCount>(),\n colsMd: prop.string<ColCount>(),\n colsSm: prop.string<ColCount>(),\n colsXl: prop.string<ColCount>(),\n flow: prop.string<'row' | 'column' | 'row-dense' | 'column-dense'>(),\n fullwidth: prop.bool(false),\n gap: prop.string<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'>(),\n justify: prop.string<'start' | 'center' | 'end' | 'stretch'>(),\n minColWidth: prop.string(),\n responsive: prop.bool(false),\n rows: prop.string<'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | 'auto'>(),\n },\n\n setup(props) {\n const el = getHost();\n const watch = watchEffect;\n\n const computeCols = (activeCols: string | undefined, responsive: boolean, minW: string): string | null => {\n if (activeCols === 'auto' || (!activeCols && responsive)) {\n return `repeat(auto-fit, minmax(${minW || '250px'}, 1fr))`;\n }\n\n return activeCols ? `repeat(${activeCols}, 1fr)` : null;\n };\n const updateCols = () => {\n const w = el.offsetWidth;\n const responsive = Boolean(props.responsive.value);\n const minW = props.minColWidth.value ?? '';\n let activeCols: string | undefined;\n\n for (const [key, cssVar] of BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n activeCols = props[key].value!;\n break;\n }\n }\n activeCols ||= props.cols.value || undefined;\n\n const colsValue = computeCols(activeCols, responsive, minW);\n\n if (colsValue) {\n el.style.setProperty('--_cols', colsValue);\n } else {\n el.style.removeProperty('--_cols');\n }\n };\n\n // Re-run cols whenever any responsive prop changes\n watch(() => {\n void [\n props.cols.value,\n props.colsSm.value,\n props.colsMd.value,\n props.colsLg.value,\n props.colsXl.value,\n props.cols2xl.value,\n props.responsive.value,\n props.minColWidth.value,\n ];\n updateCols();\n });\n\n const updateAreas = () => {\n const w = el.offsetWidth;\n let active = '';\n\n for (const [key, cssVar] of AREAS_BREAKPOINTS) {\n if (w >= resolveBp(el, cssVar, BP_FALLBACKS[cssVar]) && props[key].value) {\n active = props[key].value!;\n break;\n }\n }\n active ||= props.areas.value || '';\n\n if (active) {\n el.style.setProperty('grid-template-areas', active);\n } else {\n el.style.removeProperty('grid-template-areas');\n }\n };\n\n // Rows\n watch(() => {\n const rows = props.rows.value;\n\n if (rows && rows !== 'auto') {\n el.style.setProperty('--_rows', `repeat(${rows}, 1fr)`);\n } else {\n el.style.removeProperty('--_rows');\n }\n });\n // Grid template areas (responsive)\n watch(() => {\n void [\n props.areas.value,\n props.areasSm.value,\n props.areasMd.value,\n props.areasLg.value,\n props.areasXl.value,\n props.areas2xl.value,\n ];\n updateAreas();\n });\n\n // Also, update on element resize (drives breakpoint switching)\n onMounted(() => {\n const size = resizeObserver(el);\n\n watch(() => {\n void size.value;\n updateCols();\n updateAreas();\n });\n });\n\n return html`<slot></slot>`;\n },\n\n styles: [styles],\n});\n"],"mappings":"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"}
|
package/dist/icon.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs"),t=require("./ore/dist/directives/raw.cjs");require("./ore/dist/directives.cjs");const n=require("./_dev.cjs"),r=require("./content/icon/icon.css
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs"),t=require("./ore/dist/directives/raw.cjs");require("./ore/dist/directives.cjs");const n=require("./_dev.cjs"),r=require("./content/icon/icon.css.cjs");let i=require("@vielzeug/ore"),a=require("@vielzeug/ripple"),o=require("lucide");o=e.__toESM(o,1);var s=16,c=2,l=24,u=new Set([`circle`,`clipPath`,`defs`,`ellipse`,`g`,`line`,`linearGradient`,`mask`,`path`,`polygon`,`polyline`,`radialGradient`,`rect`,`stop`,`symbol`,`use`]),d=/^[a-zA-Z][a-zA-Z0-9:_-]*$/,f=/^(on|xlink:|xml:|href$)/i,p=new Map(Object.entries(o.icons));function m(e){for(let[t,n]of Object.entries(e))p.set(t,n)}var h=e=>Object.entries(e).filter(([e])=>d.test(e)&&!f.test(e)).map(([e,t])=>`${e}="${String(t).replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`)}"`).join(` `),g=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),_=e=>{if(e==null||e===``)return s;let t=Number(e);return Number.isFinite(t)&&t>0&&/^\d+(\.\d+)?$/.test(e.trim())?t:e},v=`ore-icon`;(0,i.define)(v,{props:{absoluteStrokeWidth:i.prop.bool(),label:i.prop.string(),name:i.prop.string(),size:{default:s,parse:_,reflect:!1},solid:i.prop.bool(),strokeWidth:i.prop.number(c)},setup(e){return(0,i.bind)({attr:{"aria-hidden":()=>(e.label.value??``).trim()?null:`true`,"aria-label":()=>(e.label.value??``).trim()||null,role:()=>(e.label.value??``).trim()?`img`:null},style:{"--_size-px":()=>{let t=e.size.value;return typeof t==`number`?`${t}px`:String(t)}}}),i.html`${t.raw((0,a.computed)(()=>{let t=(e.name.value??``).trim();if(!t)return``;let r=p.get(t)??p.get(g(t));if(!r)return n.warn(`ore-icon: icon not found: "${String(t).slice(0,64)}"`),``;let i=e.size.value,a=typeof i==`number`?i:l,o=e.absoluteStrokeWidth.value&&!e.solid.value?e.strokeWidth.value*(l/a):e.strokeWidth.value,s=r.filter(([e])=>u.has(e)).map(([e,t])=>{let n={};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return`<${e} ${h(n)} />`}).join(``);return`<svg ${h({fill:e.solid.value?`currentColor`:`none`,part:`svg`,stroke:e.solid.value?`none`:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":e.solid.value?0:o,style:`width:100%;height:100%`,viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`})}>${s}</svg>`}))}`},styles:[r.default]}),exports.ICON_TAG=v,exports.registerIcons=m;
|
|
2
2
|
//# sourceMappingURL=icon.cjs.map
|
package/dist/icon.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.cjs","names":[],"sources":["../src/content/icon/icon.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { raw } from '@vielzeug/ore/directives';\nimport { computed } from '@vielzeug/ripple';\nimport * as lucideModule from 'lucide';\n\nimport { warn } from '../../_dev';\nimport styles from './icon.css?inline';\n\nexport type IconNode = Array<[string, Record<string, string | number | undefined>]>;\n\nconst DEFAULT_SIZE = 16;\nconst DEFAULT_STROKE_WIDTH = 2;\nconst LUCIDE_VIEWBOX_SIZE = 24;\n\n/**\n * Allowlisted SVG shape/structure element names. Only these tags are permitted\n * when building the SVG markup from an IconNode, preventing arbitrary element\n * injection (e.g. <script>, event-handler-bearing elements).\n */\nconst ALLOWED_SVG_TAGS = new Set([\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'g',\n 'line',\n 'linearGradient',\n 'mask',\n 'path',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'symbol',\n 'use',\n]);\n\n/**\n * Allowlisted SVG presentation / structural attribute names.\n * Event handler attributes (on*) and \"xlink:href\" are excluded.\n */\nconst ATTR_KEY_RE = /^[a-zA-Z][a-zA-Z0-9:_-]*$/;\nconst BLOCKED_ATTR_RE = /^(on|xlink:|xml:|href$)/i;\n\n// Sync registry seeded from lucide at module load; extend at any time via registerIcons()\nconst registry = new Map<string, IconNode>(\n Object.entries((lucideModule as unknown as { icons: Record<string, IconNode> }).icons),\n);\n\n/**\n * Register additional icons (or override existing ones) by name.\n * Keys may be kebab-case or PascalCase — both are accepted by `ore-icon`.\n */\nexport function registerIcons(icons: Record<string, IconNode>): void {\n for (const [name, node] of Object.entries(icons)) {\n registry.set(name, node);\n }\n}\n\nconst toAttrString = (attrs: Record<string, string | number>): string =>\n Object.entries(attrs)\n .filter(([k]) => ATTR_KEY_RE.test(k) && !BLOCKED_ATTR_RE.test(k))\n .map(\n ([k, v]) =>\n `${k}=\"${String(v).replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')}\"`,\n )\n .join(' ');\n\nconst toPascalCase = (value: string): string =>\n value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())\n .join('');\n\nconst parseSize = (value: string | null): number | string => {\n if (value == null || value === '') return DEFAULT_SIZE;\n\n const n = Number(value);\n\n return Number.isFinite(n) && n > 0 && /^\\d+(\\.\\d+)?$/.test(value.trim()) ? n : value;\n};\n\n/** Icon component properties */\nexport type OreIconProps = {\n /** Keep stroke width visually consistent when icon size changes */\n absoluteStrokeWidth?: boolean;\n /** Accessible text label. Decorative icons should omit this. */\n label?: string;\n /** Lucide icon name, e.g. `search` or `chevron-right` */\n name?: string;\n /** Icon width/height in px by default. Accepts CSS lengths. */\n size?: number | string;\n /** Render as a filled/solid shape instead of a stroked outline */\n solid?: boolean;\n /** SVG stroke width */\n strokeWidth?: number;\n};\n\n/**\n * Icon wrapper for consistent Lucide rendering across Block.\n *\n * @element ore-icon\n *\n * @attr {string} name - Lucide icon name, e.g. `search` or `chevron-right`\n * @attr {number|string} size - Width/height (default: 16)\n * @attr {number} stroke-width - SVG stroke width (default: 2)\n * @attr {boolean} absolute-stroke-width - Keep stroke width visually stable across icon sizes\n * @attr {boolean} solid - Render as filled shape instead of stroked outline\n * @attr {string} label - Accessible label; when omitted the icon is decorative\n *\n * @csspart svg - Internal SVG element\n *\n * @example\n * ```html\n * <ore-icon name=\"search\"></ore-icon>\n * <ore-icon name=\"chevron-right\" size=\"18\"></ore-icon>\n * <ore-icon name=\"trash-2\" label=\"Delete\"></ore-icon>\n * <ore-icon name=\"star\" solid></ore-icon>\n * ```\n */\nexport const ICON_TAG = 'ore-icon' as const;\ndefine<OreIconProps>(ICON_TAG, {\n props: {\n absoluteStrokeWidth: prop.bool(),\n label: prop.string(),\n name: prop.string(),\n size: { default: DEFAULT_SIZE as number | string, parse: parseSize, reflect: false },\n solid: prop.bool(),\n strokeWidth: prop.number(DEFAULT_STROKE_WIDTH),\n },\n setup(props
|
|
1
|
+
{"version":3,"file":"icon.cjs","names":[],"sources":["../src/content/icon/icon.ts"],"sourcesContent":["import { define, html, prop, bind } from '@vielzeug/ore';\nimport { raw } from '@vielzeug/ore/directives';\nimport { computed } from '@vielzeug/ripple';\nimport * as lucideModule from 'lucide';\n\nimport { warn } from '../../_dev';\nimport styles from './icon.css?inline';\n\nexport type IconNode = Array<[string, Record<string, string | number | undefined>]>;\n\nconst DEFAULT_SIZE = 16;\nconst DEFAULT_STROKE_WIDTH = 2;\nconst LUCIDE_VIEWBOX_SIZE = 24;\n\n/**\n * Allowlisted SVG shape/structure element names. Only these tags are permitted\n * when building the SVG markup from an IconNode, preventing arbitrary element\n * injection (e.g. <script>, event-handler-bearing elements).\n */\nconst ALLOWED_SVG_TAGS = new Set([\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'g',\n 'line',\n 'linearGradient',\n 'mask',\n 'path',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'symbol',\n 'use',\n]);\n\n/**\n * Allowlisted SVG presentation / structural attribute names.\n * Event handler attributes (on*) and \"xlink:href\" are excluded.\n */\nconst ATTR_KEY_RE = /^[a-zA-Z][a-zA-Z0-9:_-]*$/;\nconst BLOCKED_ATTR_RE = /^(on|xlink:|xml:|href$)/i;\n\n// Sync registry seeded from lucide at module load; extend at any time via registerIcons()\nconst registry = new Map<string, IconNode>(\n Object.entries((lucideModule as unknown as { icons: Record<string, IconNode> }).icons),\n);\n\n/**\n * Register additional icons (or override existing ones) by name.\n * Keys may be kebab-case or PascalCase — both are accepted by `ore-icon`.\n */\nexport function registerIcons(icons: Record<string, IconNode>): void {\n for (const [name, node] of Object.entries(icons)) {\n registry.set(name, node);\n }\n}\n\nconst toAttrString = (attrs: Record<string, string | number>): string =>\n Object.entries(attrs)\n .filter(([k]) => ATTR_KEY_RE.test(k) && !BLOCKED_ATTR_RE.test(k))\n .map(\n ([k, v]) =>\n `${k}=\"${String(v).replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')}\"`,\n )\n .join(' ');\n\nconst toPascalCase = (value: string): string =>\n value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())\n .join('');\n\nconst parseSize = (value: string | null): number | string => {\n if (value == null || value === '') return DEFAULT_SIZE;\n\n const n = Number(value);\n\n return Number.isFinite(n) && n > 0 && /^\\d+(\\.\\d+)?$/.test(value.trim()) ? n : value;\n};\n\n/** Icon component properties */\nexport type OreIconProps = {\n /** Keep stroke width visually consistent when icon size changes */\n absoluteStrokeWidth?: boolean;\n /** Accessible text label. Decorative icons should omit this. */\n label?: string;\n /** Lucide icon name, e.g. `search` or `chevron-right` */\n name?: string;\n /** Icon width/height in px by default. Accepts CSS lengths. */\n size?: number | string;\n /** Render as a filled/solid shape instead of a stroked outline */\n solid?: boolean;\n /** SVG stroke width */\n strokeWidth?: number;\n};\n\n/**\n * Icon wrapper for consistent Lucide rendering across Block.\n *\n * @element ore-icon\n *\n * @attr {string} name - Lucide icon name, e.g. `search` or `chevron-right`\n * @attr {number|string} size - Width/height (default: 16)\n * @attr {number} stroke-width - SVG stroke width (default: 2)\n * @attr {boolean} absolute-stroke-width - Keep stroke width visually stable across icon sizes\n * @attr {boolean} solid - Render as filled shape instead of stroked outline\n * @attr {string} label - Accessible label; when omitted the icon is decorative\n *\n * @csspart svg - Internal SVG element\n *\n * @example\n * ```html\n * <ore-icon name=\"search\"></ore-icon>\n * <ore-icon name=\"chevron-right\" size=\"18\"></ore-icon>\n * <ore-icon name=\"trash-2\" label=\"Delete\"></ore-icon>\n * <ore-icon name=\"star\" solid></ore-icon>\n * ```\n */\nexport const ICON_TAG = 'ore-icon' as const;\ndefine<OreIconProps>(ICON_TAG, {\n props: {\n absoluteStrokeWidth: prop.bool(),\n label: prop.string(),\n name: prop.string(),\n size: { default: DEFAULT_SIZE as number | string, parse: parseSize, reflect: false },\n solid: prop.bool(),\n strokeWidth: prop.number(DEFAULT_STROKE_WIDTH),\n },\n setup(props) {\n bind({\n attr: {\n 'aria-hidden': () => ((props.label.value ?? '').trim() ? null : 'true'),\n 'aria-label': () => (props.label.value ?? '').trim() || null,\n role: () => ((props.label.value ?? '').trim() ? 'img' : null),\n },\n style: {\n '--_size-px': () => {\n const s = props.size.value;\n\n return typeof s === 'number' ? `${s}px` : String(s);\n },\n },\n });\n\n const markup = computed(() => {\n const name = (props.name.value ?? '').trim();\n\n if (!name) return '';\n\n const iconNode = registry.get(name) ?? registry.get(toPascalCase(name));\n\n if (!iconNode) {\n warn(`ore-icon: icon not found: \"${String(name).slice(0, 64)}\"`);\n\n return '';\n }\n\n const size = props.size.value;\n const numericSize = typeof size === 'number' ? size : LUCIDE_VIEWBOX_SIZE;\n\n const strokeWidth =\n props.absoluteStrokeWidth.value && !props.solid.value\n ? props.strokeWidth.value! * (LUCIDE_VIEWBOX_SIZE / numericSize)\n : props.strokeWidth.value!;\n\n const nodes = iconNode\n .filter(([tag]) => ALLOWED_SVG_TAGS.has(tag))\n .map(([tag, tagAttrs]) => {\n const attrs: Record<string, string | number> = {};\n\n for (const [k, v] of Object.entries(tagAttrs)) {\n if (v !== undefined) attrs[k] = v;\n }\n\n return `<${tag} ${toAttrString(attrs)} />`;\n })\n .join('');\n\n const svgAttrs = toAttrString({\n fill: props.solid.value ? 'currentColor' : 'none',\n part: 'svg',\n stroke: props.solid.value ? 'none' : 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': props.solid.value ? 0 : strokeWidth,\n style: `width:100%;height:100%`,\n viewBox: '0 0 24 24',\n xmlns: 'http://www.w3.org/2000/svg',\n });\n\n return `<svg ${svgAttrs}>${nodes}</svg>`;\n });\n\n return html`${raw(markup)}`;\n },\n styles: [styles],\n});\n"],"mappings":"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"}
|
package/dist/icon.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { raw as e } from "./ore/dist/directives/raw.js";
|
|
2
2
|
import "./ore/dist/directives.js";
|
|
3
3
|
import { warn as t } from "./_dev.js";
|
|
4
|
-
import n from "./content/icon/icon.css
|
|
5
|
-
import {
|
|
6
|
-
import { computed as
|
|
7
|
-
import * as
|
|
4
|
+
import n from "./content/icon/icon.css.js";
|
|
5
|
+
import { bind as r, define as i, html as a, prop as o } from "@vielzeug/ore";
|
|
6
|
+
import { computed as s } from "@vielzeug/ripple";
|
|
7
|
+
import * as c from "lucide";
|
|
8
8
|
//#region src/content/icon/icon.ts
|
|
9
|
-
var
|
|
9
|
+
var l = 16, u = 2, d = 24, f = /* @__PURE__ */ new Set([
|
|
10
10
|
"circle",
|
|
11
11
|
"clipPath",
|
|
12
12
|
"defs",
|
|
@@ -23,29 +23,29 @@ var c = 16, l = 2, u = 24, d = /* @__PURE__ */ new Set([
|
|
|
23
23
|
"stop",
|
|
24
24
|
"symbol",
|
|
25
25
|
"use"
|
|
26
|
-
]),
|
|
27
|
-
function
|
|
28
|
-
for (let [t, n] of Object.entries(e))
|
|
26
|
+
]), p = /^[a-zA-Z][a-zA-Z0-9:_-]*$/, m = /^(on|xlink:|xml:|href$)/i, h = new Map(Object.entries(c.icons));
|
|
27
|
+
function g(e) {
|
|
28
|
+
for (let [t, n] of Object.entries(e)) h.set(t, n);
|
|
29
29
|
}
|
|
30
|
-
var
|
|
31
|
-
if (e == null || e === "") return
|
|
30
|
+
var _ = (e) => Object.entries(e).filter(([e]) => p.test(e) && !m.test(e)).map(([e, t]) => `${e}="${String(t).replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">")}"`).join(" "), v = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").split(/[^a-zA-Z0-9]+/).filter(Boolean).map((e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(""), y = (e) => {
|
|
31
|
+
if (e == null || e === "") return l;
|
|
32
32
|
let t = Number(e);
|
|
33
33
|
return Number.isFinite(t) && t > 0 && /^\d+(\.\d+)?$/.test(e.trim()) ? t : e;
|
|
34
|
-
},
|
|
35
|
-
|
|
34
|
+
}, b = "ore-icon";
|
|
35
|
+
i(b, {
|
|
36
36
|
props: {
|
|
37
|
-
absoluteStrokeWidth:
|
|
38
|
-
label:
|
|
39
|
-
name:
|
|
37
|
+
absoluteStrokeWidth: o.bool(),
|
|
38
|
+
label: o.string(),
|
|
39
|
+
name: o.string(),
|
|
40
40
|
size: {
|
|
41
|
-
default:
|
|
42
|
-
parse:
|
|
41
|
+
default: l,
|
|
42
|
+
parse: y,
|
|
43
43
|
reflect: !1
|
|
44
44
|
},
|
|
45
|
-
solid:
|
|
46
|
-
strokeWidth:
|
|
45
|
+
solid: o.bool(),
|
|
46
|
+
strokeWidth: o.number(u)
|
|
47
47
|
},
|
|
48
|
-
setup(n
|
|
48
|
+
setup(n) {
|
|
49
49
|
return r({
|
|
50
50
|
attr: {
|
|
51
51
|
"aria-hidden": () => (n.label.value ?? "").trim() ? null : "true",
|
|
@@ -56,17 +56,17 @@ r(y, {
|
|
|
56
56
|
let e = n.size.value;
|
|
57
57
|
return typeof e == "number" ? `${e}px` : String(e);
|
|
58
58
|
} }
|
|
59
|
-
}),
|
|
59
|
+
}), a`${e(s(() => {
|
|
60
60
|
let e = (n.name.value ?? "").trim();
|
|
61
61
|
if (!e) return "";
|
|
62
|
-
let r =
|
|
62
|
+
let r = h.get(e) ?? h.get(v(e));
|
|
63
63
|
if (!r) return t(`ore-icon: icon not found: "${String(e).slice(0, 64)}"`), "";
|
|
64
|
-
let i = n.size.value, a = typeof i == "number" ? i :
|
|
64
|
+
let i = n.size.value, a = typeof i == "number" ? i : d, o = n.absoluteStrokeWidth.value && !n.solid.value ? n.strokeWidth.value * (d / a) : n.strokeWidth.value, s = r.filter(([e]) => f.has(e)).map(([e, t]) => {
|
|
65
65
|
let n = {};
|
|
66
66
|
for (let [e, r] of Object.entries(t)) r !== void 0 && (n[e] = r);
|
|
67
|
-
return `<${e} ${
|
|
67
|
+
return `<${e} ${_(n)} />`;
|
|
68
68
|
}).join("");
|
|
69
|
-
return `<svg ${
|
|
69
|
+
return `<svg ${_({
|
|
70
70
|
fill: n.solid.value ? "currentColor" : "none",
|
|
71
71
|
part: "svg",
|
|
72
72
|
stroke: n.solid.value ? "none" : "currentColor",
|
|
@@ -82,6 +82,6 @@ r(y, {
|
|
|
82
82
|
styles: [n]
|
|
83
83
|
});
|
|
84
84
|
//#endregion
|
|
85
|
-
export {
|
|
85
|
+
export { b as ICON_TAG, g as registerIcons };
|
|
86
86
|
|
|
87
87
|
//# sourceMappingURL=icon.js.map
|