@acronis-platform/ui-react 3.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +11 -0
- package/dist/components/ui/accordion/accordion.js +40 -53
- package/dist/components/ui/accordion/accordion.js.map +1 -1
- package/dist/components/ui/accordion-container/accordion-container.js +93 -141
- package/dist/components/ui/accordion-container/accordion-container.js.map +1 -1
- package/dist/components/ui/alert/alert.js +95 -156
- package/dist/components/ui/alert/alert.js.map +1 -1
- package/dist/components/ui/app-shell-chat/app-shell-chat.js +233 -332
- package/dist/components/ui/app-shell-chat/app-shell-chat.js.map +1 -1
- package/dist/components/ui/area-chart/area-chart.js +155 -238
- package/dist/components/ui/area-chart/area-chart.js.map +1 -1
- package/dist/components/ui/avatar/avatar.js +47 -84
- package/dist/components/ui/avatar/avatar.js.map +1 -1
- package/dist/components/ui/bar-chart/bar-chart.js +405 -613
- package/dist/components/ui/bar-chart/bar-chart.js.map +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb.js +68 -116
- package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/ui/button/button.js +31 -40
- package/dist/components/ui/button/button.js.map +1 -1
- package/dist/components/ui/button-group/button-group.js +33 -55
- package/dist/components/ui/button-group/button-group.js.map +1 -1
- package/dist/components/ui/button-icon/button-icon.js +26 -35
- package/dist/components/ui/button-icon/button-icon.js.map +1 -1
- package/dist/components/ui/button-icon-input/button-icon-input.js +28 -35
- package/dist/components/ui/button-icon-input/button-icon-input.js.map +1 -1
- package/dist/components/ui/button-icon-menu/button-icon-menu.js +22 -26
- package/dist/components/ui/button-icon-menu/button-icon-menu.js.map +1 -1
- package/dist/components/ui/button-menu/button-menu.js +36 -52
- package/dist/components/ui/button-menu/button-menu.js.map +1 -1
- package/dist/components/ui/calendar/calendar.js +103 -202
- package/dist/components/ui/calendar/calendar.js.map +1 -1
- package/dist/components/ui/calendar-panel/calendar-panel-utils.js +46 -57
- package/dist/components/ui/calendar-panel/calendar-panel-utils.js.map +1 -1
- package/dist/components/ui/calendar-panel/calendar-panel.js +136 -257
- package/dist/components/ui/calendar-panel/calendar-panel.js.map +1 -1
- package/dist/components/ui/card/card.js +104 -168
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/card-filter/card-filter.js +49 -76
- package/dist/components/ui/card-filter/card-filter.js.map +1 -1
- package/dist/components/ui/card-section/card-section.js +81 -111
- package/dist/components/ui/card-section/card-section.js.map +1 -1
- package/dist/components/ui/carousel-dialog/carousel-dialog.js +49 -87
- package/dist/components/ui/carousel-dialog/carousel-dialog.js.map +1 -1
- package/dist/components/ui/category-bar/category-bar.js +122 -145
- package/dist/components/ui/category-bar/category-bar.js.map +1 -1
- package/dist/components/ui/chart/chart-format.js +117 -153
- package/dist/components/ui/chart/chart-format.js.map +1 -1
- package/dist/components/ui/chart/chart-palette.js +69 -0
- package/dist/components/ui/chart/chart-palette.js.map +1 -0
- package/dist/components/ui/chart/chart.js +178 -259
- package/dist/components/ui/chart/chart.js.map +1 -1
- package/dist/components/ui/chart-state/chart-state-illustrations.js +412 -0
- package/dist/components/ui/chart-state/chart-state-illustrations.js.map +1 -0
- package/dist/components/ui/chart-state/chart-state.js +40 -42
- package/dist/components/ui/chart-state/chart-state.js.map +1 -1
- package/dist/components/ui/chart-widget/chart-widget.js +40 -0
- package/dist/components/ui/chart-widget/chart-widget.js.map +1 -0
- package/dist/components/ui/checkbox/checkbox.js +56 -69
- package/dist/components/ui/checkbox/checkbox.js.map +1 -1
- package/dist/components/ui/chip/chip.js +51 -70
- package/dist/components/ui/chip/chip.js.map +1 -1
- package/dist/components/ui/combobox/combobox.js +88 -151
- package/dist/components/ui/combobox/combobox.js.map +1 -1
- package/dist/components/ui/composed-chart/composed-chart.js +297 -432
- package/dist/components/ui/composed-chart/composed-chart.js.map +1 -1
- package/dist/components/ui/confidence-cone/confidence-cone.js +214 -324
- package/dist/components/ui/confidence-cone/confidence-cone.js.map +1 -1
- package/dist/components/ui/data-table/data-table-bulk-actions-bar.js +32 -37
- package/dist/components/ui/data-table/data-table-bulk-actions-bar.js.map +1 -1
- package/dist/components/ui/data-table/data-table-column-header.js +23 -38
- package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/ui/data-table/data-table-expand-trigger.js +23 -46
- package/dist/components/ui/data-table/data-table-expand-trigger.js.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.js +84 -89
- package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/ui/data-table/data-table-selection.js +7 -6
- package/dist/components/ui/data-table/data-table-selection.js.map +1 -1
- package/dist/components/ui/data-table/data-table-toolbar.js +51 -76
- package/dist/components/ui/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/ui/data-table/data-table-view-options.js +21 -28
- package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
- package/dist/components/ui/data-table/data-table.js +304 -438
- package/dist/components/ui/data-table/data-table.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker-utils.js +16 -14
- package/dist/components/ui/date-range-picker/date-range-picker-utils.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.js +77 -111
- package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/ui/description-list/description-list.js +44 -54
- package/dist/components/ui/description-list/description-list.js.map +1 -1
- package/dist/components/ui/dialog/dialog.js +229 -310
- package/dist/components/ui/dialog/dialog.js.map +1 -1
- package/dist/components/ui/dialog-footer-carousel/dialog-footer-carousel.js +33 -57
- package/dist/components/ui/dialog-footer-carousel/dialog-footer-carousel.js.map +1 -1
- package/dist/components/ui/dialog-footer-default/dialog-footer-default.js +21 -26
- package/dist/components/ui/dialog-footer-default/dialog-footer-default.js.map +1 -1
- package/dist/components/ui/dialog-welcome/dialog-welcome.js +221 -267
- package/dist/components/ui/dialog-welcome/dialog-welcome.js.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +101 -168
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/ui/empty/empty.js +49 -77
- package/dist/components/ui/empty/empty.js.map +1 -1
- package/dist/components/ui/empty-overlay/empty-overlay.js +43 -49
- package/dist/components/ui/empty-overlay/empty-overlay.js.map +1 -1
- package/dist/components/ui/field/field.js +95 -178
- package/dist/components/ui/field/field.js.map +1 -1
- package/dist/components/ui/filter-cards/filter-cards.js +16 -25
- package/dist/components/ui/filter-cards/filter-cards.js.map +1 -1
- package/dist/components/ui/filter-chips/filter-chips.js +36 -44
- package/dist/components/ui/filter-chips/filter-chips.js.map +1 -1
- package/dist/components/ui/filter-search/filter-search.js +139 -209
- package/dist/components/ui/filter-search/filter-search.js.map +1 -1
- package/dist/components/ui/fitted-actions/fitted-actions.js +87 -137
- package/dist/components/ui/fitted-actions/fitted-actions.js.map +1 -1
- package/dist/components/ui/form/form.js +14 -15
- package/dist/components/ui/form/form.js.map +1 -1
- package/dist/components/ui/funnel-chart/funnel-chart.js +190 -273
- package/dist/components/ui/funnel-chart/funnel-chart.js.map +1 -1
- package/dist/components/ui/grid/grid.js +61 -68
- package/dist/components/ui/grid/grid.js.map +1 -1
- package/dist/components/ui/histogram/histogram.js +107 -139
- package/dist/components/ui/histogram/histogram.js.map +1 -1
- package/dist/components/ui/input/input.js +14 -21
- package/dist/components/ui/input/input.js.map +1 -1
- package/dist/components/ui/input-date-picker/input-date-picker.js +70 -114
- package/dist/components/ui/input-date-picker/input-date-picker.js.map +1 -1
- package/dist/components/ui/input-num-picker/input-num-picker.js +48 -0
- package/dist/components/ui/input-num-picker/input-num-picker.js.map +1 -0
- package/dist/components/ui/input-otp/input-otp.js +75 -104
- package/dist/components/ui/input-otp/input-otp.js.map +1 -1
- package/dist/components/ui/input-password/input-password.js +71 -126
- package/dist/components/ui/input-password/input-password.js.map +1 -1
- package/dist/components/ui/input-search/input-search.js +32 -56
- package/dist/components/ui/input-search/input-search.js.map +1 -1
- package/dist/components/ui/input-select/input-select.js +225 -335
- package/dist/components/ui/input-select/input-select.js.map +1 -1
- package/dist/components/ui/input-text/input-text.js +54 -98
- package/dist/components/ui/input-text/input-text.js.map +1 -1
- package/dist/components/ui/input-text-area/input-text-area.js +41 -86
- package/dist/components/ui/input-text-area/input-text-area.js.map +1 -1
- package/dist/components/ui/label/label.js +6 -12
- package/dist/components/ui/label/label.js.map +1 -1
- package/dist/components/ui/line-chart/line-chart.js +175 -275
- package/dist/components/ui/line-chart/line-chart.js.map +1 -1
- package/dist/components/ui/link/link.js +34 -54
- package/dist/components/ui/link/link.js.map +1 -1
- package/dist/components/ui/loading/loading.js +51 -78
- package/dist/components/ui/loading/loading.js.map +1 -1
- package/dist/components/ui/meter/meter.js +79 -93
- package/dist/components/ui/meter/meter.js.map +1 -1
- package/dist/components/ui/metric/metric.js +83 -200
- package/dist/components/ui/metric/metric.js.map +1 -1
- package/dist/components/ui/number-field/number-field.js +36 -60
- package/dist/components/ui/number-field/number-field.js.map +1 -1
- package/dist/components/ui/page-content/page-content.js +15 -19
- package/dist/components/ui/page-content/page-content.js.map +1 -1
- package/dist/components/ui/page-header/page-header.js +120 -181
- package/dist/components/ui/page-header/page-header.js.map +1 -1
- package/dist/components/ui/pagination/pagination.js +58 -86
- package/dist/components/ui/pagination/pagination.js.map +1 -1
- package/dist/components/ui/pie-chart/pie-chart.js +189 -262
- package/dist/components/ui/pie-chart/pie-chart.js.map +1 -1
- package/dist/components/ui/popover/popover.js +51 -96
- package/dist/components/ui/popover/popover.js.map +1 -1
- package/dist/components/ui/progress/progress.js +23 -29
- package/dist/components/ui/progress/progress.js.map +1 -1
- package/dist/components/ui/progress-circle/progress-circle.js +97 -113
- package/dist/components/ui/progress-circle/progress-circle.js.map +1 -1
- package/dist/components/ui/radar-chart/radar-chart.js +127 -223
- package/dist/components/ui/radar-chart/radar-chart.js.map +1 -1
- package/dist/components/ui/radial-bar-chart/radial-bar-chart.js +267 -367
- package/dist/components/ui/radial-bar-chart/radial-bar-chart.js.map +1 -1
- package/dist/components/ui/radio/radio.js +22 -43
- package/dist/components/ui/radio/radio.js.map +1 -1
- package/dist/components/ui/resizable/resizable.js +20 -64
- package/dist/components/ui/resizable/resizable.js.map +1 -1
- package/dist/components/ui/sankey-chart/sankey-chart.js +155 -195
- package/dist/components/ui/sankey-chart/sankey-chart.js.map +1 -1
- package/dist/components/ui/scatter-chart/scatter-chart.js +95 -138
- package/dist/components/ui/scatter-chart/scatter-chart.js.map +1 -1
- package/dist/components/ui/scroll-area/scroll-area.js +43 -77
- package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/ui/search/search.js +58 -92
- package/dist/components/ui/search/search.js.map +1 -1
- package/dist/components/ui/section/section.js +125 -37
- package/dist/components/ui/section/section.js.map +1 -1
- package/dist/components/ui/separator/separator.js +16 -22
- package/dist/components/ui/separator/separator.js.map +1 -1
- package/dist/components/ui/sheet/sheet-details.js +55 -78
- package/dist/components/ui/sheet/sheet-details.js.map +1 -1
- package/dist/components/ui/sheet/sheet.js +80 -136
- package/dist/components/ui/sheet/sheet.js.map +1 -1
- package/dist/components/ui/sidebar-primary/sidebar-primary.js +220 -364
- package/dist/components/ui/sidebar-primary/sidebar-primary.js.map +1 -1
- package/dist/components/ui/sidebar-secondary/sidebar-secondary.js +459 -641
- package/dist/components/ui/sidebar-secondary/sidebar-secondary.js.map +1 -1
- package/dist/components/ui/skeleton/skeleton.js +14 -21
- package/dist/components/ui/skeleton/skeleton.js.map +1 -1
- package/dist/components/ui/slider/slider.js +28 -42
- package/dist/components/ui/slider/slider.js.map +1 -1
- package/dist/components/ui/spinner/spinner.js +28 -37
- package/dist/components/ui/spinner/spinner.js.map +1 -1
- package/dist/components/ui/stack/stack.js +59 -61
- package/dist/components/ui/stack/stack.js.map +1 -1
- package/dist/components/ui/stepper/stepper.js +52 -70
- package/dist/components/ui/stepper/stepper.js.map +1 -1
- package/dist/components/ui/stepper-item/stepper-item.js +85 -97
- package/dist/components/ui/stepper-item/stepper-item.js.map +1 -1
- package/dist/components/ui/switch/switch.js +26 -40
- package/dist/components/ui/switch/switch.js.map +1 -1
- package/dist/components/ui/table/table-pagination.js +91 -106
- package/dist/components/ui/table/table-pagination.js.map +1 -1
- package/dist/components/ui/table/table-view-options.js +37 -53
- package/dist/components/ui/table/table-view-options.js.map +1 -1
- package/dist/components/ui/table/table.js +90 -177
- package/dist/components/ui/table/table.js.map +1 -1
- package/dist/components/ui/tabs/tabs.js +26 -43
- package/dist/components/ui/tabs/tabs.js.map +1 -1
- package/dist/components/ui/tag/tag.js +42 -47
- package/dist/components/ui/tag/tag.js.map +1 -1
- package/dist/components/ui/timeline/timeline.js +161 -239
- package/dist/components/ui/timeline/timeline.js.map +1 -1
- package/dist/components/ui/timer/timer.js +24 -47
- package/dist/components/ui/timer/timer.js.map +1 -1
- package/dist/components/ui/toast/toast.js +134 -189
- package/dist/components/ui/toast/toast.js.map +1 -1
- package/dist/components/ui/toggle-group/toggle-group.js +28 -46
- package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/ui/toolbar/toolbar.js +128 -201
- package/dist/components/ui/toolbar/toolbar.js.map +1 -1
- package/dist/components/ui/tooltip/tooltip.js +35 -57
- package/dist/components/ui/tooltip/tooltip.js.map +1 -1
- package/dist/components/ui/treemap/treemap.js +135 -204
- package/dist/components/ui/treemap/treemap.js.map +1 -1
- package/dist/components/ui/trend-indicator/trend-indicator.js +48 -97
- package/dist/components/ui/trend-indicator/trend-indicator.js.map +1 -1
- package/dist/components/ui/truncate-text/middle-truncate.js +19 -19
- package/dist/components/ui/truncate-text/middle-truncate.js.map +1 -1
- package/dist/components/ui/truncate-text/text-width.js +11 -10
- package/dist/components/ui/truncate-text/text-width.js.map +1 -1
- package/dist/components/ui/truncate-text/truncate-text.js +92 -152
- package/dist/components/ui/truncate-text/truncate-text.js.map +1 -1
- package/dist/components/ui/widget-placeholder/widget-placeholder.js +63 -106
- package/dist/components/ui/widget-placeholder/widget-placeholder.js.map +1 -1
- package/dist/components/ui/wizard/wizard.js +36 -0
- package/dist/components/ui/wizard/wizard.js.map +1 -0
- package/dist/hooks/use-intersection-observer.js +27 -25
- package/dist/hooks/use-intersection-observer.js.map +1 -1
- package/dist/hooks/use-sort-state.js +43 -33
- package/dist/hooks/use-sort-state.js.map +1 -1
- package/dist/hooks/use-table-url-state.js +100 -109
- package/dist/hooks/use-table-url-state.js.map +1 -1
- package/dist/hooks/use-wizard.js +61 -0
- package/dist/hooks/use-wizard.js.map +1 -0
- package/dist/index.js +124 -544
- package/dist/lib/breakpoints.js +8 -13
- package/dist/lib/breakpoints.js.map +1 -1
- package/dist/lib/deep-equal.js +14 -22
- package/dist/lib/deep-equal.js.map +1 -1
- package/dist/lib/portal-container.js +16 -12
- package/dist/lib/portal-container.js.map +1 -1
- package/dist/lib/use-doc-dir.js +11 -10
- package/dist/lib/use-doc-dir.js.map +1 -1
- package/dist/lib/utils.js +8 -7
- package/dist/lib/utils.js.map +1 -1
- package/dist/llms/accordion-container.md +181 -0
- package/dist/llms/accordion.md +124 -0
- package/dist/llms/alert.md +225 -0
- package/dist/llms/app-shell-chat.md +415 -0
- package/dist/llms/area-chart.md +355 -0
- package/dist/llms/avatar.md +208 -0
- package/dist/llms/bar-chart.md +406 -0
- package/dist/llms/breadcrumb.md +326 -0
- package/dist/llms/button-group.md +298 -0
- package/dist/llms/button-icon-input.md +142 -0
- package/dist/llms/button-icon-menu.md +209 -0
- package/dist/llms/button-icon.md +128 -0
- package/dist/llms/button-menu.md +172 -0
- package/dist/llms/button.md +185 -0
- package/dist/llms/calendar-panel.md +733 -0
- package/dist/llms/calendar.md +188 -0
- package/dist/llms/card-filter.md +214 -0
- package/dist/llms/card-section.md +293 -0
- package/dist/llms/card.md +447 -0
- package/dist/llms/carousel-dialog.md +156 -0
- package/dist/llms/category-bar.md +193 -0
- package/dist/llms/chart-state.md +190 -0
- package/dist/llms/chart-widget.md +209 -0
- package/dist/llms/chart.md +182 -0
- package/dist/llms/checkbox.md +257 -0
- package/dist/llms/chip.md +195 -0
- package/dist/llms/combobox.md +164 -0
- package/dist/llms/composed-chart.md +508 -0
- package/dist/llms/confidence-cone.md +277 -0
- package/dist/llms/data-table.md +474 -0
- package/dist/llms/date-range-picker.md +272 -0
- package/dist/llms/description-list.md +131 -0
- package/dist/llms/dialog-footer-carousel.md +147 -0
- package/dist/llms/dialog-footer-default.md +142 -0
- package/dist/llms/dialog-root.md +246 -0
- package/dist/llms/dialog-welcome.md +223 -0
- package/dist/llms/dialog.md +403 -0
- package/dist/llms/dropdown-menu.md +193 -0
- package/dist/llms/empty-overlay.md +146 -0
- package/dist/llms/empty.md +156 -0
- package/dist/llms/field.md +185 -0
- package/dist/llms/filter-cards.md +157 -0
- package/dist/llms/filter-chips.md +323 -0
- package/dist/llms/filter-search.md +512 -0
- package/dist/llms/form.md +154 -0
- package/dist/llms/funnel-chart.md +333 -0
- package/dist/llms/grid.md +80 -0
- package/dist/llms/histogram.md +190 -0
- package/dist/llms/input-date-picker.md +203 -0
- package/dist/llms/input-num-picker.md +180 -0
- package/dist/llms/input-otp.md +173 -0
- package/dist/llms/input-password.md +197 -0
- package/dist/llms/input-search.md +170 -0
- package/dist/llms/input-select.md +278 -0
- package/dist/llms/input-text-area.md +271 -0
- package/dist/llms/input-text.md +192 -0
- package/dist/llms/line-chart.md +369 -0
- package/dist/llms/link.md +209 -0
- package/dist/llms/loading.md +130 -0
- package/dist/llms/meter.md +177 -0
- package/dist/llms/metric.md +204 -0
- package/dist/llms/number-field.md +122 -0
- package/dist/llms/page-content.md +69 -0
- package/dist/llms/page-header.md +182 -0
- package/dist/llms/pagination.md +133 -0
- package/dist/llms/pie-chart.md +307 -0
- package/dist/llms/popover.md +252 -0
- package/dist/llms/progress-circle.md +126 -0
- package/dist/llms/progress.md +111 -0
- package/dist/llms/radar-chart.md +316 -0
- package/dist/llms/radial-bar-chart.md +319 -0
- package/dist/llms/radio.md +255 -0
- package/dist/llms/resizable.md +195 -0
- package/dist/llms/sankey-chart.md +208 -0
- package/dist/llms/scatter-chart.md +239 -0
- package/dist/llms/scroll-area.md +183 -0
- package/dist/llms/section.md +401 -0
- package/dist/llms/select.md +210 -0
- package/dist/llms/separator.md +87 -0
- package/dist/llms/sheet.md +202 -0
- package/dist/llms/sidebar-primary.md +360 -0
- package/dist/llms/sidebar-secondary.md +417 -0
- package/dist/llms/skeleton.md +81 -0
- package/dist/llms/slider.md +97 -0
- package/dist/llms/spinner.md +100 -0
- package/dist/llms/stack.md +80 -0
- package/dist/llms/stepper-item.md +309 -0
- package/dist/llms/stepper.md +251 -0
- package/dist/llms/switch.md +140 -0
- package/dist/llms/table.md +436 -0
- package/dist/llms/tabs.md +197 -0
- package/dist/llms/tag.md +139 -0
- package/dist/llms/timeline.md +361 -0
- package/dist/llms/timer.md +259 -0
- package/dist/llms/toast.md +241 -0
- package/dist/llms/toggle-group.md +121 -0
- package/dist/llms/toolbar.md +453 -0
- package/dist/llms/tooltip.md +164 -0
- package/dist/llms/treemap.md +254 -0
- package/dist/llms/trend-indicator.md +132 -0
- package/dist/llms/widget-placeholder.md +169 -0
- package/dist/llms/wizard.md +412 -0
- package/dist/llms.txt +143 -0
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/index.js +58 -61
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/mini.js +71 -85
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/mini.js.map +1 -1
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/index.js +6 -0
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tz/index.js +1 -0
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js +11 -11
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js +22 -21
- package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.21.3_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@tanstack/react-table/build/lib/index.js +36 -99
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.21.3_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js +1478 -1852
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
- package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js +34 -35
- package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -15
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/addLeadingZeros.js +7 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/defaultOptions.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/formatters.js +387 -580
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/lightFormatters.js +44 -59
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/longFormatters.js +39 -52
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +9 -18
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeDates.js +9 -11
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeDates.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeInterval.js +12 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeInterval.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/protectedTokens.js +21 -17
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js +10 -9
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addMonths.js +13 -19
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addMonths.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addWeeks.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addWeeks.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addYears.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addYears.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js +12 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constructFrom.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constructFrom.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarDays.js +12 -15
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarMonths.js +9 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarMonths.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachMonthOfInterval.js +16 -16
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachMonthOfInterval.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachYearOfInterval.js +16 -16
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachYearOfInterval.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfISOWeek.js +11 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfISOWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfMonth.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfWeek.js +10 -10
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfYear.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/format.js +59 -57
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/format.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDayOfYear.js +11 -10
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDayOfYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDaysInMonth.js +10 -9
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDaysInMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeek.js +12 -11
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeekYear.js +15 -14
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeekYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getMonth.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeek.js +12 -11
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeekYear.js +16 -16
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeekYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getYear.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isAfter.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isAfter.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isBefore.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isBefore.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isDate.js +7 -6
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isDate.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameDay.js +10 -13
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameDay.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameMonth.js +9 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameYear.js +9 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isValid.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isValid.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +10 -9
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +18 -18
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +21 -29
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +19 -15
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +70 -70
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js +33 -33
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/localize.js +202 -154
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/match.js +125 -110
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US.js +20 -19
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/max.js +14 -13
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/max.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/min.js +14 -13
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/min.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setMonth.js +13 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setYear.js +10 -9
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfDay.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfDay.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeek.js +11 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeekYear.js +11 -10
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfMonth.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeek.js +10 -10
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeekYear.js +12 -12
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeekYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfYear.js +9 -8
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfYear.js.map +1 -1
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/toDate.js +8 -7
- package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/toDate.js.map +1 -1
- package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.6/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js +25 -24
- package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.6/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js.map +1 -1
- package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +26 -30
- package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -1
- package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +1016 -1202
- package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/DayPicker.js +398 -246
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/UI.js +16 -18
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/UI.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +13 -19
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/DateLib.js +107 -257
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Chevron.js +14 -14
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Chevron.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Day.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Day.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DayButton.js +13 -10
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Dropdown.js +30 -19
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Dropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DropdownNav.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Footer.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Footer.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Month.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Month.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthCaption.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthGrid.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Months.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Months.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +10 -9
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Nav.js +41 -27
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Nav.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Option.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Option.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Root.js +12 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Root.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Select.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Select.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Week.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Week.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumber.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekday.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekday.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekdays.js +7 -10
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekdays.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weeks.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weeks.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +10 -9
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/custom-components.js +57 -52
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/custom-components.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatDay.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +6 -5
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/index.js +22 -17
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/index.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +18 -17
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +36 -41
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +10 -9
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +7 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +11 -10
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getComponents.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +17 -16
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDates.js +20 -19
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDays.js +11 -10
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +12 -15
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +13 -13
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +15 -15
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +11 -10
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +8 -13
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +35 -35
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getLabels.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +18 -13
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +25 -24
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +8 -11
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +12 -12
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +9 -12
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +9 -12
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +14 -13
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +12 -11
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +7 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +19 -16
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/index.js +30 -25
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/index.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGrid.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNav.js +6 -5
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNav.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNext.js +6 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNext.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +8 -7
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +7 -6
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/locale/en-US.js +50 -37
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/locale/en-US.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/noonDateLib.js +101 -106
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/noonDateLib.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useMulti.js +20 -21
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useRange.js +29 -23
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useSingle.js +16 -15
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useAnimation.js +50 -56
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useAnimation.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useCalendar.js +71 -76
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useCalendar.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useDayPicker.js +11 -12
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useDayPicker.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useFocus.js +23 -23
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useFocus.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useSelection.js +16 -19
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useSelection.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/addToRange.js +60 -32
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +24 -24
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +22 -26
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +13 -15
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +29 -28
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +9 -9
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +9 -8
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js.map +1 -1
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/typeguards.js +15 -19
- package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/typeguards.js.map +1 -1
- package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js +1511 -2084
- package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js.map +1 -1
- package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1716 -2996
- package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
- package/dist/react.js +124 -544
- package/dist/src/components/ui/area-chart/area-chart.d.ts +9 -4
- package/dist/src/components/ui/avatar/avatar.d.ts +1 -1
- package/dist/src/components/ui/bar-chart/bar-chart.d.ts +9 -4
- package/dist/src/components/ui/category-bar/category-bar.d.ts +10 -4
- package/dist/src/components/ui/chart/__stories__/palette-control.d.ts +48 -0
- package/dist/src/components/ui/chart/__tests__/chart-palette.test.d.ts +1 -0
- package/dist/src/components/ui/chart/chart-palette.d.ts +128 -0
- package/dist/src/components/ui/chart/chart.d.ts +66 -15
- package/dist/src/components/ui/chart/index.d.ts +4 -2
- package/dist/src/components/ui/chart-state/chart-state-illustrations.d.ts +6 -0
- package/dist/src/components/ui/chart-state/chart-state.d.ts +13 -2
- package/dist/src/components/ui/chart-state/index.d.ts +1 -0
- package/dist/src/components/ui/chart-widget/chart-widget.d.ts +64 -0
- package/dist/src/components/ui/chart-widget/index.d.ts +1 -0
- package/dist/src/components/ui/composed-chart/composed-chart.d.ts +12 -7
- package/dist/src/components/ui/confidence-cone/confidence-cone.d.ts +10 -5
- package/dist/src/components/ui/empty-overlay/empty-overlay.d.ts +1 -1
- package/dist/src/components/ui/funnel-chart/funnel-chart.d.ts +11 -5
- package/dist/src/components/ui/histogram/histogram.d.ts +10 -4
- package/dist/src/components/ui/input-num-picker/index.d.ts +1 -0
- package/dist/src/components/ui/input-num-picker/input-num-picker.d.ts +14 -0
- package/dist/src/components/ui/label/index.d.ts +1 -1
- package/dist/src/components/ui/label/label.d.ts +1 -5
- package/dist/src/components/ui/line-chart/line-chart.d.ts +9 -4
- package/dist/src/components/ui/metric/metric.d.ts +13 -14
- package/dist/src/components/ui/pie-chart/pie-chart.d.ts +17 -8
- package/dist/src/components/ui/radar-chart/radar-chart.d.ts +10 -5
- package/dist/src/components/ui/radial-bar-chart/radial-bar-chart.d.ts +17 -6
- package/dist/src/components/ui/sankey-chart/sankey-chart.d.ts +10 -5
- package/dist/src/components/ui/scatter-chart/scatter-chart.d.ts +10 -5
- package/dist/src/components/ui/section/index.d.ts +1 -1
- package/dist/src/components/ui/section/section.d.ts +75 -6
- package/dist/src/components/ui/stepper-item/stepper-item.d.ts +6 -5
- package/dist/src/components/ui/tag/tag.d.ts +1 -1
- package/dist/src/components/ui/treemap/treemap.d.ts +11 -5
- package/dist/src/components/ui/trend-indicator/trend-indicator.d.ts +3 -7
- package/dist/src/components/ui/wizard/index.d.ts +1 -0
- package/dist/src/components/ui/wizard/wizard.d.ts +6 -0
- package/dist/src/hooks/index.d.ts +1 -0
- package/dist/src/hooks/use-wizard.d.ts +80 -0
- package/dist/src/index.d.ts +3 -3
- package/dist/ui-react.css +2 -1
- package/package.json +14 -8
- package/dist/components/ui/app-shell/app-shell.js +0 -75
- package/dist/components/ui/app-shell/app-shell.js.map +0 -1
- package/dist/components/ui/auth-layout/auth-layout.js +0 -56
- package/dist/components/ui/auth-layout/auth-layout.js.map +0 -1
- package/dist/components/ui/collapsible/collapsible.js +0 -22
- package/dist/components/ui/collapsible/collapsible.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/react.js.map +0 -1
- package/dist/src/components/ui/app-shell/app-shell.d.ts +0 -8
- package/dist/src/components/ui/app-shell/index.d.ts +0 -1
- package/dist/src/components/ui/auth-layout/auth-layout.d.ts +0 -6
- package/dist/src/components/ui/auth-layout/index.d.ts +0 -1
- package/dist/src/components/ui/collapsible/collapsible.d.ts +0 -5
- package/dist/src/components/ui/collapsible/index.d.ts +0 -1
- package/dist/src/components/ui/label/label.docs.d.ts +0 -10
|
@@ -1,97 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { cva as
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
), _ = {
|
|
50
|
-
up: T,
|
|
51
|
-
down: N,
|
|
52
|
-
flat: I
|
|
53
|
-
}, y = u.forwardRef(
|
|
54
|
-
({
|
|
55
|
-
className: m,
|
|
56
|
-
direction: e,
|
|
57
|
-
sentiment: a,
|
|
58
|
-
size: g,
|
|
59
|
-
variant: p,
|
|
60
|
-
value: n,
|
|
61
|
-
comparisonLabel: r,
|
|
62
|
-
tooltip: s,
|
|
63
|
-
showIcon: v = !0,
|
|
64
|
-
ariaLabel: i,
|
|
65
|
-
...x
|
|
66
|
-
}, o) => {
|
|
67
|
-
const f = _[e], l = s != null, d = /* @__PURE__ */ c(
|
|
68
|
-
"span",
|
|
69
|
-
{
|
|
70
|
-
"data-direction": e,
|
|
71
|
-
"data-sentiment": a ?? "neutral",
|
|
72
|
-
className: h(
|
|
73
|
-
R({ sentiment: a, size: g, variant: p }),
|
|
74
|
-
m
|
|
75
|
-
),
|
|
76
|
-
...i ? { role: "img", "aria-label": i } : {},
|
|
77
|
-
tabIndex: l ? 0 : void 0,
|
|
78
|
-
...x,
|
|
79
|
-
children: [
|
|
80
|
-
v && /* @__PURE__ */ t(f, { "aria-hidden": !0, className: "rtl:-scale-x-100" }),
|
|
81
|
-
n != null && /* @__PURE__ */ t("span", { className: "tabular-nums", children: n }),
|
|
82
|
-
r != null && /* @__PURE__ */ t("span", { className: "text-[var(--ui-text-on-surface-secondary)]", children: r })
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
);
|
|
86
|
-
return l ? /* @__PURE__ */ c(w, { children: [
|
|
87
|
-
/* @__PURE__ */ t(k, { ref: o, render: d }),
|
|
88
|
-
/* @__PURE__ */ t(z, { children: s })
|
|
89
|
-
] }) : u.cloneElement(d, { ref: o });
|
|
90
|
-
}
|
|
91
|
-
);
|
|
92
|
-
y.displayName = "TrendIndicator";
|
|
93
|
-
export {
|
|
94
|
-
y as TrendIndicator,
|
|
95
|
-
R as trendIndicatorVariants
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=trend-indicator.js.map
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn as e } from "../../../lib/utils.js";
|
|
3
|
+
import { cva as t } from "../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
|
|
4
|
+
import { Tooltip as n, TooltipContent as r, TooltipTrigger as i } from "../tooltip/tooltip.js";
|
|
5
|
+
import * as a from "react";
|
|
6
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
+
import { ArrowRightIcon as c, ArrowTrendDownIcon as l, ArrowTrendUpIcon as u } from "@acronis-platform/icons-react/stroke-mono";
|
|
8
|
+
//#region src/components/ui/trend-indicator/trend-indicator.tsx
|
|
9
|
+
var d = t("inline-flex items-center gap-0.5 align-middle text-xs font-medium [&_svg]:size-3.5 [&_svg]:shrink-0", {
|
|
10
|
+
variants: { sentiment: {
|
|
11
|
+
positive: "text-[var(--ui-text-on-status-success)]",
|
|
12
|
+
negative: "text-[var(--ui-text-on-status-danger)]",
|
|
13
|
+
neutral: "text-[var(--ui-text-on-status-neutral)]"
|
|
14
|
+
} },
|
|
15
|
+
defaultVariants: { sentiment: "neutral" }
|
|
16
|
+
}), f = {
|
|
17
|
+
up: u,
|
|
18
|
+
down: l,
|
|
19
|
+
flat: c
|
|
20
|
+
}, p = a.forwardRef(({ className: t, direction: c, sentiment: l, value: u, tooltip: p, showIcon: m = !0, ariaLabel: h, ...g }, _) => {
|
|
21
|
+
let v = f[c], y = p != null, b = /* @__PURE__ */ s("span", {
|
|
22
|
+
"data-direction": c,
|
|
23
|
+
"data-sentiment": l ?? "neutral",
|
|
24
|
+
className: e(d({ sentiment: l }), t),
|
|
25
|
+
...h ? {
|
|
26
|
+
role: "img",
|
|
27
|
+
"aria-label": h
|
|
28
|
+
} : {},
|
|
29
|
+
tabIndex: y ? 0 : void 0,
|
|
30
|
+
...g,
|
|
31
|
+
children: [m && /* @__PURE__ */ o(v, {
|
|
32
|
+
"aria-hidden": !0,
|
|
33
|
+
className: "rtl:-scale-x-100"
|
|
34
|
+
}), u != null && /* @__PURE__ */ o("span", {
|
|
35
|
+
className: "tabular-nums",
|
|
36
|
+
children: u
|
|
37
|
+
})]
|
|
38
|
+
});
|
|
39
|
+
return y ? /* @__PURE__ */ s(n, { children: [/* @__PURE__ */ o(i, {
|
|
40
|
+
ref: _,
|
|
41
|
+
render: b
|
|
42
|
+
}), /* @__PURE__ */ o(r, { children: p })] }) : a.cloneElement(b, { ref: _ });
|
|
43
|
+
});
|
|
44
|
+
p.displayName = "TrendIndicator";
|
|
45
|
+
//#endregion
|
|
46
|
+
export { p as TrendIndicator, d as trendIndicatorVariants };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=trend-indicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trend-indicator.js","sources":["../../../../src/components/ui/trend-indicator/trend-indicator.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n ArrowRightIcon,\n ArrowTrendDownIcon,\n ArrowTrendUpIcon,\n} from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip';\n\n// A small, presentational trend/delta indicator: a direction glyph + a\n// pre-formatted change value
|
|
1
|
+
{"version":3,"file":"trend-indicator.js","names":[],"sources":["../../../../src/components/ui/trend-indicator/trend-indicator.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n ArrowRightIcon,\n ArrowTrendDownIcon,\n ArrowTrendUpIcon,\n} from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip';\n\n// A small, presentational trend/delta indicator: a direction glyph + a\n// pre-formatted change value. It deliberately separates `direction` (what\n// happened mathematically) from `sentiment` (whether that change is good or\n// bad), because the kit can't assume up = good — revenue ↑ is positive,\n// threats ↑ is negative, MTTR ↓ is positive. The consumer computes both and\n// passes an already-formatted `value`; this component never diffs two numbers,\n// rounds, or interprets domain rules. Sentiment drives the color through the\n// semantic status text tokens (the glyph inherits via `currentColor`).\nconst trendIndicatorVariants = cva(\n 'inline-flex items-center gap-0.5 align-middle text-xs font-medium [&_svg]:size-3.5 [&_svg]:shrink-0',\n {\n variants: {\n sentiment: {\n positive: 'text-[var(--ui-text-on-status-success)]',\n negative: 'text-[var(--ui-text-on-status-danger)]',\n neutral: 'text-[var(--ui-text-on-status-neutral)]',\n },\n },\n defaultVariants: {\n sentiment: 'neutral',\n },\n }\n);\n\n// `flat` uses a horizontal arrow (the \"no meaningful change\" glyph); up/down use\n// the trend arrows. All three carry a horizontal direction, so they mirror under\n// `dir=\"rtl\"` (`rtl:-scale-x-100`) to stay aligned with the mirrored text flow.\nconst DIRECTION_ICON = {\n up: ArrowTrendUpIcon,\n down: ArrowTrendDownIcon,\n flat: ArrowRightIcon,\n} as const;\n\nexport interface TrendIndicatorProps\n extends Omit<React.ComponentProps<'span'>, 'children'>,\n VariantProps<typeof trendIndicatorVariants> {\n /** What changed mathematically — selects the direction glyph. */\n direction: 'up' | 'down' | 'flat';\n /**\n * Already-formatted change to display — e.g. `\"12%\"`, `\"3.5 h\"`,\n * `\"Improving\"`. The kit does not format or compute it.\n */\n value?: React.ReactNode;\n /** Contextual hint shown on hover/focus (Base UI Tooltip). */\n tooltip?: React.ReactNode;\n /** Show the leading direction glyph. Defaults to `true` — color alone isn't enough. */\n showIcon?: boolean;\n /**\n * Accessible sentence describing the trend (e.g. \"Revenue increased 12%\n * compared with the previous quarter\"). Applied as the element's label via\n * `role=\"img\"`, since the kit can't build a correct, localized sentence from\n * `direction` + `value` alone. Without it, assistive tech reads the visible\n * `value` text (the glyph is decorative).\n */\n ariaLabel?: string;\n}\n\nconst TrendIndicator = React.forwardRef<HTMLSpanElement, TrendIndicatorProps>(\n (\n {\n className,\n direction,\n sentiment,\n value,\n tooltip,\n showIcon = true,\n ariaLabel,\n ...props\n },\n ref\n ) => {\n const Icon = DIRECTION_ICON[direction];\n const hasTooltip = tooltip != null;\n\n const root = (\n <span\n data-direction={direction}\n data-sentiment={sentiment ?? 'neutral'}\n className={cn(trendIndicatorVariants({ sentiment }), className)}\n {...(ariaLabel ? { role: 'img', 'aria-label': ariaLabel } : {})}\n tabIndex={hasTooltip ? 0 : undefined}\n {...props}\n >\n {showIcon && <Icon aria-hidden className=\"rtl:-scale-x-100\" />}\n {value != null && <span className=\"tabular-nums\">{value}</span>}\n </span>\n );\n\n if (!hasTooltip) {\n return React.cloneElement(root, { ref });\n }\n\n return (\n <Tooltip>\n <TooltipTrigger ref={ref as React.Ref<HTMLButtonElement>} render={root} />\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n);\nTrendIndicator.displayName = 'TrendIndicator';\n\nexport { TrendIndicator, trendIndicatorVariants };\n"],"mappings":";;;;;;;;AAqBA,IAAM,IAAyB,EAC7B,uGACA;CACE,UAAU,EACR,WAAW;EACT,UAAU;EACV,UAAU;EACV,SAAS;CACX,EACF;CACA,iBAAiB,EACf,WAAW,UACb;AACF,CACF,GAKM,IAAiB;CACrB,IAAI;CACJ,MAAM;CACN,MAAM;AACR,GA0BM,IAAiB,EAAM,YAEzB,EACE,cACA,cACA,cACA,UACA,YACA,cAAW,IACX,cACA,GAAG,KAEL,MACG;CACH,IAAM,IAAO,EAAe,IACtB,IAAa,KAAW,MAExB,IACJ,kBAAC,QAAD;EACE,kBAAgB;EAChB,kBAAgB,KAAa;EAC7B,WAAW,EAAG,EAAuB,EAAE,aAAU,CAAC,GAAG,CAAS;EAC9D,GAAK,IAAY;GAAE,MAAM;GAAO,cAAc;EAAU,IAAI,CAAC;EAC7D,UAAU,IAAa,IAAI,KAAA;EAC3B,GAAI;EANN,UAAA,CAQG,KAAY,kBAAC,GAAD;GAAM,eAAA;GAAY,WAAU;EAAoB,CAAA,GAC5D,KAAS,QAAQ,kBAAC,QAAD;GAAM,WAAU;GAAgB,UAAA;EAAY,CAAA,CAC1D;;CAOR,OAJK,IAKH,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAqB;EAAqC,QAAQ;CAAO,CAAA,GACzE,kBAAC,GAAD,EAAA,UAAiB,EAAwB,CAAA,CAClC,EAAA,CAAA,IAPF,EAAM,aAAa,GAAM,EAAE,OAAI,CAAC;AAS3C,CACF;AACA,EAAe,cAAc"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
//#region src/components/ui/truncate-text/middle-truncate.ts
|
|
2
|
+
function e(e, t, { measure: n, ellipsis: r = "…" }) {
|
|
3
|
+
if (t <= 0) return "";
|
|
4
|
+
if (n(e) <= t) return e;
|
|
5
|
+
if (n(r) > t) return "";
|
|
6
|
+
let i = (t) => {
|
|
7
|
+
if (t <= 0) return r;
|
|
8
|
+
let n = Math.ceil(t / 2), i = t - n;
|
|
9
|
+
return i > 0 ? `${e.slice(0, n)}${r}${e.slice(e.length - i)}` : `${e.slice(0, n)}${r}`;
|
|
10
|
+
}, a = 0, o = e.length;
|
|
11
|
+
for (; o - a > 1;) {
|
|
12
|
+
let e = Math.floor((a + o) / 2);
|
|
13
|
+
n(i(e)) <= t ? a = e : o = e;
|
|
14
|
+
}
|
|
15
|
+
return i(a);
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=middle-truncate.js.map
|
|
17
|
+
//#endregion
|
|
18
|
+
export { e as middleTruncate };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=middle-truncate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middle-truncate.js","sources":["../../../../src/components/ui/truncate-text/middle-truncate.ts"],"sourcesContent":["// The pure search behind `<TruncateText mode=\"middle\">`: given a string, a pixel budget, and a\n// way to measure a candidate's rendered width, find the longest start+end slice\n// (joined by an ellipsis) that still fits — preserving both ends of the string\n// rather than just the start, which is what a plain CSS end-ellipsis already does\n// and is useless for a URL, hash or path whose distinguishing part is at the tail.\n//\n// Binary search over \"how many non-ellipsis characters to keep\", not over the split\n// point between start/end — the split is always the same proportion (kept chars\n// divided evenly, the extra one going to the start on an odd count), so there is\n// exactly one candidate per kept-count and `measure` is called O(log n) times\n// rather than O(n). `measure` is injected rather than hard-coded to\n// `canvas.measureText` specifically so this file has no DOM dependency: the real\n// component supplies a canvas-backed measurer (see `truncate-text.tsx`), and\n// these tests supply a deterministic fake — jsdom has no layout engine, so a test\n// asserting real pixel widths would need the browser project for no benefit here,\n// the search logic does not care what \"width\" means.\n\nexport interface MiddleTruncateOptions {\n /** Returns the rendered width of `candidate`, in the same unit as `maxWidth`. */\n readonly measure: (candidate: string) => number;\n /** Inserted between the kept start and end slices. Defaults to `'…'`. */\n readonly ellipsis?: string;\n}\n\n/**\n * Returns `text` unchanged if it already fits `maxWidth`, otherwise the widest\n * start+ellipsis+end slice that does. Never returns something wider than\n * `maxWidth`, even when nothing meaningful fits — the degenerate result is the\n * bare ellipsis, or `''` if `maxWidth` cannot fit that either.\n */\nexport function middleTruncate(\n text: string,\n maxWidth: number,\n { measure, ellipsis = '…' }: MiddleTruncateOptions\n): string {\n if (maxWidth <= 0) return '';\n if (measure(text) <= maxWidth) return text;\n\n const ellipsisWidth = measure(ellipsis);\n if (ellipsisWidth > maxWidth) return '';\n\n const candidateFor = (kept: number): string => {\n if (kept <= 0) return ellipsis;\n const startLen = Math.ceil(kept / 2);\n const endLen = kept - startLen;\n return endLen > 0\n ? `${text.slice(0, startLen)}${ellipsis}${text.slice(text.length - endLen)}`\n : `${text.slice(0, startLen)}${ellipsis}`;\n };\n\n // Invariant: `low` is always a kept-count that fits (0 does, by the ellipsis\n // check above); `high` is always one that does not (`text.length` does not, by\n // the \"already fits\" check above). The loop halves the gap until they meet,\n // so `low` ends on the largest fitting count.\n let low = 0;\n let high = text.length;\n while (high - low > 1) {\n const mid = Math.floor((low + high) / 2);\n if (measure(candidateFor(mid)) <= maxWidth) {\n low = mid;\n } else {\n high = mid;\n }\n }\n return candidateFor(low);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"middle-truncate.js","names":[],"sources":["../../../../src/components/ui/truncate-text/middle-truncate.ts"],"sourcesContent":["// The pure search behind `<TruncateText mode=\"middle\">`: given a string, a pixel budget, and a\n// way to measure a candidate's rendered width, find the longest start+end slice\n// (joined by an ellipsis) that still fits — preserving both ends of the string\n// rather than just the start, which is what a plain CSS end-ellipsis already does\n// and is useless for a URL, hash or path whose distinguishing part is at the tail.\n//\n// Binary search over \"how many non-ellipsis characters to keep\", not over the split\n// point between start/end — the split is always the same proportion (kept chars\n// divided evenly, the extra one going to the start on an odd count), so there is\n// exactly one candidate per kept-count and `measure` is called O(log n) times\n// rather than O(n). `measure` is injected rather than hard-coded to\n// `canvas.measureText` specifically so this file has no DOM dependency: the real\n// component supplies a canvas-backed measurer (see `truncate-text.tsx`), and\n// these tests supply a deterministic fake — jsdom has no layout engine, so a test\n// asserting real pixel widths would need the browser project for no benefit here,\n// the search logic does not care what \"width\" means.\n\nexport interface MiddleTruncateOptions {\n /** Returns the rendered width of `candidate`, in the same unit as `maxWidth`. */\n readonly measure: (candidate: string) => number;\n /** Inserted between the kept start and end slices. Defaults to `'…'`. */\n readonly ellipsis?: string;\n}\n\n/**\n * Returns `text` unchanged if it already fits `maxWidth`, otherwise the widest\n * start+ellipsis+end slice that does. Never returns something wider than\n * `maxWidth`, even when nothing meaningful fits — the degenerate result is the\n * bare ellipsis, or `''` if `maxWidth` cannot fit that either.\n */\nexport function middleTruncate(\n text: string,\n maxWidth: number,\n { measure, ellipsis = '…' }: MiddleTruncateOptions\n): string {\n if (maxWidth <= 0) return '';\n if (measure(text) <= maxWidth) return text;\n\n const ellipsisWidth = measure(ellipsis);\n if (ellipsisWidth > maxWidth) return '';\n\n const candidateFor = (kept: number): string => {\n if (kept <= 0) return ellipsis;\n const startLen = Math.ceil(kept / 2);\n const endLen = kept - startLen;\n return endLen > 0\n ? `${text.slice(0, startLen)}${ellipsis}${text.slice(text.length - endLen)}`\n : `${text.slice(0, startLen)}${ellipsis}`;\n };\n\n // Invariant: `low` is always a kept-count that fits (0 does, by the ellipsis\n // check above); `high` is always one that does not (`text.length` does not, by\n // the \"already fits\" check above). The loop halves the gap until they meet,\n // so `low` ends on the largest fitting count.\n let low = 0;\n let high = text.length;\n while (high - low > 1) {\n const mid = Math.floor((low + high) / 2);\n if (measure(candidateFor(mid)) <= maxWidth) {\n low = mid;\n } else {\n high = mid;\n }\n }\n return candidateFor(low);\n}\n"],"mappings":";AA8BA,SAAgB,EACd,GACA,GACA,EAAE,YAAS,cAAW,OACd;CACR,IAAI,KAAY,GAAG,OAAO;CAC1B,IAAI,EAAQ,CAAI,KAAK,GAAU,OAAO;CAGtC,IADsB,EAAQ,CAC1B,IAAgB,GAAU,OAAO;CAErC,IAAM,KAAgB,MAAyB;EAC7C,IAAI,KAAQ,GAAG,OAAO;EACtB,IAAM,IAAW,KAAK,KAAK,IAAO,CAAC,GAC7B,IAAS,IAAO;EACtB,OAAO,IAAS,IACZ,GAAG,EAAK,MAAM,GAAG,CAAQ,IAAI,IAAW,EAAK,MAAM,EAAK,SAAS,CAAM,MACvE,GAAG,EAAK,MAAM,GAAG,CAAQ,IAAI;CACnC,GAMI,IAAM,GACN,IAAO,EAAK;CAChB,OAAO,IAAO,IAAM,IAAG;EACrB,IAAM,IAAM,KAAK,OAAO,IAAM,KAAQ,CAAC;EACvC,AAAI,EAAQ,EAAa,CAAG,CAAC,KAAK,IAChC,IAAM,IAEN,IAAO;CAEX;CACA,OAAO,EAAa,CAAG;AACzB"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region src/components/ui/truncate-text/text-width.ts
|
|
2
|
+
var e;
|
|
3
|
+
function t() {
|
|
4
|
+
return e === void 0 && (e = document.createElement("canvas").getContext("2d")), e;
|
|
4
5
|
}
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function n(e, n) {
|
|
7
|
+
let r = t();
|
|
8
|
+
return r === null ? e.length * 8 : (r.font = n, r.measureText(e).width);
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=text-width.js.map
|
|
10
|
+
//#endregion
|
|
11
|
+
export { n as measureTextWidth };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=text-width.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-width.js","sources":["../../../../src/components/ui/truncate-text/text-width.ts"],"sourcesContent":["// A single offscreen canvas, reused across every `<TruncateText mode=\"middle\">` instance and\n// every candidate it measures. `canvas.measureText` is O(1) per call — no layout,\n// no reflow — which is why `middleTruncate`'s binary search calls `measure` a\n// handful of times per resize without it being a performance concern the way a\n// DOM-clone measurement (render, read `offsetWidth`, repeat per candidate) would\n// be for a search space the size of a whole string.\nlet sharedContext: CanvasRenderingContext2D | null | undefined;\n\nfunction getSharedContext(): CanvasRenderingContext2D | null {\n if (sharedContext === undefined) {\n sharedContext = document.createElement('canvas').getContext('2d');\n }\n return sharedContext;\n}\n\n/**\n * The rendered width of `text` in `font` (a CSS `font` shorthand string, e.g. from\n * `getComputedStyle(el).font`), in CSS pixels.\n *\n * Falls back to a fixed per-character estimate when `canvas` 2D contexts are\n * unavailable (jsdom's default; the real component is exercised by the browser\n * test project instead) — a rough width is enough to keep the search from\n * throwing, and nothing in the unit project renders far enough to compare it\n * against a pixel budget.\n */\nexport function measureTextWidth(text: string, font: string): number {\n const context = getSharedContext();\n if (context === null) return text.length * 8;\n context.font = font;\n return context.measureText(text).width;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"text-width.js","names":[],"sources":["../../../../src/components/ui/truncate-text/text-width.ts"],"sourcesContent":["// A single offscreen canvas, reused across every `<TruncateText mode=\"middle\">` instance and\n// every candidate it measures. `canvas.measureText` is O(1) per call — no layout,\n// no reflow — which is why `middleTruncate`'s binary search calls `measure` a\n// handful of times per resize without it being a performance concern the way a\n// DOM-clone measurement (render, read `offsetWidth`, repeat per candidate) would\n// be for a search space the size of a whole string.\nlet sharedContext: CanvasRenderingContext2D | null | undefined;\n\nfunction getSharedContext(): CanvasRenderingContext2D | null {\n if (sharedContext === undefined) {\n sharedContext = document.createElement('canvas').getContext('2d');\n }\n return sharedContext;\n}\n\n/**\n * The rendered width of `text` in `font` (a CSS `font` shorthand string, e.g. from\n * `getComputedStyle(el).font`), in CSS pixels.\n *\n * Falls back to a fixed per-character estimate when `canvas` 2D contexts are\n * unavailable (jsdom's default; the real component is exercised by the browser\n * test project instead) — a rough width is enough to keep the search from\n * throwing, and nothing in the unit project renders far enough to compare it\n * against a pixel budget.\n */\nexport function measureTextWidth(text: string, font: string): number {\n const context = getSharedContext();\n if (context === null) return text.length * 8;\n context.font = font;\n return context.measureText(text).width;\n}\n"],"mappings":";AAMA,IAAI;AAEJ,SAAS,IAAoD;CAI3D,OAHI,MAAkB,KAAA,MACpB,IAAgB,SAAS,cAAc,QAAQ,CAAC,CAAC,WAAW,IAAI,IAE3D;AACT;AAYA,SAAgB,EAAiB,GAAc,GAAsB;CACnE,IAAM,IAAU,EAAiB;CAGjC,OAFI,MAAY,OAAa,EAAK,SAAS,KAC3C,EAAQ,OAAO,GACR,EAAQ,YAAY,CAAI,CAAC,CAAC;AACnC"}
|
|
@@ -1,152 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return t.observe(c), () => t.disconnect();
|
|
94
|
-
}, [c, e]);
|
|
95
|
-
const h = /* @__PURE__ */ l(
|
|
96
|
-
"span",
|
|
97
|
-
{
|
|
98
|
-
ref: T,
|
|
99
|
-
className: x(
|
|
100
|
-
// `flex-1` (`flex: 1 1 0%`) only takes effect when the parent this
|
|
101
|
-
// renders into happens to itself be a flex container — inert
|
|
102
|
-
// otherwise, so it's safe alongside `block`. It's not decorative:
|
|
103
|
-
// without it, a `display: block` element with no explicit width
|
|
104
|
-
// only *auto-fills a plain block parent* — the browser's default
|
|
105
|
-
// "fill available width" rule for `width: auto` is specific to
|
|
106
|
-
// block layout. Nested inside a flex parent (a caller's own cell
|
|
107
|
-
// wrapping this next to an icon button, say), the same element
|
|
108
|
-
// becomes a flex item instead, where `flex-basis: auto` means
|
|
109
|
-
// "size to your own content" — and this component's own content
|
|
110
|
-
// is whatever it truncated itself to *last* time. Once shrunk, it
|
|
111
|
-
// would then measure its own shrunken self forever, growing back
|
|
112
|
-
// only if some ancestor's width changed enough to force a reflow
|
|
113
|
-
// for an unrelated reason — not when the column actually had more
|
|
114
|
-
// room to give it all along.
|
|
115
|
-
"block min-w-0 flex-1",
|
|
116
|
-
// Nowrap + clip only once `measured` — *before* that, this is the
|
|
117
|
-
// string's first-ever render, and if it already clips and refuses to
|
|
118
|
-
// wrap, it dictates its own column's width to `table-layout: auto`
|
|
119
|
-
// before `ResizeObserver` ever gets a turn: nowrap makes an unbroken
|
|
120
|
-
// string's min-content the string's *entire* rendered width, so the
|
|
121
|
-
// browser hands the column exactly that much room — measuring
|
|
122
|
-
// `clientWidth` after the fact just reads back the width this same
|
|
123
|
-
// element inflated the column to, not the width some other column
|
|
124
|
-
// needed and this one gave up.
|
|
125
|
-
//
|
|
126
|
-
// Left at the browser's own default on the unmeasured pass rather than
|
|
127
|
-
// forced to `overflow-wrap: anywhere` — tried that first, and it
|
|
128
|
-
// overcorrects: telling `auto`-layout this column's min-content is a
|
|
129
|
-
// single character makes it treat the column as free to take almost
|
|
130
|
-
// nothing, starving it in favor of siblings with a normal (space- and
|
|
131
|
-
// punctuation-driven) min-content. The browser's own line-breaking
|
|
132
|
-
// already finds break opportunities in a URL — after `/`, around `?`,
|
|
133
|
-
// `=`, `_` — without being told everything is breakable, which is
|
|
134
|
-
// exactly the multi-line wrap this component exists to replace: worse
|
|
135
|
-
// than what `nowrap` would give it, but a real, usable column width to
|
|
136
|
-
// hand to the first `ResizeObserver` measurement, not a starved one.
|
|
137
|
-
v && "overflow-hidden whitespace-nowrap",
|
|
138
|
-
a
|
|
139
|
-
),
|
|
140
|
-
children: u
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
return u === e ? h : /* @__PURE__ */ k(W, { children: [
|
|
144
|
-
/* @__PURE__ */ l(g, { render: h }),
|
|
145
|
-
/* @__PURE__ */ l(S, { side: f, portalContainer: s, children: e })
|
|
146
|
-
] });
|
|
147
|
-
}
|
|
148
|
-
);
|
|
149
|
-
export {
|
|
150
|
-
R as TruncateText
|
|
151
|
-
};
|
|
152
|
-
//# sourceMappingURL=truncate-text.js.map
|
|
1
|
+
import { cn as e } from "../../../lib/utils.js";
|
|
2
|
+
import { Tooltip as t, TooltipContent as n, TooltipTrigger as r } from "../tooltip/tooltip.js";
|
|
3
|
+
import { middleTruncate as i } from "./middle-truncate.js";
|
|
4
|
+
import { measureTextWidth as a } from "./text-width.js";
|
|
5
|
+
import * as o from "react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/ui/truncate-text/truncate-text.tsx
|
|
8
|
+
var l = o.forwardRef(function({ children: e, mode: t = "end", className: n, side: r = "top", lines: i = 1, defaultOpen: a, portalContainer: o }, c) {
|
|
9
|
+
return t === "middle" ? /* @__PURE__ */ s(d, {
|
|
10
|
+
ref: c,
|
|
11
|
+
text: e,
|
|
12
|
+
side: r,
|
|
13
|
+
portalContainer: o,
|
|
14
|
+
className: n
|
|
15
|
+
}) : /* @__PURE__ */ s(u, {
|
|
16
|
+
ref: c,
|
|
17
|
+
text: e,
|
|
18
|
+
side: r,
|
|
19
|
+
lines: i,
|
|
20
|
+
defaultOpen: a,
|
|
21
|
+
portalContainer: o,
|
|
22
|
+
className: n
|
|
23
|
+
});
|
|
24
|
+
}), u = o.forwardRef(function({ text: i, side: a, lines: l, defaultOpen: u, portalContainer: d, className: f }, p) {
|
|
25
|
+
let m = o.useRef(null), [h, g] = o.useState(!1), _ = o.useCallback((e) => {
|
|
26
|
+
m.current = e, typeof p == "function" ? p(e) : p && (p.current = e);
|
|
27
|
+
}, [p]);
|
|
28
|
+
o.useLayoutEffect(() => {
|
|
29
|
+
let e = m.current;
|
|
30
|
+
if (!e) return;
|
|
31
|
+
let t = () => g(l > 1 ? e.scrollHeight > e.clientHeight + 1 : e.scrollWidth > e.clientWidth + 1);
|
|
32
|
+
t();
|
|
33
|
+
let n = new ResizeObserver(t);
|
|
34
|
+
return n.observe(e), () => n.disconnect();
|
|
35
|
+
}, [
|
|
36
|
+
i,
|
|
37
|
+
l,
|
|
38
|
+
h
|
|
39
|
+
]);
|
|
40
|
+
let v = l > 1, y = v ? {
|
|
41
|
+
display: "-webkit-box",
|
|
42
|
+
WebkitLineClamp: l,
|
|
43
|
+
WebkitBoxOrient: "vertical",
|
|
44
|
+
overflow: "hidden"
|
|
45
|
+
} : void 0, b = /* @__PURE__ */ s("span", {
|
|
46
|
+
ref: _,
|
|
47
|
+
className: e("block", v ? "overflow-hidden" : "truncate", f),
|
|
48
|
+
style: y,
|
|
49
|
+
children: i
|
|
50
|
+
});
|
|
51
|
+
return h ? /* @__PURE__ */ c(t, {
|
|
52
|
+
defaultOpen: u,
|
|
53
|
+
children: [/* @__PURE__ */ s(r, { render: b }), /* @__PURE__ */ s(n, {
|
|
54
|
+
side: a,
|
|
55
|
+
portalContainer: d,
|
|
56
|
+
children: i
|
|
57
|
+
})]
|
|
58
|
+
}) : b;
|
|
59
|
+
}), d = o.forwardRef(function({ text: l, side: u, portalContainer: d, className: f }, p) {
|
|
60
|
+
let [m, h] = o.useState(null), [g, _] = o.useState(l), [v, y] = o.useState(!1), b = o.useCallback((e) => {
|
|
61
|
+
h(e), typeof p == "function" ? p(e) : p && (p.current = e);
|
|
62
|
+
}, [p]);
|
|
63
|
+
o.useLayoutEffect(() => {
|
|
64
|
+
if (y(!1), m === null || typeof ResizeObserver > "u") {
|
|
65
|
+
_(l);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let e = () => {
|
|
69
|
+
let e = m.clientWidth;
|
|
70
|
+
if (e === 0) return;
|
|
71
|
+
let t = getComputedStyle(m).font;
|
|
72
|
+
_(i(l, e, { measure: (e) => a(e, t) })), y(!0);
|
|
73
|
+
};
|
|
74
|
+
e();
|
|
75
|
+
let t = new ResizeObserver(e);
|
|
76
|
+
return t.observe(m), () => t.disconnect();
|
|
77
|
+
}, [m, l]);
|
|
78
|
+
let x = /* @__PURE__ */ s("span", {
|
|
79
|
+
ref: b,
|
|
80
|
+
className: e("block min-w-0 flex-1", v && "overflow-hidden whitespace-nowrap", f),
|
|
81
|
+
children: g
|
|
82
|
+
});
|
|
83
|
+
return g === l ? x : /* @__PURE__ */ c(t, { children: [/* @__PURE__ */ s(r, { render: x }), /* @__PURE__ */ s(n, {
|
|
84
|
+
side: u,
|
|
85
|
+
portalContainer: d,
|
|
86
|
+
children: l
|
|
87
|
+
})] });
|
|
88
|
+
});
|
|
89
|
+
//#endregion
|
|
90
|
+
export { l as TruncateText };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=truncate-text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate-text.js","sources":["../../../../src/components/ui/truncate-text/truncate-text.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip';\n\nimport { middleTruncate } from './middle-truncate';\nimport { measureTextWidth } from './text-width';\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipContent>;\n\nexport interface TruncateTextProps {\n /** The text to display. Also used verbatim as the tooltip body when truncated. */\n children: string;\n /**\n * Where the ellipsis goes. `'end'` (default) is the familiar CSS\n * `text-overflow: ellipsis` — reach for `'middle'` when the distinguishing\n * part of the value is at the tail (a URL, a hash) rather than the start.\n */\n mode?: 'middle' | 'end';\n /** Which side the tooltip opens on. Defaults to `top`. */\n side?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * Max lines before truncating, in `'end'` mode only: `1` (default) =\n * single-line ellipsis; `>1` = a multi-line clamp. Ignored in `'middle'`\n * mode, which is inherently single-line.\n */\n lines?: number;\n /**\n * Force the tooltip open on mount (only has effect when the text is truncated).\n * Mainly for stories / visual review; normal usage reveals it on hover/focus.\n */\n defaultOpen?: boolean;\n /**\n * Container the tooltip popup portals into. Pass a shadow root (e.g. a\n * micro-frontend mount point) so the popup inherits the kit's styles; defaults\n * to the document body.\n */\n portalContainer?: TooltipContentProps['portalContainer'];\n /** Merged onto the rendered `<span>`. */\n className?: string;\n}\n\n/**\n * Text that truncates with an ellipsis and reveals its full value in a tooltip\n * **only when it's actually clipped** — the tooltip is skipped when everything\n * fits, so short cells don't get a pointless hover target. Ideal for table cells.\n *\n * `'end'`-mode truncation is detected by comparing scroll vs client size and\n * re-checked on resize; `'middle'`-mode measures a real font metric via canvas\n * (there is no native CSS middle-ellipsis) and re-measures the same way.\n */\nexport const TruncateText = React.forwardRef<HTMLSpanElement, TruncateTextProps>(\n function TruncateText(\n { children, mode = 'end', className, side = 'top', lines = 1, defaultOpen, portalContainer },\n forwardedRef\n ) {\n if (mode === 'middle') {\n return (\n <TruncateTextMiddle\n ref={forwardedRef}\n text={children}\n side={side}\n portalContainer={portalContainer}\n className={className}\n />\n );\n }\n\n return (\n <TruncateTextEnd\n ref={forwardedRef}\n text={children}\n side={side}\n lines={lines}\n defaultOpen={defaultOpen}\n portalContainer={portalContainer}\n className={className}\n />\n );\n }\n);\n\ninterface TruncateTextEndProps {\n text: string;\n side: 'top' | 'bottom' | 'left' | 'right';\n lines: number;\n defaultOpen: boolean | undefined;\n portalContainer: TooltipContentProps['portalContainer'];\n className: string | undefined;\n}\n\n/** The CSS end-ellipsis / multi-line-clamp half of `TruncateText`. */\nconst TruncateTextEnd = React.forwardRef<HTMLSpanElement, TruncateTextEndProps>(\n function TruncateTextEnd(\n { text, side, lines, defaultOpen, portalContainer, className },\n forwardedRef\n ) {\n const innerRef = React.useRef<HTMLSpanElement | null>(null);\n const [truncated, setTruncated] = React.useState(false);\n\n // The component owns a ref for overflow measurement; still forward it so\n // callers can reach the underlying span.\n const setRef = React.useCallback(\n (node: HTMLSpanElement | null) => {\n innerRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef]\n );\n\n React.useLayoutEffect(() => {\n const node = innerRef.current;\n if (!node) return;\n // +1 guards against sub-pixel rounding falsely reporting overflow.\n // Genuine DOM-measuring layout effect: overflow can only be read after\n // layout, so the sync setState here is required, not incidental.\n const check = () =>\n setTruncated(\n lines > 1\n ? node.scrollHeight > node.clientHeight + 1\n : node.scrollWidth > node.clientWidth + 1\n );\n check();\n const observer = new ResizeObserver(check);\n observer.observe(node);\n return () => observer.disconnect();\n // `truncated` is a dep so the observer re-attaches to the span after it moves\n // into / out of the tooltip trigger on the truncation flip.\n }, [text, lines, truncated]);\n\n const multiline = lines > 1;\n const style: React.CSSProperties | undefined = multiline\n ? {\n display: '-webkit-box',\n WebkitLineClamp: lines,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }\n : undefined;\n\n const span = (\n <span\n ref={setRef}\n className={cn('block', multiline ? 'overflow-hidden' : 'truncate', className)}\n style={style}\n >\n {text}\n </span>\n );\n\n if (!truncated) return span;\n\n return (\n <Tooltip defaultOpen={defaultOpen}>\n <TooltipTrigger render={span} />\n <TooltipContent side={side} portalContainer={portalContainer}>\n {text}\n </TooltipContent>\n </Tooltip>\n );\n }\n);\n\ninterface TruncateTextMiddleProps {\n text: string;\n side: 'top' | 'bottom' | 'left' | 'right';\n portalContainer: TooltipContentProps['portalContainer'];\n className: string | undefined;\n}\n\n/**\n * The middle-ellipsis half of `TruncateText`. Sizes to the container, not the\n * other way around — it needs no `size`/`maxSize` on a column or wrapper to\n * have something to truncate against: it measures whatever width it is\n * actually rendered at, however that width was arrived at, and re-measures\n * via `ResizeObserver` if it changes.\n */\nconst TruncateTextMiddle = React.forwardRef<HTMLSpanElement, TruncateTextMiddleProps>(\n function TruncateTextMiddle({ text, side, portalContainer, className }, forwardedRef) {\n const [node, setNode] = React.useState<HTMLSpanElement | null>(null);\n const [display, setDisplay] = React.useState(text);\n // Distinct from `display !== text`: that's also true before the first\n // measurement (the initial state is the untruncated `text`), and this needs\n // to tell \"genuinely fits, confirmed by measuring\" apart from \"haven't\n // measured yet\" — see the class-name comment below for why they can't share\n // one flag.\n const [measured, setMeasured] = React.useState(false);\n\n const setRefs = React.useCallback(\n (element: HTMLSpanElement | null) => {\n setNode(element);\n if (typeof forwardedRef === 'function') forwardedRef(element);\n else if (forwardedRef) forwardedRef.current = element;\n },\n [forwardedRef]\n );\n\n // Depends on `node`, not just `text` — the trigger/no-trigger branch below\n // swaps this span between being `<Tooltip>`'s child and being the whole\n // return value, which are different positions in the tree, so React remounts\n // it (a new DOM node) rather than reusing the old one. A `[text]`-only effect\n // would keep observing the now-detached old node and never see the\n // replacement, silently going stale the moment truncation state flips.\n React.useLayoutEffect(() => {\n setMeasured(false);\n if (node === null || typeof ResizeObserver === 'undefined') {\n setDisplay(text);\n return;\n }\n\n const recompute = () => {\n const width = node.clientWidth;\n // 0 during the node's first layout tick (or while a hidden ancestor is\n // still collapsed) — skip rather than truncate against a width that\n // isn't real yet; the observer fires again once it settles.\n if (width === 0) return;\n const font = getComputedStyle(node).font;\n setDisplay(\n middleTruncate(text, width, {\n measure: (candidate) => measureTextWidth(candidate, font),\n })\n );\n setMeasured(true);\n };\n\n recompute();\n const observer = new ResizeObserver(recompute);\n observer.observe(node);\n return () => observer.disconnect();\n }, [node, text]);\n\n const span = (\n <span\n ref={setRefs}\n className={cn(\n // `flex-1` (`flex: 1 1 0%`) only takes effect when the parent this\n // renders into happens to itself be a flex container — inert\n // otherwise, so it's safe alongside `block`. It's not decorative:\n // without it, a `display: block` element with no explicit width\n // only *auto-fills a plain block parent* — the browser's default\n // \"fill available width\" rule for `width: auto` is specific to\n // block layout. Nested inside a flex parent (a caller's own cell\n // wrapping this next to an icon button, say), the same element\n // becomes a flex item instead, where `flex-basis: auto` means\n // \"size to your own content\" — and this component's own content\n // is whatever it truncated itself to *last* time. Once shrunk, it\n // would then measure its own shrunken self forever, growing back\n // only if some ancestor's width changed enough to force a reflow\n // for an unrelated reason — not when the column actually had more\n // room to give it all along.\n 'block min-w-0 flex-1',\n // Nowrap + clip only once `measured` — *before* that, this is the\n // string's first-ever render, and if it already clips and refuses to\n // wrap, it dictates its own column's width to `table-layout: auto`\n // before `ResizeObserver` ever gets a turn: nowrap makes an unbroken\n // string's min-content the string's *entire* rendered width, so the\n // browser hands the column exactly that much room — measuring\n // `clientWidth` after the fact just reads back the width this same\n // element inflated the column to, not the width some other column\n // needed and this one gave up.\n //\n // Left at the browser's own default on the unmeasured pass rather than\n // forced to `overflow-wrap: anywhere` — tried that first, and it\n // overcorrects: telling `auto`-layout this column's min-content is a\n // single character makes it treat the column as free to take almost\n // nothing, starving it in favor of siblings with a normal (space- and\n // punctuation-driven) min-content. The browser's own line-breaking\n // already finds break opportunities in a URL — after `/`, around `?`,\n // `=`, `_` — without being told everything is breakable, which is\n // exactly the multi-line wrap this component exists to replace: worse\n // than what `nowrap` would give it, but a real, usable column width to\n // hand to the first `ResizeObserver` measurement, not a starved one.\n measured && 'overflow-hidden whitespace-nowrap',\n className\n )}\n >\n {display}\n </span>\n );\n\n if (display === text) return span;\n\n return (\n <Tooltip>\n <TooltipTrigger render={span} />\n <TooltipContent side={side} portalContainer={portalContainer}>\n {text}\n </TooltipContent>\n </Tooltip>\n );\n }\n);\n"],"names":["TruncateText","React","children","mode","className","side","lines","defaultOpen","portalContainer","forwardedRef","jsx","TruncateTextMiddle","TruncateTextEnd","text","innerRef","truncated","setTruncated","setRef","node","check","observer","multiline","style","span","cn","jsxs","Tooltip","TooltipTrigger","TooltipContent","setNode","display","setDisplay","measured","setMeasured","setRefs","element","recompute","width","font","middleTruncate","candidate","measureTextWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"truncate-text.js","names":[],"sources":["../../../../src/components/ui/truncate-text/truncate-text.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip';\n\nimport { middleTruncate } from './middle-truncate';\nimport { measureTextWidth } from './text-width';\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipContent>;\n\nexport interface TruncateTextProps {\n /** The text to display. Also used verbatim as the tooltip body when truncated. */\n children: string;\n /**\n * Where the ellipsis goes. `'end'` (default) is the familiar CSS\n * `text-overflow: ellipsis` — reach for `'middle'` when the distinguishing\n * part of the value is at the tail (a URL, a hash) rather than the start.\n */\n mode?: 'middle' | 'end';\n /** Which side the tooltip opens on. Defaults to `top`. */\n side?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * Max lines before truncating, in `'end'` mode only: `1` (default) =\n * single-line ellipsis; `>1` = a multi-line clamp. Ignored in `'middle'`\n * mode, which is inherently single-line.\n */\n lines?: number;\n /**\n * Force the tooltip open on mount (only has effect when the text is truncated).\n * Mainly for stories / visual review; normal usage reveals it on hover/focus.\n */\n defaultOpen?: boolean;\n /**\n * Container the tooltip popup portals into. Pass a shadow root (e.g. a\n * micro-frontend mount point) so the popup inherits the kit's styles; defaults\n * to the document body.\n */\n portalContainer?: TooltipContentProps['portalContainer'];\n /** Merged onto the rendered `<span>`. */\n className?: string;\n}\n\n/**\n * Text that truncates with an ellipsis and reveals its full value in a tooltip\n * **only when it's actually clipped** — the tooltip is skipped when everything\n * fits, so short cells don't get a pointless hover target. Ideal for table cells.\n *\n * `'end'`-mode truncation is detected by comparing scroll vs client size and\n * re-checked on resize; `'middle'`-mode measures a real font metric via canvas\n * (there is no native CSS middle-ellipsis) and re-measures the same way.\n */\nexport const TruncateText = React.forwardRef<HTMLSpanElement, TruncateTextProps>(\n function TruncateText(\n { children, mode = 'end', className, side = 'top', lines = 1, defaultOpen, portalContainer },\n forwardedRef\n ) {\n if (mode === 'middle') {\n return (\n <TruncateTextMiddle\n ref={forwardedRef}\n text={children}\n side={side}\n portalContainer={portalContainer}\n className={className}\n />\n );\n }\n\n return (\n <TruncateTextEnd\n ref={forwardedRef}\n text={children}\n side={side}\n lines={lines}\n defaultOpen={defaultOpen}\n portalContainer={portalContainer}\n className={className}\n />\n );\n }\n);\n\ninterface TruncateTextEndProps {\n text: string;\n side: 'top' | 'bottom' | 'left' | 'right';\n lines: number;\n defaultOpen: boolean | undefined;\n portalContainer: TooltipContentProps['portalContainer'];\n className: string | undefined;\n}\n\n/** The CSS end-ellipsis / multi-line-clamp half of `TruncateText`. */\nconst TruncateTextEnd = React.forwardRef<HTMLSpanElement, TruncateTextEndProps>(\n function TruncateTextEnd(\n { text, side, lines, defaultOpen, portalContainer, className },\n forwardedRef\n ) {\n const innerRef = React.useRef<HTMLSpanElement | null>(null);\n const [truncated, setTruncated] = React.useState(false);\n\n // The component owns a ref for overflow measurement; still forward it so\n // callers can reach the underlying span.\n const setRef = React.useCallback(\n (node: HTMLSpanElement | null) => {\n innerRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef]\n );\n\n React.useLayoutEffect(() => {\n const node = innerRef.current;\n if (!node) return;\n // +1 guards against sub-pixel rounding falsely reporting overflow.\n // Genuine DOM-measuring layout effect: overflow can only be read after\n // layout, so the sync setState here is required, not incidental.\n const check = () =>\n setTruncated(\n lines > 1\n ? node.scrollHeight > node.clientHeight + 1\n : node.scrollWidth > node.clientWidth + 1\n );\n check();\n const observer = new ResizeObserver(check);\n observer.observe(node);\n return () => observer.disconnect();\n // `truncated` is a dep so the observer re-attaches to the span after it moves\n // into / out of the tooltip trigger on the truncation flip.\n }, [text, lines, truncated]);\n\n const multiline = lines > 1;\n const style: React.CSSProperties | undefined = multiline\n ? {\n display: '-webkit-box',\n WebkitLineClamp: lines,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }\n : undefined;\n\n const span = (\n <span\n ref={setRef}\n className={cn('block', multiline ? 'overflow-hidden' : 'truncate', className)}\n style={style}\n >\n {text}\n </span>\n );\n\n if (!truncated) return span;\n\n return (\n <Tooltip defaultOpen={defaultOpen}>\n <TooltipTrigger render={span} />\n <TooltipContent side={side} portalContainer={portalContainer}>\n {text}\n </TooltipContent>\n </Tooltip>\n );\n }\n);\n\ninterface TruncateTextMiddleProps {\n text: string;\n side: 'top' | 'bottom' | 'left' | 'right';\n portalContainer: TooltipContentProps['portalContainer'];\n className: string | undefined;\n}\n\n/**\n * The middle-ellipsis half of `TruncateText`. Sizes to the container, not the\n * other way around — it needs no `size`/`maxSize` on a column or wrapper to\n * have something to truncate against: it measures whatever width it is\n * actually rendered at, however that width was arrived at, and re-measures\n * via `ResizeObserver` if it changes.\n */\nconst TruncateTextMiddle = React.forwardRef<HTMLSpanElement, TruncateTextMiddleProps>(\n function TruncateTextMiddle({ text, side, portalContainer, className }, forwardedRef) {\n const [node, setNode] = React.useState<HTMLSpanElement | null>(null);\n const [display, setDisplay] = React.useState(text);\n // Distinct from `display !== text`: that's also true before the first\n // measurement (the initial state is the untruncated `text`), and this needs\n // to tell \"genuinely fits, confirmed by measuring\" apart from \"haven't\n // measured yet\" — see the class-name comment below for why they can't share\n // one flag.\n const [measured, setMeasured] = React.useState(false);\n\n const setRefs = React.useCallback(\n (element: HTMLSpanElement | null) => {\n setNode(element);\n if (typeof forwardedRef === 'function') forwardedRef(element);\n else if (forwardedRef) forwardedRef.current = element;\n },\n [forwardedRef]\n );\n\n // Depends on `node`, not just `text` — the trigger/no-trigger branch below\n // swaps this span between being `<Tooltip>`'s child and being the whole\n // return value, which are different positions in the tree, so React remounts\n // it (a new DOM node) rather than reusing the old one. A `[text]`-only effect\n // would keep observing the now-detached old node and never see the\n // replacement, silently going stale the moment truncation state flips.\n React.useLayoutEffect(() => {\n setMeasured(false);\n if (node === null || typeof ResizeObserver === 'undefined') {\n setDisplay(text);\n return;\n }\n\n const recompute = () => {\n const width = node.clientWidth;\n // 0 during the node's first layout tick (or while a hidden ancestor is\n // still collapsed) — skip rather than truncate against a width that\n // isn't real yet; the observer fires again once it settles.\n if (width === 0) return;\n const font = getComputedStyle(node).font;\n setDisplay(\n middleTruncate(text, width, {\n measure: (candidate) => measureTextWidth(candidate, font),\n })\n );\n setMeasured(true);\n };\n\n recompute();\n const observer = new ResizeObserver(recompute);\n observer.observe(node);\n return () => observer.disconnect();\n }, [node, text]);\n\n const span = (\n <span\n ref={setRefs}\n className={cn(\n // `flex-1` (`flex: 1 1 0%`) only takes effect when the parent this\n // renders into happens to itself be a flex container — inert\n // otherwise, so it's safe alongside `block`. It's not decorative:\n // without it, a `display: block` element with no explicit width\n // only *auto-fills a plain block parent* — the browser's default\n // \"fill available width\" rule for `width: auto` is specific to\n // block layout. Nested inside a flex parent (a caller's own cell\n // wrapping this next to an icon button, say), the same element\n // becomes a flex item instead, where `flex-basis: auto` means\n // \"size to your own content\" — and this component's own content\n // is whatever it truncated itself to *last* time. Once shrunk, it\n // would then measure its own shrunken self forever, growing back\n // only if some ancestor's width changed enough to force a reflow\n // for an unrelated reason — not when the column actually had more\n // room to give it all along.\n 'block min-w-0 flex-1',\n // Nowrap + clip only once `measured` — *before* that, this is the\n // string's first-ever render, and if it already clips and refuses to\n // wrap, it dictates its own column's width to `table-layout: auto`\n // before `ResizeObserver` ever gets a turn: nowrap makes an unbroken\n // string's min-content the string's *entire* rendered width, so the\n // browser hands the column exactly that much room — measuring\n // `clientWidth` after the fact just reads back the width this same\n // element inflated the column to, not the width some other column\n // needed and this one gave up.\n //\n // Left at the browser's own default on the unmeasured pass rather than\n // forced to `overflow-wrap: anywhere` — tried that first, and it\n // overcorrects: telling `auto`-layout this column's min-content is a\n // single character makes it treat the column as free to take almost\n // nothing, starving it in favor of siblings with a normal (space- and\n // punctuation-driven) min-content. The browser's own line-breaking\n // already finds break opportunities in a URL — after `/`, around `?`,\n // `=`, `_` — without being told everything is breakable, which is\n // exactly the multi-line wrap this component exists to replace: worse\n // than what `nowrap` would give it, but a real, usable column width to\n // hand to the first `ResizeObserver` measurement, not a starved one.\n measured && 'overflow-hidden whitespace-nowrap',\n className\n )}\n >\n {display}\n </span>\n );\n\n if (display === text) return span;\n\n return (\n <Tooltip>\n <TooltipTrigger render={span} />\n <TooltipContent side={side} portalContainer={portalContainer}>\n {text}\n </TooltipContent>\n </Tooltip>\n );\n }\n);\n"],"mappings":"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"}
|