@vritti/quantum-ui 0.4.4 → 0.5.1
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/Avatar.js +4 -4
- package/dist/Button.js +3 -2
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox2.js +2 -2
- package/dist/CurrencyField.js +6 -2
- package/dist/CurrencyField.js.map +1 -1
- package/dist/CurrencySelector.js +20 -177
- package/dist/CurrencySelector.js.map +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/PermissionGate.js +22 -7
- package/dist/PermissionGate.js.map +1 -1
- package/dist/Progress.js +2 -2
- package/dist/RadioGroup.js +2 -2
- package/dist/Sidebar.js +1 -1
- package/dist/Switch.js +8 -6
- package/dist/Switch.js.map +1 -1
- package/dist/TabsSkeleton.js +1 -1
- package/dist/Toggle.js +1 -1
- package/dist/assets/quantum-ui.css +0 -4
- package/dist/components/RichTextEditor.js +1 -1
- package/dist/currencies.js +179 -0
- package/dist/currencies.js.map +1 -0
- package/dist/dropdown-menu.js +2 -2
- package/dist/image-component.js +1 -1
- package/dist/index.js +2 -39
- package/dist/index.js.map +1 -1
- package/dist/index14.js +1 -1
- package/dist/index15.js +3 -3
- package/dist/index16.js +1 -1
- package/dist/index17.js +1 -1
- package/dist/index22.js +1 -1
- package/dist/index25.js +1 -1
- package/dist/index26.js +2 -2
- package/dist/index29.js +1123 -35
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +36 -308
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +307 -7
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +8 -30
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +29 -59
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +59 -10
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +10 -35
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +27 -35341
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +35341 -70
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +72 -187
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +199 -0
- package/dist/index39.js.map +1 -0
- package/dist/lib/components/Button/Button.d.ts.map +1 -1
- package/dist/lib/components/CurrencyField/CurrencyField.d.ts.map +1 -1
- package/dist/lib/components/PermissionGate/PermissionGate.d.ts +5 -3
- package/dist/lib/components/PermissionGate/PermissionGate.d.ts.map +1 -1
- package/dist/lib/components/Switch/Switch.d.ts.map +1 -1
- package/dist/lib/components/index.d.ts +0 -2
- package/dist/lib/components/index.d.ts.map +1 -1
- package/dist/lib/selects/index.d.ts +0 -34
- package/dist/lib/selects/index.d.ts.map +1 -1
- package/dist/lib/types/catalog-resolver.d.ts +4 -4
- package/dist/lib/types/catalog-resolver.d.ts.map +1 -1
- package/dist/selects/currency.js +1 -2
- package/dist/selects/currency.js.map +1 -1
- package/dist/types/catalog-resolver.js.map +1 -1
- package/dist/utils/motion.js +2 -2
- package/dist/value.js +1 -1
- package/package.json +12 -176
- package/dist/AppSelector.js +0 -37
- package/dist/AppSelector.js.map +0 -1
- package/dist/BillingCycleSelector.js +0 -37
- package/dist/BillingCycleSelector.js.map +0 -1
- package/dist/BusinessSelector.js +0 -37
- package/dist/BusinessSelector.js.map +0 -1
- package/dist/CategoryFilter.js +0 -42
- package/dist/CategoryFilter.js.map +0 -1
- package/dist/CloudProviderSelector.js +0 -37
- package/dist/CloudProviderSelector.js.map +0 -1
- package/dist/Combination.js +0 -1129
- package/dist/Combination.js.map +0 -1
- package/dist/CompanySelector.js +0 -20
- package/dist/CompanySelector.js.map +0 -1
- package/dist/CountrySelector.js +0 -37
- package/dist/CountrySelector.js.map +0 -1
- package/dist/CurrencyFilter.js +0 -25
- package/dist/CurrencyFilter.js.map +0 -1
- package/dist/CustomerSelector.js +0 -37
- package/dist/CustomerSelector.js.map +0 -1
- package/dist/DeploymentSelector.js +0 -37
- package/dist/DeploymentSelector.js.map +0 -1
- package/dist/FeaturePermissionSelector.js +0 -37
- package/dist/FeaturePermissionSelector.js.map +0 -1
- package/dist/FeatureSelector.js +0 -37
- package/dist/FeatureSelector.js.map +0 -1
- package/dist/InventoryItemSelector.js +0 -40
- package/dist/InventoryItemSelector.js.map +0 -1
- package/dist/LegalEntitySelector.js +0 -37
- package/dist/LegalEntitySelector.js.map +0 -1
- package/dist/LocationSelector.js +0 -45
- package/dist/LocationSelector.js.map +0 -1
- package/dist/LotSelector.js +0 -39
- package/dist/LotSelector.js.map +0 -1
- package/dist/MicrofrontendSelector.js +0 -19
- package/dist/MicrofrontendSelector.js.map +0 -1
- package/dist/ModifierGroupSelector.js +0 -24
- package/dist/ModifierGroupSelector.js.map +0 -1
- package/dist/OfferingSelector.js +0 -21
- package/dist/OfferingSelector.js.map +0 -1
- package/dist/OfferingVariantSelector.js +0 -24
- package/dist/OfferingVariantSelector.js.map +0 -1
- package/dist/PersonSelector.js +0 -20
- package/dist/PersonSelector.js.map +0 -1
- package/dist/PlanSelector.js +0 -37
- package/dist/PlanSelector.js.map +0 -1
- package/dist/PurchaseOrderSelector.js +0 -44
- package/dist/PurchaseOrderSelector.js.map +0 -1
- package/dist/QuantSelector.js +0 -73
- package/dist/QuantSelector.js.map +0 -1
- package/dist/RegionSelector.js +0 -37
- package/dist/RegionSelector.js.map +0 -1
- package/dist/RepositorySelector.js +0 -20
- package/dist/RepositorySelector.js.map +0 -1
- package/dist/RoleSelector.js +0 -20
- package/dist/RoleSelector.js.map +0 -1
- package/dist/SerialSelector.js +0 -39
- package/dist/SerialSelector.js.map +0 -1
- package/dist/SiteGroupSelector.js +0 -37
- package/dist/SiteGroupSelector.js.map +0 -1
- package/dist/SiteSelector.js +0 -37
- package/dist/SiteSelector.js.map +0 -1
- package/dist/SupplierItemSelector.js +0 -75
- package/dist/SupplierItemSelector.js.map +0 -1
- package/dist/SupplierSelector.js +0 -51
- package/dist/SupplierSelector.js.map +0 -1
- package/dist/TaxClassSelector.js +0 -20
- package/dist/TaxClassSelector.js.map +0 -1
- package/dist/UomSelector.js +0 -43
- package/dist/UomSelector.js.map +0 -1
- package/dist/UserSelector.js +0 -37
- package/dist/UserSelector.js.map +0 -1
- package/dist/VariantOptionSelector.js +0 -25
- package/dist/VariantOptionSelector.js.map +0 -1
- package/dist/VersionSelector.js +0 -37
- package/dist/VersionSelector.js.map +0 -1
- package/dist/components/CompanySelector.js +0 -2
- package/dist/components/CompanySelector.js.map +0 -1
- package/dist/components/PersonSelector.js +0 -2
- package/dist/components/PersonSelector.js.map +0 -1
- package/dist/lib/components/CompanySelector/CompanySelector.d.ts +0 -4
- package/dist/lib/components/CompanySelector/CompanySelector.d.ts.map +0 -1
- package/dist/lib/components/CompanySelector/index.d.ts +0 -2
- package/dist/lib/components/CompanySelector/index.d.ts.map +0 -1
- package/dist/lib/components/PersonSelector/PersonSelector.d.ts +0 -4
- package/dist/lib/components/PersonSelector/PersonSelector.d.ts.map +0 -1
- package/dist/lib/components/PersonSelector/index.d.ts +0 -2
- package/dist/lib/components/PersonSelector/index.d.ts.map +0 -1
- package/dist/lib/selects/app/AppFilter.d.ts +0 -12
- package/dist/lib/selects/app/AppFilter.d.ts.map +0 -1
- package/dist/lib/selects/app/AppSelector.d.ts +0 -4
- package/dist/lib/selects/app/AppSelector.d.ts.map +0 -1
- package/dist/lib/selects/app/index.d.ts +0 -3
- package/dist/lib/selects/app/index.d.ts.map +0 -1
- package/dist/lib/selects/app-code/AppCodeFilter.d.ts +0 -12
- package/dist/lib/selects/app-code/AppCodeFilter.d.ts.map +0 -1
- package/dist/lib/selects/app-code/AppCodeSelector.d.ts +0 -4
- package/dist/lib/selects/app-code/AppCodeSelector.d.ts.map +0 -1
- package/dist/lib/selects/app-code/index.d.ts +0 -3
- package/dist/lib/selects/app-code/index.d.ts.map +0 -1
- package/dist/lib/selects/billing-cycle/BillingCycleFilter.d.ts +0 -12
- package/dist/lib/selects/billing-cycle/BillingCycleFilter.d.ts.map +0 -1
- package/dist/lib/selects/billing-cycle/BillingCycleSelector.d.ts +0 -4
- package/dist/lib/selects/billing-cycle/BillingCycleSelector.d.ts.map +0 -1
- package/dist/lib/selects/billing-cycle/index.d.ts +0 -3
- package/dist/lib/selects/billing-cycle/index.d.ts.map +0 -1
- package/dist/lib/selects/business/BusinessFilter.d.ts +0 -12
- package/dist/lib/selects/business/BusinessFilter.d.ts.map +0 -1
- package/dist/lib/selects/business/BusinessSelector.d.ts +0 -4
- package/dist/lib/selects/business/BusinessSelector.d.ts.map +0 -1
- package/dist/lib/selects/business/index.d.ts +0 -3
- package/dist/lib/selects/business/index.d.ts.map +0 -1
- package/dist/lib/selects/category/CategoryFilter.d.ts +0 -12
- package/dist/lib/selects/category/CategoryFilter.d.ts.map +0 -1
- package/dist/lib/selects/category/CategorySelector.d.ts +0 -5
- package/dist/lib/selects/category/CategorySelector.d.ts.map +0 -1
- package/dist/lib/selects/category/index.d.ts +0 -3
- package/dist/lib/selects/category/index.d.ts.map +0 -1
- package/dist/lib/selects/cloud-provider/CloudProviderFilter.d.ts +0 -12
- package/dist/lib/selects/cloud-provider/CloudProviderFilter.d.ts.map +0 -1
- package/dist/lib/selects/cloud-provider/CloudProviderSelector.d.ts +0 -4
- package/dist/lib/selects/cloud-provider/CloudProviderSelector.d.ts.map +0 -1
- package/dist/lib/selects/cloud-provider/index.d.ts +0 -3
- package/dist/lib/selects/cloud-provider/index.d.ts.map +0 -1
- package/dist/lib/selects/cost-category/CostCategoryFilter.d.ts +0 -12
- package/dist/lib/selects/cost-category/CostCategoryFilter.d.ts.map +0 -1
- package/dist/lib/selects/cost-category/CostCategorySelector.d.ts +0 -4
- package/dist/lib/selects/cost-category/CostCategorySelector.d.ts.map +0 -1
- package/dist/lib/selects/cost-category/index.d.ts +0 -3
- package/dist/lib/selects/cost-category/index.d.ts.map +0 -1
- package/dist/lib/selects/country/CountryFilter.d.ts +0 -12
- package/dist/lib/selects/country/CountryFilter.d.ts.map +0 -1
- package/dist/lib/selects/country/CountrySelector.d.ts +0 -4
- package/dist/lib/selects/country/CountrySelector.d.ts.map +0 -1
- package/dist/lib/selects/country/index.d.ts +0 -3
- package/dist/lib/selects/country/index.d.ts.map +0 -1
- package/dist/lib/selects/customer/CustomerFilter.d.ts +0 -12
- package/dist/lib/selects/customer/CustomerFilter.d.ts.map +0 -1
- package/dist/lib/selects/customer/CustomerSelector.d.ts +0 -4
- package/dist/lib/selects/customer/CustomerSelector.d.ts.map +0 -1
- package/dist/lib/selects/customer/index.d.ts +0 -3
- package/dist/lib/selects/customer/index.d.ts.map +0 -1
- package/dist/lib/selects/deployment/DeploymentFilter.d.ts +0 -12
- package/dist/lib/selects/deployment/DeploymentFilter.d.ts.map +0 -1
- package/dist/lib/selects/deployment/DeploymentSelector.d.ts +0 -4
- package/dist/lib/selects/deployment/DeploymentSelector.d.ts.map +0 -1
- package/dist/lib/selects/deployment/index.d.ts +0 -3
- package/dist/lib/selects/deployment/index.d.ts.map +0 -1
- package/dist/lib/selects/feature/FeatureFilter.d.ts +0 -12
- package/dist/lib/selects/feature/FeatureFilter.d.ts.map +0 -1
- package/dist/lib/selects/feature/FeatureSelector.d.ts +0 -4
- package/dist/lib/selects/feature/FeatureSelector.d.ts.map +0 -1
- package/dist/lib/selects/feature/index.d.ts +0 -3
- package/dist/lib/selects/feature/index.d.ts.map +0 -1
- package/dist/lib/selects/feature-permission/FeaturePermissionFilter.d.ts +0 -12
- package/dist/lib/selects/feature-permission/FeaturePermissionFilter.d.ts.map +0 -1
- package/dist/lib/selects/feature-permission/FeaturePermissionSelector.d.ts +0 -4
- package/dist/lib/selects/feature-permission/FeaturePermissionSelector.d.ts.map +0 -1
- package/dist/lib/selects/feature-permission/index.d.ts +0 -3
- package/dist/lib/selects/feature-permission/index.d.ts.map +0 -1
- package/dist/lib/selects/inventory-item/InventoryItemFilter.d.ts +0 -12
- package/dist/lib/selects/inventory-item/InventoryItemFilter.d.ts.map +0 -1
- package/dist/lib/selects/inventory-item/InventoryItemSelector.d.ts +0 -4
- package/dist/lib/selects/inventory-item/InventoryItemSelector.d.ts.map +0 -1
- package/dist/lib/selects/inventory-item/index.d.ts +0 -3
- package/dist/lib/selects/inventory-item/index.d.ts.map +0 -1
- package/dist/lib/selects/legal-entity/LegalEntityFilter.d.ts +0 -12
- package/dist/lib/selects/legal-entity/LegalEntityFilter.d.ts.map +0 -1
- package/dist/lib/selects/legal-entity/LegalEntitySelector.d.ts +0 -4
- package/dist/lib/selects/legal-entity/LegalEntitySelector.d.ts.map +0 -1
- package/dist/lib/selects/legal-entity/index.d.ts +0 -3
- package/dist/lib/selects/legal-entity/index.d.ts.map +0 -1
- package/dist/lib/selects/location/LocationFilter.d.ts +0 -12
- package/dist/lib/selects/location/LocationFilter.d.ts.map +0 -1
- package/dist/lib/selects/location/LocationSelector.d.ts +0 -5
- package/dist/lib/selects/location/LocationSelector.d.ts.map +0 -1
- package/dist/lib/selects/location/index.d.ts +0 -3
- package/dist/lib/selects/location/index.d.ts.map +0 -1
- package/dist/lib/selects/lot/LotFilter.d.ts +0 -17
- package/dist/lib/selects/lot/LotFilter.d.ts.map +0 -1
- package/dist/lib/selects/lot/LotSelector.d.ts +0 -11
- package/dist/lib/selects/lot/LotSelector.d.ts.map +0 -1
- package/dist/lib/selects/lot/index.d.ts +0 -3
- package/dist/lib/selects/lot/index.d.ts.map +0 -1
- package/dist/lib/selects/microfrontend/MicrofrontendSelector.d.ts +0 -4
- package/dist/lib/selects/microfrontend/MicrofrontendSelector.d.ts.map +0 -1
- package/dist/lib/selects/microfrontend/index.d.ts +0 -2
- package/dist/lib/selects/microfrontend/index.d.ts.map +0 -1
- package/dist/lib/selects/modifier-group/ModifierGroupSelector.d.ts +0 -8
- package/dist/lib/selects/modifier-group/ModifierGroupSelector.d.ts.map +0 -1
- package/dist/lib/selects/modifier-group/index.d.ts +0 -2
- package/dist/lib/selects/modifier-group/index.d.ts.map +0 -1
- package/dist/lib/selects/offering/OfferingSelector.d.ts +0 -4
- package/dist/lib/selects/offering/OfferingSelector.d.ts.map +0 -1
- package/dist/lib/selects/offering/index.d.ts +0 -2
- package/dist/lib/selects/offering/index.d.ts.map +0 -1
- package/dist/lib/selects/offering-variant/OfferingVariantSelector.d.ts +0 -6
- package/dist/lib/selects/offering-variant/OfferingVariantSelector.d.ts.map +0 -1
- package/dist/lib/selects/offering-variant/index.d.ts +0 -2
- package/dist/lib/selects/offering-variant/index.d.ts.map +0 -1
- package/dist/lib/selects/permission-group/PermissionGroupSelector.d.ts +0 -4
- package/dist/lib/selects/permission-group/PermissionGroupSelector.d.ts.map +0 -1
- package/dist/lib/selects/permission-group/index.d.ts +0 -2
- package/dist/lib/selects/permission-group/index.d.ts.map +0 -1
- package/dist/lib/selects/plan/PlanFilter.d.ts +0 -12
- package/dist/lib/selects/plan/PlanFilter.d.ts.map +0 -1
- package/dist/lib/selects/plan/PlanSelector.d.ts +0 -4
- package/dist/lib/selects/plan/PlanSelector.d.ts.map +0 -1
- package/dist/lib/selects/plan/index.d.ts +0 -3
- package/dist/lib/selects/plan/index.d.ts.map +0 -1
- package/dist/lib/selects/purchase-order/PurchaseOrderFilter.d.ts +0 -12
- package/dist/lib/selects/purchase-order/PurchaseOrderFilter.d.ts.map +0 -1
- package/dist/lib/selects/purchase-order/PurchaseOrderSelector.d.ts +0 -4
- package/dist/lib/selects/purchase-order/PurchaseOrderSelector.d.ts.map +0 -1
- package/dist/lib/selects/purchase-order/index.d.ts +0 -3
- package/dist/lib/selects/purchase-order/index.d.ts.map +0 -1
- package/dist/lib/selects/purchase-order-item/PurchaseOrderItemSelector.d.ts +0 -12
- package/dist/lib/selects/purchase-order-item/PurchaseOrderItemSelector.d.ts.map +0 -1
- package/dist/lib/selects/purchase-order-item/index.d.ts +0 -2
- package/dist/lib/selects/purchase-order-item/index.d.ts.map +0 -1
- package/dist/lib/selects/quant/QuantFilter.d.ts +0 -12
- package/dist/lib/selects/quant/QuantFilter.d.ts.map +0 -1
- package/dist/lib/selects/quant/QuantSelector.d.ts +0 -5
- package/dist/lib/selects/quant/QuantSelector.d.ts.map +0 -1
- package/dist/lib/selects/quant/index.d.ts +0 -3
- package/dist/lib/selects/quant/index.d.ts.map +0 -1
- package/dist/lib/selects/region/RegionFilter.d.ts +0 -12
- package/dist/lib/selects/region/RegionFilter.d.ts.map +0 -1
- package/dist/lib/selects/region/RegionSelector.d.ts +0 -4
- package/dist/lib/selects/region/RegionSelector.d.ts.map +0 -1
- package/dist/lib/selects/region/index.d.ts +0 -3
- package/dist/lib/selects/region/index.d.ts.map +0 -1
- package/dist/lib/selects/repository/RepositorySelector.d.ts +0 -4
- package/dist/lib/selects/repository/RepositorySelector.d.ts.map +0 -1
- package/dist/lib/selects/repository/index.d.ts +0 -2
- package/dist/lib/selects/repository/index.d.ts.map +0 -1
- package/dist/lib/selects/role/RoleSelector.d.ts +0 -4
- package/dist/lib/selects/role/RoleSelector.d.ts.map +0 -1
- package/dist/lib/selects/role/index.d.ts +0 -2
- package/dist/lib/selects/role/index.d.ts.map +0 -1
- package/dist/lib/selects/serial/SerialFilter.d.ts +0 -17
- package/dist/lib/selects/serial/SerialFilter.d.ts.map +0 -1
- package/dist/lib/selects/serial/SerialSelector.d.ts +0 -11
- package/dist/lib/selects/serial/SerialSelector.d.ts.map +0 -1
- package/dist/lib/selects/serial/index.d.ts +0 -3
- package/dist/lib/selects/serial/index.d.ts.map +0 -1
- package/dist/lib/selects/site/SiteFilter.d.ts +0 -12
- package/dist/lib/selects/site/SiteFilter.d.ts.map +0 -1
- package/dist/lib/selects/site/SiteSelector.d.ts +0 -4
- package/dist/lib/selects/site/SiteSelector.d.ts.map +0 -1
- package/dist/lib/selects/site/index.d.ts +0 -3
- package/dist/lib/selects/site/index.d.ts.map +0 -1
- package/dist/lib/selects/site-group/SiteGroupFilter.d.ts +0 -12
- package/dist/lib/selects/site-group/SiteGroupFilter.d.ts.map +0 -1
- package/dist/lib/selects/site-group/SiteGroupSelector.d.ts +0 -4
- package/dist/lib/selects/site-group/SiteGroupSelector.d.ts.map +0 -1
- package/dist/lib/selects/site-group/index.d.ts +0 -3
- package/dist/lib/selects/site-group/index.d.ts.map +0 -1
- package/dist/lib/selects/supplier/SupplierFilter.d.ts +0 -12
- package/dist/lib/selects/supplier/SupplierFilter.d.ts.map +0 -1
- package/dist/lib/selects/supplier/SupplierSelector.d.ts +0 -4
- package/dist/lib/selects/supplier/SupplierSelector.d.ts.map +0 -1
- package/dist/lib/selects/supplier/index.d.ts +0 -3
- package/dist/lib/selects/supplier/index.d.ts.map +0 -1
- package/dist/lib/selects/supplier-item/SupplierItemFilter.d.ts +0 -15
- package/dist/lib/selects/supplier-item/SupplierItemFilter.d.ts.map +0 -1
- package/dist/lib/selects/supplier-item/SupplierItemSelector.d.ts +0 -13
- package/dist/lib/selects/supplier-item/SupplierItemSelector.d.ts.map +0 -1
- package/dist/lib/selects/supplier-item/index.d.ts +0 -3
- package/dist/lib/selects/supplier-item/index.d.ts.map +0 -1
- package/dist/lib/selects/tax-class/TaxClassSelector.d.ts +0 -4
- package/dist/lib/selects/tax-class/TaxClassSelector.d.ts.map +0 -1
- package/dist/lib/selects/tax-class/index.d.ts +0 -2
- package/dist/lib/selects/tax-class/index.d.ts.map +0 -1
- package/dist/lib/selects/tax-group/TaxGroupFilter.d.ts +0 -12
- package/dist/lib/selects/tax-group/TaxGroupFilter.d.ts.map +0 -1
- package/dist/lib/selects/tax-group/TaxGroupSelector.d.ts +0 -4
- package/dist/lib/selects/tax-group/TaxGroupSelector.d.ts.map +0 -1
- package/dist/lib/selects/tax-group/index.d.ts +0 -3
- package/dist/lib/selects/tax-group/index.d.ts.map +0 -1
- package/dist/lib/selects/uom/UomFilter.d.ts +0 -12
- package/dist/lib/selects/uom/UomFilter.d.ts.map +0 -1
- package/dist/lib/selects/uom/UomSelector.d.ts +0 -4
- package/dist/lib/selects/uom/UomSelector.d.ts.map +0 -1
- package/dist/lib/selects/uom/index.d.ts +0 -3
- package/dist/lib/selects/uom/index.d.ts.map +0 -1
- package/dist/lib/selects/user/UserFilter.d.ts +0 -12
- package/dist/lib/selects/user/UserFilter.d.ts.map +0 -1
- package/dist/lib/selects/user/UserSelector.d.ts +0 -4
- package/dist/lib/selects/user/UserSelector.d.ts.map +0 -1
- package/dist/lib/selects/user/index.d.ts +0 -3
- package/dist/lib/selects/user/index.d.ts.map +0 -1
- package/dist/lib/selects/variant-option/VariantOptionSelector.d.ts +0 -8
- package/dist/lib/selects/variant-option/VariantOptionSelector.d.ts.map +0 -1
- package/dist/lib/selects/variant-option/index.d.ts +0 -2
- package/dist/lib/selects/variant-option/index.d.ts.map +0 -1
- package/dist/lib/selects/version/VersionFilter.d.ts +0 -12
- package/dist/lib/selects/version/VersionFilter.d.ts.map +0 -1
- package/dist/lib/selects/version/VersionSelector.d.ts +0 -4
- package/dist/lib/selects/version/VersionSelector.d.ts.map +0 -1
- package/dist/lib/selects/version/index.d.ts +0 -3
- package/dist/lib/selects/version/index.d.ts.map +0 -1
- package/dist/selects/app-code.js +0 -37
- package/dist/selects/app-code.js.map +0 -1
- package/dist/selects/app.js +0 -2
- package/dist/selects/app.js.map +0 -1
- package/dist/selects/billing-cycle.js +0 -2
- package/dist/selects/billing-cycle.js.map +0 -1
- package/dist/selects/business.js +0 -2
- package/dist/selects/business.js.map +0 -1
- package/dist/selects/category.js +0 -2
- package/dist/selects/category.js.map +0 -1
- package/dist/selects/cloud-provider.js +0 -2
- package/dist/selects/cloud-provider.js.map +0 -1
- package/dist/selects/cost-category.js +0 -50
- package/dist/selects/cost-category.js.map +0 -1
- package/dist/selects/country.js +0 -2
- package/dist/selects/country.js.map +0 -1
- package/dist/selects/customer.js +0 -2
- package/dist/selects/customer.js.map +0 -1
- package/dist/selects/deployment.js +0 -2
- package/dist/selects/deployment.js.map +0 -1
- package/dist/selects/feature-permission.js +0 -2
- package/dist/selects/feature-permission.js.map +0 -1
- package/dist/selects/feature.js +0 -2
- package/dist/selects/feature.js.map +0 -1
- package/dist/selects/inventory-item.js +0 -2
- package/dist/selects/inventory-item.js.map +0 -1
- package/dist/selects/legal-entity.js +0 -2
- package/dist/selects/legal-entity.js.map +0 -1
- package/dist/selects/location.js +0 -2
- package/dist/selects/location.js.map +0 -1
- package/dist/selects/lot.js +0 -2
- package/dist/selects/lot.js.map +0 -1
- package/dist/selects/microfrontend.js +0 -2
- package/dist/selects/microfrontend.js.map +0 -1
- package/dist/selects/modifier-group.js +0 -2
- package/dist/selects/modifier-group.js.map +0 -1
- package/dist/selects/offering-variant.js +0 -2
- package/dist/selects/offering-variant.js.map +0 -1
- package/dist/selects/offering.js +0 -2
- package/dist/selects/offering.js.map +0 -1
- package/dist/selects/permission-group.js +0 -21
- package/dist/selects/permission-group.js.map +0 -1
- package/dist/selects/plan.js +0 -2
- package/dist/selects/plan.js.map +0 -1
- package/dist/selects/purchase-order-item.js +0 -58
- package/dist/selects/purchase-order-item.js.map +0 -1
- package/dist/selects/purchase-order.js +0 -2
- package/dist/selects/purchase-order.js.map +0 -1
- package/dist/selects/quant.js +0 -2
- package/dist/selects/quant.js.map +0 -1
- package/dist/selects/region.js +0 -2
- package/dist/selects/region.js.map +0 -1
- package/dist/selects/repository.js +0 -2
- package/dist/selects/repository.js.map +0 -1
- package/dist/selects/role.js +0 -2
- package/dist/selects/role.js.map +0 -1
- package/dist/selects/serial.js +0 -2
- package/dist/selects/serial.js.map +0 -1
- package/dist/selects/site-group.js +0 -2
- package/dist/selects/site-group.js.map +0 -1
- package/dist/selects/site.js +0 -2
- package/dist/selects/site.js.map +0 -1
- package/dist/selects/supplier-item.js +0 -2
- package/dist/selects/supplier-item.js.map +0 -1
- package/dist/selects/supplier.js +0 -2
- package/dist/selects/supplier.js.map +0 -1
- package/dist/selects/tax-class.js +0 -2
- package/dist/selects/tax-class.js.map +0 -1
- package/dist/selects/tax-group.js +0 -37
- package/dist/selects/tax-group.js.map +0 -1
- package/dist/selects/uom.js +0 -2
- package/dist/selects/uom.js.map +0 -1
- package/dist/selects/user.js +0 -2
- package/dist/selects/user.js.map +0 -1
- package/dist/selects/variant-option.js +0 -2
- package/dist/selects/variant-option.js.map +0 -1
- package/dist/selects/version.js +0 -2
- package/dist/selects/version.js.map +0 -1
package/dist/Avatar.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { c as createContextScope } from './
|
|
4
|
-
import { u as useCallbackRef } from './
|
|
3
|
+
import { c as createContextScope } from './index34.js';
|
|
4
|
+
import { u as useCallbackRef } from './index32.js';
|
|
5
5
|
import { u as useLayoutEffect2 } from './index28.js';
|
|
6
|
-
import { P as Primitive } from './
|
|
7
|
-
import { r as requireShim } from './
|
|
6
|
+
import { P as Primitive } from './index30.js';
|
|
7
|
+
import { r as requireShim } from './index39.js';
|
|
8
8
|
import { c as cn } from './utils.js';
|
|
9
9
|
|
|
10
10
|
var shimExports = requireShim();
|
package/dist/Button.js
CHANGED
|
@@ -20,11 +20,12 @@ const Button = forwardRef(
|
|
|
20
20
|
asChild,
|
|
21
21
|
...props
|
|
22
22
|
}, ref) => {
|
|
23
|
-
const
|
|
23
|
+
const gate = usePermission(permission);
|
|
24
|
+
const { granted, locked, reason } = gate;
|
|
24
25
|
if (!granted) {
|
|
25
26
|
return null;
|
|
26
27
|
}
|
|
27
|
-
const lockTip = locked ? lockedTip(
|
|
28
|
+
const lockTip = locked ? lockedTip(gate) : void 0;
|
|
28
29
|
const isActuallyDisabled = disabled === true || locked;
|
|
29
30
|
const button = /* @__PURE__ */ jsx(
|
|
30
31
|
Button$1,
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../lib/components/Button/Button.tsx"],"sourcesContent":["import type React from 'react';\nimport { forwardRef } from 'react';\nimport { buttonVariants, Button as ShadcnButton } from '../../../shadcn/shadcnButton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../shadcn/shadcnTooltip';\nimport { cn } from '../../../shadcn/utils';\nimport { lockedTip, PermissionLockIcon, usePermission } from '../PermissionGate';\nimport { Spinner } from '../Spinner';\n\nexport interface ButtonProps extends React.ComponentProps<typeof ShadcnButton> {\n isLoading?: boolean;\n loadingText?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n disabledTip?: string;\n permission?: string;\n}\n\n// Button with built-in loading state, adornment support, and optional permission gating\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n isLoading = false,\n loadingText,\n startAdornment,\n endAdornment,\n disabled,\n disabledTip,\n permission,\n className,\n asChild,\n ...props\n },\n ref,\n ) => {\n const { granted, locked, reason
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../lib/components/Button/Button.tsx"],"sourcesContent":["import type React from 'react';\nimport { forwardRef } from 'react';\nimport { buttonVariants, Button as ShadcnButton } from '../../../shadcn/shadcnButton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../shadcn/shadcnTooltip';\nimport { cn } from '../../../shadcn/utils';\nimport { lockedTip, PermissionLockIcon, usePermission } from '../PermissionGate';\nimport { Spinner } from '../Spinner';\n\nexport interface ButtonProps extends React.ComponentProps<typeof ShadcnButton> {\n isLoading?: boolean;\n loadingText?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n disabledTip?: string;\n permission?: string;\n}\n\n// Button with built-in loading state, adornment support, and optional permission gating\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n isLoading = false,\n loadingText,\n startAdornment,\n endAdornment,\n disabled,\n disabledTip,\n permission,\n className,\n asChild,\n ...props\n },\n ref,\n ) => {\n const gate = usePermission(permission);\n const { granted, locked, reason } = gate;\n\n // render = role: the role doesn't grant this action, so the control doesn't exist for this user\n if (!granted) {\n return null;\n }\n\n // enable = role ∧ plan ∧ BU: granted but locked renders disabled with the upsell as its tooltip\n const lockTip = locked ? lockedTip(gate) : undefined;\n const isActuallyDisabled = disabled === true || locked;\n\n const button = (\n <ShadcnButton\n ref={ref}\n asChild={asChild}\n disabled={disabled || isLoading || locked}\n aria-busy={isLoading}\n className={cn(isLoading && 'cursor-wait', className)}\n {...props}\n >\n {isLoading ? (\n <>\n <Spinner className=\"mr-2\" />\n {loadingText ?? children}\n </>\n ) : (\n <>\n {locked ? <PermissionLockIcon reason={reason} className=\"size-3.5\" /> : startAdornment}\n {children}\n {endAdornment}\n </>\n )}\n </ShadcnButton>\n );\n\n const tip = lockTip ?? disabledTip;\n if (!tip || !isActuallyDisabled || asChild) {\n return button;\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n {/* Disabled buttons do not emit hover/focus events, so the tooltip trigger lives on a wrapper. */}\n <span className=\"inline-flex max-w-full cursor-not-allowed\">{button}</span>\n </TooltipTrigger>\n <TooltipContent>{tip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n },\n);\n\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"],"names":["ShadcnButton"],"mappings":";;;;;;;;AAkBA,MAAM,MAAA,GAAS,UAAA;AAAA,EACb,CACE;AAAA,IACE,QAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GAAO,cAAc,UAAU,CAAA;AACrC,IAAA,MAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAO,GAAI,IAAA;AAGpC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAGA,IAAA,MAAM,OAAA,GAAU,MAAA,GAAS,SAAA,CAAU,IAAI,CAAA,GAAI,MAAA;AAC3C,IAAA,MAAM,kBAAA,GAAqB,aAAa,IAAA,IAAQ,MAAA;AAEhD,IAAA,MAAM,MAAA,mBACJ,GAAA;AAAA,MAACA,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,YAAY,SAAA,IAAa,MAAA;AAAA,QACnC,WAAA,EAAW,SAAA;AAAA,QACX,SAAA,EAAW,EAAA,CAAG,SAAA,IAAa,aAAA,EAAe,SAAS,CAAA;AAAA,QAClD,GAAG,KAAA;AAAA,QAEH,sCACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,WAAU,MAAA,EAAO,CAAA;AAAA,UACzB,WAAA,IAAe;AAAA,SAAA,EAClB,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,MAAA,mBAAS,GAAA,CAAC,kBAAA,EAAA,EAAmB,MAAA,EAAgB,SAAA,EAAU,YAAW,CAAA,GAAK,cAAA;AAAA,UACvE,QAAA;AAAA,UACA;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAGF,IAAA,MAAM,MAAM,OAAA,IAAW,WAAA;AACvB,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,kBAAA,IAAsB,OAAA,EAAS;AAC1C,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAO,IAAA,EAErB,QAAA,kBAAA,GAAA,CAAC,UAAK,SAAA,EAAU,2CAAA,EAA6C,kBAAO,CAAA,EACtE,CAAA;AAAA,sBACA,GAAA,CAAC,kBAAgB,QAAA,EAAA,GAAA,EAAI;AAAA,KAAA,EACvB,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
|
package/dist/Checkbox2.js
CHANGED
|
@@ -3,8 +3,8 @@ import * as React from 'react';
|
|
|
3
3
|
import { u as useComposedRefs } from './index12.js';
|
|
4
4
|
import { P as Presence, c as createContextScope } from './index21.js';
|
|
5
5
|
import { P as Primitive, u as useControllableState, c as composeEventHandlers } from './index20.js';
|
|
6
|
-
import { u as usePrevious } from './
|
|
7
|
-
import { u as useSize } from './
|
|
6
|
+
import { u as usePrevious } from './index35.js';
|
|
7
|
+
import { u as useSize } from './index36.js';
|
|
8
8
|
import { c as cn } from './utils.js';
|
|
9
9
|
import { C as Check } from './check.js';
|
|
10
10
|
|
package/dist/CurrencyField.js
CHANGED
|
@@ -2,8 +2,9 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { F as Field, e as FieldLabel, a as FieldContent, b as FieldDescription, c as FieldError } from './field.js';
|
|
4
4
|
import { c as cn } from './utils.js';
|
|
5
|
-
import { C as
|
|
5
|
+
import { C as CURRENCIES } from './currencies.js';
|
|
6
6
|
import { getCurrencyExponent } from './utils/currency.js';
|
|
7
|
+
import { S as Select } from './Select.js';
|
|
7
8
|
import { C as ChevronDown } from './chevron-down.js';
|
|
8
9
|
import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip2.js';
|
|
9
10
|
|
|
@@ -123,8 +124,11 @@ const CurrencyField = React__default.forwardRef(
|
|
|
123
124
|
children: currency
|
|
124
125
|
}
|
|
125
126
|
) : /* @__PURE__ */ jsx("div", { className: "flex items-center border-r border-input", children: /* @__PURE__ */ jsx(
|
|
126
|
-
|
|
127
|
+
Select,
|
|
127
128
|
{
|
|
129
|
+
options: CURRENCIES,
|
|
130
|
+
searchable: true,
|
|
131
|
+
placeholder: "Select currency",
|
|
128
132
|
value: currency,
|
|
129
133
|
onChange: handleCurrencyChange,
|
|
130
134
|
disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrencyField.js","sources":["../lib/components/CurrencyField/CurrencyField.tsx"],"sourcesContent":["import { ChevronDown } from 'lucide-react';\nimport React from 'react';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../shadcn/shadcnTooltip';\nimport { cn } from '../../../shadcn/utils';\nimport { CurrencySelector } from '../../selects/currency/CurrencySelector';\nimport { type CurrencyValue, getCurrencyExponent } from '../../utils/currency';\nimport type { SelectValue } from '../Select';\n\nexport interface CurrencyFieldProps {\n name?: string;\n\n value?: CurrencyValue;\n\n onChange?: (value: CurrencyValue) => void;\n\n currencyCode?: string;\n\n defaultCurrencyCode?: string;\n\n label?: React.ReactNode;\n\n description?: React.ReactNode;\n\n error?: React.ReactNode;\n\n disabled?: boolean;\n\n disabledTip?: string;\n\n placeholder?: string;\n\n className?: string;\n\n required?: boolean;\n}\n\n// Truncates an amount string to at most `decimals` fractional digits\nfunction truncateDecimals(amount: string, decimals: number): string {\n if (amount === '') return amount;\n if (!Number.isFinite(Number(amount))) return amount;\n const [whole, fraction] = amount.split('.');\n if (decimals === 0) return whole ?? '';\n if (fraction === undefined) return amount;\n if (fraction.length <= decimals) return amount;\n return `${whole}.${fraction.slice(0, decimals)}`;\n}\n\n// Returns the `step` attribute for an input given a currency exponent\nfunction stepForDecimals(decimals: number): string {\n if (decimals <= 0) return '1';\n return `0.${'0'.repeat(decimals - 1)}1`;\n}\n\n// Currency-aware money input combining a currency selector with an exponent-aware amount input\nexport const CurrencyField = React.forwardRef<HTMLInputElement, CurrencyFieldProps>(\n (\n {\n name: _name,\n value,\n onChange,\n currencyCode,\n defaultCurrencyCode = 'USD',\n label,\n description,\n error,\n disabled,\n disabledTip,\n placeholder,\n className,\n required,\n },\n ref,\n ) => {\n const fieldId = React.useId();\n const hasError = !!error;\n const isLocked = !!currencyCode;\n\n const initialCurrency = value?.currency ?? currencyCode ?? defaultCurrencyCode ?? 'USD';\n const [currency, setCurrency] = React.useState<string>(initialCurrency);\n const [amount, setAmount] = React.useState<string>(value?.value ?? '');\n\n // Sync with external controlled value changes\n // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally omitting internal state to avoid feedback loops\n React.useEffect(() => {\n if (value?.currency !== undefined && value.currency !== currency) {\n setCurrency(value.currency);\n }\n if (value?.value !== undefined && value.value !== amount) {\n setAmount(value.value);\n }\n }, [value?.currency, value?.value]);\n\n // If currencyCode prop changes while locked, reflect it\n // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally omitting internal state to avoid feedback loops\n React.useEffect(() => {\n if (currencyCode && currencyCode !== currency) {\n setCurrency(currencyCode);\n }\n }, [currencyCode]);\n\n const decimals = getCurrencyExponent(currency);\n const step = stepForDecimals(decimals);\n\n const emit = React.useCallback(\n (nextCurrency: string, nextAmount: string) => {\n onChange?.({ currency: nextCurrency, value: nextAmount });\n },\n [onChange],\n );\n\n const handleCurrencyChange = React.useCallback(\n (nextValue: SelectValue) => {\n if (nextValue == null) return;\n const nextCurrency = String(nextValue);\n const nextDecimals = getCurrencyExponent(nextCurrency);\n const truncated = truncateDecimals(amount, nextDecimals);\n setCurrency(nextCurrency);\n if (truncated !== amount) setAmount(truncated);\n emit(nextCurrency, truncated);\n },\n [amount, emit],\n );\n\n const handleAmountChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const raw = event.target.value;\n // Allow empty, digits, and a single decimal separator; cap fractional digits\n if (raw === '') {\n setAmount('');\n emit(currency, '');\n return;\n }\n // Strict numeric pattern -- reject anything else silently\n if (!/^\\d*\\.?\\d*$/.test(raw)) return;\n const truncated = truncateDecimals(raw, decimals);\n setAmount(truncated);\n emit(currency, truncated);\n },\n [currency, decimals, emit],\n );\n\n const handleAmountBlur = React.useCallback(() => {\n if (amount === '' || amount === '.') return;\n const parsed = Number(amount);\n if (!Number.isFinite(parsed)) return;\n const snapped = parsed.toFixed(decimals);\n if (snapped !== amount) {\n setAmount(snapped);\n emit(currency, snapped);\n }\n }, [amount, currency, decimals, emit]);\n\n const field = (\n <Field data-disabled={disabled}>\n {label && <FieldLabel htmlFor={fieldId}>{label}</FieldLabel>}\n\n <FieldContent>\n <div\n className={cn(\n 'flex h-9 w-full items-stretch rounded-md border border-input bg-transparent dark:bg-input/30 shadow-xs transition-[color,box-shadow]',\n 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[1px]',\n disabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n hasError && 'border-destructive focus-within:ring-destructive/20 dark:focus-within:ring-destructive/40',\n className,\n )}\n >\n {isLocked ? (\n <span\n role=\"img\"\n aria-label={`Currency ${currency}`}\n className=\"flex items-center justify-center border-r border-input px-3 text-sm font-medium text-muted-foreground select-none\"\n >\n {currency}\n </span>\n ) : (\n <div className=\"flex items-center border-r border-input\">\n <CurrencySelector\n value={currency}\n onChange={handleCurrencyChange}\n disabled={disabled}\n clearable={false}\n label=\"\"\n contentClassName=\"min-w-[280px] w-auto\"\n anchor={({ selectedOption, open, disabled: anchorDisabled }) => (\n <button\n type=\"button\"\n disabled={anchorDisabled}\n aria-label=\"Select currency\"\n aria-expanded={open}\n className={cn(\n 'flex h-full items-center gap-1 px-3 text-sm font-medium text-foreground outline-none',\n 'hover:bg-accent/50 focus-visible:bg-accent/50',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n )}\n >\n <span>{selectedOption ? String(selectedOption.value) : currency}</span>\n <ChevronDown\n className={cn('size-3.5 text-muted-foreground transition-transform', open && 'rotate-180')}\n />\n </button>\n )}\n />\n </div>\n )}\n\n <input\n ref={ref}\n id={fieldId}\n type=\"text\"\n inputMode=\"decimal\"\n pattern=\"^[0-9]*\\.?[0-9]*$\"\n step={step}\n value={amount}\n onChange={handleAmountChange}\n onBlur={handleAmountBlur}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n className={cn(\n 'flex-1 min-w-0 bg-transparent px-3 py-1 text-sm outline-none',\n 'placeholder:text-muted-foreground',\n 'disabled:cursor-not-allowed',\n )}\n />\n </div>\n\n {description && !error && <FieldDescription id={`${fieldId}-description`}>{description}</FieldDescription>}\n {error && <FieldError id={`${fieldId}-error`}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n\n if (!disabledTip || !disabled) {\n return field;\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n {/* Disabled inputs don't emit hover/focus events, so the trigger lives on a wrapper. */}\n <TooltipTrigger asChild>\n <span className=\"inline-flex w-full cursor-not-allowed\">{field}</span>\n </TooltipTrigger>\n <TooltipContent>{disabledTip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n },\n);\n\nCurrencyField.displayName = 'CurrencyField';\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CurrencyField.js","sources":["../lib/components/CurrencyField/CurrencyField.tsx"],"sourcesContent":["import { ChevronDown } from 'lucide-react';\nimport React from 'react';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../shadcn/shadcnTooltip';\nimport { cn } from '../../../shadcn/utils';\nimport { CURRENCIES } from '../../selects/currency/currencies';\nimport { type CurrencyValue, getCurrencyExponent } from '../../utils/currency';\nimport { Select, type SelectValue } from '../Select';\n\nexport interface CurrencyFieldProps {\n name?: string;\n\n value?: CurrencyValue;\n\n onChange?: (value: CurrencyValue) => void;\n\n currencyCode?: string;\n\n defaultCurrencyCode?: string;\n\n label?: React.ReactNode;\n\n description?: React.ReactNode;\n\n error?: React.ReactNode;\n\n disabled?: boolean;\n\n disabledTip?: string;\n\n placeholder?: string;\n\n className?: string;\n\n required?: boolean;\n}\n\n// Truncates an amount string to at most `decimals` fractional digits\nfunction truncateDecimals(amount: string, decimals: number): string {\n if (amount === '') return amount;\n if (!Number.isFinite(Number(amount))) return amount;\n const [whole, fraction] = amount.split('.');\n if (decimals === 0) return whole ?? '';\n if (fraction === undefined) return amount;\n if (fraction.length <= decimals) return amount;\n return `${whole}.${fraction.slice(0, decimals)}`;\n}\n\n// Returns the `step` attribute for an input given a currency exponent\nfunction stepForDecimals(decimals: number): string {\n if (decimals <= 0) return '1';\n return `0.${'0'.repeat(decimals - 1)}1`;\n}\n\n// Currency-aware money input combining a currency selector with an exponent-aware amount input\nexport const CurrencyField = React.forwardRef<HTMLInputElement, CurrencyFieldProps>(\n (\n {\n name: _name,\n value,\n onChange,\n currencyCode,\n defaultCurrencyCode = 'USD',\n label,\n description,\n error,\n disabled,\n disabledTip,\n placeholder,\n className,\n required,\n },\n ref,\n ) => {\n const fieldId = React.useId();\n const hasError = !!error;\n const isLocked = !!currencyCode;\n\n const initialCurrency = value?.currency ?? currencyCode ?? defaultCurrencyCode ?? 'USD';\n const [currency, setCurrency] = React.useState<string>(initialCurrency);\n const [amount, setAmount] = React.useState<string>(value?.value ?? '');\n\n // Sync with external controlled value changes\n // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally omitting internal state to avoid feedback loops\n React.useEffect(() => {\n if (value?.currency !== undefined && value.currency !== currency) {\n setCurrency(value.currency);\n }\n if (value?.value !== undefined && value.value !== amount) {\n setAmount(value.value);\n }\n }, [value?.currency, value?.value]);\n\n // If currencyCode prop changes while locked, reflect it\n // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally omitting internal state to avoid feedback loops\n React.useEffect(() => {\n if (currencyCode && currencyCode !== currency) {\n setCurrency(currencyCode);\n }\n }, [currencyCode]);\n\n const decimals = getCurrencyExponent(currency);\n const step = stepForDecimals(decimals);\n\n const emit = React.useCallback(\n (nextCurrency: string, nextAmount: string) => {\n onChange?.({ currency: nextCurrency, value: nextAmount });\n },\n [onChange],\n );\n\n const handleCurrencyChange = React.useCallback(\n (nextValue: SelectValue) => {\n if (nextValue == null) return;\n const nextCurrency = String(nextValue);\n const nextDecimals = getCurrencyExponent(nextCurrency);\n const truncated = truncateDecimals(amount, nextDecimals);\n setCurrency(nextCurrency);\n if (truncated !== amount) setAmount(truncated);\n emit(nextCurrency, truncated);\n },\n [amount, emit],\n );\n\n const handleAmountChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const raw = event.target.value;\n // Allow empty, digits, and a single decimal separator; cap fractional digits\n if (raw === '') {\n setAmount('');\n emit(currency, '');\n return;\n }\n // Strict numeric pattern -- reject anything else silently\n if (!/^\\d*\\.?\\d*$/.test(raw)) return;\n const truncated = truncateDecimals(raw, decimals);\n setAmount(truncated);\n emit(currency, truncated);\n },\n [currency, decimals, emit],\n );\n\n const handleAmountBlur = React.useCallback(() => {\n if (amount === '' || amount === '.') return;\n const parsed = Number(amount);\n if (!Number.isFinite(parsed)) return;\n const snapped = parsed.toFixed(decimals);\n if (snapped !== amount) {\n setAmount(snapped);\n emit(currency, snapped);\n }\n }, [amount, currency, decimals, emit]);\n\n const field = (\n <Field data-disabled={disabled}>\n {label && <FieldLabel htmlFor={fieldId}>{label}</FieldLabel>}\n\n <FieldContent>\n <div\n className={cn(\n 'flex h-9 w-full items-stretch rounded-md border border-input bg-transparent dark:bg-input/30 shadow-xs transition-[color,box-shadow]',\n 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[1px]',\n disabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n hasError && 'border-destructive focus-within:ring-destructive/20 dark:focus-within:ring-destructive/40',\n className,\n )}\n >\n {isLocked ? (\n <span\n role=\"img\"\n aria-label={`Currency ${currency}`}\n className=\"flex items-center justify-center border-r border-input px-3 text-sm font-medium text-muted-foreground select-none\"\n >\n {currency}\n </span>\n ) : (\n <div className=\"flex items-center border-r border-input\">\n <Select\n options={CURRENCIES}\n searchable\n placeholder=\"Select currency\"\n value={currency}\n onChange={handleCurrencyChange}\n disabled={disabled}\n clearable={false}\n label=\"\"\n contentClassName=\"min-w-[280px] w-auto\"\n anchor={({ selectedOption, open, disabled: anchorDisabled }) => (\n <button\n type=\"button\"\n disabled={anchorDisabled}\n aria-label=\"Select currency\"\n aria-expanded={open}\n className={cn(\n 'flex h-full items-center gap-1 px-3 text-sm font-medium text-foreground outline-none',\n 'hover:bg-accent/50 focus-visible:bg-accent/50',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n )}\n >\n <span>{selectedOption ? String(selectedOption.value) : currency}</span>\n <ChevronDown\n className={cn('size-3.5 text-muted-foreground transition-transform', open && 'rotate-180')}\n />\n </button>\n )}\n />\n </div>\n )}\n\n <input\n ref={ref}\n id={fieldId}\n type=\"text\"\n inputMode=\"decimal\"\n pattern=\"^[0-9]*\\.?[0-9]*$\"\n step={step}\n value={amount}\n onChange={handleAmountChange}\n onBlur={handleAmountBlur}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n className={cn(\n 'flex-1 min-w-0 bg-transparent px-3 py-1 text-sm outline-none',\n 'placeholder:text-muted-foreground',\n 'disabled:cursor-not-allowed',\n )}\n />\n </div>\n\n {description && !error && <FieldDescription id={`${fieldId}-description`}>{description}</FieldDescription>}\n {error && <FieldError id={`${fieldId}-error`}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n\n if (!disabledTip || !disabled) {\n return field;\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n {/* Disabled inputs don't emit hover/focus events, so the trigger lives on a wrapper. */}\n <TooltipTrigger asChild>\n <span className=\"inline-flex w-full cursor-not-allowed\">{field}</span>\n </TooltipTrigger>\n <TooltipContent>{disabledTip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n },\n);\n\nCurrencyField.displayName = 'CurrencyField';\n"],"names":["React"],"mappings":"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"}
|
package/dist/CurrencySelector.js
CHANGED
|
@@ -1,183 +1,26 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
+
import { S as SelectFilter } from './SelectFilter.js';
|
|
4
|
+
import { C as CURRENCIES } from './currencies.js';
|
|
3
5
|
import { S as Select } from './Select.js';
|
|
4
6
|
|
|
5
|
-
const
|
|
6
|
-
{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
{ value: "BMD", label: "BMD - Bermudan Dollar" },
|
|
23
|
-
{ value: "BND", label: "BND - Brunei Dollar" },
|
|
24
|
-
{ value: "BOB", label: "BOB - Bolivian Boliviano" },
|
|
25
|
-
{ value: "BOV", label: "BOV - Bolivian Mvdol" },
|
|
26
|
-
{ value: "BRL", label: "BRL - Brazilian Real" },
|
|
27
|
-
{ value: "BSD", label: "BSD - Bahamian Dollar" },
|
|
28
|
-
{ value: "BTN", label: "BTN - Bhutanese Ngultrum" },
|
|
29
|
-
{ value: "BWP", label: "BWP - Botswanan Pula" },
|
|
30
|
-
{ value: "BYN", label: "BYN - Belarusian Ruble" },
|
|
31
|
-
{ value: "BZD", label: "BZD - Belize Dollar" },
|
|
32
|
-
{ value: "CAD", label: "CAD - Canadian Dollar" },
|
|
33
|
-
{ value: "CDF", label: "CDF - Congolese Franc" },
|
|
34
|
-
{ value: "CHE", label: "CHE - WIR Euro" },
|
|
35
|
-
{ value: "CHF", label: "CHF - Swiss Franc" },
|
|
36
|
-
{ value: "CHW", label: "CHW - WIR Franc" },
|
|
37
|
-
{ value: "CLF", label: "CLF - Chilean Unit of Account (UF)" },
|
|
38
|
-
{ value: "CLP", label: "CLP - Chilean Peso" },
|
|
39
|
-
{ value: "CNY", label: "CNY - Chinese Yuan" },
|
|
40
|
-
{ value: "COP", label: "COP - Colombian Peso" },
|
|
41
|
-
{ value: "COU", label: "COU - Unidad de Valor Real" },
|
|
42
|
-
{ value: "CRC", label: "CRC - Costa Rican Colon" },
|
|
43
|
-
{ value: "CUP", label: "CUP - Cuban Peso" },
|
|
44
|
-
{ value: "CVE", label: "CVE - Cape Verdean Escudo" },
|
|
45
|
-
{ value: "CZK", label: "CZK - Czech Koruna" },
|
|
46
|
-
{ value: "DJF", label: "DJF - Djiboutian Franc" },
|
|
47
|
-
{ value: "DKK", label: "DKK - Danish Krone" },
|
|
48
|
-
{ value: "DOP", label: "DOP - Dominican Peso" },
|
|
49
|
-
{ value: "DZD", label: "DZD - Algerian Dinar" },
|
|
50
|
-
{ value: "EGP", label: "EGP - Egyptian Pound" },
|
|
51
|
-
{ value: "ERN", label: "ERN - Eritrean Nakfa" },
|
|
52
|
-
{ value: "ETB", label: "ETB - Ethiopian Birr" },
|
|
53
|
-
{ value: "EUR", label: "EUR - Euro" },
|
|
54
|
-
{ value: "FJD", label: "FJD - Fijian Dollar" },
|
|
55
|
-
{ value: "FKP", label: "FKP - Falkland Islands Pound" },
|
|
56
|
-
{ value: "GBP", label: "GBP - British Pound Sterling" },
|
|
57
|
-
{ value: "GEL", label: "GEL - Georgian Lari" },
|
|
58
|
-
{ value: "GHS", label: "GHS - Ghanaian Cedi" },
|
|
59
|
-
{ value: "GIP", label: "GIP - Gibraltar Pound" },
|
|
60
|
-
{ value: "GMD", label: "GMD - Gambian Dalasi" },
|
|
61
|
-
{ value: "GNF", label: "GNF - Guinean Franc" },
|
|
62
|
-
{ value: "GTQ", label: "GTQ - Guatemalan Quetzal" },
|
|
63
|
-
{ value: "GYD", label: "GYD - Guyanaese Dollar" },
|
|
64
|
-
{ value: "HKD", label: "HKD - Hong Kong Dollar" },
|
|
65
|
-
{ value: "HNL", label: "HNL - Honduran Lempira" },
|
|
66
|
-
{ value: "HRK", label: "HRK - Croatian Kuna" },
|
|
67
|
-
{ value: "HTG", label: "HTG - Haitian Gourde" },
|
|
68
|
-
{ value: "HUF", label: "HUF - Hungarian Forint" },
|
|
69
|
-
{ value: "IDR", label: "IDR - Indonesian Rupiah" },
|
|
70
|
-
{ value: "ILS", label: "ILS - Israeli New Shekel" },
|
|
71
|
-
{ value: "INR", label: "INR - Indian Rupee" },
|
|
72
|
-
{ value: "IQD", label: "IQD - Iraqi Dinar" },
|
|
73
|
-
{ value: "IRR", label: "IRR - Iranian Rial" },
|
|
74
|
-
{ value: "ISK", label: "ISK - Icelandic Krona" },
|
|
75
|
-
{ value: "JMD", label: "JMD - Jamaican Dollar" },
|
|
76
|
-
{ value: "JOD", label: "JOD - Jordanian Dinar" },
|
|
77
|
-
{ value: "JPY", label: "JPY - Japanese Yen" },
|
|
78
|
-
{ value: "KES", label: "KES - Kenyan Shilling" },
|
|
79
|
-
{ value: "KGS", label: "KGS - Kyrgystani Som" },
|
|
80
|
-
{ value: "KHR", label: "KHR - Cambodian Riel" },
|
|
81
|
-
{ value: "KMF", label: "KMF - Comorian Franc" },
|
|
82
|
-
{ value: "KPW", label: "KPW - North Korean Won" },
|
|
83
|
-
{ value: "KRW", label: "KRW - South Korean Won" },
|
|
84
|
-
{ value: "KWD", label: "KWD - Kuwaiti Dinar" },
|
|
85
|
-
{ value: "KYD", label: "KYD - Cayman Islands Dollar" },
|
|
86
|
-
{ value: "KZT", label: "KZT - Kazakhstani Tenge" },
|
|
87
|
-
{ value: "LAK", label: "LAK - Laotian Kip" },
|
|
88
|
-
{ value: "LBP", label: "LBP - Lebanese Pound" },
|
|
89
|
-
{ value: "LKR", label: "LKR - Sri Lankan Rupee" },
|
|
90
|
-
{ value: "LRD", label: "LRD - Liberian Dollar" },
|
|
91
|
-
{ value: "LSL", label: "LSL - Lesotho Loti" },
|
|
92
|
-
{ value: "LYD", label: "LYD - Libyan Dinar" },
|
|
93
|
-
{ value: "MAD", label: "MAD - Moroccan Dirham" },
|
|
94
|
-
{ value: "MDL", label: "MDL - Moldovan Leu" },
|
|
95
|
-
{ value: "MGA", label: "MGA - Malagasy Ariary" },
|
|
96
|
-
{ value: "MKD", label: "MKD - Macedonian Denar" },
|
|
97
|
-
{ value: "MMK", label: "MMK - Myanmar Kyat" },
|
|
98
|
-
{ value: "MNT", label: "MNT - Mongolian Tugrik" },
|
|
99
|
-
{ value: "MOP", label: "MOP - Macanese Pataca" },
|
|
100
|
-
{ value: "MRU", label: "MRU - Mauritanian Ouguiya" },
|
|
101
|
-
{ value: "MUR", label: "MUR - Mauritian Rupee" },
|
|
102
|
-
{ value: "MVR", label: "MVR - Maldivian Rufiyaa" },
|
|
103
|
-
{ value: "MWK", label: "MWK - Malawian Kwacha" },
|
|
104
|
-
{ value: "MXN", label: "MXN - Mexican Peso" },
|
|
105
|
-
{ value: "MXV", label: "MXV - Mexican Unidad de Inversion (UDI)" },
|
|
106
|
-
{ value: "MYR", label: "MYR - Malaysian Ringgit" },
|
|
107
|
-
{ value: "MZN", label: "MZN - Mozambican Metical" },
|
|
108
|
-
{ value: "NAD", label: "NAD - Namibian Dollar" },
|
|
109
|
-
{ value: "NGN", label: "NGN - Nigerian Naira" },
|
|
110
|
-
{ value: "NIO", label: "NIO - Nicaraguan Cordoba" },
|
|
111
|
-
{ value: "NOK", label: "NOK - Norwegian Krone" },
|
|
112
|
-
{ value: "NPR", label: "NPR - Nepalese Rupee" },
|
|
113
|
-
{ value: "NZD", label: "NZD - New Zealand Dollar" },
|
|
114
|
-
{ value: "OMR", label: "OMR - Omani Rial" },
|
|
115
|
-
{ value: "PAB", label: "PAB - Panamanian Balboa" },
|
|
116
|
-
{ value: "PEN", label: "PEN - Peruvian Sol" },
|
|
117
|
-
{ value: "PGK", label: "PGK - Papua New Guinean Kina" },
|
|
118
|
-
{ value: "PHP", label: "PHP - Philippine Peso" },
|
|
119
|
-
{ value: "PKR", label: "PKR - Pakistani Rupee" },
|
|
120
|
-
{ value: "PLN", label: "PLN - Polish Zloty" },
|
|
121
|
-
{ value: "PYG", label: "PYG - Paraguayan Guarani" },
|
|
122
|
-
{ value: "QAR", label: "QAR - Qatari Riyal" },
|
|
123
|
-
{ value: "RON", label: "RON - Romanian Leu" },
|
|
124
|
-
{ value: "RSD", label: "RSD - Serbian Dinar" },
|
|
125
|
-
{ value: "RUB", label: "RUB - Russian Ruble" },
|
|
126
|
-
{ value: "RWF", label: "RWF - Rwandan Franc" },
|
|
127
|
-
{ value: "SAR", label: "SAR - Saudi Riyal" },
|
|
128
|
-
{ value: "SBD", label: "SBD - Solomon Islands Dollar" },
|
|
129
|
-
{ value: "SCR", label: "SCR - Seychellois Rupee" },
|
|
130
|
-
{ value: "SDG", label: "SDG - Sudanese Pound" },
|
|
131
|
-
{ value: "SEK", label: "SEK - Swedish Krona" },
|
|
132
|
-
{ value: "SGD", label: "SGD - Singapore Dollar" },
|
|
133
|
-
{ value: "SHP", label: "SHP - Saint Helena Pound" },
|
|
134
|
-
{ value: "SLE", label: "SLE - Sierra Leonean Leone" },
|
|
135
|
-
{ value: "SOS", label: "SOS - Somali Shilling" },
|
|
136
|
-
{ value: "SRD", label: "SRD - Surinamese Dollar" },
|
|
137
|
-
{ value: "SSP", label: "SSP - South Sudanese Pound" },
|
|
138
|
-
{ value: "STN", label: "STN - Sao Tomean Dobra" },
|
|
139
|
-
{ value: "SVC", label: "SVC - Salvadoran Colon" },
|
|
140
|
-
{ value: "SYP", label: "SYP - Syrian Pound" },
|
|
141
|
-
{ value: "SZL", label: "SZL - Swazi Lilangeni" },
|
|
142
|
-
{ value: "THB", label: "THB - Thai Baht" },
|
|
143
|
-
{ value: "TJS", label: "TJS - Tajikistani Somoni" },
|
|
144
|
-
{ value: "TMT", label: "TMT - Turkmenistani Manat" },
|
|
145
|
-
{ value: "TND", label: "TND - Tunisian Dinar" },
|
|
146
|
-
{ value: "TOP", label: "TOP - Tongan Pa'anga" },
|
|
147
|
-
{ value: "TRY", label: "TRY - Turkish Lira" },
|
|
148
|
-
{ value: "TTD", label: "TTD - Trinidad and Tobago Dollar" },
|
|
149
|
-
{ value: "TWD", label: "TWD - New Taiwan Dollar" },
|
|
150
|
-
{ value: "TZS", label: "TZS - Tanzanian Shilling" },
|
|
151
|
-
{ value: "UAH", label: "UAH - Ukrainian Hryvnia" },
|
|
152
|
-
{ value: "UGX", label: "UGX - Ugandan Shilling" },
|
|
153
|
-
{ value: "USD", label: "USD - US Dollar" },
|
|
154
|
-
{ value: "USN", label: "USN - US Dollar (Next day)" },
|
|
155
|
-
{ value: "UYI", label: "UYI - Uruguay Peso en Unidades Indexadas (UI)" },
|
|
156
|
-
{ value: "UYU", label: "UYU - Uruguayan Peso" },
|
|
157
|
-
{ value: "UYW", label: "UYW - Unidad Previsional" },
|
|
158
|
-
{ value: "UZS", label: "UZS - Uzbekistani Som" },
|
|
159
|
-
{ value: "VED", label: "VED - Venezuelan Digital Bolivar" },
|
|
160
|
-
{ value: "VES", label: "VES - Venezuelan Bolivar" },
|
|
161
|
-
{ value: "VND", label: "VND - Vietnamese Dong" },
|
|
162
|
-
{ value: "VUV", label: "VUV - Vanuatu Vatu" },
|
|
163
|
-
{ value: "WST", label: "WST - Samoan Tala" },
|
|
164
|
-
{ value: "XAD", label: "XAD - Arab Accounting Dinar" },
|
|
165
|
-
{ value: "XAF", label: "XAF - Central African CFA Franc" },
|
|
166
|
-
{ value: "XAG", label: "XAG - Silver" },
|
|
167
|
-
{ value: "XAU", label: "XAU - Gold" },
|
|
168
|
-
{ value: "XCD", label: "XCD - East Caribbean Dollar" },
|
|
169
|
-
{ value: "XCG", label: "XCG - Caribbean Guilder" },
|
|
170
|
-
{ value: "XDR", label: "XDR - Special Drawing Rights" },
|
|
171
|
-
{ value: "XOF", label: "XOF - West African CFA Franc" },
|
|
172
|
-
{ value: "XPD", label: "XPD - Palladium" },
|
|
173
|
-
{ value: "XPF", label: "XPF - CFP Franc" },
|
|
174
|
-
{ value: "XPT", label: "XPT - Platinum" },
|
|
175
|
-
{ value: "YER", label: "YER - Yemeni Rial" },
|
|
176
|
-
{ value: "ZAR", label: "ZAR - South African Rand" },
|
|
177
|
-
{ value: "ZMW", label: "ZMW - Zambian Kwacha" },
|
|
178
|
-
{ value: "ZWG", label: "ZWG - Zimbabwe Gold" },
|
|
179
|
-
{ value: "ZWL", label: "ZWL - Zimbabwean Dollar" }
|
|
180
|
-
];
|
|
7
|
+
const CurrencyFilter = Object.assign(
|
|
8
|
+
forwardRef(({ excludeCodes, ...props }, ref) => {
|
|
9
|
+
const options = excludeCodes?.length ? CURRENCIES.filter((c) => !excludeCodes.includes(String(c.value))) : CURRENCIES;
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
SelectFilter,
|
|
12
|
+
{
|
|
13
|
+
ref,
|
|
14
|
+
name: "currency",
|
|
15
|
+
label: "Currency",
|
|
16
|
+
placeholder: "Select currency",
|
|
17
|
+
options,
|
|
18
|
+
...props
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
}),
|
|
22
|
+
{ displayName: "CurrencyFilter", defaultLabel: "Currency", defaultName: "currency" }
|
|
23
|
+
);
|
|
181
24
|
|
|
182
25
|
const CurrencySelector = forwardRef(
|
|
183
26
|
({ excludeCodes, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
@@ -194,5 +37,5 @@ const CurrencySelector = forwardRef(
|
|
|
194
37
|
);
|
|
195
38
|
CurrencySelector.displayName = "CurrencySelector";
|
|
196
39
|
|
|
197
|
-
export {
|
|
40
|
+
export { CurrencyFilter as C, CurrencySelector as a };
|
|
198
41
|
//# sourceMappingURL=CurrencySelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrencySelector.js","sources":["../lib/selects/currency/currencies.ts","../lib/selects/currency/CurrencySelector.tsx"],"sourcesContent":["import type { SelectOption } from '../../components/Select/types';\n\n// Full ISO 4217 currency list sorted alphabetically by code\nexport const CURRENCIES: SelectOption[] = [\n { value: 'AED', label: 'AED - United Arab Emirates Dirham' },\n { value: 'AFN', label: 'AFN - Afghan Afghani' },\n { value: 'ALL', label: 'ALL - Albanian Lek' },\n { value: 'AMD', label: 'AMD - Armenian Dram' },\n { value: 'ANG', label: 'ANG - Netherlands Antillean Guilder' },\n { value: 'AOA', label: 'AOA - Angolan Kwanza' },\n { value: 'ARS', label: 'ARS - Argentine Peso' },\n { value: 'AUD', label: 'AUD - Australian Dollar' },\n { value: 'AWG', label: 'AWG - Aruban Florin' },\n { value: 'AZN', label: 'AZN - Azerbaijani Manat' },\n { value: 'BAM', label: 'BAM - Bosnia-Herzegovina Convertible Mark' },\n { value: 'BBD', label: 'BBD - Barbadian Dollar' },\n { value: 'BDT', label: 'BDT - Bangladeshi Taka' },\n { value: 'BGN', label: 'BGN - Bulgarian Lev' },\n { value: 'BHD', label: 'BHD - Bahraini Dinar' },\n { value: 'BIF', label: 'BIF - Burundian Franc' },\n { value: 'BMD', label: 'BMD - Bermudan Dollar' },\n { value: 'BND', label: 'BND - Brunei Dollar' },\n { value: 'BOB', label: 'BOB - Bolivian Boliviano' },\n { value: 'BOV', label: 'BOV - Bolivian Mvdol' },\n { value: 'BRL', label: 'BRL - Brazilian Real' },\n { value: 'BSD', label: 'BSD - Bahamian Dollar' },\n { value: 'BTN', label: 'BTN - Bhutanese Ngultrum' },\n { value: 'BWP', label: 'BWP - Botswanan Pula' },\n { value: 'BYN', label: 'BYN - Belarusian Ruble' },\n { value: 'BZD', label: 'BZD - Belize Dollar' },\n { value: 'CAD', label: 'CAD - Canadian Dollar' },\n { value: 'CDF', label: 'CDF - Congolese Franc' },\n { value: 'CHE', label: 'CHE - WIR Euro' },\n { value: 'CHF', label: 'CHF - Swiss Franc' },\n { value: 'CHW', label: 'CHW - WIR Franc' },\n { value: 'CLF', label: 'CLF - Chilean Unit of Account (UF)' },\n { value: 'CLP', label: 'CLP - Chilean Peso' },\n { value: 'CNY', label: 'CNY - Chinese Yuan' },\n { value: 'COP', label: 'COP - Colombian Peso' },\n { value: 'COU', label: 'COU - Unidad de Valor Real' },\n { value: 'CRC', label: 'CRC - Costa Rican Colon' },\n { value: 'CUP', label: 'CUP - Cuban Peso' },\n { value: 'CVE', label: 'CVE - Cape Verdean Escudo' },\n { value: 'CZK', label: 'CZK - Czech Koruna' },\n { value: 'DJF', label: 'DJF - Djiboutian Franc' },\n { value: 'DKK', label: 'DKK - Danish Krone' },\n { value: 'DOP', label: 'DOP - Dominican Peso' },\n { value: 'DZD', label: 'DZD - Algerian Dinar' },\n { value: 'EGP', label: 'EGP - Egyptian Pound' },\n { value: 'ERN', label: 'ERN - Eritrean Nakfa' },\n { value: 'ETB', label: 'ETB - Ethiopian Birr' },\n { value: 'EUR', label: 'EUR - Euro' },\n { value: 'FJD', label: 'FJD - Fijian Dollar' },\n { value: 'FKP', label: 'FKP - Falkland Islands Pound' },\n { value: 'GBP', label: 'GBP - British Pound Sterling' },\n { value: 'GEL', label: 'GEL - Georgian Lari' },\n { value: 'GHS', label: 'GHS - Ghanaian Cedi' },\n { value: 'GIP', label: 'GIP - Gibraltar Pound' },\n { value: 'GMD', label: 'GMD - Gambian Dalasi' },\n { value: 'GNF', label: 'GNF - Guinean Franc' },\n { value: 'GTQ', label: 'GTQ - Guatemalan Quetzal' },\n { value: 'GYD', label: 'GYD - Guyanaese Dollar' },\n { value: 'HKD', label: 'HKD - Hong Kong Dollar' },\n { value: 'HNL', label: 'HNL - Honduran Lempira' },\n { value: 'HRK', label: 'HRK - Croatian Kuna' },\n { value: 'HTG', label: 'HTG - Haitian Gourde' },\n { value: 'HUF', label: 'HUF - Hungarian Forint' },\n { value: 'IDR', label: 'IDR - Indonesian Rupiah' },\n { value: 'ILS', label: 'ILS - Israeli New Shekel' },\n { value: 'INR', label: 'INR - Indian Rupee' },\n { value: 'IQD', label: 'IQD - Iraqi Dinar' },\n { value: 'IRR', label: 'IRR - Iranian Rial' },\n { value: 'ISK', label: 'ISK - Icelandic Krona' },\n { value: 'JMD', label: 'JMD - Jamaican Dollar' },\n { value: 'JOD', label: 'JOD - Jordanian Dinar' },\n { value: 'JPY', label: 'JPY - Japanese Yen' },\n { value: 'KES', label: 'KES - Kenyan Shilling' },\n { value: 'KGS', label: 'KGS - Kyrgystani Som' },\n { value: 'KHR', label: 'KHR - Cambodian Riel' },\n { value: 'KMF', label: 'KMF - Comorian Franc' },\n { value: 'KPW', label: 'KPW - North Korean Won' },\n { value: 'KRW', label: 'KRW - South Korean Won' },\n { value: 'KWD', label: 'KWD - Kuwaiti Dinar' },\n { value: 'KYD', label: 'KYD - Cayman Islands Dollar' },\n { value: 'KZT', label: 'KZT - Kazakhstani Tenge' },\n { value: 'LAK', label: 'LAK - Laotian Kip' },\n { value: 'LBP', label: 'LBP - Lebanese Pound' },\n { value: 'LKR', label: 'LKR - Sri Lankan Rupee' },\n { value: 'LRD', label: 'LRD - Liberian Dollar' },\n { value: 'LSL', label: 'LSL - Lesotho Loti' },\n { value: 'LYD', label: 'LYD - Libyan Dinar' },\n { value: 'MAD', label: 'MAD - Moroccan Dirham' },\n { value: 'MDL', label: 'MDL - Moldovan Leu' },\n { value: 'MGA', label: 'MGA - Malagasy Ariary' },\n { value: 'MKD', label: 'MKD - Macedonian Denar' },\n { value: 'MMK', label: 'MMK - Myanmar Kyat' },\n { value: 'MNT', label: 'MNT - Mongolian Tugrik' },\n { value: 'MOP', label: 'MOP - Macanese Pataca' },\n { value: 'MRU', label: 'MRU - Mauritanian Ouguiya' },\n { value: 'MUR', label: 'MUR - Mauritian Rupee' },\n { value: 'MVR', label: 'MVR - Maldivian Rufiyaa' },\n { value: 'MWK', label: 'MWK - Malawian Kwacha' },\n { value: 'MXN', label: 'MXN - Mexican Peso' },\n { value: 'MXV', label: 'MXV - Mexican Unidad de Inversion (UDI)' },\n { value: 'MYR', label: 'MYR - Malaysian Ringgit' },\n { value: 'MZN', label: 'MZN - Mozambican Metical' },\n { value: 'NAD', label: 'NAD - Namibian Dollar' },\n { value: 'NGN', label: 'NGN - Nigerian Naira' },\n { value: 'NIO', label: 'NIO - Nicaraguan Cordoba' },\n { value: 'NOK', label: 'NOK - Norwegian Krone' },\n { value: 'NPR', label: 'NPR - Nepalese Rupee' },\n { value: 'NZD', label: 'NZD - New Zealand Dollar' },\n { value: 'OMR', label: 'OMR - Omani Rial' },\n { value: 'PAB', label: 'PAB - Panamanian Balboa' },\n { value: 'PEN', label: 'PEN - Peruvian Sol' },\n { value: 'PGK', label: 'PGK - Papua New Guinean Kina' },\n { value: 'PHP', label: 'PHP - Philippine Peso' },\n { value: 'PKR', label: 'PKR - Pakistani Rupee' },\n { value: 'PLN', label: 'PLN - Polish Zloty' },\n { value: 'PYG', label: 'PYG - Paraguayan Guarani' },\n { value: 'QAR', label: 'QAR - Qatari Riyal' },\n { value: 'RON', label: 'RON - Romanian Leu' },\n { value: 'RSD', label: 'RSD - Serbian Dinar' },\n { value: 'RUB', label: 'RUB - Russian Ruble' },\n { value: 'RWF', label: 'RWF - Rwandan Franc' },\n { value: 'SAR', label: 'SAR - Saudi Riyal' },\n { value: 'SBD', label: 'SBD - Solomon Islands Dollar' },\n { value: 'SCR', label: 'SCR - Seychellois Rupee' },\n { value: 'SDG', label: 'SDG - Sudanese Pound' },\n { value: 'SEK', label: 'SEK - Swedish Krona' },\n { value: 'SGD', label: 'SGD - Singapore Dollar' },\n { value: 'SHP', label: 'SHP - Saint Helena Pound' },\n { value: 'SLE', label: 'SLE - Sierra Leonean Leone' },\n { value: 'SOS', label: 'SOS - Somali Shilling' },\n { value: 'SRD', label: 'SRD - Surinamese Dollar' },\n { value: 'SSP', label: 'SSP - South Sudanese Pound' },\n { value: 'STN', label: 'STN - Sao Tomean Dobra' },\n { value: 'SVC', label: 'SVC - Salvadoran Colon' },\n { value: 'SYP', label: 'SYP - Syrian Pound' },\n { value: 'SZL', label: 'SZL - Swazi Lilangeni' },\n { value: 'THB', label: 'THB - Thai Baht' },\n { value: 'TJS', label: 'TJS - Tajikistani Somoni' },\n { value: 'TMT', label: 'TMT - Turkmenistani Manat' },\n { value: 'TND', label: 'TND - Tunisian Dinar' },\n { value: 'TOP', label: \"TOP - Tongan Pa'anga\" },\n { value: 'TRY', label: 'TRY - Turkish Lira' },\n { value: 'TTD', label: 'TTD - Trinidad and Tobago Dollar' },\n { value: 'TWD', label: 'TWD - New Taiwan Dollar' },\n { value: 'TZS', label: 'TZS - Tanzanian Shilling' },\n { value: 'UAH', label: 'UAH - Ukrainian Hryvnia' },\n { value: 'UGX', label: 'UGX - Ugandan Shilling' },\n { value: 'USD', label: 'USD - US Dollar' },\n { value: 'USN', label: 'USN - US Dollar (Next day)' },\n { value: 'UYI', label: 'UYI - Uruguay Peso en Unidades Indexadas (UI)' },\n { value: 'UYU', label: 'UYU - Uruguayan Peso' },\n { value: 'UYW', label: 'UYW - Unidad Previsional' },\n { value: 'UZS', label: 'UZS - Uzbekistani Som' },\n { value: 'VED', label: 'VED - Venezuelan Digital Bolivar' },\n { value: 'VES', label: 'VES - Venezuelan Bolivar' },\n { value: 'VND', label: 'VND - Vietnamese Dong' },\n { value: 'VUV', label: 'VUV - Vanuatu Vatu' },\n { value: 'WST', label: 'WST - Samoan Tala' },\n { value: 'XAD', label: 'XAD - Arab Accounting Dinar' },\n { value: 'XAF', label: 'XAF - Central African CFA Franc' },\n { value: 'XAG', label: 'XAG - Silver' },\n { value: 'XAU', label: 'XAU - Gold' },\n { value: 'XCD', label: 'XCD - East Caribbean Dollar' },\n { value: 'XCG', label: 'XCG - Caribbean Guilder' },\n { value: 'XDR', label: 'XDR - Special Drawing Rights' },\n { value: 'XOF', label: 'XOF - West African CFA Franc' },\n { value: 'XPD', label: 'XPD - Palladium' },\n { value: 'XPF', label: 'XPF - CFP Franc' },\n { value: 'XPT', label: 'XPT - Platinum' },\n { value: 'YER', label: 'YER - Yemeni Rial' },\n { value: 'ZAR', label: 'ZAR - South African Rand' },\n { value: 'ZMW', label: 'ZMW - Zambian Kwacha' },\n { value: 'ZWG', label: 'ZWG - Zimbabwe Gold' },\n { value: 'ZWL', label: 'ZWL - Zimbabwean Dollar' },\n];\n","import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\nimport { CURRENCIES } from './currencies';\n\nexport type CurrencySelectorProps = Omit<SelectProps, 'optionsEndpoint'> & {\n excludeCodes?: string[];\n};\n\n// Pre-configured Select for currency selection with local searchable options\nexport const CurrencySelector = forwardRef<HTMLButtonElement, CurrencySelectorProps>(\n ({ excludeCodes, ...props }, ref) => (\n <Select\n ref={ref}\n label=\"Currency\"\n placeholder=\"Select currency\"\n searchable\n options={\n excludeCodes && excludeCodes.length > 0\n ? CURRENCIES.filter((c) => !excludeCodes.includes(String(c.value)))\n : CURRENCIES\n }\n {...props}\n />\n ),\n);\nCurrencySelector.displayName = 'CurrencySelector';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CurrencySelector.js","sources":["../lib/selects/currency/CurrencyFilter.tsx","../lib/selects/currency/CurrencySelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\nimport { CURRENCIES } from './currencies';\n\nexport type CurrencyFilterProps = Omit<SelectFilterProps, 'options' | 'name'> & {\n name?: string;\n excludeCodes?: string[];\n};\n\n// Pre-configured SelectFilter for currency filtering with static local options\nexport const CurrencyFilter = Object.assign(\n forwardRef<HTMLButtonElement, CurrencyFilterProps>(({ excludeCodes, ...props }, ref) => {\n const options = excludeCodes?.length\n ? CURRENCIES.filter((c) => !excludeCodes.includes(String(c.value)))\n : CURRENCIES;\n return (\n <SelectFilter\n ref={ref}\n name=\"currency\"\n label=\"Currency\"\n placeholder=\"Select currency\"\n options={options}\n {...props}\n />\n );\n }),\n { displayName: 'CurrencyFilter', defaultLabel: 'Currency', defaultName: 'currency' },\n);\n","import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\nimport { CURRENCIES } from './currencies';\n\nexport type CurrencySelectorProps = Omit<SelectProps, 'optionsEndpoint'> & {\n excludeCodes?: string[];\n};\n\n// Pre-configured Select for currency selection with local searchable options\nexport const CurrencySelector = forwardRef<HTMLButtonElement, CurrencySelectorProps>(\n ({ excludeCodes, ...props }, ref) => (\n <Select\n ref={ref}\n label=\"Currency\"\n placeholder=\"Select currency\"\n searchable\n options={\n excludeCodes && excludeCodes.length > 0\n ? CURRENCIES.filter((c) => !excludeCodes.includes(String(c.value)))\n : CURRENCIES\n }\n {...props}\n />\n ),\n);\nCurrencySelector.displayName = 'CurrencySelector';\n"],"names":[],"mappings":";;;;;;AAUO,MAAM,iBAAiB,MAAA,CAAO,MAAA;AAAA,EACnC,WAAmD,CAAC,EAAE,cAAc,GAAG,KAAA,IAAS,GAAA,KAAQ;AACtF,IAAA,MAAM,OAAA,GAAU,YAAA,EAAc,MAAA,GAC1B,UAAA,CAAW,OAAO,CAAC,CAAA,KAAM,CAAC,YAAA,CAAa,SAAS,MAAA,CAAO,CAAA,CAAE,KAAK,CAAC,CAAC,CAAA,GAChE,UAAA;AACJ,IAAA,uBACE,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,UAAA;AAAA,QACL,KAAA,EAAM,UAAA;AAAA,QACN,WAAA,EAAY,iBAAA;AAAA,QACZ,OAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ,CAAC,CAAA;AAAA,EACD,EAAE,WAAA,EAAa,gBAAA,EAAkB,YAAA,EAAc,UAAA,EAAY,aAAa,UAAA;AAC1E;;AClBO,MAAM,gBAAA,GAAmB,UAAA;AAAA,EAC9B,CAAC,EAAE,YAAA,EAAc,GAAG,KAAA,IAAS,GAAA,qBAC3B,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAA,EAAM,UAAA;AAAA,MACN,WAAA,EAAY,iBAAA;AAAA,MACZ,UAAA,EAAU,IAAA;AAAA,MACV,SACE,YAAA,IAAgB,YAAA,CAAa,MAAA,GAAS,CAAA,GAClC,WAAW,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,aAAa,QAAA,CAAS,MAAA,CAAO,EAAE,KAAK,CAAC,CAAC,CAAA,GAChE,UAAA;AAAA,MAEL,GAAG;AAAA;AAAA;AAGV;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;;;"}
|
package/dist/Dialog.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useRef, useEffect } from 'react';
|
|
3
3
|
import { c as cn } from './utils.js';
|
|
4
|
-
import { R as Root, T as Trigger, C as Content, a as Close, b as Title, D as Description, P as Portal, O as Overlay } from './
|
|
4
|
+
import { R as Root, T as Trigger, C as Content, a as Close, b as Title, D as Description, P as Portal, O as Overlay } from './index31.js';
|
|
5
5
|
import { X } from './x.js';
|
|
6
6
|
|
|
7
7
|
function Dialog$1({ ...props }) {
|
package/dist/PermissionGate.js
CHANGED
|
@@ -21,7 +21,9 @@ const ALLOW = Object.freeze({
|
|
|
21
21
|
unlockPlans: [],
|
|
22
22
|
missingServices: [],
|
|
23
23
|
available: true,
|
|
24
|
-
featureName: null
|
|
24
|
+
featureName: null,
|
|
25
|
+
workspaceLabel: null,
|
|
26
|
+
workspaceScope: null
|
|
25
27
|
});
|
|
26
28
|
const ALLOW_GATE = () => ALLOW;
|
|
27
29
|
const GATE_CONTEXT_KEY = /* @__PURE__ */ Symbol.for("@vritti/quantum-ui/PermissionGate");
|
|
@@ -41,7 +43,7 @@ const PermissionLockIcon = ({
|
|
|
41
43
|
className
|
|
42
44
|
}) => {
|
|
43
45
|
switch (reason) {
|
|
44
|
-
case "
|
|
46
|
+
case "WORKSPACE":
|
|
45
47
|
return /* @__PURE__ */ jsx(LockKeyhole, { className: cn("text-destructive", className) });
|
|
46
48
|
case "SERVICE":
|
|
47
49
|
return /* @__PURE__ */ jsx(Lock, { className: cn("text-destructive", className) });
|
|
@@ -49,14 +51,25 @@ const PermissionLockIcon = ({
|
|
|
49
51
|
return /* @__PURE__ */ jsx(Lock, { className: cn("text-warning", className) });
|
|
50
52
|
}
|
|
51
53
|
};
|
|
54
|
+
const SCOPE_NOUN = {
|
|
55
|
+
ORG: "this organization",
|
|
56
|
+
LE: "this company",
|
|
57
|
+
SITE_GROUP: "this group",
|
|
58
|
+
SITE: "this outlet"
|
|
59
|
+
};
|
|
60
|
+
function workspaceNoun(label, scope) {
|
|
61
|
+
return label ?? (scope ? SCOPE_NOUN[scope] : "this workspace");
|
|
62
|
+
}
|
|
52
63
|
function lockedTip({
|
|
53
64
|
reason,
|
|
54
65
|
unlockPlans,
|
|
55
|
-
missingServices = []
|
|
66
|
+
missingServices = [],
|
|
67
|
+
workspaceLabel = null,
|
|
68
|
+
workspaceScope = null
|
|
56
69
|
}) {
|
|
57
70
|
switch (reason) {
|
|
58
|
-
case "
|
|
59
|
-
return
|
|
71
|
+
case "WORKSPACE":
|
|
72
|
+
return `Not enabled for ${workspaceNoun(workspaceLabel, workspaceScope)}`;
|
|
60
73
|
case "SERVICE":
|
|
61
74
|
return `Requires ${serviceLabels(missingServices)}`;
|
|
62
75
|
default:
|
|
@@ -72,11 +85,13 @@ function lockMessages(result) {
|
|
|
72
85
|
};
|
|
73
86
|
}
|
|
74
87
|
switch (result.reason) {
|
|
75
|
-
case "
|
|
88
|
+
case "WORKSPACE": {
|
|
89
|
+
const where = workspaceNoun(result.workspaceLabel ?? null, result.workspaceScope ?? null);
|
|
76
90
|
return {
|
|
77
91
|
title: name ? `${name} not enabled here` : "Not available here",
|
|
78
|
-
tip: name ? `${name} isn't enabled for
|
|
92
|
+
tip: name ? `${name} isn't enabled for ${where}.` : `Not enabled for ${where}.`
|
|
79
93
|
};
|
|
94
|
+
}
|
|
80
95
|
case "SERVICE": {
|
|
81
96
|
const needs = serviceLabels(result.missingServices ?? []);
|
|
82
97
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionGate.js","sources":["../lib/utils/services.ts","../lib/components/PermissionGate/PermissionGate.tsx"],"sourcesContent":["import type { ServiceCode } from '../types/catalog-resolver';\n\n// Human copy for each external service a feature can depend on. Adding a service means adding one entry\n// here — no lock surface branches on a specific service code.\nexport const SERVICE_LABELS: Record<ServiceCode, string> = {\n GITEA: 'a git organization',\n};\n\n// Joins the missing services into a phrase, e.g. \"a git organization\" / \"a git organization and X\"\nexport function serviceLabels(services: ServiceCode[]): string {\n const labels = services.map((service) => SERVICE_LABELS[service] ?? service);\n if (labels.length === 0) return 'a service';\n if (labels.length === 1) return labels[0];\n return `${labels.slice(0, -1).join(', ')} and ${labels[labels.length - 1]}`;\n}\n","import { Lock, LockKeyhole } from 'lucide-react';\nimport type React from 'react';\nimport { createContext, useContext } from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport type { ServiceCode } from '../../types/catalog-resolver';\nimport { serviceLabels } from '../../utils/services';\n\nexport type PermissionLockReason = 'PLAN' | 'SITE' | 'SERVICE';\n\nexport interface PermissionGateResult {\n granted: boolean;\n locked: boolean;\n reason: PermissionLockReason | null;\n unlockPlans: string[];\n // Which external services the org still has to provision — only populated when reason is 'SERVICE'\n missingServices: ServiceCode[];\n available: boolean;\n featureName: string | null;\n}\n\nexport type PermissionGateFn = (code: string) => PermissionGateResult;\n\nconst ALLOW: PermissionGateResult = Object.freeze({\n granted: true,\n locked: false,\n reason: null,\n unlockPlans: [],\n missingServices: [],\n available: true,\n featureName: null,\n});\n\nconst ALLOW_GATE: PermissionGateFn = () => ALLOW;\n\nconst GATE_CONTEXT_KEY = Symbol.for('@vritti/quantum-ui/PermissionGate');\ntype GateRegistry = { [GATE_CONTEXT_KEY]?: React.Context<PermissionGateFn | null> };\nconst registry = globalThis as GateRegistry;\nregistry[GATE_CONTEXT_KEY] ??= createContext<PermissionGateFn | null>(null);\nconst PermissionGateContext = registry[GATE_CONTEXT_KEY];\n\nexport const PermissionGateProvider = PermissionGateContext.Provider;\n\n// The raw gate for mapping over collections; ALLOW-everything when no provider is mounted\nexport function usePermissionGate(): PermissionGateFn {\n return useContext(PermissionGateContext) ?? ALLOW_GATE;\n}\n\n// Total: no provider / no code resolves to ALLOW, so callers never branch on null\nexport function usePermission(code?: string): PermissionGateResult {\n const gate = useContext(PermissionGateContext);\n return code && gate ? gate(code) : ALLOW;\n}\n\n// The lock symbol for a locked control — plan locks show a warning lock, BU locks a red keyhole lock,\n// service locks a red lock (blocked until the org provisions it, not an entitlement the user can buy)\nexport const PermissionLockIcon: React.FC<{ reason: PermissionLockReason | null; className?: string }> = ({\n reason,\n className,\n}) => {\n switch (reason) {\n case 'SITE':\n return <LockKeyhole className={cn('text-destructive', className)} />;\n case 'SERVICE':\n return <Lock className={cn('text-destructive', className)} />;\n default:\n return <Lock className={cn('text-warning', className)} />;\n }\n};\n\n// Shared tooltip copy for locked controls — upsell for plan locks, restriction notice for BU locks,\n// setup notice for service locks\nexport function lockedTip({\n reason,\n unlockPlans,\n missingServices = [],\n}: Pick<PermissionGateResult, 'reason' | 'unlockPlans'> &\n Partial<Pick<PermissionGateResult, 'missingServices'>>): string {\n switch (reason) {\n case 'SITE':\n return 'Not enabled for this site';\n case 'SERVICE':\n return `Requires ${serviceLabels(missingServices)}`;\n default:\n return unlockPlans.length > 0 ? `Available in ${unlockPlans.join(', ')}` : 'Not included in your plan';\n }\n}\n\n// Resolves a blocked control's heading + description, keyed off the resolved feature name when known\nfunction lockMessages(\n result: Pick<PermissionGateResult, 'granted' | 'reason' | 'unlockPlans' | 'featureName'> &\n Partial<Pick<PermissionGateResult, 'missingServices'>>,\n): {\n title: string;\n tip: string;\n} {\n const name = result.featureName;\n if (!result.granted) {\n return {\n title: name ? `${name} is restricted` : 'No access',\n tip: name ? `You don't have permission to view ${name}.` : \"You don't have permission to access this.\",\n };\n }\n switch (result.reason) {\n case 'SITE':\n return {\n title: name ? `${name} not enabled here` : 'Not available here',\n tip: name ? `${name} isn't enabled for this site.` : 'Not enabled for this site.',\n };\n case 'SERVICE': {\n const needs = serviceLabels(result.missingServices ?? []);\n return {\n title: 'Setup required',\n tip: name ? `${name} needs ${needs}. Set it up to continue.` : `This needs ${needs}. Set it up to continue.`,\n };\n }\n default: {\n if (result.unlockPlans.length > 0) {\n const plans = result.unlockPlans.join(', ');\n return {\n title: name ? `Unlock ${name}` : 'Upgrade required',\n tip: name ? `${name} is available on ${plans}.` : `Available in ${plans}.`,\n };\n }\n return {\n title: name ? `Unlock ${name}` : 'Upgrade required',\n tip: name ? `${name} isn't included in your plan.` : 'Not included in your plan.',\n };\n }\n }\n}\n\nexport interface PermissionGateProps {\n permission?: string;\n children: React.ReactNode;\n fallback?: React.ReactNode | ((result: PermissionGateResult & { title: string; tip: string }) => React.ReactNode);\n}\n\n// Default fallback — a centered lock panel with the feature-specific restriction message\nconst DefaultLockFallback: React.FC<{ result: PermissionGateResult }> = ({ result }) => (\n <div className=\"flex flex-1 flex-col items-center justify-center gap-2 text-center\">\n <PermissionLockIcon reason={result.reason} className=\"size-10\" />\n <p className=\"max-w-sm text-sm text-muted-foreground\">{lockMessages(result).tip}</p>\n </div>\n);\n\n// Gates a subtree by permission code: children mount only when granted AND unlocked, else renders `fallback`\nexport const PermissionGate: React.FC<PermissionGateProps> = ({ permission, children, fallback }) => {\n const result = usePermission(permission);\n if (result.available) return <>{children}</>;\n if (fallback !== undefined)\n return <>{typeof fallback === 'function' ? fallback({ ...result, ...lockMessages(result) }) : fallback}</>;\n return <DefaultLockFallback result={result} />;\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PermissionGate.js","sources":["../lib/utils/services.ts","../lib/components/PermissionGate/PermissionGate.tsx"],"sourcesContent":["import type { ServiceCode } from '../types/catalog-resolver';\n\n// Human copy for each external service a feature can depend on. Adding a service means adding one entry\n// here — no lock surface branches on a specific service code.\nexport const SERVICE_LABELS: Record<ServiceCode, string> = {\n GITEA: 'a git organization',\n};\n\n// Joins the missing services into a phrase, e.g. \"a git organization\" / \"a git organization and X\"\nexport function serviceLabels(services: ServiceCode[]): string {\n const labels = services.map((service) => SERVICE_LABELS[service] ?? service);\n if (labels.length === 0) return 'a service';\n if (labels.length === 1) return labels[0];\n return `${labels.slice(0, -1).join(', ')} and ${labels[labels.length - 1]}`;\n}\n","import { Lock, LockKeyhole } from 'lucide-react';\nimport type React from 'react';\nimport { createContext, useContext } from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport type { ScopeType, ServiceCode } from '../../types/catalog-resolver';\nimport { serviceLabels } from '../../utils/services';\n\nexport type PermissionLockReason = 'PLAN' | 'WORKSPACE' | 'SERVICE';\n\nexport interface PermissionGateResult {\n granted: boolean;\n locked: boolean;\n reason: PermissionLockReason | null;\n unlockPlans: string[];\n // Which external services the org still has to provision — only populated when reason is 'SERVICE'\n missingServices: ServiceCode[];\n available: boolean;\n featureName: string | null;\n // The workspace holding the lock — its name when the host resolved one, else its scope, so a\n // WORKSPACE lock can say which workspace rather than assuming a site\n workspaceLabel: string | null;\n workspaceScope: ScopeType | null;\n}\n\nexport type PermissionGateFn = (code: string) => PermissionGateResult;\n\nconst ALLOW: PermissionGateResult = Object.freeze({\n granted: true,\n locked: false,\n reason: null,\n unlockPlans: [],\n missingServices: [],\n available: true,\n featureName: null,\n workspaceLabel: null,\n workspaceScope: null,\n});\n\nconst ALLOW_GATE: PermissionGateFn = () => ALLOW;\n\nconst GATE_CONTEXT_KEY = Symbol.for('@vritti/quantum-ui/PermissionGate');\ntype GateRegistry = { [GATE_CONTEXT_KEY]?: React.Context<PermissionGateFn | null> };\nconst registry = globalThis as GateRegistry;\nregistry[GATE_CONTEXT_KEY] ??= createContext<PermissionGateFn | null>(null);\nconst PermissionGateContext = registry[GATE_CONTEXT_KEY];\n\nexport const PermissionGateProvider = PermissionGateContext.Provider;\n\n// The raw gate for mapping over collections; ALLOW-everything when no provider is mounted\nexport function usePermissionGate(): PermissionGateFn {\n return useContext(PermissionGateContext) ?? ALLOW_GATE;\n}\n\n// Total: no provider / no code resolves to ALLOW, so callers never branch on null\nexport function usePermission(code?: string): PermissionGateResult {\n const gate = useContext(PermissionGateContext);\n return code && gate ? gate(code) : ALLOW;\n}\n\n// The lock symbol for a locked control — plan locks show a warning lock, workspace locks a red keyhole\n// lock, service locks a red lock (blocked until the org provisions it, not an entitlement the user can buy)\nexport const PermissionLockIcon: React.FC<{ reason: PermissionLockReason | null; className?: string }> = ({\n reason,\n className,\n}) => {\n switch (reason) {\n case 'WORKSPACE':\n return <LockKeyhole className={cn('text-destructive', className)} />;\n case 'SERVICE':\n return <Lock className={cn('text-destructive', className)} />;\n default:\n return <Lock className={cn('text-warning', className)} />;\n }\n};\n\n// Names the workspace a lock sits on: its own name when the host resolved one, else the noun for its\n// scope, else a neutral fallback. A lock may sit on the org, legal entity, site group or site, so the\n// copy must never assume a site.\nconst SCOPE_NOUN: Record<ScopeType, string> = {\n ORG: 'this organization',\n LE: 'this company',\n SITE_GROUP: 'this group',\n SITE: 'this outlet',\n};\n\nfunction workspaceNoun(label: string | null, scope: ScopeType | null): string {\n return label ?? (scope ? SCOPE_NOUN[scope] : 'this workspace');\n}\n\n// Shared tooltip copy for locked controls — upsell for plan locks, restriction notice for workspace\n// locks, setup notice for service locks. A workspace lock may sit on the org, legal entity, site group\n// or site, so the copy names the workspace rather than assuming a site.\nexport function lockedTip({\n reason,\n unlockPlans,\n missingServices = [],\n workspaceLabel = null,\n workspaceScope = null,\n}: Pick<PermissionGateResult, 'reason' | 'unlockPlans'> &\n Partial<Pick<PermissionGateResult, 'missingServices' | 'workspaceLabel' | 'workspaceScope'>>): string {\n switch (reason) {\n case 'WORKSPACE':\n return `Not enabled for ${workspaceNoun(workspaceLabel, workspaceScope)}`;\n case 'SERVICE':\n return `Requires ${serviceLabels(missingServices)}`;\n default:\n return unlockPlans.length > 0 ? `Available in ${unlockPlans.join(', ')}` : 'Not included in your plan';\n }\n}\n\n// Resolves a blocked control's heading + description, keyed off the resolved feature name when known\nfunction lockMessages(\n result: Pick<PermissionGateResult, 'granted' | 'reason' | 'unlockPlans' | 'featureName'> &\n Partial<Pick<PermissionGateResult, 'missingServices' | 'workspaceLabel' | 'workspaceScope'>>,\n): {\n title: string;\n tip: string;\n} {\n const name = result.featureName;\n if (!result.granted) {\n return {\n title: name ? `${name} is restricted` : 'No access',\n tip: name ? `You don't have permission to view ${name}.` : \"You don't have permission to access this.\",\n };\n }\n switch (result.reason) {\n case 'WORKSPACE': {\n const where = workspaceNoun(result.workspaceLabel ?? null, result.workspaceScope ?? null);\n return {\n title: name ? `${name} not enabled here` : 'Not available here',\n tip: name ? `${name} isn't enabled for ${where}.` : `Not enabled for ${where}.`,\n };\n }\n case 'SERVICE': {\n const needs = serviceLabels(result.missingServices ?? []);\n return {\n title: 'Setup required',\n tip: name ? `${name} needs ${needs}. Set it up to continue.` : `This needs ${needs}. Set it up to continue.`,\n };\n }\n default: {\n if (result.unlockPlans.length > 0) {\n const plans = result.unlockPlans.join(', ');\n return {\n title: name ? `Unlock ${name}` : 'Upgrade required',\n tip: name ? `${name} is available on ${plans}.` : `Available in ${plans}.`,\n };\n }\n return {\n title: name ? `Unlock ${name}` : 'Upgrade required',\n tip: name ? `${name} isn't included in your plan.` : 'Not included in your plan.',\n };\n }\n }\n}\n\nexport interface PermissionGateProps {\n permission?: string;\n children: React.ReactNode;\n fallback?: React.ReactNode | ((result: PermissionGateResult & { title: string; tip: string }) => React.ReactNode);\n}\n\n// Default fallback — a centered lock panel with the feature-specific restriction message\nconst DefaultLockFallback: React.FC<{ result: PermissionGateResult }> = ({ result }) => (\n <div className=\"flex flex-1 flex-col items-center justify-center gap-2 text-center\">\n <PermissionLockIcon reason={result.reason} className=\"size-10\" />\n <p className=\"max-w-sm text-sm text-muted-foreground\">{lockMessages(result).tip}</p>\n </div>\n);\n\n// Gates a subtree by permission code: children mount only when granted AND unlocked, else renders `fallback`\nexport const PermissionGate: React.FC<PermissionGateProps> = ({ permission, children, fallback }) => {\n const result = usePermission(permission);\n if (result.available) return <>{children}</>;\n if (fallback !== undefined)\n return <>{typeof fallback === 'function' ? fallback({ ...result, ...lockMessages(result) }) : fallback}</>;\n return <DefaultLockFallback result={result} />;\n};\n"],"names":[],"mappings":"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"}
|
package/dist/Progress.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
|
-
import { c as createContextScope } from './
|
|
5
|
-
import { P as Primitive } from './
|
|
4
|
+
import { c as createContextScope } from './index34.js';
|
|
5
|
+
import { P as Primitive } from './index30.js';
|
|
6
6
|
import { c as cn } from './utils.js';
|
|
7
7
|
|
|
8
8
|
var PROGRESS_NAME = "Progress";
|
package/dist/RadioGroup.js
CHANGED
|
@@ -8,8 +8,8 @@ import { u as useComposedRefs } from './index12.js';
|
|
|
8
8
|
import { c as createContextScope, P as Presence } from './index21.js';
|
|
9
9
|
import { R as Root, c as createRovingFocusGroupScope, I as Item } from './index22.js';
|
|
10
10
|
import { u as useDirection } from './index23.js';
|
|
11
|
-
import { u as useSize } from './
|
|
12
|
-
import { u as usePrevious } from './
|
|
11
|
+
import { u as useSize } from './index36.js';
|
|
12
|
+
import { u as usePrevious } from './index35.js';
|
|
13
13
|
|
|
14
14
|
var RADIO_NAME = "Radio";
|
|
15
15
|
var [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);
|