@vritti/quantum-ui 0.3.12 → 0.3.13
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/Alert.js +1 -1
- package/dist/Alert.js.map +1 -1
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Badge2.js +2 -2
- package/dist/BillingCycleSelector.js +37 -0
- package/dist/BillingCycleSelector.js.map +1 -0
- package/dist/Breadcrumb.js +1 -1
- package/dist/Breadcrumb.js.map +1 -1
- package/dist/Button.js +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Button2.js +2 -2
- package/dist/CardSkeleton.js.map +1 -1
- package/dist/CategoryFilter.js +6 -4
- package/dist/CategoryFilter.js.map +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox2.js +4 -4
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/Collapsible.js.map +1 -1
- package/dist/Combination.js +1129 -0
- package/dist/Combination.js.map +1 -0
- package/dist/CompanySelector.js +20 -0
- package/dist/CompanySelector.js.map +1 -0
- package/dist/ConfirmHost.js.map +1 -1
- package/dist/CountrySelector.js +37 -0
- package/dist/CountrySelector.js.map +1 -0
- package/dist/CurrencyField.js +1 -0
- package/dist/CurrencyField.js.map +1 -1
- package/dist/CustomerSelector.js +2 -2
- package/dist/CustomerSelector.js.map +1 -1
- package/dist/DangerZoneSkeleton.js +21 -3
- package/dist/DangerZoneSkeleton.js.map +1 -1
- package/dist/DatePicker.js +3 -3
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateTimePicker.js +2 -2
- package/dist/DetailSectionSkeleton.js.map +1 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/DropdownMenu.js.map +1 -1
- package/dist/FeaturePermissionSelector.js +37 -0
- package/dist/FeaturePermissionSelector.js.map +1 -0
- package/dist/Form.js.map +1 -1
- package/dist/FormSection.js +4 -4
- package/dist/FormSection.js.map +1 -1
- package/dist/HierarchyGraph.js +5 -10621
- package/dist/HierarchyGraph.js.map +1 -1
- package/dist/ISOCountrySelect.js +283 -0
- package/dist/ISOCountrySelect.js.map +1 -0
- package/dist/IconSelect.js +1 -1
- package/dist/IconSelect.js.map +1 -1
- package/dist/InventoryItemSelector.js +2 -2
- package/dist/InventoryItemSelector.js.map +1 -1
- package/dist/Kbd.js +1 -1
- package/dist/Kbd.js.map +1 -1
- package/dist/Label.js +1 -1
- package/dist/LayoutModeContext.js.map +1 -1
- package/dist/LegalEntitySelector.js +37 -0
- package/dist/LegalEntitySelector.js.map +1 -0
- package/dist/LocationSelector.js +2 -2
- package/dist/LocationSelector.js.map +1 -1
- package/dist/LotSelector.js +2 -2
- package/dist/LotSelector.js.map +1 -1
- package/dist/OTPField.js.map +1 -1
- package/dist/PageContent.js.map +1 -1
- package/dist/PageHeaderSkeleton.js +21 -10
- package/dist/PageHeaderSkeleton.js.map +1 -1
- package/dist/PasswordField.js.map +1 -1
- package/dist/PermissionGate.js +49 -5
- package/dist/PermissionGate.js.map +1 -1
- package/dist/PersonSelector.js +20 -0
- package/dist/PersonSelector.js.map +1 -0
- package/dist/PhoneField.js.map +1 -1
- package/dist/PurchaseOrderSelector.js +2 -2
- package/dist/PurchaseOrderSelector.js.map +1 -1
- package/dist/QuantSelector.js +2 -2
- package/dist/QuantSelector.js.map +1 -1
- package/dist/RadioGroup.js +6 -6
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RoleSelector.js +20 -0
- package/dist/RoleSelector.js.map +1 -0
- package/dist/Select.js +4 -1
- package/dist/Select.js.map +1 -1
- package/dist/SelectFilter.js.map +1 -1
- package/dist/Separator.js.map +1 -1
- package/dist/SerialSelector.js +2 -2
- package/dist/SerialSelector.js.map +1 -1
- package/dist/Sidebar.js +2 -2
- package/dist/Sidebar.js.map +1 -1
- package/dist/SingleSelect.js +2 -2
- package/dist/SingleSelect.js.map +1 -1
- package/dist/SiteGroupSelector.js +37 -0
- package/dist/SiteGroupSelector.js.map +1 -0
- package/dist/SiteSelector.js +37 -0
- package/dist/SiteSelector.js.map +1 -0
- package/dist/Sonner.js +1 -1
- package/dist/Sonner.js.map +1 -1
- package/dist/Sortable.js +4 -4417
- package/dist/Sortable.js.map +1 -1
- package/dist/StepProgressIndicator.js.map +1 -1
- package/dist/SupplierItemSelector.js +2 -2
- package/dist/SupplierItemSelector.js.map +1 -1
- package/dist/SupplierSelector.js +2 -2
- package/dist/SupplierSelector.js.map +1 -1
- package/dist/Switch.js +3 -3
- package/dist/Switch.js.map +1 -1
- package/dist/TabsSkeleton.js +101 -49
- package/dist/TabsSkeleton.js.map +1 -1
- package/dist/TaxClassSelector.js +20 -0
- package/dist/TaxClassSelector.js.map +1 -0
- package/dist/TextField.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/ThemeToggle.js.map +1 -1
- package/dist/Toggle.js +1 -1
- package/dist/Toggle.js.map +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Typography.js.map +1 -1
- package/dist/UomSelector.js +2 -2
- package/dist/UomSelector.js.map +1 -1
- package/dist/UploadFile.js.map +1 -1
- package/dist/assets/quantum-ui.css +25 -13
- package/dist/calendar2.js +1 -1
- package/dist/collapsible2.js +1 -1
- package/dist/components/CompanySelector.js +2 -0
- package/dist/components/CompanySelector.js.map +1 -0
- package/dist/components/FormattedDate.js +2 -2
- package/dist/components/HierarchyGraph.js +2 -1
- package/dist/components/HierarchyGraph.js.map +1 -1
- package/dist/components/PermissionGate.js +1 -1
- package/dist/components/PersonSelector.js +2 -0
- package/dist/components/PersonSelector.js.map +1 -0
- package/dist/components/ScanBarcodeButton.js.map +1 -1
- package/dist/components/TreeView.js +7 -7
- package/dist/components/TreeView.js.map +1 -1
- package/dist/core.esm.js +4025 -0
- package/dist/core.esm.js.map +1 -0
- package/dist/dropdown-menu.js +10 -10
- package/dist/field.js +1 -1
- package/dist/image-component.js.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/index10.js +102 -1499
- package/dist/index10.js.map +1 -1
- package/dist/index11.js +1499 -37
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +29 -477
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +427 -231
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +215 -1074
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +1140 -14
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +13 -19
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +24 -172
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +168 -175
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +173 -201
- package/dist/index19.js.map +1 -1
- package/dist/index20.js +203 -69
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +70 -211
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +207 -117
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +123 -71
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +74 -11
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +13 -1134
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +1120 -219
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +202 -2506
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +2527 -23
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +32 -4
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +11543 -267
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +3 -1124
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +1 -1
- package/dist/index32.js +7 -7
- package/dist/index34.js +1 -1
- package/dist/index37.js +1 -1
- package/dist/index38.js +21 -42
- package/dist/index38.js.map +1 -1
- package/dist/index4.js +272 -132
- package/dist/index4.js.map +1 -1
- package/dist/index5.js +138 -388
- package/dist/index5.js.map +1 -1
- package/dist/index6.js +386 -7
- package/dist/index6.js.map +1 -1
- package/dist/index7.js +13 -92
- package/dist/index7.js.map +1 -1
- package/dist/index8.js +92 -43
- package/dist/index8.js.map +1 -1
- package/dist/index9.js +42 -102
- package/dist/index9.js.map +1 -1
- package/dist/lib/components/Alert/Alert.d.ts.map +1 -1
- package/dist/lib/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/lib/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/lib/components/Button/Button.d.ts.map +1 -1
- package/dist/lib/components/Card/CardSkeleton.d.ts.map +1 -1
- package/dist/lib/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/lib/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
- package/dist/lib/components/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/lib/components/CompanySelector/CompanySelector.d.ts +4 -0
- package/dist/lib/components/CompanySelector/CompanySelector.d.ts.map +1 -0
- package/dist/lib/components/CompanySelector/index.d.ts +2 -0
- package/dist/lib/components/CompanySelector/index.d.ts.map +1 -0
- package/dist/lib/components/ConfirmHost/ConfirmHost.d.ts.map +1 -1
- package/dist/lib/components/CurrencyField/CurrencyField.d.ts.map +1 -1
- package/dist/lib/components/DangerZone/DangerZone.d.ts +3 -1
- package/dist/lib/components/DangerZone/DangerZone.d.ts.map +1 -1
- package/dist/lib/components/DataTable/CompactTableSkeleton.d.ts.map +1 -1
- package/dist/lib/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/lib/components/DataTable/cells/cells.d.ts.map +1 -1
- package/dist/lib/components/DataTable/components/DataTableSelectionBar.d.ts.map +1 -1
- package/dist/lib/components/DataTable/components/RowActions.d.ts.map +1 -1
- package/dist/lib/components/DataTable/hooks/useDataTable.d.ts.map +1 -1
- package/dist/lib/components/DataTable/store/store.d.ts.map +1 -1
- package/dist/lib/components/DataTable/types.d.ts.map +1 -1
- package/dist/lib/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/lib/components/DetailField/DetailField.d.ts.map +1 -1
- package/dist/lib/components/DetailField/DetailHeader.d.ts.map +1 -1
- package/dist/lib/components/DetailField/DetailSectionSkeleton.d.ts.map +1 -1
- package/dist/lib/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/lib/components/DropdownMenu/types.d.ts.map +1 -1
- package/dist/lib/components/Editor/editor-ui/color-picker.d.ts.map +1 -1
- package/dist/lib/components/Editor/editor-ui/image-component.d.ts.map +1 -1
- package/dist/lib/components/Editor/nodes/autocomplete-node.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/actions/max-length-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/embeds/auto-embed-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/embeds/youtube-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/emojis-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/floating-link-editor-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/floating-text-format-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/images-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/keywords-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/layout-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/list-max-indent-level-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/mentions-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/picker/component-picker-option.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/tab-focus-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/table-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/toolbar/clear-formatting-toolbar-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/plugins/typing-pref-plugin.d.ts.map +1 -1
- package/dist/lib/components/Editor/shared/invariant.d.ts.map +1 -1
- package/dist/lib/components/Editor/shared/react-patches.d.ts.map +1 -1
- package/dist/lib/components/Editor/shared/react-test-utils.d.ts.map +1 -1
- package/dist/lib/components/Editor/shared/simple-diff-with-cursor.d.ts.map +1 -1
- package/dist/lib/components/Editor/shared/use-layout-effect.d.ts.map +1 -1
- package/dist/lib/components/Editor/transformers/markdown-table-transformer.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/collapsible.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/doc-serialization.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/emoji-list.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/get-dom-range-rect.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/get-selected-node.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/guard.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/set-floating-elem-position-for-link-editor.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/set-floating-elem-position.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/swipe.d.ts.map +1 -1
- package/dist/lib/components/Editor/utils/url.d.ts.map +1 -1
- package/dist/lib/components/Form/Form.d.ts.map +1 -1
- package/dist/lib/components/OTPField/OTPField.d.ts.map +1 -1
- package/dist/lib/components/PageContent/PageContent.d.ts.map +1 -1
- package/dist/lib/components/PageHeader/PageHeader.d.ts.map +1 -1
- package/dist/lib/components/PasswordField/PasswordField.d.ts.map +1 -1
- package/dist/lib/components/PermissionGate/PermissionGate.d.ts +15 -4
- package/dist/lib/components/PermissionGate/PermissionGate.d.ts.map +1 -1
- package/dist/lib/components/PermissionGate/index.d.ts +1 -1
- package/dist/lib/components/PermissionGate/index.d.ts.map +1 -1
- package/dist/lib/components/PersonSelector/PersonSelector.d.ts +4 -0
- package/dist/lib/components/PersonSelector/PersonSelector.d.ts.map +1 -0
- package/dist/lib/components/PersonSelector/index.d.ts +2 -0
- package/dist/lib/components/PersonSelector/index.d.ts.map +1 -0
- package/dist/lib/components/PhoneField/PhoneField.d.ts.map +1 -1
- package/dist/lib/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/lib/components/ScanBarcodeButton/ScanBarcodeButton.d.ts.map +1 -1
- package/dist/lib/components/Select/SelectFilter.d.ts.map +1 -1
- package/dist/lib/components/Select/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/lib/components/Select/components/MultiSelect/MultiSelectFilter.d.ts.map +1 -1
- package/dist/lib/components/Select/components/SingleSelect/SingleSelect.d.ts.map +1 -1
- package/dist/lib/components/Select/components/SingleSelect/SingleSelectFilter.d.ts.map +1 -1
- package/dist/lib/components/Select/hooks/useSelect.d.ts.map +1 -1
- package/dist/lib/components/Select/hooks/useSingleSelect.d.ts.map +1 -1
- package/dist/lib/components/Select/types.d.ts +1 -1
- package/dist/lib/components/Select/types.d.ts.map +1 -1
- package/dist/lib/components/Separator/Separator.d.ts.map +1 -1
- package/dist/lib/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/lib/components/Sonner/Sonner.d.ts.map +1 -1
- package/dist/lib/components/Sonner/toast.d.ts.map +1 -1
- package/dist/lib/components/StepProgressIndicator/StepProgressIndicator.d.ts.map +1 -1
- package/dist/lib/components/Switch/Switch.d.ts.map +1 -1
- package/dist/lib/components/Tabs/Tabs.d.ts +2 -0
- package/dist/lib/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/lib/components/Tabs/TabsSkeleton.d.ts.map +1 -1
- package/dist/lib/components/TextField/TextField.d.ts.map +1 -1
- package/dist/lib/components/ThemeToggle/ThemeToggle.d.ts.map +1 -1
- package/dist/lib/components/Toggle/Toggle.d.ts.map +1 -1
- package/dist/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/lib/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/lib/components/Typography/Typography.d.ts.map +1 -1
- package/dist/lib/components/UploadFile/UploadFile.d.ts.map +1 -1
- package/dist/lib/components/index.d.ts +2 -0
- package/dist/lib/components/index.d.ts.map +1 -1
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/context/LayoutModeContext.d.ts.map +1 -1
- package/dist/lib/context/ThemeContext.d.ts.map +1 -1
- package/dist/lib/hooks/useBUCurrency.d.ts.map +1 -1
- package/dist/lib/hooks/useBUTimezone.d.ts.map +1 -1
- package/dist/lib/hooks/useBarcodeScanner.d.ts.map +1 -1
- package/dist/lib/hooks/useFormatters.d.ts.map +1 -1
- package/dist/lib/hooks/useSSE.d.ts.map +1 -1
- package/dist/lib/hooks/useTheme.d.ts.map +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/selects/billing-cycle/BillingCycleFilter.d.ts +12 -0
- package/dist/lib/selects/billing-cycle/BillingCycleFilter.d.ts.map +1 -0
- package/dist/lib/selects/billing-cycle/BillingCycleSelector.d.ts +4 -0
- package/dist/lib/selects/billing-cycle/BillingCycleSelector.d.ts.map +1 -0
- package/dist/lib/selects/billing-cycle/index.d.ts +3 -0
- package/dist/lib/selects/billing-cycle/index.d.ts.map +1 -0
- package/dist/lib/selects/category/CategoryFilter.d.ts.map +1 -1
- package/dist/lib/selects/category/CategorySelector.d.ts.map +1 -1
- package/dist/lib/selects/cost-category/CostCategorySelector.d.ts.map +1 -1
- package/dist/lib/selects/country/CountryFilter.d.ts +12 -0
- package/dist/lib/selects/country/CountryFilter.d.ts.map +1 -0
- package/dist/lib/selects/country/CountrySelector.d.ts +4 -0
- package/dist/lib/selects/country/CountrySelector.d.ts.map +1 -0
- package/dist/lib/selects/country/index.d.ts +3 -0
- package/dist/lib/selects/country/index.d.ts.map +1 -0
- package/dist/lib/selects/feature-permission/FeaturePermissionFilter.d.ts +12 -0
- package/dist/lib/selects/feature-permission/FeaturePermissionFilter.d.ts.map +1 -0
- package/dist/lib/selects/feature-permission/FeaturePermissionSelector.d.ts +4 -0
- package/dist/lib/selects/feature-permission/FeaturePermissionSelector.d.ts.map +1 -0
- package/dist/lib/selects/feature-permission/index.d.ts +3 -0
- package/dist/lib/selects/feature-permission/index.d.ts.map +1 -0
- package/dist/lib/selects/icon/IconSelect.d.ts.map +1 -1
- package/dist/lib/selects/index.d.ts +9 -0
- package/dist/lib/selects/index.d.ts.map +1 -1
- package/dist/lib/selects/inventory-item/InventoryItemSelector.d.ts +2 -2
- package/dist/lib/selects/inventory-item/InventoryItemSelector.d.ts.map +1 -1
- package/dist/lib/selects/iso-country/ISOCountrySelect.d.ts +15 -0
- package/dist/lib/selects/iso-country/ISOCountrySelect.d.ts.map +1 -0
- package/dist/lib/selects/iso-country/index.d.ts +3 -0
- package/dist/lib/selects/iso-country/index.d.ts.map +1 -0
- package/dist/lib/selects/iso-country/iso-countries.d.ts +7 -0
- package/dist/lib/selects/iso-country/iso-countries.d.ts.map +1 -0
- package/dist/lib/selects/legal-entity/LegalEntityFilter.d.ts +12 -0
- package/dist/lib/selects/legal-entity/LegalEntityFilter.d.ts.map +1 -0
- package/dist/lib/selects/legal-entity/LegalEntitySelector.d.ts +4 -0
- package/dist/lib/selects/legal-entity/LegalEntitySelector.d.ts.map +1 -0
- package/dist/lib/selects/legal-entity/index.d.ts +3 -0
- package/dist/lib/selects/legal-entity/index.d.ts.map +1 -0
- package/dist/lib/selects/location/LocationSelector.d.ts.map +1 -1
- package/dist/lib/selects/purchase-order/PurchaseOrderSelector.d.ts.map +1 -1
- package/dist/lib/selects/purchase-order-item/PurchaseOrderItemSelector.d.ts.map +1 -1
- package/dist/lib/selects/role/RoleSelector.d.ts +4 -0
- package/dist/lib/selects/role/RoleSelector.d.ts.map +1 -0
- package/dist/lib/selects/role/index.d.ts +2 -0
- package/dist/lib/selects/role/index.d.ts.map +1 -0
- package/dist/lib/selects/serial/SerialSelector.d.ts.map +1 -1
- package/dist/lib/selects/site/SiteFilter.d.ts +12 -0
- package/dist/lib/selects/site/SiteFilter.d.ts.map +1 -0
- package/dist/lib/selects/site/SiteSelector.d.ts +4 -0
- package/dist/lib/selects/site/SiteSelector.d.ts.map +1 -0
- package/dist/lib/selects/site/index.d.ts +3 -0
- package/dist/lib/selects/site/index.d.ts.map +1 -0
- package/dist/lib/selects/site-group/SiteGroupFilter.d.ts +12 -0
- package/dist/lib/selects/site-group/SiteGroupFilter.d.ts.map +1 -0
- package/dist/lib/selects/site-group/SiteGroupSelector.d.ts +4 -0
- package/dist/lib/selects/site-group/SiteGroupSelector.d.ts.map +1 -0
- package/dist/lib/selects/site-group/index.d.ts +3 -0
- package/dist/lib/selects/site-group/index.d.ts.map +1 -0
- package/dist/lib/selects/supplier/SupplierSelector.d.ts.map +1 -1
- package/dist/lib/selects/supplier-item/SupplierItemFilter.d.ts.map +1 -1
- package/dist/lib/selects/supplier-item/SupplierItemSelector.d.ts.map +1 -1
- package/dist/lib/selects/tax-class/TaxClassSelector.d.ts +4 -0
- package/dist/lib/selects/tax-class/TaxClassSelector.d.ts.map +1 -0
- package/dist/lib/selects/tax-class/index.d.ts +2 -0
- package/dist/lib/selects/tax-class/index.d.ts.map +1 -0
- package/dist/lib/theme/index.d.ts.map +1 -1
- package/dist/lib/types/catalog-resolver.d.ts +50 -17
- package/dist/lib/types/catalog-resolver.d.ts.map +1 -1
- package/dist/lib/utils/axios.d.ts.map +1 -1
- package/dist/lib/utils/cn.d.ts +3 -0
- package/dist/lib/utils/cn.d.ts.map +1 -0
- package/dist/lib/utils/dagre.d.ts +2 -0
- package/dist/lib/utils/dagre.d.ts.map +1 -0
- package/dist/lib/utils/dnd-kit/core.d.ts +2 -0
- package/dist/lib/utils/dnd-kit/core.d.ts.map +1 -0
- package/dist/lib/utils/dnd-kit/sortable.d.ts +2 -0
- package/dist/lib/utils/dnd-kit/sortable.d.ts.map +1 -0
- package/dist/lib/utils/dnd-kit/utilities.d.ts +2 -0
- package/dist/lib/utils/dnd-kit/utilities.d.ts.map +1 -0
- package/dist/lib/utils/formHelpers.d.ts.map +1 -1
- package/dist/lib/utils/format.d.ts.map +1 -1
- package/dist/lib/utils/permission-deps.d.ts +9 -0
- package/dist/lib/utils/permission-deps.d.ts.map +1 -0
- package/dist/lib/utils/react-flow.d.ts +2 -0
- package/dist/lib/utils/react-flow.d.ts.map +1 -0
- package/dist/lib/utils/zod.d.ts +9 -0
- package/dist/lib/utils/zod.d.ts.map +1 -1
- package/dist/popover.js +1 -1
- package/dist/select2.js +1 -1
- package/dist/selects/billing-cycle.js +2 -0
- package/dist/selects/billing-cycle.js.map +1 -0
- package/dist/selects/cost-category.js +2 -2
- package/dist/selects/cost-category.js.map +1 -1
- package/dist/selects/country.js +2 -0
- package/dist/selects/country.js.map +1 -0
- package/dist/selects/feature-permission.js +2 -0
- package/dist/selects/feature-permission.js.map +1 -0
- package/dist/selects/iso-country.js +2 -0
- package/dist/selects/iso-country.js.map +1 -0
- package/dist/selects/legal-entity.js +2 -0
- package/dist/selects/legal-entity.js.map +1 -0
- package/dist/selects/purchase-order-item.js +1 -1
- package/dist/selects/purchase-order-item.js.map +1 -1
- package/dist/selects/role.js +2 -0
- package/dist/selects/role.js.map +1 -0
- package/dist/selects/site-group.js +2 -0
- package/dist/selects/site-group.js.map +1 -0
- package/dist/selects/site.js +2 -0
- package/dist/selects/site.js.map +1 -0
- package/dist/selects/tax-class.js +2 -0
- package/dist/selects/tax-class.js.map +1 -0
- package/dist/selects/tax-group.js +2 -2
- package/dist/selects/tax-group.js.map +1 -1
- package/dist/separator2.js +1 -1
- package/dist/sortable.esm.js +780 -0
- package/dist/sortable.esm.js.map +1 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/toast.js +2 -26
- package/dist/toast.js.map +1 -1
- package/dist/tooltip2.js +1 -1
- package/dist/types/catalog-resolver.js +5 -2
- package/dist/types/catalog-resolver.js.map +1 -1
- package/dist/useBUTimezone.js.map +1 -1
- package/dist/useDataTable.js +58 -60
- package/dist/useDataTable.js.map +1 -1
- package/dist/useFormatters.js.map +1 -1
- package/dist/useTheme.js.map +1 -1
- package/dist/useTimer.js +2 -2
- package/dist/useTimer.js.map +1 -1
- package/dist/utilities.esm.js +333 -0
- package/dist/utilities.esm.js.map +1 -0
- package/dist/utils/axios.js +1 -1
- package/dist/utils/axios.js.map +1 -1
- package/dist/utils/cn.js +6 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/currency.js +2 -2
- package/dist/utils/dagre.js +4 -0
- package/dist/utils/dagre.js.map +1 -0
- package/dist/utils/dnd-kit/core.js +2 -0
- package/dist/utils/dnd-kit/core.js.map +1 -0
- package/dist/utils/dnd-kit/sortable.js +2 -0
- package/dist/utils/dnd-kit/sortable.js.map +1 -0
- package/dist/utils/dnd-kit/utilities.js +2 -0
- package/dist/utils/dnd-kit/utilities.js.map +1 -0
- package/dist/utils/format.js +2 -2
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/hotkeys.js +1 -1
- package/dist/utils/money.js +1 -1
- package/dist/utils/permission-deps.js +64 -0
- package/dist/utils/permission-deps.js.map +1 -0
- package/dist/utils/react-flow.js +2 -0
- package/dist/utils/react-flow.js.map +1 -0
- package/dist/utils/timezone.js +1 -1
- package/dist/utils/zod.js +11 -1
- package/dist/utils/zod.js.map +1 -1
- package/package.json +73 -1
package/dist/PermissionGate.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useContext, createContext } from 'react';
|
|
3
3
|
import { c as cn } from './utils.js';
|
|
4
4
|
import { L as LockKeyhole } from './lock-keyhole.js';
|
|
5
5
|
import { L as Lock } from './lock.js';
|
|
6
6
|
|
|
7
|
-
const ALLOW = Object.freeze({
|
|
7
|
+
const ALLOW = Object.freeze({
|
|
8
|
+
granted: true,
|
|
9
|
+
locked: false,
|
|
10
|
+
reason: null,
|
|
11
|
+
unlockPlans: [],
|
|
12
|
+
available: true,
|
|
13
|
+
featureName: null
|
|
14
|
+
});
|
|
8
15
|
const ALLOW_GATE = () => ALLOW;
|
|
9
16
|
const GATE_CONTEXT_KEY = /* @__PURE__ */ Symbol.for("@vritti/quantum-ui/PermissionGate");
|
|
10
17
|
const registry = globalThis;
|
|
@@ -21,11 +28,48 @@ function usePermission(code) {
|
|
|
21
28
|
const PermissionLockIcon = ({
|
|
22
29
|
reason,
|
|
23
30
|
className
|
|
24
|
-
}) => reason === "
|
|
31
|
+
}) => reason === "SITE" ? /* @__PURE__ */ jsx(LockKeyhole, { className: cn("text-destructive", className) }) : /* @__PURE__ */ jsx(Lock, { className: cn("text-warning", className) });
|
|
25
32
|
function lockedTip({ reason, unlockPlans }) {
|
|
26
|
-
if (reason === "
|
|
33
|
+
if (reason === "SITE") return "Not enabled for this site";
|
|
27
34
|
return unlockPlans.length > 0 ? `Available in ${unlockPlans.join(", ")}` : "Not included in your plan";
|
|
28
35
|
}
|
|
36
|
+
function lockMessages(result) {
|
|
37
|
+
const name = result.featureName;
|
|
38
|
+
if (!result.granted) {
|
|
39
|
+
return {
|
|
40
|
+
title: name ? `${name} is restricted` : "No access",
|
|
41
|
+
tip: name ? `You don't have permission to view ${name}.` : "You don't have permission to access this."
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (result.reason === "SITE") {
|
|
45
|
+
return {
|
|
46
|
+
title: name ? `${name} not enabled here` : "Not available here",
|
|
47
|
+
tip: name ? `${name} isn't enabled for this site.` : "Not enabled for this site."
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (result.unlockPlans.length > 0) {
|
|
51
|
+
const plans = result.unlockPlans.join(", ");
|
|
52
|
+
return {
|
|
53
|
+
title: name ? `Unlock ${name}` : "Upgrade required",
|
|
54
|
+
tip: name ? `${name} is available on ${plans}.` : `Available in ${plans}.`
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
title: name ? `Unlock ${name}` : "Upgrade required",
|
|
59
|
+
tip: name ? `${name} isn't included in your plan.` : "Not included in your plan."
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const DefaultLockFallback = ({ result }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 text-center", children: [
|
|
63
|
+
/* @__PURE__ */ jsx(PermissionLockIcon, { reason: result.reason, className: "size-10" }),
|
|
64
|
+
/* @__PURE__ */ jsx("p", { className: "max-w-sm text-sm text-muted-foreground", children: lockMessages(result).tip })
|
|
65
|
+
] });
|
|
66
|
+
const PermissionGate = ({ permission, children, fallback }) => {
|
|
67
|
+
const result = usePermission(permission);
|
|
68
|
+
if (result.available) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
69
|
+
if (fallback !== void 0)
|
|
70
|
+
return /* @__PURE__ */ jsx(Fragment, { children: typeof fallback === "function" ? fallback({ ...result, ...lockMessages(result) }) : fallback });
|
|
71
|
+
return /* @__PURE__ */ jsx(DefaultLockFallback, { result });
|
|
72
|
+
};
|
|
29
73
|
|
|
30
|
-
export {
|
|
74
|
+
export { PermissionGate as P, PermissionGateProvider as a, PermissionLockIcon as b, usePermissionGate as c, lockedTip as l, usePermission as u };
|
|
31
75
|
//# sourceMappingURL=PermissionGate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionGate.js","sources":["../lib/components/PermissionGate/PermissionGate.tsx"],"sourcesContent":["import { Lock, LockKeyhole } from 'lucide-react';\nimport type React from 'react';\nimport { createContext, useContext } from 'react';\nimport { cn } from '../../../shadcn/utils';\n\
|
|
1
|
+
{"version":3,"file":"PermissionGate.js","sources":["../lib/components/PermissionGate/PermissionGate.tsx"],"sourcesContent":["import { Lock, LockKeyhole } from 'lucide-react';\nimport type React from 'react';\nimport { createContext, useContext } from 'react';\nimport { cn } from '../../../shadcn/utils';\n\nexport type PermissionLockReason = 'PLAN' | 'SITE';\n\nexport interface PermissionGateResult {\n granted: boolean;\n locked: boolean;\n reason: PermissionLockReason | null;\n unlockPlans: string[];\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 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\nexport const PermissionLockIcon: React.FC<{ reason: PermissionLockReason | null; className?: string }> = ({\n reason,\n className,\n}) =>\n reason === 'SITE' ? (\n <LockKeyhole className={cn('text-destructive', className)} />\n ) : (\n <Lock className={cn('text-warning', className)} />\n );\n\n// Shared tooltip copy for locked controls — upsell for plan locks, restriction notice for BU locks\nexport function lockedTip({ reason, unlockPlans }: Pick<PermissionGateResult, 'reason' | 'unlockPlans'>): string {\n if (reason === 'SITE') return 'Not enabled for this site';\n return unlockPlans.length > 0 ? `Available in ${unlockPlans.join(', ')}` : 'Not included in your plan';\n}\n\n// Resolves a blocked control's heading + description, keyed off the resolved feature name when known\nfunction lockMessages(result: Pick<PermissionGateResult, 'granted' | 'reason' | 'unlockPlans' | 'featureName'>): {\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 if (result.reason === '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 }\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\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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { S as Select } from './Select.js';
|
|
4
|
+
|
|
5
|
+
const PersonSelector = forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
6
|
+
Select,
|
|
7
|
+
{
|
|
8
|
+
ref,
|
|
9
|
+
label: "Person",
|
|
10
|
+
placeholder: "Search people by name",
|
|
11
|
+
searchable: true,
|
|
12
|
+
optionsEndpoint: "commerce-api/select-api/people",
|
|
13
|
+
fieldKeys: { valueKey: "id", labelKey: "displayName" },
|
|
14
|
+
...props
|
|
15
|
+
}
|
|
16
|
+
));
|
|
17
|
+
PersonSelector.displayName = "PersonSelector";
|
|
18
|
+
|
|
19
|
+
export { PersonSelector as P };
|
|
20
|
+
//# sourceMappingURL=PersonSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonSelector.js","sources":["../lib/components/PersonSelector/PersonSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../Select/Select';\n\nexport type PersonSelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Pre-configured Select for person selection with async search\nexport const PersonSelector = forwardRef<HTMLButtonElement, PersonSelectorProps>((props, ref) => (\n <Select\n ref={ref}\n label=\"Person\"\n placeholder=\"Search people by name\"\n searchable\n optionsEndpoint=\"commerce-api/select-api/people\"\n fieldKeys={{ valueKey: 'id', labelKey: 'displayName' }}\n {...props}\n />\n));\nPersonSelector.displayName = 'PersonSelector';\n"],"names":[],"mappings":";;;;AAMO,MAAM,cAAA,GAAiB,UAAA,CAAmD,CAAC,KAAA,EAAO,GAAA,qBACvF,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,KAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAY,uBAAA;AAAA,IACZ,UAAA,EAAU,IAAA;AAAA,IACV,eAAA,EAAgB,gCAAA;AAAA,IAChB,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,aAAA,EAAc;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;"}
|
package/dist/PhoneField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneField.js","sources":["../lib/components/PhoneField/PhoneField.tsx"],"sourcesContent":["import React from 'react';\nimport PhoneInputBase, { type Country, type Value } from 'react-phone-number-input';\nimport 'react-phone-number-input/style.css';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface PhoneFieldProps {\n
|
|
1
|
+
{"version":3,"file":"PhoneField.js","sources":["../lib/components/PhoneField/PhoneField.tsx"],"sourcesContent":["import React from 'react';\nimport PhoneInputBase, { type Country, type Value } from 'react-phone-number-input';\nimport 'react-phone-number-input/style.css';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface PhoneFieldProps {\n name?: string;\n\n value?: Value;\n\n onChange?: (value: Value | undefined) => void;\n\n onCountryChange?: (country: Country | undefined) => void;\n\n defaultCountry?: Country;\n\n label?: string;\n\n description?: React.ReactNode;\n\n error?: string;\n\n disabled?: boolean;\n\n className?: string;\n\n placeholder?: string;\n}\n\n// PhoneField component - specialized input for international phone numbers with Field system\nexport const PhoneField = React.forwardRef<HTMLInputElement, PhoneFieldProps>(\n (\n {\n name: _name,\n value,\n onChange = () => {},\n onCountryChange,\n defaultCountry = 'IN',\n label,\n description,\n error,\n disabled,\n className,\n placeholder,\n },\n _ref,\n ) => {\n const fieldId = React.useId();\n const hasError = !!error;\n const phoneInputStyle = {\n '--PhoneInputCountryFlag-backgroundColor--loading': 'transparent',\n '--PhoneInputCountryFlag-borderColor': 'transparent',\n '--PhoneInputCountryFlag-borderWidth': 0,\n } as React.CSSProperties;\n\n return (\n <Field data-disabled={disabled}>\n {label && <FieldLabel>{label}</FieldLabel>}\n\n <FieldContent>\n <PhoneInputBase\n international\n defaultCountry={defaultCountry}\n value={value}\n onChange={onChange}\n onCountryChange={onCountryChange}\n disabled={disabled}\n placeholder={placeholder}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n aria-invalid={hasError}\n style={phoneInputStyle}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent dark:bg-input/30 px-3 py-1 text-sm shadow-xs transition-[color,box-shadow]',\n 'placeholder:text-muted-foreground',\n 'focus-within:outline-none 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 numberInputProps={{\n className: cn('flex-1 bg-transparent outline-none', 'placeholder:text-muted-foreground'),\n }}\n countrySelectProps={{\n className: cn('mr-2 bg-transparent border-none outline-none', 'focus:ring-0'),\n }}\n />\n\n {description && <FieldDescription id={`${fieldId}-description`}>{description}</FieldDescription>}\n\n {error && <FieldError id={`${fieldId}-error`}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n },\n);\n\nPhoneField.displayName = 'PhoneField';\n"],"names":["React"],"mappings":";;;;;;AA+BO,MAAM,aAAaA,cAAA,CAAM,UAAA;AAAA,EAC9B,CACE;AAAA,IACE,IAAA,EAAM,KAAA;AAAA,IACN,KAAA;AAAA,IACA,WAAW,MAAM;AAAA,IAAC,CAAA;AAAA,IAClB,eAAA;AAAA,IACA,cAAA,GAAiB,IAAA;AAAA,IACjB,KAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,KAEF,IAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAUA,eAAM,KAAA,EAAM;AAC5B,IAAA,MAAM,QAAA,GAAW,CAAC,CAAC,KAAA;AACnB,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,kDAAA,EAAoD,aAAA;AAAA,MACpD,qCAAA,EAAuC,aAAA;AAAA,MACvC,qCAAA,EAAuC;AAAA,KACzC;AAEA,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,eAAA,EAAe,QAAA,EACnB,QAAA,EAAA;AAAA,MAAA,KAAA,oBAAS,GAAA,CAAC,cAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,2BAE5B,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,IAAA;AAAA,YACb,cAAA;AAAA,YACA,KAAA;AAAA,YACA,QAAA;AAAA,YACA,eAAA;AAAA,YACA,QAAA;AAAA,YACA,WAAA;AAAA,YACA,oBAAkB,WAAA,IAAe,KAAA,GAAQ,GAAG,OAAO,CAAA,aAAA,EAAgB,OAAO,CAAA,MAAA,CAAA,GAAW,MAAA;AAAA,YACrF,cAAA,EAAc,QAAA;AAAA,YACd,KAAA,EAAO,eAAA;AAAA,YACP,SAAA,EAAW,EAAA;AAAA,cACT,0IAAA;AAAA,cACA,mCAAA;AAAA,cACA,sGAAA;AAAA,cACA,QAAA,IAAY,mDAAA;AAAA,cACZ,QAAA,IAAY,2FAAA;AAAA,cACZ;AAAA,aACF;AAAA,YACA,gBAAA,EAAkB;AAAA,cAChB,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,mCAAmC;AAAA,aACzF;AAAA,YACA,kBAAA,EAAoB;AAAA,cAClB,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,cAAc;AAAA;AAC9E;AAAA,SACF;AAAA,QAEC,+BAAe,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAI,CAAA,EAAG,OAAO,gBAAiB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,QAE5E,yBAAS,GAAA,CAAC,UAAA,EAAA,EAAW,IAAI,CAAA,EAAG,OAAO,UAAW,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EACvD;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;;;;"}
|
|
@@ -10,7 +10,7 @@ const PurchaseOrderFilter = Object.assign(
|
|
|
10
10
|
ref,
|
|
11
11
|
name: "purchaseOrderId",
|
|
12
12
|
label: "Purchase Order",
|
|
13
|
-
optionsEndpoint: "commerce-api/purchase-orders
|
|
13
|
+
optionsEndpoint: "commerce-api/select-api/purchase-orders",
|
|
14
14
|
fieldKeys: { valueKey: "id", labelKey: "poNumber" },
|
|
15
15
|
...props
|
|
16
16
|
}
|
|
@@ -32,7 +32,7 @@ const PurchaseOrderSelector = forwardRef(
|
|
|
32
32
|
placeholder: "Select purchase order",
|
|
33
33
|
searchable: true,
|
|
34
34
|
clearable: true,
|
|
35
|
-
optionsEndpoint: "commerce-api/purchase-orders
|
|
35
|
+
optionsEndpoint: "commerce-api/select-api/purchase-orders",
|
|
36
36
|
...props,
|
|
37
37
|
fieldKeys: { ...DEFAULT_FIELD_KEYS, ...fieldKeys }
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PurchaseOrderSelector.js","sources":["../lib/selects/purchase-order/PurchaseOrderFilter.tsx","../lib/selects/purchase-order/PurchaseOrderSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\n\nexport type PurchaseOrderFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for purchase order filtering with async search\nexport const PurchaseOrderFilter = Object.assign(\n forwardRef<HTMLButtonElement, PurchaseOrderFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"purchaseOrderId\"\n label=\"Purchase Order\"\n optionsEndpoint=\"commerce-api/purchase-orders
|
|
1
|
+
{"version":3,"file":"PurchaseOrderSelector.js","sources":["../lib/selects/purchase-order/PurchaseOrderFilter.tsx","../lib/selects/purchase-order/PurchaseOrderSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\n\nexport type PurchaseOrderFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for purchase order filtering with async search\nexport const PurchaseOrderFilter = Object.assign(\n forwardRef<HTMLButtonElement, PurchaseOrderFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"purchaseOrderId\"\n label=\"Purchase Order\"\n optionsEndpoint=\"commerce-api/select-api/purchase-orders\"\n fieldKeys={{ valueKey: 'id', labelKey: 'poNumber' }}\n {...props}\n />\n )),\n { displayName: 'PurchaseOrderFilter', defaultLabel: 'Purchase Order', defaultName: 'purchaseOrderId' },\n);\n","import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type PurchaseOrderSelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\nconst DEFAULT_FIELD_KEYS = {\n valueKey: 'id',\n labelKey: 'poNumber',\n additionalKeys: 'currencyCode,exchangeRate,exchangeRateType',\n} as const;\n\nexport const PurchaseOrderSelector = forwardRef<HTMLButtonElement, PurchaseOrderSelectorProps>(\n ({ fieldKeys, ...props }, ref) => (\n <Select\n ref={ref}\n label=\"Purchase Order\"\n placeholder=\"Select purchase order\"\n searchable\n clearable\n optionsEndpoint=\"commerce-api/select-api/purchase-orders\"\n {...props}\n fieldKeys={{ ...DEFAULT_FIELD_KEYS, ...fieldKeys }}\n />\n ),\n);\nPurchaseOrderSelector.displayName = 'PurchaseOrderSelector';\n"],"names":[],"mappings":";;;;;AAMO,MAAM,sBAAsB,MAAA,CAAO,MAAA;AAAA,EACxC,UAAA,CAAwD,CAAC,KAAA,EAAO,GAAA,qBAC9D,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,iBAAA;AAAA,MACL,KAAA,EAAM,gBAAA;AAAA,MACN,eAAA,EAAgB,yCAAA;AAAA,MAChB,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,UAAA,EAAW;AAAA,MACjD,GAAG;AAAA;AAAA,GAEP,CAAA;AAAA,EACD,EAAE,WAAA,EAAa,qBAAA,EAAuB,YAAA,EAAc,gBAAA,EAAkB,aAAa,iBAAA;AACrF;;ACbA,MAAM,kBAAA,GAAqB;AAAA,EACzB,QAAA,EAAU,IAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,cAAA,EAAgB;AAClB,CAAA;AAEO,MAAM,qBAAA,GAAwB,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAA,EAAM,gBAAA;AAAA,MACN,WAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAU,IAAA;AAAA,MACV,SAAA,EAAS,IAAA;AAAA,MACT,eAAA,EAAgB,yCAAA;AAAA,MACf,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,EAAE,GAAG,kBAAA,EAAoB,GAAG,SAAA;AAAU;AAAA;AAGvD;AACA,qBAAA,CAAsB,WAAA,GAAc,uBAAA;;;;"}
|
package/dist/QuantSelector.js
CHANGED
|
@@ -13,7 +13,7 @@ const QuantFilter = Object.assign(
|
|
|
13
13
|
name: "quantId",
|
|
14
14
|
label: "Quant",
|
|
15
15
|
placeholder: "Select quant",
|
|
16
|
-
optionsEndpoint: "commerce-api/inventory-item-quants
|
|
16
|
+
optionsEndpoint: "commerce-api/select-api/inventory-item-quants",
|
|
17
17
|
...props
|
|
18
18
|
}
|
|
19
19
|
)),
|
|
@@ -62,7 +62,7 @@ const QuantSelector = forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
62
62
|
label: "Quant",
|
|
63
63
|
placeholder: "Select quant",
|
|
64
64
|
searchable: true,
|
|
65
|
-
optionsEndpoint: "commerce-api/inventory-item-quants
|
|
65
|
+
optionsEndpoint: "commerce-api/select-api/inventory-item-quants",
|
|
66
66
|
renderOption: (p) => /* @__PURE__ */ jsx(QuantOptionRow, { ...p }),
|
|
67
67
|
...props
|
|
68
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantSelector.js","sources":["../lib/selects/quant/QuantFilter.tsx","../lib/selects/quant/QuantSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\n\nexport type QuantFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for quant filtering; pass params={{ inventoryItemId }} to scope to a specific item\nexport const QuantFilter = Object.assign(\n forwardRef<HTMLButtonElement, QuantFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"quantId\"\n label=\"Quant\"\n placeholder=\"Select quant\"\n optionsEndpoint=\"commerce-api/inventory-item-quants
|
|
1
|
+
{"version":3,"file":"QuantSelector.js","sources":["../lib/selects/quant/QuantFilter.tsx","../lib/selects/quant/QuantSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\n\nexport type QuantFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for quant filtering; pass params={{ inventoryItemId }} to scope to a specific item\nexport const QuantFilter = Object.assign(\n forwardRef<HTMLButtonElement, QuantFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"quantId\"\n label=\"Quant\"\n placeholder=\"Select quant\"\n optionsEndpoint=\"commerce-api/select-api/inventory-item-quants\"\n {...props}\n />\n )),\n { displayName: 'QuantFilter', defaultLabel: 'Quant', defaultName: 'quantId' },\n);\n","import { Check } from 'lucide-react';\nimport type React from 'react';\nimport { forwardRef } from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport type { SingleSelectOptionRenderProps } from '../../components/Select/components/SingleSelect/SingleSelect';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type QuantSelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Custom option row: label=lotNumber (or inventoryItemName), description=locationPath (or lotNumber), qty+symbol on the right\nfunction QuantOptionRow({ option, selected, onSelect }: SingleSelectOptionRenderProps) {\n const qty = option.additionals?.quantity;\n const symbol = option.additionals?.symbol as string | null | undefined;\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect();\n }\n }\n\n return (\n <div\n role=\"option\"\n aria-selected={selected}\n tabIndex={0}\n className={cn(\n 'relative flex w-full cursor-default items-center gap-2 rounded-md px-2 py-1.5 min-h-11 text-sm outline-hidden select-none',\n 'hover:bg-accent hover:text-accent-foreground',\n )}\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n >\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate\">{option.label || '—'}</span>\n {option.description && (\n <span className=\"mt-0.5 block truncate text-xs text-muted-foreground\">{option.description}</span>\n )}\n </span>\n {qty != null && (\n <span className=\"shrink-0 pr-5 text-xs tabular-nums text-muted-foreground\">\n {String(qty)}\n {symbol ? ` ${symbol}` : ''}\n </span>\n )}\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n {selected && <Check className=\"size-4\" />}\n </span>\n </div>\n );\n}\n\n// Pre-configured Select for quant selection; pass params={{ inventoryItemId }} to scope to a specific item\nexport const QuantSelector = forwardRef<HTMLButtonElement, QuantSelectorProps>((props, ref) => (\n <Select\n ref={ref}\n label=\"Quant\"\n placeholder=\"Select quant\"\n searchable\n optionsEndpoint=\"commerce-api/select-api/inventory-item-quants\"\n renderOption={(p) => <QuantOptionRow {...p} />}\n {...props}\n />\n));\n\nQuantSelector.displayName = 'QuantSelector';\n"],"names":[],"mappings":";;;;;;;AAMO,MAAM,cAAc,MAAA,CAAO,MAAA;AAAA,EAChC,UAAA,CAAgD,CAAC,KAAA,EAAO,GAAA,qBACtD,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAM,OAAA;AAAA,MACN,WAAA,EAAY,cAAA;AAAA,MACZ,eAAA,EAAgB,+CAAA;AAAA,MACf,GAAG;AAAA;AAAA,GAEP,CAAA;AAAA,EACD,EAAE,WAAA,EAAa,aAAA,EAAe,YAAA,EAAc,OAAA,EAAS,aAAa,SAAA;AACpE;;ACRA,SAAS,cAAA,CAAe,EAAE,MAAA,EAAQ,QAAA,EAAU,UAAS,EAAkC;AACrF,EAAA,MAAM,GAAA,GAAM,OAAO,WAAA,EAAa,QAAA;AAChC,EAAA,MAAM,MAAA,GAAS,OAAO,WAAA,EAAa,MAAA;AAEnC,EAAA,SAAS,cAAc,CAAA,EAAwB;AAC7C,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,QAAA,EAAS;AAAA,IACX;AAAA,EACF;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,QAAA;AAAA,MACf,QAAA,EAAU,CAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,2HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,gBAAA,EACd,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,MAAA,CAAO,SAAS,GAAA,EAAI,CAAA;AAAA,UACrD,OAAO,WAAA,oBACN,GAAA,CAAC,UAAK,SAAA,EAAU,qDAAA,EAAuD,iBAAO,WAAA,EAAY;AAAA,SAAA,EAE9F,CAAA;AAAA,QACC,GAAA,IAAO,IAAA,oBACN,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,0DAAA,EACb,QAAA,EAAA;AAAA,UAAA,MAAA,CAAO,GAAG,CAAA;AAAA,UACV,MAAA,GAAS,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GAAK;AAAA,SAAA,EAC3B,CAAA;AAAA,wBAEF,GAAA,CAAC,UAAK,SAAA,EAAU,4DAAA,EACb,sCAAY,GAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,QAAA,EAAS,CAAA,EACzC;AAAA;AAAA;AAAA,GACF;AAEJ;AAGO,MAAM,aAAA,GAAgB,UAAA,CAAkD,CAAC,KAAA,EAAO,GAAA,qBACrF,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,KAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAY,cAAA;AAAA,IACZ,UAAA,EAAU,IAAA;AAAA,IACV,eAAA,EAAgB,+CAAA;AAAA,IAChB,cAAc,CAAC,CAAA,qBAAM,GAAA,CAAC,cAAA,EAAA,EAAgB,GAAG,CAAA,EAAG,CAAA;AAAA,IAC3C,GAAG;AAAA;AACN,CACD;AAED,aAAA,CAAc,WAAA,GAAc,eAAA;;;;"}
|
package/dist/RadioGroup.js
CHANGED
|
@@ -3,14 +3,14 @@ import * as React from 'react';
|
|
|
3
3
|
import React__default from 'react';
|
|
4
4
|
import { h as FieldSet, f as FieldLegend, b as FieldDescription, c as FieldError, e as FieldLabel, F as Field, a as FieldContent } from './field.js';
|
|
5
5
|
import { c as cn } from './utils.js';
|
|
6
|
-
import { u as useControllableState, P as Primitive, c as composeEventHandlers } from './
|
|
7
|
-
import { u as useComposedRefs } from './
|
|
8
|
-
import { c as createContextScope } from './
|
|
9
|
-
import { R as Root, c as createRovingFocusGroupScope, I as Item } from './
|
|
10
|
-
import { u as useDirection } from './
|
|
6
|
+
import { u as useControllableState, P as Primitive, c as composeEventHandlers } from './index20.js';
|
|
7
|
+
import { u as useComposedRefs } from './index12.js';
|
|
8
|
+
import { c as createContextScope } from './index21.js';
|
|
9
|
+
import { R as Root, c as createRovingFocusGroupScope, I as Item } from './index22.js';
|
|
10
|
+
import { u as useDirection } from './index24.js';
|
|
11
11
|
import { u as useSize } from './index37.js';
|
|
12
12
|
import { u as usePrevious } from './index36.js';
|
|
13
|
-
import { P as Presence } from './
|
|
13
|
+
import { P as Presence } from './index23.js';
|
|
14
14
|
|
|
15
15
|
var RADIO_NAME = "Radio";
|
|
16
16
|
var [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);
|
package/dist/RadioGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sources":["../node_modules/.pnpm/@radix-ui+react-radio-group@1.3.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+_3694a89ac1e1986bc2583e58a261f48c/node_modules/@radix-ui/react-radio-group/dist/index.mjs","../shadcn/shadcnRadioGroup/RadioGroup.tsx","../lib/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport type * as React from 'react';\n\nimport { cn } from '../utils';\n\n// Base RadioGroup root wrapper\nfunction ShadcnRadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root data-slot=\"radio-group\" className={cn('flex flex-col gap-3', className)} {...props} />\n );\n}\n\n// Individual radio item with indicator dot\nfunction ShadcnRadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'aspect-square size-4 shrink-0 rounded-full border-2 border-input shadow-xs outline-none cursor-pointer transition-colors',\n 'focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:border-ring',\n 'data-[state=checked]:border-primary',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <span className=\"size-2 rounded-full bg-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { ShadcnRadioGroup, ShadcnRadioGroupItem };\n","import React from 'react';\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from '../../../shadcn/shadcnField';\nimport { ShadcnRadioGroup, ShadcnRadioGroupItem } from '../../../shadcn/shadcnRadioGroup';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface RadioOption {\n value: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps {\n options: RadioOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: string;\n orientation?: 'vertical' | 'horizontal';\n variant?: 'classic' | 'card';\n disabled?: boolean;\n className?: string;\n name?: string;\n}\n\n// RadioGroup component with classic and card variants\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (\n {\n options,\n value,\n onValueChange,\n defaultValue,\n label,\n description,\n error,\n orientation = 'vertical',\n variant = 'classic',\n disabled,\n className,\n name: _name,\n ...props\n },\n ref,\n ) => {\n const groupId = React.useId();\n const hasError = !!error;\n\n // Render a classic radio item with label and optional description\n const renderClassicItem = (option: RadioOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <Field\n key={option.value}\n orientation=\"horizontal\"\n // Field defaults to `w-full`; override when the outer group is horizontal\n // so each option hugs its content instead of spanning the full row.\n className={orientation === 'horizontal' ? 'w-auto' : undefined}\n data-disabled={isItemDisabled || undefined}\n >\n <ShadcnRadioGroupItem value={option.value} id={itemId} disabled={isItemDisabled} />\n <FieldContent>\n <FieldLabel htmlFor={itemId} className=\"font-normal cursor-pointer\">\n {option.label}\n </FieldLabel>\n {option.description && <FieldDescription>{option.description}</FieldDescription>}\n </FieldContent>\n </Field>\n );\n };\n\n // Render a card-style radio item with bordered container\n const renderCardItem = (option: RadioOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <label\n key={option.value}\n htmlFor={itemId}\n className={cn(\n 'relative flex cursor-pointer rounded-lg border border-border p-4 transition-colors',\n 'hover:bg-muted/50',\n 'has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary/5 has-[[data-state=checked]]:ring-1 has-[[data-state=checked]]:ring-primary',\n isItemDisabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n )}\n >\n <div className=\"flex items-start gap-3\">\n <ShadcnRadioGroupItem value={option.value} id={itemId} disabled={isItemDisabled} className=\"mt-0.5\" />\n <div>\n <FieldLabel htmlFor={itemId} className=\"cursor-pointer font-medium\">\n {option.label}\n </FieldLabel>\n {option.description && <FieldDescription>{option.description}</FieldDescription>}\n </div>\n </div>\n </label>\n );\n };\n\n const renderItem = variant === 'card' ? renderCardItem : renderClassicItem;\n\n const groupClassName = cn(\n variant === 'card'\n ? orientation === 'horizontal'\n ? 'grid grid-cols-2 gap-3'\n : 'flex flex-col gap-3'\n : orientation === 'horizontal'\n ? 'flex flex-row flex-wrap gap-4'\n : 'flex flex-col gap-3',\n );\n\n return (\n <FieldSet data-invalid={hasError || undefined} className={className}>\n {label && <FieldLegend variant=\"label\">{label}</FieldLegend>}\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n <ShadcnRadioGroup\n ref={ref}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n disabled={disabled}\n orientation={orientation}\n className={groupClassName}\n {...props}\n >\n {options.map(renderItem)}\n </ShadcnRadioGroup>\n {error && <FieldError>{error}</FieldError>}\n </FieldSet>\n );\n },\n);\n\nRadioGroup.displayName = 'RadioGroup';\n"],"names":["createContextScope2","RadioGroup","React2","jsx2","RovingFocusGroup.Root","Primitive2","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator","React"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sources":["../node_modules/.pnpm/@radix-ui+react-radio-group@1.3.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+_3694a89ac1e1986bc2583e58a261f48c/node_modules/@radix-ui/react-radio-group/dist/index.mjs","../shadcn/shadcnRadioGroup/RadioGroup.tsx","../lib/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport type * as React from 'react';\n\nimport { cn } from '../utils';\n\n// Base RadioGroup root wrapper\nfunction ShadcnRadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root data-slot=\"radio-group\" className={cn('flex flex-col gap-3', className)} {...props} />\n );\n}\n\n// Individual radio item with indicator dot\nfunction ShadcnRadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'aspect-square size-4 shrink-0 rounded-full border-2 border-input shadow-xs outline-none cursor-pointer transition-colors',\n 'focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:border-ring',\n 'data-[state=checked]:border-primary',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <span className=\"size-2 rounded-full bg-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { ShadcnRadioGroup, ShadcnRadioGroupItem };\n","import React from 'react';\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from '../../../shadcn/shadcnField';\nimport { ShadcnRadioGroup, ShadcnRadioGroupItem } from '../../../shadcn/shadcnRadioGroup';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface RadioOption {\n value: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps {\n options: RadioOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: string;\n orientation?: 'vertical' | 'horizontal';\n variant?: 'classic' | 'card';\n disabled?: boolean;\n className?: string;\n name?: string;\n}\n\n// RadioGroup component with classic and card variants\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (\n {\n options,\n value,\n onValueChange,\n defaultValue,\n label,\n description,\n error,\n orientation = 'vertical',\n variant = 'classic',\n disabled,\n className,\n name: _name,\n ...props\n },\n ref,\n ) => {\n const groupId = React.useId();\n const hasError = !!error;\n\n // Render a classic radio item with label and optional description\n const renderClassicItem = (option: RadioOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <Field\n key={option.value}\n orientation=\"horizontal\"\n // Field defaults to `w-full`; override to `w-auto` when horizontal so each option hugs its content\n className={orientation === 'horizontal' ? 'w-auto' : undefined}\n data-disabled={isItemDisabled || undefined}\n >\n <ShadcnRadioGroupItem value={option.value} id={itemId} disabled={isItemDisabled} />\n <FieldContent>\n <FieldLabel htmlFor={itemId} className=\"font-normal cursor-pointer\">\n {option.label}\n </FieldLabel>\n {option.description && <FieldDescription>{option.description}</FieldDescription>}\n </FieldContent>\n </Field>\n );\n };\n\n // Render a card-style radio item with bordered container\n const renderCardItem = (option: RadioOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <label\n key={option.value}\n htmlFor={itemId}\n className={cn(\n 'relative flex cursor-pointer rounded-lg border border-border p-4 transition-colors',\n 'hover:bg-muted/50',\n 'has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary/5 has-[[data-state=checked]]:ring-1 has-[[data-state=checked]]:ring-primary',\n isItemDisabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n )}\n >\n <div className=\"flex items-start gap-3\">\n <ShadcnRadioGroupItem value={option.value} id={itemId} disabled={isItemDisabled} className=\"mt-0.5\" />\n <div>\n <FieldLabel htmlFor={itemId} className=\"cursor-pointer font-medium\">\n {option.label}\n </FieldLabel>\n {option.description && <FieldDescription>{option.description}</FieldDescription>}\n </div>\n </div>\n </label>\n );\n };\n\n const renderItem = variant === 'card' ? renderCardItem : renderClassicItem;\n\n const groupClassName = cn(\n variant === 'card'\n ? orientation === 'horizontal'\n ? 'grid grid-cols-2 gap-3'\n : 'flex flex-col gap-3'\n : orientation === 'horizontal'\n ? 'flex flex-row flex-wrap gap-4'\n : 'flex flex-col gap-3',\n );\n\n return (\n <FieldSet data-invalid={hasError || undefined} className={className}>\n {label && <FieldLegend variant=\"label\">{label}</FieldLegend>}\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n <ShadcnRadioGroup\n ref={ref}\n value={value}\n onValueChange={onValueChange}\n defaultValue={defaultValue}\n disabled={disabled}\n orientation={orientation}\n className={groupClassName}\n {...props}\n >\n {options.map(renderItem)}\n </ShadcnRadioGroup>\n {error && <FieldError>{error}</FieldError>}\n </FieldSet>\n );\n },\n);\n\nRadioGroup.displayName = 'RadioGroup';\n"],"names":["createContextScope2","RadioGroup","React2","jsx2","RovingFocusGroup.Root","Primitive2","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator","React"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { S as Select } from './Select.js';
|
|
4
|
+
|
|
5
|
+
const RoleSelector = forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
6
|
+
Select,
|
|
7
|
+
{
|
|
8
|
+
ref,
|
|
9
|
+
label: "Role",
|
|
10
|
+
placeholder: "Select role",
|
|
11
|
+
searchable: true,
|
|
12
|
+
optionsEndpoint: "select-api/roles",
|
|
13
|
+
fieldKeys: { valueKey: "id", labelKey: "name" },
|
|
14
|
+
...props
|
|
15
|
+
}
|
|
16
|
+
));
|
|
17
|
+
RoleSelector.displayName = "RoleSelector";
|
|
18
|
+
|
|
19
|
+
export { RoleSelector as R };
|
|
20
|
+
//# sourceMappingURL=RoleSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleSelector.js","sources":["../lib/selects/role/RoleSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type RoleSelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Pre-configured Select for role selection with async search (supports single and multi-select)\nexport const RoleSelector = forwardRef<HTMLButtonElement, RoleSelectorProps>((props, ref) => (\n <Select\n ref={ref}\n label=\"Role\"\n placeholder=\"Select role\"\n searchable\n optionsEndpoint=\"select-api/roles\"\n fieldKeys={{ valueKey: 'id', labelKey: 'name' }}\n {...props}\n />\n));\nRoleSelector.displayName = 'RoleSelector';\n"],"names":[],"mappings":";;;;AAMO,MAAM,YAAA,GAAe,UAAA,CAAiD,CAAC,KAAA,EAAO,GAAA,qBACnF,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,KAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAY,aAAA;AAAA,IACZ,UAAA,EAAU,IAAA;AAAA,IACV,eAAA,EAAgB,kBAAA;AAAA,IAChB,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,MAAA,EAAO;AAAA,IAC7C,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
|
package/dist/Select.js
CHANGED
|
@@ -11,7 +11,7 @@ import { B as Badge } from './Badge2.js';
|
|
|
11
11
|
import { X } from './x.js';
|
|
12
12
|
import { j as SingleSelect } from './SingleSelect.js';
|
|
13
13
|
import { useQuery, keepPreviousData, useInfiniteQuery } from '@tanstack/react-query';
|
|
14
|
-
import { u as useInView } from './
|
|
14
|
+
import { u as useInView } from './index18.js';
|
|
15
15
|
import { axios } from './utils/axios.js';
|
|
16
16
|
|
|
17
17
|
function MultiSelectRoot({ open, onOpenChange, disabled, children }) {
|
|
@@ -534,6 +534,9 @@ function useSelect({
|
|
|
534
534
|
useEffect(() => {
|
|
535
535
|
if (open) setResolveValues(selectedValuesRef.current);
|
|
536
536
|
}, [open]);
|
|
537
|
+
useEffect(() => {
|
|
538
|
+
if (!open) setResolveValues(selectedValuesRef.current);
|
|
539
|
+
}, [serializedValues, open]);
|
|
537
540
|
const serializedResolveValues = useMemo(
|
|
538
541
|
() => resolveValues && resolveValues.length > 0 ? resolveValues.filter((v) => typeof v !== "boolean").join(",") : void 0,
|
|
539
542
|
[resolveValues]
|