@vritti/quantum-ui 0.3.11 → 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 +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 +3 -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 +3 -0
- 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 +222 -0
- package/dist/lib/types/catalog-resolver.d.ts.map +1 -0
- 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/api-response.js +2 -0
- package/dist/types/api-response.js.map +1 -0
- package/dist/types/catalog-resolver.js +8 -0
- package/dist/types/catalog-resolver.js.map +1 -0
- package/dist/types/table-filter.js +17 -0
- package/dist/types/table-filter.js.map +1 -0
- package/dist/useBUTimezone.js.map +1 -1
- package/dist/useDataTable.js +152 -119
- 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 +79 -3
package/dist/Alert.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { c as cn } from './utils.js';
|
|
3
|
-
import { c as cva } from './
|
|
3
|
+
import { c as cva } from './index9.js';
|
|
4
4
|
import { I as Info, T as TriangleAlert } from './triangle-alert.js';
|
|
5
5
|
import { C as CircleCheck } from './circle-check.js';
|
|
6
6
|
import { C as CircleAlert } from './circle-alert.js';
|
package/dist/Alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sources":["../shadcn/shadcnAlert/alert.tsx","../lib/components/Alert/Alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type * as React from 'react';\nimport { cn } from '../utils';\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default:\n 'bg-secondary/20 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-muted-foreground',\n destructive:\n 'bg-destructive/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-destructive',\n warning:\n 'bg-warning/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-warning',\n success:\n 'bg-success/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-success',\n info: 'bg-primary/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-primary',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return <div data-slot=\"alert\" role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />;\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n 'font-medium group-has-[>svg]/alert:col-start-2 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"alert-action\" className={cn('absolute top-2 right-2', className)} {...props} />;\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction, alertVariants };\n","import type { VariantProps } from 'class-variance-authority';\nimport { AlertCircle, CheckCircle2, Info, TriangleAlert } from 'lucide-react';\nimport {\n type alertVariants,\n Alert as ShadcnAlert,\n AlertAction as ShadcnAlertAction,\n AlertDescription as ShadcnAlertDescription,\n AlertTitle as ShadcnAlertTitle,\n} from '../../../shadcn/shadcnAlert';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface AlertProps extends Omit<React.ComponentProps<'div'>, 'title'>, VariantProps<typeof alertVariants> {\n
|
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../shadcn/shadcnAlert/alert.tsx","../lib/components/Alert/Alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type * as React from 'react';\nimport { cn } from '../utils';\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default:\n 'bg-secondary/20 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-muted-foreground',\n destructive:\n 'bg-destructive/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-destructive',\n warning:\n 'bg-warning/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-warning',\n success:\n 'bg-success/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-success',\n info: 'bg-primary/15 text-foreground *:data-[slot=alert-description]:text-muted-foreground *:[svg]:text-primary',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return <div data-slot=\"alert\" role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />;\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n 'font-medium group-has-[>svg]/alert:col-start-2 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"alert-action\" className={cn('absolute top-2 right-2', className)} {...props} />;\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction, alertVariants };\n","import type { VariantProps } from 'class-variance-authority';\nimport { AlertCircle, CheckCircle2, Info, TriangleAlert } from 'lucide-react';\nimport {\n type alertVariants,\n Alert as ShadcnAlert,\n AlertAction as ShadcnAlertAction,\n AlertDescription as ShadcnAlertDescription,\n AlertTitle as ShadcnAlertTitle,\n} from '../../../shadcn/shadcnAlert';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface AlertProps extends Omit<React.ComponentProps<'div'>, 'title'>, VariantProps<typeof alertVariants> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n icon?: React.ReactNode;\n hideIcon?: boolean;\n}\n\nconst variantIcons = {\n default: Info,\n destructive: AlertCircle,\n warning: TriangleAlert,\n success: CheckCircle2,\n info: Info,\n} as const;\n\nexport function Alert({\n variant = 'default',\n title,\n description,\n action,\n icon,\n hideIcon = false,\n children,\n className,\n ...props\n}: AlertProps) {\n const IconComponent = variant ? variantIcons[variant] : variantIcons.default;\n\n return (\n <ShadcnAlert variant={variant} className={cn(className)} {...props}>\n {!hideIcon && (icon ?? <IconComponent className=\"h-4 w-4\" />)}\n {title && <ShadcnAlertTitle>{title}</ShadcnAlertTitle>}\n {description && <ShadcnAlertDescription>{description}</ShadcnAlertDescription>}\n {action && <ShadcnAlertAction>{action}</ShadcnAlertAction>}\n {children}\n </ShadcnAlert>\n );\n}\n"],"names":["Alert","AlertCircle","CheckCircle2","ShadcnAlert","ShadcnAlertTitle","ShadcnAlertDescription","ShadcnAlertAction"],"mappings":";;;;;;;AAIA,MAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2TAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,qHAAA;AAAA,QACF,WAAA,EACE,kHAAA;AAAA,QACF,OAAA,EACE,0GAAA;AAAA,QACF,OAAA,EACE,0GAAA;AAAA,QACF,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,SAASA,QAAM,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAqE;AACjH,EAAA,2BAAQ,KAAA,EAAA,EAAI,WAAA,EAAU,OAAA,EAAQ,IAAA,EAAK,SAAQ,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,SAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC9G;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC9E,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4JAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,GAAG,wBAAA,EAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACtG;;ACvCA,MAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,WAAA,EAAaC,WAAA;AAAA,EACb,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAASC,WAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAA;AAEO,SAAS,KAAA,CAAM;AAAA,EACpB,OAAA,GAAU,SAAA;AAAA,EACV,KAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,MAAM,aAAA,GAAgB,OAAA,GAAU,YAAA,CAAa,OAAO,IAAI,YAAA,CAAa,OAAA;AAErE,EAAA,uBACE,IAAA,CAACC,WAAY,OAAA,EAAkB,SAAA,EAAW,GAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAC1D,QAAA,EAAA;AAAA,IAAA,CAAC,QAAA,KAAa,IAAA,oBAAQ,GAAA,CAAC,aAAA,EAAA,EAAc,WAAU,SAAA,EAAU,CAAA,CAAA;AAAA,IACzD,KAAA,oBAAS,GAAA,CAACC,UAAA,EAAA,EAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IAClC,WAAA,oBAAe,GAAA,CAACC,gBAAA,EAAA,EAAwB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,IACpD,MAAA,oBAAU,GAAA,CAACC,WAAA,EAAA,EAAmB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,IACrC;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
|
package/dist/Avatar.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { c as createContextScope } from './index35.js';
|
|
4
4
|
import { u as useCallbackRef } from './index33.js';
|
|
5
|
-
import { u as useLayoutEffect2 } from './
|
|
5
|
+
import { u as useLayoutEffect2 } from './index30.js';
|
|
6
6
|
import { P as Primitive } from './index31.js';
|
|
7
7
|
import { r as requireShim } from './index40.js';
|
|
8
8
|
import { c as cn } from './utils.js';
|
package/dist/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../node_modules/.pnpm/@radix-ui+react-use-is-hydrated@0.1.0_@types+react@19.2.14_react@19.2.3/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-avatar@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_5736c932d2582092c1d3b5e9eb2f965e/node_modules/@radix-ui/react-avatar/dist/index.mjs","../shadcn/shadcnAvatar/Avatar.tsx","../lib/components/Avatar/Avatar.tsx"],"sourcesContent":["// src/use-is-hydrated.tsx\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction useIsHydrated() {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/avatar.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n return /* @__PURE__ */ jsx(\n AvatarProvider,\n {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })\n }\n );\n }\n);\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {\n }, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps);\n const handleLoadingStatusChange = useCallbackRef((status) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n useLayoutEffect(() => {\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;\n }\n);\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === void 0);\n React.useEffect(() => {\n if (delayMs !== void 0) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;\n }\n);\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction resolveLoadingStatus(image, src) {\n if (!image) {\n return \"idle\";\n }\n if (!src) {\n return \"error\";\n }\n if (image.src !== src) {\n image.src = src;\n }\n return image.complete && image.naturalWidth > 0 ? \"loaded\" : \"loading\";\n}\nfunction useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {\n const isHydrated = useIsHydrated();\n const imageRef = React.useRef(null);\n const image = (() => {\n if (!isHydrated) return null;\n if (!imageRef.current) {\n imageRef.current = new window.Image();\n }\n return imageRef.current;\n })();\n const [loadingStatus, setLoadingStatus] = React.useState(\n () => resolveLoadingStatus(image, src)\n );\n useLayoutEffect(() => {\n setLoadingStatus(resolveLoadingStatus(image, src));\n }, [image, src]);\n useLayoutEffect(() => {\n const updateStatus = (status) => () => {\n setLoadingStatus(status);\n };\n if (!image) return;\n const handleLoad = updateStatus(\"loaded\");\n const handleError = updateStatus(\"error\");\n image.addEventListener(\"load\", handleLoad);\n image.addEventListener(\"error\", handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n if (typeof crossOrigin === \"string\") {\n image.crossOrigin = crossOrigin;\n }\n return () => {\n image.removeEventListener(\"load\", handleLoad);\n image.removeEventListener(\"error\", handleError);\n };\n }, [image, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\nexport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Fallback,\n Image,\n Root,\n createAvatarScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport type * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Avatar({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: 'default' | 'sm' | 'lg';\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n 'group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />\n );\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n 'bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none',\n 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',\n 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',\n 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n '*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n 'bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount };\n","import {\n Avatar as ShadcnAvatar,\n AvatarBadge as ShadcnAvatarBadge,\n AvatarFallback as ShadcnAvatarFallback,\n AvatarGroup as ShadcnAvatarGroup,\n AvatarGroupCount as ShadcnAvatarGroupCount,\n AvatarImage as ShadcnAvatarImage,\n} from '../../../shadcn/shadcnAvatar';\n\n/**\n * Avatar component for displaying user profile images with fallback support.\n *\n * @example\n * ```tsx\n * <Avatar>\n * <AvatarImage src=\"/avatar.jpg\" alt=\"User\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n * ```\n */\nexport const Avatar = ShadcnAvatar;\n\n/**\n * Image component for Avatar. Displays the user's profile image.\n */\nexport const AvatarImage = ShadcnAvatarImage;\n\n/**\n * Fallback component for Avatar. Displays when image hasn't loaded or errored.\n */\nexport const AvatarFallback = ShadcnAvatarFallback;\n\n/**\n * Badge component for Avatar. Displays a status indicator.\n */\nexport const AvatarBadge = ShadcnAvatarBadge;\n\n/**\n * Group component for displaying multiple avatars in a stack.\n *\n * @example\n * ```tsx\n * <AvatarGroup>\n * <Avatar>...</Avatar>\n * <Avatar>...</Avatar>\n * <AvatarGroupCount>+3</AvatarGroupCount>\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = ShadcnAvatarGroup;\n\n/**\n * Count component for AvatarGroup. Shows overflow count.\n */\nexport const AvatarGroupCount = ShadcnAvatarGroupCount;\n"],"names":["useSyncExternalStore","Avatar","AvatarImage","useLayoutEffect","AvatarFallback","AvatarPrimitive.Root","AvatarPrimitive.Image","AvatarPrimitive.Fallback","AvatarBadge","AvatarGroup","AvatarGroupCount","ShadcnAvatar","ShadcnAvatarImage","ShadcnAvatarFallback","ShadcnAvatarBadge","ShadcnAvatarGroup","ShadcnAvatarGroupCount"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../node_modules/.pnpm/@radix-ui+react-use-is-hydrated@0.1.0_@types+react@19.2.14_react@19.2.3/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-avatar@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_5736c932d2582092c1d3b5e9eb2f965e/node_modules/@radix-ui/react-avatar/dist/index.mjs","../shadcn/shadcnAvatar/Avatar.tsx","../lib/components/Avatar/Avatar.tsx"],"sourcesContent":["// src/use-is-hydrated.tsx\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction useIsHydrated() {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/avatar.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n return /* @__PURE__ */ jsx(\n AvatarProvider,\n {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })\n }\n );\n }\n);\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {\n }, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps);\n const handleLoadingStatusChange = useCallbackRef((status) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n useLayoutEffect(() => {\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;\n }\n);\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === void 0);\n React.useEffect(() => {\n if (delayMs !== void 0) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;\n }\n);\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction resolveLoadingStatus(image, src) {\n if (!image) {\n return \"idle\";\n }\n if (!src) {\n return \"error\";\n }\n if (image.src !== src) {\n image.src = src;\n }\n return image.complete && image.naturalWidth > 0 ? \"loaded\" : \"loading\";\n}\nfunction useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {\n const isHydrated = useIsHydrated();\n const imageRef = React.useRef(null);\n const image = (() => {\n if (!isHydrated) return null;\n if (!imageRef.current) {\n imageRef.current = new window.Image();\n }\n return imageRef.current;\n })();\n const [loadingStatus, setLoadingStatus] = React.useState(\n () => resolveLoadingStatus(image, src)\n );\n useLayoutEffect(() => {\n setLoadingStatus(resolveLoadingStatus(image, src));\n }, [image, src]);\n useLayoutEffect(() => {\n const updateStatus = (status) => () => {\n setLoadingStatus(status);\n };\n if (!image) return;\n const handleLoad = updateStatus(\"loaded\");\n const handleError = updateStatus(\"error\");\n image.addEventListener(\"load\", handleLoad);\n image.addEventListener(\"error\", handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n if (typeof crossOrigin === \"string\") {\n image.crossOrigin = crossOrigin;\n }\n return () => {\n image.removeEventListener(\"load\", handleLoad);\n image.removeEventListener(\"error\", handleError);\n };\n }, [image, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\nexport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Fallback,\n Image,\n Root,\n createAvatarScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport type * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Avatar({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: 'default' | 'sm' | 'lg';\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n 'group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />\n );\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n 'bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none',\n 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',\n 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',\n 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n '*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n 'bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount };\n","import {\n Avatar as ShadcnAvatar,\n AvatarBadge as ShadcnAvatarBadge,\n AvatarFallback as ShadcnAvatarFallback,\n AvatarGroup as ShadcnAvatarGroup,\n AvatarGroupCount as ShadcnAvatarGroupCount,\n AvatarImage as ShadcnAvatarImage,\n} from '../../../shadcn/shadcnAvatar';\n\nexport const Avatar = ShadcnAvatar;\n\nexport const AvatarImage = ShadcnAvatarImage;\n\nexport const AvatarFallback = ShadcnAvatarFallback;\n\nexport const AvatarBadge = ShadcnAvatarBadge;\n\nexport const AvatarGroup = ShadcnAvatarGroup;\n\nexport const AvatarGroupCount = ShadcnAvatarGroupCount;\n"],"names":["useSyncExternalStore","Avatar","AvatarImage","useLayoutEffect","AvatarFallback","AvatarPrimitive.Root","AvatarPrimitive.Image","AvatarPrimitive.Fallback","AvatarBadge","AvatarGroup","AvatarGroupCount","ShadcnAvatar","ShadcnAvatarImage","ShadcnAvatarFallback","ShadcnAvatarBadge","ShadcnAvatarGroup","ShadcnAvatarGroupCount"],"mappings":"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","x_google_ignoreList":[0,1]}
|
package/dist/Badge2.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { S as Slot } from './
|
|
3
|
-
import { c as cva } from './
|
|
2
|
+
import { S as Slot } from './index10.js';
|
|
3
|
+
import { c as cva } from './index9.js';
|
|
4
4
|
import { c as cn } from './utils.js';
|
|
5
5
|
|
|
6
6
|
const badgeVariants = cva(
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { S as SelectFilter } from './SelectFilter.js';
|
|
4
|
+
import { S as Select } from './Select.js';
|
|
5
|
+
|
|
6
|
+
const BillingCycleFilter = Object.assign(
|
|
7
|
+
forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
8
|
+
SelectFilter,
|
|
9
|
+
{
|
|
10
|
+
ref,
|
|
11
|
+
name: "billingCycleId",
|
|
12
|
+
label: "Billing Cycle",
|
|
13
|
+
placeholder: "Select billing cycle",
|
|
14
|
+
optionsEndpoint: "select-api/billing-cycles",
|
|
15
|
+
fieldKeys: { valueKey: "id", labelKey: "name" },
|
|
16
|
+
...props
|
|
17
|
+
}
|
|
18
|
+
)),
|
|
19
|
+
{ displayName: "BillingCycleFilter", defaultLabel: "Billing Cycle", defaultName: "billingCycleId" }
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const BillingCycleSelector = forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
23
|
+
Select,
|
|
24
|
+
{
|
|
25
|
+
ref,
|
|
26
|
+
label: "Billing Cycle",
|
|
27
|
+
placeholder: "Select billing cycle",
|
|
28
|
+
searchable: true,
|
|
29
|
+
optionsEndpoint: "select-api/billing-cycles",
|
|
30
|
+
fieldKeys: { valueKey: "id", labelKey: "name" },
|
|
31
|
+
...props
|
|
32
|
+
}
|
|
33
|
+
));
|
|
34
|
+
BillingCycleSelector.displayName = "BillingCycleSelector";
|
|
35
|
+
|
|
36
|
+
export { BillingCycleFilter as B, BillingCycleSelector as a };
|
|
37
|
+
//# sourceMappingURL=BillingCycleSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BillingCycleSelector.js","sources":["../lib/selects/billing-cycle/BillingCycleFilter.tsx","../lib/selects/billing-cycle/BillingCycleSelector.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\n\nexport type BillingCycleFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for billing cycle filtering with async search\nexport const BillingCycleFilter = Object.assign(\n forwardRef<HTMLButtonElement, BillingCycleFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"billingCycleId\"\n label=\"Billing Cycle\"\n placeholder=\"Select billing cycle\"\n optionsEndpoint=\"select-api/billing-cycles\"\n fieldKeys={{ valueKey: 'id', labelKey: 'name' }}\n {...props}\n />\n )),\n { displayName: 'BillingCycleFilter', defaultLabel: 'Billing Cycle', defaultName: 'billingCycleId' },\n);\n","import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type BillingCycleSelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Pre-configured Select for billing cycle selection with async search\nexport const BillingCycleSelector = forwardRef<HTMLButtonElement, BillingCycleSelectorProps>((props, ref) => (\n <Select\n ref={ref}\n label=\"Billing Cycle\"\n placeholder=\"Select billing cycle\"\n searchable\n optionsEndpoint=\"select-api/billing-cycles\"\n fieldKeys={{ valueKey: 'id', labelKey: 'name' }}\n {...props}\n />\n));\nBillingCycleSelector.displayName = 'BillingCycleSelector';\n"],"names":[],"mappings":";;;;;AAMO,MAAM,qBAAqB,MAAA,CAAO,MAAA;AAAA,EACvC,UAAA,CAAuD,CAAC,KAAA,EAAO,GAAA,qBAC7D,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,gBAAA;AAAA,MACL,KAAA,EAAM,eAAA;AAAA,MACN,WAAA,EAAY,sBAAA;AAAA,MACZ,eAAA,EAAgB,2BAAA;AAAA,MAChB,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,MAAA,EAAO;AAAA,MAC7C,GAAG;AAAA;AAAA,GAEP,CAAA;AAAA,EACD,EAAE,WAAA,EAAa,oBAAA,EAAsB,YAAA,EAAc,eAAA,EAAiB,aAAa,gBAAA;AACnF;;ACbO,MAAM,oBAAA,GAAuB,UAAA,CAAyD,CAAC,KAAA,EAAO,GAAA,qBACnG,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,KAAA,EAAM,eAAA;AAAA,IACN,WAAA,EAAY,sBAAA;AAAA,IACZ,UAAA,EAAU,IAAA;AAAA,IACV,eAAA,EAAgB,2BAAA;AAAA,IAChB,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,MAAA,EAAO;AAAA,IAC7C,GAAG;AAAA;AACN,CACD;AACD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;;;;"}
|
package/dist/Breadcrumb.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import React__default from 'react';
|
|
4
4
|
import { useLocation, Link } from 'react-router-dom';
|
|
5
5
|
import { c as cn } from './utils.js';
|
|
6
|
-
import { S as Slot } from './
|
|
6
|
+
import { S as Slot } from './index10.js';
|
|
7
7
|
import { E as Ellipsis } from './ellipsis.js';
|
|
8
8
|
import { C as ChevronRight } from './chevron-right.js';
|
|
9
9
|
|
package/dist/Breadcrumb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","sources":["../shadcn/shadcnBreadcrumb/breadcrumb.tsx","../lib/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../utils';\n\nconst Breadcrumb = React.forwardRef<HTMLElement, React.ComponentPropsWithoutRef<'nav'>>(({ ...props }, ref) => (\n <nav ref={ref} aria-label=\"breadcrumb\" {...props} />\n));\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, React.ComponentPropsWithoutRef<'a'> & { asChild?: boolean }>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return <Comp ref={ref} className={cn('transition-colors hover:text-foreground', className)} {...props} />;\n },\n);\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn('[&>svg]:size-3.5', className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport {\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n Breadcrumb as ShadcnBreadcrumb,\n} from '../../../shadcn/shadcnBreadcrumb';\nimport { cn } from '../../../shadcn/utils';\n\n// Parsed segment shape exposed to consumers via renderSegment\nexport interface BreadcrumbSegment {\n path: string;\n raw: string;\n label: string;\n slug: string | null;\n id: string | null;\n isLast: boolean;\n}\n\nexport interface BreadcrumbProps extends React.ComponentProps<'nav'> {\n // Full path → display label (e.g. { '/settings/profile': 'Profile' })\n routes?: Record<string, string>;\n // Custom separator node (defaults to ChevronRight in the primitive)\n separator?: React.ReactNode;\n // Max visible segments before collapsing middle items (0 = no limit)\n maxItems?: number;\n // Custom renderer — return ReactNode to override, or null/undefined for default\n renderSegment?: (segment: BreadcrumbSegment) => React.ReactNode | null | undefined;\n}\n\n// Converts 'my-account' to 'My Account'\nfunction humanizeSegment(segment: string): string {\n return segment\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n// Returns items with null as ellipsis placeholder when count exceeds maxItems\nfunction applyMaxItems(items: BreadcrumbSegment[], maxItems: number): (BreadcrumbSegment | null)[] {\n if (maxItems <= 0 || items.length <= maxItems) return items;\n // Show first 1 + ellipsis + last (maxItems - 1)\n const tailCount = maxItems - 1;\n return [...items.slice(0, 1), null, ...items.slice(items.length - tailCount)];\n}\n\n// Route-aware breadcrumb driven by the current URL pathname\nexport function Breadcrumb({\n routes = {},\n separator,\n maxItems = 0,\n renderSegment,\n className,\n ...props\n}: BreadcrumbProps) {\n const { pathname } = useLocation();\n\n const segments = pathname.split('/').filter(Boolean);\n\n const items: BreadcrumbSegment[] = segments.map((segment, index) => {\n const path = `/${segments.slice(0, index + 1).join('/')}`;\n const tildeIdx = segment.indexOf('~');\n const slug = tildeIdx >= 0 ? segment.slice(0, tildeIdx) : null;\n const id = tildeIdx >= 0 ? segment.slice(tildeIdx + 1) : null;\n const label = routes[path] ?? humanizeSegment(slug ?? segment);\n\n return {\n path,\n raw: segment,\n label,\n slug,\n id,\n isLast: index === segments.length - 1,\n };\n });\n\n const visibleItems = applyMaxItems(items, maxItems);\n\n if (items.length === 0) return null;\n\n return (\n <ShadcnBreadcrumb className={cn(className)} {...props}>\n <BreadcrumbList>\n {visibleItems.map((item, index) => {\n if (item === null) {\n return (\n <React.Fragment key=\"ellipsis\">\n <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbEllipsis />\n </BreadcrumbItem>\n </React.Fragment>\n );\n }\n\n // Check for custom rendering\n const customNode = renderSegment?.(item);\n if (customNode !== null && customNode !== undefined) {\n return (\n <React.Fragment key={item.path}>\n {index > 0 && <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>}\n <BreadcrumbItem>{customNode}</BreadcrumbItem>\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={item.path}>\n {index > 0 && <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>}\n <BreadcrumbItem>\n {item.isLast ? (\n <BreadcrumbPage>{item.label}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink asChild>\n <Link to={item.path}>{item.label}</Link>\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </ShadcnBreadcrumb>\n );\n}\n"],"names":["Breadcrumb","MoreHorizontal","ShadcnBreadcrumb","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Breadcrumb.js","sources":["../shadcn/shadcnBreadcrumb/breadcrumb.tsx","../lib/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../utils';\n\nconst Breadcrumb = React.forwardRef<HTMLElement, React.ComponentPropsWithoutRef<'nav'>>(({ ...props }, ref) => (\n <nav ref={ref} aria-label=\"breadcrumb\" {...props} />\n));\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, React.ComponentPropsWithoutRef<'a'> & { asChild?: boolean }>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return <Comp ref={ref} className={cn('transition-colors hover:text-foreground', className)} {...props} />;\n },\n);\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn('[&>svg]:size-3.5', className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport {\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n Breadcrumb as ShadcnBreadcrumb,\n} from '../../../shadcn/shadcnBreadcrumb';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface BreadcrumbSegment {\n path: string;\n raw: string;\n label: string;\n slug: string | null;\n id: string | null;\n isLast: boolean;\n}\n\nexport interface BreadcrumbProps extends React.ComponentProps<'nav'> {\n routes?: Record<string, string>;\n separator?: React.ReactNode;\n maxItems?: number;\n renderSegment?: (segment: BreadcrumbSegment) => React.ReactNode | null | undefined;\n}\n\n// Converts 'my-account' to 'My Account'\nfunction humanizeSegment(segment: string): string {\n return segment\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n// Returns items with null as ellipsis placeholder when count exceeds maxItems\nfunction applyMaxItems(items: BreadcrumbSegment[], maxItems: number): (BreadcrumbSegment | null)[] {\n if (maxItems <= 0 || items.length <= maxItems) return items;\n // Show first 1 + ellipsis + last (maxItems - 1)\n const tailCount = maxItems - 1;\n return [...items.slice(0, 1), null, ...items.slice(items.length - tailCount)];\n}\n\n// Route-aware breadcrumb driven by the current URL pathname\nexport function Breadcrumb({\n routes = {},\n separator,\n maxItems = 0,\n renderSegment,\n className,\n ...props\n}: BreadcrumbProps) {\n const { pathname } = useLocation();\n\n const segments = pathname.split('/').filter(Boolean);\n\n const items: BreadcrumbSegment[] = segments.map((segment, index) => {\n const path = `/${segments.slice(0, index + 1).join('/')}`;\n const tildeIdx = segment.indexOf('~');\n const slug = tildeIdx >= 0 ? segment.slice(0, tildeIdx) : null;\n const id = tildeIdx >= 0 ? segment.slice(tildeIdx + 1) : null;\n const label = routes[path] ?? humanizeSegment(slug ?? segment);\n\n return {\n path,\n raw: segment,\n label,\n slug,\n id,\n isLast: index === segments.length - 1,\n };\n });\n\n const visibleItems = applyMaxItems(items, maxItems);\n\n if (items.length === 0) return null;\n\n return (\n <ShadcnBreadcrumb className={cn(className)} {...props}>\n <BreadcrumbList>\n {visibleItems.map((item, index) => {\n if (item === null) {\n return (\n <React.Fragment key=\"ellipsis\">\n <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbEllipsis />\n </BreadcrumbItem>\n </React.Fragment>\n );\n }\n\n // Check for custom rendering\n const customNode = renderSegment?.(item);\n if (customNode !== null && customNode !== undefined) {\n return (\n <React.Fragment key={item.path}>\n {index > 0 && <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>}\n <BreadcrumbItem>{customNode}</BreadcrumbItem>\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={item.path}>\n {index > 0 && <BreadcrumbSeparator>{separator}</BreadcrumbSeparator>}\n <BreadcrumbItem>\n {item.isLast ? (\n <BreadcrumbPage>{item.label}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink asChild>\n <Link to={item.path}>{item.label}</Link>\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </ShadcnBreadcrumb>\n );\n}\n"],"names":["Breadcrumb","MoreHorizontal","ShadcnBreadcrumb","React"],"mappings":"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"}
|
package/dist/Button.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { c as cn } from './utils.js';
|
|
4
|
-
import { u as usePermission, l as lockedTip,
|
|
4
|
+
import { u as usePermission, l as lockedTip, b as PermissionLockIcon } from './PermissionGate.js';
|
|
5
5
|
import { S as Spinner } from './Spinner.js';
|
|
6
6
|
import { B as Button$1 } from './Button2.js';
|
|
7
7
|
import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip2.js';
|
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
|
|
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, unlockPlans } = usePermission(permission);\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({ reason, unlockPlans }) : 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,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAQ,WAAA,EAAY,GAAI,cAAc,UAAU,CAAA;AAGzE,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAGA,IAAA,MAAM,UAAU,MAAA,GAAS,SAAA,CAAU,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAA,GAAI,MAAA;AAC9D,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/Button2.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { S as Slot } from './
|
|
3
|
-
import { c as cva } from './
|
|
2
|
+
import { S as Slot } from './index10.js';
|
|
3
|
+
import { c as cva } from './index9.js';
|
|
4
4
|
import { c as cn } from './utils.js';
|
|
5
5
|
|
|
6
6
|
const buttonVariants = cva(
|
package/dist/CardSkeleton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardSkeleton.js","sources":["../lib/components/Card/CardSkeleton.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { Skeleton } from '../Skeleton';\n\nexport interface CardSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n
|
|
1
|
+
{"version":3,"file":"CardSkeleton.js","sources":["../lib/components/Card/CardSkeleton.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { Skeleton } from '../Skeleton';\n\nexport interface CardSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n count?: number;\n}\n\n// Renders skeleton cards matching Card shell — consumer controls inner padding via children\nexport const CardSkeleton = ({ count = 1, className, children, ...props }: CardSkeletonProps) => (\n <>\n {Array.from({ length: count }, (_, i) => (\n <div\n // biome-ignore lint/suspicious/noArrayIndexKey: <static list of skeletons, not dynamic>\n key={i}\n className={cn('bg-card text-card-foreground rounded-xl border py-6', className)}\n {...props}\n >\n {children ?? (\n <div className=\"px-6\">\n <Skeleton className=\"h-6 w-full\" />\n </div>\n )}\n </div>\n ))}\n </>\n);\n\nCardSkeleton.displayName = 'CardSkeleton';\n"],"names":[],"mappings":";;;;AASO,MAAM,eAAe,CAAC,EAAE,QAAQ,CAAA,EAAG,SAAA,EAAW,UAAU,GAAG,KAAA,uBAChE,GAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,OAAM,EAAG,CAAC,GAAG,CAAA,qBACjC,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IAGC,SAAA,EAAW,EAAA,CAAG,qDAAA,EAAuD,SAAS,CAAA;AAAA,IAC7E,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA,QAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,QACb,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,YAAA,EAAa,CAAA,EACnC;AAAA,GAAA;AAAA,EAPG;AASP,CACD,CAAA,EACH;AAGF,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
|
package/dist/CategoryFilter.js
CHANGED
|
@@ -11,10 +11,11 @@ const CategorySelector = forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
11
11
|
label: "Category",
|
|
12
12
|
placeholder: "Select category",
|
|
13
13
|
searchable: true,
|
|
14
|
-
optionsEndpoint: "commerce-api/categories
|
|
14
|
+
optionsEndpoint: "commerce-api/select-api/categories",
|
|
15
15
|
fieldKeys: { valueKey: "id", labelKey: "name", descriptionKey: "path" },
|
|
16
16
|
transformDescription: formatCategoryPath,
|
|
17
|
-
...props
|
|
17
|
+
...props,
|
|
18
|
+
params: { role: "CATEGORY", status: "active", ...props.params }
|
|
18
19
|
}
|
|
19
20
|
));
|
|
20
21
|
CategorySelector.displayName = "CategorySelector";
|
|
@@ -27,10 +28,11 @@ const CategoryFilter = Object.assign(
|
|
|
27
28
|
name: "categoryId",
|
|
28
29
|
label: "Category",
|
|
29
30
|
placeholder: "Select category",
|
|
30
|
-
optionsEndpoint: "commerce-api/categories
|
|
31
|
+
optionsEndpoint: "commerce-api/select-api/categories",
|
|
31
32
|
fieldKeys: { valueKey: "id", labelKey: "name", descriptionKey: "path" },
|
|
32
33
|
transformDescription: formatCategoryPath,
|
|
33
|
-
...props
|
|
34
|
+
...props,
|
|
35
|
+
params: { role: "CATEGORY", status: "active", ...props.params }
|
|
34
36
|
}
|
|
35
37
|
)),
|
|
36
38
|
{ displayName: "CategoryFilter", defaultLabel: "Category", defaultName: "categoryId" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryFilter.js","sources":["../lib/selects/category/CategorySelector.tsx","../lib/selects/category/CategoryFilter.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type CategorySelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Renders the parent breadcrumb from an ltree path
|
|
1
|
+
{"version":3,"file":"CategoryFilter.js","sources":["../lib/selects/category/CategorySelector.tsx","../lib/selects/category/CategoryFilter.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Select, type SelectProps } from '../../components/Select/Select';\n\nexport type CategorySelectorProps = Omit<SelectProps, 'optionsEndpoint'>;\n\n// Renders the parent breadcrumb from an ltree path, dropping the leaf segment shown as the option label.\nexport const formatCategoryPath = (path: string): string =>\n path\n .split('.')\n .slice(0, -1)\n .map((segment) => segment.replace(/_/g, ' ').replace(/\\b\\w/g, (c) => c.toUpperCase()))\n .join(' › ');\n\n// Pre-configured Select for category selection — defaults to active leaf categories; override role/status via params\nexport const CategorySelector = forwardRef<HTMLButtonElement, CategorySelectorProps>((props, ref) => (\n <Select\n ref={ref}\n label=\"Category\"\n placeholder=\"Select category\"\n searchable\n optionsEndpoint=\"commerce-api/select-api/categories\"\n fieldKeys={{ valueKey: 'id', labelKey: 'name', descriptionKey: 'path' }}\n transformDescription={formatCategoryPath}\n {...props}\n params={{ role: 'CATEGORY', status: 'active', ...props.params }}\n />\n));\nCategorySelector.displayName = 'CategorySelector';\n","import { forwardRef } from 'react';\nimport { SelectFilter, type SelectFilterProps } from '../../components/Select/SelectFilter';\nimport { formatCategoryPath } from './CategorySelector';\n\nexport type CategoryFilterProps = Omit<SelectFilterProps, 'optionsEndpoint' | 'name'> & { name?: string };\n\n// Pre-configured SelectFilter for category filtering with async search\nexport const CategoryFilter = Object.assign(\n forwardRef<HTMLButtonElement, CategoryFilterProps>((props, ref) => (\n <SelectFilter\n ref={ref}\n name=\"categoryId\"\n label=\"Category\"\n placeholder=\"Select category\"\n optionsEndpoint=\"commerce-api/select-api/categories\"\n fieldKeys={{ valueKey: 'id', labelKey: 'name', descriptionKey: 'path' }}\n transformDescription={formatCategoryPath}\n {...props}\n params={{ role: 'CATEGORY', status: 'active', ...props.params }}\n />\n )),\n { displayName: 'CategoryFilter', defaultLabel: 'Category', defaultName: 'categoryId' },\n);\n"],"names":[],"mappings":";;;;;AAMO,MAAM,kBAAA,GAAqB,CAAC,IAAA,KACjC,IAAA,CACG,KAAA,CAAM,GAAG,CAAA,CACT,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CACX,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAa,CAAC,CAAA,CACpF,KAAK,KAAK;AAGR,MAAM,gBAAA,GAAmB,UAAA,CAAqD,CAAC,KAAA,EAAO,GAAA,qBAC3F,GAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,KAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAU,IAAA;AAAA,IACV,eAAA,EAAgB,oCAAA;AAAA,IAChB,WAAW,EAAE,QAAA,EAAU,MAAM,QAAA,EAAU,MAAA,EAAQ,gBAAgB,MAAA,EAAO;AAAA,IACtE,oBAAA,EAAsB,kBAAA;AAAA,IACrB,GAAG,KAAA;AAAA,IACJ,MAAA,EAAQ,EAAE,IAAA,EAAM,UAAA,EAAY,QAAQ,QAAA,EAAU,GAAG,MAAM,MAAA;AAAO;AAChE,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;ACpBxB,MAAM,iBAAiB,MAAA,CAAO,MAAA;AAAA,EACnC,UAAA,CAAmD,CAAC,KAAA,EAAO,GAAA,qBACzD,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAM,UAAA;AAAA,MACN,WAAA,EAAY,iBAAA;AAAA,MACZ,eAAA,EAAgB,oCAAA;AAAA,MAChB,WAAW,EAAE,QAAA,EAAU,MAAM,QAAA,EAAU,MAAA,EAAQ,gBAAgB,MAAA,EAAO;AAAA,MACtE,oBAAA,EAAsB,kBAAA;AAAA,MACrB,GAAG,KAAA;AAAA,MACJ,MAAA,EAAQ,EAAE,IAAA,EAAM,UAAA,EAAY,QAAQ,QAAA,EAAU,GAAG,MAAM,MAAA;AAAO;AAAA,GAEjE,CAAA;AAAA,EACD,EAAE,WAAA,EAAa,gBAAA,EAAkB,YAAA,EAAc,UAAA,EAAY,aAAa,YAAA;AAC1E;;;;"}
|
package/dist/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../lib/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\n\nexport interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof ShadcnCheckbox> {\n
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../lib/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\n\nexport interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof ShadcnCheckbox> {\n label?: React.ReactNode;\n\n description?: React.ReactNode;\n\n error?: string;\n}\n\n// Checkbox component with Field system integration\nexport const Checkbox = React.forwardRef<React.ElementRef<typeof ShadcnCheckbox>, CheckboxProps>(\n ({ label, description, error, id, ...props }, ref) => {\n const generatedId = React.useId();\n const fieldId = id || generatedId;\n const hasError = !!error;\n\n // If no label or description, just return the base checkbox\n if (!label && !description && !error) {\n return <ShadcnCheckbox {...props} ref={ref} id={fieldId} />;\n }\n\n return (\n <Field orientation=\"horizontal\" data-disabled={props.disabled} data-invalid={hasError}>\n <ShadcnCheckbox\n {...props}\n ref={ref}\n id={fieldId}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n aria-invalid={hasError}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={fieldId} className=\"font-normal cursor-pointer\">\n {label}\n </FieldLabel>\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\nCheckbox.displayName = 'Checkbox';\n"],"names":["React","ShadcnCheckbox"],"mappings":";;;;;AAaO,MAAM,WAAWA,cAAA,CAAM,UAAA;AAAA,EAC5B,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,OAAO,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpD,IAAA,MAAM,WAAA,GAAcA,eAAM,KAAA,EAAM;AAChC,IAAA,MAAM,UAAU,EAAA,IAAM,WAAA;AACtB,IAAA,MAAM,QAAA,GAAW,CAAC,CAAC,KAAA;AAGnB,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,WAAA,IAAe,CAAC,KAAA,EAAO;AACpC,MAAA,2BAAQC,UAAA,EAAA,EAAgB,GAAG,KAAA,EAAO,GAAA,EAAU,IAAI,OAAA,EAAS,CAAA;AAAA,IAC3D;AAEA,IAAA,uBACE,IAAA,CAAC,SAAM,WAAA,EAAY,YAAA,EAAa,iBAAe,KAAA,CAAM,QAAA,EAAU,gBAAc,QAAA,EAC3E,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAACA,UAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,GAAA;AAAA,UACA,EAAA,EAAI,OAAA;AAAA,UACJ,oBAAkB,WAAA,IAAe,KAAA,GAAQ,GAAG,OAAO,CAAA,aAAA,EAAgB,OAAO,CAAA,MAAA,CAAA,GAAW,MAAA;AAAA,UACrF,cAAA,EAAc;AAAA;AAAA,OAChB;AAAA,2BACC,YAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,KAAA,wBACE,UAAA,EAAA,EAAW,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU,8BACrC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QAGD,+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,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
|
package/dist/Checkbox2.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { u as useComposedRefs } from './
|
|
4
|
-
import { c as createContextScope } from './
|
|
5
|
-
import { P as Primitive, u as useControllableState, c as composeEventHandlers } from './
|
|
3
|
+
import { u as useComposedRefs } from './index12.js';
|
|
4
|
+
import { c as createContextScope } from './index21.js';
|
|
5
|
+
import { P as Primitive, u as useControllableState, c as composeEventHandlers } from './index20.js';
|
|
6
6
|
import { u as usePrevious } from './index36.js';
|
|
7
7
|
import { u as useSize } from './index37.js';
|
|
8
|
-
import { P as Presence } from './
|
|
8
|
+
import { P as Presence } from './index23.js';
|
|
9
9
|
import { c as cn } from './utils.js';
|
|
10
10
|
import { C as Check } from './check.js';
|
|
11
11
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxGroup.js","sources":["../lib/components/CheckboxGroup/CheckboxGroup.tsx"],"sourcesContent":["import { CheckCheck, X } from 'lucide-react';\nimport React, { useCallback, useMemo } from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from '../../../shadcn/shadcnField';\nimport { cn } from '../../../shadcn/utils';\nimport { Button } from '../Button';\n\nexport interface CheckboxOption {\n /** The value associated with this option */\n value: string;\n /** Label displayed next to the checkbox */\n label: React.ReactNode;\n /** Optional description displayed below the label */\n description?: React.ReactNode;\n /** Whether this individual option is disabled */\n disabled?: boolean;\n}\n\nexport interface CheckboxGroupProps {\n /** Array of checkbox options to render */\n options: CheckboxOption[];\n /** Controlled value — array of selected option values */\n value?: string[];\n /** Callback fired when the selection changes */\n onValueChange?: (value: string[]) => void;\n /** Default selected values for uncontrolled mode */\n defaultValue?: string[];\n /** Group label rendered as a fieldset legend */\n label?: React.ReactNode;\n /** Description displayed below the label */\n description?: React.ReactNode;\n /** Error message displayed below the group */\n error?: string;\n /** Layout direction of the checkbox options */\n orientation?: 'vertical' | 'horizontal';\n /** Number of grid columns — overrides orientation layout */\n columns?: number;\n /** Whether all checkboxes in the group are disabled */\n disabled?: boolean;\n /**\n * When `true`, renders compact \"Select all\" / \"Clear\" inline actions in the group header\n * (to the right of the `label`, or above the options when there is no label).\n * \"Select all\" selects every non-disabled option; \"Clear\" empties the selection.\n * Each action disables itself when it would be a no-op. Defaults to `false`.\n */\n clearable?: boolean;\n /** Additional CSS classes for the fieldset wrapper */\n className?: string;\n /** Field name consumed by Form.tsx Controller — not used directly */\n name?: string;\n /** Blur handler wired by Form.tsx Controller */\n onBlur?: () => void;\n}\n\n// CheckboxGroup component for multi-select with Field system integration\nexport const CheckboxGroup = React.forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(\n (\n {\n options,\n value: controlledValue,\n onValueChange,\n defaultValue,\n label,\n description,\n error,\n orientation = 'vertical',\n columns,\n disabled,\n clearable = false,\n className,\n name: _name,\n onBlur,\n ...props\n },\n ref,\n ) => {\n const groupId = React.useId();\n const hasError = !!error;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = React.useState<string[]>(defaultValue ?? []);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n // Commit a new selection array through the shared controlled/uncontrolled path\n const commitValue = useCallback(\n (next: string[]) => {\n if (!isControlled) {\n setInternalValue(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n // Toggle a value in/out of the selection array\n const handleToggle = useCallback(\n (optionValue: string, checked: boolean) => {\n const next = checked ? [...currentValue, optionValue] : currentValue.filter((v) => v !== optionValue);\n commitValue(next);\n },\n [currentValue, commitValue],\n );\n\n // Values of every option that can be selected (excludes individually disabled options)\n const selectableValues = useMemo(\n () => options.filter((option) => !option.disabled).map((option) => option.value),\n [options],\n );\n\n // Header action state: all selectable already chosen / nothing chosen\n const allSelected = selectableValues.length > 0 && selectableValues.every((v) => currentValue.includes(v));\n const noneSelected = currentValue.length === 0;\n\n // Select every non-disabled option's value\n const handleSelectAll = useCallback(() => {\n commitValue(selectableValues);\n }, [commitValue, selectableValues]);\n\n // Empty the selection\n const handleClear = useCallback(() => {\n commitValue([]);\n }, [commitValue]);\n\n // Inline \"Select all\" / \"Clear\" actions shown when clearable and the group is not disabled\n const showActions = clearable && !disabled;\n const headerActions = showActions ? (\n <div className=\"-mr-1 flex items-center gap-0.5\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleSelectAll}\n disabled={allSelected}\n className=\"h-7 gap-1.5 px-2 text-xs font-medium text-muted-foreground hover:text-foreground\"\n >\n <CheckCheck className=\"size-3.5\" />\n Select all\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleClear}\n disabled={noneSelected}\n className=\"h-7 gap-1.5 px-2 text-xs font-medium text-muted-foreground hover:text-foreground\"\n >\n <X className=\"size-3.5\" />\n Clear\n </Button>\n </div>\n ) : null;\n\n // Render a single checkbox option with label and optional description\n const renderItem = (option: CheckboxOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <Field key={option.value} orientation=\"horizontal\" data-disabled={isItemDisabled || undefined}>\n <ShadcnCheckbox\n checked={currentValue.includes(option.value)}\n onCheckedChange={(checked) => handleToggle(option.value, checked === true)}\n disabled={isItemDisabled}\n id={itemId}\n onBlur={onBlur}\n />\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 // Compute layout classes based on columns or orientation\n const groupClassName = cn(\n columns ? `grid gap-3` : orientation === 'horizontal' ? 'flex flex-row flex-wrap gap-4' : 'flex flex-col gap-3',\n );\n\n // Dynamic grid-cols style when columns prop is provided\n const groupStyle = columns ? { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` } : undefined;\n\n return (\n <FieldSet ref={ref} data-invalid={hasError || undefined} className={className} {...props}>\n {label ? (\n <div className=\"flex items-center justify-between gap-4\">\n <FieldLegend variant=\"label\">{label}</FieldLegend>\n {headerActions}\n </div>\n ) : (\n headerActions && <div className=\"flex justify-end\">{headerActions}</div>\n )}\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n <div className={groupClassName} style={groupStyle}>\n {options.map(renderItem)}\n </div>\n {error && <FieldError>{error}</FieldError>}\n </FieldSet>\n );\n },\n);\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n"],"names":["React","ShadcnCheckbox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CheckboxGroup.js","sources":["../lib/components/CheckboxGroup/CheckboxGroup.tsx"],"sourcesContent":["import { CheckCheck, X } from 'lucide-react';\nimport React, { useCallback, useMemo } from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from '../../../shadcn/shadcnField';\nimport { cn } from '../../../shadcn/utils';\nimport { Button } from '../Button';\n\nexport interface CheckboxOption {\n value: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface CheckboxGroupProps {\n options: CheckboxOption[];\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 columns?: number;\n disabled?: boolean;\n clearable?: boolean;\n className?: string;\n name?: string;\n onBlur?: () => void;\n}\n\n// CheckboxGroup component for multi-select with Field system integration\nexport const CheckboxGroup = React.forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(\n (\n {\n options,\n value: controlledValue,\n onValueChange,\n defaultValue,\n label,\n description,\n error,\n orientation = 'vertical',\n columns,\n disabled,\n clearable = false,\n className,\n name: _name,\n onBlur,\n ...props\n },\n ref,\n ) => {\n const groupId = React.useId();\n const hasError = !!error;\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = React.useState<string[]>(defaultValue ?? []);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n // Commit a new selection array through the shared controlled/uncontrolled path\n const commitValue = useCallback(\n (next: string[]) => {\n if (!isControlled) {\n setInternalValue(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n // Toggle a value in/out of the selection array\n const handleToggle = useCallback(\n (optionValue: string, checked: boolean) => {\n const next = checked ? [...currentValue, optionValue] : currentValue.filter((v) => v !== optionValue);\n commitValue(next);\n },\n [currentValue, commitValue],\n );\n\n // Values of every option that can be selected (excludes individually disabled options)\n const selectableValues = useMemo(\n () => options.filter((option) => !option.disabled).map((option) => option.value),\n [options],\n );\n\n // Header action state: all selectable already chosen / nothing chosen\n const allSelected = selectableValues.length > 0 && selectableValues.every((v) => currentValue.includes(v));\n const noneSelected = currentValue.length === 0;\n\n // Select every non-disabled option's value\n const handleSelectAll = useCallback(() => {\n commitValue(selectableValues);\n }, [commitValue, selectableValues]);\n\n // Empty the selection\n const handleClear = useCallback(() => {\n commitValue([]);\n }, [commitValue]);\n\n // Inline \"Select all\" / \"Clear\" actions shown when clearable and the group is not disabled\n const showActions = clearable && !disabled;\n const headerActions = showActions ? (\n <div className=\"-mr-1 flex items-center gap-0.5\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleSelectAll}\n disabled={allSelected}\n className=\"h-7 gap-1.5 px-2 text-xs font-medium text-muted-foreground hover:text-foreground\"\n >\n <CheckCheck className=\"size-3.5\" />\n Select all\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleClear}\n disabled={noneSelected}\n className=\"h-7 gap-1.5 px-2 text-xs font-medium text-muted-foreground hover:text-foreground\"\n >\n <X className=\"size-3.5\" />\n Clear\n </Button>\n </div>\n ) : null;\n\n // Render a single checkbox option with label and optional description\n const renderItem = (option: CheckboxOption) => {\n const itemId = `${groupId}-${option.value}`;\n const isItemDisabled = disabled || option.disabled;\n\n return (\n <Field key={option.value} orientation=\"horizontal\" data-disabled={isItemDisabled || undefined}>\n <ShadcnCheckbox\n checked={currentValue.includes(option.value)}\n onCheckedChange={(checked) => handleToggle(option.value, checked === true)}\n disabled={isItemDisabled}\n id={itemId}\n onBlur={onBlur}\n />\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 // Compute layout classes based on columns or orientation\n const groupClassName = cn(\n columns ? `grid gap-3` : orientation === 'horizontal' ? 'flex flex-row flex-wrap gap-4' : 'flex flex-col gap-3',\n );\n\n // Dynamic grid-cols style when columns prop is provided\n const groupStyle = columns ? { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` } : undefined;\n\n return (\n <FieldSet ref={ref} data-invalid={hasError || undefined} className={className} {...props}>\n {label ? (\n <div className=\"flex items-center justify-between gap-4\">\n <FieldLegend variant=\"label\">{label}</FieldLegend>\n {headerActions}\n </div>\n ) : (\n headerActions && <div className=\"flex justify-end\">{headerActions}</div>\n )}\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n <div className={groupClassName} style={groupStyle}>\n {options.map(renderItem)}\n </div>\n {error && <FieldError>{error}</FieldError>}\n </FieldSet>\n );\n },\n);\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n"],"names":["React","ShadcnCheckbox"],"mappings":"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"}
|
package/dist/Collapsible.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.js","sources":["../lib/components/Collapsible/Collapsible.tsx"],"sourcesContent":["import { ChevronRight } from 'lucide-react';\nimport type React from 'react';\nimport {\n Collapsible as ShadcnCollapsible,\n CollapsibleContent as ShadcnCollapsibleContent,\n CollapsibleTrigger as ShadcnCollapsibleTrigger,\n} from '../../../shadcn/shadcnCollapsible';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface CollapsibleProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n triggerClassName?: string;\n showChevron?: boolean;\n
|
|
1
|
+
{"version":3,"file":"Collapsible.js","sources":["../lib/components/Collapsible/Collapsible.tsx"],"sourcesContent":["import { ChevronRight } from 'lucide-react';\nimport type React from 'react';\nimport {\n Collapsible as ShadcnCollapsible,\n CollapsibleContent as ShadcnCollapsibleContent,\n CollapsibleTrigger as ShadcnCollapsibleTrigger,\n} from '../../../shadcn/shadcnCollapsible';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface CollapsibleProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n triggerClassName?: string;\n showChevron?: boolean;\n leading?: React.ReactNode;\n trailing?: React.ReactNode;\n headerClassName?: string;\n}\n\n// Renders a collapsible section with a trigger and expandable content\nexport function Collapsible({\n trigger,\n children,\n defaultOpen,\n open,\n onOpenChange,\n className,\n triggerClassName,\n showChevron = true,\n leading,\n trailing,\n headerClassName,\n}: CollapsibleProps) {\n // Use the full header row whenever any slot OR header styling is provided, so headerClassName always applies\n const hasHeader = Boolean(leading || trailing || headerClassName);\n\n return (\n <ShadcnCollapsible defaultOpen={defaultOpen} open={open} onOpenChange={onOpenChange} className={className}>\n {hasHeader ? (\n <div className={cn('flex items-center gap-3', headerClassName)}>\n {leading}\n <ShadcnCollapsibleTrigger\n className={cn('flex items-center gap-1 flex-1 cursor-pointer group', triggerClassName)}\n >\n {showChevron && (\n <ChevronRight className=\"size-4 text-muted-foreground shrink-0 transition-transform group-data-[state=open]:rotate-90\" />\n )}\n {trigger}\n </ShadcnCollapsibleTrigger>\n {trailing}\n </div>\n ) : (\n <ShadcnCollapsibleTrigger className={cn('flex items-center gap-1 cursor-pointer group', triggerClassName)}>\n {showChevron && (\n <ChevronRight className=\"size-4 text-muted-foreground shrink-0 transition-transform group-data-[state=open]:rotate-90\" />\n )}\n {trigger}\n </ShadcnCollapsibleTrigger>\n )}\n <ShadcnCollapsibleContent>{children}</ShadcnCollapsibleContent>\n </ShadcnCollapsible>\n );\n}\n\nCollapsible.displayName = 'Collapsible';\n"],"names":["ShadcnCollapsible","ShadcnCollapsibleTrigger","ShadcnCollapsibleContent"],"mappings":";;;;;AAwBO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA,GAAc,IAAA;AAAA,EACd,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAqB;AAEnB,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,OAAA,IAAW,QAAA,IAAY,eAAe,CAAA;AAEhE,EAAA,uBACE,IAAA,CAACA,aAAA,EAAA,EAAkB,WAAA,EAA0B,IAAA,EAAY,cAA4B,SAAA,EAClF,QAAA,EAAA;AAAA,IAAA,SAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,eAAe,CAAA,EAC1D,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACD,IAAA;AAAA,QAACC,kBAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA,CAAG,qDAAA,EAAuD,gBAAgB,CAAA;AAAA,UAEpF,QAAA,EAAA;AAAA,YAAA,WAAA,oBACC,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8FAAA,EAA+F,CAAA;AAAA,YAExH;AAAA;AAAA;AAAA,OACH;AAAA,MACC;AAAA,KAAA,EACH,oBAEA,IAAA,CAACA,kBAAA,EAAA,EAAyB,WAAW,EAAA,CAAG,8CAAA,EAAgD,gBAAgB,CAAA,EACrG,QAAA,EAAA;AAAA,MAAA,WAAA,oBACC,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8FAAA,EAA+F,CAAA;AAAA,MAExH;AAAA,KAAA,EACH,CAAA;AAAA,oBAEF,GAAA,CAACC,sBAA0B,QAAA,EAAS;AAAA,GAAA,EACtC,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}
|