@ezpg/app-ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE +20 -0
- package/lib/module/blocks/brand-profile-card/brand-profile-card.js +90 -0
- package/lib/module/blocks/brand-profile-card/brand-profile-card.js.map +1 -0
- package/lib/module/blocks/brand-profile-card/index.js +4 -0
- package/lib/module/blocks/brand-profile-card/index.js.map +1 -0
- package/lib/module/blocks/claim-row/claim-row.js +107 -0
- package/lib/module/blocks/claim-row/claim-row.js.map +1 -0
- package/lib/module/blocks/claim-row/index.js +4 -0
- package/lib/module/blocks/claim-row/index.js.map +1 -0
- package/lib/module/blocks/color-swatch-picker/color-swatch-picker.js +124 -0
- package/lib/module/blocks/color-swatch-picker/color-swatch-picker.js.map +1 -0
- package/lib/module/blocks/color-swatch-picker/index.js +4 -0
- package/lib/module/blocks/color-swatch-picker/index.js.map +1 -0
- package/lib/module/blocks/copy-variant-picker/copy-variant-picker.js +142 -0
- package/lib/module/blocks/copy-variant-picker/copy-variant-picker.js.map +1 -0
- package/lib/module/blocks/copy-variant-picker/index.js +4 -0
- package/lib/module/blocks/copy-variant-picker/index.js.map +1 -0
- package/lib/module/blocks/credit-wallet/credit-wallet.js +123 -0
- package/lib/module/blocks/credit-wallet/credit-wallet.js.map +1 -0
- package/lib/module/blocks/credit-wallet/index.js +4 -0
- package/lib/module/blocks/credit-wallet/index.js.map +1 -0
- package/lib/module/blocks/image-grid/image-grid.js +273 -0
- package/lib/module/blocks/image-grid/image-grid.js.map +1 -0
- package/lib/module/blocks/image-grid/index.js +4 -0
- package/lib/module/blocks/image-grid/index.js.map +1 -0
- package/lib/module/blocks/index.js +22 -0
- package/lib/module/blocks/index.js.map +1 -0
- package/lib/module/blocks/internal/card.js +41 -0
- package/lib/module/blocks/internal/card.js.map +1 -0
- package/lib/module/blocks/internal/format.js +25 -0
- package/lib/module/blocks/internal/format.js.map +1 -0
- package/lib/module/blocks/invoice-row/index.js +4 -0
- package/lib/module/blocks/invoice-row/index.js.map +1 -0
- package/lib/module/blocks/invoice-row/invoice-row.js +101 -0
- package/lib/module/blocks/invoice-row/invoice-row.js.map +1 -0
- package/lib/module/blocks/logo-candidate-grid/index.js +4 -0
- package/lib/module/blocks/logo-candidate-grid/index.js.map +1 -0
- package/lib/module/blocks/logo-candidate-grid/logo-candidate-grid.js +117 -0
- package/lib/module/blocks/logo-candidate-grid/logo-candidate-grid.js.map +1 -0
- package/lib/module/blocks/oauth-buttons/index.js +4 -0
- package/lib/module/blocks/oauth-buttons/index.js.map +1 -0
- package/lib/module/blocks/oauth-buttons/oauth-buttons.js +102 -0
- package/lib/module/blocks/oauth-buttons/oauth-buttons.js.map +1 -0
- package/lib/module/blocks/option-editor/index.js +4 -0
- package/lib/module/blocks/option-editor/index.js.map +1 -0
- package/lib/module/blocks/option-editor/option-editor.js +133 -0
- package/lib/module/blocks/option-editor/option-editor.js.map +1 -0
- package/lib/module/blocks/order-card/index.js +4 -0
- package/lib/module/blocks/order-card/index.js.map +1 -0
- package/lib/module/blocks/order-card/order-card.js +156 -0
- package/lib/module/blocks/order-card/order-card.js.map +1 -0
- package/lib/module/blocks/plan-card/index.js +4 -0
- package/lib/module/blocks/plan-card/index.js.map +1 -0
- package/lib/module/blocks/plan-card/plan-card.js +134 -0
- package/lib/module/blocks/plan-card/plan-card.js.map +1 -0
- package/lib/module/blocks/product-list-empty/index.js +4 -0
- package/lib/module/blocks/product-list-empty/index.js.map +1 -0
- package/lib/module/blocks/product-list-empty/product-list-empty.js +155 -0
- package/lib/module/blocks/product-list-empty/product-list-empty.js.map +1 -0
- package/lib/module/blocks/review-row/index.js +4 -0
- package/lib/module/blocks/review-row/index.js.map +1 -0
- package/lib/module/blocks/review-row/review-row.js +284 -0
- package/lib/module/blocks/review-row/review-row.js.map +1 -0
- package/lib/module/blocks/sales-chart/index.js +4 -0
- package/lib/module/blocks/sales-chart/index.js.map +1 -0
- package/lib/module/blocks/sales-chart/sales-chart.js +126 -0
- package/lib/module/blocks/sales-chart/sales-chart.js.map +1 -0
- package/lib/module/blocks/service-state-banner/index.js +4 -0
- package/lib/module/blocks/service-state-banner/index.js.map +1 -0
- package/lib/module/blocks/service-state-banner/service-state-banner.js +64 -0
- package/lib/module/blocks/service-state-banner/service-state-banner.js.map +1 -0
- package/lib/module/blocks/shipping-tracking-row/index.js +4 -0
- package/lib/module/blocks/shipping-tracking-row/index.js.map +1 -0
- package/lib/module/blocks/shipping-tracking-row/shipping-tracking-row.js +116 -0
- package/lib/module/blocks/shipping-tracking-row/shipping-tracking-row.js.map +1 -0
- package/lib/module/blocks/site-preview-frame/index.js +4 -0
- package/lib/module/blocks/site-preview-frame/index.js.map +1 -0
- package/lib/module/blocks/site-preview-frame/site-preview-frame.js +111 -0
- package/lib/module/blocks/site-preview-frame/site-preview-frame.js.map +1 -0
- package/lib/module/blocks/stat-card/index.js +4 -0
- package/lib/module/blocks/stat-card/index.js.map +1 -0
- package/lib/module/blocks/stat-card/stat-card.js +71 -0
- package/lib/module/blocks/stat-card/stat-card.js.map +1 -0
- package/lib/module/blocks/step-screen/index.js +4 -0
- package/lib/module/blocks/step-screen/index.js.map +1 -0
- package/lib/module/blocks/step-screen/step-screen.js +134 -0
- package/lib/module/blocks/step-screen/step-screen.js.map +1 -0
- package/lib/module/blocks/supply-item-card/index.js +4 -0
- package/lib/module/blocks/supply-item-card/index.js.map +1 -0
- package/lib/module/blocks/supply-item-card/supply-item-card.js +151 -0
- package/lib/module/blocks/supply-item-card/supply-item-card.js.map +1 -0
- package/lib/module/charts/index.js +5 -0
- package/lib/module/charts/index.js.map +1 -0
- package/lib/module/charts/line-chart.js +115 -0
- package/lib/module/charts/line-chart.js.map +1 -0
- package/lib/module/charts/scale.js +45 -0
- package/lib/module/charts/scale.js.map +1 -0
- package/lib/module/charts/sparkline.js +50 -0
- package/lib/module/charts/sparkline.js.map +1 -0
- package/lib/module/charts/summary.js +11 -0
- package/lib/module/charts/summary.js.map +1 -0
- package/lib/module/charts.js +5 -0
- package/lib/module/charts.js.map +1 -0
- package/lib/module/components/button/button.js +122 -0
- package/lib/module/components/button/button.js.map +1 -0
- package/lib/module/components/button/index.js +4 -0
- package/lib/module/components/button/index.js.map +1 -0
- package/lib/module/components/checkbox/checkbox.js +72 -0
- package/lib/module/components/checkbox/checkbox.js.map +1 -0
- package/lib/module/components/checkbox/index.js +4 -0
- package/lib/module/components/checkbox/index.js.map +1 -0
- package/lib/module/components/chip/chip.js +68 -0
- package/lib/module/components/chip/chip.js.map +1 -0
- package/lib/module/components/chip/index.js +4 -0
- package/lib/module/components/chip/index.js.map +1 -0
- package/lib/module/components/chip-group/chip-group.js +55 -0
- package/lib/module/components/chip-group/chip-group.js.map +1 -0
- package/lib/module/components/chip-group/index.js +4 -0
- package/lib/module/components/chip-group/index.js.map +1 -0
- package/lib/module/components/dialog/dialog.js +118 -0
- package/lib/module/components/dialog/dialog.js.map +1 -0
- package/lib/module/components/dialog/index.js +4 -0
- package/lib/module/components/dialog/index.js.map +1 -0
- package/lib/module/components/divider/divider.js +21 -0
- package/lib/module/components/divider/divider.js.map +1 -0
- package/lib/module/components/divider/index.js +4 -0
- package/lib/module/components/divider/index.js.map +1 -0
- package/lib/module/components/empty-state/empty-state.js +126 -0
- package/lib/module/components/empty-state/empty-state.js.map +1 -0
- package/lib/module/components/empty-state/index.js +4 -0
- package/lib/module/components/empty-state/index.js.map +1 -0
- package/lib/module/components/field/field.js +123 -0
- package/lib/module/components/field/field.js.map +1 -0
- package/lib/module/components/field/index.js +4 -0
- package/lib/module/components/field/index.js.map +1 -0
- package/lib/module/components/list-row/index.js +4 -0
- package/lib/module/components/list-row/index.js.map +1 -0
- package/lib/module/components/list-row/list-row.js +97 -0
- package/lib/module/components/list-row/list-row.js.map +1 -0
- package/lib/module/components/photo/index.js +4 -0
- package/lib/module/components/photo/index.js.map +1 -0
- package/lib/module/components/photo/photo.js +68 -0
- package/lib/module/components/photo/photo.js.map +1 -0
- package/lib/module/components/price/index.js +4 -0
- package/lib/module/components/price/index.js.map +1 -0
- package/lib/module/components/price/price.js +72 -0
- package/lib/module/components/price/price.js.map +1 -0
- package/lib/module/components/search-field/index.js +4 -0
- package/lib/module/components/search-field/index.js.map +1 -0
- package/lib/module/components/search-field/search-field.js +35 -0
- package/lib/module/components/search-field/search-field.js.map +1 -0
- package/lib/module/components/segmented-tabs/index.js +4 -0
- package/lib/module/components/segmented-tabs/index.js.map +1 -0
- package/lib/module/components/segmented-tabs/segmented-tabs.js +74 -0
- package/lib/module/components/segmented-tabs/segmented-tabs.js.map +1 -0
- package/lib/module/components/sheet/index.js +4 -0
- package/lib/module/components/sheet/index.js.map +1 -0
- package/lib/module/components/sheet/sheet.js +97 -0
- package/lib/module/components/sheet/sheet.js.map +1 -0
- package/lib/module/components/skeleton/index.js +4 -0
- package/lib/module/components/skeleton/index.js.map +1 -0
- package/lib/module/components/skeleton/skeleton.js +49 -0
- package/lib/module/components/skeleton/skeleton.js.map +1 -0
- package/lib/module/components/status-badge/index.js +4 -0
- package/lib/module/components/status-badge/index.js.map +1 -0
- package/lib/module/components/status-badge/status-badge.js +48 -0
- package/lib/module/components/status-badge/status-badge.js.map +1 -0
- package/lib/module/components/switch/index.js +4 -0
- package/lib/module/components/switch/index.js.map +1 -0
- package/lib/module/components/switch/switch.js +26 -0
- package/lib/module/components/switch/switch.js.map +1 -0
- package/lib/module/components/text/index.js +4 -0
- package/lib/module/components/text/index.js.map +1 -0
- package/lib/module/components/text/text.js +56 -0
- package/lib/module/components/text/text.js.map +1 -0
- package/lib/module/components/toast/index.js +4 -0
- package/lib/module/components/toast/index.js.map +1 -0
- package/lib/module/components/toast/toast.js +203 -0
- package/lib/module/components/toast/toast.js.map +1 -0
- package/lib/module/components/wizard-steps/index.js +4 -0
- package/lib/module/components/wizard-steps/index.js.map +1 -0
- package/lib/module/components/wizard-steps/wizard-steps.js +69 -0
- package/lib/module/components/wizard-steps/wizard-steps.js.map +1 -0
- package/lib/module/index.js +31 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/internal/glyphs.js +200 -0
- package/lib/module/internal/glyphs.js.map +1 -0
- package/lib/module/internal/icon.js +8 -0
- package/lib/module/internal/icon.js.map +1 -0
- package/lib/module/internal/overlay.js +60 -0
- package/lib/module/internal/overlay.js.map +1 -0
- package/lib/module/internal/pressable-base.js +40 -0
- package/lib/module/internal/pressable-base.js.map +1 -0
- package/lib/module/internal/use-reduced-motion.js +31 -0
- package/lib/module/internal/use-reduced-motion.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/sortable/index.js +6 -0
- package/lib/module/sortable/index.js.map +1 -0
- package/lib/module/sortable/move.js +11 -0
- package/lib/module/sortable/move.js.map +1 -0
- package/lib/module/sortable/sortable-grid.js +86 -0
- package/lib/module/sortable/sortable-grid.js.map +1 -0
- package/lib/module/sortable/sortable-list.js +16 -0
- package/lib/module/sortable/sortable-list.js.map +1 -0
- package/lib/module/sortable.js +6 -0
- package/lib/module/sortable.js.map +1 -0
- package/lib/module/theme/create-theme.js +56 -0
- package/lib/module/theme/create-theme.js.map +1 -0
- package/lib/module/theme/theme-provider.js +26 -0
- package/lib/module/theme/theme-provider.js.map +1 -0
- package/lib/module/theme/tokens.js +123 -0
- package/lib/module/theme/tokens.js.map +1 -0
- package/lib/module/types/index.js +4 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/color.js +30 -0
- package/lib/module/utils/color.js.map +1 -0
- package/lib/module/utils/styles.js +22 -0
- package/lib/module/utils/styles.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/blocks/brand-profile-card/brand-profile-card.d.ts +15 -0
- package/lib/typescript/src/blocks/brand-profile-card/brand-profile-card.d.ts.map +1 -0
- package/lib/typescript/src/blocks/brand-profile-card/index.d.ts +2 -0
- package/lib/typescript/src/blocks/brand-profile-card/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/claim-row/claim-row.d.ts +22 -0
- package/lib/typescript/src/blocks/claim-row/claim-row.d.ts.map +1 -0
- package/lib/typescript/src/blocks/claim-row/index.d.ts +2 -0
- package/lib/typescript/src/blocks/claim-row/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/color-swatch-picker/color-swatch-picker.d.ts +16 -0
- package/lib/typescript/src/blocks/color-swatch-picker/color-swatch-picker.d.ts.map +1 -0
- package/lib/typescript/src/blocks/color-swatch-picker/index.d.ts +2 -0
- package/lib/typescript/src/blocks/color-swatch-picker/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/copy-variant-picker/copy-variant-picker.d.ts +22 -0
- package/lib/typescript/src/blocks/copy-variant-picker/copy-variant-picker.d.ts.map +1 -0
- package/lib/typescript/src/blocks/copy-variant-picker/index.d.ts +2 -0
- package/lib/typescript/src/blocks/copy-variant-picker/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/credit-wallet/credit-wallet.d.ts +14 -0
- package/lib/typescript/src/blocks/credit-wallet/credit-wallet.d.ts.map +1 -0
- package/lib/typescript/src/blocks/credit-wallet/index.d.ts +2 -0
- package/lib/typescript/src/blocks/credit-wallet/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/image-grid/image-grid.d.ts +24 -0
- package/lib/typescript/src/blocks/image-grid/image-grid.d.ts.map +1 -0
- package/lib/typescript/src/blocks/image-grid/index.d.ts +2 -0
- package/lib/typescript/src/blocks/image-grid/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/index.d.ts +20 -0
- package/lib/typescript/src/blocks/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/internal/card.d.ts +10 -0
- package/lib/typescript/src/blocks/internal/card.d.ts.map +1 -0
- package/lib/typescript/src/blocks/internal/format.d.ts +7 -0
- package/lib/typescript/src/blocks/internal/format.d.ts.map +1 -0
- package/lib/typescript/src/blocks/invoice-row/index.d.ts +2 -0
- package/lib/typescript/src/blocks/invoice-row/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/invoice-row/invoice-row.d.ts +22 -0
- package/lib/typescript/src/blocks/invoice-row/invoice-row.d.ts.map +1 -0
- package/lib/typescript/src/blocks/logo-candidate-grid/index.d.ts +2 -0
- package/lib/typescript/src/blocks/logo-candidate-grid/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/logo-candidate-grid/logo-candidate-grid.d.ts +17 -0
- package/lib/typescript/src/blocks/logo-candidate-grid/logo-candidate-grid.d.ts.map +1 -0
- package/lib/typescript/src/blocks/oauth-buttons/index.d.ts +2 -0
- package/lib/typescript/src/blocks/oauth-buttons/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/oauth-buttons/oauth-buttons.d.ts +20 -0
- package/lib/typescript/src/blocks/oauth-buttons/oauth-buttons.d.ts.map +1 -0
- package/lib/typescript/src/blocks/option-editor/index.d.ts +2 -0
- package/lib/typescript/src/blocks/option-editor/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/option-editor/option-editor.d.ts +20 -0
- package/lib/typescript/src/blocks/option-editor/option-editor.d.ts.map +1 -0
- package/lib/typescript/src/blocks/order-card/index.d.ts +2 -0
- package/lib/typescript/src/blocks/order-card/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/order-card/order-card.d.ts +44 -0
- package/lib/typescript/src/blocks/order-card/order-card.d.ts.map +1 -0
- package/lib/typescript/src/blocks/plan-card/index.d.ts +2 -0
- package/lib/typescript/src/blocks/plan-card/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/plan-card/plan-card.d.ts +36 -0
- package/lib/typescript/src/blocks/plan-card/plan-card.d.ts.map +1 -0
- package/lib/typescript/src/blocks/product-list-empty/index.d.ts +2 -0
- package/lib/typescript/src/blocks/product-list-empty/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/product-list-empty/product-list-empty.d.ts +21 -0
- package/lib/typescript/src/blocks/product-list-empty/product-list-empty.d.ts.map +1 -0
- package/lib/typescript/src/blocks/review-row/index.d.ts +2 -0
- package/lib/typescript/src/blocks/review-row/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/review-row/review-row.d.ts +34 -0
- package/lib/typescript/src/blocks/review-row/review-row.d.ts.map +1 -0
- package/lib/typescript/src/blocks/sales-chart/index.d.ts +2 -0
- package/lib/typescript/src/blocks/sales-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/sales-chart/sales-chart.d.ts +20 -0
- package/lib/typescript/src/blocks/sales-chart/sales-chart.d.ts.map +1 -0
- package/lib/typescript/src/blocks/service-state-banner/index.d.ts +2 -0
- package/lib/typescript/src/blocks/service-state-banner/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/service-state-banner/service-state-banner.d.ts +13 -0
- package/lib/typescript/src/blocks/service-state-banner/service-state-banner.d.ts.map +1 -0
- package/lib/typescript/src/blocks/shipping-tracking-row/index.d.ts +2 -0
- package/lib/typescript/src/blocks/shipping-tracking-row/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/shipping-tracking-row/shipping-tracking-row.d.ts +12 -0
- package/lib/typescript/src/blocks/shipping-tracking-row/shipping-tracking-row.d.ts.map +1 -0
- package/lib/typescript/src/blocks/site-preview-frame/index.d.ts +2 -0
- package/lib/typescript/src/blocks/site-preview-frame/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/site-preview-frame/site-preview-frame.d.ts +18 -0
- package/lib/typescript/src/blocks/site-preview-frame/site-preview-frame.d.ts.map +1 -0
- package/lib/typescript/src/blocks/stat-card/index.d.ts +2 -0
- package/lib/typescript/src/blocks/stat-card/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/stat-card/stat-card.d.ts +17 -0
- package/lib/typescript/src/blocks/stat-card/stat-card.d.ts.map +1 -0
- package/lib/typescript/src/blocks/step-screen/index.d.ts +2 -0
- package/lib/typescript/src/blocks/step-screen/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/step-screen/step-screen.d.ts +26 -0
- package/lib/typescript/src/blocks/step-screen/step-screen.d.ts.map +1 -0
- package/lib/typescript/src/blocks/supply-item-card/index.d.ts +2 -0
- package/lib/typescript/src/blocks/supply-item-card/index.d.ts.map +1 -0
- package/lib/typescript/src/blocks/supply-item-card/supply-item-card.d.ts +30 -0
- package/lib/typescript/src/blocks/supply-item-card/supply-item-card.d.ts.map +1 -0
- package/lib/typescript/src/charts/index.d.ts +3 -0
- package/lib/typescript/src/charts/index.d.ts.map +1 -0
- package/lib/typescript/src/charts/line-chart.d.ts +21 -0
- package/lib/typescript/src/charts/line-chart.d.ts.map +1 -0
- package/lib/typescript/src/charts/scale.d.ts +13 -0
- package/lib/typescript/src/charts/scale.d.ts.map +1 -0
- package/lib/typescript/src/charts/sparkline.d.ts +15 -0
- package/lib/typescript/src/charts/sparkline.d.ts.map +1 -0
- package/lib/typescript/src/charts/summary.d.ts +3 -0
- package/lib/typescript/src/charts/summary.d.ts.map +1 -0
- package/lib/typescript/src/charts.d.ts +3 -0
- package/lib/typescript/src/charts.d.ts.map +1 -0
- package/lib/typescript/src/components/button/button.d.ts +18 -0
- package/lib/typescript/src/components/button/button.d.ts.map +1 -0
- package/lib/typescript/src/components/button/index.d.ts +2 -0
- package/lib/typescript/src/components/button/index.d.ts.map +1 -0
- package/lib/typescript/src/components/checkbox/checkbox.d.ts +8 -0
- package/lib/typescript/src/components/checkbox/checkbox.d.ts.map +1 -0
- package/lib/typescript/src/components/checkbox/index.d.ts +2 -0
- package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -0
- package/lib/typescript/src/components/chip/chip.d.ts +9 -0
- package/lib/typescript/src/components/chip/chip.d.ts.map +1 -0
- package/lib/typescript/src/components/chip/index.d.ts +2 -0
- package/lib/typescript/src/components/chip/index.d.ts.map +1 -0
- package/lib/typescript/src/components/chip-group/chip-group.d.ts +27 -0
- package/lib/typescript/src/components/chip-group/chip-group.d.ts.map +1 -0
- package/lib/typescript/src/components/chip-group/index.d.ts +2 -0
- package/lib/typescript/src/components/chip-group/index.d.ts.map +1 -0
- package/lib/typescript/src/components/dialog/dialog.d.ts +20 -0
- package/lib/typescript/src/components/dialog/dialog.d.ts.map +1 -0
- package/lib/typescript/src/components/dialog/index.d.ts +2 -0
- package/lib/typescript/src/components/dialog/index.d.ts.map +1 -0
- package/lib/typescript/src/components/divider/divider.d.ts +9 -0
- package/lib/typescript/src/components/divider/divider.d.ts.map +1 -0
- package/lib/typescript/src/components/divider/index.d.ts +2 -0
- package/lib/typescript/src/components/divider/index.d.ts.map +1 -0
- package/lib/typescript/src/components/empty-state/empty-state.d.ts +26 -0
- package/lib/typescript/src/components/empty-state/empty-state.d.ts.map +1 -0
- package/lib/typescript/src/components/empty-state/index.d.ts +2 -0
- package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -0
- package/lib/typescript/src/components/field/field.d.ts +15 -0
- package/lib/typescript/src/components/field/field.d.ts.map +1 -0
- package/lib/typescript/src/components/field/index.d.ts +2 -0
- package/lib/typescript/src/components/field/index.d.ts.map +1 -0
- package/lib/typescript/src/components/list-row/index.d.ts +2 -0
- package/lib/typescript/src/components/list-row/index.d.ts.map +1 -0
- package/lib/typescript/src/components/list-row/list-row.d.ts +15 -0
- package/lib/typescript/src/components/list-row/list-row.d.ts.map +1 -0
- package/lib/typescript/src/components/photo/index.d.ts +2 -0
- package/lib/typescript/src/components/photo/index.d.ts.map +1 -0
- package/lib/typescript/src/components/photo/photo.d.ts +15 -0
- package/lib/typescript/src/components/photo/photo.d.ts.map +1 -0
- package/lib/typescript/src/components/price/index.d.ts +2 -0
- package/lib/typescript/src/components/price/index.d.ts.map +1 -0
- package/lib/typescript/src/components/price/price.d.ts +15 -0
- package/lib/typescript/src/components/price/price.d.ts.map +1 -0
- package/lib/typescript/src/components/search-field/index.d.ts +2 -0
- package/lib/typescript/src/components/search-field/index.d.ts.map +1 -0
- package/lib/typescript/src/components/search-field/search-field.d.ts +9 -0
- package/lib/typescript/src/components/search-field/search-field.d.ts.map +1 -0
- package/lib/typescript/src/components/segmented-tabs/index.d.ts +2 -0
- package/lib/typescript/src/components/segmented-tabs/index.d.ts.map +1 -0
- package/lib/typescript/src/components/segmented-tabs/segmented-tabs.d.ts +14 -0
- package/lib/typescript/src/components/segmented-tabs/segmented-tabs.d.ts.map +1 -0
- package/lib/typescript/src/components/sheet/index.d.ts +2 -0
- package/lib/typescript/src/components/sheet/index.d.ts.map +1 -0
- package/lib/typescript/src/components/sheet/sheet.d.ts +17 -0
- package/lib/typescript/src/components/sheet/sheet.d.ts.map +1 -0
- package/lib/typescript/src/components/skeleton/index.d.ts +2 -0
- package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -0
- package/lib/typescript/src/components/skeleton/skeleton.d.ts +13 -0
- package/lib/typescript/src/components/skeleton/skeleton.d.ts.map +1 -0
- package/lib/typescript/src/components/status-badge/index.d.ts +2 -0
- package/lib/typescript/src/components/status-badge/index.d.ts.map +1 -0
- package/lib/typescript/src/components/status-badge/status-badge.d.ts +10 -0
- package/lib/typescript/src/components/status-badge/status-badge.d.ts.map +1 -0
- package/lib/typescript/src/components/switch/index.d.ts +2 -0
- package/lib/typescript/src/components/switch/index.d.ts.map +1 -0
- package/lib/typescript/src/components/switch/switch.d.ts +9 -0
- package/lib/typescript/src/components/switch/switch.d.ts.map +1 -0
- package/lib/typescript/src/components/text/index.d.ts +2 -0
- package/lib/typescript/src/components/text/index.d.ts.map +1 -0
- package/lib/typescript/src/components/text/text.d.ts +16 -0
- package/lib/typescript/src/components/text/text.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/index.d.ts +2 -0
- package/lib/typescript/src/components/toast/index.d.ts.map +1 -0
- package/lib/typescript/src/components/toast/toast.d.ts +30 -0
- package/lib/typescript/src/components/toast/toast.d.ts.map +1 -0
- package/lib/typescript/src/components/wizard-steps/index.d.ts +2 -0
- package/lib/typescript/src/components/wizard-steps/index.d.ts.map +1 -0
- package/lib/typescript/src/components/wizard-steps/wizard-steps.d.ts +11 -0
- package/lib/typescript/src/components/wizard-steps/wizard-steps.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +31 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/internal/glyphs.d.ts +12 -0
- package/lib/typescript/src/internal/glyphs.d.ts.map +1 -0
- package/lib/typescript/src/internal/icon.d.ts +9 -0
- package/lib/typescript/src/internal/icon.d.ts.map +1 -0
- package/lib/typescript/src/internal/overlay.d.ts +16 -0
- package/lib/typescript/src/internal/overlay.d.ts.map +1 -0
- package/lib/typescript/src/internal/pressable-base.d.ts +13 -0
- package/lib/typescript/src/internal/pressable-base.d.ts.map +1 -0
- package/lib/typescript/src/internal/use-reduced-motion.d.ts +3 -0
- package/lib/typescript/src/internal/use-reduced-motion.d.ts.map +1 -0
- package/lib/typescript/src/sortable/index.d.ts +4 -0
- package/lib/typescript/src/sortable/index.d.ts.map +1 -0
- package/lib/typescript/src/sortable/move.d.ts +3 -0
- package/lib/typescript/src/sortable/move.d.ts.map +1 -0
- package/lib/typescript/src/sortable/sortable-grid.d.ts +37 -0
- package/lib/typescript/src/sortable/sortable-grid.d.ts.map +1 -0
- package/lib/typescript/src/sortable/sortable-list.d.ts +5 -0
- package/lib/typescript/src/sortable/sortable-list.d.ts.map +1 -0
- package/lib/typescript/src/sortable.d.ts +4 -0
- package/lib/typescript/src/sortable.d.ts.map +1 -0
- package/lib/typescript/src/theme/create-theme.d.ts +8 -0
- package/lib/typescript/src/theme/create-theme.d.ts.map +1 -0
- package/lib/typescript/src/theme/theme-provider.d.ts +13 -0
- package/lib/typescript/src/theme/theme-provider.d.ts.map +1 -0
- package/lib/typescript/src/theme/tokens.d.ts +4 -0
- package/lib/typescript/src/theme/tokens.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +90 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/lib/typescript/src/utils/color.d.ts +5 -0
- package/lib/typescript/src/utils/color.d.ts.map +1 -0
- package/lib/typescript/src/utils/styles.d.ts +13 -0
- package/lib/typescript/src/utils/styles.d.ts.map +1 -0
- package/package.json +109 -3
- package/src/blocks/brand-profile-card/brand-profile-card.tsx +87 -0
- package/src/blocks/brand-profile-card/index.ts +4 -0
- package/src/blocks/claim-row/claim-row.tsx +112 -0
- package/src/blocks/claim-row/index.ts +6 -0
- package/src/blocks/color-swatch-picker/color-swatch-picker.tsx +119 -0
- package/src/blocks/color-swatch-picker/index.ts +5 -0
- package/src/blocks/copy-variant-picker/copy-variant-picker.tsx +140 -0
- package/src/blocks/copy-variant-picker/index.ts +5 -0
- package/src/blocks/credit-wallet/credit-wallet.tsx +105 -0
- package/src/blocks/credit-wallet/index.ts +1 -0
- package/src/blocks/image-grid/image-grid.tsx +279 -0
- package/src/blocks/image-grid/index.ts +1 -0
- package/src/blocks/index.tsx +19 -0
- package/src/blocks/internal/card.tsx +42 -0
- package/src/blocks/internal/format.ts +22 -0
- package/src/blocks/invoice-row/index.ts +5 -0
- package/src/blocks/invoice-row/invoice-row.tsx +122 -0
- package/src/blocks/logo-candidate-grid/index.ts +5 -0
- package/src/blocks/logo-candidate-grid/logo-candidate-grid.tsx +129 -0
- package/src/blocks/oauth-buttons/index.ts +5 -0
- package/src/blocks/oauth-buttons/oauth-buttons.tsx +109 -0
- package/src/blocks/option-editor/index.ts +5 -0
- package/src/blocks/option-editor/option-editor.tsx +135 -0
- package/src/blocks/order-card/index.ts +11 -0
- package/src/blocks/order-card/order-card.tsx +184 -0
- package/src/blocks/plan-card/index.ts +1 -0
- package/src/blocks/plan-card/plan-card.tsx +147 -0
- package/src/blocks/product-list-empty/index.ts +5 -0
- package/src/blocks/product-list-empty/product-list-empty.tsx +144 -0
- package/src/blocks/review-row/index.ts +8 -0
- package/src/blocks/review-row/review-row.tsx +256 -0
- package/src/blocks/sales-chart/index.ts +5 -0
- package/src/blocks/sales-chart/sales-chart.tsx +120 -0
- package/src/blocks/service-state-banner/index.ts +5 -0
- package/src/blocks/service-state-banner/service-state-banner.tsx +66 -0
- package/src/blocks/shipping-tracking-row/index.ts +5 -0
- package/src/blocks/shipping-tracking-row/shipping-tracking-row.tsx +93 -0
- package/src/blocks/site-preview-frame/index.ts +5 -0
- package/src/blocks/site-preview-frame/site-preview-frame.tsx +121 -0
- package/src/blocks/stat-card/index.ts +1 -0
- package/src/blocks/stat-card/stat-card.tsx +77 -0
- package/src/blocks/step-screen/index.ts +5 -0
- package/src/blocks/step-screen/step-screen.tsx +137 -0
- package/src/blocks/supply-item-card/index.ts +6 -0
- package/src/blocks/supply-item-card/supply-item-card.tsx +145 -0
- package/src/charts/index.ts +2 -0
- package/src/charts/line-chart.tsx +177 -0
- package/src/charts/scale.ts +49 -0
- package/src/charts/sparkline.tsx +64 -0
- package/src/charts/summary.ts +11 -0
- package/src/charts.tsx +2 -0
- package/src/components/button/button.tsx +119 -0
- package/src/components/button/index.ts +6 -0
- package/src/components/checkbox/checkbox.tsx +79 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/chip/chip.tsx +73 -0
- package/src/components/chip/index.ts +1 -0
- package/src/components/chip-group/chip-group.tsx +86 -0
- package/src/components/chip-group/index.ts +5 -0
- package/src/components/dialog/dialog.tsx +131 -0
- package/src/components/dialog/index.ts +1 -0
- package/src/components/divider/divider.tsx +26 -0
- package/src/components/divider/index.ts +1 -0
- package/src/components/empty-state/empty-state.tsx +152 -0
- package/src/components/empty-state/index.ts +5 -0
- package/src/components/field/field.tsx +151 -0
- package/src/components/field/index.ts +1 -0
- package/src/components/list-row/index.ts +1 -0
- package/src/components/list-row/list-row.tsx +115 -0
- package/src/components/photo/index.ts +1 -0
- package/src/components/photo/photo.tsx +87 -0
- package/src/components/price/index.ts +1 -0
- package/src/components/price/price.tsx +84 -0
- package/src/components/search-field/index.ts +1 -0
- package/src/components/search-field/search-field.tsx +46 -0
- package/src/components/segmented-tabs/index.ts +5 -0
- package/src/components/segmented-tabs/segmented-tabs.tsx +81 -0
- package/src/components/sheet/index.ts +1 -0
- package/src/components/sheet/sheet.tsx +121 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.tsx +73 -0
- package/src/components/status-badge/index.ts +5 -0
- package/src/components/status-badge/status-badge.tsx +54 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/switch/switch.tsx +26 -0
- package/src/components/text/index.ts +1 -0
- package/src/components/text/text.tsx +54 -0
- package/src/components/toast/index.ts +9 -0
- package/src/components/toast/toast.tsx +248 -0
- package/src/components/wizard-steps/index.ts +1 -0
- package/src/components/wizard-steps/wizard-steps.tsx +54 -0
- package/src/index.tsx +56 -0
- package/src/internal/glyphs.tsx +158 -0
- package/src/internal/icon.tsx +10 -0
- package/src/internal/overlay.tsx +59 -0
- package/src/internal/pressable-base.tsx +55 -0
- package/src/internal/use-reduced-motion.ts +32 -0
- package/src/sortable/index.ts +8 -0
- package/src/sortable/move.ts +19 -0
- package/src/sortable/sortable-grid.tsx +97 -0
- package/src/sortable/sortable-list.tsx +11 -0
- package/src/sortable.tsx +3 -0
- package/src/theme/create-theme.ts +67 -0
- package/src/theme/theme-provider.tsx +37 -0
- package/src/theme/tokens.ts +91 -0
- package/src/types/index.ts +80 -0
- package/src/utils/color.ts +47 -0
- package/src/utils/styles.ts +30 -0
- package/README.md +0 -3
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KeyboardAvoidingView, ScrollView, View } from 'react-native';
|
|
4
|
+
import { Button } from "../../components/button/button.js";
|
|
5
|
+
import { Text } from "../../components/text/text.js";
|
|
6
|
+
import { ChevronGlyph } from "../../internal/glyphs.js";
|
|
7
|
+
import { PressableBase } from "../../internal/pressable-base.js";
|
|
8
|
+
import { useTheme } from "../../theme/theme-provider.js";
|
|
9
|
+
import { makeStyles } from "../../utils/styles.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const useStyles = makeStyles(t => ({
|
|
12
|
+
root: {
|
|
13
|
+
flex: 1,
|
|
14
|
+
backgroundColor: t.colors.background
|
|
15
|
+
},
|
|
16
|
+
header: {
|
|
17
|
+
height: 52,
|
|
18
|
+
flexDirection: 'row',
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
paddingHorizontal: t.space[1]
|
|
21
|
+
},
|
|
22
|
+
back: {
|
|
23
|
+
width: 44,
|
|
24
|
+
height: 44,
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
justifyContent: 'center'
|
|
27
|
+
},
|
|
28
|
+
backIcon: {
|
|
29
|
+
transform: [{
|
|
30
|
+
scaleX: -1
|
|
31
|
+
}]
|
|
32
|
+
},
|
|
33
|
+
track: {
|
|
34
|
+
height: 3,
|
|
35
|
+
backgroundColor: t.colors.muted
|
|
36
|
+
},
|
|
37
|
+
fill: {
|
|
38
|
+
height: 3,
|
|
39
|
+
backgroundColor: t.colors.primary
|
|
40
|
+
},
|
|
41
|
+
body: {
|
|
42
|
+
gap: t.space[5],
|
|
43
|
+
paddingTop: t.space[6],
|
|
44
|
+
paddingHorizontal: t.space[5],
|
|
45
|
+
paddingBottom: t.space[4]
|
|
46
|
+
},
|
|
47
|
+
title: {
|
|
48
|
+
fontSize: 24,
|
|
49
|
+
lineHeight: 32
|
|
50
|
+
},
|
|
51
|
+
footer: {
|
|
52
|
+
gap: t.space[2],
|
|
53
|
+
paddingHorizontal: t.space[5],
|
|
54
|
+
paddingTop: t.space[3],
|
|
55
|
+
backgroundColor: t.colors.background
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
58
|
+
|
|
59
|
+
/** 온보딩 한 단계의 화면 틀: 이전 · 진행 막대 · 제목 · 내용 · 하단 버튼 */
|
|
60
|
+
export function StepScreen({
|
|
61
|
+
title,
|
|
62
|
+
total,
|
|
63
|
+
current = 0,
|
|
64
|
+
onBack,
|
|
65
|
+
backLabel = '이전',
|
|
66
|
+
primaryAction,
|
|
67
|
+
secondaryAction,
|
|
68
|
+
bottomInset = 0,
|
|
69
|
+
children
|
|
70
|
+
}) {
|
|
71
|
+
const t = useTheme();
|
|
72
|
+
const s = useStyles();
|
|
73
|
+
const step = total ? Math.min(total, Math.max(1, current + 1)) : 0;
|
|
74
|
+
return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
|
|
75
|
+
behavior: "padding",
|
|
76
|
+
style: s.root,
|
|
77
|
+
children: [onBack ? /*#__PURE__*/_jsx(View, {
|
|
78
|
+
style: s.header,
|
|
79
|
+
children: /*#__PURE__*/_jsx(PressableBase, {
|
|
80
|
+
onPress: onBack,
|
|
81
|
+
accessibilityLabel: backLabel,
|
|
82
|
+
style: s.back,
|
|
83
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
84
|
+
style: s.backIcon,
|
|
85
|
+
children: /*#__PURE__*/_jsx(ChevronGlyph, {
|
|
86
|
+
color: t.colors.foreground,
|
|
87
|
+
size: 24
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
}) : null, total ? /*#__PURE__*/_jsx(View, {
|
|
92
|
+
accessibilityRole: "progressbar",
|
|
93
|
+
accessibilityLabel: `${total}단계 중 ${step}단계`,
|
|
94
|
+
accessibilityValue: {
|
|
95
|
+
min: 1,
|
|
96
|
+
max: total,
|
|
97
|
+
now: step
|
|
98
|
+
},
|
|
99
|
+
style: s.track,
|
|
100
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
101
|
+
style: [s.fill, {
|
|
102
|
+
width: `${step / total * 100}%`
|
|
103
|
+
}]
|
|
104
|
+
})
|
|
105
|
+
}) : null, /*#__PURE__*/_jsxs(ScrollView, {
|
|
106
|
+
contentContainerStyle: s.body,
|
|
107
|
+
keyboardShouldPersistTaps: "handled",
|
|
108
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
109
|
+
weight: "bold",
|
|
110
|
+
accessibilityRole: "header",
|
|
111
|
+
style: s.title,
|
|
112
|
+
children: title
|
|
113
|
+
}), children]
|
|
114
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
115
|
+
style: [s.footer, {
|
|
116
|
+
paddingBottom: t.space[4] + bottomInset
|
|
117
|
+
}],
|
|
118
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
119
|
+
size: "lg",
|
|
120
|
+
onPress: primaryAction.onPress,
|
|
121
|
+
disabled: primaryAction.disabled,
|
|
122
|
+
loading: primaryAction.loading,
|
|
123
|
+
children: primaryAction.label
|
|
124
|
+
}), secondaryAction ? /*#__PURE__*/_jsx(Button, {
|
|
125
|
+
variant: "ghost",
|
|
126
|
+
onPress: secondaryAction.onPress,
|
|
127
|
+
disabled: secondaryAction.disabled,
|
|
128
|
+
loading: secondaryAction.loading,
|
|
129
|
+
children: secondaryAction.label
|
|
130
|
+
}) : null]
|
|
131
|
+
})]
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=step-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KeyboardAvoidingView","ScrollView","View","Button","Text","ChevronGlyph","PressableBase","useTheme","makeStyles","jsx","_jsx","jsxs","_jsxs","useStyles","t","root","flex","backgroundColor","colors","background","header","height","flexDirection","alignItems","paddingHorizontal","space","back","width","justifyContent","backIcon","transform","scaleX","track","muted","fill","primary","body","gap","paddingTop","paddingBottom","title","fontSize","lineHeight","footer","StepScreen","total","current","onBack","backLabel","primaryAction","secondaryAction","bottomInset","children","s","step","Math","min","max","behavior","style","onPress","accessibilityLabel","color","foreground","size","accessibilityRole","accessibilityValue","now","contentContainerStyle","keyboardShouldPersistTaps","weight","disabled","loading","label","variant"],"sourceRoot":"../../../../src","sources":["blocks/step-screen/step-screen.tsx"],"mappings":";;AACA,SAASA,oBAAoB,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACrE,SAASC,MAAM,QAAQ,mCAAgC;AACvD,SAASC,IAAI,QAAQ,+BAA4B;AACjD,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,UAAU,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA0BhD,MAAMC,SAAS,GAAGL,UAAU,CAAEM,CAAC,KAAM;EACnCC,IAAI,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,eAAe,EAAEH,CAAC,CAACI,MAAM,CAACC;EAAW,CAAC;EACvDC,MAAM,EAAE;IACNC,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAEV,CAAC,CAACW,KAAK,CAAC,CAAC;EAC9B,CAAC;EACDC,IAAI,EAAE;IACJC,KAAK,EAAE,EAAE;IACTN,MAAM,EAAE,EAAE;IACVE,UAAU,EAAE,QAAQ;IACpBK,cAAc,EAAE;EAClB,CAAC;EACDC,QAAQ,EAAE;IAAEC,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;IAAE,CAAC;EAAE,CAAC;EACzCC,KAAK,EAAE;IAAEX,MAAM,EAAE,CAAC;IAAEJ,eAAe,EAAEH,CAAC,CAACI,MAAM,CAACe;EAAM,CAAC;EACrDC,IAAI,EAAE;IAAEb,MAAM,EAAE,CAAC;IAAEJ,eAAe,EAAEH,CAAC,CAACI,MAAM,CAACiB;EAAQ,CAAC;EACtDC,IAAI,EAAE;IACJC,GAAG,EAAEvB,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IACfa,UAAU,EAAExB,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IACtBD,iBAAiB,EAAEV,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IAC7Bc,aAAa,EAAEzB,CAAC,CAACW,KAAK,CAAC,CAAC;EAC1B,CAAC;EACDe,KAAK,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG,CAAC;EACvCC,MAAM,EAAE;IACNN,GAAG,EAAEvB,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IACfD,iBAAiB,EAAEV,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IAC7Ba,UAAU,EAAExB,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC;IACtBR,eAAe,EAAEH,CAAC,CAACI,MAAM,CAACC;EAC5B;AACF,CAAC,CAAC,CAAC;;AAEH;AACA,OAAO,SAASyB,UAAUA,CAAC;EACzBJ,KAAK;EACLK,KAAK;EACLC,OAAO,GAAG,CAAC;EACXC,MAAM;EACNC,SAAS,GAAG,IAAI;EAChBC,aAAa;EACbC,eAAe;EACfC,WAAW,GAAG,CAAC;EACfC;AACe,CAAC,EAAE;EAClB,MAAMtC,CAAC,GAAGP,QAAQ,CAAC,CAAC;EACpB,MAAM8C,CAAC,GAAGxC,SAAS,CAAC,CAAC;EACrB,MAAMyC,IAAI,GAAGT,KAAK,GAAGU,IAAI,CAACC,GAAG,CAACX,KAAK,EAAEU,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEX,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EAClE,oBACElC,KAAA,CAACZ,oBAAoB;IAAC0D,QAAQ,EAAC,SAAS;IAACC,KAAK,EAAEN,CAAC,CAACtC,IAAK;IAAAqC,QAAA,GACpDL,MAAM,gBACLrC,IAAA,CAACR,IAAI;MAACyD,KAAK,EAAEN,CAAC,CAACjC,MAAO;MAAAgC,QAAA,eACpB1C,IAAA,CAACJ,aAAa;QACZsD,OAAO,EAAEb,MAAO;QAChBc,kBAAkB,EAAEb,SAAU;QAC9BW,KAAK,EAAEN,CAAC,CAAC3B,IAAK;QAAA0B,QAAA,eAEd1C,IAAA,CAACR,IAAI;UAACyD,KAAK,EAAEN,CAAC,CAACxB,QAAS;UAAAuB,QAAA,eACtB1C,IAAA,CAACL,YAAY;YAACyD,KAAK,EAAEhD,CAAC,CAACI,MAAM,CAAC6C,UAAW;YAACC,IAAI,EAAE;UAAG,CAAE;QAAC,CAClD;MAAC,CACM;IAAC,CACZ,CAAC,GACL,IAAI,EACPnB,KAAK,gBACJnC,IAAA,CAACR,IAAI;MACH+D,iBAAiB,EAAC,aAAa;MAC/BJ,kBAAkB,EAAE,GAAGhB,KAAK,QAAQS,IAAI,IAAK;MAC7CY,kBAAkB,EAAE;QAAEV,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAEZ,KAAK;QAAEsB,GAAG,EAAEb;MAAK,CAAE;MACtDK,KAAK,EAAEN,CAAC,CAACrB,KAAM;MAAAoB,QAAA,eAEf1C,IAAA,CAACR,IAAI;QAACyD,KAAK,EAAE,CAACN,CAAC,CAACnB,IAAI,EAAE;UAAEP,KAAK,EAAE,GAAI2B,IAAI,GAAGT,KAAK,GAAI,GAAG;QAAI,CAAC;MAAE,CAAE;IAAC,CAC5D,CAAC,GACL,IAAI,eACRjC,KAAA,CAACX,UAAU;MACTmE,qBAAqB,EAAEf,CAAC,CAACjB,IAAK;MAC9BiC,yBAAyB,EAAC,SAAS;MAAAjB,QAAA,gBAEnC1C,IAAA,CAACN,IAAI;QAACkE,MAAM,EAAC,MAAM;QAACL,iBAAiB,EAAC,QAAQ;QAACN,KAAK,EAAEN,CAAC,CAACb,KAAM;QAAAY,QAAA,EAC3DZ;MAAK,CACF,CAAC,EACNY,QAAQ;IAAA,CACC,CAAC,eACbxC,KAAA,CAACV,IAAI;MAACyD,KAAK,EAAE,CAACN,CAAC,CAACV,MAAM,EAAE;QAAEJ,aAAa,EAAEzB,CAAC,CAACW,KAAK,CAAC,CAAC,CAAC,GAAG0B;MAAY,CAAC,CAAE;MAAAC,QAAA,gBACnE1C,IAAA,CAACP,MAAM;QACL6D,IAAI,EAAC,IAAI;QACTJ,OAAO,EAAEX,aAAa,CAACW,OAAQ;QAC/BW,QAAQ,EAAEtB,aAAa,CAACsB,QAAS;QACjCC,OAAO,EAAEvB,aAAa,CAACuB,OAAQ;QAAApB,QAAA,EAE9BH,aAAa,CAACwB;MAAK,CACd,CAAC,EACRvB,eAAe,gBACdxC,IAAA,CAACP,MAAM;QACLuE,OAAO,EAAC,OAAO;QACfd,OAAO,EAAEV,eAAe,CAACU,OAAQ;QACjCW,QAAQ,EAAErB,eAAe,CAACqB,QAAS;QACnCC,OAAO,EAAEtB,eAAe,CAACsB,OAAQ;QAAApB,QAAA,EAEhCF,eAAe,CAACuB;MAAK,CAChB,CAAC,GACP,IAAI;IAAA,CACJ,CAAC;EAAA,CACa,CAAC;AAE3B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SupplyItemCard"],"sourceRoot":"../../../../src","sources":["blocks/supply-item-card/index.ts"],"mappings":";;AAAA,SACEA,cAAc,QAIT,uBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { Button } from "../../components/button/button.js";
|
|
5
|
+
import { ChipGroup } from "../../components/chip-group/chip-group.js";
|
|
6
|
+
import { Photo } from "../../components/photo/photo.js";
|
|
7
|
+
import { formatPrice } from "../../components/price/price.js";
|
|
8
|
+
import { Text } from "../../components/text/text.js";
|
|
9
|
+
import { PressableBase } from "../../internal/pressable-base.js";
|
|
10
|
+
import { makeStyles } from "../../utils/styles.js";
|
|
11
|
+
import { Card } from "../internal/card.js";
|
|
12
|
+
|
|
13
|
+
/** 예) { id: 'm', label: '중 20×25cm' } */
|
|
14
|
+
|
|
15
|
+
/** 묶음 수량과 그 가격 */
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
const useStyles = makeStyles(t => ({
|
|
18
|
+
card: {
|
|
19
|
+
gap: t.space[4]
|
|
20
|
+
},
|
|
21
|
+
head: {
|
|
22
|
+
flexDirection: 'row',
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
gap: t.space[3]
|
|
25
|
+
},
|
|
26
|
+
image: {
|
|
27
|
+
width: 64
|
|
28
|
+
},
|
|
29
|
+
name: {
|
|
30
|
+
flex: 1
|
|
31
|
+
},
|
|
32
|
+
group: {
|
|
33
|
+
borderWidth: 1,
|
|
34
|
+
borderColor: t.colors.border,
|
|
35
|
+
borderRadius: 10,
|
|
36
|
+
overflow: 'hidden'
|
|
37
|
+
},
|
|
38
|
+
row: {
|
|
39
|
+
flexDirection: 'row',
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
gap: t.space[3],
|
|
42
|
+
minHeight: 52,
|
|
43
|
+
paddingHorizontal: 14
|
|
44
|
+
},
|
|
45
|
+
divided: {
|
|
46
|
+
borderTopWidth: 1,
|
|
47
|
+
borderTopColor: t.colors.border
|
|
48
|
+
},
|
|
49
|
+
pressed: {
|
|
50
|
+
backgroundColor: t.colors.muted
|
|
51
|
+
},
|
|
52
|
+
radio: {
|
|
53
|
+
width: 20,
|
|
54
|
+
height: 20,
|
|
55
|
+
borderRadius: 10,
|
|
56
|
+
borderWidth: 2,
|
|
57
|
+
borderColor: t.colors.input,
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
justifyContent: 'center'
|
|
60
|
+
},
|
|
61
|
+
radioOn: {
|
|
62
|
+
borderColor: t.colors.primary
|
|
63
|
+
},
|
|
64
|
+
radioDot: {
|
|
65
|
+
width: 10,
|
|
66
|
+
height: 10,
|
|
67
|
+
borderRadius: 5,
|
|
68
|
+
backgroundColor: t.colors.primary
|
|
69
|
+
},
|
|
70
|
+
quantity: {
|
|
71
|
+
flex: 1
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
|
|
75
|
+
/** 로고를 넣어 주문하는 공급 품목. 사이즈 · 수량을 고르고 담는다 */
|
|
76
|
+
export function SupplyItemCard({
|
|
77
|
+
name,
|
|
78
|
+
image,
|
|
79
|
+
options = [],
|
|
80
|
+
selectedOptionId = null,
|
|
81
|
+
onSelectOption,
|
|
82
|
+
quantities,
|
|
83
|
+
selectedQuantity,
|
|
84
|
+
onSelectQuantity,
|
|
85
|
+
unit = '장',
|
|
86
|
+
onAdd,
|
|
87
|
+
style
|
|
88
|
+
}) {
|
|
89
|
+
const s = useStyles();
|
|
90
|
+
const selected = quantities.find(q => q.quantity === selectedQuantity);
|
|
91
|
+
return /*#__PURE__*/_jsxs(Card, {
|
|
92
|
+
style: [s.card, style],
|
|
93
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
94
|
+
style: s.head,
|
|
95
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
96
|
+
style: s.image,
|
|
97
|
+
children: /*#__PURE__*/_jsx(Photo, {
|
|
98
|
+
source: image
|
|
99
|
+
})
|
|
100
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
101
|
+
variant: "bodyLg",
|
|
102
|
+
weight: "bold",
|
|
103
|
+
style: s.name,
|
|
104
|
+
children: name
|
|
105
|
+
})]
|
|
106
|
+
}), options.length > 1 ? /*#__PURE__*/_jsx(ChipGroup, {
|
|
107
|
+
items: options.map(o => ({
|
|
108
|
+
value: o.id,
|
|
109
|
+
label: o.label
|
|
110
|
+
})),
|
|
111
|
+
value: selectedOptionId,
|
|
112
|
+
onValueChange: id => id && onSelectOption?.(id)
|
|
113
|
+
}) : null, /*#__PURE__*/_jsx(View, {
|
|
114
|
+
accessibilityRole: "radiogroup",
|
|
115
|
+
style: s.group,
|
|
116
|
+
children: quantities.map((q, i) => {
|
|
117
|
+
const on = q.quantity === selectedQuantity;
|
|
118
|
+
const qty = `${formatPrice(q.quantity, '')}${unit}`;
|
|
119
|
+
return /*#__PURE__*/_jsxs(PressableBase, {
|
|
120
|
+
accessibilityRole: "radio",
|
|
121
|
+
accessibilityState: {
|
|
122
|
+
selected: on
|
|
123
|
+
},
|
|
124
|
+
accessibilityLabel: `${qty} ${formatPrice(q.price)}`,
|
|
125
|
+
pressedStyle: s.pressed,
|
|
126
|
+
onPress: () => onSelectQuantity(q.quantity),
|
|
127
|
+
style: [s.row, i > 0 && s.divided],
|
|
128
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
129
|
+
style: [s.radio, on && s.radioOn],
|
|
130
|
+
children: on ? /*#__PURE__*/_jsx(View, {
|
|
131
|
+
style: s.radioDot
|
|
132
|
+
}) : null
|
|
133
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
134
|
+
weight: on ? 'semibold' : undefined,
|
|
135
|
+
style: s.quantity,
|
|
136
|
+
children: qty
|
|
137
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
138
|
+
weight: on ? 'semibold' : undefined,
|
|
139
|
+
children: formatPrice(q.price)
|
|
140
|
+
})]
|
|
141
|
+
}, q.quantity);
|
|
142
|
+
})
|
|
143
|
+
}), onAdd ? /*#__PURE__*/_jsx(Button, {
|
|
144
|
+
size: "lg",
|
|
145
|
+
disabled: !selected,
|
|
146
|
+
onPress: onAdd,
|
|
147
|
+
children: selected ? `${formatPrice(selected.price)} 담기` : '담기'
|
|
148
|
+
}) : null]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=supply-item-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Button","ChipGroup","Photo","formatPrice","Text","PressableBase","makeStyles","Card","jsx","_jsx","jsxs","_jsxs","useStyles","t","card","gap","space","head","flexDirection","alignItems","image","width","name","flex","group","borderWidth","borderColor","colors","border","borderRadius","overflow","row","minHeight","paddingHorizontal","divided","borderTopWidth","borderTopColor","pressed","backgroundColor","muted","radio","height","input","justifyContent","radioOn","primary","radioDot","quantity","SupplyItemCard","options","selectedOptionId","onSelectOption","quantities","selectedQuantity","onSelectQuantity","unit","onAdd","style","s","selected","find","q","children","source","variant","weight","length","items","map","o","value","id","label","onValueChange","accessibilityRole","i","on","qty","accessibilityState","accessibilityLabel","price","pressedStyle","onPress","undefined","size","disabled"],"sourceRoot":"../../../../src","sources":["blocks/supply-item-card/supply-item-card.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LineChart","Sparkline"],"sourceRoot":"../../../src","sources":["charts/index.ts"],"mappings":";;AAAA,SAASA,SAAS,QAA8C,iBAAc;AAC9E,SAASC,SAAS,QAA6B,gBAAa","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import Svg, { Circle, Line, Path, Rect, Text as SvgText } from 'react-native-svg';
|
|
6
|
+
import { formatPrice } from "../components/price/price.js";
|
|
7
|
+
import { useTheme } from "../theme/theme-provider.js";
|
|
8
|
+
import { areaPath, labelStep, linearScale, linePath, niceTicks } from "./scale.js";
|
|
9
|
+
import { summarize } from "./summary.js";
|
|
10
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const defaultFormat = v => formatPrice(v, '');
|
|
12
|
+
const PAD = {
|
|
13
|
+
top: 8,
|
|
14
|
+
right: 12,
|
|
15
|
+
bottom: 24,
|
|
16
|
+
gap: 8
|
|
17
|
+
};
|
|
18
|
+
const FONT_SIZE = 11;
|
|
19
|
+
export function LineChart({
|
|
20
|
+
data,
|
|
21
|
+
height = 200,
|
|
22
|
+
formatY = defaultFormat,
|
|
23
|
+
formatX = label => label,
|
|
24
|
+
onPointPress,
|
|
25
|
+
accessibilityLabel,
|
|
26
|
+
style
|
|
27
|
+
}) {
|
|
28
|
+
const t = useTheme();
|
|
29
|
+
const [width, setWidth] = useState(0);
|
|
30
|
+
const values = data.map(d => d.value);
|
|
31
|
+
const ticks = niceTicks(Math.min(0, ...values), Math.max(0, ...values));
|
|
32
|
+
const yLabels = ticks.map(formatY);
|
|
33
|
+
const left = Math.max(...yLabels.map(l => l.length)) * FONT_SIZE * 0.62 + PAD.gap;
|
|
34
|
+
const plot = {
|
|
35
|
+
x0: left,
|
|
36
|
+
x1: width - PAD.right,
|
|
37
|
+
y0: PAD.top,
|
|
38
|
+
y1: height - PAD.bottom
|
|
39
|
+
};
|
|
40
|
+
const y = linearScale([ticks[0], ticks[ticks.length - 1]], [plot.y1, plot.y0]);
|
|
41
|
+
const x = linearScale([0, Math.max(1, data.length - 1)], [plot.x0, plot.x1]);
|
|
42
|
+
const points = data.map((d, i) => ({
|
|
43
|
+
x: data.length === 1 ? (plot.x0 + plot.x1) / 2 : x(i),
|
|
44
|
+
y: y(d.value)
|
|
45
|
+
}));
|
|
46
|
+
const step = labelStep(data.length, Math.max(1, Math.floor((plot.x1 - plot.x0) / 56)));
|
|
47
|
+
const last = points[points.length - 1];
|
|
48
|
+
const slot = data.length > 1 ? (plot.x1 - plot.x0) / (data.length - 1) : plot.x1 - plot.x0;
|
|
49
|
+
return /*#__PURE__*/_jsx(View, {
|
|
50
|
+
accessible: true,
|
|
51
|
+
accessibilityRole: "image",
|
|
52
|
+
accessibilityLabel: accessibilityLabel ?? summarize(values, formatY),
|
|
53
|
+
onLayout: e => setWidth(e.nativeEvent.layout.width),
|
|
54
|
+
style: [{
|
|
55
|
+
height
|
|
56
|
+
}, style],
|
|
57
|
+
children: width > 0 ? /*#__PURE__*/_jsxs(Svg, {
|
|
58
|
+
width: width,
|
|
59
|
+
height: height,
|
|
60
|
+
children: [ticks.map((tick, i) => /*#__PURE__*/_jsx(Line, {
|
|
61
|
+
x1: plot.x0,
|
|
62
|
+
x2: plot.x1,
|
|
63
|
+
y1: y(tick),
|
|
64
|
+
y2: y(tick),
|
|
65
|
+
stroke: t.colors.border,
|
|
66
|
+
strokeWidth: 1,
|
|
67
|
+
strokeDasharray: i === 0 ? undefined : '3 4'
|
|
68
|
+
}, `g${tick}`)), ticks.map((tick, i) => /*#__PURE__*/_jsx(SvgText, {
|
|
69
|
+
x: plot.x0 - PAD.gap,
|
|
70
|
+
y: y(tick) + FONT_SIZE / 3,
|
|
71
|
+
fontSize: FONT_SIZE,
|
|
72
|
+
fontFamily: t.fontFamily,
|
|
73
|
+
fill: t.colors.mutedForeground,
|
|
74
|
+
textAnchor: "end",
|
|
75
|
+
children: yLabels[i]
|
|
76
|
+
}, `y${tick}`)), data.map((d, i) => i % step === 0 || i === data.length - 1 ? /*#__PURE__*/_jsx(SvgText, {
|
|
77
|
+
x: points[i].x,
|
|
78
|
+
y: height - 6,
|
|
79
|
+
fontSize: FONT_SIZE,
|
|
80
|
+
fontFamily: t.fontFamily,
|
|
81
|
+
fill: t.colors.mutedForeground,
|
|
82
|
+
textAnchor: i === 0 && data.length > 1 ? 'start' : i === data.length - 1 && data.length > 1 ? 'end' : 'middle',
|
|
83
|
+
children: formatX(d.label, i)
|
|
84
|
+
}, `x${i}`) : null), points.length > 1 ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
85
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
86
|
+
d: areaPath(points, plot.y1),
|
|
87
|
+
fill: t.colors.primary,
|
|
88
|
+
fillOpacity: 0.12
|
|
89
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
90
|
+
d: linePath(points),
|
|
91
|
+
fill: "none",
|
|
92
|
+
stroke: t.colors.primary,
|
|
93
|
+
strokeWidth: 2,
|
|
94
|
+
strokeLinejoin: "round",
|
|
95
|
+
strokeLinecap: "round"
|
|
96
|
+
})]
|
|
97
|
+
}) : null, last ? /*#__PURE__*/_jsx(Circle, {
|
|
98
|
+
cx: last.x,
|
|
99
|
+
cy: last.y,
|
|
100
|
+
r: 4,
|
|
101
|
+
fill: t.colors.primary,
|
|
102
|
+
stroke: t.colors.background,
|
|
103
|
+
strokeWidth: 2
|
|
104
|
+
}) : null, onPointPress ? data.map((d, i) => /*#__PURE__*/_jsx(Rect, {
|
|
105
|
+
x: points[i].x - slot / 2,
|
|
106
|
+
y: plot.y0,
|
|
107
|
+
width: slot,
|
|
108
|
+
height: plot.y1 - plot.y0,
|
|
109
|
+
fill: "transparent",
|
|
110
|
+
onPress: () => onPointPress(d, i)
|
|
111
|
+
}, `hit${i}`)) : null]
|
|
112
|
+
}) : null
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=line-chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","View","Svg","Circle","Line","Path","Rect","Text","SvgText","formatPrice","useTheme","areaPath","labelStep","linearScale","linePath","niceTicks","summarize","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","defaultFormat","v","PAD","top","right","bottom","gap","FONT_SIZE","LineChart","data","height","formatY","formatX","label","onPointPress","accessibilityLabel","style","t","width","setWidth","values","map","d","value","ticks","Math","min","max","yLabels","left","l","length","plot","x0","x1","y0","y1","y","x","points","i","step","floor","last","slot","accessible","accessibilityRole","onLayout","e","nativeEvent","layout","children","tick","x2","y2","stroke","colors","border","strokeWidth","strokeDasharray","undefined","fontSize","fontFamily","fill","mutedForeground","textAnchor","primary","fillOpacity","strokeLinejoin","strokeLinecap","cx","cy","r","background","onPress"],"sourceRoot":"../../../src","sources":["charts/line-chart.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const STEPS = [1, 2, 2.5, 5, 10];
|
|
4
|
+
|
|
5
|
+
/** 보기 좋은 눈금. 값이 하나뿐이거나 모두 같아도 범위를 만든다 */
|
|
6
|
+
export function niceTicks(min, max, count = 4) {
|
|
7
|
+
let lo = Math.min(min, max);
|
|
8
|
+
let hi = Math.max(min, max);
|
|
9
|
+
if (!Number.isFinite(lo) || !Number.isFinite(hi)) return [0, 1];
|
|
10
|
+
if (lo === hi) {
|
|
11
|
+
if (hi === 0) hi = 1;else if (hi > 0) lo = 0;else hi = 0;
|
|
12
|
+
}
|
|
13
|
+
const raw = (hi - lo) / Math.max(1, count - 1);
|
|
14
|
+
const magnitude = 10 ** Math.floor(Math.log10(raw));
|
|
15
|
+
const step = (STEPS.find(s => s * magnitude >= raw) ?? 10) * magnitude;
|
|
16
|
+
const start = Math.floor(lo / step) * step;
|
|
17
|
+
const end = Math.ceil(hi / step) * step;
|
|
18
|
+
const ticks = [];
|
|
19
|
+
for (let v = start; v <= end + step / 2; v += step) {
|
|
20
|
+
ticks.push(Math.round(v / step) * step);
|
|
21
|
+
}
|
|
22
|
+
return ticks;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** [d0, d1] → [r0, r1] 선형 변환. 범위 폭이 0이면 가운데로 */
|
|
26
|
+
export function linearScale(domain, range) {
|
|
27
|
+
const [d0, d1] = domain;
|
|
28
|
+
const [r0, r1] = range;
|
|
29
|
+
return v => d1 === d0 ? (r0 + r1) / 2 : r0 + (v - d0) / (d1 - d0) * (r1 - r0);
|
|
30
|
+
}
|
|
31
|
+
export function linePath(points) {
|
|
32
|
+
return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ');
|
|
33
|
+
}
|
|
34
|
+
export function areaPath(points, baseline) {
|
|
35
|
+
if (points.length === 0) return '';
|
|
36
|
+
const first = points[0];
|
|
37
|
+
const last = points[points.length - 1];
|
|
38
|
+
return `${linePath(points)} L${last.x},${baseline} L${first.x},${baseline} Z`;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** 라벨이 겹치지 않게 최대 maxLabels개만 남길 간격 */
|
|
42
|
+
export function labelStep(count, maxLabels) {
|
|
43
|
+
return Math.max(1, Math.ceil(count / Math.max(1, maxLabels)));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=scale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["STEPS","niceTicks","min","max","count","lo","Math","hi","Number","isFinite","raw","magnitude","floor","log10","step","find","s","start","end","ceil","ticks","v","push","round","linearScale","domain","range","d0","d1","r0","r1","linePath","points","map","p","i","x","y","join","areaPath","baseline","length","first","last","labelStep","maxLabels"],"sourceRoot":"../../../src","sources":["charts/scale.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import Svg, { Path } from 'react-native-svg';
|
|
5
|
+
import { formatPrice } from "../components/price/price.js";
|
|
6
|
+
import { useTheme } from "../theme/theme-provider.js";
|
|
7
|
+
import { linearScale, linePath } from "./scale.js";
|
|
8
|
+
import { summarize } from "./summary.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
/** 축 없는 작은 추세선 */
|
|
11
|
+
export function Sparkline({
|
|
12
|
+
data,
|
|
13
|
+
width = 80,
|
|
14
|
+
height = 24,
|
|
15
|
+
color,
|
|
16
|
+
accessibilityLabel,
|
|
17
|
+
style
|
|
18
|
+
}) {
|
|
19
|
+
const t = useTheme();
|
|
20
|
+
const values = [...data];
|
|
21
|
+
const stroke = 1.5;
|
|
22
|
+
const y = linearScale([Math.min(...values), Math.max(...values)], [height - stroke, stroke]);
|
|
23
|
+
const x = linearScale([0, Math.max(1, values.length - 1)], [stroke, width - stroke]);
|
|
24
|
+
const points = values.map((v, i) => ({
|
|
25
|
+
x: x(i),
|
|
26
|
+
y: y(v)
|
|
27
|
+
}));
|
|
28
|
+
return /*#__PURE__*/_jsx(View, {
|
|
29
|
+
accessible: true,
|
|
30
|
+
accessibilityRole: "image",
|
|
31
|
+
accessibilityLabel: accessibilityLabel ?? summarize(values, v => formatPrice(v, '')),
|
|
32
|
+
style: [{
|
|
33
|
+
width,
|
|
34
|
+
height
|
|
35
|
+
}, style],
|
|
36
|
+
children: points.length > 1 ? /*#__PURE__*/_jsx(Svg, {
|
|
37
|
+
width: width,
|
|
38
|
+
height: height,
|
|
39
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
40
|
+
d: linePath(points),
|
|
41
|
+
fill: "none",
|
|
42
|
+
stroke: color ?? t.colors.primary,
|
|
43
|
+
strokeWidth: stroke,
|
|
44
|
+
strokeLinejoin: "round",
|
|
45
|
+
strokeLinecap: "round"
|
|
46
|
+
})
|
|
47
|
+
}) : null
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Svg","Path","formatPrice","useTheme","linearScale","linePath","summarize","jsx","_jsx","Sparkline","data","width","height","color","accessibilityLabel","style","t","values","stroke","y","Math","min","max","x","length","points","map","v","i","accessible","accessibilityRole","children","d","fill","colors","primary","strokeWidth","strokeLinejoin","strokeLinecap"],"sourceRoot":"../../../src","sources":["charts/sparkline.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwC,cAAc;AACnE,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAC5C,SAASC,WAAW,QAAQ,8BAA2B;AACvD,SAASC,QAAQ,QAAQ,4BAAyB;AAClD,SAASC,WAAW,EAAEC,QAAQ,QAAQ,YAAS;AAC/C,SAASC,SAAS,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AActC;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,IAAI;EACJC,KAAK,GAAG,EAAE;EACVC,MAAM,GAAG,EAAE;EACXC,KAAK;EACLC,kBAAkB;EAClBC;AACc,CAAC,EAAE;EACjB,MAAMC,CAAC,GAAGb,QAAQ,CAAC,CAAC;EACpB,MAAMc,MAAM,GAAG,CAAC,GAAGP,IAAI,CAAC;EACxB,MAAMQ,MAAM,GAAG,GAAG;EAClB,MAAMC,CAAC,GAAGf,WAAW,CACnB,CAACgB,IAAI,CAACC,GAAG,CAAC,GAAGJ,MAAM,CAAC,EAAEG,IAAI,CAACE,GAAG,CAAC,GAAGL,MAAM,CAAC,CAAC,EAC1C,CAACL,MAAM,GAAGM,MAAM,EAAEA,MAAM,CAC1B,CAAC;EACD,MAAMK,CAAC,GAAGnB,WAAW,CACnB,CAAC,CAAC,EAAEgB,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEL,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC,CAAC,EACnC,CAACN,MAAM,EAAEP,KAAK,GAAGO,MAAM,CACzB,CAAC;EACD,MAAMO,MAAM,GAAGR,MAAM,CAACS,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,MAAM;IAAEL,CAAC,EAAEA,CAAC,CAACK,CAAC,CAAC;IAAET,CAAC,EAAEA,CAAC,CAACQ,CAAC;EAAE,CAAC,CAAC,CAAC;EAC3D,oBACEnB,IAAA,CAACT,IAAI;IACH8B,UAAU;IACVC,iBAAiB,EAAC,OAAO;IACzBhB,kBAAkB,EAChBA,kBAAkB,IAAIR,SAAS,CAACW,MAAM,EAAGU,CAAC,IAAKzB,WAAW,CAACyB,CAAC,EAAE,EAAE,CAAC,CAClE;IACDZ,KAAK,EAAE,CAAC;MAAEJ,KAAK;MAAEC;IAAO,CAAC,EAAEG,KAAK,CAAE;IAAAgB,QAAA,EAEjCN,MAAM,CAACD,MAAM,GAAG,CAAC,gBAChBhB,IAAA,CAACR,GAAG;MAACW,KAAK,EAAEA,KAAM;MAACC,MAAM,EAAEA,MAAO;MAAAmB,QAAA,eAChCvB,IAAA,CAACP,IAAI;QACH+B,CAAC,EAAE3B,QAAQ,CAACoB,MAAM,CAAE;QACpBQ,IAAI,EAAC,MAAM;QACXf,MAAM,EAAEL,KAAK,IAAIG,CAAC,CAACkB,MAAM,CAACC,OAAQ;QAClCC,WAAW,EAAElB,MAAO;QACpBmB,cAAc,EAAC,OAAO;QACtBC,aAAa,EAAC;MAAO,CACtB;IAAC,CACC,CAAC,GACJ;EAAI,CACJ,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/** 차트 전체를 한 문장으로. 스크린 리더용 */
|
|
4
|
+
export function summarize(values, format) {
|
|
5
|
+
if (values.length === 0) return '데이터 없음';
|
|
6
|
+
const max = Math.max(...values);
|
|
7
|
+
const min = Math.min(...values);
|
|
8
|
+
const last = values[values.length - 1];
|
|
9
|
+
return `${values.length}개 구간, 최고 ${format(max)}, 최저 ${format(min)}, 마지막 ${format(last)}`;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["summarize","values","format","length","max","Math","min","last"],"sourceRoot":"../../../src","sources":["charts/summary.ts"],"mappings":";;AAAA;AACA,OAAO,SAASA,SAASA,CACvBC,MAAgB,EAChBC,MAA6B,EACrB;EACR,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,QAAQ;EACxC,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,GAAGH,MAAM,CAAC;EAC/B,MAAMK,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,GAAGL,MAAM,CAAC;EAC/B,MAAMM,IAAI,GAAGN,MAAM,CAACA,MAAM,CAACE,MAAM,GAAG,CAAC,CAAE;EACvC,OAAO,GAAGF,MAAM,CAACE,MAAM,YAAYD,MAAM,CAACE,GAAG,CAAC,QAAQF,MAAM,CAACI,GAAG,CAAC,SAASJ,MAAM,CAACK,IAAI,CAAC,EAAE;AAC1F","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["charts.tsx"],"mappings":";;AAAA,cAAc,mBAAgB;AAC9B,cAAc,+BAA4B","ignoreList":[]}
|