@malilion/block-ui-react 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +45 -2
- package/dist/components/actions/BlockButton/BlockButton.d.ts +7 -0
- package/dist/components/actions/BlockButton/BlockButton.d.ts.map +1 -0
- package/dist/components/actions/BlockButton/BlockButton.js +61 -0
- package/dist/components/actions/BlockButton/BlockButton.js.map +1 -0
- package/dist/components/actions/BlockButton/BlockButton.module.js +26 -0
- package/dist/components/actions/BlockButton/BlockButton.module.js.map +1 -0
- package/dist/components/actions/BlockButton/BlockButton.types.d.ts +19 -0
- package/dist/components/actions/BlockButton/BlockButton.types.d.ts.map +1 -0
- package/dist/components/actions/BlockButton/BlockButton.types.js +16 -0
- package/dist/components/actions/BlockButton/BlockButton.types.js.map +1 -0
- package/dist/components/actions/BlockButton/index.d.ts +4 -0
- package/dist/components/actions/BlockButton/index.d.ts.map +1 -0
- package/dist/components/actions/IconButton/IconButton.d.ts +4 -0
- package/dist/components/actions/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/actions/IconButton/IconButton.js +25 -0
- package/dist/components/actions/IconButton/IconButton.js.map +1 -0
- package/dist/components/actions/IconButton/IconButton.module.js +11 -0
- package/dist/components/actions/IconButton/IconButton.module.js.map +1 -0
- package/dist/components/actions/IconButton/IconButton.types.d.ts +9 -0
- package/dist/components/actions/IconButton/IconButton.types.d.ts.map +1 -0
- package/dist/components/actions/IconButton/index.d.ts +3 -0
- package/dist/components/actions/IconButton/index.d.ts.map +1 -0
- package/dist/components/actions/index.d.ts +3 -0
- package/dist/components/actions/index.d.ts.map +1 -0
- package/dist/components/cards/AchievementCard/AchievementCard.d.ts +4 -0
- package/dist/components/cards/AchievementCard/AchievementCard.d.ts.map +1 -0
- package/dist/components/cards/AchievementCard/AchievementCard.js +50 -0
- package/dist/components/cards/AchievementCard/AchievementCard.js.map +1 -0
- package/dist/components/cards/AchievementCard/AchievementCard.types.d.ts +13 -0
- package/dist/components/cards/AchievementCard/AchievementCard.types.d.ts.map +1 -0
- package/dist/components/cards/AchievementCard/index.d.ts +3 -0
- package/dist/components/cards/AchievementCard/index.d.ts.map +1 -0
- package/dist/components/cards/BlockCard/BlockCard.d.ts +4 -0
- package/dist/components/cards/BlockCard/BlockCard.d.ts.map +1 -0
- package/dist/components/cards/BlockCard/BlockCard.js +35 -0
- package/dist/components/cards/BlockCard/BlockCard.js.map +1 -0
- package/dist/components/cards/BlockCard/BlockCard.module.js +19 -0
- package/dist/components/cards/BlockCard/BlockCard.module.js.map +1 -0
- package/dist/components/cards/BlockCard/BlockCard.types.d.ts +18 -0
- package/dist/components/cards/BlockCard/BlockCard.types.d.ts.map +1 -0
- package/dist/components/cards/BlockCard/BlockCard.types.js +14 -0
- package/dist/components/cards/BlockCard/BlockCard.types.js.map +1 -0
- package/dist/components/cards/BlockCard/index.d.ts +4 -0
- package/dist/components/cards/BlockCard/index.d.ts.map +1 -0
- package/dist/components/cards/PlayerCard/PlayerCard.d.ts +4 -0
- package/dist/components/cards/PlayerCard/PlayerCard.d.ts.map +1 -0
- package/dist/components/cards/PlayerCard/PlayerCard.js +82 -0
- package/dist/components/cards/PlayerCard/PlayerCard.js.map +1 -0
- package/dist/components/cards/PlayerCard/PlayerCard.types.d.ts +21 -0
- package/dist/components/cards/PlayerCard/PlayerCard.types.d.ts.map +1 -0
- package/dist/components/cards/PlayerCard/index.d.ts +3 -0
- package/dist/components/cards/PlayerCard/index.d.ts.map +1 -0
- package/dist/components/cards/QuestCard/QuestCard.d.ts +4 -0
- package/dist/components/cards/QuestCard/QuestCard.d.ts.map +1 -0
- package/dist/components/cards/QuestCard/QuestCard.js +98 -0
- package/dist/components/cards/QuestCard/QuestCard.js.map +1 -0
- package/dist/components/cards/QuestCard/QuestCard.types.d.ts +23 -0
- package/dist/components/cards/QuestCard/QuestCard.types.d.ts.map +1 -0
- package/dist/components/cards/QuestCard/index.d.ts +3 -0
- package/dist/components/cards/QuestCard/index.d.ts.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.d.ts +4 -0
- package/dist/components/cards/ServerCard/ServerCard.d.ts.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.js +92 -0
- package/dist/components/cards/ServerCard/ServerCard.js.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.module.js +11 -0
- package/dist/components/cards/ServerCard/ServerCard.module.js.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.types.d.ts +20 -0
- package/dist/components/cards/ServerCard/ServerCard.types.d.ts.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.utils.d.ts +3 -0
- package/dist/components/cards/ServerCard/ServerCard.utils.d.ts.map +1 -0
- package/dist/components/cards/ServerCard/ServerCard.utils.js +11 -0
- package/dist/components/cards/ServerCard/ServerCard.utils.js.map +1 -0
- package/dist/components/cards/ServerCard/index.d.ts +4 -0
- package/dist/components/cards/ServerCard/index.d.ts.map +1 -0
- package/dist/components/cards/WorldCard/WorldCard.d.ts +4 -0
- package/dist/components/cards/WorldCard/WorldCard.d.ts.map +1 -0
- package/dist/components/cards/WorldCard/WorldCard.js +64 -0
- package/dist/components/cards/WorldCard/WorldCard.js.map +1 -0
- package/dist/components/cards/WorldCard/WorldCard.module.js +17 -0
- package/dist/components/cards/WorldCard/WorldCard.module.js.map +1 -0
- package/dist/components/cards/WorldCard/WorldCard.types.d.ts +15 -0
- package/dist/components/cards/WorldCard/WorldCard.types.d.ts.map +1 -0
- package/dist/components/cards/WorldCard/index.d.ts +3 -0
- package/dist/components/cards/WorldCard/index.d.ts.map +1 -0
- package/dist/components/cards/cards.module.js +37 -0
- package/dist/components/cards/cards.module.js.map +1 -0
- package/dist/components/cards/index.d.ts +7 -0
- package/dist/components/cards/index.d.ts.map +1 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.d.ts +7 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.d.ts.map +1 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.js +30 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.js.map +1 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.module.js +7 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.module.js.map +1 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.types.d.ts +6 -0
- package/dist/components/crafting/CraftingGrid/CraftingGrid.types.d.ts.map +1 -0
- package/dist/components/crafting/CraftingGrid/index.d.ts +3 -0
- package/dist/components/crafting/CraftingGrid/index.d.ts.map +1 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.d.ts +4 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.d.ts.map +1 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.js +31 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.js.map +1 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.module.js +11 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.module.js.map +1 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.types.d.ts +11 -0
- package/dist/components/crafting/CraftingResult/CraftingResult.types.d.ts.map +1 -0
- package/dist/components/crafting/CraftingResult/index.d.ts +3 -0
- package/dist/components/crafting/CraftingResult/index.d.ts.map +1 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.d.ts +3 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.d.ts.map +1 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.js +18 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.js.map +1 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.module.js +7 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.module.js.map +1 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.types.d.ts +3 -0
- package/dist/components/crafting/CraftingSlot/CraftingSlot.types.d.ts.map +1 -0
- package/dist/components/crafting/CraftingSlot/index.d.ts +3 -0
- package/dist/components/crafting/CraftingSlot/index.d.ts.map +1 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.d.ts +7 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.d.ts.map +1 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.js +59 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.js.map +1 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.module.js +19 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.module.js.map +1 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.types.d.ts +18 -0
- package/dist/components/crafting/CraftingTable/CraftingTable.types.d.ts.map +1 -0
- package/dist/components/crafting/CraftingTable/index.d.ts +3 -0
- package/dist/components/crafting/CraftingTable/index.d.ts.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.d.ts +7 -0
- package/dist/components/crafting/Furnace/Furnace.d.ts.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.js +119 -0
- package/dist/components/crafting/Furnace/Furnace.js.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.module.js +29 -0
- package/dist/components/crafting/Furnace/Furnace.module.js.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.types.d.ts +26 -0
- package/dist/components/crafting/Furnace/Furnace.types.d.ts.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.types.js +12 -0
- package/dist/components/crafting/Furnace/Furnace.types.js.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.utils.d.ts +7 -0
- package/dist/components/crafting/Furnace/Furnace.utils.d.ts.map +1 -0
- package/dist/components/crafting/Furnace/Furnace.utils.js +16 -0
- package/dist/components/crafting/Furnace/Furnace.utils.js.map +1 -0
- package/dist/components/crafting/Furnace/index.d.ts +5 -0
- package/dist/components/crafting/Furnace/index.d.ts.map +1 -0
- package/dist/components/crafting/index.d.ts +6 -0
- package/dist/components/crafting/index.d.ts.map +1 -0
- package/dist/components/display/BlockBadge/BlockBadge.d.ts +4 -0
- package/dist/components/display/BlockBadge/BlockBadge.d.ts.map +1 -0
- package/dist/components/display/BlockBadge/BlockBadge.js +34 -0
- package/dist/components/display/BlockBadge/BlockBadge.js.map +1 -0
- package/dist/components/display/BlockBadge/BlockBadge.module.js +15 -0
- package/dist/components/display/BlockBadge/BlockBadge.module.js.map +1 -0
- package/dist/components/display/BlockBadge/BlockBadge.types.d.ts +13 -0
- package/dist/components/display/BlockBadge/BlockBadge.types.d.ts.map +1 -0
- package/dist/components/display/BlockBadge/BlockBadge.types.js +17 -0
- package/dist/components/display/BlockBadge/BlockBadge.types.js.map +1 -0
- package/dist/components/display/BlockBadge/index.d.ts +4 -0
- package/dist/components/display/BlockBadge/index.d.ts.map +1 -0
- package/dist/components/display/index.d.ts +2 -0
- package/dist/components/display/index.d.ts.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.d.ts +7 -0
- package/dist/components/feedback/Alert/BlockAlert.d.ts.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.js +62 -0
- package/dist/components/feedback/Alert/BlockAlert.js.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.module.js +21 -0
- package/dist/components/feedback/Alert/BlockAlert.module.js.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.types.d.ts +19 -0
- package/dist/components/feedback/Alert/BlockAlert.types.d.ts.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.types.js +11 -0
- package/dist/components/feedback/Alert/BlockAlert.types.js.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.utils.d.ts +4 -0
- package/dist/components/feedback/Alert/BlockAlert.utils.d.ts.map +1 -0
- package/dist/components/feedback/Alert/BlockAlert.utils.js +12 -0
- package/dist/components/feedback/Alert/BlockAlert.utils.js.map +1 -0
- package/dist/components/feedback/Alert/index.d.ts +4 -0
- package/dist/components/feedback/Alert/index.d.ts.map +1 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.d.ts +7 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.js +47 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.js.map +1 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.types.d.ts +21 -0
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.types.d.ts.map +1 -0
- package/dist/components/feedback/ConfirmDialog/index.d.ts +3 -0
- package/dist/components/feedback/ConfirmDialog/index.d.ts.map +1 -0
- package/dist/components/feedback/Loading/BlockLoading.d.ts +4 -0
- package/dist/components/feedback/Loading/BlockLoading.d.ts.map +1 -0
- package/dist/components/feedback/Loading/BlockLoading.js +35 -0
- package/dist/components/feedback/Loading/BlockLoading.js.map +1 -0
- package/dist/components/feedback/Loading/BlockLoading.module.js +18 -0
- package/dist/components/feedback/Loading/BlockLoading.module.js.map +1 -0
- package/dist/components/feedback/Loading/BlockLoading.types.d.ts +14 -0
- package/dist/components/feedback/Loading/BlockLoading.types.d.ts.map +1 -0
- package/dist/components/feedback/Loading/index.d.ts +3 -0
- package/dist/components/feedback/Loading/index.d.ts.map +1 -0
- package/dist/components/feedback/Modal/BlockModal.d.ts +7 -0
- package/dist/components/feedback/Modal/BlockModal.d.ts.map +1 -0
- package/dist/components/feedback/Modal/BlockModal.js +99 -0
- package/dist/components/feedback/Modal/BlockModal.js.map +1 -0
- package/dist/components/feedback/Modal/BlockModal.module.js +27 -0
- package/dist/components/feedback/Modal/BlockModal.module.js.map +1 -0
- package/dist/components/feedback/Modal/BlockModal.types.d.ts +27 -0
- package/dist/components/feedback/Modal/BlockModal.types.d.ts.map +1 -0
- package/dist/components/feedback/Modal/index.d.ts +3 -0
- package/dist/components/feedback/Modal/index.d.ts.map +1 -0
- package/dist/components/feedback/Progress/BlockProgress.d.ts +4 -0
- package/dist/components/feedback/Progress/BlockProgress.d.ts.map +1 -0
- package/dist/components/feedback/Progress/BlockProgress.js +50 -0
- package/dist/components/feedback/Progress/BlockProgress.js.map +1 -0
- package/dist/components/feedback/Progress/BlockProgress.module.js +23 -0
- package/dist/components/feedback/Progress/BlockProgress.module.js.map +1 -0
- package/dist/components/feedback/Progress/BlockProgress.types.d.ts +20 -0
- package/dist/components/feedback/Progress/BlockProgress.types.d.ts.map +1 -0
- package/dist/components/feedback/Progress/BlockProgress.types.js +13 -0
- package/dist/components/feedback/Progress/BlockProgress.types.js.map +1 -0
- package/dist/components/feedback/Progress/index.d.ts +4 -0
- package/dist/components/feedback/Progress/index.d.ts.map +1 -0
- package/dist/components/feedback/Toast/Toast.d.ts +7 -0
- package/dist/components/feedback/Toast/Toast.d.ts.map +1 -0
- package/dist/components/feedback/Toast/Toast.js +81 -0
- package/dist/components/feedback/Toast/Toast.js.map +1 -0
- package/dist/components/feedback/Toast/Toast.module.js +16 -0
- package/dist/components/feedback/Toast/Toast.module.js.map +1 -0
- package/dist/components/feedback/Toast/Toast.types.d.ts +29 -0
- package/dist/components/feedback/Toast/Toast.types.d.ts.map +1 -0
- package/dist/components/feedback/Toast/index.d.ts +6 -0
- package/dist/components/feedback/Toast/index.d.ts.map +1 -0
- package/dist/components/feedback/Toast/store.d.ts +28 -0
- package/dist/components/feedback/Toast/store.d.ts.map +1 -0
- package/dist/components/feedback/Toast/store.js +54 -0
- package/dist/components/feedback/Toast/store.js.map +1 -0
- package/dist/components/feedback/Toast/useToasts.d.ts +4 -0
- package/dist/components/feedback/Toast/useToasts.d.ts.map +1 -0
- package/dist/components/feedback/Toast/useToasts.js +11 -0
- package/dist/components/feedback/Toast/useToasts.js.map +1 -0
- package/dist/components/feedback/index.d.ts +7 -0
- package/dist/components/feedback/index.d.ts.map +1 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.d.ts +4 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.d.ts.map +1 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.js +69 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.js.map +1 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.module.js +27 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.module.js.map +1 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.types.d.ts +10 -0
- package/dist/components/forms/BlockCheckbox/BlockCheckbox.types.d.ts.map +1 -0
- package/dist/components/forms/BlockCheckbox/index.d.ts +3 -0
- package/dist/components/forms/BlockCheckbox/index.d.ts.map +1 -0
- package/dist/components/forms/BlockInput/BlockInput.d.ts +4 -0
- package/dist/components/forms/BlockInput/BlockInput.d.ts.map +1 -0
- package/dist/components/forms/BlockInput/BlockInput.js +49 -0
- package/dist/components/forms/BlockInput/BlockInput.js.map +1 -0
- package/dist/components/forms/BlockInput/BlockInput.module.js +19 -0
- package/dist/components/forms/BlockInput/BlockInput.module.js.map +1 -0
- package/dist/components/forms/BlockInput/BlockInput.types.d.ts +16 -0
- package/dist/components/forms/BlockInput/BlockInput.types.d.ts.map +1 -0
- package/dist/components/forms/BlockInput/index.d.ts +3 -0
- package/dist/components/forms/BlockInput/index.d.ts.map +1 -0
- package/dist/components/forms/BlockRadio/BlockRadio.d.ts +6 -0
- package/dist/components/forms/BlockRadio/BlockRadio.d.ts.map +1 -0
- package/dist/components/forms/BlockRadio/BlockRadio.js +122 -0
- package/dist/components/forms/BlockRadio/BlockRadio.js.map +1 -0
- package/dist/components/forms/BlockRadio/BlockRadio.module.js +33 -0
- package/dist/components/forms/BlockRadio/BlockRadio.module.js.map +1 -0
- package/dist/components/forms/BlockRadio/BlockRadio.types.d.ts +29 -0
- package/dist/components/forms/BlockRadio/BlockRadio.types.d.ts.map +1 -0
- package/dist/components/forms/BlockRadio/context.d.ts +11 -0
- package/dist/components/forms/BlockRadio/context.d.ts.map +1 -0
- package/dist/components/forms/BlockRadio/context.js +10 -0
- package/dist/components/forms/BlockRadio/context.js.map +1 -0
- package/dist/components/forms/BlockRadio/index.d.ts +3 -0
- package/dist/components/forms/BlockRadio/index.d.ts.map +1 -0
- package/dist/components/forms/BlockSelect/BlockSelect.d.ts +4 -0
- package/dist/components/forms/BlockSelect/BlockSelect.d.ts.map +1 -0
- package/dist/components/forms/BlockSelect/BlockSelect.js +58 -0
- package/dist/components/forms/BlockSelect/BlockSelect.js.map +1 -0
- package/dist/components/forms/BlockSelect/BlockSelect.module.js +13 -0
- package/dist/components/forms/BlockSelect/BlockSelect.module.js.map +1 -0
- package/dist/components/forms/BlockSelect/BlockSelect.types.d.ts +18 -0
- package/dist/components/forms/BlockSelect/BlockSelect.types.d.ts.map +1 -0
- package/dist/components/forms/BlockSelect/index.d.ts +3 -0
- package/dist/components/forms/BlockSelect/index.d.ts.map +1 -0
- package/dist/components/forms/BlockSlider/BlockSlider.d.ts +7 -0
- package/dist/components/forms/BlockSlider/BlockSlider.d.ts.map +1 -0
- package/dist/components/forms/BlockSlider/BlockSlider.js +60 -0
- package/dist/components/forms/BlockSlider/BlockSlider.js.map +1 -0
- package/dist/components/forms/BlockSlider/BlockSlider.module.js +7 -0
- package/dist/components/forms/BlockSlider/BlockSlider.module.js.map +1 -0
- package/dist/components/forms/BlockSlider/BlockSlider.types.d.ts +25 -0
- package/dist/components/forms/BlockSlider/BlockSlider.types.d.ts.map +1 -0
- package/dist/components/forms/BlockSlider/index.d.ts +3 -0
- package/dist/components/forms/BlockSlider/index.d.ts.map +1 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.d.ts +4 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.d.ts.map +1 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.js +53 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.js.map +1 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.module.js +7 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.module.js.map +1 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.types.d.ts +11 -0
- package/dist/components/forms/BlockTextarea/BlockTextarea.types.d.ts.map +1 -0
- package/dist/components/forms/BlockTextarea/index.d.ts +3 -0
- package/dist/components/forms/BlockTextarea/index.d.ts.map +1 -0
- package/dist/components/forms/BlockToggle/BlockToggle.d.ts +4 -0
- package/dist/components/forms/BlockToggle/BlockToggle.d.ts.map +1 -0
- package/dist/components/forms/BlockToggle/BlockToggle.js +52 -0
- package/dist/components/forms/BlockToggle/BlockToggle.js.map +1 -0
- package/dist/components/forms/BlockToggle/BlockToggle.module.js +27 -0
- package/dist/components/forms/BlockToggle/BlockToggle.module.js.map +1 -0
- package/dist/components/forms/BlockToggle/BlockToggle.types.d.ts +12 -0
- package/dist/components/forms/BlockToggle/BlockToggle.types.d.ts.map +1 -0
- package/dist/components/forms/BlockToggle/index.d.ts +3 -0
- package/dist/components/forms/BlockToggle/index.d.ts.map +1 -0
- package/dist/components/forms/Field/Field.d.ts +25 -0
- package/dist/components/forms/Field/Field.d.ts.map +1 -0
- package/dist/components/forms/Field/Field.js +59 -0
- package/dist/components/forms/Field/Field.js.map +1 -0
- package/dist/components/forms/Field/Field.module.js +21 -0
- package/dist/components/forms/Field/Field.module.js.map +1 -0
- package/dist/components/forms/Field/control.module.js +7 -0
- package/dist/components/forms/Field/control.module.js.map +1 -0
- package/dist/components/forms/index.d.ts +8 -0
- package/dist/components/forms/index.d.ts.map +1 -0
- package/dist/components/hud/ArmorBar/ArmorBar.d.ts +4 -0
- package/dist/components/hud/ArmorBar/ArmorBar.d.ts.map +1 -0
- package/dist/components/hud/ArmorBar/ArmorBar.js +23 -0
- package/dist/components/hud/ArmorBar/ArmorBar.js.map +1 -0
- package/dist/components/hud/ArmorBar/ArmorBar.types.d.ts +13 -0
- package/dist/components/hud/ArmorBar/ArmorBar.types.d.ts.map +1 -0
- package/dist/components/hud/ArmorBar/index.d.ts +3 -0
- package/dist/components/hud/ArmorBar/index.d.ts.map +1 -0
- package/dist/components/hud/HealthBar/HealthBar.d.ts +4 -0
- package/dist/components/hud/HealthBar/HealthBar.d.ts.map +1 -0
- package/dist/components/hud/HealthBar/HealthBar.js +23 -0
- package/dist/components/hud/HealthBar/HealthBar.js.map +1 -0
- package/dist/components/hud/HealthBar/HealthBar.types.d.ts +13 -0
- package/dist/components/hud/HealthBar/HealthBar.types.d.ts.map +1 -0
- package/dist/components/hud/HealthBar/index.d.ts +3 -0
- package/dist/components/hud/HealthBar/index.d.ts.map +1 -0
- package/dist/components/hud/HungerBar/HungerBar.d.ts +4 -0
- package/dist/components/hud/HungerBar/HungerBar.d.ts.map +1 -0
- package/dist/components/hud/HungerBar/HungerBar.js +23 -0
- package/dist/components/hud/HungerBar/HungerBar.js.map +1 -0
- package/dist/components/hud/HungerBar/HungerBar.types.d.ts +15 -0
- package/dist/components/hud/HungerBar/HungerBar.types.d.ts.map +1 -0
- package/dist/components/hud/HungerBar/index.d.ts +3 -0
- package/dist/components/hud/HungerBar/index.d.ts.map +1 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.d.ts +7 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.d.ts.map +1 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.js +57 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.js.map +1 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.module.js +15 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.module.js.map +1 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.types.d.ts +26 -0
- package/dist/components/hud/PlayerHUD/PlayerHUD.types.d.ts.map +1 -0
- package/dist/components/hud/PlayerHUD/index.d.ts +3 -0
- package/dist/components/hud/PlayerHUD/index.d.ts.map +1 -0
- package/dist/components/hud/PointsBar/PointsBar.d.ts +24 -0
- package/dist/components/hud/PointsBar/PointsBar.d.ts.map +1 -0
- package/dist/components/hud/PointsBar/PointsBar.js +61 -0
- package/dist/components/hud/PointsBar/PointsBar.js.map +1 -0
- package/dist/components/hud/PointsBar/PointsBar.module.js +20 -0
- package/dist/components/hud/PointsBar/PointsBar.module.js.map +1 -0
- package/dist/components/hud/PointsBar/index.d.ts +3 -0
- package/dist/components/hud/PointsBar/index.d.ts.map +1 -0
- package/dist/components/hud/XPBar/XPBar.d.ts +4 -0
- package/dist/components/hud/XPBar/XPBar.d.ts.map +1 -0
- package/dist/components/hud/XPBar/XPBar.js +45 -0
- package/dist/components/hud/XPBar/XPBar.js.map +1 -0
- package/dist/components/hud/XPBar/XPBar.module.js +19 -0
- package/dist/components/hud/XPBar/XPBar.module.js.map +1 -0
- package/dist/components/hud/XPBar/XPBar.types.d.ts +12 -0
- package/dist/components/hud/XPBar/XPBar.types.d.ts.map +1 -0
- package/dist/components/hud/XPBar/index.d.ts +3 -0
- package/dist/components/hud/XPBar/index.d.ts.map +1 -0
- package/dist/components/hud/index.d.ts +6 -0
- package/dist/components/hud/index.d.ts.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.d.ts +4 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.d.ts.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.js +37 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.js.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.module.js +17 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.module.js.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.types.d.ts +13 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.types.d.ts.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.utils.d.ts +3 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.utils.d.ts.map +1 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.utils.js +12 -0
- package/dist/components/inventory/DurabilityBar/DurabilityBar.utils.js.map +1 -0
- package/dist/components/inventory/DurabilityBar/index.d.ts +4 -0
- package/dist/components/inventory/DurabilityBar/index.d.ts.map +1 -0
- package/dist/components/inventory/Hotbar/Hotbar.d.ts +7 -0
- package/dist/components/inventory/Hotbar/Hotbar.d.ts.map +1 -0
- package/dist/components/inventory/Hotbar/Hotbar.js +51 -0
- package/dist/components/inventory/Hotbar/Hotbar.js.map +1 -0
- package/dist/components/inventory/Hotbar/Hotbar.module.js +13 -0
- package/dist/components/inventory/Hotbar/Hotbar.module.js.map +1 -0
- package/dist/components/inventory/Hotbar/Hotbar.types.d.ts +17 -0
- package/dist/components/inventory/Hotbar/Hotbar.types.d.ts.map +1 -0
- package/dist/components/inventory/Hotbar/index.d.ts +3 -0
- package/dist/components/inventory/Hotbar/index.d.ts.map +1 -0
- package/dist/components/inventory/Inventory/Inventory.d.ts +9 -0
- package/dist/components/inventory/Inventory/Inventory.d.ts.map +1 -0
- package/dist/components/inventory/Inventory/Inventory.js +45 -0
- package/dist/components/inventory/Inventory/Inventory.js.map +1 -0
- package/dist/components/inventory/Inventory/Inventory.module.js +17 -0
- package/dist/components/inventory/Inventory/Inventory.module.js.map +1 -0
- package/dist/components/inventory/Inventory/Inventory.types.d.ts +14 -0
- package/dist/components/inventory/Inventory/Inventory.types.d.ts.map +1 -0
- package/dist/components/inventory/Inventory/index.d.ts +3 -0
- package/dist/components/inventory/Inventory/index.d.ts.map +1 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.d.ts +9 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.d.ts.map +1 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.js +127 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.js.map +1 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.module.js +11 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.module.js.map +1 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.types.d.ts +24 -0
- package/dist/components/inventory/InventoryGrid/InventoryGrid.types.d.ts.map +1 -0
- package/dist/components/inventory/InventoryGrid/context.d.ts +14 -0
- package/dist/components/inventory/InventoryGrid/context.d.ts.map +1 -0
- package/dist/components/inventory/InventoryGrid/context.js +15 -0
- package/dist/components/inventory/InventoryGrid/context.js.map +1 -0
- package/dist/components/inventory/InventoryGrid/index.d.ts +4 -0
- package/dist/components/inventory/InventoryGrid/index.d.ts.map +1 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.d.ts +8 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.d.ts.map +1 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.js +151 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.js.map +1 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.module.js +21 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.module.js.map +1 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.types.d.ts +20 -0
- package/dist/components/inventory/InventorySlot/InventorySlot.types.d.ts.map +1 -0
- package/dist/components/inventory/InventorySlot/index.d.ts +3 -0
- package/dist/components/inventory/InventorySlot/index.d.ts.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.d.ts +8 -0
- package/dist/components/inventory/ItemStack/ItemStack.d.ts.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.js +58 -0
- package/dist/components/inventory/ItemStack/ItemStack.js.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.module.js +15 -0
- package/dist/components/inventory/ItemStack/ItemStack.module.js.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.types.d.ts +14 -0
- package/dist/components/inventory/ItemStack/ItemStack.types.d.ts.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.utils.d.ts +4 -0
- package/dist/components/inventory/ItemStack/ItemStack.utils.d.ts.map +1 -0
- package/dist/components/inventory/ItemStack/ItemStack.utils.js +14 -0
- package/dist/components/inventory/ItemStack/ItemStack.utils.js.map +1 -0
- package/dist/components/inventory/ItemStack/index.d.ts +4 -0
- package/dist/components/inventory/ItemStack/index.d.ts.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.d.ts +7 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.d.ts.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.js +52 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.js.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.module.js +23 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.module.js.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.types.d.ts +18 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.types.d.ts.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.types.js +12 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.types.js.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.utils.d.ts +3 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.utils.d.ts.map +1 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.utils.js +11 -0
- package/dist/components/inventory/ItemTooltip/ItemTooltip.utils.js.map +1 -0
- package/dist/components/inventory/ItemTooltip/index.d.ts +5 -0
- package/dist/components/inventory/ItemTooltip/index.d.ts.map +1 -0
- package/dist/components/inventory/index.d.ts +8 -0
- package/dist/components/inventory/index.d.ts.map +1 -0
- package/dist/components/layout/BlockPanel/BlockPanel.d.ts +7 -0
- package/dist/components/layout/BlockPanel/BlockPanel.d.ts.map +1 -0
- package/dist/components/layout/BlockPanel/BlockPanel.js +44 -0
- package/dist/components/layout/BlockPanel/BlockPanel.js.map +1 -0
- package/dist/components/layout/BlockPanel/BlockPanel.module.js +27 -0
- package/dist/components/layout/BlockPanel/BlockPanel.module.js.map +1 -0
- package/dist/components/layout/BlockPanel/BlockPanel.types.d.ts +20 -0
- package/dist/components/layout/BlockPanel/BlockPanel.types.d.ts.map +1 -0
- package/dist/components/layout/BlockPanel/index.d.ts +3 -0
- package/dist/components/layout/BlockPanel/index.d.ts.map +1 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.d.ts +9 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.d.ts.map +1 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.js +96 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.js.map +1 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.module.js +25 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.module.js.map +1 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.types.d.ts +30 -0
- package/dist/components/navigation/BlockSidebar/BlockSidebar.types.d.ts.map +1 -0
- package/dist/components/navigation/BlockSidebar/context.d.ts +7 -0
- package/dist/components/navigation/BlockSidebar/context.d.ts.map +1 -0
- package/dist/components/navigation/BlockSidebar/context.js +10 -0
- package/dist/components/navigation/BlockSidebar/context.js.map +1 -0
- package/dist/components/navigation/BlockSidebar/index.d.ts +3 -0
- package/dist/components/navigation/BlockSidebar/index.d.ts.map +1 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.d.ts +7 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.d.ts.map +1 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.js +84 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.js.map +1 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.module.js +19 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.module.js.map +1 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.types.d.ts +21 -0
- package/dist/components/navigation/BlockTabs/BlockTabs.types.d.ts.map +1 -0
- package/dist/components/navigation/BlockTabs/index.d.ts +3 -0
- package/dist/components/navigation/BlockTabs/index.d.ts.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts +4 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js +55 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.js +23 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.types.d.ts +16 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.types.d.ts.map +1 -0
- package/dist/components/navigation/Breadcrumb/index.d.ts +3 -0
- package/dist/components/navigation/Breadcrumb/index.d.ts.map +1 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.d.ts +4 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.d.ts.map +1 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.js +85 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.js.map +1 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.module.js +25 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.module.js.map +1 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.types.d.ts +25 -0
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.types.d.ts.map +1 -0
- package/dist/components/navigation/HotbarNavigation/index.d.ts +3 -0
- package/dist/components/navigation/HotbarNavigation/index.d.ts.map +1 -0
- package/dist/components/navigation/index.d.ts +5 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useControllableState.d.ts +8 -0
- package/dist/hooks/useControllableState.d.ts.map +1 -0
- package/dist/hooks/useControllableState.js +15 -0
- package/dist/hooks/useControllableState.js.map +1 -0
- package/dist/hooks/useDigitHotkeys.d.ts +6 -0
- package/dist/hooks/useDigitHotkeys.d.ts.map +1 -0
- package/dist/hooks/useDigitHotkeys.js +30 -0
- package/dist/hooks/useDigitHotkeys.js.map +1 -0
- package/dist/hooks/useFocusTrap.d.ts +13 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/hooks/useFocusTrap.js +53 -0
- package/dist/hooks/useFocusTrap.js.map +1 -0
- package/dist/hooks/useMediaQuery.d.ts +3 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +16 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/provider/BlockUIProvider.d.ts +13 -0
- package/dist/provider/BlockUIProvider.d.ts.map +1 -0
- package/dist/provider/BlockUIProvider.js +44 -0
- package/dist/provider/BlockUIProvider.js.map +1 -0
- package/dist/provider/BlockUIProvider.types.d.ts +15 -0
- package/dist/provider/BlockUIProvider.types.d.ts.map +1 -0
- package/dist/provider/context.d.ts +10 -0
- package/dist/provider/context.d.ts.map +1 -0
- package/dist/provider/context.js +20 -0
- package/dist/provider/context.js.map +1 -0
- package/dist/provider/index.d.ts +4 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/styles.css +3179 -0
- package/dist/utils/cx.d.ts +4 -0
- package/dist/utils/cx.d.ts.map +1 -0
- package/dist/utils/cx.js +9 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/dom.d.ts +5 -0
- package/dist/utils/dom.d.ts.map +1 -0
- package/dist/utils/dom.js +38 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/number.d.ts +6 -0
- package/dist/utils/number.d.ts.map +1 -0
- package/dist/utils/number.js +18 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/refs.d.ts +4 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/refs.js +12 -0
- package/dist/utils/refs.js.map +1 -0
- package/package.json +80 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/feedback/Loading/BlockLoading.module.css
|
|
2
|
+
var loading = "block-loading-FjDn7";
|
|
3
|
+
var blocks = "block-blocks-hpVZ3";
|
|
4
|
+
var block = "block-block-QTgZ4";
|
|
5
|
+
var label = "block-label--jqjD";
|
|
6
|
+
var bar = "block-bar-oFS7J";
|
|
7
|
+
var BlockLoading_module_default = {
|
|
8
|
+
loading,
|
|
9
|
+
blocks,
|
|
10
|
+
block,
|
|
11
|
+
"block-blink": "block-block-blink-Nhh76",
|
|
12
|
+
label,
|
|
13
|
+
bar
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { bar, block, blocks, BlockLoading_module_default as default, label, loading };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=BlockLoading.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockLoading.module.js","names":[],"sources":["../../../../src/components/feedback/Loading/BlockLoading.module.css"],"sourcesContent":[".loading {\n --loading-block: 10px;\n\n display: inline-flex;\n align-items: center;\n gap: var(--block-space-3);\n color: var(--block-text);\n}\n\n.loading[data-size=\"sm\"] {\n --loading-block: 6px;\n}\n\n.loading[data-size=\"lg\"] {\n --loading-block: 16px;\n}\n\n.loading[data-variant=\"bar\"] {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--block-space-1);\n width: 100%;\n}\n\n.blocks {\n display: grid;\n grid-template-columns: repeat(2, var(--loading-block));\n gap: 2px;\n}\n\n.block {\n width: var(--loading-block);\n height: var(--loading-block);\n background-color: var(--block-primary);\n box-shadow: inset -2px -2px 0 var(--block-primary-dark);\n animation: block-blink 800ms steps(1, end) infinite;\n}\n\n/* Clockwise stepping order: 0 → 1 → 3 → 2. */\n.block:nth-child(2) {\n animation-delay: 200ms;\n}\n\n.block:nth-child(4) {\n animation-delay: 400ms;\n}\n\n.block:nth-child(3) {\n animation-delay: 600ms;\n}\n\n.label {\n font-size: var(--block-font-size-sm);\n color: var(--block-text-muted);\n}\n\n.bar {\n width: 100%;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
export interface BlockLoadingProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Status text (announced politely). @default "Loading…" */
|
|
4
|
+
label?: string;
|
|
5
|
+
/** `blocks` — stepping pixel blocks; `bar` — indeterminate or determinate bar. @default "blocks" */
|
|
6
|
+
variant?: "blocks" | "bar";
|
|
7
|
+
/** Determinate progress (bar variant only). */
|
|
8
|
+
progress?: number;
|
|
9
|
+
/** Visually hide the label (still announced). */
|
|
10
|
+
hideLabel?: boolean;
|
|
11
|
+
/** @default "md" */
|
|
12
|
+
size?: "sm" | "md" | "lg";
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BlockLoading.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockLoading.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Loading/BlockLoading.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Loading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BlockModalProps } from "./BlockModal.types";
|
|
2
|
+
/**
|
|
3
|
+
* Accessible modal dialog: focus trap, `Escape` to close, overlay, focus
|
|
4
|
+
* restoration and `aria-modal` dialog semantics (PRD §45).
|
|
5
|
+
*/
|
|
6
|
+
export declare const BlockModal: import("react").ForwardRefExoticComponent<BlockModalProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
|
+
//# sourceMappingURL=BlockModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockModal.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAiGrB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { usePortalContainer } from "../../../provider/context.js";
|
|
3
|
+
import { mergeRefs } from "../../../utils/refs.js";
|
|
4
|
+
import { useFocusTrap } from "../../../hooks/useFocusTrap.js";
|
|
5
|
+
import BlockModal_module_default from "./BlockModal.module.js";
|
|
6
|
+
import { forwardRef, useEffect, useId, useRef } from "react";
|
|
7
|
+
import { createPortal } from "react-dom";
|
|
8
|
+
import { CloseIcon } from "@malilion/block-ui-icons";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/feedback/Modal/BlockModal.tsx
|
|
11
|
+
var openModals = 0;
|
|
12
|
+
/**
|
|
13
|
+
* Accessible modal dialog: focus trap, `Escape` to close, overlay, focus
|
|
14
|
+
* restoration and `aria-modal` dialog semantics (PRD §45).
|
|
15
|
+
*/
|
|
16
|
+
var BlockModal = forwardRef(function BlockModal({ open, onClose, title, description, children, footer, size = "md", closeOnOverlayClick = true, closeOnEscape = true, hideCloseButton = false, initialFocusRef, role = "dialog", icon, className, ...rest }, ref) {
|
|
17
|
+
const container = usePortalContainer();
|
|
18
|
+
const dialogRef = useRef(null);
|
|
19
|
+
const titleId = useId();
|
|
20
|
+
const descriptionId = useId();
|
|
21
|
+
useFocusTrap(dialogRef, open && container !== null, { initialFocus: initialFocusRef });
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!open) return void 0;
|
|
24
|
+
openModals += 1;
|
|
25
|
+
const previous = document.body.style.overflow;
|
|
26
|
+
document.body.style.overflow = "hidden";
|
|
27
|
+
return () => {
|
|
28
|
+
openModals -= 1;
|
|
29
|
+
if (openModals === 0) document.body.style.overflow = previous;
|
|
30
|
+
};
|
|
31
|
+
}, [open]);
|
|
32
|
+
if (!open || !container) return null;
|
|
33
|
+
const handleKeyDown = (event) => {
|
|
34
|
+
if (event.key === "Escape" && closeOnEscape) {
|
|
35
|
+
event.stopPropagation();
|
|
36
|
+
onClose();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const handleOverlayClick = (event) => {
|
|
40
|
+
if (closeOnOverlayClick && event.target === event.currentTarget) onClose();
|
|
41
|
+
};
|
|
42
|
+
return createPortal(/* @__PURE__ */ jsx("div", {
|
|
43
|
+
role: "presentation",
|
|
44
|
+
className: BlockModal_module_default.overlay,
|
|
45
|
+
onMouseDown: handleOverlayClick,
|
|
46
|
+
onKeyDown: handleKeyDown,
|
|
47
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
48
|
+
ref: mergeRefs(dialogRef, ref),
|
|
49
|
+
role,
|
|
50
|
+
"aria-modal": "true",
|
|
51
|
+
"aria-labelledby": titleId,
|
|
52
|
+
"aria-describedby": description ? descriptionId : void 0,
|
|
53
|
+
tabIndex: -1,
|
|
54
|
+
"data-size": size,
|
|
55
|
+
className: cx(BlockModal_module_default.dialog, className),
|
|
56
|
+
...rest,
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ jsxs("div", {
|
|
59
|
+
className: BlockModal_module_default.header,
|
|
60
|
+
children: [/* @__PURE__ */ jsx("h2", {
|
|
61
|
+
id: titleId,
|
|
62
|
+
className: BlockModal_module_default.title,
|
|
63
|
+
children: title
|
|
64
|
+
}), hideCloseButton ? null : /* @__PURE__ */ jsx("button", {
|
|
65
|
+
type: "button",
|
|
66
|
+
className: BlockModal_module_default.close,
|
|
67
|
+
"aria-label": "Close",
|
|
68
|
+
onClick: onClose,
|
|
69
|
+
children: /* @__PURE__ */ jsx(CloseIcon, { size: 16 })
|
|
70
|
+
})]
|
|
71
|
+
}),
|
|
72
|
+
/* @__PURE__ */ jsxs("div", {
|
|
73
|
+
className: BlockModal_module_default.body,
|
|
74
|
+
children: [
|
|
75
|
+
icon ? /* @__PURE__ */ jsx("div", {
|
|
76
|
+
className: BlockModal_module_default.icon,
|
|
77
|
+
"aria-hidden": "true",
|
|
78
|
+
children: icon
|
|
79
|
+
}) : null,
|
|
80
|
+
description ? /* @__PURE__ */ jsx("div", {
|
|
81
|
+
id: descriptionId,
|
|
82
|
+
className: BlockModal_module_default.description,
|
|
83
|
+
children: description
|
|
84
|
+
}) : null,
|
|
85
|
+
children
|
|
86
|
+
]
|
|
87
|
+
}),
|
|
88
|
+
footer ? /* @__PURE__ */ jsx("div", {
|
|
89
|
+
className: BlockModal_module_default.footer,
|
|
90
|
+
children: footer
|
|
91
|
+
}) : null
|
|
92
|
+
]
|
|
93
|
+
})
|
|
94
|
+
}), container);
|
|
95
|
+
});
|
|
96
|
+
//#endregion
|
|
97
|
+
export { BlockModal };
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=BlockModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockModal.js","names":["styles"],"sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"sourcesContent":["import { CloseIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useEffect, useId, useRef, type KeyboardEvent, type MouseEvent } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFocusTrap } from \"../../../hooks/useFocusTrap\";\nimport { usePortalContainer } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { mergeRefs } from \"../../../utils/refs\";\nimport styles from \"./BlockModal.module.css\";\nimport type { BlockModalProps } from \"./BlockModal.types\";\n\nlet openModals = 0;\n\n/**\n * Accessible modal dialog: focus trap, `Escape` to close, overlay, focus\n * restoration and `aria-modal` dialog semantics (PRD §45).\n */\nexport const BlockModal = forwardRef<HTMLDivElement, BlockModalProps>(function BlockModal(\n {\n open,\n onClose,\n title,\n description,\n children,\n footer,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEscape = true,\n hideCloseButton = false,\n initialFocusRef,\n role = \"dialog\",\n icon,\n className,\n ...rest\n },\n ref,\n) {\n const container = usePortalContainer();\n const dialogRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n useFocusTrap(dialogRef, open && container !== null, { initialFocus: initialFocusRef });\n\n useEffect(() => {\n if (!open) return undefined;\n openModals += 1;\n const previous = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n openModals -= 1;\n if (openModals === 0) document.body.style.overflow = previous;\n };\n }, [open]);\n\n if (!open || !container) return null;\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\" && closeOnEscape) {\n event.stopPropagation();\n onClose();\n }\n };\n\n const handleOverlayClick = (event: MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && event.target === event.currentTarget) onClose();\n };\n\n return createPortal(\n <div\n role=\"presentation\"\n className={styles.overlay}\n onMouseDown={handleOverlayClick}\n onKeyDown={handleKeyDown}\n >\n <div\n ref={mergeRefs(dialogRef, ref)}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n tabIndex={-1}\n data-size={size}\n className={cx(styles.dialog, className)}\n {...rest}\n >\n <div className={styles.header}>\n <h2 id={titleId} className={styles.title}>\n {title}\n </h2>\n {hideCloseButton ? null : (\n <button type=\"button\" className={styles.close} aria-label=\"Close\" onClick={onClose}>\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n <div className={styles.body}>\n {icon ? (\n <div className={styles.icon} aria-hidden=\"true\">\n {icon}\n </div>\n ) : null}\n {description ? (\n <div id={descriptionId} className={styles.description}>\n {description}\n </div>\n ) : null}\n {children}\n </div>\n {footer ? <div className={styles.footer}>{footer}</div> : null}\n </div>\n </div>,\n container,\n );\n});\n"],"mappings":";;;;;;;;;;AAUA,IAAI,aAAa;;;;;AAMjB,IAAa,aAAa,WAA4C,SAAS,WAC7E,EACE,MACA,SACA,OACA,aACA,UACA,QACA,OAAO,MACP,sBAAsB,MACtB,gBAAgB,MAChB,kBAAkB,OAClB,iBACA,OAAO,UACP,MACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,mBAAmB;CACrC,MAAM,YAAY,OAAuB,IAAI;CAC7C,MAAM,UAAU,MAAM;CACtB,MAAM,gBAAgB,MAAM;CAE5B,aAAa,WAAW,QAAQ,cAAc,MAAM,EAAE,cAAc,gBAAgB,CAAC;CAErF,gBAAgB;EACd,IAAI,CAAC,MAAM,OAAO,KAAA;EAClB,cAAc;EACd,MAAM,WAAW,SAAS,KAAK,MAAM;EACrC,SAAS,KAAK,MAAM,WAAW;EAC/B,aAAa;GACX,cAAc;GACd,IAAI,eAAe,GAAG,SAAS,KAAK,MAAM,WAAW;EACvD;CACF,GAAG,CAAC,IAAI,CAAC;CAET,IAAI,CAAC,QAAQ,CAAC,WAAW,OAAO;CAEhC,MAAM,iBAAiB,UAAyC;EAC9D,IAAI,MAAM,QAAQ,YAAY,eAAe;GAC3C,MAAM,gBAAgB;GACtB,QAAQ;EACV;CACF;CAEA,MAAM,sBAAsB,UAAsC;EAChE,IAAI,uBAAuB,MAAM,WAAW,MAAM,eAAe,QAAQ;CAC3E;CAEA,OAAO,aACL,oBAAC,OAAD;EACE,MAAK;EACL,WAAWA,0BAAO;EAClB,aAAa;EACb,WAAW;EAEX,UAAA,qBAAC,OAAD;GACE,KAAK,UAAU,WAAW,GAAG;GACvB;GACN,cAAW;GACX,mBAAiB;GACjB,oBAAkB,cAAc,gBAAgB,KAAA;GAChD,UAAU;GACV,aAAW;GACX,WAAW,GAAGA,0BAAO,QAAQ,SAAS;GACtC,GAAI;GATN,UAAA;IAWE,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA,CACE,oBAAC,MAAD;MAAI,IAAI;MAAS,WAAWA,0BAAO;MAChC,UAAA;KACC,CAAA,GACH,kBAAkB,OACjB,oBAAC,UAAD;MAAQ,MAAK;MAAS,WAAWA,0BAAO;MAAO,cAAW;MAAQ,SAAS;MACzE,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;KAChB,CAAA,CAEP;;IACL,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA;MACG,OACC,oBAAC,OAAD;OAAK,WAAWA,0BAAO;OAAM,eAAY;OACtC,UAAA;MACE,CAAA,IACH;MACH,cACC,oBAAC,OAAD;OAAK,IAAI;OAAe,WAAWA,0BAAO;OACvC,UAAA;MACE,CAAA,IACH;MACH;KACE;;IACJ,SAAS,oBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAS,UAAA;IAAY,CAAA,IAAI;GACvD;;CACF,CAAA,GACL,SACF;AACF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/components/feedback/Modal/BlockModal.module.css
|
|
2
|
+
var overlay = "block-overlay-gc2QW";
|
|
3
|
+
var dialog = "block-dialog-7SKmk";
|
|
4
|
+
var header = "block-header-HlGMs";
|
|
5
|
+
var title = "block-title-eIDe8";
|
|
6
|
+
var close = "block-close-0MeAp";
|
|
7
|
+
var body = "block-body-qmg6F";
|
|
8
|
+
var icon = "block-icon-OPc0v";
|
|
9
|
+
var description = "block-description-6dpWS";
|
|
10
|
+
var footer = "block-footer-6S8Yw";
|
|
11
|
+
var BlockModal_module_default = {
|
|
12
|
+
overlay,
|
|
13
|
+
"fade-in": "block-fade-in-q6dUU",
|
|
14
|
+
dialog,
|
|
15
|
+
"pop-in": "block-pop-in-8K4B0",
|
|
16
|
+
header,
|
|
17
|
+
title,
|
|
18
|
+
close,
|
|
19
|
+
body,
|
|
20
|
+
icon,
|
|
21
|
+
description,
|
|
22
|
+
footer
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { body, close, BlockModal_module_default as default, description, dialog, footer, header, icon, overlay, title };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=BlockModal.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockModal.module.js","names":[],"sources":["../../../../src/components/feedback/Modal/BlockModal.module.css"],"sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: var(--block-z-modal);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--block-space-4);\n background-color: var(--block-overlay);\n animation: fade-in var(--block-duration-fast) steps(3, end);\n}\n\n.dialog {\n --dialog-width: 480px;\n\n display: flex;\n flex-direction: column;\n width: min(var(--dialog-width), 100%);\n max-height: calc(100dvh - 2 * var(--block-space-4));\n color: var(--block-text);\n background-color: var(--block-surface);\n background-image:\n linear-gradient(\n color-mix(in srgb, var(--block-surface) 88%, transparent),\n color-mix(in srgb, var(--block-surface) 88%, transparent)\n ),\n var(--block-texture);\n background-size:\n auto,\n 64px 64px;\n border: var(--block-border-width) solid var(--block-border);\n box-shadow:\n var(--block-shadow-bevel),\n 8px 8px 0 color-mix(in srgb, var(--block-black) 50%, transparent);\n outline: none;\n animation: pop-in var(--block-duration-normal) steps(4, end);\n}\n\n.dialog[data-size=\"sm\"] {\n --dialog-width: 380px;\n}\n\n.dialog[data-size=\"lg\"] {\n --dialog-width: 720px;\n}\n\n.header {\n display: flex;\n align-items: center;\n gap: var(--block-space-2);\n margin: 3px 3px 0;\n padding: var(--block-space-2) var(--block-space-3);\n background-color: var(--block-surface-header);\n border-bottom: var(--block-border-width-thin) solid var(--block-border);\n}\n\n.title {\n flex: 1;\n margin: 0;\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-lg);\n font-weight: var(--block-font-weight-bold);\n letter-spacing: var(--block-letter-spacing-wide);\n text-align: center;\n text-transform: uppercase;\n text-shadow: var(--block-shadow-text);\n}\n\n.close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n color: var(--block-text);\n background-color: var(--block-slot);\n border: var(--block-border-width-thin) solid var(--block-border);\n box-shadow: var(--block-shadow-inset);\n cursor: pointer;\n}\n\n.close:hover {\n background-color: var(--block-redstone);\n}\n\n.close:focus-visible {\n outline: 3px solid var(--block-focus);\n outline-offset: 2px;\n}\n\n.body {\n flex: 1;\n overflow: auto;\n padding: var(--block-space-4);\n text-align: center;\n}\n\n.icon {\n display: flex;\n justify-content: center;\n margin-bottom: var(--block-space-3);\n}\n\n.description {\n margin-bottom: var(--block-space-2);\n color: var(--block-text);\n line-height: var(--block-line-height-relaxed);\n}\n\n.footer {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--block-space-3);\n padding: 0 var(--block-space-4) var(--block-space-4);\n}\n\n.footer > * {\n flex: 1 1 140px;\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n}\n\n@keyframes pop-in {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .overlay {\n align-items: flex-end;\n padding: var(--block-space-2);\n }\n\n .dialog {\n width: 100%;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode, RefObject } from "react";
|
|
2
|
+
export interface BlockModalProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
3
|
+
open: boolean;
|
|
4
|
+
/** Called on Escape, overlay click or the close button. */
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/** Short text under the title, linked via `aria-describedby`. */
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
/** Action row (buttons). */
|
|
11
|
+
footer?: ReactNode;
|
|
12
|
+
/** @default "md" */
|
|
13
|
+
size?: "sm" | "md" | "lg";
|
|
14
|
+
/** @default true */
|
|
15
|
+
closeOnOverlayClick?: boolean;
|
|
16
|
+
/** @default true */
|
|
17
|
+
closeOnEscape?: boolean;
|
|
18
|
+
/** Hide the × button in the header. */
|
|
19
|
+
hideCloseButton?: boolean;
|
|
20
|
+
/** Element focused when the modal opens. Defaults to the first focusable element. */
|
|
21
|
+
initialFocusRef?: RefObject<HTMLElement | null>;
|
|
22
|
+
/** `alertdialog` for confirmations. @default "dialog" */
|
|
23
|
+
role?: "dialog" | "alertdialog";
|
|
24
|
+
/** Icon shown above the title. */
|
|
25
|
+
icon?: ReactNode;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=BlockModal.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockModal.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Modal/BlockModal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,IAAI,EAAE,OAAO,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,iEAAiE;IACjE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,oBAAoB;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,yDAAyD;IACzD,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAChC,kCAAkC;IAClC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BlockProgressProps } from "./BlockProgress.types";
|
|
2
|
+
/** Segmented pixel progress bar. Omit `value` for an indeterminate bar. */
|
|
3
|
+
export declare const BlockProgress: import("react").ForwardRefExoticComponent<BlockProgressProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
//# sourceMappingURL=BlockProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Progress/BlockProgress.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIhE,2EAA2E;AAC3E,eAAO,MAAM,aAAa,+GA0DxB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { ratio } from "../../../utils/number.js";
|
|
3
|
+
import BlockProgress_module_default from "./BlockProgress.module.js";
|
|
4
|
+
import { forwardRef, useId } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/feedback/Progress/BlockProgress.tsx
|
|
7
|
+
var percentFormat = (value, max) => `${Math.round(ratio(value, max) * 100)}%`;
|
|
8
|
+
/** Segmented pixel progress bar. Omit `value` for an indeterminate bar. */
|
|
9
|
+
var BlockProgress = forwardRef(function BlockProgress({ value, max = 100, variant = "grass", label, showValue = false, size = "md", formatValue = percentFormat, className, "aria-label": ariaLabel, ...rest }, ref) {
|
|
10
|
+
const labelId = useId();
|
|
11
|
+
const indeterminate = value === void 0;
|
|
12
|
+
const current = indeterminate ? 0 : Math.max(0, Math.min(value, max));
|
|
13
|
+
const text = indeterminate ? void 0 : formatValue(current, max);
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
className: cx(BlockProgress_module_default.root, className),
|
|
16
|
+
children: [label || showValue && text ? /* @__PURE__ */ jsxs("div", {
|
|
17
|
+
className: BlockProgress_module_default.header,
|
|
18
|
+
children: [label ? /* @__PURE__ */ jsx("span", {
|
|
19
|
+
id: labelId,
|
|
20
|
+
className: BlockProgress_module_default.label,
|
|
21
|
+
children: label
|
|
22
|
+
}) : null, showValue && text ? /* @__PURE__ */ jsx("span", {
|
|
23
|
+
className: BlockProgress_module_default.value,
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
children: text
|
|
26
|
+
}) : null]
|
|
27
|
+
}) : null, /* @__PURE__ */ jsxs("div", {
|
|
28
|
+
ref,
|
|
29
|
+
role: "progressbar",
|
|
30
|
+
"aria-labelledby": label ? labelId : void 0,
|
|
31
|
+
"aria-label": label ? void 0 : ariaLabel ?? "Progress",
|
|
32
|
+
"aria-valuemin": indeterminate ? void 0 : 0,
|
|
33
|
+
"aria-valuemax": indeterminate ? void 0 : max,
|
|
34
|
+
"aria-valuenow": indeterminate ? void 0 : current,
|
|
35
|
+
"aria-valuetext": text,
|
|
36
|
+
"aria-busy": indeterminate || void 0,
|
|
37
|
+
"data-material": variant,
|
|
38
|
+
"data-size": size,
|
|
39
|
+
"data-indeterminate": indeterminate || void 0,
|
|
40
|
+
className: BlockProgress_module_default.track,
|
|
41
|
+
style: { "--block-progress": `${ratio(current, max) * 100}%` },
|
|
42
|
+
...rest,
|
|
43
|
+
children: [/* @__PURE__ */ jsx("span", { className: BlockProgress_module_default.fill }), /* @__PURE__ */ jsx("span", { className: BlockProgress_module_default.segments })]
|
|
44
|
+
})]
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
export { BlockProgress };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=BlockProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProgress.js","names":["styles"],"sources":["../../../../src/components/feedback/Progress/BlockProgress.tsx"],"sourcesContent":["import { forwardRef, useId, type CSSProperties } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { ratio } from \"../../../utils/number\";\nimport styles from \"./BlockProgress.module.css\";\nimport type { BlockProgressProps } from \"./BlockProgress.types\";\n\nconst percentFormat = (value: number, max: number) => `${Math.round(ratio(value, max) * 100)}%`;\n\n/** Segmented pixel progress bar. Omit `value` for an indeterminate bar. */\nexport const BlockProgress = forwardRef<HTMLDivElement, BlockProgressProps>(function BlockProgress(\n {\n value,\n max = 100,\n variant = \"grass\",\n label,\n showValue = false,\n size = \"md\",\n formatValue = percentFormat,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n },\n ref,\n) {\n const labelId = useId();\n const indeterminate = value === undefined;\n const current = indeterminate ? 0 : Math.max(0, Math.min(value, max));\n const text = indeterminate ? undefined : formatValue(current, max);\n\n return (\n <div className={cx(styles.root, className)}>\n {label || (showValue && text) ? (\n <div className={styles.header}>\n {label ? (\n <span id={labelId} className={styles.label}>\n {label}\n </span>\n ) : null}\n {showValue && text ? (\n <span className={styles.value} aria-hidden=\"true\">\n {text}\n </span>\n ) : null}\n </div>\n ) : null}\n <div\n ref={ref}\n role=\"progressbar\"\n aria-labelledby={label ? labelId : undefined}\n aria-label={label ? undefined : (ariaLabel ?? \"Progress\")}\n aria-valuemin={indeterminate ? undefined : 0}\n aria-valuemax={indeterminate ? undefined : max}\n aria-valuenow={indeterminate ? undefined : current}\n aria-valuetext={text}\n aria-busy={indeterminate || undefined}\n data-material={variant}\n data-size={size}\n data-indeterminate={indeterminate || undefined}\n className={styles.track}\n style={{ \"--block-progress\": `${ratio(current, max) * 100}%` } as CSSProperties}\n {...rest}\n >\n <span className={styles.fill} />\n <span className={styles.segments} />\n </div>\n </div>\n );\n});\n"],"mappings":";;;;;;AAMA,IAAM,iBAAiB,OAAe,QAAgB,GAAG,KAAK,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE;;AAG7F,IAAa,gBAAgB,WAA+C,SAAS,cACnF,EACE,OACA,MAAM,KACN,UAAU,SACV,OACA,YAAY,OACZ,OAAO,MACP,cAAc,eACd,WACA,cAAc,WACd,GAAG,QAEL,KACA;CACA,MAAM,UAAU,MAAM;CACtB,MAAM,gBAAgB,UAAU,KAAA;CAChC,MAAM,UAAU,gBAAgB,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,GAAG,CAAC;CACpE,MAAM,OAAO,gBAAgB,KAAA,IAAY,YAAY,SAAS,GAAG;CAEjE,OACE,qBAAC,OAAD;EAAK,WAAW,GAAGA,6BAAO,MAAM,SAAS;EAAzC,UAAA,CACG,SAAU,aAAa,OACtB,qBAAC,OAAD;GAAK,WAAWA,6BAAO;GAAvB,UAAA,CACG,QACC,oBAAC,QAAD;IAAM,IAAI;IAAS,WAAWA,6BAAO;IAClC,UAAA;GACG,CAAA,IACJ,MACH,aAAa,OACZ,oBAAC,QAAD;IAAM,WAAWA,6BAAO;IAAO,eAAY;IACxC,UAAA;GACG,CAAA,IACJ,IACD;EACH,CAAA,IAAA,MACJ,qBAAC,OAAD;GACO;GACL,MAAK;GACL,mBAAiB,QAAQ,UAAU,KAAA;GACnC,cAAY,QAAQ,KAAA,IAAa,aAAa;GAC9C,iBAAe,gBAAgB,KAAA,IAAY;GAC3C,iBAAe,gBAAgB,KAAA,IAAY;GAC3C,iBAAe,gBAAgB,KAAA,IAAY;GAC3C,kBAAgB;GAChB,aAAW,iBAAiB,KAAA;GAC5B,iBAAe;GACf,aAAW;GACX,sBAAoB,iBAAiB,KAAA;GACrC,WAAWA,6BAAO;GAClB,OAAO,EAAE,oBAAoB,GAAG,MAAM,SAAS,GAAG,IAAI,IAAI,GAAG;GAC7D,GAAI;GAfN,UAAA,CAiBE,oBAAC,QAAD,EAAM,WAAWA,6BAAO,KAAO,CAAA,GAC/B,oBAAC,QAAD,EAAM,WAAWA,6BAAO,SAAW,CAAA,CAChC;EACF,CAAA,CAAA;;AAET,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/components/feedback/Progress/BlockProgress.module.css
|
|
2
|
+
var root = "block-root-rTdSF";
|
|
3
|
+
var header = "block-header-2IURR";
|
|
4
|
+
var label = "block-label-W1HZY";
|
|
5
|
+
var value = "block-value-A8pmI";
|
|
6
|
+
var track = "block-track-DZH38";
|
|
7
|
+
var fill = "block-fill-5cIAT";
|
|
8
|
+
var segments = "block-segments-cL-Dr";
|
|
9
|
+
var indeterminate = "block-indeterminate-Uy5MO";
|
|
10
|
+
var BlockProgress_module_default = {
|
|
11
|
+
root,
|
|
12
|
+
header,
|
|
13
|
+
label,
|
|
14
|
+
value,
|
|
15
|
+
track,
|
|
16
|
+
fill,
|
|
17
|
+
segments,
|
|
18
|
+
indeterminate
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { BlockProgress_module_default as default, fill, header, indeterminate, label, root, segments, track, value };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=BlockProgress.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProgress.module.js","names":[],"sources":["../../../../src/components/feedback/Progress/BlockProgress.module.css"],"sourcesContent":[".root {\n display: flex;\n flex-direction: column;\n gap: var(--block-space-1);\n width: 100%;\n min-width: 0;\n}\n\n.header {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--block-space-2);\n}\n\n.label {\n font-size: var(--block-font-size-sm);\n color: var(--block-text);\n}\n\n.value {\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-sm);\n color: var(--block-text-muted);\n}\n\n.track {\n --progress-h: 16px;\n\n position: relative;\n width: 100%;\n height: var(--progress-h);\n background-color: var(--block-slot);\n border: var(--block-border-width-thin) solid var(--block-border);\n box-shadow: inset 0 3px 0 var(--block-shadow-bevel-dark);\n overflow: hidden;\n}\n\n.track[data-size=\"sm\"] {\n --progress-h: 10px;\n}\n\n.track[data-size=\"lg\"] {\n --progress-h: 24px;\n}\n\n.fill {\n position: absolute;\n inset: 0 auto 0 0;\n width: var(--block-progress);\n background-color: var(--block-mat);\n box-shadow:\n inset 0 3px 0 var(--block-mat-light),\n inset 0 -3px 0 var(--block-mat-dark);\n transition: width var(--block-duration-normal) steps(4, end);\n}\n\n.segments {\n position: absolute;\n inset: 0;\n background-image: repeating-linear-gradient(\n to right,\n transparent 0 14px,\n color-mix(in srgb, var(--block-black) 45%, transparent) 14px 16px\n );\n pointer-events: none;\n}\n\n.track[data-indeterminate] .fill {\n width: 30%;\n animation: indeterminate 1200ms steps(10, end) infinite;\n}\n\n@keyframes indeterminate {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(340%);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
export declare const progressVariants: readonly ["grass", "water", "diamond", "emerald", "gold", "redstone"];
|
|
3
|
+
export type BlockProgressVariant = (typeof progressVariants)[number];
|
|
4
|
+
export interface BlockProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
/** Current value. Omit for an indeterminate bar. */
|
|
6
|
+
value?: number;
|
|
7
|
+
/** @default 100 */
|
|
8
|
+
max?: number;
|
|
9
|
+
/** @default "grass" */
|
|
10
|
+
variant?: BlockProgressVariant;
|
|
11
|
+
/** Visible label above the bar (also the accessible name). */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Show the formatted value next to the label. */
|
|
14
|
+
showValue?: boolean;
|
|
15
|
+
/** @default "md" */
|
|
16
|
+
size?: "sm" | "md" | "lg";
|
|
17
|
+
/** Formats the visible value and `aria-valuetext`. Defaults to a percentage. */
|
|
18
|
+
formatValue?: (value: number, max: number) => string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=BlockProgress.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProgress.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Progress/BlockProgress.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,eAAO,MAAM,gBAAgB,uEAOnB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,gFAAgF;IAChF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACtD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/feedback/Progress/BlockProgress.types.ts
|
|
2
|
+
var progressVariants = [
|
|
3
|
+
"grass",
|
|
4
|
+
"water",
|
|
5
|
+
"diamond",
|
|
6
|
+
"emerald",
|
|
7
|
+
"gold",
|
|
8
|
+
"redstone"
|
|
9
|
+
];
|
|
10
|
+
//#endregion
|
|
11
|
+
export { progressVariants };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=BlockProgress.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProgress.types.js","names":[],"sources":["../../../../src/components/feedback/Progress/BlockProgress.types.ts"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\n\nexport const progressVariants = [\n \"grass\",\n \"water\",\n \"diamond\",\n \"emerald\",\n \"gold\",\n \"redstone\",\n] as const;\n\nexport type BlockProgressVariant = (typeof progressVariants)[number];\n\nexport interface BlockProgressProps extends HTMLAttributes<HTMLDivElement> {\n /** Current value. Omit for an indeterminate bar. */\n value?: number;\n /** @default 100 */\n max?: number;\n /** @default \"grass\" */\n variant?: BlockProgressVariant;\n /** Visible label above the bar (also the accessible name). */\n label?: string;\n /** Show the formatted value next to the label. */\n showValue?: boolean;\n /** @default \"md\" */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Formats the visible value and `aria-valuetext`. Defaults to a percentage. */\n formatValue?: (value: number, max: number) => string;\n}\n"],"mappings":";AAEA,IAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Progress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BlockToasterProps } from "./Toast.types";
|
|
2
|
+
/**
|
|
3
|
+
* Renders the stack of toasts created with `toast.*()` inside an ARIA live
|
|
4
|
+
* region. Hover or focus pauses auto-close; `Escape` dismisses the focused toast.
|
|
5
|
+
*/
|
|
6
|
+
export declare function BlockToaster({ limit, label, className, }: BlockToasterProps): import("react").ReactPortal | null;
|
|
7
|
+
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAe,MAAM,eAAe,CAAC;AAyDpE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAA2B,EAC3B,KAAuB,EACvB,SAAS,GACV,EAAE,iBAAiB,sCAgBnB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { usePortalContainer } from "../../../provider/context.js";
|
|
3
|
+
import { BlockAlert } from "../Alert/BlockAlert.js";
|
|
4
|
+
import { toast } from "./store.js";
|
|
5
|
+
import Toast_module_default from "./Toast.module.js";
|
|
6
|
+
import { useToasts } from "./useToasts.js";
|
|
7
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
8
|
+
import { createPortal } from "react-dom";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/feedback/Toast/Toast.tsx
|
|
11
|
+
function ToastItem({ record }) {
|
|
12
|
+
const [paused, setPaused] = useState(false);
|
|
13
|
+
const remaining = useRef(record.duration);
|
|
14
|
+
const startedAt = useRef(0);
|
|
15
|
+
const persistent = !Number.isFinite(record.duration) || record.duration <= 0;
|
|
16
|
+
const close = useCallback(() => toast.dismiss(record.id), [record.id]);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
remaining.current = record.duration;
|
|
19
|
+
}, [record.duration]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (persistent || paused) return void 0;
|
|
22
|
+
startedAt.current = Date.now();
|
|
23
|
+
const timer = window.setTimeout(close, remaining.current);
|
|
24
|
+
return () => {
|
|
25
|
+
window.clearTimeout(timer);
|
|
26
|
+
remaining.current -= Date.now() - startedAt.current;
|
|
27
|
+
};
|
|
28
|
+
}, [
|
|
29
|
+
persistent,
|
|
30
|
+
paused,
|
|
31
|
+
close
|
|
32
|
+
]);
|
|
33
|
+
const onKeyDown = (event) => {
|
|
34
|
+
if (event.key === "Escape") {
|
|
35
|
+
event.stopPropagation();
|
|
36
|
+
close();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return /* @__PURE__ */ jsx("li", {
|
|
40
|
+
className: Toast_module_default.item,
|
|
41
|
+
"data-toast-id": record.id,
|
|
42
|
+
onMouseEnter: () => setPaused(true),
|
|
43
|
+
onMouseLeave: () => setPaused(false),
|
|
44
|
+
onFocus: () => setPaused(true),
|
|
45
|
+
onBlur: () => setPaused(false),
|
|
46
|
+
onKeyDown,
|
|
47
|
+
children: /* @__PURE__ */ jsx(BlockAlert, {
|
|
48
|
+
variant: record.variant,
|
|
49
|
+
title: record.title,
|
|
50
|
+
action: record.action,
|
|
51
|
+
onClose: close,
|
|
52
|
+
closeLabel: "Dismiss notification",
|
|
53
|
+
className: Toast_module_default.toast,
|
|
54
|
+
children: record.message
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Renders the stack of toasts created with `toast.*()` inside an ARIA live
|
|
60
|
+
* region. Hover or focus pauses auto-close; `Escape` dismisses the focused toast.
|
|
61
|
+
*/
|
|
62
|
+
function BlockToaster({ limit = 5, label = "Notifications", className }) {
|
|
63
|
+
const records = useToasts();
|
|
64
|
+
const container = usePortalContainer();
|
|
65
|
+
const visible = records.slice(-limit);
|
|
66
|
+
const region = /* @__PURE__ */ jsx("section", {
|
|
67
|
+
"aria-label": label,
|
|
68
|
+
className: cx(Toast_module_default.region, className),
|
|
69
|
+
children: /* @__PURE__ */ jsx("ol", {
|
|
70
|
+
className: Toast_module_default.list,
|
|
71
|
+
"aria-live": "polite",
|
|
72
|
+
"aria-relevant": "additions text",
|
|
73
|
+
children: visible.map((record) => /* @__PURE__ */ jsx(ToastItem, { record }, record.id))
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
return container ? createPortal(region, container) : null;
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { BlockToaster };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=Toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.js","names":["styles"],"sources":["../../../../src/components/feedback/Toast/Toast.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type KeyboardEvent } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { usePortalContainer } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { BlockAlert } from \"../Alert/BlockAlert\";\nimport { DEFAULT_TOAST_LIMIT, toast } from \"./store\";\nimport styles from \"./Toast.module.css\";\nimport type { BlockToasterProps, ToastRecord } from \"./Toast.types\";\nimport { useToasts } from \"./useToasts\";\n\nfunction ToastItem({ record }: { record: ToastRecord }) {\n const [paused, setPaused] = useState(false);\n const remaining = useRef(record.duration);\n const startedAt = useRef(0);\n const persistent = !Number.isFinite(record.duration) || record.duration <= 0;\n const close = useCallback(() => toast.dismiss(record.id), [record.id]);\n\n useEffect(() => {\n remaining.current = record.duration;\n }, [record.duration]);\n\n useEffect(() => {\n if (persistent || paused) return undefined;\n startedAt.current = Date.now();\n const timer = window.setTimeout(close, remaining.current);\n return () => {\n window.clearTimeout(timer);\n remaining.current -= Date.now() - startedAt.current;\n };\n }, [persistent, paused, close]);\n\n const onKeyDown = (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n close();\n }\n };\n\n return (\n // Pausing auto-dismiss on hover/focus is standard toast UX\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <li\n className={styles.item}\n data-toast-id={record.id}\n onMouseEnter={() => setPaused(true)}\n onMouseLeave={() => setPaused(false)}\n onFocus={() => setPaused(true)}\n onBlur={() => setPaused(false)}\n onKeyDown={onKeyDown}\n >\n <BlockAlert\n variant={record.variant}\n title={record.title}\n action={record.action}\n onClose={close}\n closeLabel=\"Dismiss notification\"\n className={styles.toast}\n >\n {record.message}\n </BlockAlert>\n </li>\n );\n}\n\n/**\n * Renders the stack of toasts created with `toast.*()` inside an ARIA live\n * region. Hover or focus pauses auto-close; `Escape` dismisses the focused toast.\n */\nexport function BlockToaster({\n limit = DEFAULT_TOAST_LIMIT,\n label = \"Notifications\",\n className,\n}: BlockToasterProps) {\n const records = useToasts();\n const container = usePortalContainer();\n const visible = records.slice(-limit);\n\n const region = (\n <section aria-label={label} className={cx(styles.region, className)}>\n <ol className={styles.list} aria-live=\"polite\" aria-relevant=\"additions text\">\n {visible.map((record) => (\n <ToastItem key={record.id} record={record} />\n ))}\n </ol>\n </section>\n );\n\n return container ? createPortal(region, container) : null;\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAS,UAAU,EAAE,UAAmC;CACtD,MAAM,CAAC,QAAQ,aAAa,SAAS,KAAK;CAC1C,MAAM,YAAY,OAAO,OAAO,QAAQ;CACxC,MAAM,YAAY,OAAO,CAAC;CAC1B,MAAM,aAAa,CAAC,OAAO,SAAS,OAAO,QAAQ,KAAK,OAAO,YAAY;CAC3E,MAAM,QAAQ,kBAAkB,MAAM,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CAErE,gBAAgB;EACd,UAAU,UAAU,OAAO;CAC7B,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,gBAAgB;EACd,IAAI,cAAc,QAAQ,OAAO,KAAA;EACjC,UAAU,UAAU,KAAK,IAAI;EAC7B,MAAM,QAAQ,OAAO,WAAW,OAAO,UAAU,OAAO;EACxD,aAAa;GACX,OAAO,aAAa,KAAK;GACzB,UAAU,WAAW,KAAK,IAAI,IAAI,UAAU;EAC9C;CACF,GAAG;EAAC;EAAY;EAAQ;CAAK,CAAC;CAE9B,MAAM,aAAa,UAAwC;EACzD,IAAI,MAAM,QAAQ,UAAU;GAC1B,MAAM,gBAAgB;GACtB,MAAM;EACR;CACF;CAEA,OAGE,oBAAC,MAAD;EACE,WAAWA,qBAAO;EAClB,iBAAe,OAAO;EACtB,oBAAoB,UAAU,IAAI;EAClC,oBAAoB,UAAU,KAAK;EACnC,eAAe,UAAU,IAAI;EAC7B,cAAc,UAAU,KAAK;EAClB;EAEX,UAAA,oBAAC,YAAD;GACE,SAAS,OAAO;GAChB,OAAO,OAAO;GACd,QAAQ,OAAO;GACf,SAAS;GACT,YAAW;GACX,WAAWA,qBAAO;GAEjB,UAAA,OAAO;EACE,CAAA;CACV,CAAA;AAER;;;;;AAMA,SAAgB,aAAa,EAC3B,QAAA,GACA,QAAQ,iBACR,aACoB;CACpB,MAAM,UAAU,UAAU;CAC1B,MAAM,YAAY,mBAAmB;CACrC,MAAM,UAAU,QAAQ,MAAM,CAAC,KAAK;CAEpC,MAAM,SACJ,oBAAC,WAAD;EAAS,cAAY;EAAO,WAAW,GAAGA,qBAAO,QAAQ,SAAS;EAChE,UAAA,oBAAC,MAAD;GAAI,WAAWA,qBAAO;GAAM,aAAU;GAAS,iBAAc;GAC1D,UAAA,QAAQ,KAAK,WACZ,oBAAC,WAAD,EAAmC,OAAS,GAA5B,OAAO,EAAqB,CAC7C;EACC,CAAA;CACG,CAAA;CAGX,OAAO,YAAY,aAAa,QAAQ,SAAS,IAAI;AACvD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/components/feedback/Toast/Toast.module.css
|
|
2
|
+
var region = "block-region-Xxd1D";
|
|
3
|
+
var list = "block-list-el0uX";
|
|
4
|
+
var item = "block-item-TirgY";
|
|
5
|
+
var toast = "block-toast--IOyH";
|
|
6
|
+
var Toast_module_default = {
|
|
7
|
+
region,
|
|
8
|
+
list,
|
|
9
|
+
item,
|
|
10
|
+
"toast-in": "block-toast-in-3EfjG",
|
|
11
|
+
toast
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Toast_module_default as default, item, list, region, toast };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=Toast.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.module.js","names":[],"sources":["../../../../src/components/feedback/Toast/Toast.module.css"],"sourcesContent":[".region {\n position: fixed;\n right: var(--block-space-4);\n bottom: var(--block-space-4);\n z-index: var(--block-z-toast);\n width: min(380px, calc(100vw - 2 * var(--block-space-4)));\n pointer-events: none;\n}\n\n.list {\n display: flex;\n flex-direction: column;\n gap: var(--block-space-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.item {\n pointer-events: auto;\n animation: toast-in var(--block-duration-normal) steps(4, end);\n}\n\n.toast {\n box-shadow:\n inset 3px 3px 0 color-mix(in srgb, var(--block-mat-light) 30%, transparent),\n inset -3px -3px 0 var(--block-shadow-bevel-dark),\n var(--block-shadow-drop);\n}\n\n@keyframes toast-in {\n from {\n transform: translateX(24px);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n\n@media (max-width: 767.98px) {\n .region {\n left: var(--block-space-4);\n right: var(--block-space-4);\n bottom: calc(var(--block-space-4) + 72px);\n width: auto;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { AlertVariant } from "../Alert/BlockAlert.types";
|
|
3
|
+
export type ToastVariant = AlertVariant;
|
|
4
|
+
export interface ToastOptions {
|
|
5
|
+
/** Stable id — showing a toast with an existing id replaces it. */
|
|
6
|
+
id?: string;
|
|
7
|
+
/** Bold first line. */
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
/** Auto-close delay in ms. `0` or `Infinity` keeps it open. @default 4000 */
|
|
10
|
+
duration?: number;
|
|
11
|
+
/** Optional action element (e.g. an "Undo" button). */
|
|
12
|
+
action?: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export interface ToastRecord {
|
|
15
|
+
id: string;
|
|
16
|
+
variant: ToastVariant;
|
|
17
|
+
message: ReactNode;
|
|
18
|
+
title?: ReactNode;
|
|
19
|
+
duration: number;
|
|
20
|
+
action?: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export interface BlockToasterProps {
|
|
23
|
+
/** Maximum toasts kept on screen; older ones are dropped. @default 5 */
|
|
24
|
+
limit?: number;
|
|
25
|
+
/** Accessible name of the notification region. @default "Notifications" */
|
|
26
|
+
label?: string;
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Toast.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { BlockToaster } from "./Toast";
|
|
2
|
+
export { useToasts } from "./useToasts";
|
|
3
|
+
export { toast, DEFAULT_TOAST_DURATION } from "./store";
|
|
4
|
+
export type { ToastApi } from "./store";
|
|
5
|
+
export type { BlockToasterProps, ToastOptions, ToastRecord, ToastVariant } from "./Toast.types";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ToastOptions, ToastRecord } from "./Toast.types";
|
|
3
|
+
export declare const DEFAULT_TOAST_DURATION = 4000;
|
|
4
|
+
export declare const DEFAULT_TOAST_LIMIT = 5;
|
|
5
|
+
type Listener = () => void;
|
|
6
|
+
export declare function subscribeToasts(listener: Listener): () => void;
|
|
7
|
+
export declare function getToasts(): ToastRecord[];
|
|
8
|
+
type ToastFn = (message: ReactNode, options?: ToastOptions) => string;
|
|
9
|
+
export interface ToastApi extends ToastFn {
|
|
10
|
+
success: ToastFn;
|
|
11
|
+
info: ToastFn;
|
|
12
|
+
warning: ToastFn;
|
|
13
|
+
error: ToastFn;
|
|
14
|
+
/** Dismiss one toast, or all when called without an id. */
|
|
15
|
+
dismiss: (id?: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Imperative toast API (PRD §44). Requires a `<BlockToaster />` — rendered
|
|
19
|
+
* automatically by `<BlockUIProvider>`.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* toast.success("World saved.");
|
|
23
|
+
* toast.error("Connection failed.", { duration: 0 });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare const toast: ToastApi;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=store.d.ts.map
|