@gcsa/console-react 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/dist/ConsoleHeader.d.ts +9 -0
- package/dist/ConsoleHeader.js +21 -0
- package/dist/ConsoleHeader.js.map +1 -0
- package/dist/ConsolePage.d.ts +8 -0
- package/dist/ConsolePage.js +14 -0
- package/dist/ConsolePage.js.map +1 -0
- package/dist/ConsoleShell.d.ts +23 -0
- package/dist/ConsoleShell.js +133 -0
- package/dist/ConsoleShell.js.map +1 -0
- package/dist/ConsoleSidebar.d.ts +11 -0
- package/dist/ConsoleSidebar.js +52 -0
- package/dist/ConsoleSidebar.js.map +1 -0
- package/dist/GcsaAlert.d.ts +9 -0
- package/dist/GcsaAlert.js +24 -0
- package/dist/GcsaAlert.js.map +1 -0
- package/dist/GcsaAutoComplete.d.ts +15 -0
- package/dist/GcsaAutoComplete.js +106 -0
- package/dist/GcsaAutoComplete.js.map +1 -0
- package/dist/GcsaAvatar.d.ts +8 -0
- package/dist/GcsaAvatar.js +13 -0
- package/dist/GcsaAvatar.js.map +1 -0
- package/dist/GcsaBadge.d.ts +7 -0
- package/dist/GcsaBadge.js +8 -0
- package/dist/GcsaBadge.js.map +1 -0
- package/dist/GcsaBrandMark.d.ts +4 -0
- package/dist/GcsaBrandMark.js +21 -0
- package/dist/GcsaBrandMark.js.map +1 -0
- package/dist/GcsaBreadcrumb.d.ts +9 -0
- package/dist/GcsaBreadcrumb.js +20 -0
- package/dist/GcsaBreadcrumb.js.map +1 -0
- package/dist/GcsaButton.d.ts +8 -0
- package/dist/GcsaButton.js +38 -0
- package/dist/GcsaButton.js.map +1 -0
- package/dist/GcsaCalendar.d.ts +11 -0
- package/dist/GcsaCalendar.js +35 -0
- package/dist/GcsaCalendar.js.map +1 -0
- package/dist/GcsaCard.d.ts +8 -0
- package/dist/GcsaCard.js +11 -0
- package/dist/GcsaCard.js.map +1 -0
- package/dist/GcsaCascader.d.ts +14 -0
- package/dist/GcsaCascader.js +91 -0
- package/dist/GcsaCascader.js.map +1 -0
- package/dist/GcsaChatPanel.d.ts +43 -0
- package/dist/GcsaChatPanel.js +180 -0
- package/dist/GcsaChatPanel.js.map +1 -0
- package/dist/GcsaCheckbox.d.ts +11 -0
- package/dist/GcsaCheckbox.js +45 -0
- package/dist/GcsaCheckbox.js.map +1 -0
- package/dist/GcsaCollapse.d.ts +16 -0
- package/dist/GcsaCollapse.js +20 -0
- package/dist/GcsaCollapse.js.map +1 -0
- package/dist/GcsaConfigProvider.d.ts +13 -0
- package/dist/GcsaConfigProvider.js +68 -0
- package/dist/GcsaConfigProvider.js.map +1 -0
- package/dist/GcsaDataTable.d.ts +119 -0
- package/dist/GcsaDataTable.js +508 -0
- package/dist/GcsaDataTable.js.map +1 -0
- package/dist/GcsaDatePicker.d.ts +16 -0
- package/dist/GcsaDatePicker.js +211 -0
- package/dist/GcsaDatePicker.js.map +1 -0
- package/dist/GcsaDateRangePicker.d.ts +17 -0
- package/dist/GcsaDateRangePicker.js +222 -0
- package/dist/GcsaDateRangePicker.js.map +1 -0
- package/dist/GcsaDateTimePicker.d.ts +13 -0
- package/dist/GcsaDateTimePicker.js +300 -0
- package/dist/GcsaDateTimePicker.js.map +1 -0
- package/dist/GcsaDescriptions.d.ts +9 -0
- package/dist/GcsaDescriptions.js +11 -0
- package/dist/GcsaDescriptions.js.map +1 -0
- package/dist/GcsaDivider.d.ts +4 -0
- package/dist/GcsaDivider.js +8 -0
- package/dist/GcsaDivider.js.map +1 -0
- package/dist/GcsaDrawer.d.ts +15 -0
- package/dist/GcsaDrawer.js +68 -0
- package/dist/GcsaDrawer.js.map +1 -0
- package/dist/GcsaDropdown.d.ts +20 -0
- package/dist/GcsaDropdown.js +46 -0
- package/dist/GcsaDropdown.js.map +1 -0
- package/dist/GcsaEmpty.d.ts +9 -0
- package/dist/GcsaEmpty.js +16 -0
- package/dist/GcsaEmpty.js.map +1 -0
- package/dist/GcsaField.d.ts +11 -0
- package/dist/GcsaField.js +26 -0
- package/dist/GcsaField.js.map +1 -0
- package/dist/GcsaForm.d.ts +13 -0
- package/dist/GcsaForm.js +60 -0
- package/dist/GcsaForm.js.map +1 -0
- package/dist/GcsaFormField.d.ts +16 -0
- package/dist/GcsaFormField.js +39 -0
- package/dist/GcsaFormField.js.map +1 -0
- package/dist/GcsaIcon.d.ts +7 -0
- package/dist/GcsaIcon.js +17 -0
- package/dist/GcsaIcon.js.map +1 -0
- package/dist/GcsaImagePreview.d.ts +8 -0
- package/dist/GcsaImagePreview.js +18 -0
- package/dist/GcsaImagePreview.js.map +1 -0
- package/dist/GcsaInput.d.ts +13 -0
- package/dist/GcsaInput.js +76 -0
- package/dist/GcsaInput.js.map +1 -0
- package/dist/GcsaInputGroup.d.ts +11 -0
- package/dist/GcsaInputGroup.js +27 -0
- package/dist/GcsaInputGroup.js.map +1 -0
- package/dist/GcsaInputNumber.d.ts +18 -0
- package/dist/GcsaInputNumber.js +108 -0
- package/dist/GcsaInputNumber.js.map +1 -0
- package/dist/GcsaLoading.d.ts +24 -0
- package/dist/GcsaLoading.js +101 -0
- package/dist/GcsaLoading.js.map +1 -0
- package/dist/GcsaLoadingMask.d.ts +8 -0
- package/dist/GcsaLoadingMask.js +39 -0
- package/dist/GcsaLoadingMask.js.map +1 -0
- package/dist/GcsaMarkdownRenderer.d.ts +6 -0
- package/dist/GcsaMarkdownRenderer.js +32 -0
- package/dist/GcsaMarkdownRenderer.js.map +1 -0
- package/dist/GcsaMenu.d.ts +16 -0
- package/dist/GcsaMenu.js +241 -0
- package/dist/GcsaMenu.js.map +1 -0
- package/dist/GcsaModal.d.ts +10 -0
- package/dist/GcsaModal.js +45 -0
- package/dist/GcsaModal.js.map +1 -0
- package/dist/GcsaMultiSelect.d.ts +23 -0
- package/dist/GcsaMultiSelect.js +149 -0
- package/dist/GcsaMultiSelect.js.map +1 -0
- package/dist/GcsaPagination.d.ts +17 -0
- package/dist/GcsaPagination.js +108 -0
- package/dist/GcsaPagination.js.map +1 -0
- package/dist/GcsaPopconfirm.d.ts +18 -0
- package/dist/GcsaPopconfirm.js +68 -0
- package/dist/GcsaPopconfirm.js.map +1 -0
- package/dist/GcsaPopover.d.ts +30 -0
- package/dist/GcsaPopover.js +65 -0
- package/dist/GcsaPopover.js.map +1 -0
- package/dist/GcsaPopoverClose.d.ts +6 -0
- package/dist/GcsaPopoverClose.js +9 -0
- package/dist/GcsaPopoverClose.js.map +1 -0
- package/dist/GcsaProgress.d.ts +5 -0
- package/dist/GcsaProgress.js +18 -0
- package/dist/GcsaProgress.js.map +1 -0
- package/dist/GcsaRadioGroup.d.ts +9 -0
- package/dist/GcsaRadioGroup.js +37 -0
- package/dist/GcsaRadioGroup.js.map +1 -0
- package/dist/GcsaResult.d.ts +9 -0
- package/dist/GcsaResult.js +14 -0
- package/dist/GcsaResult.js.map +1 -0
- package/dist/GcsaRow.d.ts +7 -0
- package/dist/GcsaRow.js +8 -0
- package/dist/GcsaRow.js.map +1 -0
- package/dist/GcsaSelect.d.ts +20 -0
- package/dist/GcsaSelect.js +117 -0
- package/dist/GcsaSelect.js.map +1 -0
- package/dist/GcsaSkeleton.d.ts +6 -0
- package/dist/GcsaSkeleton.js +19 -0
- package/dist/GcsaSkeleton.js.map +1 -0
- package/dist/GcsaSpace.d.ts +7 -0
- package/dist/GcsaSpace.js +14 -0
- package/dist/GcsaSpace.js.map +1 -0
- package/dist/GcsaSpin.d.ts +7 -0
- package/dist/GcsaSpin.js +16 -0
- package/dist/GcsaSpin.js.map +1 -0
- package/dist/GcsaStatistic.d.ts +8 -0
- package/dist/GcsaStatistic.js +11 -0
- package/dist/GcsaStatistic.js.map +1 -0
- package/dist/GcsaSteps.d.ts +10 -0
- package/dist/GcsaSteps.js +54 -0
- package/dist/GcsaSteps.js.map +1 -0
- package/dist/GcsaSwitch.d.ts +11 -0
- package/dist/GcsaSwitch.js +36 -0
- package/dist/GcsaSwitch.js.map +1 -0
- package/dist/GcsaTabs.d.ts +15 -0
- package/dist/GcsaTabs.js +39 -0
- package/dist/GcsaTabs.js.map +1 -0
- package/dist/GcsaTag.d.ts +7 -0
- package/dist/GcsaTag.js +9 -0
- package/dist/GcsaTag.js.map +1 -0
- package/dist/GcsaTextarea.d.ts +13 -0
- package/dist/GcsaTextarea.js +76 -0
- package/dist/GcsaTextarea.js.map +1 -0
- package/dist/GcsaTimePicker.d.ts +12 -0
- package/dist/GcsaTimePicker.js +221 -0
- package/dist/GcsaTimePicker.js.map +1 -0
- package/dist/GcsaTimeline.d.ts +5 -0
- package/dist/GcsaTimeline.js +19 -0
- package/dist/GcsaTimeline.js.map +1 -0
- package/dist/GcsaToastStack.d.ts +11 -0
- package/dist/GcsaToastStack.js +45 -0
- package/dist/GcsaToastStack.js.map +1 -0
- package/dist/GcsaTooltip.d.ts +17 -0
- package/dist/GcsaTooltip.js +43 -0
- package/dist/GcsaTooltip.js.map +1 -0
- package/dist/GcsaTransfer.d.ts +11 -0
- package/dist/GcsaTransfer.js +95 -0
- package/dist/GcsaTransfer.js.map +1 -0
- package/dist/GcsaTree.d.ts +17 -0
- package/dist/GcsaTree.js +38 -0
- package/dist/GcsaTree.js.map +1 -0
- package/dist/GcsaTypography.d.ts +8 -0
- package/dist/GcsaTypography.js +14 -0
- package/dist/GcsaTypography.js.map +1 -0
- package/dist/GcsaUpload.d.ts +24 -0
- package/dist/GcsaUpload.js +146 -0
- package/dist/GcsaUpload.js.map +1 -0
- package/dist/hooks/gcsaFormTypes.d.ts +7 -0
- package/dist/hooks/useDocumentThemeSync.d.ts +3 -0
- package/dist/hooks/useDocumentThemeSync.js +7 -0
- package/dist/hooks/useDocumentThemeSync.js.map +1 -0
- package/dist/hooks/useGcsaComponentSize.d.ts +5 -0
- package/dist/hooks/useGcsaComponentSize.js +21 -0
- package/dist/hooks/useGcsaComponentSize.js.map +1 -0
- package/dist/hooks/useGcsaFormField.d.ts +26 -0
- package/dist/hooks/useGcsaFormField.js +47 -0
- package/dist/hooks/useGcsaFormField.js.map +1 -0
- package/dist/hooks/useGcsaFormSchema.d.ts +7 -0
- package/dist/hooks/useGcsaFormSchema.js +6 -0
- package/dist/hooks/useGcsaFormSchema.js.map +1 -0
- package/dist/hooks/useGcsaLocale.d.ts +4 -0
- package/dist/hooks/useGcsaLocale.js +15 -0
- package/dist/hooks/useGcsaLocale.js.map +1 -0
- package/dist/hooks/useGcsaPopupZIndex.d.ts +6 -0
- package/dist/hooks/useGcsaPopupZIndex.js +18 -0
- package/dist/hooks/useGcsaPopupZIndex.js.map +1 -0
- package/dist/hooks/useGcsaTextCount.d.ts +16 -0
- package/dist/hooks/useGcsaTextCount.js +16 -0
- package/dist/hooks/useGcsaTextCount.js.map +1 -0
- package/dist/hooks/useGcsaTheme.d.ts +7 -0
- package/dist/hooks/useGcsaTheme.js +19 -0
- package/dist/hooks/useGcsaTheme.js.map +1 -0
- package/dist/hooks/useGcsaZIndex.d.ts +13 -0
- package/dist/hooks/useGcsaZIndex.js +37 -0
- package/dist/hooks/useGcsaZIndex.js.map +1 -0
- package/dist/hooks/useMessage.d.ts +6 -0
- package/dist/hooks/useOverlayZIndex.d.ts +8 -0
- package/dist/hooks/useOverlayZIndex.js +14 -0
- package/dist/hooks/useOverlayZIndex.js.map +1 -0
- package/dist/hooks/usePreventHiddenInputScroll.d.ts +13 -0
- package/dist/hooks/usePreventHiddenInputScroll.js +124 -0
- package/dist/hooks/usePreventHiddenInputScroll.js.map +1 -0
- package/dist/icons/iconNames.d.ts +7 -0
- package/dist/icons/iconNames.js +24 -0
- package/dist/icons/iconNames.js.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/registry.d.ts +3 -0
- package/dist/icons/registry.js +58 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons/svg/alert.svg.js +9 -0
- package/dist/icons/svg/alert.svg.js.map +1 -0
- package/dist/icons/svg/assets.svg.js +9 -0
- package/dist/icons/svg/assets.svg.js.map +1 -0
- package/dist/icons/svg/chat.svg.js +8 -0
- package/dist/icons/svg/chat.svg.js.map +1 -0
- package/dist/icons/svg/check.svg.js +8 -0
- package/dist/icons/svg/check.svg.js.map +1 -0
- package/dist/icons/svg/chevron-down.svg.js +8 -0
- package/dist/icons/svg/chevron-down.svg.js.map +1 -0
- package/dist/icons/svg/chevron-left.svg.js +8 -0
- package/dist/icons/svg/chevron-left.svg.js.map +1 -0
- package/dist/icons/svg/chevron-right.svg.js +8 -0
- package/dist/icons/svg/chevron-right.svg.js.map +1 -0
- package/dist/icons/svg/chevron-up.svg.js +8 -0
- package/dist/icons/svg/chevron-up.svg.js.map +1 -0
- package/dist/icons/svg/close.svg.js +6 -0
- package/dist/icons/svg/close.svg.js.map +1 -0
- package/dist/icons/svg/dashboard.svg.js +8 -0
- package/dist/icons/svg/dashboard.svg.js.map +1 -0
- package/dist/icons/svg/menu.svg.js +8 -0
- package/dist/icons/svg/menu.svg.js.map +1 -0
- package/dist/icons/svg/plus.svg.js +6 -0
- package/dist/icons/svg/plus.svg.js.map +1 -0
- package/dist/icons/svg/result-empty.svg.js +6 -0
- package/dist/icons/svg/result-empty.svg.js.map +1 -0
- package/dist/icons/svg/settings.svg.js +8 -0
- package/dist/icons/svg/settings.svg.js.map +1 -0
- package/dist/icons/svg/users.svg.js +11 -0
- package/dist/icons/svg/users.svg.js.map +1 -0
- package/dist/index.d.ts +151 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +8028 -0
- package/dist/utils/gcsaDateValue.d.ts +25 -0
- package/dist/utils/gcsaDateValue.js +60 -0
- package/dist/utils/gcsaDateValue.js.map +1 -0
- package/dist/utils/gcsaTableColumns.d.ts +19 -0
- package/dist/utils/gcsaTableColumns.js +43 -0
- package/dist/utils/gcsaTableColumns.js.map +1 -0
- package/dist/utils/preserveDrawerScroll.d.ts +2 -0
- package/dist/utils/preserveDrawerScroll.js +13 -0
- package/dist/utils/preserveDrawerScroll.js.map +1 -0
- package/dist/utils/zodValidators.d.ts +21 -0
- package/dist/utils/zodValidators.js +35 -0
- package/dist/utils/zodValidators.js.map +1 -0
- package/package.json +58 -0
- package/src/ConsoleHeader.tsx +24 -0
- package/src/ConsolePage.tsx +22 -0
- package/src/ConsoleShell.tsx +248 -0
- package/src/ConsoleSidebar.tsx +61 -0
- package/src/GcsaAlert.tsx +29 -0
- package/src/GcsaAutoComplete.tsx +163 -0
- package/src/GcsaAvatar.tsx +21 -0
- package/src/GcsaBadge.tsx +15 -0
- package/src/GcsaBrandMark.tsx +18 -0
- package/src/GcsaBreadcrumb.tsx +35 -0
- package/src/GcsaButton.tsx +44 -0
- package/src/GcsaCalendar.tsx +14 -0
- package/src/GcsaCard.tsx +21 -0
- package/src/GcsaCascader.tsx +121 -0
- package/src/GcsaChatPanel.tsx +320 -0
- package/src/GcsaCheckbox.tsx +55 -0
- package/src/GcsaCollapse.tsx +23 -0
- package/src/GcsaConfigProvider.tsx +121 -0
- package/src/GcsaDataTable.tsx +779 -0
- package/src/GcsaDatePicker.tsx +284 -0
- package/src/GcsaDateRangePicker.tsx +310 -0
- package/src/GcsaDateTimePicker.tsx +407 -0
- package/src/GcsaDescriptions.tsx +22 -0
- package/src/GcsaDivider.tsx +7 -0
- package/src/GcsaDrawer.tsx +87 -0
- package/src/GcsaDropdown.tsx +84 -0
- package/src/GcsaEmpty.tsx +27 -0
- package/src/GcsaField.tsx +50 -0
- package/src/GcsaForm.tsx +82 -0
- package/src/GcsaFormField.tsx +67 -0
- package/src/GcsaIcon.tsx +21 -0
- package/src/GcsaImagePreview.tsx +30 -0
- package/src/GcsaInput.tsx +87 -0
- package/src/GcsaInputGroup.tsx +32 -0
- package/src/GcsaInputNumber.tsx +155 -0
- package/src/GcsaLoading.ts +206 -0
- package/src/GcsaLoadingMask.tsx +53 -0
- package/src/GcsaMarkdownRenderer.tsx +40 -0
- package/src/GcsaMenu.tsx +340 -0
- package/src/GcsaModal.tsx +68 -0
- package/src/GcsaMultiSelect.tsx +246 -0
- package/src/GcsaPagination.tsx +194 -0
- package/src/GcsaPopconfirm.tsx +104 -0
- package/src/GcsaPopover.tsx +131 -0
- package/src/GcsaPopoverClose.tsx +11 -0
- package/src/GcsaProgress.tsx +18 -0
- package/src/GcsaRadioGroup.tsx +42 -0
- package/src/GcsaResult.tsx +23 -0
- package/src/GcsaRow.tsx +13 -0
- package/src/GcsaSelect.tsx +186 -0
- package/src/GcsaSkeleton.tsx +19 -0
- package/src/GcsaSpace.tsx +17 -0
- package/src/GcsaSpin.tsx +25 -0
- package/src/GcsaStatistic.tsx +17 -0
- package/src/GcsaSteps.tsx +73 -0
- package/src/GcsaSwitch.tsx +45 -0
- package/src/GcsaTabs.tsx +53 -0
- package/src/GcsaTag.tsx +16 -0
- package/src/GcsaTextarea.tsx +87 -0
- package/src/GcsaTimePicker.tsx +298 -0
- package/src/GcsaTimeline.tsx +27 -0
- package/src/GcsaToastStack.tsx +67 -0
- package/src/GcsaTooltip.tsx +75 -0
- package/src/GcsaTransfer.tsx +129 -0
- package/src/GcsaTree.tsx +43 -0
- package/src/GcsaTypography.tsx +24 -0
- package/src/GcsaUpload.tsx +206 -0
- package/src/hooks/gcsaFormTypes.ts +23 -0
- package/src/hooks/useDocumentThemeSync.ts +6 -0
- package/src/hooks/useGcsaComponentSize.ts +24 -0
- package/src/hooks/useGcsaFormField.ts +49 -0
- package/src/hooks/useGcsaFormSchema.ts +6 -0
- package/src/hooks/useGcsaLocale.ts +16 -0
- package/src/hooks/useGcsaPopupZIndex.ts +23 -0
- package/src/hooks/useGcsaTextCount.ts +44 -0
- package/src/hooks/useGcsaTheme.ts +19 -0
- package/src/hooks/useGcsaZIndex.ts +60 -0
- package/src/hooks/useMessage.ts +7 -0
- package/src/hooks/useOverlayZIndex.ts +23 -0
- package/src/hooks/usePreventHiddenInputScroll.ts +233 -0
- package/src/icons/iconNames.ts +27 -0
- package/src/icons/index.ts +8 -0
- package/src/icons/registry.ts +38 -0
- package/src/icons/svg/alert.svg +4 -0
- package/src/icons/svg/assets.svg +4 -0
- package/src/icons/svg/chat.svg +3 -0
- package/src/icons/svg/check.svg +3 -0
- package/src/icons/svg/chevron-down.svg +3 -0
- package/src/icons/svg/chevron-left.svg +3 -0
- package/src/icons/svg/chevron-right.svg +3 -0
- package/src/icons/svg/chevron-up.svg +3 -0
- package/src/icons/svg/close.svg +1 -0
- package/src/icons/svg/dashboard.svg +3 -0
- package/src/icons/svg/menu.svg +3 -0
- package/src/icons/svg/plus.svg +1 -0
- package/src/icons/svg/result-empty.svg +1 -0
- package/src/icons/svg/settings.svg +3 -0
- package/src/icons/svg/users.svg +6 -0
- package/src/index.ts +166 -0
- package/src/utils/gcsaDateValue.ts +99 -0
- package/src/utils/gcsaTableColumns.ts +97 -0
- package/src/utils/preserveDrawerScroll.ts +20 -0
- package/src/utils/zodValidators.ts +45 -0
- package/src/vite-env.d.ts +6 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as c, jsxs as e } from "react/jsx-runtime";
|
|
2
|
+
function l({ items: i, className: a }) {
|
|
3
|
+
return /* @__PURE__ */ c("div", { className: `gcsa-descriptions gcsa-ui-surface${a ? ` ${a}` : ""}`, children: i.map((s) => /* @__PURE__ */ e("div", { className: "gcsa-descriptions__row", children: [
|
|
4
|
+
/* @__PURE__ */ c("div", { className: "gcsa-descriptions__label", children: s.label }),
|
|
5
|
+
/* @__PURE__ */ c("div", { className: "gcsa-descriptions__value", children: s.value })
|
|
6
|
+
] }, s.label)) });
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
l as GcsaDescriptions
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=GcsaDescriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDescriptions.js","sources":["../src/GcsaDescriptions.tsx"],"sourcesContent":["export type GcsaDescriptionsItem = {\n label: string;\n value: string;\n};\n\nexport type GcsaDescriptionsProps = {\n items: GcsaDescriptionsItem[];\n className?: string;\n};\n\nexport function GcsaDescriptions({ items, className }: GcsaDescriptionsProps) {\n return (\n <div className={`gcsa-descriptions gcsa-ui-surface${className ? ` ${className}` : ''}`}>\n {items.map(item => (\n <div key={item.label} className=\"gcsa-descriptions__row\">\n <div className=\"gcsa-descriptions__label\">{item.label}</div>\n <div className=\"gcsa-descriptions__value\">{item.value}</div>\n </div>\n ))}\n </div>\n );\n}\n"],"names":["GcsaDescriptions","items","className","item","jsxs","jsx"],"mappings":";AAUO,SAASA,EAAiB,EAAE,OAAAC,GAAO,WAAAC,KAAoC;AAC5E,2BACG,OAAA,EAAI,WAAW,oCAAoCA,IAAY,IAAIA,CAAS,KAAK,EAAE,IACjF,YAAM,IAAI,CAAAC,MACT,gBAAAC,EAAC,OAAA,EAAqB,WAAU,0BAC9B,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAF,EAAK,OAAM;AAAA,IACtD,gBAAAE,EAAC,OAAA,EAAI,WAAU,4BAA4B,YAAK,MAAA,CAAM;AAAA,EAAA,EAAA,GAF9CF,EAAK,KAGf,CACD,GACH;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDivider.js","sources":["../src/GcsaDivider.tsx"],"sourcesContent":["export type GcsaDividerProps = {\n className?: string;\n};\n\nexport function GcsaDivider({ className }: GcsaDividerProps) {\n return <hr className={`gcsa-divider${className ? ` ${className}` : ''}`} />;\n}\n"],"names":["GcsaDivider","className","jsx"],"mappings":";AAIO,SAASA,EAAY,EAAE,WAAAC,KAA+B;AAC3D,SAAO,gBAAAC,EAAC,QAAG,WAAW,eAAeD,IAAY,IAAIA,CAAS,KAAK,EAAE,GAAA,CAAI;AAC3E;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { GcsaDrawerPlacement } from '@gcsa/console-core';
|
|
3
|
+
export type GcsaDrawerSize = 'default' | 'lg';
|
|
4
|
+
export type GcsaDrawerProps = {
|
|
5
|
+
open: boolean;
|
|
6
|
+
title?: string;
|
|
7
|
+
closable?: boolean;
|
|
8
|
+
placement?: GcsaDrawerPlacement;
|
|
9
|
+
/** default=720px, lg=960px(复杂表单) */
|
|
10
|
+
size?: GcsaDrawerSize;
|
|
11
|
+
footer?: ReactNode;
|
|
12
|
+
onOpenChange?: (open: boolean) => void;
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
export declare function GcsaDrawer({ open, title, closable, placement, size, footer, onOpenChange, children }: GcsaDrawerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as r, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog as e } from "@ark-ui/react/dialog";
|
|
3
|
+
import { Portal as v } from "@ark-ui/react/portal";
|
|
4
|
+
import { useGcsaLocaleMessages as y } from "./hooks/useGcsaLocale.js";
|
|
5
|
+
import { useGcsaOverlayZIndex as x } from "./hooks/useOverlayZIndex.js";
|
|
6
|
+
import { usePreserveScrollOnFocus as N } from "./hooks/usePreventHiddenInputScroll.js";
|
|
7
|
+
function I({
|
|
8
|
+
open: s,
|
|
9
|
+
title: a,
|
|
10
|
+
closable: n = !0,
|
|
11
|
+
placement: o = "right",
|
|
12
|
+
size: u = "default",
|
|
13
|
+
footer: c,
|
|
14
|
+
onOpenChange: l,
|
|
15
|
+
children: _
|
|
16
|
+
}) {
|
|
17
|
+
const m = y(), g = N(s), { backdropZ: i, positionerZ: d } = x(s), h = i == null ? void 0 : { zIndex: i }, p = d == null ? void 0 : { zIndex: d }, w = u === "lg" ? " gcsa-drawer__panel--size-lg" : "";
|
|
18
|
+
return /* @__PURE__ */ r(
|
|
19
|
+
e.Root,
|
|
20
|
+
{
|
|
21
|
+
open: s,
|
|
22
|
+
lazyMount: !0,
|
|
23
|
+
unmountOnExit: !0,
|
|
24
|
+
onOpenChange: (f) => l == null ? void 0 : l(f.open),
|
|
25
|
+
children: /* @__PURE__ */ t(v, { children: [
|
|
26
|
+
/* @__PURE__ */ r(e.Backdrop, { className: "gcsa-drawer__backdrop", style: h }),
|
|
27
|
+
/* @__PURE__ */ r(
|
|
28
|
+
e.Positioner,
|
|
29
|
+
{
|
|
30
|
+
className: `gcsa-drawer__positioner gcsa-drawer__positioner--${o}`,
|
|
31
|
+
style: p,
|
|
32
|
+
children: /* @__PURE__ */ t(
|
|
33
|
+
e.Content,
|
|
34
|
+
{
|
|
35
|
+
className: `gcsa-drawer__panel gcsa-ui-surface gcsa-drawer__panel--${o}${w}`,
|
|
36
|
+
children: [
|
|
37
|
+
n ? /* @__PURE__ */ r(e.CloseTrigger, { className: "gcsa-drawer__close", "aria-label": m.close, children: /* @__PURE__ */ r("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ r(
|
|
38
|
+
"path",
|
|
39
|
+
{
|
|
40
|
+
d: "M2 2l10 10M12 2L2 12",
|
|
41
|
+
stroke: "currentColor",
|
|
42
|
+
strokeWidth: "1.5",
|
|
43
|
+
strokeLinecap: "round"
|
|
44
|
+
}
|
|
45
|
+
) }) }) : null,
|
|
46
|
+
a ? /* @__PURE__ */ r("header", { className: "gcsa-drawer__header", children: /* @__PURE__ */ r(e.Title, { asChild: !0, children: /* @__PURE__ */ r("div", { className: "gcsa-drawer__title", children: a }) }) }) : null,
|
|
47
|
+
/* @__PURE__ */ r(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
ref: g,
|
|
51
|
+
className: `gcsa-drawer__body${a ? " gcsa-drawer__body--titled" : ""}`,
|
|
52
|
+
children: _
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
c ? /* @__PURE__ */ r("div", { className: "gcsa-drawer__footer", children: c }) : null
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
] })
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
I as GcsaDrawer
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=GcsaDrawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDrawer.js","sources":["../src/GcsaDrawer.tsx"],"sourcesContent":["import { type CSSProperties, type ReactNode } from 'react';\nimport type { GcsaDrawerPlacement } from '@gcsa/console-core';\nimport { Dialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport { useGcsaLocaleMessages } from './hooks/useGcsaLocale';\nimport { useGcsaOverlayZIndex } from './hooks/useOverlayZIndex';\nimport { usePreserveScrollOnFocus } from './hooks/usePreventHiddenInputScroll';\n\nexport type GcsaDrawerSize = 'default' | 'lg';\n\nexport type GcsaDrawerProps = {\n open: boolean;\n title?: string;\n closable?: boolean;\n placement?: GcsaDrawerPlacement;\n /** default=720px, lg=960px(复杂表单) */\n size?: GcsaDrawerSize;\n footer?: ReactNode;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n};\n\nexport function GcsaDrawer({\n open,\n title,\n closable = true,\n placement = 'right',\n size = 'default',\n footer,\n onOpenChange,\n children\n}: GcsaDrawerProps) {\n const messages = useGcsaLocaleMessages();\n const bodyRef = usePreserveScrollOnFocus(open);\n const { backdropZ, positionerZ } = useGcsaOverlayZIndex(open);\n const backdropStyle = (backdropZ == null ? undefined : { zIndex: backdropZ }) as CSSProperties | undefined;\n const positionerStyle = (positionerZ == null ? undefined : { zIndex: positionerZ }) as CSSProperties | undefined;\n const sizeClass = size === 'lg' ? ' gcsa-drawer__panel--size-lg' : '';\n\n return (\n <Dialog.Root\n open={open}\n lazyMount\n unmountOnExit\n onOpenChange={details => onOpenChange?.(details.open)}\n >\n <Portal>\n <Dialog.Backdrop className=\"gcsa-drawer__backdrop\" style={backdropStyle} />\n <Dialog.Positioner\n className={`gcsa-drawer__positioner gcsa-drawer__positioner--${placement}`}\n style={positionerStyle}\n >\n <Dialog.Content\n className={`gcsa-drawer__panel gcsa-ui-surface gcsa-drawer__panel--${placement}${sizeClass}`}\n >\n {closable ? (\n <Dialog.CloseTrigger className=\"gcsa-drawer__close\" aria-label={messages.close}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M2 2l10 10M12 2L2 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </Dialog.CloseTrigger>\n ) : null}\n {title ? (\n <header className=\"gcsa-drawer__header\">\n <Dialog.Title asChild>\n <div className=\"gcsa-drawer__title\">{title}</div>\n </Dialog.Title>\n </header>\n ) : null}\n <div\n ref={bodyRef}\n className={`gcsa-drawer__body${title ? ' gcsa-drawer__body--titled' : ''}`}\n >\n {children}\n </div>\n {footer ? <div className=\"gcsa-drawer__footer\">{footer}</div> : null}\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n}\n"],"names":["GcsaDrawer","open","title","closable","placement","size","footer","onOpenChange","children","messages","useGcsaLocaleMessages","bodyRef","usePreserveScrollOnFocus","backdropZ","positionerZ","useGcsaOverlayZIndex","backdropStyle","positionerStyle","sizeClass","jsx","Dialog","details","Portal","jsxs"],"mappings":";;;;;;AAsBO,SAASA,EAAW;AAAA,EACzB,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AACF,GAAoB;AAClB,QAAMC,IAAWC,EAAA,GACXC,IAAUC,EAAyBX,CAAI,GACvC,EAAE,WAAAY,GAAW,aAAAC,MAAgBC,EAAqBd,CAAI,GACtDe,IAAiBH,KAAa,OAAO,SAAY,EAAE,QAAQA,EAAA,GAC3DI,IAAmBH,KAAe,OAAO,SAAY,EAAE,QAAQA,EAAA,GAC/DI,IAAYb,MAAS,OAAO,iCAAiC;AAEnE,SACE,gBAAAc;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACC,MAAAnB;AAAA,MACA,WAAS;AAAA,MACT,eAAa;AAAA,MACb,cAAc,CAAAoB,MAAWd,KAAA,gBAAAA,EAAec,EAAQ;AAAA,MAEhD,4BAACC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAH,EAACC,EAAO,UAAP,EAAgB,WAAU,yBAAwB,OAAOJ,GAAe;AAAA,QACzE,gBAAAG;AAAA,UAACC,EAAO;AAAA,UAAP;AAAA,YACC,WAAW,oDAAoDhB,CAAS;AAAA,YACxE,OAAOa;AAAA,YAEP,UAAA,gBAAAM;AAAA,cAACH,EAAO;AAAA,cAAP;AAAA,gBACC,WAAW,0DAA0DhB,CAAS,GAAGc,CAAS;AAAA,gBAEzF,UAAA;AAAA,kBAAAf,IACC,gBAAAgB,EAACC,EAAO,cAAP,EAAoB,WAAU,sBAAqB,cAAYX,EAAS,OACvE,UAAA,gBAAAU,EAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,eAAY,QACtE,UAAA,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,GAAE;AAAA,sBACF,QAAO;AAAA,sBACP,aAAY;AAAA,sBACZ,eAAc;AAAA,oBAAA;AAAA,kBAAA,EAChB,CACF,GACF,IACE;AAAA,kBACHjB,IACC,gBAAAiB,EAAC,UAAA,EAAO,WAAU,uBAChB,UAAA,gBAAAA,EAACC,EAAO,OAAP,EAAa,SAAO,IACnB,4BAAC,OAAA,EAAI,WAAU,sBAAsB,UAAAlB,EAAA,CAAM,GAC7C,GACF,IACE;AAAA,kBACJ,gBAAAiB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,KAAKR;AAAA,sBACL,WAAW,oBAAoBT,IAAQ,+BAA+B,EAAE;AAAA,sBAEvE,UAAAM;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEFF,IAAS,gBAAAa,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAO,IAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAClE;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { GcsaPopupPlacement } from '@gcsa/console-core';
|
|
3
|
+
export type GcsaDropdownPlacement = GcsaPopupPlacement;
|
|
4
|
+
export type GcsaDropdownItem = {
|
|
5
|
+
key: string;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type GcsaDropdownProps = {
|
|
10
|
+
items: GcsaDropdownItem[];
|
|
11
|
+
triggerLabel?: string;
|
|
12
|
+
trigger?: ReactNode;
|
|
13
|
+
placement?: GcsaDropdownPlacement;
|
|
14
|
+
/** 挂载到 body,避免表格等 overflow 容器裁切 */
|
|
15
|
+
portalled?: boolean;
|
|
16
|
+
gutter?: number;
|
|
17
|
+
className?: string;
|
|
18
|
+
onSelect?: (key: string) => void;
|
|
19
|
+
};
|
|
20
|
+
export declare function GcsaDropdown({ items, triggerLabel, trigger, placement, portalled, gutter, className, onSelect }: GcsaDropdownProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as e, jsxs as b } from "react/jsx-runtime";
|
|
2
|
+
import { Menu as n } from "@ark-ui/react/menu";
|
|
3
|
+
import { Portal as w } from "@ark-ui/react/portal";
|
|
4
|
+
import { createGcsaPopupPositioning as C } from "@gcsa/console-core";
|
|
5
|
+
import { GcsaButton as G } from "./GcsaButton.js";
|
|
6
|
+
import { useGcsaLocaleMessages as P } from "./hooks/useGcsaLocale.js";
|
|
7
|
+
import { useGcsaPopupZIndex as I } from "./hooks/useGcsaPopupZIndex.js";
|
|
8
|
+
function _({
|
|
9
|
+
items: i,
|
|
10
|
+
triggerLabel: c,
|
|
11
|
+
trigger: d,
|
|
12
|
+
placement: l = "bottom-start",
|
|
13
|
+
portalled: p = !0,
|
|
14
|
+
gutter: m = 4,
|
|
15
|
+
className: t,
|
|
16
|
+
onSelect: s
|
|
17
|
+
}) {
|
|
18
|
+
const u = P(), { zIndex: r, onOpenChange: g } = I(), h = c ?? u.menu, f = d ?? /* @__PURE__ */ e(G, { variant: "secondary", children: h }), y = r == null ? void 0 : { zIndex: r }, v = r == null ? void 0 : { zIndex: r }, x = C({ placement: l, gutter: m }), a = /* @__PURE__ */ e(n.Positioner, { className: "gcsa-dropdown-positioner", style: y, children: /* @__PURE__ */ e(n.Content, { className: "gcsa-dropdown gcsa-ui-surface", style: v, children: i.map((o) => /* @__PURE__ */ e(
|
|
19
|
+
n.Item,
|
|
20
|
+
{
|
|
21
|
+
value: o.key,
|
|
22
|
+
disabled: o.disabled,
|
|
23
|
+
className: "gcsa-dropdown__item",
|
|
24
|
+
children: /* @__PURE__ */ e(n.ItemText, { children: o.label })
|
|
25
|
+
},
|
|
26
|
+
o.key
|
|
27
|
+
)) }) });
|
|
28
|
+
return /* @__PURE__ */ e("span", { className: `gcsa-dropdown-anchor${t ? ` ${t}` : ""}`, children: /* @__PURE__ */ b(
|
|
29
|
+
n.Root,
|
|
30
|
+
{
|
|
31
|
+
positioning: x,
|
|
32
|
+
onOpenChange: (o) => g(o.open),
|
|
33
|
+
onSelect: (o) => {
|
|
34
|
+
s == null || s(o.value);
|
|
35
|
+
},
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ e(n.Trigger, { asChild: !0, children: f }),
|
|
38
|
+
p ? /* @__PURE__ */ e(w, { children: a }) : a
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
) });
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
_ as GcsaDropdown
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=GcsaDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDropdown.js","sources":["../src/GcsaDropdown.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport { Menu } from '@ark-ui/react/menu';\nimport { Portal } from '@ark-ui/react/portal';\nimport { createGcsaPopupPositioning, type GcsaPopupPlacement } from '@gcsa/console-core';\nimport { GcsaButton } from './GcsaButton';\nimport { useGcsaLocaleMessages } from './hooks/useGcsaLocale';\nimport { useGcsaPopupZIndex } from './hooks/useGcsaPopupZIndex';\n\nexport type GcsaDropdownPlacement = GcsaPopupPlacement;\n\nexport type GcsaDropdownItem = {\n key: string;\n label: string;\n disabled?: boolean;\n};\n\nexport type GcsaDropdownProps = {\n items: GcsaDropdownItem[];\n triggerLabel?: string;\n trigger?: ReactNode;\n placement?: GcsaDropdownPlacement;\n /** 挂载到 body,避免表格等 overflow 容器裁切 */\n portalled?: boolean;\n gutter?: number;\n className?: string;\n onSelect?: (key: string) => void;\n};\n\nexport function GcsaDropdown({\n items,\n triggerLabel,\n trigger,\n placement = 'bottom-start',\n portalled = true,\n gutter = 4,\n className,\n onSelect\n}: GcsaDropdownProps) {\n const messages = useGcsaLocaleMessages();\n const { zIndex, onOpenChange } = useGcsaPopupZIndex();\n const resolvedTriggerLabel = triggerLabel ?? messages.menu;\n\n const triggerNode = trigger ?? (\n <GcsaButton variant=\"secondary\">\n {resolvedTriggerLabel}\n </GcsaButton>\n );\n\n const positionerStyle = (zIndex == null ? undefined : { zIndex }) as CSSProperties | undefined;\n const contentStyle = (zIndex == null ? undefined : { zIndex }) as CSSProperties | undefined;\n const positioning = createGcsaPopupPositioning({ placement, gutter });\n\n const menuContent = (\n <Menu.Positioner className=\"gcsa-dropdown-positioner\" style={positionerStyle}>\n <Menu.Content className=\"gcsa-dropdown gcsa-ui-surface\" style={contentStyle}>\n {items.map(item => (\n <Menu.Item\n key={item.key}\n value={item.key}\n disabled={item.disabled}\n className=\"gcsa-dropdown__item\"\n >\n <Menu.ItemText>{item.label}</Menu.ItemText>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n );\n\n return (\n <span className={`gcsa-dropdown-anchor${className ? ` ${className}` : ''}`}>\n <Menu.Root\n positioning={positioning}\n onOpenChange={details => onOpenChange(details.open)}\n onSelect={details => {\n onSelect?.(details.value);\n }}\n >\n <Menu.Trigger asChild>{triggerNode}</Menu.Trigger>\n {portalled ? <Portal>{menuContent}</Portal> : menuContent}\n </Menu.Root>\n </span>\n );\n}\n"],"names":["GcsaDropdown","items","triggerLabel","trigger","placement","portalled","gutter","className","onSelect","messages","useGcsaLocaleMessages","zIndex","onOpenChange","useGcsaPopupZIndex","resolvedTriggerLabel","triggerNode","jsx","GcsaButton","positionerStyle","contentStyle","positioning","createGcsaPopupPositioning","menuContent","Menu","item","jsxs","details","Portal"],"mappings":";;;;;;;AA4BO,SAASA,EAAa;AAAA,EAC3B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,QAAAC,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,UAAAC;AACF,GAAsB;AACpB,QAAMC,IAAWC,EAAA,GACX,EAAE,QAAAC,GAAQ,cAAAC,EAAA,IAAiBC,EAAA,GAC3BC,IAAuBZ,KAAgBO,EAAS,MAEhDM,IAAcZ,KAClB,gBAAAa,EAACC,GAAA,EAAW,SAAQ,aACjB,UAAAH,GACH,GAGII,IAAmBP,KAAU,OAAO,SAAY,EAAE,QAAAA,EAAA,GAClDQ,IAAgBR,KAAU,OAAO,SAAY,EAAE,QAAAA,EAAA,GAC/CS,IAAcC,EAA2B,EAAE,WAAAjB,GAAW,QAAAE,GAAQ,GAE9DgB,IACJ,gBAAAN,EAACO,EAAK,YAAL,EAAgB,WAAU,4BAA2B,OAAOL,GAC3D,4BAACK,EAAK,SAAL,EAAa,WAAU,iCAAgC,OAAOJ,GAC5D,UAAAlB,EAAM,IAAI,CAAAuB,MACT,gBAAAR;AAAA,IAACO,EAAK;AAAA,IAAL;AAAA,MAEC,OAAOC,EAAK;AAAA,MACZ,UAAUA,EAAK;AAAA,MACf,WAAU;AAAA,MAEV,UAAA,gBAAAR,EAACO,EAAK,UAAL,EAAe,YAAK,MAAA,CAAM;AAAA,IAAA;AAAA,IALtBC,EAAK;AAAA,EAAA,CAOb,GACH,EAAA,CACF;AAGF,SACE,gBAAAR,EAAC,UAAK,WAAW,uBAAuBT,IAAY,IAAIA,CAAS,KAAK,EAAE,IACtE,UAAA,gBAAAkB;AAAA,IAACF,EAAK;AAAA,IAAL;AAAA,MACC,aAAAH;AAAA,MACA,cAAc,CAAAM,MAAWd,EAAac,EAAQ,IAAI;AAAA,MAClD,UAAU,CAAAA,MAAW;AACnB,QAAAlB,KAAA,QAAAA,EAAWkB,EAAQ;AAAA,MACrB;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAV,EAACO,EAAK,SAAL,EAAa,SAAO,IAAE,UAAAR,GAAY;AAAA,QAClCV,IAAY,gBAAAW,EAACW,GAAA,EAAQ,UAAAL,EAAA,CAAY,IAAYA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAElD;AAEJ;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type GcsaEmptyProps = {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function GcsaEmpty({ title, description, icon, action, className }: GcsaEmptyProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { GcsaIcon as n } from "./GcsaIcon.js";
|
|
3
|
+
import { useGcsaLocaleMessages as d } from "./hooks/useGcsaLocale.js";
|
|
4
|
+
function g({ title: t, description: s, icon: m, action: a, className: c }) {
|
|
5
|
+
const l = d(), i = t ?? l.emptyDefault;
|
|
6
|
+
return /* @__PURE__ */ r("div", { className: `gcsa-empty gcsa-ui-surface${c ? ` ${c}` : ""}`, children: [
|
|
7
|
+
/* @__PURE__ */ e("div", { className: "gcsa-empty__icon", "aria-hidden": "true", children: m ?? /* @__PURE__ */ e(n, { name: "resultEmpty" }) }),
|
|
8
|
+
/* @__PURE__ */ e("div", { className: "gcsa-empty__title", children: i }),
|
|
9
|
+
s ? /* @__PURE__ */ e("div", { className: "gcsa-empty__desc", children: s }) : null,
|
|
10
|
+
a ? /* @__PURE__ */ e("div", { className: "gcsa-empty__action", children: a }) : null
|
|
11
|
+
] });
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
g as GcsaEmpty
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=GcsaEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaEmpty.js","sources":["../src/GcsaEmpty.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { GcsaIcon } from './GcsaIcon';\nimport { useGcsaLocaleMessages } from './hooks/useGcsaLocale';\n\nexport type GcsaEmptyProps = {\n title?: string;\n description?: string;\n icon?: ReactNode;\n action?: ReactNode;\n className?: string;\n};\n\nexport function GcsaEmpty({ title, description, icon, action, className }: GcsaEmptyProps) {\n const messages = useGcsaLocaleMessages();\n const resolvedTitle = title ?? messages.emptyDefault;\n\n return (\n <div className={`gcsa-empty gcsa-ui-surface${className ? ` ${className}` : ''}`}>\n <div className=\"gcsa-empty__icon\" aria-hidden=\"true\">\n {icon ?? <GcsaIcon name=\"resultEmpty\" />}\n </div>\n <div className=\"gcsa-empty__title\">{resolvedTitle}</div>\n {description ? <div className=\"gcsa-empty__desc\">{description}</div> : null}\n {action ? <div className=\"gcsa-empty__action\">{action}</div> : null}\n </div>\n );\n}\n"],"names":["GcsaEmpty","title","description","icon","action","className","messages","useGcsaLocaleMessages","resolvedTitle","jsxs","jsx","GcsaIcon"],"mappings":";;;AAYO,SAASA,EAAU,EAAE,OAAAC,GAAO,aAAAC,GAAa,MAAAC,GAAM,QAAAC,GAAQ,WAAAC,KAA6B;AACzF,QAAMC,IAAWC,EAAA,GACXC,IAAgBP,KAASK,EAAS;AAExC,SACE,gBAAAG,EAAC,SAAI,WAAW,6BAA6BJ,IAAY,IAAIA,CAAS,KAAK,EAAE,IAC3E,UAAA;AAAA,IAAA,gBAAAK,EAAC,OAAA,EAAI,WAAU,oBAAmB,eAAY,QAC3C,eAAQ,gBAAAA,EAACC,GAAA,EAAS,MAAK,cAAA,CAAc,EAAA,CACxC;AAAA,IACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAF,GAAc;AAAA,IACjDN,IAAc,gBAAAQ,EAAC,OAAA,EAAI,WAAU,oBAAoB,aAAY,IAAS;AAAA,IACtEN,IAAS,gBAAAM,EAAC,OAAA,EAAI,WAAU,sBAAsB,aAAO,IAAS;AAAA,EAAA,GACjE;AAEJ;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type GcsaFieldProps = {
|
|
3
|
+
label?: string;
|
|
4
|
+
hint?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
invalid?: boolean;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
};
|
|
11
|
+
export declare function GcsaField({ label, hint, error, invalid, required, className, children }: GcsaFieldProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsxs as c, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { Field as e } from "@ark-ui/react/field";
|
|
3
|
+
function u({
|
|
4
|
+
label: i,
|
|
5
|
+
hint: s,
|
|
6
|
+
error: l,
|
|
7
|
+
invalid: d,
|
|
8
|
+
required: r,
|
|
9
|
+
className: n,
|
|
10
|
+
children: o
|
|
11
|
+
}) {
|
|
12
|
+
const t = d ?? !!l;
|
|
13
|
+
return /* @__PURE__ */ c(e.Root, { className: `gcsa-field${n ? ` ${n}` : ""}`, invalid: t, children: [
|
|
14
|
+
i ? /* @__PURE__ */ c(e.Label, { className: "gcsa-field__label", children: [
|
|
15
|
+
i,
|
|
16
|
+
r ? /* @__PURE__ */ a("span", { className: "gcsa-field__required", "aria-hidden": "true", children: "*" }) : null
|
|
17
|
+
] }) : null,
|
|
18
|
+
o,
|
|
19
|
+
s && !l ? /* @__PURE__ */ a(e.HelperText, { className: "gcsa-field__hint", role: "note", children: s }) : null,
|
|
20
|
+
l ? /* @__PURE__ */ a(e.ErrorText, { className: "gcsa-field__error", role: "alert", children: l }) : null
|
|
21
|
+
] });
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
u as GcsaField
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=GcsaField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaField.js","sources":["../src/GcsaField.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Field } from '@ark-ui/react/field';\n\nexport type GcsaFieldProps = {\n label?: string;\n hint?: string;\n error?: string;\n invalid?: boolean;\n required?: boolean;\n className?: string;\n children?: ReactNode;\n};\n\nexport function GcsaField({\n label,\n hint,\n error,\n invalid,\n required,\n className,\n children\n}: GcsaFieldProps) {\n const isInvalid = invalid ?? Boolean(error);\n\n return (\n <Field.Root className={`gcsa-field${className ? ` ${className}` : ''}`} invalid={isInvalid}>\n {label ? (\n <Field.Label className=\"gcsa-field__label\">\n {label}\n {required ? (\n <span className=\"gcsa-field__required\" aria-hidden=\"true\">\n *\n </span>\n ) : null}\n </Field.Label>\n ) : null}\n {children}\n {hint && !error ? (\n <Field.HelperText className=\"gcsa-field__hint\" role=\"note\">\n {hint}\n </Field.HelperText>\n ) : null}\n {error ? (\n <Field.ErrorText className=\"gcsa-field__error\" role=\"alert\">\n {error}\n </Field.ErrorText>\n ) : null}\n </Field.Root>\n );\n}\n"],"names":["GcsaField","label","hint","error","invalid","required","className","children","isInvalid","jsxs","Field","jsx"],"mappings":";;AAaO,SAASA,EAAU;AAAA,EACxB,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AACF,GAAmB;AACjB,QAAMC,IAAYJ,KAAW,EAAQD;AAErC,SACE,gBAAAM,EAACC,EAAM,MAAN,EAAW,WAAW,aAAaJ,IAAY,IAAIA,CAAS,KAAK,EAAE,IAAI,SAASE,GAC9E,UAAA;AAAA,IAAAP,IACC,gBAAAQ,EAACC,EAAM,OAAN,EAAY,WAAU,qBACpB,UAAA;AAAA,MAAAT;AAAA,MACAI,sBACE,QAAA,EAAK,WAAU,wBAAuB,eAAY,QAAO,eAE1D,IACE;AAAA,IAAA,EAAA,CACN,IACE;AAAA,IACHE;AAAA,IACAL,KAAQ,CAACC,IACR,gBAAAQ,EAACD,EAAM,YAAN,EAAiB,WAAU,oBAAmB,MAAK,QACjD,UAAAR,EAAA,CACH,IACE;AAAA,IACHC,IACC,gBAAAQ,EAACD,EAAM,WAAN,EAAgB,WAAU,qBAAoB,MAAK,SACjD,UAAAP,EAAA,CACH,IACE;AAAA,EAAA,GACN;AAEJ;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ZodObject, ZodTypeAny } from 'zod';
|
|
3
|
+
import { GcsaFormApi } from './hooks/gcsaFormTypes';
|
|
4
|
+
export type GcsaFormProps = {
|
|
5
|
+
defaultValues: Record<string, unknown>;
|
|
6
|
+
schema?: ZodObject<Record<string, ZodTypeAny>>;
|
|
7
|
+
onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
|
|
8
|
+
submitLabel?: string;
|
|
9
|
+
resetLabel?: string;
|
|
10
|
+
showActions?: boolean;
|
|
11
|
+
children: ReactNode | ((form: GcsaFormApi) => ReactNode);
|
|
12
|
+
};
|
|
13
|
+
export declare function GcsaForm({ defaultValues, schema, onSubmit, submitLabel, resetLabel, showActions, children }: GcsaFormProps): import("react").JSX.Element;
|
package/dist/GcsaForm.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as a, jsxs as c } from "react/jsx-runtime";
|
|
2
|
+
import { useForm as y } from "@tanstack/react-form";
|
|
3
|
+
import { GcsaButton as l } from "./GcsaButton.js";
|
|
4
|
+
import { GcsaFormSchemaContext as G } from "./hooks/useGcsaFormSchema.js";
|
|
5
|
+
import { useGcsaLocaleMessages as x, useGcsaLocale as F } from "./hooks/useGcsaLocale.js";
|
|
6
|
+
import { zodFormValidator as L } from "./utils/zodValidators.js";
|
|
7
|
+
function _({
|
|
8
|
+
defaultValues: m,
|
|
9
|
+
schema: e,
|
|
10
|
+
onSubmit: t,
|
|
11
|
+
submitLabel: d,
|
|
12
|
+
resetLabel: f,
|
|
13
|
+
showActions: u = !0,
|
|
14
|
+
children: r
|
|
15
|
+
}) {
|
|
16
|
+
const i = x(), p = F(), g = d ?? i.formSubmit, v = f ?? i.formReset, s = y({
|
|
17
|
+
defaultValues: m,
|
|
18
|
+
validators: e ? {
|
|
19
|
+
onSubmit: L(e, p)
|
|
20
|
+
} : void 0,
|
|
21
|
+
onSubmit: async ({ value: o }) => {
|
|
22
|
+
if (e) {
|
|
23
|
+
const n = e.safeParse(o);
|
|
24
|
+
if (!n.success) return;
|
|
25
|
+
await (t == null ? void 0 : t(n.data));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
await (t == null ? void 0 : t(o));
|
|
29
|
+
}
|
|
30
|
+
}), b = typeof r == "function" ? r(s) : r;
|
|
31
|
+
return /* @__PURE__ */ a(G.Provider, { value: e ?? null, children: /* @__PURE__ */ c(
|
|
32
|
+
"form",
|
|
33
|
+
{
|
|
34
|
+
className: "gcsa-form",
|
|
35
|
+
onSubmit: (o) => {
|
|
36
|
+
o.preventDefault(), s.handleSubmit();
|
|
37
|
+
},
|
|
38
|
+
children: [
|
|
39
|
+
b,
|
|
40
|
+
u ? /* @__PURE__ */ c("div", { className: "gcsa-form__actions", children: [
|
|
41
|
+
/* @__PURE__ */ a(l, { type: "submit", loading: s.state.isSubmitting, disabled: s.state.isSubmitting, children: g }),
|
|
42
|
+
/* @__PURE__ */ a(
|
|
43
|
+
l,
|
|
44
|
+
{
|
|
45
|
+
variant: "secondary",
|
|
46
|
+
type: "button",
|
|
47
|
+
disabled: s.state.isSubmitting,
|
|
48
|
+
onClick: () => s.reset(),
|
|
49
|
+
children: v
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
] }) : null
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
) });
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
_ as GcsaForm
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=GcsaForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaForm.js","sources":["../src/GcsaForm.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { ZodObject, ZodTypeAny } from 'zod';\nimport { useForm } from '@tanstack/react-form';\nimport { GcsaButton } from './GcsaButton';\nimport { GcsaFormSchemaContext } from './hooks/useGcsaFormSchema';\nimport { useGcsaLocale, useGcsaLocaleMessages } from './hooks/useGcsaLocale';\nimport { zodFormValidator } from './utils/zodValidators';\nimport type { GcsaFormApi } from './hooks/gcsaFormTypes';\n\nexport type GcsaFormProps = {\n defaultValues: Record<string, unknown>;\n schema?: ZodObject<Record<string, ZodTypeAny>>;\n onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;\n submitLabel?: string;\n resetLabel?: string;\n showActions?: boolean;\n children: ReactNode | ((form: GcsaFormApi) => ReactNode);\n};\n\nexport function GcsaForm({\n defaultValues,\n schema,\n onSubmit,\n submitLabel,\n resetLabel,\n showActions = true,\n children\n}: GcsaFormProps) {\n const messages = useGcsaLocaleMessages();\n const locale = useGcsaLocale();\n const resolvedSubmitLabel = submitLabel ?? messages.formSubmit;\n const resolvedResetLabel = resetLabel ?? messages.formReset;\n\n const form = useForm({\n defaultValues,\n validators: schema\n ? {\n onSubmit: zodFormValidator(schema, locale)\n }\n : undefined,\n onSubmit: async ({ value }) => {\n if (schema) {\n const parsed = schema.safeParse(value);\n if (!parsed.success) return;\n await onSubmit?.(parsed.data as Record<string, unknown>);\n return;\n }\n await onSubmit?.(value as Record<string, unknown>);\n }\n });\n\n const content = typeof children === 'function' ? children(form) : children;\n\n return (\n <GcsaFormSchemaContext.Provider value={schema ?? null}>\n <form\n className=\"gcsa-form\"\n onSubmit={event => {\n event.preventDefault();\n form.handleSubmit();\n }}\n >\n {content}\n {showActions ? (\n <div className=\"gcsa-form__actions\">\n <GcsaButton type=\"submit\" loading={form.state.isSubmitting} disabled={form.state.isSubmitting}>\n {resolvedSubmitLabel}\n </GcsaButton>\n <GcsaButton\n variant=\"secondary\"\n type=\"button\"\n disabled={form.state.isSubmitting}\n onClick={() => form.reset()}\n >\n {resolvedResetLabel}\n </GcsaButton>\n </div>\n ) : null}\n </form>\n </GcsaFormSchemaContext.Provider>\n );\n}\n"],"names":["GcsaForm","defaultValues","schema","onSubmit","submitLabel","resetLabel","showActions","children","messages","useGcsaLocaleMessages","locale","useGcsaLocale","resolvedSubmitLabel","resolvedResetLabel","form","useForm","zodFormValidator","value","parsed","content","GcsaFormSchemaContext","jsxs","event","jsx","GcsaButton"],"mappings":";;;;;;AAmBO,SAASA,EAAS;AAAA,EACvB,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC;AACF,GAAkB;AAChB,QAAMC,IAAWC,EAAA,GACXC,IAASC,EAAA,GACTC,IAAsBR,KAAeI,EAAS,YAC9CK,IAAqBR,KAAcG,EAAS,WAE5CM,IAAOC,EAAQ;AAAA,IACnB,eAAAd;AAAA,IACA,YAAYC,IACR;AAAA,MACE,UAAUc,EAAiBd,GAAQQ,CAAM;AAAA,IAAA,IAE3C;AAAA,IACJ,UAAU,OAAO,EAAE,OAAAO,QAAY;AAC7B,UAAIf,GAAQ;AACV,cAAMgB,IAAShB,EAAO,UAAUe,CAAK;AACrC,YAAI,CAACC,EAAO,QAAS;AACrB,eAAMf,KAAA,gBAAAA,EAAWe,EAAO;AACxB;AAAA,MACF;AACA,aAAMf,KAAA,gBAAAA,EAAWc;AAAA,IACnB;AAAA,EAAA,CACD,GAEKE,IAAU,OAAOZ,KAAa,aAAaA,EAASO,CAAI,IAAIP;AAElE,2BACGa,EAAsB,UAAtB,EAA+B,OAAOlB,KAAU,MAC/C,UAAA,gBAAAmB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,UAAU,CAAAC,MAAS;AACjB,QAAAA,EAAM,eAAA,GACNR,EAAK,aAAA;AAAA,MACP;AAAA,MAEC,UAAA;AAAA,QAAAK;AAAA,QACAb,IACC,gBAAAe,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,UAAA,gBAAAE,EAACC,GAAA,EAAW,MAAK,UAAS,SAASV,EAAK,MAAM,cAAc,UAAUA,EAAK,MAAM,cAC9E,UAAAF,GACH;AAAA,UACA,gBAAAW;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,UAAUV,EAAK,MAAM;AAAA,cACrB,SAAS,MAAMA,EAAK,MAAA;AAAA,cAEnB,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CACF,IACE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { GcsaFormApi } from './hooks/gcsaFormTypes';
|
|
3
|
+
import { gcsaBooleanFieldBindings, gcsaTextFieldBindings, GcsaAnyFieldApi } from './hooks/useGcsaFormField';
|
|
4
|
+
export type GcsaFormFieldProps = {
|
|
5
|
+
form: GcsaFormApi;
|
|
6
|
+
name: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
hint?: string;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
fieldType?: 'text' | 'boolean';
|
|
11
|
+
children: (props: {
|
|
12
|
+
field: GcsaAnyFieldApi;
|
|
13
|
+
bindings: ReturnType<typeof gcsaTextFieldBindings> | ReturnType<typeof gcsaBooleanFieldBindings>;
|
|
14
|
+
}) => ReactNode;
|
|
15
|
+
};
|
|
16
|
+
export declare function GcsaFormField({ form, name, label, hint, required, fieldType, children }: GcsaFormFieldProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as p, useMemo as g } from "react";
|
|
3
|
+
import { GcsaField as u } from "./GcsaField.js";
|
|
4
|
+
import { GcsaFormSchemaContext as f } from "./hooks/useGcsaFormSchema.js";
|
|
5
|
+
import { gcsaBooleanFieldBindings as x, gcsaTextFieldBindings as h, gcsaFieldInvalid as v, gcsaFieldError as G } from "./hooks/useGcsaFormField.js";
|
|
6
|
+
import { zodFieldValidators as B } from "./utils/zodValidators.js";
|
|
7
|
+
import { useGcsaLocale as b } from "./hooks/useGcsaLocale.js";
|
|
8
|
+
function S({
|
|
9
|
+
form: s,
|
|
10
|
+
name: r,
|
|
11
|
+
label: n,
|
|
12
|
+
hint: a,
|
|
13
|
+
required: c = !1,
|
|
14
|
+
fieldType: l = "text",
|
|
15
|
+
children: m
|
|
16
|
+
}) {
|
|
17
|
+
const i = p(f), e = b(), d = g(() => {
|
|
18
|
+
if (i)
|
|
19
|
+
return B(i, r, e);
|
|
20
|
+
}, [i, r, e]), F = s.Field;
|
|
21
|
+
return /* @__PURE__ */ t(F, { name: r, validators: d, children: (o) => /* @__PURE__ */ t(
|
|
22
|
+
u,
|
|
23
|
+
{
|
|
24
|
+
label: n,
|
|
25
|
+
hint: a,
|
|
26
|
+
error: G(o),
|
|
27
|
+
invalid: v(o),
|
|
28
|
+
required: c,
|
|
29
|
+
children: m({
|
|
30
|
+
field: o,
|
|
31
|
+
bindings: l === "boolean" ? x(o) : h(o)
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
) });
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
S as GcsaFormField
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=GcsaFormField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaFormField.js","sources":["../src/GcsaFormField.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { useContext, useMemo } from 'react';\nimport { GcsaField } from './GcsaField';\nimport { GcsaFormSchemaContext } from './hooks/useGcsaFormSchema';\nimport type { GcsaFormApi } from './hooks/gcsaFormTypes';\nimport {\n gcsaBooleanFieldBindings,\n gcsaFieldError,\n gcsaFieldInvalid,\n gcsaTextFieldBindings,\n type GcsaAnyFieldApi\n} from './hooks/useGcsaFormField';\nimport { zodFieldValidators } from './utils/zodValidators';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\n\nexport type GcsaFormFieldProps = {\n form: GcsaFormApi;\n name: string;\n label?: string;\n hint?: string;\n required?: boolean;\n fieldType?: 'text' | 'boolean';\n children: (props: {\n field: GcsaAnyFieldApi;\n bindings: ReturnType<typeof gcsaTextFieldBindings> | ReturnType<typeof gcsaBooleanFieldBindings>;\n }) => ReactNode;\n};\n\nexport function GcsaFormField({\n form,\n name,\n label,\n hint,\n required = false,\n fieldType = 'text',\n children\n}: GcsaFormFieldProps) {\n const schema = useContext(GcsaFormSchemaContext);\n const locale = useGcsaLocale();\n\n const validators = useMemo(() => {\n if (!schema) return undefined;\n return zodFieldValidators(schema, name, locale);\n }, [schema, name, locale]);\n\n const Field = form.Field;\n\n return (\n <Field name={name} validators={validators}>\n {(field: GcsaAnyFieldApi) => (\n <GcsaField\n label={label}\n hint={hint}\n error={gcsaFieldError(field)}\n invalid={gcsaFieldInvalid(field)}\n required={required}\n >\n {children({\n field,\n bindings:\n fieldType === 'boolean' ? gcsaBooleanFieldBindings(field) : gcsaTextFieldBindings(field)\n })}\n </GcsaField>\n )}\n </Field>\n );\n}\n"],"names":["GcsaFormField","form","name","label","hint","required","fieldType","children","schema","useContext","GcsaFormSchemaContext","locale","useGcsaLocale","validators","useMemo","zodFieldValidators","Field","jsx","field","GcsaField","gcsaFieldError","gcsaFieldInvalid","gcsaBooleanFieldBindings","gcsaTextFieldBindings"],"mappings":";;;;;;;AA4BO,SAASA,EAAc;AAAA,EAC5B,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,UAAAC;AACF,GAAuB;AACrB,QAAMC,IAASC,EAAWC,CAAqB,GACzCC,IAASC,EAAA,GAETC,IAAaC,EAAQ,MAAM;AAC/B,QAAKN;AACL,aAAOO,EAAmBP,GAAQN,GAAMS,CAAM;AAAA,EAChD,GAAG,CAACH,GAAQN,GAAMS,CAAM,CAAC,GAEnBK,IAAQf,EAAK;AAEnB,SACE,gBAAAgB,EAACD,GAAA,EAAM,MAAAd,GAAY,YAAAW,GAChB,WAACK,MACA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,OAAAhB;AAAA,MACA,MAAAC;AAAA,MACA,OAAOgB,EAAeF,CAAK;AAAA,MAC3B,SAASG,EAAiBH,CAAK;AAAA,MAC/B,UAAAb;AAAA,MAEC,UAAAE,EAAS;AAAA,QACR,OAAAW;AAAA,QACA,UACEZ,MAAc,YAAYgB,EAAyBJ,CAAK,IAAIK,EAAsBL,CAAK;AAAA,MAAA,CAC1F;AAAA,IAAA;AAAA,EAAA,GAGP;AAEJ;"}
|
package/dist/GcsaIcon.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { getGcsaIconSvg as e } from "./icons/registry.js";
|
|
3
|
+
function m({ name: s, size: n = "md", className: o }) {
|
|
4
|
+
const a = ["gcsa-icon", "gcsa-nav-icon", n === "sm" ? "gcsa-icon--sm" : void 0, o].filter(Boolean).join(" ");
|
|
5
|
+
return /* @__PURE__ */ c(
|
|
6
|
+
"span",
|
|
7
|
+
{
|
|
8
|
+
className: a,
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
dangerouslySetInnerHTML: { __html: e(s) }
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
m as GcsaIcon
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=GcsaIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaIcon.js","sources":["../src/GcsaIcon.tsx"],"sourcesContent":["import type { GcsaIconName } from './icons';\nimport { getGcsaIconSvg } from './icons';\n\nexport type GcsaIconProps = {\n name: GcsaIconName;\n size?: 'sm' | 'md';\n className?: string;\n};\n\nexport function GcsaIcon({ name, size = 'md', className }: GcsaIconProps) {\n const sizeClass = size === 'sm' ? 'gcsa-icon--sm' : undefined;\n const classes = ['gcsa-icon', 'gcsa-nav-icon', sizeClass, className].filter(Boolean).join(' ');\n\n return (\n <span\n className={classes}\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: getGcsaIconSvg(name) }}\n />\n );\n}\n"],"names":["GcsaIcon","name","size","className","classes","jsx","getGcsaIconSvg"],"mappings":";;AASO,SAASA,EAAS,EAAE,MAAAC,GAAM,MAAAC,IAAO,MAAM,WAAAC,KAA4B;AAExE,QAAMC,IAAU,CAAC,aAAa,iBADZF,MAAS,OAAO,kBAAkB,QACMC,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAE7F,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,MACX,eAAY;AAAA,MACZ,yBAAyB,EAAE,QAAQE,EAAeL,CAAI,EAAA;AAAA,IAAE;AAAA,EAAA;AAG9D;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type GcsaImagePreviewProps = {
|
|
2
|
+
open: boolean;
|
|
3
|
+
src: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
onOpenChange?: (open: boolean) => void;
|
|
6
|
+
onError?: () => void;
|
|
7
|
+
};
|
|
8
|
+
export declare function GcsaImagePreview({ open, src, alt, onOpenChange, onError }: GcsaImagePreviewProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog as a } from "@ark-ui/react/dialog";
|
|
3
|
+
import { GcsaIcon as n } from "./GcsaIcon.js";
|
|
4
|
+
import { useGcsaLocaleMessages as p } from "./hooks/useGcsaLocale.js";
|
|
5
|
+
function u({ open: o, src: m, alt: c, onOpenChange: s, onError: l }) {
|
|
6
|
+
const i = p(), t = c ?? i.imagePreview;
|
|
7
|
+
return /* @__PURE__ */ r(a.Root, { open: o, lazyMount: !0, unmountOnExit: !0, onOpenChange: (g) => s == null ? void 0 : s(g.open), children: [
|
|
8
|
+
/* @__PURE__ */ e(a.Backdrop, { className: "gcsa-image-preview__backdrop" }),
|
|
9
|
+
/* @__PURE__ */ e(a.Positioner, { className: "gcsa-image-preview__positioner", children: /* @__PURE__ */ r(a.Content, { className: "gcsa-image-preview__content", "aria-label": i.imagePreview, children: [
|
|
10
|
+
/* @__PURE__ */ e(a.CloseTrigger, { className: "gcsa-image-preview__close", "aria-label": i.imagePreviewClose, children: /* @__PURE__ */ e(n, { name: "close", size: "sm" }) }),
|
|
11
|
+
/* @__PURE__ */ e("img", { className: "gcsa-image-preview__image", src: m, alt: t, draggable: !1, onError: l })
|
|
12
|
+
] }) })
|
|
13
|
+
] });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
u as GcsaImagePreview
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=GcsaImagePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaImagePreview.js","sources":["../src/GcsaImagePreview.tsx"],"sourcesContent":["import { Dialog } from '@ark-ui/react/dialog';\nimport { GcsaIcon } from './GcsaIcon';\nimport { useGcsaLocaleMessages } from './hooks/useGcsaLocale';\n\nexport type GcsaImagePreviewProps = {\n open: boolean;\n src: string;\n alt?: string;\n onOpenChange?: (open: boolean) => void;\n onError?: () => void;\n};\n\nexport function GcsaImagePreview({ open, src, alt, onOpenChange, onError }: GcsaImagePreviewProps) {\n const messages = useGcsaLocaleMessages();\n const resolvedAlt = alt ?? messages.imagePreview;\n\n return (\n <Dialog.Root open={open} lazyMount unmountOnExit onOpenChange={details => onOpenChange?.(details.open)}>\n <Dialog.Backdrop className=\"gcsa-image-preview__backdrop\" />\n <Dialog.Positioner className=\"gcsa-image-preview__positioner\">\n <Dialog.Content className=\"gcsa-image-preview__content\" aria-label={messages.imagePreview}>\n <Dialog.CloseTrigger className=\"gcsa-image-preview__close\" aria-label={messages.imagePreviewClose}>\n <GcsaIcon name=\"close\" size=\"sm\" />\n </Dialog.CloseTrigger>\n <img className=\"gcsa-image-preview__image\" src={src} alt={resolvedAlt} draggable={false} onError={onError} />\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n}\n"],"names":["GcsaImagePreview","open","src","alt","onOpenChange","onError","messages","useGcsaLocaleMessages","resolvedAlt","jsxs","Dialog","details","jsx","GcsaIcon"],"mappings":";;;;AAYO,SAASA,EAAiB,EAAE,MAAAC,GAAM,KAAAC,GAAK,KAAAC,GAAK,cAAAC,GAAc,SAAAC,KAAkC;AACjG,QAAMC,IAAWC,EAAA,GACXC,IAAcL,KAAOG,EAAS;AAEpC,SACE,gBAAAG,EAACC,EAAO,MAAP,EAAY,MAAAT,GAAY,WAAS,IAAC,eAAa,IAAC,cAAc,CAAAU,MAAWP,KAAA,gBAAAA,EAAeO,EAAQ,OAC/F,UAAA;AAAA,IAAA,gBAAAC,EAACF,EAAO,UAAP,EAAgB,WAAU,+BAAA,CAA+B;AAAA,IAC1D,gBAAAE,EAACF,EAAO,YAAP,EAAkB,WAAU,kCAC3B,UAAA,gBAAAD,EAACC,EAAO,SAAP,EAAe,WAAU,+BAA8B,cAAYJ,EAAS,cAC3E,UAAA;AAAA,MAAA,gBAAAM,EAACF,EAAO,cAAP,EAAoB,WAAU,6BAA4B,cAAYJ,EAAS,mBAC9E,UAAA,gBAAAM,EAACC,GAAA,EAAS,MAAK,SAAQ,MAAK,MAAK,GACnC;AAAA,MACA,gBAAAD,EAAC,SAAI,WAAU,6BAA4B,KAAAV,GAAU,KAAKM,GAAa,WAAW,IAAO,SAAAH,EAAA,CAAkB;AAAA,IAAA,EAAA,CAC7G,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InputHTMLAttributes } from 'react';
|
|
2
|
+
import { GcsaComponentSize } from '@gcsa/console-core';
|
|
3
|
+
import { GcsaTextCountFormatter } from './hooks/useGcsaTextCount';
|
|
4
|
+
export type GcsaInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'onBlur'> & {
|
|
5
|
+
value?: string;
|
|
6
|
+
size?: GcsaComponentSize;
|
|
7
|
+
invalid?: boolean;
|
|
8
|
+
showCount?: boolean;
|
|
9
|
+
countFormatter?: GcsaTextCountFormatter;
|
|
10
|
+
onValueChange?: (value: string) => void;
|
|
11
|
+
onBlur?: () => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function GcsaInput({ value, type, placeholder, disabled, invalid, maxLength, showCount, countFormatter, size, className, onValueChange, onBlur, ...rest }: GcsaInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsxs as j, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useId as z, useRef as G, useLayoutEffect as I } from "react";
|
|
3
|
+
import { gcsaControlSizeClass as b } from "@gcsa/console-core";
|
|
4
|
+
import { useGcsaTextCount as y } from "./hooks/useGcsaTextCount.js";
|
|
5
|
+
import { useGcsaComponentSize as C } from "./hooks/useGcsaComponentSize.js";
|
|
6
|
+
import { patchFocusPreventScroll as R } from "./hooks/usePreventHiddenInputScroll.js";
|
|
7
|
+
function $({
|
|
8
|
+
value: r = "",
|
|
9
|
+
type: a = "text",
|
|
10
|
+
placeholder: l = "",
|
|
11
|
+
disabled: u = !1,
|
|
12
|
+
invalid: m = !1,
|
|
13
|
+
maxLength: s,
|
|
14
|
+
showCount: f,
|
|
15
|
+
countFormatter: p,
|
|
16
|
+
size: d,
|
|
17
|
+
className: x,
|
|
18
|
+
onValueChange: t,
|
|
19
|
+
onBlur: o,
|
|
20
|
+
...v
|
|
21
|
+
}) {
|
|
22
|
+
const g = C(d), i = z(), e = G(null);
|
|
23
|
+
I(() => {
|
|
24
|
+
e.current && R(e.current);
|
|
25
|
+
});
|
|
26
|
+
const { showCounter: c, countText: N, isNearLimit: S } = y({
|
|
27
|
+
modelValue: r,
|
|
28
|
+
maxLength: s,
|
|
29
|
+
showCount: f,
|
|
30
|
+
formatter: p
|
|
31
|
+
});
|
|
32
|
+
return /* @__PURE__ */ j(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
className: [
|
|
36
|
+
"gcsa-text-control",
|
|
37
|
+
"gcsa-text-control--input",
|
|
38
|
+
b("gcsa-text-control", g),
|
|
39
|
+
c ? "gcsa-text-control--count" : null,
|
|
40
|
+
x
|
|
41
|
+
].filter(Boolean).join(" "),
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ n(
|
|
44
|
+
"input",
|
|
45
|
+
{
|
|
46
|
+
ref: e,
|
|
47
|
+
className: "gcsa-input",
|
|
48
|
+
value: r,
|
|
49
|
+
type: a,
|
|
50
|
+
placeholder: l,
|
|
51
|
+
disabled: u,
|
|
52
|
+
maxLength: s,
|
|
53
|
+
"data-invalid": m || void 0,
|
|
54
|
+
"aria-describedby": c ? i : void 0,
|
|
55
|
+
onChange: (_) => t == null ? void 0 : t(_.target.value),
|
|
56
|
+
onBlur: () => o == null ? void 0 : o(),
|
|
57
|
+
...v
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
c ? /* @__PURE__ */ n(
|
|
61
|
+
"span",
|
|
62
|
+
{
|
|
63
|
+
id: i,
|
|
64
|
+
className: `gcsa-text-control__count${S ? " gcsa-text-control__count--near" : ""}`,
|
|
65
|
+
"aria-live": "polite",
|
|
66
|
+
children: N
|
|
67
|
+
}
|
|
68
|
+
) : null
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
$ as GcsaInput
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=GcsaInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaInput.js","sources":["../src/GcsaInput.tsx"],"sourcesContent":["import { useId, useLayoutEffect, useRef } from 'react';\nimport type { InputHTMLAttributes } from 'react';\nimport type { GcsaComponentSize } from '@gcsa/console-core';\nimport { gcsaControlSizeClass } from '@gcsa/console-core';\nimport { useGcsaTextCount, type GcsaTextCountFormatter } from './hooks/useGcsaTextCount';\nimport { useGcsaComponentSize } from './hooks/useGcsaComponentSize';\nimport { patchFocusPreventScroll } from './hooks/usePreventHiddenInputScroll';\n\nexport type GcsaInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'onChange' | 'onBlur'\n> & {\n value?: string;\n size?: GcsaComponentSize;\n invalid?: boolean;\n showCount?: boolean;\n countFormatter?: GcsaTextCountFormatter;\n onValueChange?: (value: string) => void;\n onBlur?: () => void;\n};\n\nexport function GcsaInput({\n value = '',\n type = 'text',\n placeholder = '',\n disabled = false,\n invalid = false,\n maxLength,\n showCount,\n countFormatter,\n size,\n className,\n onValueChange,\n onBlur,\n ...rest\n}: GcsaInputProps) {\n const resolvedSize = useGcsaComponentSize(size);\n const countId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n useLayoutEffect(() => {\n if (inputRef.current) patchFocusPreventScroll(inputRef.current);\n });\n const { showCounter, countText, isNearLimit } = useGcsaTextCount({\n modelValue: value,\n maxLength,\n showCount,\n formatter: countFormatter\n });\n\n return (\n <div\n className={[\n 'gcsa-text-control',\n 'gcsa-text-control--input',\n gcsaControlSizeClass('gcsa-text-control', resolvedSize),\n showCounter ? 'gcsa-text-control--count' : null,\n className\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <input\n ref={inputRef}\n className=\"gcsa-input\"\n value={value}\n type={type}\n placeholder={placeholder}\n disabled={disabled}\n maxLength={maxLength}\n data-invalid={invalid || undefined}\n aria-describedby={showCounter ? countId : undefined}\n onChange={event => onValueChange?.(event.target.value)}\n onBlur={() => onBlur?.()}\n {...rest}\n />\n {showCounter ? (\n <span\n id={countId}\n className={`gcsa-text-control__count${isNearLimit ? ' gcsa-text-control__count--near' : ''}`}\n aria-live=\"polite\"\n >\n {countText}\n </span>\n ) : null}\n </div>\n );\n}\n"],"names":["GcsaInput","value","type","placeholder","disabled","invalid","maxLength","showCount","countFormatter","size","className","onValueChange","onBlur","rest","resolvedSize","useGcsaComponentSize","countId","useId","inputRef","useRef","useLayoutEffect","patchFocusPreventScroll","showCounter","countText","isNearLimit","useGcsaTextCount","jsxs","gcsaControlSizeClass","jsx","event"],"mappings":";;;;;;AAqBO,SAASA,EAAU;AAAA,EACxB,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,SAAAC,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GAAmB;AACjB,QAAMC,IAAeC,EAAqBN,CAAI,GACxCO,IAAUC,EAAA,GACVC,IAAWC,EAAyB,IAAI;AAC9C,EAAAC,EAAgB,MAAM;AACpB,IAAIF,EAAS,WAASG,EAAwBH,EAAS,OAAO;AAAA,EAChE,CAAC;AACD,QAAM,EAAE,aAAAI,GAAa,WAAAC,GAAW,aAAAC,EAAA,IAAgBC,EAAiB;AAAA,IAC/D,YAAYxB;AAAA,IACZ,WAAAK;AAAA,IACA,WAAAC;AAAA,IACA,WAAWC;AAAA,EAAA,CACZ;AAED,SACE,gBAAAkB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACAC,EAAqB,qBAAqBb,CAAY;AAAA,QACtDQ,IAAc,6BAA6B;AAAA,QAC3CZ;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAkB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKV;AAAA,YACL,WAAU;AAAA,YACV,OAAAjB;AAAA,YACA,MAAAC;AAAA,YACA,aAAAC;AAAA,YACA,UAAAC;AAAA,YACA,WAAAE;AAAA,YACA,gBAAcD,KAAW;AAAA,YACzB,oBAAkBiB,IAAcN,IAAU;AAAA,YAC1C,UAAU,CAAAa,MAASlB,KAAA,gBAAAA,EAAgBkB,EAAM,OAAO;AAAA,YAChD,QAAQ,MAAMjB,KAAA,gBAAAA;AAAA,YACb,GAAGC;AAAA,UAAA;AAAA,QAAA;AAAA,QAELS,IACC,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAIZ;AAAA,YACJ,WAAW,2BAA2BQ,IAAc,oCAAoC,EAAE;AAAA,YAC1F,aAAU;AAAA,YAET,UAAAD;AAAA,UAAA;AAAA,QAAA,IAED;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|