geoiq-frontend-ui-kit 2.0.4 → 2.0.5
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/components/atoms/accordion/accordion.d.ts +2 -1
- package/dist/components/atoms/accordion/accordion.d.ts.map +1 -1
- package/dist/components/atoms/avatar/avatar.d.ts +2 -1
- package/dist/components/atoms/avatar/avatar.d.ts.map +1 -1
- package/dist/components/atoms/badge/badge.d.ts +2 -2
- package/dist/components/atoms/badge/badge.d.ts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.ts +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/atoms/tooltip/tooltip.d.ts +2 -2
- package/dist/components/atoms/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/molecules/announcement-bar/announcement-bar.d.ts +5 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.styles.d.ts +8 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.styles.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.types.d.ts +15 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.types.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/index.d.ts +3 -0
- package/dist/components/molecules/announcement-bar/index.d.ts.map +1 -0
- package/dist/components/molecules/breadcrumb/breadcrumb-components.d.ts +2 -2
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +2 -1
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts +2 -1
- package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts.map +1 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu-components.d.ts +1 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts +2 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/molecules/multi-combobox/index.d.ts +2 -2
- package/dist/components/molecules/multi-combobox/index.d.ts.map +1 -1
- package/dist/components/molecules/multi-select/index.d.ts +2 -2
- package/dist/components/molecules/multi-select/index.d.ts.map +1 -1
- package/dist/components/molecules/pagination/pagination-components.d.ts +4 -4
- package/dist/components/molecules/single-combobox/single-combobox.d.ts +2 -2
- package/dist/components/molecules/single-combobox/single-combobox.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper-components.d.ts +1 -1
- package/dist/components/molecules/stepper/stepper-components.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper.d.ts +2 -1
- package/dist/components/molecules/stepper/stepper.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper.mock.d.ts +2 -2
- package/dist/components/molecules/stepper/stepper.mock.d.ts.map +1 -1
- package/dist/components/molecules/swatch-grid/swatch-grid.d.ts +2 -1
- package/dist/components/molecules/swatch-grid/swatch-grid.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/toast-components.d.ts +1 -1
- package/dist/components/molecules/toast/toast.d.ts +2 -1
- package/dist/components/molecules/toast/toast.d.ts.map +1 -1
- package/dist/components/molecules/toggle-multi-select/index.d.ts +2 -2
- package/dist/components/molecules/toggle-multi-select/index.d.ts.map +1 -1
- package/dist/components/organisms/alert-dialog/alert-dialog-components.d.ts +2 -2
- package/dist/components/organisms/alert-dialog/alert-dialog.d.ts +2 -1
- package/dist/components/organisms/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/components/organisms/dialog/dialog-components.d.ts +2 -2
- package/dist/components/organisms/dialog/dialog-components.d.ts.map +1 -1
- package/dist/components/organisms/dialog/dialog.d.ts +2 -1
- package/dist/components/organisms/dialog/dialog.d.ts.map +1 -1
- package/dist/components/organisms/feature-dialog/feature-dialog.d.ts +5 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.styles.d.ts +5 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.styles.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.types.d.ts +25 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.types.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/index.d.ts +3 -0
- package/dist/components/organisms/feature-dialog/index.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/components/color-picker.d.ts +3 -1
- package/dist/components/organisms/image-editor/components/color-picker.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/layers-list.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/layers-list.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-adjust.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-adjust.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-crop.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-crop.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/ribbon.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/ribbon.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/status-bar.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/status-bar.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts +2 -1
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
- package/dist/components/organisms/sheet/sheet-components.d.ts +2 -2
- package/dist/components/organisms/sheet/sheet.d.ts +2 -1
- package/dist/components/organisms/sheet/sheet.d.ts.map +1 -1
- package/dist/components/organisms/sidebar/sidebar.d.ts +2 -1
- package/dist/components/organisms/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts +1 -1
- package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts.map +1 -1
- package/dist/components/ui/star-score/star-score.d.ts +2 -1
- package/dist/components/ui/star-score/star-score.d.ts.map +1 -1
- package/dist/components/unstyled/calendar/calendar.d.ts +1 -1
- package/dist/components/unstyled/calendar/calendar.d.ts.map +1 -1
- package/dist/components/unstyled/command/index.d.ts +2 -2
- package/dist/components/unstyled/command/index.d.ts.map +1 -1
- package/dist/components/unstyled/date-picker/date-picker.d.ts +2 -2
- package/dist/components/unstyled/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/unstyled/hover-card/hover-card.d.ts +2 -1
- package/dist/components/unstyled/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/unstyled/popover/popover.d.ts +2 -1
- package/dist/components/unstyled/popover/popover.d.ts.map +1 -1
- package/dist/components/unstyled/table/table.d.ts +2 -2
- package/dist/components/unstyled/table/table.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +199 -195
- package/dist/index.es.js.map +1 -1
- package/dist/{index.es10.js → index10.es.js} +3 -3
- package/dist/{index.es10.js.map → index10.es.js.map} +1 -1
- package/dist/{index.es113.js → index100.es.js} +1 -1
- package/dist/{index.es113.js.map → index100.es.js.map} +1 -1
- package/dist/{index.es119.js → index101.es.js} +1 -1
- package/dist/{index.es119.js.map → index101.es.js.map} +1 -1
- package/dist/{index.es102.js → index102.es.js} +1 -1
- package/dist/{index.es102.js.map → index102.es.js.map} +1 -1
- package/dist/{index.es108.js → index103.es.js} +1 -1
- package/dist/{index.es108.js.map → index103.es.js.map} +1 -1
- package/dist/{index.es127.js → index104.es.js} +4 -4
- package/dist/{index.es127.js.map → index104.es.js.map} +1 -1
- package/dist/{index.es128.js → index105.es.js} +4 -4
- package/dist/{index.es128.js.map → index105.es.js.map} +1 -1
- package/dist/{index.es129.js → index106.es.js} +5 -5
- package/dist/{index.es129.js.map → index106.es.js.map} +1 -1
- package/dist/{index.es130.js → index107.es.js} +2 -2
- package/dist/{index.es130.js.map → index107.es.js.map} +1 -1
- package/dist/{index.es131.js → index108.es.js} +3 -3
- package/dist/{index.es131.js.map → index108.es.js.map} +1 -1
- package/dist/{index.es114.js → index109.es.js} +3 -3
- package/dist/{index.es114.js.map → index109.es.js.map} +1 -1
- package/dist/{index.es11.js → index11.es.js} +4 -4
- package/dist/{index.es11.js.map → index11.es.js.map} +1 -1
- package/dist/{index.es132.js → index110.es.js} +1 -1
- package/dist/{index.es132.js.map → index110.es.js.map} +1 -1
- package/dist/{index.es106.js → index111.es.js} +1 -1
- package/dist/{index.es106.js.map → index111.es.js.map} +1 -1
- package/dist/{index.es105.js → index112.es.js} +3 -3
- package/dist/{index.es105.js.map → index112.es.js.map} +1 -1
- package/dist/{index.es101.js → index113.es.js} +1 -1
- package/dist/{index.es101.js.map → index113.es.js.map} +1 -1
- package/dist/{index.es110.js → index114.es.js} +2 -2
- package/dist/{index.es110.js.map → index114.es.js.map} +1 -1
- package/dist/{index.es111.js → index115.es.js} +6 -6
- package/dist/{index.es111.js.map → index115.es.js.map} +1 -1
- package/dist/{index.es134.js → index116.es.js} +2 -2
- package/dist/{index.es134.js.map → index116.es.js.map} +1 -1
- package/dist/{index.es135.js → index117.es.js} +1 -1
- package/dist/{index.es135.js.map → index117.es.js.map} +1 -1
- package/dist/{index.es112.js → index118.es.js} +1 -1
- package/dist/{index.es112.js.map → index118.es.js.map} +1 -1
- package/dist/index119.es.js +34 -0
- package/dist/index119.es.js.map +1 -0
- package/dist/{index.es12.js → index12.es.js} +3 -3
- package/dist/{index.es12.js.map → index12.es.js.map} +1 -1
- package/dist/{index.es116.js → index120.es.js} +1 -1
- package/dist/{index.es116.js.map → index120.es.js.map} +1 -1
- package/dist/{index.es117.js → index121.es.js} +5 -5
- package/dist/{index.es117.js.map → index121.es.js.map} +1 -1
- package/dist/{index.es120.js → index122.es.js} +4 -4
- package/dist/{index.es120.js.map → index122.es.js.map} +1 -1
- package/dist/{index.es121.js → index123.es.js} +3 -3
- package/dist/{index.es121.js.map → index123.es.js.map} +1 -1
- package/dist/{index.es122.js → index124.es.js} +3 -3
- package/dist/{index.es122.js.map → index124.es.js.map} +1 -1
- package/dist/{index.es123.js → index125.es.js} +3 -3
- package/dist/{index.es123.js.map → index125.es.js.map} +1 -1
- package/dist/{index.es124.js → index126.es.js} +10 -10
- package/dist/{index.es124.js.map → index126.es.js.map} +1 -1
- package/dist/{index.es125.js → index127.es.js} +10 -10
- package/dist/{index.es125.js.map → index127.es.js.map} +1 -1
- package/dist/{index.es126.js → index128.es.js} +5 -5
- package/dist/{index.es126.js.map → index128.es.js.map} +1 -1
- package/dist/{index.es97.js → index129.es.js} +1 -1
- package/dist/index129.es.js.map +1 -0
- package/dist/{index.es13.js → index13.es.js} +3 -3
- package/dist/{index.es13.js.map → index13.es.js.map} +1 -1
- package/dist/{index.es98.js → index130.es.js} +8 -8
- package/dist/index130.es.js.map +1 -0
- package/dist/{index.es99.js → index131.es.js} +1 -1
- package/dist/index131.es.js.map +1 -0
- package/dist/{index.es100.js → index132.es.js} +15 -15
- package/dist/{index.es100.js.map → index132.es.js.map} +1 -1
- package/dist/{index.es118.js → index133.es.js} +1 -1
- package/dist/{index.es118.js.map → index133.es.js.map} +1 -1
- package/dist/{index.es136.js → index134.es.js} +5 -5
- package/dist/{index.es136.js.map → index134.es.js.map} +1 -1
- package/dist/{index.es103.js → index135.es.js} +1 -1
- package/dist/{index.es103.js.map → index135.es.js.map} +1 -1
- package/dist/{index.es104.js → index136.es.js} +1 -1
- package/dist/{index.es104.js.map → index136.es.js.map} +1 -1
- package/dist/{index.es107.js → index137.es.js} +5 -5
- package/dist/{index.es107.js.map → index137.es.js.map} +1 -1
- package/dist/{index.es115.js → index138.es.js} +3 -3
- package/dist/{index.es115.js.map → index138.es.js.map} +1 -1
- package/dist/{index.es133.js → index139.es.js} +1 -1
- package/dist/{index.es133.js.map → index139.es.js.map} +1 -1
- package/dist/{index.es14.js → index14.es.js} +2 -2
- package/dist/{index.es14.js.map → index14.es.js.map} +1 -1
- package/dist/index140.es.js +17 -0
- package/dist/index140.es.js.map +1 -0
- package/dist/{index.es159.js → index141.es.js} +3 -3
- package/dist/{index.es159.js.map → index141.es.js.map} +1 -1
- package/dist/{index.es160.js → index142.es.js} +1 -1
- package/dist/{index.es160.js.map → index142.es.js.map} +1 -1
- package/dist/{index.es161.js → index143.es.js} +1 -1
- package/dist/{index.es161.js.map → index143.es.js.map} +1 -1
- package/dist/{index.es162.js → index144.es.js} +1 -1
- package/dist/{index.es162.js.map → index144.es.js.map} +1 -1
- package/dist/{index.es158.js → index145.es.js} +1 -1
- package/dist/{index.es158.js.map → index145.es.js.map} +1 -1
- package/dist/{index.es157.js → index146.es.js} +1 -1
- package/dist/{index.es157.js.map → index146.es.js.map} +1 -1
- package/dist/{index.es137.js → index147.es.js} +1 -1
- package/dist/{index.es137.js.map → index147.es.js.map} +1 -1
- package/dist/{index.es138.js → index148.es.js} +7 -7
- package/dist/{index.es138.js.map → index148.es.js.map} +1 -1
- package/dist/{index.es139.js → index149.es.js} +3 -3
- package/dist/{index.es139.js.map → index149.es.js.map} +1 -1
- package/dist/{index.es15.js → index15.es.js} +3 -3
- package/dist/{index.es15.js.map → index15.es.js.map} +1 -1
- package/dist/{index.es140.js → index150.es.js} +2 -2
- package/dist/{index.es140.js.map → index150.es.js.map} +1 -1
- package/dist/{index.es141.js → index151.es.js} +1 -1
- package/dist/{index.es141.js.map → index151.es.js.map} +1 -1
- package/dist/{index.es142.js → index152.es.js} +1 -1
- package/dist/{index.es142.js.map → index152.es.js.map} +1 -1
- package/dist/{index.es143.js → index153.es.js} +1 -1
- package/dist/{index.es143.js.map → index153.es.js.map} +1 -1
- package/dist/{index.es144.js → index154.es.js} +2 -2
- package/dist/{index.es144.js.map → index154.es.js.map} +1 -1
- package/dist/{index.es145.js → index155.es.js} +3 -3
- package/dist/{index.es145.js.map → index155.es.js.map} +1 -1
- package/dist/{index.es146.js → index156.es.js} +3 -3
- package/dist/{index.es146.js.map → index156.es.js.map} +1 -1
- package/dist/{index.es147.js → index157.es.js} +5 -5
- package/dist/{index.es147.js.map → index157.es.js.map} +1 -1
- package/dist/{index.es148.js → index158.es.js} +4 -4
- package/dist/{index.es148.js.map → index158.es.js.map} +1 -1
- package/dist/{index.es149.js → index159.es.js} +2 -2
- package/dist/{index.es149.js.map → index159.es.js.map} +1 -1
- package/dist/{index.es16.js → index16.es.js} +8 -8
- package/dist/{index.es16.js.map → index16.es.js.map} +1 -1
- package/dist/{index.es150.js → index160.es.js} +4 -4
- package/dist/{index.es150.js.map → index160.es.js.map} +1 -1
- package/dist/{index.es151.js → index161.es.js} +6 -6
- package/dist/{index.es151.js.map → index161.es.js.map} +1 -1
- package/dist/{index.es152.js → index162.es.js} +5 -5
- package/dist/{index.es152.js.map → index162.es.js.map} +1 -1
- package/dist/{index.es153.js → index163.es.js} +4 -4
- package/dist/{index.es153.js.map → index163.es.js.map} +1 -1
- package/dist/{index.es154.js → index164.es.js} +9 -9
- package/dist/{index.es154.js.map → index164.es.js.map} +1 -1
- package/dist/{index.es155.js → index165.es.js} +6 -6
- package/dist/{index.es155.js.map → index165.es.js.map} +1 -1
- package/dist/{index.es163.js → index166.es.js} +1 -1
- package/dist/{index.es163.js.map → index166.es.js.map} +1 -1
- package/dist/{index.es164.js → index167.es.js} +1 -1
- package/dist/{index.es164.js.map → index167.es.js.map} +1 -1
- package/dist/{index.es156.js → index168.es.js} +2 -2
- package/dist/{index.es156.js.map → index168.es.js.map} +1 -1
- package/dist/{index.es165.js → index169.es.js} +1 -1
- package/dist/{index.es165.js.map → index169.es.js.map} +1 -1
- package/dist/{index.es17.js → index17.es.js} +3 -3
- package/dist/{index.es17.js.map → index17.es.js.map} +1 -1
- package/dist/{index.es166.js → index170.es.js} +2 -2
- package/dist/{index.es166.js.map → index170.es.js.map} +1 -1
- package/dist/{index.es173.js → index171.es.js} +19 -19
- package/dist/{index.es173.js.map → index171.es.js.map} +1 -1
- package/dist/{index.es167.js → index172.es.js} +2 -2
- package/dist/{index.es167.js.map → index172.es.js.map} +1 -1
- package/dist/{index.es168.js → index173.es.js} +4 -4
- package/dist/{index.es168.js.map → index173.es.js.map} +1 -1
- package/dist/{index.es169.js → index174.es.js} +4 -4
- package/dist/{index.es169.js.map → index174.es.js.map} +1 -1
- package/dist/{index.es170.js → index175.es.js} +9 -9
- package/dist/{index.es170.js.map → index175.es.js.map} +1 -1
- package/dist/{index.es171.js → index176.es.js} +10 -10
- package/dist/{index.es171.js.map → index176.es.js.map} +1 -1
- package/dist/{index.es172.js → index177.es.js} +2 -2
- package/dist/{index.es172.js.map → index177.es.js.map} +1 -1
- package/dist/{index.es174.js → index178.es.js} +4 -4
- package/dist/{index.es174.js.map → index178.es.js.map} +1 -1
- package/dist/{index.es175.js → index179.es.js} +2 -2
- package/dist/{index.es175.js.map → index179.es.js.map} +1 -1
- package/dist/{index.es18.js → index18.es.js} +2 -2
- package/dist/{index.es18.js.map → index18.es.js.map} +1 -1
- package/dist/{index.es178.js → index180.es.js} +6 -6
- package/dist/{index.es178.js.map → index180.es.js.map} +1 -1
- package/dist/{index.es179.js → index181.es.js} +17 -16
- package/dist/{index.es179.js.map → index181.es.js.map} +1 -1
- package/dist/{index.es180.js → index182.es.js} +27 -26
- package/dist/{index.es180.js.map → index182.es.js.map} +1 -1
- package/dist/{index.es181.js → index183.es.js} +13 -12
- package/dist/{index.es181.js.map → index183.es.js.map} +1 -1
- package/dist/{index.es182.js → index184.es.js} +5 -5
- package/dist/{index.es182.js.map → index184.es.js.map} +1 -1
- package/dist/{index.es183.js → index185.es.js} +27 -26
- package/dist/{index.es183.js.map → index185.es.js.map} +1 -1
- package/dist/{index.es184.js → index186.es.js} +30 -29
- package/dist/{index.es184.js.map → index186.es.js.map} +1 -1
- package/dist/{index.es176.js → index187.es.js} +1 -1
- package/dist/{index.es176.js.map → index187.es.js.map} +1 -1
- package/dist/{index.es177.js → index188.es.js} +2 -2
- package/dist/{index.es177.js.map → index188.es.js.map} +1 -1
- package/dist/{index.es185.js → index189.es.js} +1 -1
- package/dist/{index.es185.js.map → index189.es.js.map} +1 -1
- package/dist/{index.es19.js → index19.es.js} +4 -4
- package/dist/{index.es19.js.map → index19.es.js.map} +1 -1
- package/dist/{index.es2.js → index2.es.js} +5 -5
- package/dist/{index.es2.js.map → index2.es.js.map} +1 -1
- package/dist/{index.es20.js → index20.es.js} +5 -5
- package/dist/{index.es20.js.map → index20.es.js.map} +1 -1
- package/dist/index21.es.js +57 -0
- package/dist/index21.es.js.map +1 -0
- package/dist/index22.es.js +79 -0
- package/dist/index22.es.js.map +1 -0
- package/dist/{index.es21.js → index23.es.js} +6 -6
- package/dist/{index.es21.js.map → index23.es.js.map} +1 -1
- package/dist/{index.es22.js → index24.es.js} +2 -2
- package/dist/{index.es22.js.map → index24.es.js.map} +1 -1
- package/dist/{index.es23.js → index25.es.js} +7 -7
- package/dist/{index.es23.js.map → index25.es.js.map} +1 -1
- package/dist/{index.es24.js → index26.es.js} +7 -7
- package/dist/{index.es24.js.map → index26.es.js.map} +1 -1
- package/dist/{index.es25.js → index27.es.js} +3 -3
- package/dist/{index.es25.js.map → index27.es.js.map} +1 -1
- package/dist/{index.es26.js → index28.es.js} +2 -2
- package/dist/{index.es26.js.map → index28.es.js.map} +1 -1
- package/dist/{index.es27.js → index29.es.js} +7 -7
- package/dist/{index.es27.js.map → index29.es.js.map} +1 -1
- package/dist/{index.es3.js → index3.es.js} +3 -3
- package/dist/{index.es3.js.map → index3.es.js.map} +1 -1
- package/dist/{index.es28.js → index30.es.js} +9 -9
- package/dist/{index.es28.js.map → index30.es.js.map} +1 -1
- package/dist/{index.es29.js → index31.es.js} +5 -5
- package/dist/{index.es29.js.map → index31.es.js.map} +1 -1
- package/dist/{index.es30.js → index32.es.js} +3 -3
- package/dist/{index.es30.js.map → index32.es.js.map} +1 -1
- package/dist/{index.es31.js → index33.es.js} +1 -1
- package/dist/{index.es31.js.map → index33.es.js.map} +1 -1
- package/dist/{index.es32.js → index34.es.js} +2 -2
- package/dist/{index.es32.js.map → index34.es.js.map} +1 -1
- package/dist/{index.es33.js → index35.es.js} +3 -3
- package/dist/{index.es33.js.map → index35.es.js.map} +1 -1
- package/dist/index36.es.js +39 -0
- package/dist/index36.es.js.map +1 -0
- package/dist/{index.es35.js → index37.es.js} +6 -6
- package/dist/{index.es35.js.map → index37.es.js.map} +1 -1
- package/dist/{index.es36.js → index38.es.js} +5 -5
- package/dist/{index.es36.js.map → index38.es.js.map} +1 -1
- package/dist/{index.es37.js → index39.es.js} +6 -6
- package/dist/{index.es37.js.map → index39.es.js.map} +1 -1
- package/dist/{index.es4.js → index4.es.js} +2 -2
- package/dist/{index.es4.js.map → index4.es.js.map} +1 -1
- package/dist/{index.es38.js → index40.es.js} +2 -2
- package/dist/{index.es38.js.map → index40.es.js.map} +1 -1
- package/dist/{index.es39.js → index41.es.js} +3 -3
- package/dist/{index.es39.js.map → index41.es.js.map} +1 -1
- package/dist/index42.es.js +91 -0
- package/dist/index42.es.js.map +1 -0
- package/dist/{index.es41.js → index43.es.js} +5 -5
- package/dist/{index.es41.js.map → index43.es.js.map} +1 -1
- package/dist/{index.es42.js → index44.es.js} +4 -4
- package/dist/{index.es42.js.map → index44.es.js.map} +1 -1
- package/dist/{index.es43.js → index45.es.js} +2 -2
- package/dist/{index.es43.js.map → index45.es.js.map} +1 -1
- package/dist/{index.es44.js → index46.es.js} +2 -2
- package/dist/{index.es44.js.map → index46.es.js.map} +1 -1
- package/dist/{index.es45.js → index47.es.js} +5 -5
- package/dist/{index.es45.js.map → index47.es.js.map} +1 -1
- package/dist/{index.es46.js → index48.es.js} +9 -9
- package/dist/{index.es46.js.map → index48.es.js.map} +1 -1
- package/dist/{index.es47.js → index49.es.js} +7 -7
- package/dist/{index.es47.js.map → index49.es.js.map} +1 -1
- package/dist/{index.es5.js → index5.es.js} +2 -2
- package/dist/{index.es5.js.map → index5.es.js.map} +1 -1
- package/dist/{index.es48.js → index50.es.js} +10 -10
- package/dist/{index.es48.js.map → index50.es.js.map} +1 -1
- package/dist/{index.es49.js → index51.es.js} +2 -2
- package/dist/{index.es49.js.map → index51.es.js.map} +1 -1
- package/dist/{index.es50.js → index52.es.js} +1 -1
- package/dist/{index.es50.js.map → index52.es.js.map} +1 -1
- package/dist/{index.es51.js → index53.es.js} +2 -2
- package/dist/{index.es51.js.map → index53.es.js.map} +1 -1
- package/dist/{index.es52.js → index54.es.js} +3 -3
- package/dist/{index.es52.js.map → index54.es.js.map} +1 -1
- package/dist/{index.es53.js → index55.es.js} +7 -7
- package/dist/{index.es53.js.map → index55.es.js.map} +1 -1
- package/dist/{index.es54.js → index56.es.js} +4 -4
- package/dist/{index.es54.js.map → index56.es.js.map} +1 -1
- package/dist/{index.es55.js → index57.es.js} +5 -5
- package/dist/{index.es55.js.map → index57.es.js.map} +1 -1
- package/dist/{index.es56.js → index58.es.js} +3 -3
- package/dist/{index.es56.js.map → index58.es.js.map} +1 -1
- package/dist/{index.es57.js → index59.es.js} +9 -9
- package/dist/{index.es57.js.map → index59.es.js.map} +1 -1
- package/dist/{index.es6.js → index6.es.js} +2 -2
- package/dist/{index.es6.js.map → index6.es.js.map} +1 -1
- package/dist/{index.es58.js → index60.es.js} +4 -3
- package/dist/{index.es58.js.map → index60.es.js.map} +1 -1
- package/dist/{index.es59.js → index61.es.js} +2 -2
- package/dist/{index.es59.js.map → index61.es.js.map} +1 -1
- package/dist/{index.es60.js → index62.es.js} +3 -3
- package/dist/{index.es60.js.map → index62.es.js.map} +1 -1
- package/dist/{index.es61.js → index63.es.js} +2 -2
- package/dist/{index.es61.js.map → index63.es.js.map} +1 -1
- package/dist/{index.es62.js → index64.es.js} +2 -2
- package/dist/{index.es62.js.map → index64.es.js.map} +1 -1
- package/dist/{index.es63.js → index65.es.js} +2 -2
- package/dist/{index.es63.js.map → index65.es.js.map} +1 -1
- package/dist/{index.es64.js → index66.es.js} +3 -3
- package/dist/{index.es64.js.map → index66.es.js.map} +1 -1
- package/dist/{index.es65.js → index67.es.js} +3 -3
- package/dist/{index.es65.js.map → index67.es.js.map} +1 -1
- package/dist/{index.es66.js → index68.es.js} +2 -2
- package/dist/{index.es66.js.map → index68.es.js.map} +1 -1
- package/dist/{index.es67.js → index69.es.js} +3 -3
- package/dist/{index.es67.js.map → index69.es.js.map} +1 -1
- package/dist/{index.es7.js → index7.es.js} +2 -2
- package/dist/{index.es7.js.map → index7.es.js.map} +1 -1
- package/dist/{index.es68.js → index70.es.js} +3 -3
- package/dist/{index.es68.js.map → index70.es.js.map} +1 -1
- package/dist/{index.es69.js → index71.es.js} +6 -6
- package/dist/{index.es69.js.map → index71.es.js.map} +1 -1
- package/dist/{index.es70.js → index72.es.js} +6 -6
- package/dist/{index.es70.js.map → index72.es.js.map} +1 -1
- package/dist/{index.es71.js → index73.es.js} +4 -4
- package/dist/{index.es71.js.map → index73.es.js.map} +1 -1
- package/dist/{index.es72.js → index74.es.js} +8 -8
- package/dist/{index.es72.js.map → index74.es.js.map} +1 -1
- package/dist/{index.es73.js → index75.es.js} +5 -5
- package/dist/{index.es73.js.map → index75.es.js.map} +1 -1
- package/dist/{index.es74.js → index76.es.js} +1 -1
- package/dist/{index.es74.js.map → index76.es.js.map} +1 -1
- package/dist/{index.es75.js → index77.es.js} +1 -1
- package/dist/{index.es75.js.map → index77.es.js.map} +1 -1
- package/dist/{index.es76.js → index78.es.js} +1 -1
- package/dist/{index.es76.js.map → index78.es.js.map} +1 -1
- package/dist/{index.es77.js → index79.es.js} +1 -1
- package/dist/{index.es77.js.map → index79.es.js.map} +1 -1
- package/dist/{index.es8.js → index8.es.js} +3 -3
- package/dist/{index.es8.js.map → index8.es.js.map} +1 -1
- package/dist/index80.es.js +90 -0
- package/dist/index80.es.js.map +1 -0
- package/dist/{index.es79.js → index81.es.js} +1 -1
- package/dist/{index.es79.js.map → index81.es.js.map} +1 -1
- package/dist/{index.es80.js → index82.es.js} +3 -3
- package/dist/{index.es80.js.map → index82.es.js.map} +1 -1
- package/dist/{index.es81.js → index83.es.js} +4 -4
- package/dist/{index.es81.js.map → index83.es.js.map} +1 -1
- package/dist/{index.es82.js → index84.es.js} +1 -1
- package/dist/{index.es82.js.map → index84.es.js.map} +1 -1
- package/dist/{index.es83.js → index85.es.js} +1 -1
- package/dist/{index.es83.js.map → index85.es.js.map} +1 -1
- package/dist/{index.es84.js → index86.es.js} +1 -1
- package/dist/{index.es84.js.map → index86.es.js.map} +1 -1
- package/dist/{index.es85.js → index87.es.js} +2 -2
- package/dist/{index.es85.js.map → index87.es.js.map} +1 -1
- package/dist/{index.es86.js → index88.es.js} +2 -2
- package/dist/{index.es86.js.map → index88.es.js.map} +1 -1
- package/dist/{index.es87.js → index89.es.js} +1 -1
- package/dist/{index.es87.js.map → index89.es.js.map} +1 -1
- package/dist/{index.es9.js → index9.es.js} +4 -4
- package/dist/{index.es9.js.map → index9.es.js.map} +1 -1
- package/dist/index90.es.js +5 -0
- package/dist/index90.es.js.map +1 -0
- package/dist/{index.es89.js → index91.es.js} +1 -1
- package/dist/{index.es89.js.map → index91.es.js.map} +1 -1
- package/dist/{index.es90.js → index92.es.js} +2 -2
- package/dist/{index.es90.js.map → index92.es.js.map} +1 -1
- package/dist/{index.es91.js → index93.es.js} +3 -3
- package/dist/{index.es91.js.map → index93.es.js.map} +1 -1
- package/dist/{index.es92.js → index94.es.js} +1 -1
- package/dist/{index.es92.js.map → index94.es.js.map} +1 -1
- package/dist/{index.es93.js → index95.es.js} +1 -1
- package/dist/{index.es93.js.map → index95.es.js.map} +1 -1
- package/dist/{index.es94.js → index96.es.js} +1 -1
- package/dist/{index.es94.js.map → index96.es.js.map} +1 -1
- package/dist/{index.es95.js → index97.es.js} +1 -1
- package/dist/{index.es95.js.map → index97.es.js.map} +1 -1
- package/dist/{index.es96.js → index98.es.js} +1 -1
- package/dist/{index.es96.js.map → index98.es.js.map} +1 -1
- package/dist/{index.es109.js → index99.es.js} +2 -2
- package/dist/index99.es.js.map +1 -0
- package/dist/styles.css +428 -29
- package/package.json +1 -1
- package/dist/index.es109.js.map +0 -1
- package/dist/index.es34.js +0 -31
- package/dist/index.es34.js.map +0 -1
- package/dist/index.es40.js +0 -91
- package/dist/index.es40.js.map +0 -1
- package/dist/index.es78.js +0 -88
- package/dist/index.es78.js.map +0 -1
- package/dist/index.es88.js +0 -5
- package/dist/index.es88.js.map +0 -1
- package/dist/index.es97.js.map +0 -1
- package/dist/index.es98.js.map +0 -1
- package/dist/index.es99.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index130.es.js","sources":["../src/components/organisms/image-editor/image-editor-modal.tsx"],"sourcesContent":["import { Loader2, Save, X } from 'lucide-react'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Button } from '@/components/atoms/button'\n\nimport { ImageEditorEngine, ImageEditorUiState } from './image-editor.types'\nimport { ImageEditorPortalContext } from './components/portal-context'\nimport { Panel } from './components/panel'\nimport { Ribbon } from './components/ribbon'\nimport { Stage, StageHandle } from './components/stage'\nimport { LineSessionBar } from './components/line-session-bar'\nimport { StatusBar } from './components/status-bar'\n\nexport interface ImageEditorModalProps {\n engine: ImageEditorEngine\n ui: ImageEditorUiState | null\n isOpen: boolean\n saveLabel: string\n}\n\nexport function ImageEditorModal({\n engine,\n ui,\n isOpen,\n saveLabel,\n}: ImageEditorModalProps) {\n const rootRef = useRef<HTMLDivElement | null>(null)\n const [rootEl, setRootEl] = useState<HTMLDivElement | null>(null)\n const stageRef = useRef<StageHandle>(null)\n const fileInputRef = useRef<HTMLInputElement>(null)\n const mountedRef = useRef(false)\n\n useEffect(() => {\n if (mountedRef.current) return\n const s = stageRef.current\n if (!s?.canvas || !s.overlay || !s.textEditor || !s.stage) return\n engine.mount({\n canvas: s.canvas,\n overlay: s.overlay,\n textEditor: s.textEditor,\n stage: s.stage,\n })\n mountedRef.current = true\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ui != null])\n\n useEffect(() => {\n if (!isOpen || !rootRef.current) return\n if (!rootRef.current.hasAttribute('tabindex'))\n rootRef.current.setAttribute('tabindex', '-1')\n const t = setTimeout(\n () => rootRef.current?.focus({ preventScroll: true }),\n 0\n )\n return () => clearTimeout(t)\n }, [isOpen])\n\n useEffect(() => {\n if (!isOpen) return\n engine.refitStage()\n }, [isOpen, engine])\n\n if (!ui) return null\n\n return (\n <div\n ref={(node) => {\n rootRef.current = node\n setRootEl(node)\n }}\n className=\"fixed inset-0 z-[2147483000] flex items-center justify-center bg-[rgba(24,22,18,.55)] backdrop-blur-sm\"\n style={{\n display: isOpen ? 'flex' : 'none',\n pointerEvents: 'auto',\n }}\n onMouseDown={(e) => {\n if (e.target === e.currentTarget && ui.closeOnBackdrop) engine.close()\n }}\n >\n <ImageEditorPortalContext.Provider value={rootEl}>\n <div className=\"image-editor-modal-panel flex flex-col overflow-hidden bg-light-2 shadow-2xl\">\n <div className=\"flex items-center gap-3 border-b border-neutral-1 bg-light-3 px-4 py-3\">\n <Button\n variant=\"primary\"\n size=\"sm\"\n disabled={!ui.hasImage || ui.isLoadingImage || ui.isSaving}\n onClick={engine.save}\n className=\"w-auto\"\n prefixIcon={\n ui.isSaving ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <Save className=\"h-4 w-4\" />\n )\n }\n >\n {ui.isSaving ? 'Saving…' : saveLabel}\n </Button>\n <button\n type=\"button\"\n title=\"Close\"\n onClick={() => engine.close()}\n className=\"ml-auto flex h-[30px] w-[30px] items-center justify-center rounded-lg border border-neutral-1 bg-white text-light-4 hover:bg-light-3 hover:text-light-2\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n\n <Ribbon\n ui={ui}\n engine={engine}\n onOpenFile={() => fileInputRef.current?.click()}\n />\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n hidden\n onChange={(e) => {\n const file = e.target.files?.[0]\n if (file) engine.openFile(file)\n e.target.value = ''\n }}\n />\n\n <div className=\"image-editor-stage-panel-wrap relative flex min-h-0 flex-1\">\n <LineSessionBar ui={ui} engine={engine} />\n <Stage\n ref={stageRef}\n ui={ui}\n onChooseImage={() => fileInputRef.current?.click()}\n onDropFile={(file) => engine.openFile(file)}\n />\n <Panel ui={ui} engine={engine} />\n </div>\n\n <StatusBar ui={ui} />\n </div>\n </ImageEditorPortalContext.Provider>\n </div>\n )\n}\n"],"names":["ImageEditorModal","engine","ui","isOpen","saveLabel","rootRef","useRef","rootEl","setRootEl","useState","stageRef","fileInputRef","mountedRef","useEffect","s","t","React","node","ImageEditorPortalContext","Button","Loader2","Save","X","Ribbon","file","LineSessionBar","Stage","Panel","StatusBar"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index131.es.js","sources":["../src/components/organisms/image-editor/native-bridge.ts"],"sourcesContent":["type ReactNativeWebViewBridge = { postMessage: (message: string) => void }\n\nfunction getNativeBridge(): ReactNativeWebViewBridge | null {\n if (typeof window === 'undefined') return null\n const host = window as unknown as {\n ReactNativeWebView?: ReactNativeWebViewBridge\n }\n return host.ReactNativeWebView ?? null\n}\n\n/** No-op outside a React Native WebView. */\nexport function notifyNativeImageEditorState(open: boolean): void {\n const bridge = getNativeBridge()\n if (!bridge) return\n\n try {\n bridge.postMessage(\n JSON.stringify({ type: 'IMAGE_EDITOR', payload: { data: { open } } })\n )\n } catch {\n // noop\n }\n}\n"],"names":["getNativeBridge","notifyNativeImageEditorState","open","bridge"],"mappings":"AAEA,SAASA,IAAmD;AAC1D,SAAI,OAAO,SAAW,MAAoB,OAC7B,OAGD,sBAAsB;AACpC;AAGO,SAASC,EAA6BC,GAAqB;AAChE,QAAMC,IAASH,EAAA;AACf,MAAKG;AAEL,QAAI;AACF,MAAAA,EAAO;AAAA,QACL,KAAK,UAAU,EAAE,MAAM,gBAAgB,SAAS,EAAE,MAAM,EAAE,MAAAD,EAAA,IAAO,CAAG;AAAA,MAAA;AAAA,IAExE,QAAQ;AAAA,IAER;AACF;"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { VERSION as L } from "./
|
|
2
|
-
import { CROP_RATIOS as st, FILTERS as ot, FONTS as rt, SHAPES as it, SWATCHES as dt } from "./
|
|
3
|
-
import { createState as b, getState as C, emit as i, emptySourceCanvas as g, resetAdjValues as v, getSel as x } from "./
|
|
4
|
-
import { zoomIn as T, zoomOut as z, zoomToFit as F, ZOOM_MIN as O, ZOOM_MAX as k, syncCanvasSize as w, render as p, fitStage as I } from "./
|
|
5
|
-
import { undo as P, redo as E } from "./
|
|
6
|
-
import { rotate as u, flip as y, resetToOriginal as R, applyCrop as M, cancelCrop as A, setCropRatio as W } from "./
|
|
7
|
-
import { setMode as B, selectLayer as D } from "./
|
|
8
|
-
import { commitTextEdit as m } from "./
|
|
9
|
-
import { addSticker as _ } from "./
|
|
10
|
-
import { deleteLayer as j, deleteSelected as H, duplicateSelected as U, bringSelectedToFront as N, sendSelectedToBack as Z, setAdjustment as $, setFilter as q, selectShapeType as V, setShapeFill as X, setShapeWidth as G, setBrushSize as J, setBrushStyle as K, setTextFont as Q, setTextSize as Y, setTextColor as ee, setShapeColor as te, setDrawColor as ae, setSelectedColor as le, setSelectedText as se, setSelectedFont as oe, setSelectedTextSize as re, setSelectedBoxWidth as ie, setSelectedShapeFill as de, setSelectedWidth as ne, setSelectedLabel as ce, setSelectedLabelSize as Se, setSelectedLabelColor as pe, setSelectedLabelFont as ue, setSelectedClosed as ye, setSelectedLabelSide as me, setSelectedLabelOffset as he, setSelectedLabelPos as fe, setSelectedLabelRotate as Le, setSelectedLabelDx as be, setSelectedLabelDy as Ce, setMultiPointMode as ge, layerName as ve, rotateSelected as xe, flipSelected as Te } from "./
|
|
11
|
-
import { doSave as ze, produce as Fe, normalizeSource as d, loadState as h, doLoadImage as n } from "./
|
|
12
|
-
import { loadSavedLayers as Oe, saveSelectedLayer as ke, insertSavedLayer as we, deleteSavedLayer as Ie, renameSavedLayer as Pe, setSavedLayers as Ee, insertSavedLayerEntry as Re, searchSavedLayers as Me, canSearch as Ae } from "./
|
|
13
|
-
import { mount as We } from "./
|
|
14
|
-
import { resumePoly as Be, finishPoly as f, undoPolyPoint as De, cancelPoly as _e, polyStatus as je } from "./
|
|
1
|
+
import { VERSION as L } from "./index153.es.js";
|
|
2
|
+
import { CROP_RATIOS as st, FILTERS as ot, FONTS as rt, SHAPES as it, SWATCHES as dt } from "./index153.es.js";
|
|
3
|
+
import { createState as b, getState as C, emit as i, emptySourceCanvas as g, resetAdjValues as v, getSel as x } from "./index154.es.js";
|
|
4
|
+
import { zoomIn as T, zoomOut as z, zoomToFit as F, ZOOM_MIN as O, ZOOM_MAX as k, syncCanvasSize as w, render as p, fitStage as I } from "./index155.es.js";
|
|
5
|
+
import { undo as P, redo as E } from "./index156.es.js";
|
|
6
|
+
import { rotate as u, flip as y, resetToOriginal as R, applyCrop as M, cancelCrop as A, setCropRatio as W } from "./index157.es.js";
|
|
7
|
+
import { setMode as B, selectLayer as D } from "./index158.es.js";
|
|
8
|
+
import { commitTextEdit as m } from "./index159.es.js";
|
|
9
|
+
import { addSticker as _ } from "./index160.es.js";
|
|
10
|
+
import { deleteLayer as j, deleteSelected as H, duplicateSelected as U, bringSelectedToFront as N, sendSelectedToBack as Z, setAdjustment as $, setFilter as q, selectShapeType as V, setShapeFill as X, setShapeWidth as G, setBrushSize as J, setBrushStyle as K, setTextFont as Q, setTextSize as Y, setTextColor as ee, setShapeColor as te, setDrawColor as ae, setSelectedColor as le, setSelectedText as se, setSelectedFont as oe, setSelectedTextSize as re, setSelectedBoxWidth as ie, setSelectedShapeFill as de, setSelectedWidth as ne, setSelectedLabel as ce, setSelectedLabelSize as Se, setSelectedLabelColor as pe, setSelectedLabelFont as ue, setSelectedClosed as ye, setSelectedLabelSide as me, setSelectedLabelOffset as he, setSelectedLabelPos as fe, setSelectedLabelRotate as Le, setSelectedLabelDx as be, setSelectedLabelDy as Ce, setMultiPointMode as ge, layerName as ve, rotateSelected as xe, flipSelected as Te } from "./index161.es.js";
|
|
11
|
+
import { doSave as ze, produce as Fe, normalizeSource as d, loadState as h, doLoadImage as n } from "./index162.es.js";
|
|
12
|
+
import { loadSavedLayers as Oe, saveSelectedLayer as ke, insertSavedLayer as we, deleteSavedLayer as Ie, renameSavedLayer as Pe, setSavedLayers as Ee, insertSavedLayerEntry as Re, searchSavedLayers as Me, canSearch as Ae } from "./index163.es.js";
|
|
13
|
+
import { mount as We } from "./index164.es.js";
|
|
14
|
+
import { resumePoly as Be, finishPoly as f, undoPolyPoint as De, cancelPoly as _e, polyStatus as je } from "./index165.es.js";
|
|
15
15
|
function c(s, a) {
|
|
16
16
|
queueMicrotask(() => {
|
|
17
17
|
throw new Error(`[image-editor] ${s}`, { cause: a });
|
|
@@ -149,4 +149,4 @@ export {
|
|
|
149
149
|
dt as SWATCHES,
|
|
150
150
|
tt as default
|
|
151
151
|
};
|
|
152
|
-
//# sourceMappingURL=
|
|
152
|
+
//# sourceMappingURL=index132.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es100.js","sources":["../src/components/organisms/image-editor/picture-studio-engine.js"],"sourcesContent":["import {\n FILTERS,\n SWATCHES,\n SHAPES,\n FONTS,\n CROP_RATIOS,\n VERSION,\n} from './engine/constants.js'\nimport {\n createState,\n emit,\n emptySourceCanvas,\n getSel,\n getState as readState,\n resetAdjValues,\n} from './engine/state.js'\nimport {\n fitStage,\n render,\n syncCanvasSize,\n zoomIn,\n zoomOut,\n zoomToFit,\n ZOOM_MIN,\n ZOOM_MAX,\n} from './engine/rendering.js'\nimport * as history from './engine/history.js'\nimport * as geometry from './engine/geometry.js'\nimport * as mode from './engine/mode.js'\nimport * as textEditor from './engine/text-editor.js'\nimport * as stickers from './engine/stickers.js'\nimport * as layerActions from './engine/layer-actions.js'\nimport * as saveExport from './engine/save-export.js'\nimport * as savedLayers from './engine/saved-layers.js'\nimport { mount as mountEngine } from './engine/mount.js'\nimport {\n resumePoly,\n polyStatus,\n finishPoly,\n cancelPoly,\n undoPolyPoint,\n} from './engine/pointer.js'\n\nexport { FILTERS, SWATCHES, SHAPES, FONTS, CROP_RATIOS }\n\nfunction reportError(context, error) {\n // Surfaces in DevTools via window.onerror with the stack intact, without\n // aborting the caller and without a console call the lint config forbids.\n queueMicrotask(() => {\n throw new Error(`[image-editor] ${context}`, { cause: error })\n })\n}\n\nfunction createEngine(config) {\n config = config || {}\n const self = {}\n const state = createState(config)\n savedLayers.loadSavedLayers(state)\n\n function notify() {\n // onUiChange is host code (a React setState, usually). A throw here used to\n // abort open() before its 'open' event fired, leaving isOpenFlag true while\n // the UI stayed closed -- after which every open() silently no-opped and the\n // editor could never be reopened.\n try {\n if (typeof config.onUiChange === 'function') {\n config.onUiChange(getUiState())\n }\n } catch (e) {\n reportError('onUiChange threw', e)\n }\n }\n state.notify = notify\n\n self.on = (ev, fn) => {\n if (state.listeners[ev]) state.listeners[ev].push(fn)\n return self\n }\n self.off = (ev, fn) => {\n if (state.listeners[ev])\n state.listeners[ev] = state.listeners[ev].filter((f) => f !== fn)\n return self\n }\n\n function getUiState() {\n const sel = getSel(state)\n return {\n hasImage: !!state.sourceCanvas.width,\n mode: state.mode,\n canUndo: state.undoStack.length > 0,\n canRedo: state.redoStack.length > 0,\n canReset: !!state.originalCanvas,\n zoomPercent: Math.round(state.zoom * 100),\n canZoomIn: state.zoom < ZOOM_MAX - 1e-6,\n canZoomOut: state.zoom > ZOOM_MIN + 1e-6,\n closeOnBackdrop: config.closeOnBackdrop !== false,\n canOpenImage: config.allowOpenImage !== false,\n isEditingText: !!state.editingLayer,\n editingSelectAll: state.editingSelectAll,\n dims: state.sourceCanvas.width\n ? `${state.sourceCanvas.width} × ${state.sourceCanvas.height} px`\n : 'No image',\n statusText: state.statusText,\n isSaving: state.isSaving,\n isLoadingImage: state.isLoadingImage,\n adjustments: { ...state.adj },\n selectedShapeType: state.selectedShapeType,\n multiPointMode: !!state.multiPointMode,\n canSearchSavedLayers: savedLayers.canSearch(state),\n savedLayers: (state.savedLayers || []).map((e) => ({\n id: e.id,\n name: e.name,\n type: e.layer?.type,\n createdAt: e.createdAt,\n })),\n poly: polyStatus(state),\n textColor: state.textColor,\n shapeColor: state.shapeColor,\n drawColor: state.drawColor,\n shapeFill: state.shapeFill,\n shapeWidth: state.shapeWidth,\n brushSize: state.brushSize,\n brushStyle: state.brushStyle,\n textFont: state.textFont,\n textSize: state.textSize,\n cropRatio: state.cropRatio,\n stickers: state.stickers,\n selected: sel\n ? {\n id: sel.id,\n type: sel.type,\n color: sel.color,\n text: sel.type === 'text' ? sel.text : undefined,\n font: sel.type === 'text' ? sel.font : undefined,\n size: sel.type === 'text' ? sel.size : undefined,\n boxWidth: sel.type === 'text' ? sel.boxWidth : undefined,\n fill: sel.type === 'shape' ? sel.fill : undefined,\n width:\n sel.type === 'shape' || sel.type === 'stroke'\n ? sel.width\n : undefined,\n shape: sel.type === 'shape' ? sel.shape : undefined,\n label: sel.type === 'shape' ? (sel.label ?? '') : undefined,\n labelSize: sel.type === 'shape' ? sel.labelSize : undefined,\n labelColor: sel.type === 'shape' ? sel.labelColor : undefined,\n labelFont: sel.type === 'shape' ? sel.labelFont : undefined,\n pointCount:\n sel.type === 'shape' && sel.points\n ? sel.points.length\n : undefined,\n closed: sel.type === 'shape' ? !!sel.closed : undefined,\n labelSide:\n sel.type === 'shape' ? (sel.labelSide ?? 'above') : undefined,\n labelOffset: sel.type === 'shape' ? sel.labelOffset : undefined,\n labelPos: sel.type === 'shape' ? (sel.labelPos ?? 0.5) : undefined,\n labelRotate:\n sel.type === 'shape' ? sel.labelRotate !== false : undefined,\n labelDx: sel.type === 'shape' ? (sel.labelDx ?? 0) : undefined,\n labelDy: sel.type === 'shape' ? (sel.labelDy ?? 0) : undefined,\n }\n : null,\n layers: state.layers.map((l) => ({\n id: l.id,\n type: l.type,\n name: layerActions.layerName(l),\n })),\n }\n }\n self.getUiState = getUiState\n\n self.refitStage = () => {\n if (!state.mounted || !state.sourceCanvas.width) return\n fitStage(state)\n render(state)\n }\n self.zoomIn = () => zoomIn(state)\n self.zoomOut = () => zoomOut(state)\n self.zoomToFit = () => zoomToFit(state)\n self.setMode = (m) => mode.setMode(state, m)\n self.selectLayer = (id) => mode.selectLayer(state, id)\n self.undo = () => history.undo(state)\n self.redo = () => history.redo(state)\n // With a layer selected these act on that layer; otherwise on the image.\n self.rotate = (deg) =>\n state.selectedId != null\n ? layerActions.rotateSelected(state, deg)\n : geometry.rotate(state, deg)\n self.flip = (hz) =>\n state.selectedId != null\n ? layerActions.flipSelected(state, hz)\n : geometry.flip(state, hz)\n // Explicit escape hatches, so the image can still be transformed directly.\n self.rotateImage = (deg) => geometry.rotate(state, deg)\n self.flipImage = (hz) => geometry.flip(state, hz)\n self.resetToOriginal = () => geometry.resetToOriginal(state)\n self.applyCrop = () => geometry.applyCrop(state)\n self.cancelCrop = () => geometry.cancelCrop(state)\n self.setCropRatio = (v) => geometry.setCropRatio(state, v)\n self.commitTextEdit = () => textEditor.commitTextEdit(state)\n self.addSticker = (src) => stickers.addSticker(state, src)\n self.setStickers = (list) => {\n state.stickers = list || []\n notify()\n }\n self.deleteLayer = (id) => layerActions.deleteLayer(state, id)\n self.deleteSelected = () => layerActions.deleteSelected(state)\n self.duplicateSelected = () => layerActions.duplicateSelected(state)\n self.bringSelectedToFront = () => layerActions.bringSelectedToFront(state)\n self.sendSelectedToBack = () => layerActions.sendSelectedToBack(state)\n self.setAdjustment = (key, value) =>\n layerActions.setAdjustment(state, key, value)\n self.setFilter = (id) => layerActions.setFilter(state, id)\n self.selectShapeType = (id) => layerActions.selectShapeType(state, id)\n self.setShapeFill = (v) => layerActions.setShapeFill(state, v)\n self.setShapeWidth = (v) => layerActions.setShapeWidth(state, v)\n self.setBrushSize = (v) => layerActions.setBrushSize(state, v)\n self.setBrushStyle = (v) => layerActions.setBrushStyle(state, v)\n self.setTextFont = (v) => layerActions.setTextFont(state, v)\n self.setTextSize = (v) => layerActions.setTextSize(state, v)\n self.setTextColor = (v) => layerActions.setTextColor(state, v)\n self.setShapeColor = (v) => layerActions.setShapeColor(state, v)\n self.setDrawColor = (v) => layerActions.setDrawColor(state, v)\n self.setSelectedColor = (v) => layerActions.setSelectedColor(state, v)\n self.setSelectedText = (v) => layerActions.setSelectedText(state, v)\n self.setSelectedFont = (v) => layerActions.setSelectedFont(state, v)\n self.setSelectedTextSize = (v) => layerActions.setSelectedTextSize(state, v)\n self.setSelectedBoxWidth = (v) => layerActions.setSelectedBoxWidth(state, v)\n self.setSelectedShapeFill = (v) => layerActions.setSelectedShapeFill(state, v)\n self.setSelectedWidth = (v) => layerActions.setSelectedWidth(state, v)\n self.setSelectedLabel = (v) => layerActions.setSelectedLabel(state, v)\n self.setSelectedLabelSize = (v) => layerActions.setSelectedLabelSize(state, v)\n self.setSelectedLabelColor = (v) =>\n layerActions.setSelectedLabelColor(state, v)\n self.setSelectedLabelFont = (v) => layerActions.setSelectedLabelFont(state, v)\n self.setSelectedClosed = (v) => layerActions.setSelectedClosed(state, v)\n self.setSelectedLabelSide = (v) => layerActions.setSelectedLabelSide(state, v)\n self.setSelectedLabelOffset = (v) =>\n layerActions.setSelectedLabelOffset(state, v)\n self.setSelectedLabelPos = (v) => layerActions.setSelectedLabelPos(state, v)\n self.setSelectedLabelRotate = (v) =>\n layerActions.setSelectedLabelRotate(state, v)\n self.setSelectedLabelDx = (v) => layerActions.setSelectedLabelDx(state, v)\n self.setSelectedLabelDy = (v) => layerActions.setSelectedLabelDy(state, v)\n self.setMultiPointMode = (v) => layerActions.setMultiPointMode(state, v)\n self.continueSelectedLine = () => resumePoly(state)\n // Touch has no Enter/Esc/Backspace, so every session action needs a button.\n self.finishLine = () => finishPoly(state, false)\n self.closeLine = () => finishPoly(state, true)\n self.undoLinePoint = () => undoPolyPoint(state)\n self.cancelLine = () => cancelPoly(state)\n self.saveSelectedLayer = (name) => savedLayers.saveSelectedLayer(state, name)\n self.insertSavedLayer = (id) => savedLayers.insertSavedLayer(state, id)\n self.deleteSavedLayer = (id) => savedLayers.deleteSavedLayer(state, id)\n self.renameSavedLayer = (id, name) =>\n savedLayers.renameSavedLayer(state, id, name)\n self.getSavedLayers = () => (state.savedLayers || []).slice()\n self.setSavedLayers = (list) => savedLayers.setSavedLayers(state, list)\n self.insertSavedLayerEntry = (entry) =>\n savedLayers.insertSavedLayerEntry(state, entry)\n self.searchSavedLayers = (q) => savedLayers.searchSavedLayers(state, q)\n self.save = () => saveExport.doSave(state, self)\n self.export = (opts) => {\n opts = opts || {}\n if (!state.sourceCanvas.width) return Promise.resolve(null)\n return saveExport.produce(state, opts.type, opts.quality)\n }\n self.getState = () => readState(state)\n self.mount = (refs) => mountEngine(state, self, refs)\n self.openFile = (file) =>\n saveExport.normalizeSource(state, file, (d) =>\n saveExport.doLoadImage(state, d)\n )\n\n self.open = (opts) => {\n opts = opts || {}\n if (state.isOpenFlag) {\n // Already flagged open. Re-emit rather than only notifying: if the host\n // never saw the last 'open' -- a throw mid-open, or a wrapper that hid\n // itself without calling close -- the flag and the UI have drifted apart,\n // and every later open() would no-op, leaving a permanently dead button.\n notify()\n emit(state, 'open', {})\n return self\n }\n state.isOpenFlag = true\n const finish = () => {\n try {\n if (state.mounted && state.sourceCanvas.width) {\n syncCanvasSize(state)\n render(state)\n }\n } catch (e) {\n // A render failure must not strand isOpenFlag: the event below is what\n // the host listens on, and without it the editor can never reopen.\n reportError('render on open failed', e)\n }\n notify()\n emit(state, 'open', {})\n }\n if (opts.state) {\n saveExport.loadState(state, opts.state)\n setTimeout(finish, 0)\n } else if (opts.image) {\n saveExport.normalizeSource(state, opts.image, (d) => {\n saveExport.doLoadImage(state, d)\n setTimeout(finish, 0)\n })\n } else {\n setTimeout(finish, 0)\n }\n return self\n }\n self.close = () => {\n state.isOpenFlag = false\n try {\n textEditor.commitTextEdit(state)\n } catch (e) {\n reportError('commit on close failed', e)\n }\n notify()\n emit(state, 'close', {})\n return self\n }\n self.loadImage = (src) => {\n saveExport.normalizeSource(state, src, (d) =>\n saveExport.doLoadImage(state, d)\n )\n return self\n }\n self.loadState = (s) => {\n saveExport.loadState(state, s)\n return self\n }\n self.reset = () => {\n state.sourceCanvas = emptySourceCanvas()\n state.originalCanvas = null\n state.layers = []\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n resetAdjValues(state)\n state.statusText = 'Ready'\n notify()\n return self\n }\n self.isOpen = () => state.isOpenFlag\n self.destroy = () => {\n if (self._keyHandler)\n document.removeEventListener('keydown', self._keyHandler)\n if (self._resizeHandler)\n window.removeEventListener('resize', self._resizeHandler)\n Object.keys(state.listeners).forEach((k) => (state.listeners[k] = []))\n }\n\n if (config.autoOpen) self.open({ image: config.image, state: config.state })\n\n return self\n}\n\nconst PictureStudioEngine = { version: VERSION, create: createEngine }\nexport default PictureStudioEngine\n"],"names":["reportError","context","error","createEngine","config","self","state","createState","savedLayers.loadSavedLayers","notify","getUiState","ev","fn","f","sel","getSel","ZOOM_MAX","ZOOM_MIN","savedLayers.canSearch","e","polyStatus","layerActions.layerName","fitStage","render","zoomIn","zoomOut","zoomToFit","m","mode.setMode","id","mode.selectLayer","history.undo","history.redo","deg","layerActions.rotateSelected","geometry.rotate","hz","layerActions.flipSelected","geometry.flip","geometry.resetToOriginal","geometry.applyCrop","geometry.cancelCrop","v","geometry.setCropRatio","textEditor.commitTextEdit","src","stickers.addSticker","list","layerActions.deleteLayer","layerActions.deleteSelected","layerActions.duplicateSelected","layerActions.bringSelectedToFront","layerActions.sendSelectedToBack","key","value","layerActions.setAdjustment","layerActions.setFilter","layerActions.selectShapeType","layerActions.setShapeFill","layerActions.setShapeWidth","layerActions.setBrushSize","layerActions.setBrushStyle","layerActions.setTextFont","layerActions.setTextSize","layerActions.setTextColor","layerActions.setShapeColor","layerActions.setDrawColor","layerActions.setSelectedColor","layerActions.setSelectedText","layerActions.setSelectedFont","layerActions.setSelectedTextSize","layerActions.setSelectedBoxWidth","layerActions.setSelectedShapeFill","layerActions.setSelectedWidth","layerActions.setSelectedLabel","layerActions.setSelectedLabelSize","layerActions.setSelectedLabelColor","layerActions.setSelectedLabelFont","layerActions.setSelectedClosed","layerActions.setSelectedLabelSide","layerActions.setSelectedLabelOffset","layerActions.setSelectedLabelPos","layerActions.setSelectedLabelRotate","layerActions.setSelectedLabelDx","layerActions.setSelectedLabelDy","layerActions.setMultiPointMode","resumePoly","finishPoly","undoPolyPoint","cancelPoly","name","savedLayers.saveSelectedLayer","savedLayers.insertSavedLayer","savedLayers.deleteSavedLayer","savedLayers.renameSavedLayer","savedLayers.setSavedLayers","entry","savedLayers.insertSavedLayerEntry","q","savedLayers.searchSavedLayers","saveExport.doSave","opts","saveExport.produce","readState","refs","mountEngine","file","saveExport.normalizeSource","d","saveExport.doLoadImage","emit","finish","syncCanvasSize","saveExport.loadState","s","emptySourceCanvas","resetAdjValues","k","PictureStudioEngine","VERSION"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index132.es.js","sources":["../src/components/organisms/image-editor/picture-studio-engine.js"],"sourcesContent":["import {\n FILTERS,\n SWATCHES,\n SHAPES,\n FONTS,\n CROP_RATIOS,\n VERSION,\n} from './engine/constants.js'\nimport {\n createState,\n emit,\n emptySourceCanvas,\n getSel,\n getState as readState,\n resetAdjValues,\n} from './engine/state.js'\nimport {\n fitStage,\n render,\n syncCanvasSize,\n zoomIn,\n zoomOut,\n zoomToFit,\n ZOOM_MIN,\n ZOOM_MAX,\n} from './engine/rendering.js'\nimport * as history from './engine/history.js'\nimport * as geometry from './engine/geometry.js'\nimport * as mode from './engine/mode.js'\nimport * as textEditor from './engine/text-editor.js'\nimport * as stickers from './engine/stickers.js'\nimport * as layerActions from './engine/layer-actions.js'\nimport * as saveExport from './engine/save-export.js'\nimport * as savedLayers from './engine/saved-layers.js'\nimport { mount as mountEngine } from './engine/mount.js'\nimport {\n resumePoly,\n polyStatus,\n finishPoly,\n cancelPoly,\n undoPolyPoint,\n} from './engine/pointer.js'\n\nexport { FILTERS, SWATCHES, SHAPES, FONTS, CROP_RATIOS }\n\nfunction reportError(context, error) {\n // Surfaces in DevTools via window.onerror with the stack intact, without\n // aborting the caller and without a console call the lint config forbids.\n queueMicrotask(() => {\n throw new Error(`[image-editor] ${context}`, { cause: error })\n })\n}\n\nfunction createEngine(config) {\n config = config || {}\n const self = {}\n const state = createState(config)\n savedLayers.loadSavedLayers(state)\n\n function notify() {\n // onUiChange is host code (a React setState, usually). A throw here used to\n // abort open() before its 'open' event fired, leaving isOpenFlag true while\n // the UI stayed closed -- after which every open() silently no-opped and the\n // editor could never be reopened.\n try {\n if (typeof config.onUiChange === 'function') {\n config.onUiChange(getUiState())\n }\n } catch (e) {\n reportError('onUiChange threw', e)\n }\n }\n state.notify = notify\n\n self.on = (ev, fn) => {\n if (state.listeners[ev]) state.listeners[ev].push(fn)\n return self\n }\n self.off = (ev, fn) => {\n if (state.listeners[ev])\n state.listeners[ev] = state.listeners[ev].filter((f) => f !== fn)\n return self\n }\n\n function getUiState() {\n const sel = getSel(state)\n return {\n hasImage: !!state.sourceCanvas.width,\n mode: state.mode,\n canUndo: state.undoStack.length > 0,\n canRedo: state.redoStack.length > 0,\n canReset: !!state.originalCanvas,\n zoomPercent: Math.round(state.zoom * 100),\n canZoomIn: state.zoom < ZOOM_MAX - 1e-6,\n canZoomOut: state.zoom > ZOOM_MIN + 1e-6,\n closeOnBackdrop: config.closeOnBackdrop !== false,\n canOpenImage: config.allowOpenImage !== false,\n isEditingText: !!state.editingLayer,\n editingSelectAll: state.editingSelectAll,\n dims: state.sourceCanvas.width\n ? `${state.sourceCanvas.width} × ${state.sourceCanvas.height} px`\n : 'No image',\n statusText: state.statusText,\n isSaving: state.isSaving,\n isLoadingImage: state.isLoadingImage,\n adjustments: { ...state.adj },\n selectedShapeType: state.selectedShapeType,\n multiPointMode: !!state.multiPointMode,\n canSearchSavedLayers: savedLayers.canSearch(state),\n savedLayers: (state.savedLayers || []).map((e) => ({\n id: e.id,\n name: e.name,\n type: e.layer?.type,\n createdAt: e.createdAt,\n })),\n poly: polyStatus(state),\n textColor: state.textColor,\n shapeColor: state.shapeColor,\n drawColor: state.drawColor,\n shapeFill: state.shapeFill,\n shapeWidth: state.shapeWidth,\n brushSize: state.brushSize,\n brushStyle: state.brushStyle,\n textFont: state.textFont,\n textSize: state.textSize,\n cropRatio: state.cropRatio,\n stickers: state.stickers,\n selected: sel\n ? {\n id: sel.id,\n type: sel.type,\n color: sel.color,\n text: sel.type === 'text' ? sel.text : undefined,\n font: sel.type === 'text' ? sel.font : undefined,\n size: sel.type === 'text' ? sel.size : undefined,\n boxWidth: sel.type === 'text' ? sel.boxWidth : undefined,\n fill: sel.type === 'shape' ? sel.fill : undefined,\n width:\n sel.type === 'shape' || sel.type === 'stroke'\n ? sel.width\n : undefined,\n shape: sel.type === 'shape' ? sel.shape : undefined,\n label: sel.type === 'shape' ? (sel.label ?? '') : undefined,\n labelSize: sel.type === 'shape' ? sel.labelSize : undefined,\n labelColor: sel.type === 'shape' ? sel.labelColor : undefined,\n labelFont: sel.type === 'shape' ? sel.labelFont : undefined,\n pointCount:\n sel.type === 'shape' && sel.points\n ? sel.points.length\n : undefined,\n closed: sel.type === 'shape' ? !!sel.closed : undefined,\n labelSide:\n sel.type === 'shape' ? (sel.labelSide ?? 'above') : undefined,\n labelOffset: sel.type === 'shape' ? sel.labelOffset : undefined,\n labelPos: sel.type === 'shape' ? (sel.labelPos ?? 0.5) : undefined,\n labelRotate:\n sel.type === 'shape' ? sel.labelRotate !== false : undefined,\n labelDx: sel.type === 'shape' ? (sel.labelDx ?? 0) : undefined,\n labelDy: sel.type === 'shape' ? (sel.labelDy ?? 0) : undefined,\n }\n : null,\n layers: state.layers.map((l) => ({\n id: l.id,\n type: l.type,\n name: layerActions.layerName(l),\n })),\n }\n }\n self.getUiState = getUiState\n\n self.refitStage = () => {\n if (!state.mounted || !state.sourceCanvas.width) return\n fitStage(state)\n render(state)\n }\n self.zoomIn = () => zoomIn(state)\n self.zoomOut = () => zoomOut(state)\n self.zoomToFit = () => zoomToFit(state)\n self.setMode = (m) => mode.setMode(state, m)\n self.selectLayer = (id) => mode.selectLayer(state, id)\n self.undo = () => history.undo(state)\n self.redo = () => history.redo(state)\n // With a layer selected these act on that layer; otherwise on the image.\n self.rotate = (deg) =>\n state.selectedId != null\n ? layerActions.rotateSelected(state, deg)\n : geometry.rotate(state, deg)\n self.flip = (hz) =>\n state.selectedId != null\n ? layerActions.flipSelected(state, hz)\n : geometry.flip(state, hz)\n // Explicit escape hatches, so the image can still be transformed directly.\n self.rotateImage = (deg) => geometry.rotate(state, deg)\n self.flipImage = (hz) => geometry.flip(state, hz)\n self.resetToOriginal = () => geometry.resetToOriginal(state)\n self.applyCrop = () => geometry.applyCrop(state)\n self.cancelCrop = () => geometry.cancelCrop(state)\n self.setCropRatio = (v) => geometry.setCropRatio(state, v)\n self.commitTextEdit = () => textEditor.commitTextEdit(state)\n self.addSticker = (src) => stickers.addSticker(state, src)\n self.setStickers = (list) => {\n state.stickers = list || []\n notify()\n }\n self.deleteLayer = (id) => layerActions.deleteLayer(state, id)\n self.deleteSelected = () => layerActions.deleteSelected(state)\n self.duplicateSelected = () => layerActions.duplicateSelected(state)\n self.bringSelectedToFront = () => layerActions.bringSelectedToFront(state)\n self.sendSelectedToBack = () => layerActions.sendSelectedToBack(state)\n self.setAdjustment = (key, value) =>\n layerActions.setAdjustment(state, key, value)\n self.setFilter = (id) => layerActions.setFilter(state, id)\n self.selectShapeType = (id) => layerActions.selectShapeType(state, id)\n self.setShapeFill = (v) => layerActions.setShapeFill(state, v)\n self.setShapeWidth = (v) => layerActions.setShapeWidth(state, v)\n self.setBrushSize = (v) => layerActions.setBrushSize(state, v)\n self.setBrushStyle = (v) => layerActions.setBrushStyle(state, v)\n self.setTextFont = (v) => layerActions.setTextFont(state, v)\n self.setTextSize = (v) => layerActions.setTextSize(state, v)\n self.setTextColor = (v) => layerActions.setTextColor(state, v)\n self.setShapeColor = (v) => layerActions.setShapeColor(state, v)\n self.setDrawColor = (v) => layerActions.setDrawColor(state, v)\n self.setSelectedColor = (v) => layerActions.setSelectedColor(state, v)\n self.setSelectedText = (v) => layerActions.setSelectedText(state, v)\n self.setSelectedFont = (v) => layerActions.setSelectedFont(state, v)\n self.setSelectedTextSize = (v) => layerActions.setSelectedTextSize(state, v)\n self.setSelectedBoxWidth = (v) => layerActions.setSelectedBoxWidth(state, v)\n self.setSelectedShapeFill = (v) => layerActions.setSelectedShapeFill(state, v)\n self.setSelectedWidth = (v) => layerActions.setSelectedWidth(state, v)\n self.setSelectedLabel = (v) => layerActions.setSelectedLabel(state, v)\n self.setSelectedLabelSize = (v) => layerActions.setSelectedLabelSize(state, v)\n self.setSelectedLabelColor = (v) =>\n layerActions.setSelectedLabelColor(state, v)\n self.setSelectedLabelFont = (v) => layerActions.setSelectedLabelFont(state, v)\n self.setSelectedClosed = (v) => layerActions.setSelectedClosed(state, v)\n self.setSelectedLabelSide = (v) => layerActions.setSelectedLabelSide(state, v)\n self.setSelectedLabelOffset = (v) =>\n layerActions.setSelectedLabelOffset(state, v)\n self.setSelectedLabelPos = (v) => layerActions.setSelectedLabelPos(state, v)\n self.setSelectedLabelRotate = (v) =>\n layerActions.setSelectedLabelRotate(state, v)\n self.setSelectedLabelDx = (v) => layerActions.setSelectedLabelDx(state, v)\n self.setSelectedLabelDy = (v) => layerActions.setSelectedLabelDy(state, v)\n self.setMultiPointMode = (v) => layerActions.setMultiPointMode(state, v)\n self.continueSelectedLine = () => resumePoly(state)\n // Touch has no Enter/Esc/Backspace, so every session action needs a button.\n self.finishLine = () => finishPoly(state, false)\n self.closeLine = () => finishPoly(state, true)\n self.undoLinePoint = () => undoPolyPoint(state)\n self.cancelLine = () => cancelPoly(state)\n self.saveSelectedLayer = (name) => savedLayers.saveSelectedLayer(state, name)\n self.insertSavedLayer = (id) => savedLayers.insertSavedLayer(state, id)\n self.deleteSavedLayer = (id) => savedLayers.deleteSavedLayer(state, id)\n self.renameSavedLayer = (id, name) =>\n savedLayers.renameSavedLayer(state, id, name)\n self.getSavedLayers = () => (state.savedLayers || []).slice()\n self.setSavedLayers = (list) => savedLayers.setSavedLayers(state, list)\n self.insertSavedLayerEntry = (entry) =>\n savedLayers.insertSavedLayerEntry(state, entry)\n self.searchSavedLayers = (q) => savedLayers.searchSavedLayers(state, q)\n self.save = () => saveExport.doSave(state, self)\n self.export = (opts) => {\n opts = opts || {}\n if (!state.sourceCanvas.width) return Promise.resolve(null)\n return saveExport.produce(state, opts.type, opts.quality)\n }\n self.getState = () => readState(state)\n self.mount = (refs) => mountEngine(state, self, refs)\n self.openFile = (file) =>\n saveExport.normalizeSource(state, file, (d) =>\n saveExport.doLoadImage(state, d)\n )\n\n self.open = (opts) => {\n opts = opts || {}\n if (state.isOpenFlag) {\n // Already flagged open. Re-emit rather than only notifying: if the host\n // never saw the last 'open' -- a throw mid-open, or a wrapper that hid\n // itself without calling close -- the flag and the UI have drifted apart,\n // and every later open() would no-op, leaving a permanently dead button.\n notify()\n emit(state, 'open', {})\n return self\n }\n state.isOpenFlag = true\n const finish = () => {\n try {\n if (state.mounted && state.sourceCanvas.width) {\n syncCanvasSize(state)\n render(state)\n }\n } catch (e) {\n // A render failure must not strand isOpenFlag: the event below is what\n // the host listens on, and without it the editor can never reopen.\n reportError('render on open failed', e)\n }\n notify()\n emit(state, 'open', {})\n }\n if (opts.state) {\n saveExport.loadState(state, opts.state)\n setTimeout(finish, 0)\n } else if (opts.image) {\n saveExport.normalizeSource(state, opts.image, (d) => {\n saveExport.doLoadImage(state, d)\n setTimeout(finish, 0)\n })\n } else {\n setTimeout(finish, 0)\n }\n return self\n }\n self.close = () => {\n state.isOpenFlag = false\n try {\n textEditor.commitTextEdit(state)\n } catch (e) {\n reportError('commit on close failed', e)\n }\n notify()\n emit(state, 'close', {})\n return self\n }\n self.loadImage = (src) => {\n saveExport.normalizeSource(state, src, (d) =>\n saveExport.doLoadImage(state, d)\n )\n return self\n }\n self.loadState = (s) => {\n saveExport.loadState(state, s)\n return self\n }\n self.reset = () => {\n state.sourceCanvas = emptySourceCanvas()\n state.originalCanvas = null\n state.layers = []\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n resetAdjValues(state)\n state.statusText = 'Ready'\n notify()\n return self\n }\n self.isOpen = () => state.isOpenFlag\n self.destroy = () => {\n if (self._keyHandler)\n document.removeEventListener('keydown', self._keyHandler)\n if (self._resizeHandler)\n window.removeEventListener('resize', self._resizeHandler)\n Object.keys(state.listeners).forEach((k) => (state.listeners[k] = []))\n }\n\n if (config.autoOpen) self.open({ image: config.image, state: config.state })\n\n return self\n}\n\nconst PictureStudioEngine = { version: VERSION, create: createEngine }\nexport default PictureStudioEngine\n"],"names":["reportError","context","error","createEngine","config","self","state","createState","savedLayers.loadSavedLayers","notify","getUiState","ev","fn","f","sel","getSel","ZOOM_MAX","ZOOM_MIN","savedLayers.canSearch","e","polyStatus","layerActions.layerName","fitStage","render","zoomIn","zoomOut","zoomToFit","m","mode.setMode","id","mode.selectLayer","history.undo","history.redo","deg","layerActions.rotateSelected","geometry.rotate","hz","layerActions.flipSelected","geometry.flip","geometry.resetToOriginal","geometry.applyCrop","geometry.cancelCrop","v","geometry.setCropRatio","textEditor.commitTextEdit","src","stickers.addSticker","list","layerActions.deleteLayer","layerActions.deleteSelected","layerActions.duplicateSelected","layerActions.bringSelectedToFront","layerActions.sendSelectedToBack","key","value","layerActions.setAdjustment","layerActions.setFilter","layerActions.selectShapeType","layerActions.setShapeFill","layerActions.setShapeWidth","layerActions.setBrushSize","layerActions.setBrushStyle","layerActions.setTextFont","layerActions.setTextSize","layerActions.setTextColor","layerActions.setShapeColor","layerActions.setDrawColor","layerActions.setSelectedColor","layerActions.setSelectedText","layerActions.setSelectedFont","layerActions.setSelectedTextSize","layerActions.setSelectedBoxWidth","layerActions.setSelectedShapeFill","layerActions.setSelectedWidth","layerActions.setSelectedLabel","layerActions.setSelectedLabelSize","layerActions.setSelectedLabelColor","layerActions.setSelectedLabelFont","layerActions.setSelectedClosed","layerActions.setSelectedLabelSide","layerActions.setSelectedLabelOffset","layerActions.setSelectedLabelPos","layerActions.setSelectedLabelRotate","layerActions.setSelectedLabelDx","layerActions.setSelectedLabelDy","layerActions.setMultiPointMode","resumePoly","finishPoly","undoPolyPoint","cancelPoly","name","savedLayers.saveSelectedLayer","savedLayers.insertSavedLayer","savedLayers.deleteSavedLayer","savedLayers.renameSavedLayer","savedLayers.setSavedLayers","entry","savedLayers.insertSavedLayerEntry","q","savedLayers.searchSavedLayers","saveExport.doSave","opts","saveExport.produce","readState","refs","mountEngine","file","saveExport.normalizeSource","d","saveExport.doLoadImage","emit","finish","syncCanvasSize","saveExport.loadState","s","emptySourceCanvas","resetAdjValues","k","PictureStudioEngine","VERSION"],"mappings":";;;;;;;;;;;;;;AA6CA,SAASA,EAAYC,GAASC,GAAO;AAGnC,iBAAe,MAAM;AACnB,UAAM,IAAI,MAAM,kBAAkBD,CAAO,IAAI,EAAE,OAAOC,EAAK,CAAE;AAAA,EAC/D,CAAC;AACH;AAEA,SAASC,GAAaC,GAAQ;AAC5B,EAAAA,IAASA,KAAU,CAAA;AACnB,QAAMC,IAAO,CAAA,GACPC,IAAQC,EAAYH,CAAM;AAChCI,EAAAA,GAA4BF,CAAK;AAEjC,WAASG,IAAS;AAKhB,QAAI;AACF,MAAI,OAAOL,EAAO,cAAe,cAC/BA,EAAO,WAAWM,EAAU,CAAE;AAAA,IAElC,SAAS,GAAG;AACV,MAAAV,EAAY,oBAAoB,CAAC;AAAA,IACnC;AAAA,EACF;AACA,EAAAM,EAAM,SAASG,GAEfJ,EAAK,KAAK,CAACM,GAAIC,OACTN,EAAM,UAAUK,CAAE,KAAGL,EAAM,UAAUK,CAAE,EAAE,KAAKC,CAAE,GAC7CP,IAETA,EAAK,MAAM,CAACM,GAAIC,OACVN,EAAM,UAAUK,CAAE,MACpBL,EAAM,UAAUK,CAAE,IAAIL,EAAM,UAAUK,CAAE,EAAE,OAAO,CAACE,MAAMA,MAAMD,CAAE,IAC3DP;AAGT,WAASK,IAAa;AACpB,UAAMI,IAAMC,EAAOT,CAAK;AACxB,WAAO;AAAA,MACL,UAAU,CAAC,CAACA,EAAM,aAAa;AAAA,MAC/B,MAAMA,EAAM;AAAA,MACZ,SAASA,EAAM,UAAU,SAAS;AAAA,MAClC,SAASA,EAAM,UAAU,SAAS;AAAA,MAClC,UAAU,CAAC,CAACA,EAAM;AAAA,MAClB,aAAa,KAAK,MAAMA,EAAM,OAAO,GAAG;AAAA,MACxC,WAAWA,EAAM,OAAOU,IAAW;AAAA,MACnC,YAAYV,EAAM,OAAOW,IAAW;AAAA,MACpC,iBAAiBb,EAAO,oBAAoB;AAAA,MAC5C,cAAcA,EAAO,mBAAmB;AAAA,MACxC,eAAe,CAAC,CAACE,EAAM;AAAA,MACvB,kBAAkBA,EAAM;AAAA,MACxB,MAAMA,EAAM,aAAa,QACrB,GAAGA,EAAM,aAAa,KAAK,MAAMA,EAAM,aAAa,MAAM,QAC1D;AAAA,MACJ,YAAYA,EAAM;AAAA,MAClB,UAAUA,EAAM;AAAA,MAChB,gBAAgBA,EAAM;AAAA,MACtB,aAAa,EAAE,GAAGA,EAAM,IAAG;AAAA,MAC3B,mBAAmBA,EAAM;AAAA,MACzB,gBAAgB,CAAC,CAACA,EAAM;AAAA,MACxB,sBAAsBY,GAAsBZ,CAAK;AAAA,MACjD,cAAcA,EAAM,eAAe,CAAA,GAAI,IAAI,CAACa,OAAO;AAAA,QACjD,IAAIA,EAAE;AAAA,QACN,MAAMA,EAAE;AAAA,QACR,MAAMA,EAAE,OAAO;AAAA,QACf,WAAWA,EAAE;AAAA,MACrB,EAAQ;AAAA,MACF,MAAMC,GAAWd,CAAK;AAAA,MACtB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,WAAWA,EAAM;AAAA,MACjB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,UAAUA,EAAM;AAAA,MAChB,UAAUA,EAAM;AAAA,MAChB,WAAWA,EAAM;AAAA,MACjB,UAAUA,EAAM;AAAA,MAChB,UAAUQ,IACN;AAAA,QACE,IAAIA,EAAI;AAAA,QACR,MAAMA,EAAI;AAAA,QACV,OAAOA,EAAI;AAAA,QACX,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,UAAUA,EAAI,SAAS,SAASA,EAAI,WAAW;AAAA,QAC/C,MAAMA,EAAI,SAAS,UAAUA,EAAI,OAAO;AAAA,QACxC,OACEA,EAAI,SAAS,WAAWA,EAAI,SAAS,WACjCA,EAAI,QACJ;AAAA,QACN,OAAOA,EAAI,SAAS,UAAUA,EAAI,QAAQ;AAAA,QAC1C,OAAOA,EAAI,SAAS,UAAWA,EAAI,SAAS,KAAM;AAAA,QAClD,WAAWA,EAAI,SAAS,UAAUA,EAAI,YAAY;AAAA,QAClD,YAAYA,EAAI,SAAS,UAAUA,EAAI,aAAa;AAAA,QACpD,WAAWA,EAAI,SAAS,UAAUA,EAAI,YAAY;AAAA,QAClD,YACEA,EAAI,SAAS,WAAWA,EAAI,SACxBA,EAAI,OAAO,SACX;AAAA,QACN,QAAQA,EAAI,SAAS,UAAU,CAAC,CAACA,EAAI,SAAS;AAAA,QAC9C,WACEA,EAAI,SAAS,UAAWA,EAAI,aAAa,UAAW;AAAA,QACtD,aAAaA,EAAI,SAAS,UAAUA,EAAI,cAAc;AAAA,QACtD,UAAUA,EAAI,SAAS,UAAWA,EAAI,YAAY,MAAO;AAAA,QACzD,aACEA,EAAI,SAAS,UAAUA,EAAI,gBAAgB,KAAQ;AAAA,QACrD,SAASA,EAAI,SAAS,UAAWA,EAAI,WAAW,IAAK;AAAA,QACrD,SAASA,EAAI,SAAS,UAAWA,EAAI,WAAW,IAAK;AAAA,MACjE,IACU;AAAA,MACJ,QAAQR,EAAM,OAAO,IAAI,CAAC,OAAO;AAAA,QAC/B,IAAI,EAAE;AAAA,QACN,MAAM,EAAE;AAAA,QACR,MAAMe,GAAuB,CAAC;AAAA,MACtC,EAAQ;AAAA,IACR;AAAA,EACE;AACA,SAAAhB,EAAK,aAAaK,GAElBL,EAAK,aAAa,MAAM;AACtB,IAAI,CAACC,EAAM,WAAW,CAACA,EAAM,aAAa,UAC1CgB,EAAShB,CAAK,GACdiB,EAAOjB,CAAK;AAAA,EACd,GACAD,EAAK,SAAS,MAAMmB,EAAOlB,CAAK,GAChCD,EAAK,UAAU,MAAMoB,EAAQnB,CAAK,GAClCD,EAAK,YAAY,MAAMqB,EAAUpB,CAAK,GACtCD,EAAK,UAAU,CAACsB,MAAMC,EAAatB,GAAOqB,CAAC,GAC3CtB,EAAK,cAAc,CAACwB,MAAOC,EAAiBxB,GAAOuB,CAAE,GACrDxB,EAAK,OAAO,MAAM0B,EAAazB,CAAK,GACpCD,EAAK,OAAO,MAAM2B,EAAa1B,CAAK,GAEpCD,EAAK,SAAS,CAAC4B,MACb3B,EAAM,cAAc,OAChB4B,GAA4B5B,GAAO2B,CAAG,IACtCE,EAAgB7B,GAAO2B,CAAG,GAChC5B,EAAK,OAAO,CAAC+B,MACX9B,EAAM,cAAc,OAChB+B,GAA0B/B,GAAO8B,CAAE,IACnCE,EAAchC,GAAO8B,CAAE,GAE7B/B,EAAK,cAAc,CAAC4B,MAAQE,EAAgB7B,GAAO2B,CAAG,GACtD5B,EAAK,YAAY,CAAC+B,MAAOE,EAAchC,GAAO8B,CAAE,GAChD/B,EAAK,kBAAkB,MAAMkC,EAAyBjC,CAAK,GAC3DD,EAAK,YAAY,MAAMmC,EAAmBlC,CAAK,GAC/CD,EAAK,aAAa,MAAMoC,EAAoBnC,CAAK,GACjDD,EAAK,eAAe,CAACqC,MAAMC,EAAsBrC,GAAOoC,CAAC,GACzDrC,EAAK,iBAAiB,MAAMuC,EAA0BtC,CAAK,GAC3DD,EAAK,aAAa,CAACwC,MAAQC,EAAoBxC,GAAOuC,CAAG,GACzDxC,EAAK,cAAc,CAAC0C,MAAS;AAC3B,IAAAzC,EAAM,WAAWyC,KAAQ,CAAA,GACzBtC,EAAM;AAAA,EACR,GACAJ,EAAK,cAAc,CAACwB,MAAOmB,EAAyB1C,GAAOuB,CAAE,GAC7DxB,EAAK,iBAAiB,MAAM4C,EAA4B3C,CAAK,GAC7DD,EAAK,oBAAoB,MAAM6C,EAA+B5C,CAAK,GACnED,EAAK,uBAAuB,MAAM8C,EAAkC7C,CAAK,GACzED,EAAK,qBAAqB,MAAM+C,EAAgC9C,CAAK,GACrED,EAAK,gBAAgB,CAACgD,GAAKC,MACzBC,EAA2BjD,GAAO+C,GAAKC,CAAK,GAC9CjD,EAAK,YAAY,CAACwB,MAAO2B,EAAuBlD,GAAOuB,CAAE,GACzDxB,EAAK,kBAAkB,CAACwB,MAAO4B,EAA6BnD,GAAOuB,CAAE,GACrExB,EAAK,eAAe,CAACqC,MAAMgB,EAA0BpD,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMiB,EAA2BrD,GAAOoC,CAAC,GAC/DrC,EAAK,eAAe,CAACqC,MAAMkB,EAA0BtD,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMmB,EAA2BvD,GAAOoC,CAAC,GAC/DrC,EAAK,cAAc,CAACqC,MAAMoB,EAAyBxD,GAAOoC,CAAC,GAC3DrC,EAAK,cAAc,CAACqC,MAAMqB,EAAyBzD,GAAOoC,CAAC,GAC3DrC,EAAK,eAAe,CAACqC,MAAMsB,GAA0B1D,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMuB,GAA2B3D,GAAOoC,CAAC,GAC/DrC,EAAK,eAAe,CAACqC,MAAMwB,GAA0B5D,GAAOoC,CAAC,GAC7DrC,EAAK,mBAAmB,CAACqC,MAAMyB,GAA8B7D,GAAOoC,CAAC,GACrErC,EAAK,kBAAkB,CAACqC,MAAM0B,GAA6B9D,GAAOoC,CAAC,GACnErC,EAAK,kBAAkB,CAACqC,MAAM2B,GAA6B/D,GAAOoC,CAAC,GACnErC,EAAK,sBAAsB,CAACqC,MAAM4B,GAAiChE,GAAOoC,CAAC,GAC3ErC,EAAK,sBAAsB,CAACqC,MAAM6B,GAAiCjE,GAAOoC,CAAC,GAC3ErC,EAAK,uBAAuB,CAACqC,MAAM8B,GAAkClE,GAAOoC,CAAC,GAC7ErC,EAAK,mBAAmB,CAACqC,MAAM+B,GAA8BnE,GAAOoC,CAAC,GACrErC,EAAK,mBAAmB,CAACqC,MAAMgC,GAA8BpE,GAAOoC,CAAC,GACrErC,EAAK,uBAAuB,CAACqC,MAAMiC,GAAkCrE,GAAOoC,CAAC,GAC7ErC,EAAK,wBAAwB,CAACqC,MAC5BkC,GAAmCtE,GAAOoC,CAAC,GAC7CrC,EAAK,uBAAuB,CAACqC,MAAMmC,GAAkCvE,GAAOoC,CAAC,GAC7ErC,EAAK,oBAAoB,CAACqC,MAAMoC,GAA+BxE,GAAOoC,CAAC,GACvErC,EAAK,uBAAuB,CAACqC,MAAMqC,GAAkCzE,GAAOoC,CAAC,GAC7ErC,EAAK,yBAAyB,CAACqC,MAC7BsC,GAAoC1E,GAAOoC,CAAC,GAC9CrC,EAAK,sBAAsB,CAACqC,MAAMuC,GAAiC3E,GAAOoC,CAAC,GAC3ErC,EAAK,yBAAyB,CAACqC,MAC7BwC,GAAoC5E,GAAOoC,CAAC,GAC9CrC,EAAK,qBAAqB,CAACqC,MAAMyC,GAAgC7E,GAAOoC,CAAC,GACzErC,EAAK,qBAAqB,CAACqC,MAAM0C,GAAgC9E,GAAOoC,CAAC,GACzErC,EAAK,oBAAoB,CAACqC,MAAM2C,GAA+B/E,GAAOoC,CAAC,GACvErC,EAAK,uBAAuB,MAAMiF,GAAWhF,CAAK,GAElDD,EAAK,aAAa,MAAMkF,EAAWjF,GAAO,EAAK,GAC/CD,EAAK,YAAY,MAAMkF,EAAWjF,GAAO,EAAI,GAC7CD,EAAK,gBAAgB,MAAMmF,GAAclF,CAAK,GAC9CD,EAAK,aAAa,MAAMoF,GAAWnF,CAAK,GACxCD,EAAK,oBAAoB,CAACqF,MAASC,GAA8BrF,GAAOoF,CAAI,GAC5ErF,EAAK,mBAAmB,CAACwB,MAAO+D,GAA6BtF,GAAOuB,CAAE,GACtExB,EAAK,mBAAmB,CAACwB,MAAOgE,GAA6BvF,GAAOuB,CAAE,GACtExB,EAAK,mBAAmB,CAACwB,GAAI6D,MAC3BI,GAA6BxF,GAAOuB,GAAI6D,CAAI,GAC9CrF,EAAK,iBAAiB,OAAOC,EAAM,eAAe,CAAA,GAAI,MAAK,GAC3DD,EAAK,iBAAiB,CAAC0C,MAASgD,GAA2BzF,GAAOyC,CAAI,GACtE1C,EAAK,wBAAwB,CAAC2F,MAC5BC,GAAkC3F,GAAO0F,CAAK,GAChD3F,EAAK,oBAAoB,CAAC6F,MAAMC,GAA8B7F,GAAO4F,CAAC,GACtE7F,EAAK,OAAO,MAAM+F,GAAkB9F,GAAOD,CAAI,GAC/CA,EAAK,SAAS,CAACgG,OACbA,IAAOA,KAAQ,CAAA,GACV/F,EAAM,aAAa,QACjBgG,GAAmBhG,GAAO+F,EAAK,MAAMA,EAAK,OAAO,IADlB,QAAQ,QAAQ,IAAI,IAG5DhG,EAAK,WAAW,MAAMkG,EAAUjG,CAAK,GACrCD,EAAK,QAAQ,CAACmG,MAASC,GAAYnG,GAAOD,GAAMmG,CAAI,GACpDnG,EAAK,WAAW,CAACqG,MACfC;AAAAA,IAA2BrG;AAAA,IAAOoG;AAAA,IAAM,CAACE,MACvCC,EAAuBvG,GAAOsG,CAAC;AAAA,EACrC,GAEEvG,EAAK,OAAO,CAACgG,MAAS;AAEpB,QADAA,IAAOA,KAAQ,CAAA,GACX/F,EAAM;AAKR,aAAAG,EAAM,GACNqG,EAAKxG,GAAO,QAAQ,CAAA,CAAE,GACfD;AAET,IAAAC,EAAM,aAAa;AACnB,UAAMyG,IAAS,MAAM;AACnB,UAAI;AACF,QAAIzG,EAAM,WAAWA,EAAM,aAAa,UACtC0G,EAAe1G,CAAK,GACpBiB,EAAOjB,CAAK;AAAA,MAEhB,SAASa,GAAG;AAGV,QAAAnB,EAAY,yBAAyBmB,CAAC;AAAA,MACxC;AACA,MAAAV,EAAM,GACNqG,EAAKxG,GAAO,QAAQ,CAAA,CAAE;AAAA,IACxB;AACA,WAAI+F,EAAK,SACPY,EAAqB3G,GAAO+F,EAAK,KAAK,GACtC,WAAWU,GAAQ,CAAC,KACXV,EAAK,QACdM,EAA2BrG,GAAO+F,EAAK,OAAO,CAACO,MAAM;AACnDC,MAAAA,EAAuBvG,GAAOsG,CAAC,GAC/B,WAAWG,GAAQ,CAAC;AAAA,IACtB,CAAC,IAED,WAAWA,GAAQ,CAAC,GAEf1G;AAAA,EACT,GACAA,EAAK,QAAQ,MAAM;AACjB,IAAAC,EAAM,aAAa;AACnB,QAAI;AACFsC,MAAAA,EAA0BtC,CAAK;AAAA,IACjC,SAAS,GAAG;AACV,MAAAN,EAAY,0BAA0B,CAAC;AAAA,IACzC;AACA,WAAAS,EAAM,GACNqG,EAAKxG,GAAO,SAAS,CAAA,CAAE,GAChBD;AAAA,EACT,GACAA,EAAK,YAAY,CAACwC,OAChB8D;AAAAA,IAA2BrG;AAAA,IAAOuC;AAAA,IAAK,CAAC+D,MACtCC,EAAuBvG,GAAOsG,CAAC;AAAA,EACrC,GACWvG,IAETA,EAAK,YAAY,CAAC6G,OAChBD,EAAqB3G,GAAO4G,CAAC,GACtB7G,IAETA,EAAK,QAAQ,OACXC,EAAM,eAAe6G,EAAiB,GACtC7G,EAAM,iBAAiB,MACvBA,EAAM,SAAS,CAAA,GACfA,EAAM,aAAa,MACnBA,EAAM,YAAY,CAAA,GAClBA,EAAM,YAAY,CAAA,GAClBA,EAAM,OAAO,GACb8G,EAAe9G,CAAK,GACpBA,EAAM,aAAa,SACnBG,EAAM,GACCJ,IAETA,EAAK,SAAS,MAAMC,EAAM,YAC1BD,EAAK,UAAU,MAAM;AACnB,IAAIA,EAAK,eACP,SAAS,oBAAoB,WAAWA,EAAK,WAAW,GACtDA,EAAK,kBACP,OAAO,oBAAoB,UAAUA,EAAK,cAAc,GAC1D,OAAO,KAAKC,EAAM,SAAS,EAAE,QAAQ,CAAC+G,MAAO/G,EAAM,UAAU+G,CAAC,IAAI,CAAA,CAAG;AAAA,EACvE,GAEIjH,EAAO,YAAUC,EAAK,KAAK,EAAE,OAAOD,EAAO,OAAO,OAAOA,EAAO,MAAK,CAAE,GAEpEC;AACT;AAEK,MAACiH,KAAsB,EAAE,SAASC,GAAS,QAAQpH,GAAY;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index133.es.js","sources":["../src/components/molecules/polar-slider/polar-slider.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const SliderBgColorVariants = cva('', {\n variants: {\n bgColor: {\n success: 'bg-success-2',\n danger: 'bg-danger-2',\n stroke: 'bg-light-4',\n },\n },\n defaultVariants: {\n bgColor: 'success',\n },\n})\n"],"names":["SliderBgColorVariants","cva"],"mappings":";AAEO,MAAMA,IAAwBC,EAAI,IAAI;AAAA,EAC3C,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,iBAAiB;AAAA,IACf,SAAS;AAAA,EAAA;AAEb,CAAC;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import e from "react";
|
|
2
|
-
import { FONT_FAMILY as v } from "./
|
|
3
|
-
import { _Dialog as N } from "./
|
|
2
|
+
import { FONT_FAMILY as v } from "./index166.es.js";
|
|
3
|
+
import { _Dialog as N } from "./index43.es.js";
|
|
4
4
|
import { X as w, ChevronLeft as S, ChevronRight as C } from "lucide-react";
|
|
5
|
-
import { Typography as i } from "./
|
|
5
|
+
import { Typography as i } from "./index19.es.js";
|
|
6
6
|
import { ResponsiveContainer as d, BarChart as u, CartesianGrid as f, XAxis as g, YAxis as h, Tooltip as p, Bar as E } from "recharts";
|
|
7
|
-
import { trendBoxStyles as k, trendValueStyles as F } from "./
|
|
7
|
+
import { trendBoxStyles as k, trendValueStyles as F } from "./index167.es.js";
|
|
8
8
|
const I = ({
|
|
9
9
|
data: r,
|
|
10
10
|
onToggle: t,
|
|
@@ -274,4 +274,4 @@ export {
|
|
|
274
274
|
K as StoreInsightsSection,
|
|
275
275
|
R as StoreOverviewSection
|
|
276
276
|
};
|
|
277
|
-
//# sourceMappingURL=
|
|
277
|
+
//# sourceMappingURL=index134.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es136.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-components.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { ReportSnippetViewNS } from './report-snippet-view.types'\n\nimport { FONT_FAMILY } from '@/lib/constants'\n\nimport { Dialog } from '@/components/organisms/dialog'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Typography } from '@/components/atoms/typography'\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from 'recharts'\nimport { trendBoxStyles, trendValueStyles } from './report-snippet-view-style'\n\nconst ReportSnippetGalleryView: FC<{\n onToggle: () => void\n isOpen: boolean\n data?: ReportSnippetViewNS.StreetViewData\n galleryActiveIndex: number\n setgalleryActiveIndex: React.Dispatch<React.SetStateAction<number>>\n}> = ({\n data,\n onToggle,\n isOpen,\n galleryActiveIndex,\n setgalleryActiveIndex,\n}) => {\n // Current active item\n\n const isDataAvailable = data && data.length\n\n // Handle next click\n const handleNext = () => {\n if (!data) return\n setgalleryActiveIndex((prevIndex) => (prevIndex + 1) % data?.length)\n }\n\n // Handle previous click\n const handlePrev = () => {\n if (!data) return\n setgalleryActiveIndex(\n (prevIndex) => (prevIndex - 1 + data.length) % data.length\n )\n }\n\n const handleThumbnailClick = (index: number) => {\n setgalleryActiveIndex(index)\n }\n\n const toggleGallery = () => {\n onToggle()\n }\n\n return (\n <Dialog\n open={isOpen}\n trigger={null}\n contentClassName=\"bg-transparent w-fit border-0\"\n onInteractOutside={toggleGallery}\n body={\n <div className=\"flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto\">\n <X\n size={24}\n color=\"white\"\n className=\"absolute z-50 cursor-pointer -right-10 -top-10\"\n onClick={toggleGallery}\n />\n\n {/* Main Carousel */}\n <div className=\"relative\">\n <div className=\"relative \">\n {isDataAvailable && (\n <img\n key={data[galleryActiveIndex].image_url}\n src={data[galleryActiveIndex].image_url}\n alt={`Street ${galleryActiveIndex + 1}`}\n className=\"w-[500px] max-h-[80vh] object-contain flex-shrink-0\"\n />\n )}\n </div>\n\n {/* Navigation Buttons */}\n <div className=\"relative top-[-50%] left-[-10%] flex row w-[120%] justify-between\">\n <div role=\"button\" tabIndex={0} onClick={handlePrev}>\n <ChevronLeft size={30} color=\"white\" />\n </div>\n <div role=\"button\" tabIndex={0} onClick={handleNext}>\n <ChevronRight size={30} color=\"white\" />\n </div>\n </div>\n </div>\n\n {/* Thumbnails */}\n <div className=\"flex justify-center p-2 mt-4 space-x-2 rounded-lg\">\n {isDataAvailable &&\n data.map((item, index) => (\n <img\n key={index}\n src={item.image_url}\n alt={`Thumbnail ${index + 1}`}\n onClick={() => handleThumbnailClick(index)}\n className={`w-20 h-auto rounded-lg cursor-pointer ${\n index === galleryActiveIndex\n ? 'ring-2 ring-primary-1'\n : 'ring-2 ring-transparent'\n } hover:ring-gray-300`}\n />\n ))}\n </div>\n </div>\n }\n />\n )\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nconst CustomTooltipFootfall = ({ active, payload, label, year }: any) => {\n if (active && payload && payload.length) {\n const year = payload[0]?.payload?.year\n const footfall = payload[0]?.value\n return (\n <div className=\"flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {`${label}'${year}`}\n </Typography>\n\n {/* Separator */}\n <div className=\"my-2 w-full h-px border border-stroke-1\" />\n\n {/* Footfall/Visits Information */}\n <div className=\"flex\">\n <div\n className=\"h-4 w-1 rounded-lg\"\n style={{ backgroundColor: '#6D48EF' }}\n />\n <Typography variant={'body6'} className=\"text-secondary mx-1\">\n Visits\n </Typography>\n <Typography variant={'body4'} className=\"text-secondary ml-auto\">\n {` ${footfall}`}\n </Typography>\n </div>\n </div>\n )\n }\n return null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CustomTooltipCannibalisation = ({ active, payload, label }: any) => {\n if (active && payload && payload.length) {\n const distance = payload[0]?.payload?.distance\n const cannibalisation = payload[0]?.value\n return (\n <div className=\"flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {\n <div className=\"flex h-full justify-between items-center p-2 gap-4\">\n <div>{label}</div>\n <div> {distance + 'km'}</div>\n </div>\n }\n </Typography>\n {/* Footfall/Visits Information */}\n <Typography\n variant={'body4'}\n className=\"text-normal text-danger-1 ml-auto p-2\"\n >\n {`${cannibalisation}%`}\n </Typography>\n </div>\n )\n }\n return null\n}\n\n{\n /*--------- Store insights ----------*/\n}\ninterface StoreInsightsSectionProps {\n insights: ReportSnippetViewNS.CatchmentInsights[]\n // customButton?: React.ReactNode\n}\n\nconst StoreInsightsSection: FC<StoreInsightsSectionProps> = ({ insights }) => {\n return (\n <div>\n <div className=\"flex flex-row mb-4 justify-between\">\n <Typography variant=\"body4\" className=\"text-light-2\">\n Store Insight:\n </Typography>\n </div>\n\n <div className=\"bg-light-2 p-3 border border-neutral-1 rounded-lg\">\n <Typography variant=\"body4\" className=\"text-light-2 mb-2\">\n Presence of other brands in catchment:\n </Typography>\n\n {/* Render store insights data */}\n <div className=\"flex gap-1 flex-wrap\">\n {insights.map((item) => (\n <div\n key={item.type}\n className=\"flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1\"\n >\n {/* Icon */}\n <img\n src={item.iconUrl}\n alt={`${item.type} Icon`}\n className=\"w-4 h-4\"\n />\n\n {/* Name and Count */}\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.count}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.type === 'competitor' ? 'Competitors' : 'Complementary'}\n </Typography>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*--------- Store Overview ----------*/\n}\ninterface StoreOverviewSectionProps {\n highlights: ReportSnippetViewNS.StoreHighlights[]\n}\n\nconst StoreOverviewSection: FC<StoreOverviewSectionProps> = ({\n highlights,\n}) => {\n return (\n <div>\n <Typography variant={'body4'} className=\"text-light-2 mb-2\">\n Store Overview:\n </Typography>\n <div className=\"bg-light-2 p-1 border border-neutral-1 rounded-lg\">\n <div className=\"flex justify-evenly items-center\">\n {highlights.map((item, index) => (\n <React.Fragment key={index}>\n <div className=\"flex flex-col items-center justify-center text-center gap-1 p-\">\n {/* Trend Box */}\n <div\n className={trendBoxStyles({\n trend: item.trend?.toString() as '1' | '-1' | '0' | null,\n })}\n >\n {item.trend === 1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg\"\n alt=\"High Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.trend === -1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg\"\n alt=\"Low Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.value && item.trend ? (\n <Typography\n variant=\"body5\"\n className={trendValueStyles({\n trend: item.trend?.toString() as\n | '1'\n | '-1'\n | '0'\n | null,\n })}\n >\n {`${item.value}%`}\n </Typography>\n ) : (\n <Typography variant=\"body5\" className=\"text-sm\">\n -\n </Typography>\n )}\n </div>\n\n {/* Name */}\n {item.name && (\n <Typography variant={'body6'} className=\"text-light-2\">\n {item.name}\n </Typography>\n )}\n </div>\n\n {/* Separator */}\n {index < highlights.length - 1 && (\n <div className=\"border-l border-stroke-light-1 h-20 mx-1\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*----------------- Footfall Trends ------------------*/\n}\ninterface FootfallChartSectionProps {\n data: ReportSnippetViewNS.FootfallChartData[]\n}\n\nconst FootfallChartSection: FC<FootfallChartSectionProps> = ({ data }) => {\n if (!data || data.every((item) => item.footfall === null)) {\n return null\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Footfall trends\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: -10,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"month\"\n style={{\n font: FONT_FAMILY,\n fontSize: '12px',\n fontWeight: '500',\n color: '#4A4A4A',\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'AVG FOOTFALL FOR A 3-MONTH PERIOD',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n />\n <Tooltip content={<CustomTooltipFootfall />} />\n <Bar\n dataKey=\"footfall\"\n fill=\"#6D48EF\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\n{\n /* -----------------Cannibalisation Effect------------------ */\n}\ninterface CannibalisationChartSectionProps {\n data: ReportSnippetViewNS.CannibalisationChartData[]\n}\n\nconst CannibalisationChartSection: FC<CannibalisationChartSectionProps> = ({\n data,\n}) => {\n if (!data || data.every((item) => item.cannibalisation === null)) {\n return null\n }\n const formatXAxisLabel = (label: string) => {\n const barCount = data.length\n let maxLength\n\n if (barCount <= 1) {\n maxLength = 50\n } else if (barCount <= 6) {\n maxLength = 22 - (barCount - 1) * 4\n } else {\n maxLength = 6\n }\n\n return label.length > maxLength ? `${label.slice(0, maxLength)}...` : label\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Cannibalisation effects\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: 5,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"store_name\"\n tickFormatter={formatXAxisLabel}\n tickMargin={10}\n tick={(props) => {\n const { x, y, payload } = props\n return (\n <text x={x} y={y} textAnchor={'end'} fill=\"#666\">\n <tspan x={x} style={{ fontSize: 12 }}>\n {formatXAxisLabel(payload.value)}\n </tspan>\n <tspan\n x={x}\n dy=\"1.5em\"\n style={{\n fontSize: 10,\n whiteSpace: 'nowrap',\n paddingTop: '2px',\n }}\n >\n {data[payload.index].distance + ' kms'}\n </tspan>\n </text>\n )\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'CANNIBALISATION IN %',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n domain={[0, 100]}\n />\n <Tooltip content={<CustomTooltipCannibalisation />} />\n <Bar\n dataKey=\"cannibalisation\"\n fill=\"#F93232\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport {\n ReportSnippetGalleryView,\n StoreInsightsSection,\n StoreOverviewSection,\n FootfallChartSection,\n CannibalisationChartSection,\n}\n"],"names":["ReportSnippetGalleryView","data","onToggle","isOpen","galleryActiveIndex","setgalleryActiveIndex","isDataAvailable","handleNext","prevIndex","handlePrev","handleThumbnailClick","index","toggleGallery","React","Dialog","X","ChevronLeft","ChevronRight","item","CustomTooltipFootfall","active","payload","label","year","footfall","Typography","CustomTooltipCannibalisation","distance","cannibalisation","StoreInsightsSection","insights","StoreOverviewSection","highlights","trendBoxStyles","trendValueStyles","FootfallChartSection","ResponsiveContainer","BarChart","CartesianGrid","XAxis","FONT_FAMILY","YAxis","val","Tooltip","Bar","CannibalisationChartSection","formatXAxisLabel","barCount","maxLength","props","x","y"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index134.es.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-components.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { ReportSnippetViewNS } from './report-snippet-view.types'\n\nimport { FONT_FAMILY } from '@/lib/constants'\n\nimport { Dialog } from '@/components/organisms/dialog'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Typography } from '@/components/atoms/typography'\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from 'recharts'\nimport { trendBoxStyles, trendValueStyles } from './report-snippet-view-style'\n\nconst ReportSnippetGalleryView: FC<{\n onToggle: () => void\n isOpen: boolean\n data?: ReportSnippetViewNS.StreetViewData\n galleryActiveIndex: number\n setgalleryActiveIndex: React.Dispatch<React.SetStateAction<number>>\n}> = ({\n data,\n onToggle,\n isOpen,\n galleryActiveIndex,\n setgalleryActiveIndex,\n}) => {\n // Current active item\n\n const isDataAvailable = data && data.length\n\n // Handle next click\n const handleNext = () => {\n if (!data) return\n setgalleryActiveIndex((prevIndex) => (prevIndex + 1) % data?.length)\n }\n\n // Handle previous click\n const handlePrev = () => {\n if (!data) return\n setgalleryActiveIndex(\n (prevIndex) => (prevIndex - 1 + data.length) % data.length\n )\n }\n\n const handleThumbnailClick = (index: number) => {\n setgalleryActiveIndex(index)\n }\n\n const toggleGallery = () => {\n onToggle()\n }\n\n return (\n <Dialog\n open={isOpen}\n trigger={null}\n contentClassName=\"bg-transparent w-fit border-0\"\n onInteractOutside={toggleGallery}\n body={\n <div className=\"flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto\">\n <X\n size={24}\n color=\"white\"\n className=\"absolute z-50 cursor-pointer -right-10 -top-10\"\n onClick={toggleGallery}\n />\n\n {/* Main Carousel */}\n <div className=\"relative\">\n <div className=\"relative \">\n {isDataAvailable && (\n <img\n key={data[galleryActiveIndex].image_url}\n src={data[galleryActiveIndex].image_url}\n alt={`Street ${galleryActiveIndex + 1}`}\n className=\"w-[500px] max-h-[80vh] object-contain flex-shrink-0\"\n />\n )}\n </div>\n\n {/* Navigation Buttons */}\n <div className=\"relative top-[-50%] left-[-10%] flex row w-[120%] justify-between\">\n <div role=\"button\" tabIndex={0} onClick={handlePrev}>\n <ChevronLeft size={30} color=\"white\" />\n </div>\n <div role=\"button\" tabIndex={0} onClick={handleNext}>\n <ChevronRight size={30} color=\"white\" />\n </div>\n </div>\n </div>\n\n {/* Thumbnails */}\n <div className=\"flex justify-center p-2 mt-4 space-x-2 rounded-lg\">\n {isDataAvailable &&\n data.map((item, index) => (\n <img\n key={index}\n src={item.image_url}\n alt={`Thumbnail ${index + 1}`}\n onClick={() => handleThumbnailClick(index)}\n className={`w-20 h-auto rounded-lg cursor-pointer ${\n index === galleryActiveIndex\n ? 'ring-2 ring-primary-1'\n : 'ring-2 ring-transparent'\n } hover:ring-gray-300`}\n />\n ))}\n </div>\n </div>\n }\n />\n )\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nconst CustomTooltipFootfall = ({ active, payload, label, year }: any) => {\n if (active && payload && payload.length) {\n const year = payload[0]?.payload?.year\n const footfall = payload[0]?.value\n return (\n <div className=\"flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {`${label}'${year}`}\n </Typography>\n\n {/* Separator */}\n <div className=\"my-2 w-full h-px border border-stroke-1\" />\n\n {/* Footfall/Visits Information */}\n <div className=\"flex\">\n <div\n className=\"h-4 w-1 rounded-lg\"\n style={{ backgroundColor: '#6D48EF' }}\n />\n <Typography variant={'body6'} className=\"text-secondary mx-1\">\n Visits\n </Typography>\n <Typography variant={'body4'} className=\"text-secondary ml-auto\">\n {` ${footfall}`}\n </Typography>\n </div>\n </div>\n )\n }\n return null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CustomTooltipCannibalisation = ({ active, payload, label }: any) => {\n if (active && payload && payload.length) {\n const distance = payload[0]?.payload?.distance\n const cannibalisation = payload[0]?.value\n return (\n <div className=\"flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {\n <div className=\"flex h-full justify-between items-center p-2 gap-4\">\n <div>{label}</div>\n <div> {distance + 'km'}</div>\n </div>\n }\n </Typography>\n {/* Footfall/Visits Information */}\n <Typography\n variant={'body4'}\n className=\"text-normal text-danger-1 ml-auto p-2\"\n >\n {`${cannibalisation}%`}\n </Typography>\n </div>\n )\n }\n return null\n}\n\n{\n /*--------- Store insights ----------*/\n}\ninterface StoreInsightsSectionProps {\n insights: ReportSnippetViewNS.CatchmentInsights[]\n // customButton?: React.ReactNode\n}\n\nconst StoreInsightsSection: FC<StoreInsightsSectionProps> = ({ insights }) => {\n return (\n <div>\n <div className=\"flex flex-row mb-4 justify-between\">\n <Typography variant=\"body4\" className=\"text-light-2\">\n Store Insight:\n </Typography>\n </div>\n\n <div className=\"bg-light-2 p-3 border border-neutral-1 rounded-lg\">\n <Typography variant=\"body4\" className=\"text-light-2 mb-2\">\n Presence of other brands in catchment:\n </Typography>\n\n {/* Render store insights data */}\n <div className=\"flex gap-1 flex-wrap\">\n {insights.map((item) => (\n <div\n key={item.type}\n className=\"flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1\"\n >\n {/* Icon */}\n <img\n src={item.iconUrl}\n alt={`${item.type} Icon`}\n className=\"w-4 h-4\"\n />\n\n {/* Name and Count */}\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.count}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.type === 'competitor' ? 'Competitors' : 'Complementary'}\n </Typography>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*--------- Store Overview ----------*/\n}\ninterface StoreOverviewSectionProps {\n highlights: ReportSnippetViewNS.StoreHighlights[]\n}\n\nconst StoreOverviewSection: FC<StoreOverviewSectionProps> = ({\n highlights,\n}) => {\n return (\n <div>\n <Typography variant={'body4'} className=\"text-light-2 mb-2\">\n Store Overview:\n </Typography>\n <div className=\"bg-light-2 p-1 border border-neutral-1 rounded-lg\">\n <div className=\"flex justify-evenly items-center\">\n {highlights.map((item, index) => (\n <React.Fragment key={index}>\n <div className=\"flex flex-col items-center justify-center text-center gap-1 p-\">\n {/* Trend Box */}\n <div\n className={trendBoxStyles({\n trend: item.trend?.toString() as '1' | '-1' | '0' | null,\n })}\n >\n {item.trend === 1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg\"\n alt=\"High Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.trend === -1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg\"\n alt=\"Low Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.value && item.trend ? (\n <Typography\n variant=\"body5\"\n className={trendValueStyles({\n trend: item.trend?.toString() as\n | '1'\n | '-1'\n | '0'\n | null,\n })}\n >\n {`${item.value}%`}\n </Typography>\n ) : (\n <Typography variant=\"body5\" className=\"text-sm\">\n -\n </Typography>\n )}\n </div>\n\n {/* Name */}\n {item.name && (\n <Typography variant={'body6'} className=\"text-light-2\">\n {item.name}\n </Typography>\n )}\n </div>\n\n {/* Separator */}\n {index < highlights.length - 1 && (\n <div className=\"border-l border-stroke-light-1 h-20 mx-1\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*----------------- Footfall Trends ------------------*/\n}\ninterface FootfallChartSectionProps {\n data: ReportSnippetViewNS.FootfallChartData[]\n}\n\nconst FootfallChartSection: FC<FootfallChartSectionProps> = ({ data }) => {\n if (!data || data.every((item) => item.footfall === null)) {\n return null\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Footfall trends\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: -10,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"month\"\n style={{\n font: FONT_FAMILY,\n fontSize: '12px',\n fontWeight: '500',\n color: '#4A4A4A',\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'AVG FOOTFALL FOR A 3-MONTH PERIOD',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n />\n <Tooltip content={<CustomTooltipFootfall />} />\n <Bar\n dataKey=\"footfall\"\n fill=\"#6D48EF\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\n{\n /* -----------------Cannibalisation Effect------------------ */\n}\ninterface CannibalisationChartSectionProps {\n data: ReportSnippetViewNS.CannibalisationChartData[]\n}\n\nconst CannibalisationChartSection: FC<CannibalisationChartSectionProps> = ({\n data,\n}) => {\n if (!data || data.every((item) => item.cannibalisation === null)) {\n return null\n }\n const formatXAxisLabel = (label: string) => {\n const barCount = data.length\n let maxLength\n\n if (barCount <= 1) {\n maxLength = 50\n } else if (barCount <= 6) {\n maxLength = 22 - (barCount - 1) * 4\n } else {\n maxLength = 6\n }\n\n return label.length > maxLength ? `${label.slice(0, maxLength)}...` : label\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Cannibalisation effects\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: 5,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"store_name\"\n tickFormatter={formatXAxisLabel}\n tickMargin={10}\n tick={(props) => {\n const { x, y, payload } = props\n return (\n <text x={x} y={y} textAnchor={'end'} fill=\"#666\">\n <tspan x={x} style={{ fontSize: 12 }}>\n {formatXAxisLabel(payload.value)}\n </tspan>\n <tspan\n x={x}\n dy=\"1.5em\"\n style={{\n fontSize: 10,\n whiteSpace: 'nowrap',\n paddingTop: '2px',\n }}\n >\n {data[payload.index].distance + ' kms'}\n </tspan>\n </text>\n )\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'CANNIBALISATION IN %',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n domain={[0, 100]}\n />\n <Tooltip content={<CustomTooltipCannibalisation />} />\n <Bar\n dataKey=\"cannibalisation\"\n fill=\"#F93232\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport {\n ReportSnippetGalleryView,\n StoreInsightsSection,\n StoreOverviewSection,\n FootfallChartSection,\n CannibalisationChartSection,\n}\n"],"names":["ReportSnippetGalleryView","data","onToggle","isOpen","galleryActiveIndex","setgalleryActiveIndex","isDataAvailable","handleNext","prevIndex","handlePrev","handleThumbnailClick","index","toggleGallery","React","Dialog","X","ChevronLeft","ChevronRight","item","CustomTooltipFootfall","active","payload","label","year","footfall","Typography","CustomTooltipCannibalisation","distance","cannibalisation","StoreInsightsSection","insights","StoreOverviewSection","highlights","trendBoxStyles","trendValueStyles","FootfallChartSection","ResponsiveContainer","BarChart","CartesianGrid","XAxis","FONT_FAMILY","YAxis","val","Tooltip","Bar","CannibalisationChartSection","formatXAxisLabel","barCount","maxLength","props","x","y"],"mappings":";;;;;;;AAmBA,MAAMA,IAMD,CAAC;AAAA,EACJ,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,uBAAAC;AACF,MAAM;AAGJ,QAAMC,IAAkBL,KAAQA,EAAK,QAG/BM,IAAa,MAAM;AACvB,IAAKN,KACLI,EAAsB,CAACG,OAAeA,IAAY,KAAKP,GAAM,MAAM;AAAA,EACrE,GAGMQ,IAAa,MAAM;AACvB,IAAKR,KACLI;AAAA,MACE,CAACG,OAAeA,IAAY,IAAIP,EAAK,UAAUA,EAAK;AAAA,IAAA;AAAA,EAExD,GAEMS,IAAuB,CAACC,MAAkB;AAC9C,IAAAN,EAAsBM,CAAK;AAAA,EAC7B,GAEMC,IAAgB,MAAM;AAC1B,IAAAV,EAAA;AAAA,EACF;AAEA,SACEW,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,MAAMX;AAAA,MACN,SAAS;AAAA,MACT,kBAAiB;AAAA,MACjB,mBAAmBS;AAAA,MACnB,MACEC,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,4EAAA,GACbA,gBAAAA,EAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,OAAM;AAAA,UACN,WAAU;AAAA,UACV,SAASH;AAAA,QAAA;AAAA,MAAA,mCAIV,OAAA,EAAI,WAAU,cACbC,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,YAAA,GACZP,KACCO,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKZ,EAAKG,CAAkB,EAAE;AAAA,UAC9B,KAAKH,EAAKG,CAAkB,EAAE;AAAA,UAC9B,KAAK,UAAUA,IAAqB,CAAC;AAAA,UACrC,WAAU;AAAA,QAAA;AAAA,MAAA,CAGhB,GAGAS,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,sEAAA,GACbA,gBAAAA,EAAA,cAAC,OAAA,EAAI,MAAK,UAAS,UAAU,GAAG,SAASJ,EAAA,mCACtCO,GAAA,EAAY,MAAM,IAAI,OAAM,QAAA,CAAQ,CACvC,GACAH,gBAAAA,EAAA,cAAC,OAAA,EAAI,MAAK,UAAS,UAAU,GAAG,SAASN,EAAA,mCACtCU,GAAA,EAAa,MAAM,IAAI,OAAM,QAAA,CAAQ,CACxC,CACF,CACF,GAGAJ,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,oDAAA,GACZP,KACCL,EAAK,IAAI,CAACiB,GAAMP,MACdE,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKF;AAAA,UACL,KAAKO,EAAK;AAAA,UACV,KAAK,aAAaP,IAAQ,CAAC;AAAA,UAC3B,SAAS,MAAMD,EAAqBC,CAAK;AAAA,UACzC,WAAW,yCACTA,MAAUP,IACN,0BACA,yBACN;AAAA,QAAA;AAAA,MAAA,CAEH,CACL,CACF;AAAA,IAAA;AAAA,EAAA;AAIR,GAEMe,IAAwB,CAAC,EAAE,QAAAC,GAAQ,SAAAC,GAAS,OAAAC,GAAO,MAAAC,QAAgB;AACvE,MAAIH,KAAUC,KAAWA,EAAQ,QAAQ;AACvC,UAAME,IAAOF,EAAQ,CAAC,GAAG,SAAS,MAC5BG,IAAWH,EAAQ,CAAC,GAAG;AAC7B,WACER,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,wEAAA,GAEbA,gBAAAA,EAAA,cAACY,KAAW,SAAS,SAAS,WAAU,eAAA,GACrC,GAAGH,CAAK,IAAIC,CAAI,EACnB,GAGAV,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,2CAA0C,GAGzDA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GACbA,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,iBAAiB,UAAA;AAAA,MAAU;AAAA,IAAA,GAEtCA,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAS,SAAS,WAAU,yBAAsB,QAE9D,mCACCA,GAAA,EAAW,SAAS,SAAS,WAAU,4BACrC,IAAID,CAAQ,EACf,CACF,CACF;AAAA,EAEJ;AACA,SAAO;AACT,GAGME,IAA+B,CAAC,EAAE,QAAAN,GAAQ,SAAAC,GAAS,OAAAC,QAAiB;AACxE,MAAIF,KAAUC,KAAWA,EAAQ,QAAQ;AACvC,UAAMM,IAAWN,EAAQ,CAAC,GAAG,SAAS,UAChCO,IAAkBP,EAAQ,CAAC,GAAG;AACpC,WACER,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,gGAAA,GAEbA,gBAAAA,EAAA,cAACY,KAAW,SAAS,SAAS,WAAU,kBAEpCZ,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,qDAAA,GACbA,gBAAAA,EAAA,cAAC,OAAA,MAAKS,CAAM,GACZT,gBAAAA,EAAA,cAAC,OAAA,MAAI,KAAEc,IAAW,IAAK,CACzB,CAEJ,GAEAd,gBAAAA,EAAA;AAAA,MAACY;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAU;AAAA,MAAA;AAAA,MAET,GAAGG,CAAe;AAAA,IAAA,CAEvB;AAAA,EAEJ;AACA,SAAO;AACT,GAUMC,IAAsD,CAAC,EAAE,UAAAC,QAE3DjB,gBAAAA,EAAA,cAAC,OAAA,MACCA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,wCACbA,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAQ,SAAQ,WAAU,eAAA,GAAe,gBAErD,CACF,GAEAZ,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,oDAAA,GACbA,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAQ,SAAQ,WAAU,uBAAoB,wCAE1D,GAGAZ,gBAAAA,EAAA,cAAC,SAAI,WAAU,0BACZiB,EAAS,IAAI,CAACZ,MACbL,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAKK,EAAK;AAAA,IACV,WAAU;AAAA,EAAA;AAAA,EAGVL,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKK,EAAK;AAAA,MACV,KAAK,GAAGA,EAAK,IAAI;AAAA,MACjB,WAAU;AAAA,IAAA;AAAA,EAAA;AAAA,kCAIXO,GAAA,EAAW,SAAQ,SAAQ,WAAU,eAAA,GACnCP,EAAK,KACR;AAAA,EACAL,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,6DACZY,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCP,EAAK,SAAS,eAAe,gBAAgB,eAChD,CACF;AAAA,CAEH,CACH,CACF,CACF,GAWEa,IAAsD,CAAC;AAAA,EAC3D,YAAAC;AACF,MAEInB,gBAAAA,EAAA,cAAC,OAAA,MACCA,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAS,SAAS,WAAU,uBAAoB,iBAE5D,GACAZ,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,uDACbA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,mCAAA,GACZmB,EAAW,IAAI,CAACd,GAAMP,MACrBE,gBAAAA,EAAA,cAACA,EAAM,UAAN,EAAe,KAAKF,KACnBE,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,oEAEbA,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWoB,EAAe;AAAA,MACxB,OAAOf,EAAK,OAAO,SAAA;AAAA,IAAS,CAC7B;AAAA,EAAA;AAAA,EAEAA,EAAK,UAAU,KACdL,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAI;AAAA,MACJ,KAAI;AAAA,MACJ,WAAW;AAAA,IAAA;AAAA,EAAA;AAAA,EAGdK,EAAK,UAAU,MACdL,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAI;AAAA,MACJ,KAAI;AAAA,MACJ,WAAW;AAAA,IAAA;AAAA,EAAA;AAAA,EAGdK,EAAK,SAASA,EAAK,QAClBL,gBAAAA,EAAA;AAAA,IAACY;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWS,EAAiB;AAAA,QAC1B,OAAOhB,EAAK,OAAO,SAAA;AAAA,MAAS,CAK7B;AAAA,IAAA;AAAA,IAEA,GAAGA,EAAK,KAAK;AAAA,EAAA,IAGhBL,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAQ,SAAQ,WAAU,aAAU,GAEhD;AAAA,GAKHP,EAAK,QACJL,gBAAAA,EAAA,cAACY,GAAA,EAAW,SAAS,SAAS,WAAU,eAAA,GACrCP,EAAK,IACR,CAEJ,GAGCP,IAAQqB,EAAW,SAAS,KAC3BnB,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,2CAAA,CAA2C,CAE9D,CACD,CACH,CACF,CACF,GAWEsB,IAAsD,CAAC,EAAE,MAAAlC,QACzD,CAACA,KAAQA,EAAK,MAAM,CAACiB,MAASA,EAAK,aAAa,IAAI,IAC/C,uCAGN,OAAA,EAAI,WAAU,qEAEbL,gBAAAA,EAAA,cAACY,KAAW,SAAS,SAAS,WAAU,oBAAA,GAAoB,iBAE5D,GAGAZ,gBAAAA,EAAA,cAACuB,KAAoB,OAAM,QAAO,QAAQ,IAAA,GACxCvB,gBAAAA,EAAA;AAAA,EAACwB;AAAA,EAAA;AAAA,IACC,MAAApC;AAAA,IACA,QAAQ;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,IAER,SAAS;AAAA,EAAA;AAAA,EAETY,gBAAAA,EAAA,cAACyB,GAAA,EAAc,iBAAgB,QAAA,CAAQ;AAAA,EACvCzB,gBAAAA,EAAA;AAAA,IAAC0B;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAO;AAAA,QACL,MAAMC;AAAA,QACN,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EAAA;AAAA,EAEF3B,gBAAAA,EAAA;AAAA,IAAC4B;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,UAAU,QAAQ,YAAY,MAAA;AAAA,MACvC,eAAe,CAACC,MACVA,IAAM,MACD,GAAGA,IAAM,GAAO,MAErBA,IAAM,MACD,GAAGA,IAAM,GAAI,MAEfA;AAAA,MAET,OAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,QACV,IAAI;AAAA,QACJ,OAAO;AAAA,UACL,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IACF;AAAA,EAAA;AAAA,EAEF7B,gBAAAA,EAAA,cAAC8B,GAAA,EAAQ,SAAS9B,gBAAAA,EAAA,cAACM,OAAsB,GAAI;AAAA,EAC7CN,gBAAAA,EAAA;AAAA,IAAC+B;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,MACnB,OAAO,EAAE,QAAQ,UAAA;AAAA,IAAU;AAAA,EAAA;AAC7B,CAEJ,CACF,GAWEC,IAAoE,CAAC;AAAA,EACzE,MAAA5C;AACF,MAAM;AACJ,MAAI,CAACA,KAAQA,EAAK,MAAM,CAACiB,MAASA,EAAK,oBAAoB,IAAI;AAC7D,WAAO;AAET,QAAM4B,IAAmB,CAACxB,MAAkB;AAC1C,UAAMyB,IAAW9C,EAAK;AACtB,QAAI+C;AAEJ,WAAID,KAAY,IACdC,IAAY,KACHD,KAAY,IACrBC,IAAY,MAAMD,IAAW,KAAK,IAElCC,IAAY,GAGP1B,EAAM,SAAS0B,IAAY,GAAG1B,EAAM,MAAM,GAAG0B,CAAS,CAAC,QAAQ1B;AAAA,EACxE;AACA,yCACG,OAAA,EAAI,WAAU,qEAEbT,gBAAAA,EAAA,cAACY,KAAW,SAAS,SAAS,WAAU,oBAAA,GAAoB,yBAE5D,GAGAZ,gBAAAA,EAAA,cAACuB,KAAoB,OAAM,QAAO,QAAQ,IAAA,GACxCvB,gBAAAA,EAAA;AAAA,IAACwB;AAAA,IAAA;AAAA,MACC,MAAApC;AAAA,MACA,QAAQ;AAAA,QACN,KAAK;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,SAAS;AAAA,IAAA;AAAA,IAETY,gBAAAA,EAAA,cAACyB,GAAA,EAAc,iBAAgB,QAAA,CAAQ;AAAA,IACvCzB,gBAAAA,EAAA;AAAA,MAAC0B;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,eAAeO;AAAA,QACf,YAAY;AAAA,QACZ,MAAM,CAACG,MAAU;AACf,gBAAM,EAAE,GAAAC,GAAG,GAAAC,GAAG,SAAA9B,EAAA,IAAY4B;AAC1B,iBACEpC,gBAAAA,EAAA,cAAC,UAAK,GAAAqC,GAAM,GAAAC,GAAM,YAAY,OAAO,MAAK,UACxCtC,gBAAAA,EAAA,cAAC,SAAA,EAAM,GAAAqC,GAAM,OAAO,EAAE,UAAU,GAAA,KAC7BJ,EAAiBzB,EAAQ,KAAK,CACjC,GACAR,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,GAAAqC;AAAA,cACA,IAAG;AAAA,cACH,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,YAAY;AAAA,gBACZ,YAAY;AAAA,cAAA;AAAA,YACd;AAAA,YAECjD,EAAKoB,EAAQ,KAAK,EAAE,WAAW;AAAA,UAAA,CAEpC;AAAA,QAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFR,gBAAAA,EAAA;AAAA,MAAC4B;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,UAAU,QAAQ,YAAY,MAAA;AAAA,QACvC,eAAe,CAACC,MACVA,IAAM,MACD,GAAGA,IAAM,GAAO,MAErBA,IAAM,MACD,GAAGA,IAAM,GAAI,MAEfA;AAAA,QAET,OAAO;AAAA,UACL,OAAO;AAAA,UACP,OAAO;AAAA,UACP,UAAU;AAAA,UACV,IAAI;AAAA,UACJ,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QAEF,QAAQ,CAAC,GAAG,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjB7B,gBAAAA,EAAA,cAAC8B,GAAA,EAAQ,SAAS9B,gBAAAA,EAAA,cAACa,OAA6B,GAAI;AAAA,IACpDb,gBAAAA,EAAA;AAAA,MAAC+B;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,QACnB,OAAO,EAAE,QAAQ,UAAA;AAAA,MAAU;AAAA,IAAA;AAAA,EAC7B,CAEJ,CACF;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index135.es.js","sources":["../src/components/molecules/single-combobox/single-combobox.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const ComboBoxStates = cva('w-full', {\n variants: {\n isOpen: {\n true: 'ring-4 ring-primary-1 border-primary-2 text-light-1',\n },\n isValue: {\n true: 'text-light-1',\n false: 'text-light-4',\n },\n },\n compoundVariants: [\n // {\n // isOpen: true,\n // isValue: true,\n // className: 'border-primary-2',\n // },\n {\n isOpen: false,\n isValue: true,\n className: 'border-neutral-2',\n },\n ],\n})\n"],"names":["ComboBoxStates","cva"],"mappings":";AAEO,MAAMA,IAAiBC,EAAI,UAAU;AAAA,EAC1C,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,IAER,SAAS;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMhB;AAAA,MACE,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index136.es.js","sources":["../src/components/molecules/creatable-multi-combobox/creatable-multi-combobox.types.ts"],"sourcesContent":["import { PopoverContent } from '@/components/unstyled/popover/popover-components'\nimport React from 'react'\n\nexport type CreatableOption = {\n id: string\n name: string\n disabled?: boolean\n icon?: React.ReactElement\n}\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<\n typeof PopoverContent\n>\n\n/** Replaces {{fieldId}} in URL with urlTemplateData[fieldId] */\nexport function interpolateUrl(\n url: string,\n data: Record<string, unknown>\n): string {\n return url.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const val = data[key]\n return val != null ? String(val) : ''\n })\n}\n\nexport type CreatableMultiComboboxPropsType = {\n /** API URL to fetch options (POST). Supports {{fieldId}} for form value interpolation. Ignored if fetchOptions provided */\n optionsUrl?: string\n /** API URL to create new option (POST). Supports {{fieldId}} for form value interpolation. Ignored if createOption provided */\n createOptionUrl?: string\n /** Override: custom fetch for options. When provided, optionsUrl is ignored */\n fetchOptions?: () => Promise<CreatableOption[]>\n /** Override: custom create handler. When provided, createOptionUrl is ignored */\n createOption?: (value: string) => Promise<CreatableOption>\n /** Headers to include in API requests (e.g. Authorization from cookie). Can be sync or async */\n requestHeaders?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>)\n /** Request body for fetch options API. When provided, overrides default { ...urlTemplateData, fieldId } */\n optionsRequestBody?: Record<string, unknown>\n /** Request body for create/upsert option API. Merged with { [createOptionValueKey]: value }. E.g. { type: \"zone\" } */\n createOptionRequestBody?: Record<string, unknown>\n /** Key for the typed value in create body. Default \"value\". Use \"email\" if API expects that key */\n createOptionValueKey?: string\n /** Extra body fields for create (e.g. { email: userEmail } from cookie). Merged last */\n createOptionExtraBody?:\n | Record<string, unknown>\n | (() => Record<string, unknown> | Promise<Record<string, unknown>>)\n /** When true, createOptionExtraBody is not merged (use when value key is \"email\" and extra would conflict) */\n skipCreateOptionExtraBody?: boolean\n /** Form values for URL interpolation (e.g. {{country}} -> values.country) */\n urlTemplateData?: Record<string, unknown>\n value: string[]\n fieldId: string\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n addCustomMessage?: (typedValue: string) => string\n /** Minimum number of values that must be selected */\n minSelected?: number\n /** Maximum number of values that can be selected */\n maxSelected?: number\n onChange: (value: string[]) => void\n container?: Element | null | undefined\n}\n"],"names":["interpolateUrl","url","data","_","key","val"],"mappings":"AAeO,SAASA,EACdC,GACAC,GACQ;AACR,SAAOD,EAAI,QAAQ,kBAAkB,CAACE,GAAGC,MAAQ;AAC/C,UAAMC,IAAMH,EAAKE,CAAG;AACpB,WAAOC,KAAO,OAAO,OAAOA,CAAG,IAAI;AAAA,EACrC,CAAC;AACH;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import e, { forwardRef as l, useContext as o, createContext as s } from "react";
|
|
2
|
-
import { StepItemStatus as n } from "./
|
|
3
|
-
import { Typography as i } from "./
|
|
4
|
-
import { cn as p } from "./
|
|
5
|
-
import { StepItemVariants as u } from "./
|
|
2
|
+
import { StepItemStatus as n } from "./index33.es.js";
|
|
3
|
+
import { Typography as i } from "./index19.es.js";
|
|
4
|
+
import { cn as p } from "./index91.es.js";
|
|
5
|
+
import { StepItemVariants as u } from "./index168.es.js";
|
|
6
6
|
const m = s(null), h = l(
|
|
7
7
|
({ children: a, steps: t, id: r }, c) => /* @__PURE__ */ e.createElement(m.Provider, { value: t }, /* @__PURE__ */ e.createElement("div", { className: "w-[100%]", ref: c, id: r }, a))
|
|
8
8
|
), w = () => {
|
|
@@ -42,4 +42,4 @@ export {
|
|
|
42
42
|
m as StepperContext,
|
|
43
43
|
h as StepperProvider
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=
|
|
45
|
+
//# sourceMappingURL=index137.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index137.es.js","sources":["../src/components/molecules/stepper/stepper-components.tsx"],"sourcesContent":["import React, {\n PropsWithChildren,\n createContext,\n forwardRef,\n useContext,\n} from 'react'\nimport { StepItemStatus, StepperItemProps, StepperValue } from './stepper.type'\nimport { Typography } from '../../atoms/typography'\nimport { cn } from '@/lib/utils'\nimport { StepItemVariants } from './stepper.styles'\n\ninterface StepperProviderProps extends PropsWithChildren {\n steps: StepperValue[] // Add a steps prop to pass the steps array\n id?: string\n}\n\nconst StepperContext = createContext<StepperValue[] | null>(null) // Context will hold an array of strings\n\nconst StepperProvider = forwardRef<HTMLDivElement, StepperProviderProps>(\n ({ children, steps, id }, ref) => {\n return (\n <StepperContext.Provider value={steps}>\n <div className={'w-[100%]'} ref={ref} id={id}>\n {children}\n </div>\n </StepperContext.Provider>\n )\n }\n)\n\nconst StepGroup = () => {\n const steps = useContext(StepperContext) // Accessing the steps array from context\n\n return (\n <div className=\"flex justify-between items-center w-[100%]\">\n {steps?.map((step, index) => (\n <>\n <StepItem\n key={index}\n value={step}\n variant={step?.status ?? StepItemStatus.PENDING}\n />\n {index !== steps.length - 1 && (\n <div\n className={` w-5 grow border-b-2 ${step?.status == StepItemStatus.COMPLETED ? 'border-primary-2' : 'border-neutral-2'}`}\n />\n )}\n </>\n ))}\n </div>\n )\n}\n\n// individual step item and styles\nconst StepItem = ({ value, ...props }: StepperItemProps) => {\n const { variant } = props\n return (\n <div className={cn(StepItemVariants({ variant }))}>\n {variant !== StepItemStatus.COMPLETED ? (\n <Typography\n variant={'body4'}\n style={{ textAlign: 'center', height: 'max-content' }}\n >\n {value?.label}\n </Typography>\n ) : (\n <>\n <div>\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/check_white_e0c342eeb9.svg\"\n alt=\"check-mark-icon\"\n />\n </div>\n </>\n )}\n </div>\n )\n}\n\nexport { StepperProvider, StepperContext, StepGroup }\n"],"names":["StepperContext","createContext","StepperProvider","forwardRef","children","steps","id","ref","React","StepGroup","useContext","step","index","StepItem","StepItemStatus","value","props","variant","cn","StepItemVariants","Typography"],"mappings":";;;;;AAgBA,MAAMA,IAAiBC,EAAqC,IAAI,GAE1DC,IAAkBC;AAAA,EACtB,CAAC,EAAE,UAAAC,GAAU,OAAAC,GAAO,IAAAC,EAAA,GAAMC,MAEtBC,gBAAAA,EAAA,cAACR,EAAe,UAAf,EAAwB,OAAOK,KAC9BG,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAW,YAAY,KAAAD,GAAU,IAAAD,EAAA,GACnCF,CACH,CACF;AAGN,GAEMK,IAAY,MAAM;AACtB,QAAMJ,IAAQK,EAAWV,CAAc;AAEvC,SACEQ,gBAAAA,EAAA,cAAC,SAAI,WAAU,6CAAA,GACZH,GAAO,IAAI,CAACM,GAAMC,MACjBJ,gBAAAA,EAAA,cAAAA,EAAA,UAAA,MACEA,gBAAAA,EAAA;AAAA,IAACK;AAAA,IAAA;AAAA,MACC,KAAKD;AAAA,MACL,OAAOD;AAAA,MACP,SAASA,GAAM,UAAUG,EAAe;AAAA,IAAA;AAAA,EAAA,GAEzCF,MAAUP,EAAM,SAAS,KACxBG,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,wBAAwBG,GAAM,UAAUG,EAAe,YAAY,qBAAqB,kBAAkB;AAAA,IAAA;AAAA,EAAA,CAG3H,CACD,CACH;AAEJ,GAGMD,IAAW,CAAC,EAAE,OAAAE,GAAO,GAAGC,QAA8B;AAC1D,QAAM,EAAE,SAAAC,MAAYD;AACpB,SACER,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAWU,EAAGC,EAAiB,EAAE,SAAAF,EAAA,CAAS,CAAC,EAAA,GAC7CA,MAAYH,EAAe,YAC1BN,gBAAAA,EAAA;AAAA,IAACY;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,OAAO,EAAE,WAAW,UAAU,QAAQ,cAAA;AAAA,IAAc;AAAA,IAEnDL,GAAO;AAAA,EAAA,IAGVP,gBAAAA,EAAA,cAAAA,EAAA,UAAA,MACEA,gBAAAA,EAAA,cAAC,OAAA,MACCA,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAI;AAAA,MACJ,KAAI;AAAA,IAAA;AAAA,EAAA,CAER,CACF,CAEJ;AAEJ;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as e from "react";
|
|
2
2
|
import { ChevronLeft as r, ChevronRight as s, MoreHorizontal as l } from "lucide-react";
|
|
3
|
-
import { Button as n } from "./
|
|
4
|
-
import { Typography as o } from "./
|
|
3
|
+
import { Button as n } from "./index9.es.js";
|
|
4
|
+
import { Typography as o } from "./index19.es.js";
|
|
5
5
|
const m = ({ className: a, ...t }) => /* @__PURE__ */ e.createElement(
|
|
6
6
|
"nav",
|
|
7
7
|
{
|
|
@@ -37,4 +37,4 @@ export {
|
|
|
37
37
|
P as PaginationNext,
|
|
38
38
|
p as PaginationPrevious
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=index138.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index138.es.js","sources":["../src/components/molecules/pagination/pagination-components.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { Button } from '@/components/atoms/button'\nimport { Typography } from '@/components/atoms/typography'\n\n// import { ButtonProps } from 'geoiq-frontend-ui-kit'\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={`mx-auto flex w-full justify-center ${className}`}\n {...props}\n />\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<'ul'>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={`flex flex-row items-center gap-1 ${className}`}\n {...props}\n />\n))\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<'li'>\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={className} {...props} />\n))\nPaginationItem.displayName = 'PaginationItem'\n\n// type PaginationLinkProps = RemixLinkProps &\n// React.RefAttributes<HTMLAnchorElement>\n// Pick<ButtonProps, 'size'> &\n\n// const PaginationLink = (props: PaginationLinkProps) => <Link {...props} />\n\n// PaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <ChevronLeft className=\"w-4 h-4\" />\n <Typography variant=\"body4\">Previous</Typography>\n </Button>\n)\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <Typography variant=\"body4\">Next</Typography>\n <ChevronRight className=\"w-4 h-4\" />\n </Button>\n)\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <MoreHorizontal className=\"w-4 h-4 stroke-light-1\" />\n </Button>\n)\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n // PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n"],"names":["Pagination","className","props","React","PaginationContent","ref","PaginationItem","PaginationPrevious","Button","ChevronLeft","Typography","PaginationNext","ChevronRight","PaginationEllipsis","MoreHorizontal"],"mappings":";;;;AAOA,MAAMA,IAAa,CAAC,EAAE,WAAAC,GAAW,GAAGC,QAClC,gBAAAC,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,cAAW;AAAA,IACX,WAAW,sCAAsCF,CAAS;AAAA,IACzD,GAAGC;AAAA,EAAA;AACN;AAEFF,EAAW,cAAc;AAEzB,MAAMI,IAAoBD,EAAM,WAG9B,CAAC,EAAE,WAAAF,GAAW,GAAGC,EAAA,GAASG,MAC1B,gBAAAF,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAE;AAAA,IACA,WAAW,oCAAoCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDE,EAAkB,cAAc;AAEhC,MAAME,IAAiBH,EAAM,WAG3B,CAAC,EAAE,WAAAF,GAAW,GAAGC,KAASG,sCACzB,MAAA,EAAG,KAAAA,GAAU,WAAAJ,GAAuB,GAAGC,GAAO,CAChD;AACDI,EAAe,cAAc;AAU7B,MAAMC,IAAqB,CAACL,MAC1B,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,KACxC,gBAAAC,EAAA,cAACM,GAAA,EAAY,WAAU,UAAA,CAAU,mCAChCC,GAAA,EAAW,SAAQ,QAAA,GAAQ,UAAQ,CACtC;AAEFH,EAAmB,cAAc;AAEjC,MAAMI,IAAiB,CAACT,MACtB,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,KACxC,gBAAAC,EAAA,cAACO,GAAA,EAAW,SAAQ,QAAA,GAAQ,MAAI,GAChC,gBAAAP,EAAA,cAACS,GAAA,EAAa,WAAU,UAAA,CAAU,CACpC;AAEFD,EAAe,cAAc;AAE7B,MAAME,IAAqB,CAACX,MAC1B,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,EAAA,GACxC,gBAAAC,EAAA,cAACW,GAAA,EAAe,WAAU,0BAAyB,CACrD;AAEFD,EAAmB,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index139.es.js","sources":["../src/components/molecules/alert/alert.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const AlertVariants = cva(\n 'relative rounded-xl flex flex-row h-full items-start gap-2 border px-4 py-4 text-sm ',\n {\n variants: {\n variant: {\n info: ' text-text4 dark:border-danger [&>svg]:text-danger bg-info-1',\n success:\n 'text-text4 dark:border-danger [&>svg]:text-danger bg-success-1',\n warning:\n 'text-text4 dark:border-danger [&>svg]:text-danger bg-warning-1 ',\n error:\n ' text-text4 dark:border-danger [&>svg]:text-danger bg-danger-1',\n default: 'text-text4 bg-background text-foreground',\n },\n shortContent: {\n true: 'items-center flex flex-row gap-3',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n }\n)\n\nexport const AlertContentVariants = cva('', {\n variants: {\n shortContent: {\n true: 'justify-between w-full items-center flex flex-row gap-3',\n false: 'flex flex-col gap-2 justify-start items-start',\n },\n },\n defaultVariants: {\n shortContent: false,\n },\n})\n\nexport const AlertButtonVariants = cva(' max-w-[fit-content] ', {\n variants: {\n shortContent: {\n true: 'bg-rest-s1',\n false: 'bg-rest-s1',\n },\n },\n defaultVariants: {\n shortContent: false,\n },\n})\n"],"names":["AlertVariants","cva","AlertContentVariants","AlertButtonVariants"],"mappings":";AAEO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SACE;AAAA,QACF,SACE;AAAA,QACF,OACE;AAAA,QACF,SAAS;AAAA,MAAA;AAAA,MAEX,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ,GAEaC,IAAuBD,EAAI,IAAI;AAAA,EAC1C,UAAU;AAAA,IACR,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,cAAc;AAAA,EAAA;AAElB,CAAC,GAEYE,IAAsBF,EAAI,yBAAyB;AAAA,EAC9D,UAAU;AAAA,IACR,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,cAAc;AAAA,EAAA;AAElB,CAAC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn as i } from "./
|
|
1
|
+
import { cn as i } from "./index91.es.js";
|
|
2
2
|
import m from "react";
|
|
3
3
|
function a({
|
|
4
4
|
className: t,
|
|
@@ -16,4 +16,4 @@ function a({
|
|
|
16
16
|
export {
|
|
17
17
|
a as Skeleton
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=index14.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index14.es.js","sources":["../src/components/atoms/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport React from 'react'\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('animate-pulse rounded-md bg-light-4', className)}\n id={props.id}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"],"names":["Skeleton","className","props","React","cn"],"mappings":";;AAGA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACEC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,uCAAuCH,CAAS;AAAA,MAC9D,IAAIC,EAAM;AAAA,MACT,GAAGA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { cva as l } from "class-variance-authority";
|
|
2
|
+
const e = l(
|
|
3
|
+
"w-[960px] max-w-[95vw] gap-0 overflow-hidden rounded-2xl border-0 p-0"
|
|
4
|
+
), r = l(
|
|
5
|
+
"flex w-full max-lg:flex-col lg:min-h-[491px] lg:flex-row"
|
|
6
|
+
), t = l(
|
|
7
|
+
"flex flex-col justify-center bg-primary-1 p-8 max-lg:w-full lg:w-[480px] lg:shrink-0"
|
|
8
|
+
), o = l(
|
|
9
|
+
"relative flex flex-col gap-4 bg-light-1 px-5 py-6 max-lg:w-full lg:w-[480px] lg:shrink-0"
|
|
10
|
+
);
|
|
11
|
+
export {
|
|
12
|
+
e as FeatureDialogContentVariants,
|
|
13
|
+
o as FeatureDialogDetailVariants,
|
|
14
|
+
t as FeatureDialogPitchVariants,
|
|
15
|
+
r as FeatureDialogVariants
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=index140.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index140.es.js","sources":["../src/components/organisms/feature-dialog/feature-dialog.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const FeatureDialogContentVariants = cva(\n 'w-[960px] max-w-[95vw] gap-0 overflow-hidden rounded-2xl border-0 p-0'\n)\n\nexport const FeatureDialogVariants = cva(\n 'flex w-full max-lg:flex-col lg:min-h-[491px] lg:flex-row'\n)\n\nexport const FeatureDialogPitchVariants = cva(\n 'flex flex-col justify-center bg-primary-1 p-8 max-lg:w-full lg:w-[480px] lg:shrink-0'\n)\n\nexport const FeatureDialogDetailVariants = cva(\n 'relative flex flex-col gap-4 bg-light-1 px-5 py-6 max-lg:w-full lg:w-[480px] lg:shrink-0'\n)\n"],"names":["FeatureDialogContentVariants","cva","FeatureDialogVariants","FeatureDialogPitchVariants","FeatureDialogDetailVariants"],"mappings":";AAEO,MAAMA,IAA+BC;AAAA,EAC1C;AACF,GAEaC,IAAwBD;AAAA,EACnC;AACF,GAEaE,IAA6BF;AAAA,EACxC;AACF,GAEaG,IAA8BH;AAAA,EACzC;AACF;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import e from "react";
|
|
2
|
-
import { FormField as m } from "./
|
|
3
|
-
import { Typography as r } from "./
|
|
2
|
+
import { FormField as m } from "./index171.es.js";
|
|
3
|
+
import { Typography as r } from "./index19.es.js";
|
|
4
4
|
const i = ({ section: t }) => /* @__PURE__ */ e.createElement("div", { className: "form-section" }, /* @__PURE__ */ e.createElement("section", { className: "flex flex-col gap-3" }, /* @__PURE__ */ e.createElement(r, { variant: "h3", className: "text-light-2" }, t.name), t.fields.map((a) => /* @__PURE__ */ e.createElement(m, { key: a.id, field: a }))));
|
|
5
5
|
export {
|
|
6
6
|
i as FormSection
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=index141.es.js.map
|