prime-ui-kit 0.6.0 → 0.7.2
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/components/accordion/examples/02-settings-panels.d.ts.map +1 -1
- package/dist/components/accordion/examples/04-api-docs-sections.d.ts.map +1 -1
- package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts.map +1 -1
- package/dist/components/avatar/examples/app-header-nav.d.ts.map +1 -1
- package/dist/components/avatar/examples/src-from-state.d.ts.map +1 -1
- package/dist/components/banner/examples/cookie-consent-row.d.ts.map +1 -1
- package/dist/components/banner/examples/feature-promo.d.ts.map +1 -1
- package/dist/components/button/examples/destructive-confirm.d.ts.map +1 -1
- package/dist/components/checkbox/examples/bulk-select-rows.d.ts.map +1 -1
- package/dist/components/checkbox/examples/empty-label-form.d.ts.map +1 -1
- package/dist/components/checkbox/examples/feature-flags-list.d.ts.map +1 -1
- package/dist/components/checkbox/examples/settings-panel.d.ts.map +1 -1
- package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/color-picker/ColorPickerRac.d.ts.map +1 -1
- package/dist/components/color-picker/examples/controlled-form-field.d.ts.map +1 -1
- package/dist/components/color-picker/examples/theme-accent.d.ts.map +1 -1
- package/dist/components/command-menu/examples/composition-tags-footer.d.ts.map +1 -1
- package/dist/components/command-menu/examples/variants-density-items.d.ts.map +1 -1
- package/dist/components/datepicker/examples/full-width-form.d.ts.map +1 -1
- package/dist/components/digit-input/examples/error-state.d.ts.map +1 -1
- package/dist/components/digit-input/examples/resend-and-clear.d.ts.map +1 -1
- package/dist/components/divider/examples/section-breaks.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +0 -14
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/examples/account-menu.d.ts.map +1 -1
- package/dist/components/dropdown/examples/actions-menu.d.ts.map +1 -1
- package/dist/components/dropdown/examples/full-width.d.ts.map +1 -1
- package/dist/components/empty-page/EmptyPage.d.ts +63 -0
- package/dist/components/empty-page/EmptyPage.d.ts.map +1 -0
- package/dist/components/empty-page/examples/canonical.d.ts +3 -0
- package/dist/components/empty-page/examples/canonical.d.ts.map +1 -0
- package/dist/components/empty-page/examples/sizes.d.ts +3 -0
- package/dist/components/empty-page/examples/sizes.d.ts.map +1 -0
- package/dist/components/empty-page/examples/table-region.d.ts +6 -0
- package/dist/components/empty-page/examples/table-region.d.ts.map +1 -0
- package/dist/components/hint/examples/a11y-describedby.d.ts.map +1 -1
- package/dist/components/hint/examples/error-hint.d.ts.map +1 -1
- package/dist/components/hint/examples/field-help.d.ts.map +1 -1
- package/dist/components/hint/examples/field-states.d.ts.map +1 -1
- package/dist/components/hint/examples/inline-tip-form.d.ts.map +1 -1
- package/dist/components/hint/examples/success-confirmation.d.ts.map +1 -1
- package/dist/components/hint/examples/variants.d.ts.map +1 -1
- package/dist/components/index.css +259 -108
- package/dist/components/index.css.map +4 -4
- package/dist/components/index.d.ts +4 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +639 -477
- package/dist/components/index.js.map +4 -4
- package/dist/components/input/examples/login-email.d.ts.map +1 -1
- package/dist/components/input/examples/search.d.ts.map +1 -1
- package/dist/components/link-button/examples/disabled.d.ts.map +1 -1
- package/dist/components/link-button/examples/external.d.ts.map +1 -1
- package/dist/components/link-button/examples/inline-text-link.d.ts.map +1 -1
- package/dist/components/link-button/examples/navigation-cluster.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts +28 -7
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/examples/canonical-maximal.d.ts.map +1 -1
- package/dist/components/modal/examples/pattern-close-behavior.d.ts.map +1 -1
- package/dist/components/modal/examples/pattern-controlled.d.ts.map +1 -1
- package/dist/components/modal/examples/pattern-portal-and-scroll.d.ts.map +1 -1
- package/dist/components/modal/examples/scenario-confirm-delete.d.ts.map +1 -1
- package/dist/components/modal/examples/scenario-edit-entity.d.ts.map +1 -1
- package/dist/components/modal/examples/scenario-legal-consent.d.ts.map +1 -1
- package/dist/components/modal/examples/scenario-multi-field-form.d.ts.map +1 -1
- package/dist/components/notification/examples/action-toast.d.ts.map +1 -1
- package/dist/components/notification/examples/error-success.d.ts.map +1 -1
- package/dist/components/popover/Popover.d.ts +3 -3
- package/dist/components/popover/Popover.d.ts.map +1 -1
- package/dist/components/popover/examples/composition.d.ts +1 -1
- package/dist/components/popover/examples/date-trigger.d.ts.map +1 -1
- package/dist/components/popover/examples/features.d.ts.map +1 -1
- package/dist/components/popover/examples/form-in-popover.d.ts.map +1 -1
- package/dist/components/popover/examples/full-width.d.ts.map +1 -1
- package/dist/components/popover/examples/placement.d.ts.map +1 -1
- package/dist/components/popover/examples/rich-content.d.ts.map +1 -1
- package/dist/components/popover/examples/sizes.d.ts +1 -1
- package/dist/components/progress-bar/examples/step-progress.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/dashboard-ring.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/states.d.ts.map +1 -1
- package/dist/components/radio/examples/plan-picker.d.ts.map +1 -1
- package/dist/components/segmented-control/examples/pricing-toggle.d.ts.map +1 -1
- package/dist/components/segmented-control/examples/view-mode.d.ts.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/examples/01-country.d.ts.map +1 -1
- package/dist/components/select/examples/02-controlled.d.ts.map +1 -1
- package/dist/components/select/examples/03-groups.d.ts.map +1 -1
- package/dist/components/select/examples/04-full-width-form.d.ts.map +1 -1
- package/dist/components/switch/examples/composition.d.ts.map +1 -1
- package/dist/components/switch/examples/scenario-feature-flag.d.ts.map +1 -1
- package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts.map +1 -1
- package/dist/components/tag/examples/controlled.d.ts.map +1 -1
- package/dist/components/textarea/examples/01-support-ticket.d.ts.map +1 -1
- package/dist/components/textarea/examples/02-comment.d.ts.map +1 -1
- package/dist/components/textarea/examples/controlled.d.ts.map +1 -1
- package/dist/components/textarea/examples/features.d.ts.map +1 -1
- package/dist/components/tooltip/examples/composition.d.ts.map +1 -1
- package/dist/hooks/useModalKeyboard.d.ts +14 -0
- package/dist/hooks/useModalKeyboard.d.ts.map +1 -0
- package/dist/index.css +259 -108
- package/dist/index.css.map +4 -4
- package/dist/index.js +641 -478
- package/dist/index.js.map +4 -4
- package/dist/internal/states.d.ts +2 -0
- package/dist/internal/states.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/accordion/COMPONENT.md +1 -1
- package/src/components/accordion/examples/01-faq-marketing.tsx +1 -1
- package/src/components/accordion/examples/02-settings-panels.tsx +1 -6
- package/src/components/accordion/examples/03-checkout-order-summary.tsx +1 -1
- package/src/components/accordion/examples/04-api-docs-sections.tsx +0 -1
- package/src/components/accordion/examples/05-knowledge-base-categories.tsx +1 -7
- package/src/components/avatar/COMPONENT.md +2 -2
- package/src/components/avatar/examples/app-header-nav.tsx +5 -13
- package/src/components/avatar/examples/comment-thread.tsx +1 -1
- package/src/components/avatar/examples/src-from-state.tsx +0 -1
- package/src/components/badge/examples/admin-tags.tsx +6 -6
- package/src/components/badge/examples/ecommerce-inventory.tsx +5 -5
- package/src/components/badge/examples/inbox-labels.tsx +5 -5
- package/src/components/badge/examples/status-presence.tsx +4 -4
- package/src/components/banner/examples/controlled-visibility.tsx +1 -1
- package/src/components/banner/examples/cookie-consent-row.tsx +0 -1
- package/src/components/banner/examples/feature-promo.tsx +0 -1
- package/src/components/button/examples/canonical-composition.tsx +4 -4
- package/src/components/button/examples/destructive-confirm.tsx +14 -10
- package/src/components/button/examples/form-submit-row.tsx +2 -2
- package/src/components/button/examples/full-width-stack.tsx +2 -2
- package/src/components/button/examples/icon-composition.tsx +6 -6
- package/src/components/button/examples/toolbar.tsx +4 -4
- package/src/components/button-group/COMPONENT.md +1 -1
- package/src/components/button-group/examples/editor-toolbar.tsx +1 -1
- package/src/components/button-group/examples/form-footer.tsx +1 -1
- package/src/components/button-group/examples/full-width.tsx +1 -1
- package/src/components/button-group/examples/view-switcher.tsx +1 -1
- package/src/components/button-group/examples/wizard-actions.tsx +1 -1
- package/src/components/checkbox/examples/bulk-select-rows.tsx +0 -2
- package/src/components/checkbox/examples/empty-label-form.tsx +1 -2
- package/src/components/checkbox/examples/feature-flags-list.tsx +0 -1
- package/src/components/checkbox/examples/settings-panel.tsx +1 -4
- package/src/components/color-picker/COMPONENT.md +2 -2
- package/src/components/color-picker/examples/brand-kit.tsx +3 -3
- package/src/components/color-picker/examples/controlled-form-field.tsx +4 -6
- package/src/components/color-picker/examples/field-eyedropper.tsx +2 -2
- package/src/components/color-picker/examples/format-variants.tsx +2 -2
- package/src/components/color-picker/examples/full-width.tsx +2 -2
- package/src/components/color-picker/examples/minimal-popover.tsx +2 -2
- package/src/components/color-picker/examples/panel-placement.tsx +4 -4
- package/src/components/color-picker/examples/product-variant-swatch.tsx +2 -2
- package/src/components/color-picker/examples/readout-trigger.tsx +2 -2
- package/src/components/color-picker/examples/states.tsx +4 -4
- package/src/components/color-picker/examples/theme-accent.tsx +2 -7
- package/src/components/command-menu/examples/app-palette.tsx +1 -1
- package/src/components/command-menu/examples/composition-tags-footer.tsx +2 -7
- package/src/components/command-menu/examples/controlled-open-search.tsx +1 -1
- package/src/components/command-menu/examples/disabled-items.tsx +1 -1
- package/src/components/command-menu/examples/file-search.tsx +1 -1
- package/src/components/command-menu/examples/full-width-panel.tsx +1 -1
- package/src/components/command-menu/examples/item-icon-as.tsx +1 -1
- package/src/components/command-menu/examples/quick-actions.tsx +1 -1
- package/src/components/command-menu/examples/variants-density-items.tsx +2 -4
- package/src/components/data-table/COMPONENT.md +2 -0
- package/src/components/datepicker/examples/birthdate.tsx +2 -2
- package/src/components/datepicker/examples/booking.tsx +2 -2
- package/src/components/datepicker/examples/full-width-form.tsx +3 -10
- package/src/components/datepicker/examples/range-report.tsx +2 -2
- package/src/components/digit-input/examples/composition.tsx +3 -3
- package/src/components/digit-input/examples/error-state.tsx +3 -5
- package/src/components/digit-input/examples/otp-login.tsx +3 -3
- package/src/components/digit-input/examples/resend-and-clear.tsx +3 -9
- package/src/components/digit-input/examples/verification-step.tsx +4 -4
- package/src/components/divider/examples/card-splits.tsx +2 -2
- package/src/components/divider/examples/inset-stack.tsx +1 -1
- package/src/components/divider/examples/line-spacing-column.tsx +3 -3
- package/src/components/divider/examples/section-breaks.tsx +2 -6
- package/src/components/drawer/COMPONENT.md +1 -1
- package/src/components/drawer/examples/cart-preview.tsx +4 -4
- package/src/components/drawer/examples/explicit-panel.tsx +3 -3
- package/src/components/drawer/examples/filters-panel.tsx +7 -7
- package/src/components/drawer/examples/mobile-nav-sheet.tsx +3 -3
- package/src/components/drawer/examples/settings-side.tsx +6 -6
- package/src/components/dropdown/COMPONENT.md +5 -18
- package/src/components/dropdown/examples/account-menu.tsx +31 -33
- package/src/components/dropdown/examples/actions-menu.tsx +0 -1
- package/src/components/dropdown/examples/composition.tsx +1 -1
- package/src/components/dropdown/examples/controlled.tsx +1 -1
- package/src/components/dropdown/examples/dropdown-examples.module.css +0 -4
- package/src/components/dropdown/examples/full-width.tsx +0 -1
- package/src/components/dropdown/examples/select-like-list.tsx +1 -1
- package/src/components/dropdown/examples/states.tsx +1 -1
- package/src/components/dropdown/examples/variants.tsx +1 -1
- package/src/components/empty-page/COMPONENT.md +143 -0
- package/src/components/empty-page/examples/canonical.tsx +22 -0
- package/src/components/empty-page/examples/examples-demos.module.css +25 -0
- package/src/components/empty-page/examples/sizes.tsx +23 -0
- package/src/components/empty-page/examples/table-region.tsx +35 -0
- package/src/components/file-upload/examples/full-width.tsx +1 -1
- package/src/components/hint/examples/a11y-describedby.tsx +2 -4
- package/src/components/hint/examples/controlled-variant.tsx +1 -1
- package/src/components/hint/examples/error-hint.tsx +3 -5
- package/src/components/hint/examples/field-help.tsx +3 -5
- package/src/components/hint/examples/field-states.tsx +9 -19
- package/src/components/hint/examples/inline-tip-form.tsx +6 -10
- package/src/components/hint/examples/success-confirmation.tsx +3 -5
- package/src/components/hint/examples/variants.tsx +3 -9
- package/src/components/hint/examples/with-icon.tsx +1 -1
- package/src/components/input/examples/affix-url-and-amount.tsx +2 -2
- package/src/components/input/examples/checkout-full-width.tsx +2 -2
- package/src/components/input/examples/login-email.tsx +1 -5
- package/src/components/input/examples/password-with-hint.tsx +1 -1
- package/src/components/input/examples/search.tsx +0 -1
- package/src/components/kbd/examples/composition-chord-icon.tsx +1 -1
- package/src/components/kbd/examples/toolbar-hints.tsx +2 -2
- package/src/components/label/examples/with-icon.tsx +1 -1
- package/src/components/link-button/COMPONENT.md +1 -1
- package/src/components/link-button/examples/composition.tsx +3 -3
- package/src/components/link-button/examples/disabled.tsx +2 -4
- package/src/components/link-button/examples/external.tsx +1 -6
- package/src/components/link-button/examples/inline-text-link.tsx +2 -4
- package/src/components/link-button/examples/navigation-cluster.tsx +4 -12
- package/src/components/modal/COMPONENT.md +37 -19
- package/src/components/modal/examples/canonical-maximal.tsx +15 -11
- package/src/components/modal/examples/pattern-close-behavior.tsx +11 -7
- package/src/components/modal/examples/pattern-controlled.tsx +9 -7
- package/src/components/modal/examples/pattern-full-width-footer.tsx +3 -3
- package/src/components/modal/examples/pattern-portal-and-scroll.tsx +9 -7
- package/src/components/modal/examples/scenario-confirm-delete.tsx +14 -10
- package/src/components/modal/examples/scenario-edit-entity.tsx +18 -14
- package/src/components/modal/examples/scenario-legal-consent.tsx +10 -6
- package/src/components/modal/examples/scenario-multi-field-form.tsx +18 -20
- package/src/components/notification/examples/action-toast.tsx +0 -2
- package/src/components/notification/examples/error-success.tsx +0 -2
- package/src/components/page-content/COMPONENT.md +1 -0
- package/src/components/popover/COMPONENT.md +1 -1
- package/src/components/popover/examples/as-child.tsx +1 -1
- package/src/components/popover/examples/canonical-panel.tsx +2 -2
- package/src/components/popover/examples/composition.tsx +7 -7
- package/src/components/popover/examples/controlled.tsx +4 -4
- package/src/components/popover/examples/date-trigger.tsx +3 -10
- package/src/components/popover/examples/features.tsx +6 -13
- package/src/components/popover/examples/form-in-popover.tsx +5 -13
- package/src/components/popover/examples/full-width.tsx +2 -9
- package/src/components/popover/examples/inset-variants.tsx +6 -6
- package/src/components/popover/examples/placement.tsx +2 -7
- package/src/components/popover/examples/rich-content.tsx +6 -8
- package/src/components/popover/examples/sizes.tsx +5 -5
- package/src/components/popover/examples/states.tsx +4 -4
- package/src/components/progress-bar/examples/indeterminate-busy-state.tsx +1 -1
- package/src/components/progress-bar/examples/step-progress.tsx +0 -1
- package/src/components/progress-bar/examples/upload-progress.tsx +1 -1
- package/src/components/progress-bar/examples/wizard-composition.tsx +1 -1
- package/src/components/progress-circle/examples/a11y-label.tsx +1 -1
- package/src/components/progress-circle/examples/composition.tsx +2 -2
- package/src/components/progress-circle/examples/dashboard-ring.tsx +1 -6
- package/src/components/progress-circle/examples/max-scale.tsx +3 -3
- package/src/components/progress-circle/examples/states.tsx +5 -13
- package/src/components/radio/examples/notification-channel.tsx +3 -3
- package/src/components/radio/examples/plan-picker.tsx +0 -3
- package/src/components/radio/examples/settings-group.tsx +4 -4
- package/src/components/radio/examples/shipping-method.tsx +3 -3
- package/src/components/segmented-control/examples/canonical-composition.tsx +7 -7
- package/src/components/segmented-control/examples/composition.tsx +7 -7
- package/src/components/segmented-control/examples/features.tsx +3 -3
- package/src/components/segmented-control/examples/full-width.tsx +1 -1
- package/src/components/segmented-control/examples/pricing-toggle.tsx +0 -1
- package/src/components/segmented-control/examples/states.tsx +3 -3
- package/src/components/segmented-control/examples/view-mode.tsx +0 -1
- package/src/components/segmented-progress-bar/examples/size-ladder.tsx +1 -1
- package/src/components/select/COMPONENT.md +3 -3
- package/src/components/select/examples/01-country.tsx +2 -4
- package/src/components/select/examples/02-controlled.tsx +2 -4
- package/src/components/select/examples/03-groups.tsx +2 -4
- package/src/components/select/examples/04-full-width-form.tsx +4 -8
- package/src/components/select/examples/pattern-composition.tsx +1 -1
- package/src/components/select/examples/pattern-controlled.tsx +1 -1
- package/src/components/select/examples/pattern-features.tsx +1 -1
- package/src/components/select/examples/pattern-full-width.tsx +1 -1
- package/src/components/select/examples/pattern-native.tsx +1 -1
- package/src/components/select/examples/pattern-states.tsx +4 -4
- package/src/components/slider/COMPONENT.md +1 -1
- package/src/components/stepper/COMPONENT.md +1 -1
- package/src/components/stepper/examples/01-checkout-horizontal.tsx +1 -1
- package/src/components/stepper/examples/02-onboarding-vertical.tsx +1 -1
- package/src/components/stepper/examples/03-vertical-primitive-rail.tsx +1 -1
- package/src/components/stepper/examples/04-checkout-step-error.tsx +1 -1
- package/src/components/stepper/examples/05-horizontal-primitive.tsx +1 -1
- package/src/components/switch/COMPONENT.md +1 -1
- package/src/components/switch/examples/canonical-maximal.tsx +1 -1
- package/src/components/switch/examples/composition.tsx +1 -2
- package/src/components/switch/examples/controlled.tsx +1 -1
- package/src/components/switch/examples/full-width.tsx +1 -1
- package/src/components/switch/examples/scenario-billing-annual.tsx +1 -1
- package/src/components/switch/examples/scenario-feature-flag.tsx +1 -6
- package/src/components/switch/examples/scenario-settings-toggle.tsx +3 -3
- package/src/components/switch/examples/states.tsx +6 -6
- package/src/components/switch/examples/variants.tsx +2 -2
- package/src/components/tabs/COMPONENT.md +1 -1
- package/src/components/tabs/examples/01-settings-vertical-rail.tsx +1 -6
- package/src/components/tag/COMPONENT.md +1 -1
- package/src/components/tag/examples/01-filter-chips.tsx +1 -1
- package/src/components/tag/examples/02-removable-selected-values.tsx +1 -1
- package/src/components/tag/examples/03-status-metadata.tsx +3 -3
- package/src/components/tag/examples/controlled.tsx +1 -6
- package/src/components/tag/examples/removable.tsx +1 -1
- package/src/components/textarea/examples/01-support-ticket.tsx +0 -1
- package/src/components/textarea/examples/02-comment.tsx +1 -2
- package/src/components/textarea/examples/composition.tsx +2 -2
- package/src/components/textarea/examples/controlled.tsx +0 -1
- package/src/components/textarea/examples/features.tsx +3 -12
- package/src/components/textarea/examples/full-width.tsx +1 -1
- package/src/components/textarea/examples/states.tsx +4 -4
- package/src/components/textarea/examples/variants.tsx +2 -2
- package/src/components/tooltip/COMPONENT.md +0 -1
- package/src/components/tooltip/examples/canonical-icon-hint.tsx +1 -1
- package/src/components/tooltip/examples/composition.tsx +3 -9
- package/src/components/tooltip/examples/controlled.tsx +2 -2
- package/src/components/tooltip/examples/delay.tsx +1 -1
- package/src/components/tooltip/examples/long-content.tsx +2 -2
- package/src/components/tooltip/examples/side.tsx +4 -4
- package/src/components/tooltip/examples/states.tsx +2 -2
- package/src/components/tooltip/examples/surfaces.tsx +2 -2
- package/dist/components/dropdown/examples/inset.d.ts +0 -3
- package/dist/components/dropdown/examples/inset.d.ts.map +0 -1
- package/src/components/dropdown/examples/inset.tsx +0 -51
package/dist/index.js
CHANGED
|
@@ -3914,7 +3914,7 @@ function SelectComboboxRoot({
|
|
|
3914
3914
|
defaultValue,
|
|
3915
3915
|
onChange: handleChange
|
|
3916
3916
|
});
|
|
3917
|
-
const [
|
|
3917
|
+
const [selectedLabelBinding, setSelectedLabelBinding] = React37.useState(void 0);
|
|
3918
3918
|
const [isOpen, setIsOpen] = React37.useState(false);
|
|
3919
3919
|
const [highlightedValue, setHighlightedValue] = React37.useState(void 0);
|
|
3920
3920
|
const generatedId = React37.useId();
|
|
@@ -3925,13 +3925,13 @@ function SelectComboboxRoot({
|
|
|
3925
3925
|
selectedValueRef.current = selectedValue;
|
|
3926
3926
|
const onInitLabel = React37.useCallback((val, label) => {
|
|
3927
3927
|
if (val === selectedValueRef.current) {
|
|
3928
|
-
|
|
3928
|
+
setSelectedLabelBinding({ value: val, label });
|
|
3929
3929
|
}
|
|
3930
3930
|
}, []);
|
|
3931
3931
|
const onSelect = React37.useCallback(
|
|
3932
3932
|
(val, label) => {
|
|
3933
3933
|
setSelectedValue(val);
|
|
3934
|
-
|
|
3934
|
+
setSelectedLabelBinding({ value: val, label });
|
|
3935
3935
|
setIsOpen(false);
|
|
3936
3936
|
},
|
|
3937
3937
|
[setSelectedValue]
|
|
@@ -3946,7 +3946,7 @@ function SelectComboboxRoot({
|
|
|
3946
3946
|
hasError,
|
|
3947
3947
|
isOpen,
|
|
3948
3948
|
selectedValue,
|
|
3949
|
-
|
|
3949
|
+
selectedLabelBinding,
|
|
3950
3950
|
onSelect,
|
|
3951
3951
|
onClose,
|
|
3952
3952
|
onOpen,
|
|
@@ -4018,8 +4018,8 @@ var SelectTrigger = React37.forwardRef(
|
|
|
4018
4018
|
);
|
|
4019
4019
|
SelectTrigger.displayName = "SelectTrigger";
|
|
4020
4020
|
function SelectValue({ className }) {
|
|
4021
|
-
const {
|
|
4022
|
-
const display =
|
|
4021
|
+
const { selectedLabelBinding, selectedValue, placeholder } = useSelectContext();
|
|
4022
|
+
const display = selectedLabelBinding && selectedLabelBinding.value === selectedValue ? selectedLabelBinding.label : selectedValue ?? placeholder;
|
|
4023
4023
|
return /* @__PURE__ */ jsx26(
|
|
4024
4024
|
"span",
|
|
4025
4025
|
{
|
|
@@ -4155,7 +4155,7 @@ var SelectItem = React37.forwardRef(
|
|
|
4155
4155
|
const resolvedLabel = label ?? selectItemTextFromRest(rest) ?? (typeof children === "string" ? children : void 0) ?? value;
|
|
4156
4156
|
React37.useEffect(() => {
|
|
4157
4157
|
onInitLabel(value, resolvedLabel);
|
|
4158
|
-
}, [value, resolvedLabel, onInitLabel]);
|
|
4158
|
+
}, [value, resolvedLabel, onInitLabel, selectedValue]);
|
|
4159
4159
|
const handleClick = () => {
|
|
4160
4160
|
if (!disabled) onSelect(value, resolvedLabel);
|
|
4161
4161
|
};
|
|
@@ -4782,7 +4782,6 @@ var EyeDropperButton = React38.forwardRef(function EyeDropperButton2({ children,
|
|
|
4782
4782
|
className: cx(ColorPicker_default.eyeDropperSquare, className),
|
|
4783
4783
|
disabled: true,
|
|
4784
4784
|
mode: "stroke",
|
|
4785
|
-
size: "m",
|
|
4786
4785
|
tabIndex: -1,
|
|
4787
4786
|
type,
|
|
4788
4787
|
variant: "neutral",
|
|
@@ -4799,7 +4798,6 @@ var EyeDropperButton = React38.forwardRef(function EyeDropperButton2({ children,
|
|
|
4799
4798
|
"aria-label": ariaLabel ?? "\u041F\u0438\u043F\u0435\u0442\u043A\u0430",
|
|
4800
4799
|
className: cx(ColorPicker_default.eyeDropperSquare, className),
|
|
4801
4800
|
mode: "stroke",
|
|
4802
|
-
size: "m",
|
|
4803
4801
|
variant: "neutral",
|
|
4804
4802
|
onClick: (e) => {
|
|
4805
4803
|
onClick?.(e);
|
|
@@ -4852,10 +4850,88 @@ var ColorPicker = {
|
|
|
4852
4850
|
};
|
|
4853
4851
|
|
|
4854
4852
|
// src/components/command-menu/CommandMenu.tsx
|
|
4855
|
-
import * as
|
|
4853
|
+
import * as React41 from "react";
|
|
4856
4854
|
|
|
4857
4855
|
// src/components/modal/Modal.tsx
|
|
4856
|
+
import * as React40 from "react";
|
|
4857
|
+
|
|
4858
|
+
// src/hooks/useModalKeyboard.ts
|
|
4858
4859
|
import * as React39 from "react";
|
|
4860
|
+
function shouldBlockEnterConfirm(target) {
|
|
4861
|
+
if (!target || !(target instanceof HTMLElement)) {
|
|
4862
|
+
return false;
|
|
4863
|
+
}
|
|
4864
|
+
const el = target;
|
|
4865
|
+
if (el.isContentEditable) {
|
|
4866
|
+
return true;
|
|
4867
|
+
}
|
|
4868
|
+
if (el.closest('[contenteditable="true"]')) {
|
|
4869
|
+
return true;
|
|
4870
|
+
}
|
|
4871
|
+
const tag = el.tagName;
|
|
4872
|
+
if (tag === "TEXTAREA") {
|
|
4873
|
+
return true;
|
|
4874
|
+
}
|
|
4875
|
+
if (tag === "SELECT") {
|
|
4876
|
+
return true;
|
|
4877
|
+
}
|
|
4878
|
+
if (tag === "INPUT") {
|
|
4879
|
+
const { type } = el;
|
|
4880
|
+
return type === "checkbox" || type === "radio" || type === "file" || type === "button" || type === "submit" || type === "reset";
|
|
4881
|
+
}
|
|
4882
|
+
return false;
|
|
4883
|
+
}
|
|
4884
|
+
function useModalKeyboard({
|
|
4885
|
+
open,
|
|
4886
|
+
trapRef,
|
|
4887
|
+
closeOnEscape,
|
|
4888
|
+
onClose,
|
|
4889
|
+
confirmOnEnter,
|
|
4890
|
+
onEnterConfirm,
|
|
4891
|
+
primaryRef
|
|
4892
|
+
}) {
|
|
4893
|
+
useEscapeKey({ enabled: closeOnEscape && open, onEscape: onClose });
|
|
4894
|
+
React39.useEffect(() => {
|
|
4895
|
+
if (!open || !confirmOnEnter) {
|
|
4896
|
+
return;
|
|
4897
|
+
}
|
|
4898
|
+
const onKeyDown = (event) => {
|
|
4899
|
+
if (event.key !== "Enter" || event.repeat) {
|
|
4900
|
+
return;
|
|
4901
|
+
}
|
|
4902
|
+
const container = trapRef.current;
|
|
4903
|
+
if (!container) {
|
|
4904
|
+
return;
|
|
4905
|
+
}
|
|
4906
|
+
const active = document.activeElement;
|
|
4907
|
+
if (!active || !container.contains(active)) {
|
|
4908
|
+
return;
|
|
4909
|
+
}
|
|
4910
|
+
const header = container.querySelector("header");
|
|
4911
|
+
if (header && event.target instanceof Node && header.contains(event.target)) {
|
|
4912
|
+
return;
|
|
4913
|
+
}
|
|
4914
|
+
if (shouldBlockEnterConfirm(event.target)) {
|
|
4915
|
+
return;
|
|
4916
|
+
}
|
|
4917
|
+
if (onEnterConfirm) {
|
|
4918
|
+
onEnterConfirm(event);
|
|
4919
|
+
return;
|
|
4920
|
+
}
|
|
4921
|
+
const primary = primaryRef.current;
|
|
4922
|
+
if (!primary) {
|
|
4923
|
+
return;
|
|
4924
|
+
}
|
|
4925
|
+
if (active === primary) {
|
|
4926
|
+
return;
|
|
4927
|
+
}
|
|
4928
|
+
event.preventDefault();
|
|
4929
|
+
primary.click();
|
|
4930
|
+
};
|
|
4931
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
4932
|
+
return () => document.removeEventListener("keydown", onKeyDown, true);
|
|
4933
|
+
}, [open, confirmOnEnter, onEnterConfirm, primaryRef, trapRef]);
|
|
4934
|
+
}
|
|
4859
4935
|
|
|
4860
4936
|
// src/components/modal/Modal.module.css
|
|
4861
4937
|
var Modal_default = {
|
|
@@ -4881,9 +4957,9 @@ var Modal_default = {
|
|
|
4881
4957
|
import { jsx as jsx28, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
4882
4958
|
var MODAL_SHELL_SIZE = "m";
|
|
4883
4959
|
var [ModalProvider, useModalContext] = createComponentContext("Modal");
|
|
4884
|
-
var ModalContentShellContext =
|
|
4960
|
+
var ModalContentShellContext = React40.createContext(null);
|
|
4885
4961
|
function useModalContentShell() {
|
|
4886
|
-
const value =
|
|
4962
|
+
const value = React40.useContext(ModalContentShellContext);
|
|
4887
4963
|
if (value === null) {
|
|
4888
4964
|
throw new Error(
|
|
4889
4965
|
"[prime-ui-kit] Modal header block must be used inside the dialog panel (internal)."
|
|
@@ -4897,6 +4973,8 @@ function ModalRoot({
|
|
|
4897
4973
|
onOpenChange,
|
|
4898
4974
|
closeOnEscape = true,
|
|
4899
4975
|
closeOnOverlayClick = true,
|
|
4976
|
+
confirmOnEnter = true,
|
|
4977
|
+
onEnterConfirm,
|
|
4900
4978
|
children
|
|
4901
4979
|
}) {
|
|
4902
4980
|
const [isOpen, setIsOpen] = useControllableState({
|
|
@@ -4904,14 +4982,30 @@ function ModalRoot({
|
|
|
4904
4982
|
defaultValue: defaultOpen,
|
|
4905
4983
|
onChange: onOpenChange
|
|
4906
4984
|
});
|
|
4907
|
-
const
|
|
4908
|
-
const
|
|
4909
|
-
|
|
4985
|
+
const primaryActionRef = React40.useRef(null);
|
|
4986
|
+
const onOpen = React40.useCallback(() => setIsOpen(true), [setIsOpen]);
|
|
4987
|
+
const onClose = React40.useCallback(() => setIsOpen(false), [setIsOpen]);
|
|
4988
|
+
return /* @__PURE__ */ jsx28(
|
|
4989
|
+
ModalProvider,
|
|
4990
|
+
{
|
|
4991
|
+
value: {
|
|
4992
|
+
open: isOpen,
|
|
4993
|
+
onOpen,
|
|
4994
|
+
onClose,
|
|
4995
|
+
closeOnEscape,
|
|
4996
|
+
closeOnOverlayClick,
|
|
4997
|
+
confirmOnEnter,
|
|
4998
|
+
onEnterConfirm,
|
|
4999
|
+
primaryActionRef
|
|
5000
|
+
},
|
|
5001
|
+
children
|
|
5002
|
+
}
|
|
5003
|
+
);
|
|
4910
5004
|
}
|
|
4911
5005
|
function ModalTrigger({ children }) {
|
|
4912
5006
|
const { onOpen } = useModalContext();
|
|
4913
|
-
const child =
|
|
4914
|
-
return
|
|
5007
|
+
const child = React40.Children.only(children);
|
|
5008
|
+
return React40.cloneElement(child, {
|
|
4915
5009
|
onClick: (event) => {
|
|
4916
5010
|
child.props.onClick?.(event);
|
|
4917
5011
|
if (!event.defaultPrevented) {
|
|
@@ -4920,10 +5014,13 @@ function ModalTrigger({ children }) {
|
|
|
4920
5014
|
}
|
|
4921
5015
|
});
|
|
4922
5016
|
}
|
|
4923
|
-
|
|
5017
|
+
var ModalClose = React40.forwardRef(function ModalClose2({ children }, forwardedRef) {
|
|
4924
5018
|
const { onClose } = useModalContext();
|
|
4925
|
-
const child =
|
|
4926
|
-
|
|
5019
|
+
const child = React40.Children.only(children);
|
|
5020
|
+
const childRef = child.ref;
|
|
5021
|
+
const mergedRef = mergeRefs(childRef, forwardedRef);
|
|
5022
|
+
return React40.cloneElement(child, {
|
|
5023
|
+
ref: mergedRef,
|
|
4927
5024
|
onClick: (event) => {
|
|
4928
5025
|
child.props.onClick?.(event);
|
|
4929
5026
|
if (!event.defaultPrevented) {
|
|
@@ -4931,6 +5028,24 @@ function ModalClose({ children }) {
|
|
|
4931
5028
|
}
|
|
4932
5029
|
}
|
|
4933
5030
|
});
|
|
5031
|
+
});
|
|
5032
|
+
function FooterPrimarySlot({
|
|
5033
|
+
children
|
|
5034
|
+
}) {
|
|
5035
|
+
const { primaryActionRef } = useModalContext();
|
|
5036
|
+
const child = React40.Children.only(children);
|
|
5037
|
+
const childRef = child.ref;
|
|
5038
|
+
const mergedRef = mergeRefs(childRef, (node) => {
|
|
5039
|
+
primaryActionRef.current = node;
|
|
5040
|
+
});
|
|
5041
|
+
return React40.cloneElement(child, { ref: mergedRef });
|
|
5042
|
+
}
|
|
5043
|
+
function ModalFooter({ primary, secondary, extra, className, ...rest }) {
|
|
5044
|
+
return /* @__PURE__ */ jsxs11("footer", { className: cx(Modal_default.footer, className), "data-prime-modal-footer": "", ...rest, children: [
|
|
5045
|
+
secondary,
|
|
5046
|
+
extra,
|
|
5047
|
+
primary != null ? /* @__PURE__ */ jsx28(FooterPrimarySlot, { children: primary }) : null
|
|
5048
|
+
] });
|
|
4934
5049
|
}
|
|
4935
5050
|
function ModalPortal({ children, container }) {
|
|
4936
5051
|
const { open } = useModalContext();
|
|
@@ -4946,7 +5061,7 @@ function ModalOverlay({ className, onClick, children, ...rest }) {
|
|
|
4946
5061
|
}
|
|
4947
5062
|
};
|
|
4948
5063
|
return (
|
|
4949
|
-
// biome-ignore lint/a11y/noStaticElementInteractions: backdrop overlay; keyboard
|
|
5064
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: backdrop overlay; keyboard handled by useModalKeyboard in ModalContent
|
|
4950
5065
|
/* @__PURE__ */ jsx28(
|
|
4951
5066
|
"div",
|
|
4952
5067
|
{
|
|
@@ -4971,16 +5086,16 @@ function ModalContent({
|
|
|
4971
5086
|
"aria-describedby": ariaDescribedByProp,
|
|
4972
5087
|
...rest
|
|
4973
5088
|
}) {
|
|
4974
|
-
const { open, onClose, closeOnEscape } = useModalContext();
|
|
4975
|
-
const internalTitleId =
|
|
4976
|
-
const internalDescId =
|
|
5089
|
+
const { open, onClose, closeOnEscape, confirmOnEnter, onEnterConfirm, primaryActionRef } = useModalContext();
|
|
5090
|
+
const internalTitleId = React40.useId();
|
|
5091
|
+
const internalDescId = React40.useId();
|
|
4977
5092
|
const titleId = ariaLabelledByProp ?? internalTitleId;
|
|
4978
5093
|
const descId = ariaDescribedByProp ?? internalDescId;
|
|
4979
|
-
const [headerState, setHeaderState] =
|
|
4980
|
-
const registerHeader =
|
|
5094
|
+
const [headerState, setHeaderState] = React40.useState(null);
|
|
5095
|
+
const registerHeader = React40.useCallback((state) => {
|
|
4981
5096
|
setHeaderState(state);
|
|
4982
5097
|
}, []);
|
|
4983
|
-
const shellValue =
|
|
5098
|
+
const shellValue = React40.useMemo(
|
|
4984
5099
|
() => ({ titleId, descId, registerHeader }),
|
|
4985
5100
|
[titleId, descId, registerHeader]
|
|
4986
5101
|
);
|
|
@@ -4988,8 +5103,16 @@ function ModalContent({
|
|
|
4988
5103
|
const ariaDescribedByResolved = ariaDescribedByProp ?? (headerState?.hasDescription ? descId : void 0);
|
|
4989
5104
|
const trapRef = useFocusTrap({ enabled: open });
|
|
4990
5105
|
useScrollLock(open);
|
|
4991
|
-
|
|
4992
|
-
|
|
5106
|
+
useModalKeyboard({
|
|
5107
|
+
open,
|
|
5108
|
+
trapRef,
|
|
5109
|
+
closeOnEscape,
|
|
5110
|
+
onClose,
|
|
5111
|
+
confirmOnEnter,
|
|
5112
|
+
onEnterConfirm,
|
|
5113
|
+
primaryRef: primaryActionRef
|
|
5114
|
+
});
|
|
5115
|
+
React40.useEffect(() => {
|
|
4993
5116
|
if (!open) return;
|
|
4994
5117
|
const container = trapRef.current;
|
|
4995
5118
|
if (!container) return;
|
|
@@ -5046,7 +5169,7 @@ function ModalHeader({
|
|
|
5046
5169
|
const { onClose } = useModalContext();
|
|
5047
5170
|
const { titleId, descId, registerHeader } = useModalContentShell();
|
|
5048
5171
|
const hasDescription = description != null && description !== "";
|
|
5049
|
-
|
|
5172
|
+
React40.useLayoutEffect(() => {
|
|
5050
5173
|
registerHeader({
|
|
5051
5174
|
hasDescription
|
|
5052
5175
|
});
|
|
@@ -5089,9 +5212,6 @@ function ModalHeader({
|
|
|
5089
5212
|
function ModalBody({ children, className, ...rest }) {
|
|
5090
5213
|
return /* @__PURE__ */ jsx28("div", { className: cx(Modal_default.body, className), ...rest, children });
|
|
5091
5214
|
}
|
|
5092
|
-
function ModalFooter({ children, className, ...rest }) {
|
|
5093
|
-
return /* @__PURE__ */ jsx28("footer", { className: cx(Modal_default.footer, className), ...rest, children });
|
|
5094
|
-
}
|
|
5095
5215
|
function ModalPanel({
|
|
5096
5216
|
container,
|
|
5097
5217
|
overlayClassName,
|
|
@@ -5113,6 +5233,9 @@ function ModalPanel({
|
|
|
5113
5233
|
...rest
|
|
5114
5234
|
}) {
|
|
5115
5235
|
const hasHeader = title != null && title !== "";
|
|
5236
|
+
const footerNode = footer != null ? React40.isValidElement(footer) && footer.type === ModalFooter ? React40.cloneElement(footer, {
|
|
5237
|
+
className: cx(footer.props.className, footerClassName)
|
|
5238
|
+
}) : /* @__PURE__ */ jsx28("footer", { className: cx(Modal_default.footer, footerClassName), children: footer }) : null;
|
|
5116
5239
|
return /* @__PURE__ */ jsx28(ModalLayer, { className: overlayClassName, container, children: /* @__PURE__ */ jsxs11(
|
|
5117
5240
|
ModalContent,
|
|
5118
5241
|
{
|
|
@@ -5134,7 +5257,7 @@ function ModalPanel({
|
|
|
5134
5257
|
}
|
|
5135
5258
|
) : null,
|
|
5136
5259
|
children != null ? hasHeader ? /* @__PURE__ */ jsx28(ModalBody, { className: bodyClassName, style: bodyStyle, children }) : children : null,
|
|
5137
|
-
|
|
5260
|
+
footerNode
|
|
5138
5261
|
]
|
|
5139
5262
|
}
|
|
5140
5263
|
) });
|
|
@@ -5143,6 +5266,7 @@ var Modal = {
|
|
|
5143
5266
|
Root: ModalRoot,
|
|
5144
5267
|
Trigger: ModalTrigger,
|
|
5145
5268
|
Close: ModalClose,
|
|
5269
|
+
Footer: ModalFooter,
|
|
5146
5270
|
Panel: ModalPanel
|
|
5147
5271
|
};
|
|
5148
5272
|
|
|
@@ -5190,27 +5314,27 @@ function matchesQuery(entry, query) {
|
|
|
5190
5314
|
return hay.includes(q);
|
|
5191
5315
|
}
|
|
5192
5316
|
var [CommandMenuProvider, useCommandMenuContext] = createComponentContext("CommandMenu");
|
|
5193
|
-
var CommandMenuGroupContext =
|
|
5317
|
+
var CommandMenuGroupContext = React41.createContext("");
|
|
5194
5318
|
function CommandMenuRootProvider({ children }) {
|
|
5195
|
-
const listboxId =
|
|
5196
|
-
const inputRef =
|
|
5197
|
-
const itemsRef =
|
|
5198
|
-
const orderSeqRef =
|
|
5199
|
-
const orderMapRef =
|
|
5200
|
-
const [version, bump] =
|
|
5201
|
-
const [search, setSearch] =
|
|
5202
|
-
const [activeId, setActiveId] =
|
|
5203
|
-
|
|
5319
|
+
const listboxId = React41.useId();
|
|
5320
|
+
const inputRef = React41.useRef(null);
|
|
5321
|
+
const itemsRef = React41.useRef(/* @__PURE__ */ new Map());
|
|
5322
|
+
const orderSeqRef = React41.useRef(0);
|
|
5323
|
+
const orderMapRef = React41.useRef(/* @__PURE__ */ new Map());
|
|
5324
|
+
const [version, bump] = React41.useReducer((n) => n + 1, 0);
|
|
5325
|
+
const [search, setSearch] = React41.useState("");
|
|
5326
|
+
const [activeId, setActiveId] = React41.useState(null);
|
|
5327
|
+
React41.useLayoutEffect(() => {
|
|
5204
5328
|
orderSeqRef.current = 0;
|
|
5205
5329
|
orderMapRef.current.clear();
|
|
5206
5330
|
}, []);
|
|
5207
|
-
|
|
5331
|
+
React41.useEffect(() => {
|
|
5208
5332
|
setSearch("");
|
|
5209
5333
|
setActiveId(null);
|
|
5210
5334
|
const id = requestAnimationFrame(() => inputRef.current?.focus());
|
|
5211
5335
|
return () => cancelAnimationFrame(id);
|
|
5212
5336
|
}, []);
|
|
5213
|
-
const registerItem =
|
|
5337
|
+
const registerItem = React41.useCallback(
|
|
5214
5338
|
(id, patch) => {
|
|
5215
5339
|
let order = orderMapRef.current.get(id);
|
|
5216
5340
|
if (order === void 0) {
|
|
@@ -5226,20 +5350,20 @@ function CommandMenuRootProvider({ children }) {
|
|
|
5226
5350
|
},
|
|
5227
5351
|
[]
|
|
5228
5352
|
);
|
|
5229
|
-
const visibleIds =
|
|
5353
|
+
const visibleIds = React41.useMemo(() => {
|
|
5230
5354
|
void version;
|
|
5231
5355
|
const list = [...itemsRef.current.values()].sort((a, b) => a.order - b.order);
|
|
5232
5356
|
return list.filter((e) => matchesQuery(e, search)).filter((e) => !e.disabled).map((e) => e.id);
|
|
5233
5357
|
}, [search, version]);
|
|
5234
|
-
const itemGet =
|
|
5235
|
-
|
|
5358
|
+
const itemGet = React41.useCallback((id) => itemsRef.current.get(id), []);
|
|
5359
|
+
React41.useLayoutEffect(() => {
|
|
5236
5360
|
setActiveId((prev) => {
|
|
5237
5361
|
if (visibleIds.length === 0) return null;
|
|
5238
5362
|
if (prev && visibleIds.includes(prev)) return prev;
|
|
5239
5363
|
return visibleIds[0] ?? null;
|
|
5240
5364
|
});
|
|
5241
5365
|
}, [visibleIds]);
|
|
5242
|
-
const moveActive =
|
|
5366
|
+
const moveActive = React41.useCallback(
|
|
5243
5367
|
(delta) => {
|
|
5244
5368
|
if (visibleIds.length === 0) return;
|
|
5245
5369
|
setActiveId((prev) => {
|
|
@@ -5250,11 +5374,11 @@ function CommandMenuRootProvider({ children }) {
|
|
|
5250
5374
|
},
|
|
5251
5375
|
[visibleIds]
|
|
5252
5376
|
);
|
|
5253
|
-
const activateSelected =
|
|
5377
|
+
const activateSelected = React41.useCallback(() => {
|
|
5254
5378
|
if (!activeId) return;
|
|
5255
5379
|
itemsRef.current.get(activeId)?.onSelectRef.current?.();
|
|
5256
5380
|
}, [activeId]);
|
|
5257
|
-
const value =
|
|
5381
|
+
const value = React41.useMemo(
|
|
5258
5382
|
() => ({
|
|
5259
5383
|
search,
|
|
5260
5384
|
setSearch,
|
|
@@ -5348,7 +5472,7 @@ function CommandMenuInputRow({
|
|
|
5348
5472
|
}
|
|
5349
5473
|
);
|
|
5350
5474
|
}
|
|
5351
|
-
var CommandMenuInput =
|
|
5475
|
+
var CommandMenuInput = React41.forwardRef(
|
|
5352
5476
|
({ className, onKeyDown, value: valueProp, onChange, ...rest }, forwardedRef) => {
|
|
5353
5477
|
const {
|
|
5354
5478
|
search,
|
|
@@ -5362,12 +5486,12 @@ var CommandMenuInput = React40.forwardRef(
|
|
|
5362
5486
|
visibleIds
|
|
5363
5487
|
} = useCommandMenuContext();
|
|
5364
5488
|
const isControlled = valueProp !== void 0;
|
|
5365
|
-
|
|
5489
|
+
React41.useEffect(() => {
|
|
5366
5490
|
if (isControlled) {
|
|
5367
5491
|
setSearch(valueProp !== void 0 && valueProp !== null ? String(valueProp) : "");
|
|
5368
5492
|
}
|
|
5369
5493
|
}, [isControlled, valueProp, setSearch]);
|
|
5370
|
-
const setRefs =
|
|
5494
|
+
const setRefs = React41.useCallback(
|
|
5371
5495
|
(node) => {
|
|
5372
5496
|
inputRef.current = node;
|
|
5373
5497
|
if (typeof forwardedRef === "function") {
|
|
@@ -5435,7 +5559,7 @@ var CommandMenuInput = React40.forwardRef(
|
|
|
5435
5559
|
}
|
|
5436
5560
|
);
|
|
5437
5561
|
CommandMenuInput.displayName = "CommandMenu.Input";
|
|
5438
|
-
var CommandMenuList =
|
|
5562
|
+
var CommandMenuList = React41.forwardRef(
|
|
5439
5563
|
({ className, children, ...rest }, ref) => {
|
|
5440
5564
|
const { listboxId } = useCommandMenuContext();
|
|
5441
5565
|
return /* @__PURE__ */ jsx29(
|
|
@@ -5454,7 +5578,7 @@ var CommandMenuList = React40.forwardRef(
|
|
|
5454
5578
|
);
|
|
5455
5579
|
CommandMenuList.displayName = "CommandMenu.List";
|
|
5456
5580
|
function CommandMenuGroup({ heading, className, children, ...rest }) {
|
|
5457
|
-
const groupId =
|
|
5581
|
+
const groupId = React41.useId();
|
|
5458
5582
|
const { visibleIds, itemGet } = useCommandMenuContext();
|
|
5459
5583
|
const hasVisible = visibleIds.some((id) => itemGet(id)?.groupId === groupId);
|
|
5460
5584
|
return /* @__PURE__ */ jsx29(CommandMenuGroupContext.Provider, { value: groupId, children: /* @__PURE__ */ jsxs12("div", { className: cx(CommandMenu_default.group, className), hidden: hasVisible ? void 0 : true, ...rest, children: [
|
|
@@ -5462,7 +5586,7 @@ function CommandMenuGroup({ heading, className, children, ...rest }) {
|
|
|
5462
5586
|
children
|
|
5463
5587
|
] }) });
|
|
5464
5588
|
}
|
|
5465
|
-
var CommandMenuItem =
|
|
5589
|
+
var CommandMenuItem = React41.forwardRef(
|
|
5466
5590
|
({
|
|
5467
5591
|
className,
|
|
5468
5592
|
value,
|
|
@@ -5474,15 +5598,15 @@ var CommandMenuItem = React40.forwardRef(
|
|
|
5474
5598
|
onPointerMove,
|
|
5475
5599
|
...rest
|
|
5476
5600
|
}, forwardedRef) => {
|
|
5477
|
-
const id =
|
|
5601
|
+
const id = React41.useId();
|
|
5478
5602
|
const optionId = `${id}-option`;
|
|
5479
|
-
const groupId =
|
|
5603
|
+
const groupId = React41.useContext(CommandMenuGroupContext);
|
|
5480
5604
|
const { registerItem, activeId, setActiveId, visibleIds } = useCommandMenuContext();
|
|
5481
|
-
const onSelectRef =
|
|
5482
|
-
|
|
5605
|
+
const onSelectRef = React41.useRef(onSelect);
|
|
5606
|
+
React41.useEffect(() => {
|
|
5483
5607
|
onSelectRef.current = onSelect;
|
|
5484
5608
|
}, [onSelect]);
|
|
5485
|
-
|
|
5609
|
+
React41.useLayoutEffect(() => {
|
|
5486
5610
|
return registerItem(id, {
|
|
5487
5611
|
value,
|
|
5488
5612
|
keywords,
|
|
@@ -5493,8 +5617,8 @@ var CommandMenuItem = React40.forwardRef(
|
|
|
5493
5617
|
}, [id, value, keywords, disabled, groupId, registerItem]);
|
|
5494
5618
|
const filteredIn = visibleIds.includes(id);
|
|
5495
5619
|
const selected = activeId === id;
|
|
5496
|
-
const listRef =
|
|
5497
|
-
const setRefs =
|
|
5620
|
+
const listRef = React41.useRef(null);
|
|
5621
|
+
const setRefs = React41.useCallback(
|
|
5498
5622
|
(node) => {
|
|
5499
5623
|
listRef.current = node;
|
|
5500
5624
|
if (typeof forwardedRef === "function") {
|
|
@@ -5505,7 +5629,7 @@ var CommandMenuItem = React40.forwardRef(
|
|
|
5505
5629
|
},
|
|
5506
5630
|
[forwardedRef]
|
|
5507
5631
|
);
|
|
5508
|
-
|
|
5632
|
+
React41.useEffect(() => {
|
|
5509
5633
|
if (selected && listRef.current) {
|
|
5510
5634
|
listRef.current.scrollIntoView?.({ block: "nearest" });
|
|
5511
5635
|
}
|
|
@@ -5567,7 +5691,7 @@ function CommandMenuTagRow({ className, ...rest }) {
|
|
|
5567
5691
|
function CommandMenuFooter({ className, ...rest }) {
|
|
5568
5692
|
return /* @__PURE__ */ jsx29("div", { className: cx(CommandMenu_default.footer, className), ...rest });
|
|
5569
5693
|
}
|
|
5570
|
-
var CommandMenuFooterKeyBox =
|
|
5694
|
+
var CommandMenuFooterKeyBox = React41.forwardRef(
|
|
5571
5695
|
({ className, children, tone = "default", ...rest }, ref) => {
|
|
5572
5696
|
const variant = tone === "muted" ? "lighter" : "stroke";
|
|
5573
5697
|
return /* @__PURE__ */ jsx29(
|
|
@@ -5604,7 +5728,7 @@ var CommandMenu = {
|
|
|
5604
5728
|
|
|
5605
5729
|
// src/components/data-table/DataTable.tsx
|
|
5606
5730
|
import { ArrowDown, ArrowUp, ArrowUpDown } from "lucide-react";
|
|
5607
|
-
import * as
|
|
5731
|
+
import * as React42 from "react";
|
|
5608
5732
|
|
|
5609
5733
|
// src/internal/runtimeUnits.ts
|
|
5610
5734
|
var CSS_PX_SUFFIX = "px";
|
|
@@ -5820,11 +5944,11 @@ function DataTableRoot({
|
|
|
5820
5944
|
highlightColumnOnHover = false,
|
|
5821
5945
|
striped = false
|
|
5822
5946
|
}) {
|
|
5823
|
-
const [hoveredColumnId, setHoveredColumnId] =
|
|
5824
|
-
const clearHoveredColumn =
|
|
5947
|
+
const [hoveredColumnId, setHoveredColumnId] = React42.useState(null);
|
|
5948
|
+
const clearHoveredColumn = React42.useCallback(() => {
|
|
5825
5949
|
setHoveredColumnId(null);
|
|
5826
5950
|
}, []);
|
|
5827
|
-
const setHoveredColumn =
|
|
5951
|
+
const setHoveredColumn = React42.useCallback(
|
|
5828
5952
|
(columnId) => {
|
|
5829
5953
|
if (highlightColumnOnHover) setHoveredColumnId(columnId);
|
|
5830
5954
|
},
|
|
@@ -5841,19 +5965,19 @@ function DataTableRoot({
|
|
|
5841
5965
|
onChange: onPageChange
|
|
5842
5966
|
});
|
|
5843
5967
|
const initialVisible = Math.max(1, initialVisibleRows ?? pageSize);
|
|
5844
|
-
const [visibleRowCount, setVisibleRowCount] =
|
|
5845
|
-
const scrollRef =
|
|
5846
|
-
const sentinelRef =
|
|
5847
|
-
|
|
5968
|
+
const [visibleRowCount, setVisibleRowCount] = React42.useState(initialVisible);
|
|
5969
|
+
const scrollRef = React42.useRef(null);
|
|
5970
|
+
const sentinelRef = React42.useRef(null);
|
|
5971
|
+
React42.useLayoutEffect(() => {
|
|
5848
5972
|
const viewport = scrollRef.current;
|
|
5849
5973
|
if (!viewport) return;
|
|
5850
5974
|
viewport.style.maxHeight = infiniteScroll ? typeof scrollHeight === "number" ? `${scrollHeight}px` : scrollHeight : "";
|
|
5851
5975
|
}, [infiniteScroll, scrollHeight]);
|
|
5852
|
-
const sortableColumns =
|
|
5976
|
+
const sortableColumns = React42.useMemo(
|
|
5853
5977
|
() => new Set(columns.filter((c) => c.sortable).map((c) => c.id)),
|
|
5854
5978
|
[columns]
|
|
5855
5979
|
);
|
|
5856
|
-
const sortedRows =
|
|
5980
|
+
const sortedRows = React42.useMemo(() => {
|
|
5857
5981
|
if (!sortState || !sortableColumns.has(sortState.columnId)) return rows;
|
|
5858
5982
|
const column = columns.find((item) => item.id === sortState.columnId);
|
|
5859
5983
|
if (!column) return rows;
|
|
@@ -5868,21 +5992,21 @@ function DataTableRoot({
|
|
|
5868
5992
|
const safePageSize = Math.max(1, pageSize);
|
|
5869
5993
|
const totalPages = Math.max(1, Math.ceil(totalRows / safePageSize));
|
|
5870
5994
|
const safePage = clamp(pageState, 1, totalPages);
|
|
5871
|
-
|
|
5995
|
+
React42.useEffect(() => {
|
|
5872
5996
|
if (safePage !== pageState) setPageState(safePage);
|
|
5873
5997
|
}, [pageState, safePage, setPageState]);
|
|
5874
|
-
|
|
5998
|
+
React42.useEffect(() => {
|
|
5875
5999
|
if (infiniteScroll) {
|
|
5876
6000
|
setVisibleRowCount(initialVisible);
|
|
5877
6001
|
return;
|
|
5878
6002
|
}
|
|
5879
6003
|
setPageState(1);
|
|
5880
6004
|
}, [infiniteScroll, initialVisible, setPageState]);
|
|
5881
|
-
|
|
6005
|
+
React42.useEffect(() => {
|
|
5882
6006
|
if (!infiniteScroll) return;
|
|
5883
6007
|
setVisibleRowCount((prev) => clamp(prev, initialVisible, Math.max(initialVisible, totalRows)));
|
|
5884
6008
|
}, [infiniteScroll, initialVisible, totalRows]);
|
|
5885
|
-
const displayedRows =
|
|
6009
|
+
const displayedRows = React42.useMemo(() => {
|
|
5886
6010
|
if (infiniteScroll) {
|
|
5887
6011
|
return sortedRows.slice(0, visibleRowCount);
|
|
5888
6012
|
}
|
|
@@ -5892,7 +6016,7 @@ function DataTableRoot({
|
|
|
5892
6016
|
}, [infiniteScroll, safePage, safePageSize, sortedRows, visibleRowCount]);
|
|
5893
6017
|
const hasInternalMore = infiniteScroll && displayedRows.length < totalRows;
|
|
5894
6018
|
const canRequestMore = infiniteScroll && Boolean(onLoadMore) && hasMore && !loadingMore;
|
|
5895
|
-
const handleReachEnd =
|
|
6019
|
+
const handleReachEnd = React42.useCallback(() => {
|
|
5896
6020
|
if (!infiniteScroll) return;
|
|
5897
6021
|
if (hasInternalMore) {
|
|
5898
6022
|
setVisibleRowCount((prev) => Math.min(prev + Math.max(1, infiniteBatchSize), totalRows));
|
|
@@ -5902,7 +6026,7 @@ function DataTableRoot({
|
|
|
5902
6026
|
void onLoadMore();
|
|
5903
6027
|
}
|
|
5904
6028
|
}, [canRequestMore, hasInternalMore, infiniteBatchSize, infiniteScroll, onLoadMore, totalRows]);
|
|
5905
|
-
|
|
6029
|
+
React42.useEffect(() => {
|
|
5906
6030
|
if (!infiniteScroll) return;
|
|
5907
6031
|
const root = scrollRef.current;
|
|
5908
6032
|
const target = sentinelRef.current;
|
|
@@ -6079,7 +6203,7 @@ var DataTable = {
|
|
|
6079
6203
|
|
|
6080
6204
|
// src/components/datepicker/Datepicker.tsx
|
|
6081
6205
|
import { ChevronDown as ChevronDown2, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight3 } from "lucide-react";
|
|
6082
|
-
import * as
|
|
6206
|
+
import * as React44 from "react";
|
|
6083
6207
|
import {
|
|
6084
6208
|
DayPicker,
|
|
6085
6209
|
getDefaultClassNames,
|
|
@@ -6087,14 +6211,14 @@ import {
|
|
|
6087
6211
|
} from "react-day-picker";
|
|
6088
6212
|
|
|
6089
6213
|
// src/hooks/useResponsiveMonths.ts
|
|
6090
|
-
import * as
|
|
6214
|
+
import * as React43 from "react";
|
|
6091
6215
|
var DEFAULT_BREAKPOINTS = {
|
|
6092
6216
|
twoColumns: 520
|
|
6093
6217
|
};
|
|
6094
6218
|
function useResponsiveMonths(breakpoints = DEFAULT_BREAKPOINTS, container = null) {
|
|
6095
6219
|
const { twoColumns } = breakpoints;
|
|
6096
|
-
const [count, setCount] =
|
|
6097
|
-
|
|
6220
|
+
const [count, setCount] = React43.useState(1);
|
|
6221
|
+
React43.useEffect(() => {
|
|
6098
6222
|
if (!container) return;
|
|
6099
6223
|
let rafId = null;
|
|
6100
6224
|
const syncByWidth = (width) => {
|
|
@@ -6158,9 +6282,9 @@ var Datepicker_default = {
|
|
|
6158
6282
|
// src/components/datepicker/Datepicker.tsx
|
|
6159
6283
|
import { jsx as jsx32, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
6160
6284
|
var DEFAULT_RESPONSIVE = { twoColumns: 500 };
|
|
6161
|
-
var DatepickerSizeContext =
|
|
6285
|
+
var DatepickerSizeContext = React44.createContext(void 0);
|
|
6162
6286
|
DatepickerSizeContext.displayName = "DatepickerSizeContext";
|
|
6163
|
-
var DatepickerMonthContext =
|
|
6287
|
+
var DatepickerMonthContext = React44.createContext(
|
|
6164
6288
|
void 0
|
|
6165
6289
|
);
|
|
6166
6290
|
DatepickerMonthContext.displayName = "DatepickerMonthContext";
|
|
@@ -6223,7 +6347,7 @@ function DatepickerMonthCaption({
|
|
|
6223
6347
|
displayIndex,
|
|
6224
6348
|
...rest
|
|
6225
6349
|
}) {
|
|
6226
|
-
const inheritedSize =
|
|
6350
|
+
const inheritedSize = React44.useContext(DatepickerSizeContext);
|
|
6227
6351
|
const size = inheritedSize ?? "m";
|
|
6228
6352
|
const { dayPickerProps, goToMonth, previousMonth, nextMonth } = useDayPicker();
|
|
6229
6353
|
const monthsCount = dayPickerProps.numberOfMonths ?? 1;
|
|
@@ -6275,20 +6399,20 @@ function Calendar({
|
|
|
6275
6399
|
size: sizeProp,
|
|
6276
6400
|
...rest
|
|
6277
6401
|
}) {
|
|
6278
|
-
const inheritedSize =
|
|
6279
|
-
const monthContext =
|
|
6402
|
+
const inheritedSize = React44.useContext(DatepickerSizeContext);
|
|
6403
|
+
const monthContext = React44.useContext(DatepickerMonthContext);
|
|
6280
6404
|
const size = sizeProp ?? inheritedSize ?? "m";
|
|
6281
6405
|
const breakpoints = responsiveBreakpoints ?? DEFAULT_RESPONSIVE;
|
|
6282
|
-
const [containerEl, setContainerEl] =
|
|
6283
|
-
const callbackRef =
|
|
6406
|
+
const [containerEl, setContainerEl] = React44.useState(null);
|
|
6407
|
+
const callbackRef = React44.useCallback((node) => {
|
|
6284
6408
|
setContainerEl(node);
|
|
6285
6409
|
}, []);
|
|
6286
6410
|
const responsiveN = useResponsiveMonths(breakpoints, containerEl);
|
|
6287
6411
|
const numberOfMonths = responsiveMonths === true ? responsiveN : numberOfMonthsProp ?? 1;
|
|
6288
|
-
const [localMonth, setLocalMonth] =
|
|
6412
|
+
const [localMonth, setLocalMonth] = React44.useState(() => {
|
|
6289
6413
|
return monthProp ?? monthContext?.requestedMonth;
|
|
6290
6414
|
});
|
|
6291
|
-
|
|
6415
|
+
React44.useEffect(() => {
|
|
6292
6416
|
if (monthProp === void 0 && monthContext?.requestedMonth) {
|
|
6293
6417
|
setLocalMonth(monthContext.requestedMonth);
|
|
6294
6418
|
}
|
|
@@ -6306,7 +6430,7 @@ function Calendar({
|
|
|
6306
6430
|
};
|
|
6307
6431
|
const mergedStyle = style && typeof style === "object" ? { ...style } : {};
|
|
6308
6432
|
const resolvedMonth = monthProp ?? localMonth;
|
|
6309
|
-
const handleMonthChange =
|
|
6433
|
+
const handleMonthChange = React44.useCallback(
|
|
6310
6434
|
(next) => {
|
|
6311
6435
|
if (monthProp === void 0) {
|
|
6312
6436
|
setLocalMonth(next);
|
|
@@ -6339,7 +6463,7 @@ function Calendar({
|
|
|
6339
6463
|
Calendar.displayName = "Datepicker.Calendar";
|
|
6340
6464
|
function Shell({ children, className, presets, size = "m" }) {
|
|
6341
6465
|
const has = presets != null;
|
|
6342
|
-
const [requestedMonth, requestMonth] =
|
|
6466
|
+
const [requestedMonth, requestMonth] = React44.useState();
|
|
6343
6467
|
return /* @__PURE__ */ jsx32(DatepickerSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx32(DatepickerMonthContext.Provider, { value: { requestedMonth, requestMonth }, children: /* @__PURE__ */ jsxs15(
|
|
6344
6468
|
"div",
|
|
6345
6469
|
{
|
|
@@ -6355,8 +6479,8 @@ function Shell({ children, className, presets, size = "m" }) {
|
|
|
6355
6479
|
}
|
|
6356
6480
|
Shell.displayName = "Datepicker.Shell";
|
|
6357
6481
|
function Presets(props) {
|
|
6358
|
-
const inheritedSize =
|
|
6359
|
-
const monthContext =
|
|
6482
|
+
const inheritedSize = React44.useContext(DatepickerSizeContext);
|
|
6483
|
+
const monthContext = React44.useContext(DatepickerMonthContext);
|
|
6360
6484
|
const { className, size: sizeProp } = props;
|
|
6361
6485
|
const size = sizeProp ?? inheritedSize ?? "m";
|
|
6362
6486
|
return /* @__PURE__ */ jsx32("div", { className: cx(Datepicker_default.presetsBlock, className), "data-size": size, children: /* @__PURE__ */ jsx32(ButtonGroup.Root, { className: Datepicker_default.presetsGroup, size, children: props.mode === "single" ? props.presets.map((p) => /* @__PURE__ */ jsx32(
|
|
@@ -6385,8 +6509,8 @@ function Presets(props) {
|
|
|
6385
6509
|
}
|
|
6386
6510
|
Presets.displayName = "Datepicker.Presets";
|
|
6387
6511
|
function Time(props) {
|
|
6388
|
-
const baseId =
|
|
6389
|
-
const inheritedSize =
|
|
6512
|
+
const baseId = React44.useId();
|
|
6513
|
+
const inheritedSize = React44.useContext(DatepickerSizeContext);
|
|
6390
6514
|
if (props.mode === "range") {
|
|
6391
6515
|
const { from, to, onFromChange, onToChange, labels: labels2, size: sizeProp2 } = props;
|
|
6392
6516
|
const size2 = sizeProp2 ?? inheritedSize ?? "m";
|
|
@@ -6470,7 +6594,7 @@ function Time(props) {
|
|
|
6470
6594
|
}
|
|
6471
6595
|
Time.displayName = "Datepicker.Time";
|
|
6472
6596
|
function Value({ className, size: sizeProp, tone = "muted", ...rest }) {
|
|
6473
|
-
const inheritedSize =
|
|
6597
|
+
const inheritedSize = React44.useContext(DatepickerSizeContext);
|
|
6474
6598
|
const size = sizeProp ?? inheritedSize ?? "m";
|
|
6475
6599
|
return /* @__PURE__ */ jsx32(
|
|
6476
6600
|
Typography.Root,
|
|
@@ -6492,7 +6616,7 @@ var Datepicker = {
|
|
|
6492
6616
|
};
|
|
6493
6617
|
|
|
6494
6618
|
// src/components/digit-input/DigitInput.tsx
|
|
6495
|
-
import * as
|
|
6619
|
+
import * as React45 from "react";
|
|
6496
6620
|
|
|
6497
6621
|
// src/components/digit-input/DigitInput.module.css
|
|
6498
6622
|
var DigitInput_default = {
|
|
@@ -6528,7 +6652,7 @@ function DigitInputRoot({
|
|
|
6528
6652
|
className
|
|
6529
6653
|
}) {
|
|
6530
6654
|
const length = lengthProp;
|
|
6531
|
-
const slotKeysRef =
|
|
6655
|
+
const slotKeysRef = React45.useRef(null);
|
|
6532
6656
|
if (!slotKeysRef.current || slotKeysRef.current.length !== length) {
|
|
6533
6657
|
slotKeysRef.current = createSlotKeys(length);
|
|
6534
6658
|
}
|
|
@@ -6539,11 +6663,11 @@ function DigitInputRoot({
|
|
|
6539
6663
|
defaultValue: defaultNormalized,
|
|
6540
6664
|
onChange
|
|
6541
6665
|
});
|
|
6542
|
-
const prevLenRef =
|
|
6543
|
-
|
|
6666
|
+
const prevLenRef = React45.useRef(0);
|
|
6667
|
+
React45.useEffect(() => {
|
|
6544
6668
|
prevLenRef.current = normalizeDigits(value, length).length;
|
|
6545
6669
|
}, [length, value]);
|
|
6546
|
-
const commit =
|
|
6670
|
+
const commit = React45.useCallback(
|
|
6547
6671
|
(nextRaw) => {
|
|
6548
6672
|
const next = normalizeDigits(nextRaw, length);
|
|
6549
6673
|
const prevLen = prevLenRef.current;
|
|
@@ -6556,11 +6680,11 @@ function DigitInputRoot({
|
|
|
6556
6680
|
[length, onComplete, setValue]
|
|
6557
6681
|
);
|
|
6558
6682
|
const cells = toCells(value, length);
|
|
6559
|
-
const inputRefs =
|
|
6560
|
-
const setInputRef =
|
|
6683
|
+
const inputRefs = React45.useRef([]);
|
|
6684
|
+
const setInputRef = React45.useCallback((el, index) => {
|
|
6561
6685
|
inputRefs.current[index] = el;
|
|
6562
6686
|
}, []);
|
|
6563
|
-
const focusAt =
|
|
6687
|
+
const focusAt = React45.useCallback((index) => {
|
|
6564
6688
|
const el = inputRefs.current[index];
|
|
6565
6689
|
if (el) {
|
|
6566
6690
|
queueMicrotask(() => el.focus());
|
|
@@ -6648,7 +6772,7 @@ DigitInputRoot.displayName = "DigitInputRoot";
|
|
|
6648
6772
|
var DigitInput = { Root: DigitInputRoot };
|
|
6649
6773
|
|
|
6650
6774
|
// src/components/drawer/Drawer.tsx
|
|
6651
|
-
import * as
|
|
6775
|
+
import * as React46 from "react";
|
|
6652
6776
|
|
|
6653
6777
|
// src/components/drawer/Drawer.module.css
|
|
6654
6778
|
var Drawer_default = {
|
|
@@ -6670,10 +6794,10 @@ var Drawer_default = {
|
|
|
6670
6794
|
// src/components/drawer/Drawer.tsx
|
|
6671
6795
|
import { jsx as jsx34, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
6672
6796
|
var [DrawerProvider, useDrawerContext] = createComponentContext("Drawer");
|
|
6673
|
-
var DrawerChromeSizeContext =
|
|
6674
|
-
var DrawerPanelContext =
|
|
6797
|
+
var DrawerChromeSizeContext = React46.createContext(null);
|
|
6798
|
+
var DrawerPanelContext = React46.createContext(false);
|
|
6675
6799
|
function useDrawerChromeSize() {
|
|
6676
|
-
const value =
|
|
6800
|
+
const value = React46.useContext(DrawerChromeSizeContext);
|
|
6677
6801
|
if (value === null) {
|
|
6678
6802
|
throw new Error(
|
|
6679
6803
|
"[prime-ui-kit] Drawer.Header, Drawer.Title, Drawer.Content and Drawer.Footer must be used inside Drawer.Panel."
|
|
@@ -6694,14 +6818,14 @@ function DrawerRoot({
|
|
|
6694
6818
|
defaultValue: defaultOpen,
|
|
6695
6819
|
onChange: onOpenChange
|
|
6696
6820
|
});
|
|
6697
|
-
const onOpen =
|
|
6698
|
-
const onClose =
|
|
6821
|
+
const onOpen = React46.useCallback(() => setIsOpen(true), [setIsOpen]);
|
|
6822
|
+
const onClose = React46.useCallback(() => setIsOpen(false), [setIsOpen]);
|
|
6699
6823
|
return /* @__PURE__ */ jsx34(DrawerProvider, { value: { open: isOpen, onOpen, onClose, closeOnEscape, closeOnOverlayClick }, children });
|
|
6700
6824
|
}
|
|
6701
6825
|
function DrawerTrigger({ children }) {
|
|
6702
6826
|
const { onOpen } = useDrawerContext();
|
|
6703
|
-
const child =
|
|
6704
|
-
return
|
|
6827
|
+
const child = React46.Children.only(children);
|
|
6828
|
+
return React46.cloneElement(child, {
|
|
6705
6829
|
onClick: (event) => {
|
|
6706
6830
|
child.props.onClick?.(event);
|
|
6707
6831
|
if (!event.defaultPrevented) {
|
|
@@ -6712,8 +6836,8 @@ function DrawerTrigger({ children }) {
|
|
|
6712
6836
|
}
|
|
6713
6837
|
function DrawerClose({ children }) {
|
|
6714
6838
|
const { onClose } = useDrawerContext();
|
|
6715
|
-
const child =
|
|
6716
|
-
return
|
|
6839
|
+
const child = React46.Children.only(children);
|
|
6840
|
+
return React46.cloneElement(child, {
|
|
6717
6841
|
onClick: (event) => {
|
|
6718
6842
|
child.props.onClick?.(event);
|
|
6719
6843
|
if (!event.defaultPrevented) {
|
|
@@ -6769,7 +6893,7 @@ function DrawerPanel({
|
|
|
6769
6893
|
const trapRef = useFocusTrap({ enabled: open });
|
|
6770
6894
|
useScrollLock(open);
|
|
6771
6895
|
useEscapeKey({ enabled: closeOnEscape && open, onEscape: onClose });
|
|
6772
|
-
|
|
6896
|
+
React46.useEffect(() => {
|
|
6773
6897
|
if (!open) return;
|
|
6774
6898
|
const container = trapRef.current;
|
|
6775
6899
|
if (!container) return;
|
|
@@ -6840,7 +6964,7 @@ function DrawerTitle({ children, className, ...rest }) {
|
|
|
6840
6964
|
return /* @__PURE__ */ jsx34("h2", { className: cx(Drawer_default.title, className), ...rest, children });
|
|
6841
6965
|
}
|
|
6842
6966
|
function DrawerContent(props) {
|
|
6843
|
-
const inPanel =
|
|
6967
|
+
const inPanel = React46.useContext(DrawerPanelContext);
|
|
6844
6968
|
if (!inPanel) {
|
|
6845
6969
|
return /* @__PURE__ */ jsx34(DrawerPanel, { ...props });
|
|
6846
6970
|
}
|
|
@@ -6867,11 +6991,10 @@ var Drawer = {
|
|
|
6867
6991
|
};
|
|
6868
6992
|
|
|
6869
6993
|
// src/components/dropdown/Dropdown.tsx
|
|
6870
|
-
import * as
|
|
6994
|
+
import * as React48 from "react";
|
|
6871
6995
|
|
|
6872
6996
|
// src/components/dropdown/Dropdown.module.css
|
|
6873
6997
|
var Dropdown_default = {
|
|
6874
|
-
inset: "Dropdown_inset",
|
|
6875
6998
|
content: "Dropdown_content",
|
|
6876
6999
|
block: "Dropdown_block",
|
|
6877
7000
|
header: "Dropdown_header",
|
|
@@ -6929,7 +7052,7 @@ function handleMenuNavigationKeyDown(e, container) {
|
|
|
6929
7052
|
}
|
|
6930
7053
|
|
|
6931
7054
|
// src/components/dropdown/useDropdownPosition.ts
|
|
6932
|
-
import * as
|
|
7055
|
+
import * as React47 from "react";
|
|
6933
7056
|
|
|
6934
7057
|
// src/internal/scrollAncestors.ts
|
|
6935
7058
|
var SCROLLABLE = /^(auto|scroll|overlay)$/;
|
|
@@ -6971,8 +7094,8 @@ function useDropdownPosition({
|
|
|
6971
7094
|
align,
|
|
6972
7095
|
sameMinWidthAsTrigger
|
|
6973
7096
|
}) {
|
|
6974
|
-
const [layout, setLayout] =
|
|
6975
|
-
const commit =
|
|
7097
|
+
const [layout, setLayout] = React47.useState(null);
|
|
7098
|
+
const commit = React47.useCallback(() => {
|
|
6976
7099
|
const trigger = triggerRef.current;
|
|
6977
7100
|
const panel = contentRef.current;
|
|
6978
7101
|
if (!trigger || !panel) return;
|
|
@@ -7007,7 +7130,7 @@ function useDropdownPosition({
|
|
|
7007
7130
|
};
|
|
7008
7131
|
setLayout((prev) => prev && layoutEqual(prev, next) ? prev : next);
|
|
7009
7132
|
}, [triggerRef, contentRef, side, align, sameMinWidthAsTrigger]);
|
|
7010
|
-
|
|
7133
|
+
React47.useLayoutEffect(() => {
|
|
7011
7134
|
if (!open) {
|
|
7012
7135
|
setLayout(null);
|
|
7013
7136
|
return;
|
|
@@ -7045,9 +7168,9 @@ function useDropdownPosition({
|
|
|
7045
7168
|
|
|
7046
7169
|
// src/components/dropdown/Dropdown.tsx
|
|
7047
7170
|
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
7048
|
-
var DropdownContentSizeContext =
|
|
7171
|
+
var DropdownContentSizeContext = React48.createContext("m");
|
|
7049
7172
|
function useDropdownContentSize() {
|
|
7050
|
-
return
|
|
7173
|
+
return React48.useContext(DropdownContentSizeContext);
|
|
7051
7174
|
}
|
|
7052
7175
|
function dropdownItemIconPx(menuSize) {
|
|
7053
7176
|
return remToPx(primitiveTokens.icon[menuSize]);
|
|
@@ -7059,13 +7182,13 @@ function DropdownRoot({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
7059
7182
|
defaultValue: defaultOpen,
|
|
7060
7183
|
onChange: onOpenChange
|
|
7061
7184
|
});
|
|
7062
|
-
const id =
|
|
7185
|
+
const id = React48.useId();
|
|
7063
7186
|
const triggerId = `${id}-trigger`;
|
|
7064
7187
|
const menuId = `${id}-menu`;
|
|
7065
|
-
const triggerRef =
|
|
7066
|
-
const onClose =
|
|
7067
|
-
const onToggle =
|
|
7068
|
-
const value =
|
|
7188
|
+
const triggerRef = React48.useRef(null);
|
|
7189
|
+
const onClose = React48.useCallback(() => setIsOpen(false), [setIsOpen]);
|
|
7190
|
+
const onToggle = React48.useCallback(() => setIsOpen((v) => !v), [setIsOpen]);
|
|
7191
|
+
const value = React48.useMemo(
|
|
7069
7192
|
() => ({ isOpen, onClose, onToggle, triggerId, menuId, triggerRef }),
|
|
7070
7193
|
[isOpen, onClose, onToggle, triggerId, menuId]
|
|
7071
7194
|
);
|
|
@@ -7075,9 +7198,9 @@ DropdownRoot.displayName = "DropdownRoot";
|
|
|
7075
7198
|
function DropdownTrigger({ children, asChild: _asChild = true }) {
|
|
7076
7199
|
void _asChild;
|
|
7077
7200
|
const { isOpen, onToggle, triggerId, menuId, triggerRef } = useDropdownContext();
|
|
7078
|
-
const toggleRef =
|
|
7201
|
+
const toggleRef = React48.useRef(onToggle);
|
|
7079
7202
|
toggleRef.current = onToggle;
|
|
7080
|
-
const setNode =
|
|
7203
|
+
const setNode = React48.useCallback(
|
|
7081
7204
|
(el) => {
|
|
7082
7205
|
triggerRef.current = el;
|
|
7083
7206
|
},
|
|
@@ -7085,9 +7208,9 @@ function DropdownTrigger({ children, asChild: _asChild = true }) {
|
|
|
7085
7208
|
);
|
|
7086
7209
|
const child = children;
|
|
7087
7210
|
const childRef = child.props.ref ?? child.ref;
|
|
7088
|
-
const mergedRef =
|
|
7211
|
+
const mergedRef = React48.useMemo(() => mergeRefs(childRef, setNode), [childRef, setNode]);
|
|
7089
7212
|
const userClick = child.props?.onClick;
|
|
7090
|
-
return
|
|
7213
|
+
return React48.cloneElement(child, {
|
|
7091
7214
|
ref: mergedRef,
|
|
7092
7215
|
id: triggerId,
|
|
7093
7216
|
"aria-expanded": isOpen,
|
|
@@ -7110,7 +7233,7 @@ function DropdownContent({
|
|
|
7110
7233
|
}) {
|
|
7111
7234
|
const { isOpen, onClose, triggerRef, menuId, triggerId } = useDropdownContext();
|
|
7112
7235
|
const overlayPortalLayer = useOverlayPortalLayer();
|
|
7113
|
-
const contentRef =
|
|
7236
|
+
const contentRef = React48.useRef(null);
|
|
7114
7237
|
const layout = useDropdownPosition({
|
|
7115
7238
|
open: isOpen,
|
|
7116
7239
|
triggerRef,
|
|
@@ -7120,7 +7243,7 @@ function DropdownContent({
|
|
|
7120
7243
|
sameMinWidthAsTrigger
|
|
7121
7244
|
});
|
|
7122
7245
|
const trapRef = useFocusTrap({ enabled: isOpen, restoreFocus: true });
|
|
7123
|
-
const ref =
|
|
7246
|
+
const ref = React48.useMemo(() => mergeRefs(contentRef, trapRef), [trapRef]);
|
|
7124
7247
|
useEscapeKey({ enabled: isOpen, onEscape: onClose });
|
|
7125
7248
|
useOutsideClick({
|
|
7126
7249
|
refs: [triggerRef, contentRef],
|
|
@@ -7177,7 +7300,7 @@ function DropdownItem({ onSelect, disabled, destructive, children, className })
|
|
|
7177
7300
|
);
|
|
7178
7301
|
}
|
|
7179
7302
|
DropdownItem.displayName = "DropdownItem";
|
|
7180
|
-
var DropdownItemIcon =
|
|
7303
|
+
var DropdownItemIcon = React48.forwardRef(
|
|
7181
7304
|
({ as: As = "span", className, children, "aria-hidden": ariaHidden, ...rest }, ref) => {
|
|
7182
7305
|
const menuSize = useDropdownContentSize();
|
|
7183
7306
|
const { size: explicitSize, ...iconRest } = rest;
|
|
@@ -7266,30 +7389,10 @@ function DropdownHeaderTrailing({
|
|
|
7266
7389
|
);
|
|
7267
7390
|
}
|
|
7268
7391
|
DropdownHeaderTrailing.displayName = "DropdownHeaderTrailing";
|
|
7269
|
-
function DropdownInset({
|
|
7270
|
-
children,
|
|
7271
|
-
className,
|
|
7272
|
-
padding = "x2",
|
|
7273
|
-
gap = "x3",
|
|
7274
|
-
...rest
|
|
7275
|
-
}) {
|
|
7276
|
-
return /* @__PURE__ */ jsx35(
|
|
7277
|
-
"div",
|
|
7278
|
-
{
|
|
7279
|
-
className: cx(Dropdown_default.inset, className),
|
|
7280
|
-
"data-inset-gap": gap,
|
|
7281
|
-
"data-inset-padding": padding,
|
|
7282
|
-
...rest,
|
|
7283
|
-
children
|
|
7284
|
-
}
|
|
7285
|
-
);
|
|
7286
|
-
}
|
|
7287
|
-
DropdownInset.displayName = "DropdownInset";
|
|
7288
7392
|
var Dropdown = {
|
|
7289
7393
|
Root: DropdownRoot,
|
|
7290
7394
|
Trigger: DropdownTrigger,
|
|
7291
7395
|
Content: DropdownContent,
|
|
7292
|
-
Inset: DropdownInset,
|
|
7293
7396
|
Block: DropdownBlock,
|
|
7294
7397
|
Header: DropdownHeader,
|
|
7295
7398
|
HeaderRow: DropdownHeaderRow,
|
|
@@ -7305,12 +7408,70 @@ var Dropdown = {
|
|
|
7305
7408
|
Separator: DropdownSeparator
|
|
7306
7409
|
};
|
|
7307
7410
|
|
|
7411
|
+
// src/components/empty-page/EmptyPage.tsx
|
|
7412
|
+
import * as React49 from "react";
|
|
7413
|
+
|
|
7414
|
+
// src/components/empty-page/EmptyPage.module.css
|
|
7415
|
+
var EmptyPage_default = {
|
|
7416
|
+
root: "EmptyPage_root",
|
|
7417
|
+
iconWrap: "EmptyPage_iconWrap",
|
|
7418
|
+
title: "EmptyPage_title",
|
|
7419
|
+
description: "EmptyPage_description",
|
|
7420
|
+
actions: "EmptyPage_actions"
|
|
7421
|
+
};
|
|
7422
|
+
|
|
7423
|
+
// src/components/empty-page/EmptyPage.tsx
|
|
7424
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
7425
|
+
var EmptyPageRoot = React49.forwardRef(function EmptyPageRoot2({ size = "m", layout = "default", className, children, ...rest }, forwardedRef) {
|
|
7426
|
+
return /* @__PURE__ */ jsx36(
|
|
7427
|
+
"div",
|
|
7428
|
+
{
|
|
7429
|
+
ref: forwardedRef,
|
|
7430
|
+
className: cx(EmptyPage_default.root, className),
|
|
7431
|
+
...rest,
|
|
7432
|
+
...toDataAttributes({
|
|
7433
|
+
size,
|
|
7434
|
+
layout: layout === "fill" ? "fill" : void 0
|
|
7435
|
+
}),
|
|
7436
|
+
children: /* @__PURE__ */ jsx36(ControlSizeProvider, { value: size, children })
|
|
7437
|
+
}
|
|
7438
|
+
);
|
|
7439
|
+
});
|
|
7440
|
+
EmptyPageRoot.displayName = "EmptyPage.Root";
|
|
7441
|
+
function EmptyPageIcon({ className, children, ...rest }) {
|
|
7442
|
+
return /* @__PURE__ */ jsx36("div", { className: cx(EmptyPage_default.iconWrap, className), ...rest, children });
|
|
7443
|
+
}
|
|
7444
|
+
EmptyPageIcon.displayName = "EmptyPage.Icon";
|
|
7445
|
+
var EmptyPageTitle = React49.forwardRef(
|
|
7446
|
+
function EmptyPageTitle2({ className, children, ...rest }, forwardedRef) {
|
|
7447
|
+
return /* @__PURE__ */ jsx36("h2", { ref: forwardedRef, className: cx(EmptyPage_default.title, className), ...rest, children });
|
|
7448
|
+
}
|
|
7449
|
+
);
|
|
7450
|
+
EmptyPageTitle.displayName = "EmptyPage.Title";
|
|
7451
|
+
var EmptyPageDescription = React49.forwardRef(
|
|
7452
|
+
function EmptyPageDescription2({ className, children, ...rest }, forwardedRef) {
|
|
7453
|
+
return /* @__PURE__ */ jsx36("p", { ref: forwardedRef, className: cx(EmptyPage_default.description, className), ...rest, children });
|
|
7454
|
+
}
|
|
7455
|
+
);
|
|
7456
|
+
EmptyPageDescription.displayName = "EmptyPage.Description";
|
|
7457
|
+
function EmptyPageActions({ className, children, ...rest }) {
|
|
7458
|
+
return /* @__PURE__ */ jsx36("div", { className: cx(EmptyPage_default.actions, className), ...rest, children });
|
|
7459
|
+
}
|
|
7460
|
+
EmptyPageActions.displayName = "EmptyPage.Actions";
|
|
7461
|
+
var EmptyPage = {
|
|
7462
|
+
Root: EmptyPageRoot,
|
|
7463
|
+
Icon: EmptyPageIcon,
|
|
7464
|
+
Title: EmptyPageTitle,
|
|
7465
|
+
Description: EmptyPageDescription,
|
|
7466
|
+
Actions: EmptyPageActions
|
|
7467
|
+
};
|
|
7468
|
+
|
|
7308
7469
|
// src/components/example-frame/ExampleFrame.tsx
|
|
7309
7470
|
import { Code2, Eye as Eye2, Monitor, Smartphone, Tablet } from "lucide-react";
|
|
7310
|
-
import * as
|
|
7471
|
+
import * as React51 from "react";
|
|
7311
7472
|
|
|
7312
7473
|
// src/components/segmented-control/SegmentedControl.tsx
|
|
7313
|
-
import * as
|
|
7474
|
+
import * as React50 from "react";
|
|
7314
7475
|
|
|
7315
7476
|
// src/components/segmented-control/SegmentedControl.module.css
|
|
7316
7477
|
var SegmentedControl_default = {
|
|
@@ -7321,7 +7482,7 @@ var SegmentedControl_default = {
|
|
|
7321
7482
|
};
|
|
7322
7483
|
|
|
7323
7484
|
// src/components/segmented-control/SegmentedControl.tsx
|
|
7324
|
-
import { jsx as
|
|
7485
|
+
import { jsx as jsx37, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
7325
7486
|
function readCssWidthPx(root, widthExpression) {
|
|
7326
7487
|
const doc = root.ownerDocument;
|
|
7327
7488
|
const win = doc.defaultView;
|
|
@@ -7349,23 +7510,23 @@ function SegmentedControlRoot({
|
|
|
7349
7510
|
defaultValue,
|
|
7350
7511
|
onChange: onValueChange
|
|
7351
7512
|
});
|
|
7352
|
-
const [indicator, setIndicator] =
|
|
7513
|
+
const [indicator, setIndicator] = React50.useState({
|
|
7353
7514
|
left: 0,
|
|
7354
7515
|
top: 0,
|
|
7355
7516
|
width: 0,
|
|
7356
7517
|
height: 0
|
|
7357
7518
|
});
|
|
7358
|
-
const [animate2, setAnimate] =
|
|
7359
|
-
const containerRef =
|
|
7360
|
-
const indicatorRef =
|
|
7361
|
-
const onSelect =
|
|
7519
|
+
const [animate2, setAnimate] = React50.useState(false);
|
|
7520
|
+
const containerRef = React50.useRef(null);
|
|
7521
|
+
const indicatorRef = React50.useRef(null);
|
|
7522
|
+
const onSelect = React50.useCallback(
|
|
7362
7523
|
(nextValue) => {
|
|
7363
7524
|
setAnimate(true);
|
|
7364
7525
|
setSelectedValue(nextValue);
|
|
7365
7526
|
},
|
|
7366
7527
|
[setSelectedValue]
|
|
7367
7528
|
);
|
|
7368
|
-
|
|
7529
|
+
React50.useLayoutEffect(() => {
|
|
7369
7530
|
const root = containerRef.current;
|
|
7370
7531
|
if (!root) return;
|
|
7371
7532
|
const update = () => {
|
|
@@ -7402,12 +7563,12 @@ function SegmentedControlRoot({
|
|
|
7402
7563
|
ro?.disconnect();
|
|
7403
7564
|
};
|
|
7404
7565
|
}, []);
|
|
7405
|
-
|
|
7566
|
+
React50.useEffect(() => {
|
|
7406
7567
|
if (!animate2) return;
|
|
7407
7568
|
const id = window.setTimeout(() => setAnimate(false), 320);
|
|
7408
7569
|
return () => window.clearTimeout(id);
|
|
7409
7570
|
}, [animate2]);
|
|
7410
|
-
|
|
7571
|
+
React50.useLayoutEffect(() => {
|
|
7411
7572
|
const indicatorEl = indicatorRef.current;
|
|
7412
7573
|
if (!indicatorEl) return;
|
|
7413
7574
|
indicatorEl.style.transform = `translate3d(${indicator.left}px, ${indicator.top}px, 0)`;
|
|
@@ -7438,7 +7599,7 @@ function SegmentedControlRoot({
|
|
|
7438
7599
|
if (nextValue) onSelect(nextValue);
|
|
7439
7600
|
};
|
|
7440
7601
|
const hasSelection = selectedValue !== "";
|
|
7441
|
-
return /* @__PURE__ */
|
|
7602
|
+
return /* @__PURE__ */ jsx37(SegmentedControlProvider, { value: { value: selectedValue, onSelect, rootDisabled: disabled }, children: /* @__PURE__ */ jsxs17(
|
|
7442
7603
|
"div",
|
|
7443
7604
|
{
|
|
7444
7605
|
ref: containerRef,
|
|
@@ -7451,8 +7612,8 @@ function SegmentedControlRoot({
|
|
|
7451
7612
|
"data-size": size,
|
|
7452
7613
|
"data-animate": animate2 ? "true" : void 0,
|
|
7453
7614
|
children: [
|
|
7454
|
-
/* @__PURE__ */
|
|
7455
|
-
/* @__PURE__ */
|
|
7615
|
+
/* @__PURE__ */ jsx37(ControlSizeProvider, { value: size, children }),
|
|
7616
|
+
/* @__PURE__ */ jsx37("div", { ref: indicatorRef, className: SegmentedControl_default.indicator, "aria-hidden": "true" })
|
|
7456
7617
|
]
|
|
7457
7618
|
}
|
|
7458
7619
|
) });
|
|
@@ -7469,7 +7630,7 @@ function SegmentedControlItem({
|
|
|
7469
7630
|
const isDisabled = ctx.rootDisabled || disabled;
|
|
7470
7631
|
return (
|
|
7471
7632
|
// biome-ignore lint/a11y/useSemanticElements: compound component intentionally uses role="radio" with roving tabindex
|
|
7472
|
-
/* @__PURE__ */
|
|
7633
|
+
/* @__PURE__ */ jsx37(
|
|
7473
7634
|
"button",
|
|
7474
7635
|
{
|
|
7475
7636
|
role: "radio",
|
|
@@ -7491,7 +7652,7 @@ function SegmentedControlItem({
|
|
|
7491
7652
|
}
|
|
7492
7653
|
SegmentedControlItem.displayName = "SegmentedControl.Item";
|
|
7493
7654
|
function SegmentedControlIcon({ children, className, ...rest }) {
|
|
7494
|
-
return /* @__PURE__ */
|
|
7655
|
+
return /* @__PURE__ */ jsx37("span", { className: cx(SegmentedControl_default.icon, className), "aria-hidden": "true", ...rest, children });
|
|
7495
7656
|
}
|
|
7496
7657
|
SegmentedControlIcon.displayName = "SegmentedControl.Icon";
|
|
7497
7658
|
var SegmentedControl = {
|
|
@@ -7515,7 +7676,7 @@ var ExampleFrame_default = {
|
|
|
7515
7676
|
};
|
|
7516
7677
|
|
|
7517
7678
|
// src/components/example-frame/ExampleFrame.tsx
|
|
7518
|
-
import { Fragment as Fragment5, jsx as
|
|
7679
|
+
import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
7519
7680
|
var [ExampleFrameProvider, useExampleFrameContext] = createComponentContext("ExampleFrame");
|
|
7520
7681
|
function ExampleFrameRoot({
|
|
7521
7682
|
code,
|
|
@@ -7533,14 +7694,14 @@ function ExampleFrameRoot({
|
|
|
7533
7694
|
previewLayout = "default",
|
|
7534
7695
|
themePreset
|
|
7535
7696
|
}) {
|
|
7536
|
-
const [pane, setPane] =
|
|
7537
|
-
const [uncontrolledViewport, setUncontrolledViewport] =
|
|
7538
|
-
const [uncontrolledScheme, setUncontrolledScheme] =
|
|
7697
|
+
const [pane, setPane] = React51.useState("preview");
|
|
7698
|
+
const [uncontrolledViewport, setUncontrolledViewport] = React51.useState(defaultViewport);
|
|
7699
|
+
const [uncontrolledScheme, setUncontrolledScheme] = React51.useState(defaultColorScheme);
|
|
7539
7700
|
const isSchemeControlled = colorSchemeProp !== void 0;
|
|
7540
7701
|
const colorScheme = isSchemeControlled ? colorSchemeProp : uncontrolledScheme;
|
|
7541
7702
|
const isViewportControlled = viewportProp !== void 0;
|
|
7542
7703
|
const viewport = isViewportControlled ? viewportProp : uncontrolledViewport;
|
|
7543
|
-
const setColorScheme =
|
|
7704
|
+
const setColorScheme = React51.useCallback(
|
|
7544
7705
|
(next) => {
|
|
7545
7706
|
if (!isSchemeControlled) {
|
|
7546
7707
|
setUncontrolledScheme(next);
|
|
@@ -7549,7 +7710,7 @@ function ExampleFrameRoot({
|
|
|
7549
7710
|
},
|
|
7550
7711
|
[isSchemeControlled, onColorSchemeChange]
|
|
7551
7712
|
);
|
|
7552
|
-
const setViewport =
|
|
7713
|
+
const setViewport = React51.useCallback(
|
|
7553
7714
|
(next) => {
|
|
7554
7715
|
if (!isViewportControlled) {
|
|
7555
7716
|
setUncontrolledViewport(next);
|
|
@@ -7558,7 +7719,7 @@ function ExampleFrameRoot({
|
|
|
7558
7719
|
},
|
|
7559
7720
|
[isViewportControlled, onViewportChange]
|
|
7560
7721
|
);
|
|
7561
|
-
const ctxValue =
|
|
7722
|
+
const ctxValue = React51.useMemo(
|
|
7562
7723
|
() => ({
|
|
7563
7724
|
code,
|
|
7564
7725
|
language,
|
|
@@ -7584,17 +7745,17 @@ function ExampleFrameRoot({
|
|
|
7584
7745
|
]
|
|
7585
7746
|
);
|
|
7586
7747
|
let previewChildren = null;
|
|
7587
|
-
|
|
7588
|
-
if (
|
|
7748
|
+
React51.Children.forEach(children, (child) => {
|
|
7749
|
+
if (React51.isValidElement(child) && child.type === ExampleFrameStage) {
|
|
7589
7750
|
previewChildren = child.props.children ?? null;
|
|
7590
7751
|
}
|
|
7591
7752
|
});
|
|
7592
7753
|
if (previewChildren === null) {
|
|
7593
7754
|
previewChildren = children;
|
|
7594
7755
|
}
|
|
7595
|
-
return /* @__PURE__ */
|
|
7596
|
-
/* @__PURE__ */
|
|
7597
|
-
pane === "preview" ? /* @__PURE__ */
|
|
7756
|
+
return /* @__PURE__ */ jsx38(ExampleFrameProvider, { value: ctxValue, children: /* @__PURE__ */ jsxs18("div", { className: cx(ExampleFrame_default.root, className), children: [
|
|
7757
|
+
/* @__PURE__ */ jsx38(ExampleFrameToolbar, {}),
|
|
7758
|
+
pane === "preview" ? /* @__PURE__ */ jsx38("div", { className: ExampleFrame_default.previewShell, children: /* @__PURE__ */ jsx38("div", { className: ExampleFrame_default.previewViewport, "data-viewport": viewport, children: /* @__PURE__ */ jsx38(
|
|
7598
7759
|
"div",
|
|
7599
7760
|
{
|
|
7600
7761
|
className: ExampleFrame_default.previewInner,
|
|
@@ -7603,14 +7764,14 @@ function ExampleFrameRoot({
|
|
|
7603
7764
|
...themePreset != null && themePreset !== "" ? { "data-theme-preset": themePreset } : {},
|
|
7604
7765
|
children: previewChildren
|
|
7605
7766
|
}
|
|
7606
|
-
) }) }) : /* @__PURE__ */
|
|
7767
|
+
) }) }) : /* @__PURE__ */ jsx38(ExampleFrameCodePane, { themePreset })
|
|
7607
7768
|
] }) });
|
|
7608
7769
|
}
|
|
7609
7770
|
ExampleFrameRoot.displayName = "ExampleFrame.Root";
|
|
7610
7771
|
function ExampleFrameToolbar() {
|
|
7611
7772
|
const ctx = useExampleFrameContext();
|
|
7612
|
-
const [copyState, setCopyState] =
|
|
7613
|
-
const handleCopy =
|
|
7773
|
+
const [copyState, setCopyState] = React51.useState("idle");
|
|
7774
|
+
const handleCopy = React51.useCallback(async () => {
|
|
7614
7775
|
try {
|
|
7615
7776
|
await navigator.clipboard.writeText(ctx.code);
|
|
7616
7777
|
setCopyState("copied");
|
|
@@ -7636,18 +7797,18 @@ function ExampleFrameToolbar() {
|
|
|
7636
7797
|
size: "s",
|
|
7637
7798
|
children: [
|
|
7638
7799
|
/* @__PURE__ */ jsxs18(SegmentedControl.Item, { value: "preview", children: [
|
|
7639
|
-
/* @__PURE__ */
|
|
7800
|
+
/* @__PURE__ */ jsx38(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx38(Eye2, { size: 14, strokeWidth: 2, "aria-hidden": true }) }),
|
|
7640
7801
|
"Preview"
|
|
7641
7802
|
] }),
|
|
7642
7803
|
/* @__PURE__ */ jsxs18(SegmentedControl.Item, { value: "code", children: [
|
|
7643
|
-
/* @__PURE__ */
|
|
7804
|
+
/* @__PURE__ */ jsx38(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx38(Code2, { size: 14, strokeWidth: 2, "aria-hidden": true }) }),
|
|
7644
7805
|
"Code"
|
|
7645
7806
|
] })
|
|
7646
7807
|
]
|
|
7647
7808
|
}
|
|
7648
7809
|
),
|
|
7649
7810
|
/* @__PURE__ */ jsxs18("div", { className: ExampleFrame_default.toolbarLine1End, children: [
|
|
7650
|
-
ctx.showThemeToggle ? /* @__PURE__ */
|
|
7811
|
+
ctx.showThemeToggle ? /* @__PURE__ */ jsx38(
|
|
7651
7812
|
Button.Root,
|
|
7652
7813
|
{
|
|
7653
7814
|
type: "button",
|
|
@@ -7656,10 +7817,10 @@ function ExampleFrameToolbar() {
|
|
|
7656
7817
|
size: "s",
|
|
7657
7818
|
onClick: toggleScheme,
|
|
7658
7819
|
"aria-label": ctx.colorScheme === "light" ? "\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0442\u0451\u043C\u043D\u0443\u044E \u0442\u0435\u043C\u0443" : "\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u0435\u0442\u043B\u0443\u044E \u0442\u0435\u043C\u0443",
|
|
7659
|
-
children: /* @__PURE__ */
|
|
7820
|
+
children: /* @__PURE__ */ jsx38(Button.Icon, { children: ctx.colorScheme === "light" ? /* @__PURE__ */ jsx38(Icon, { name: "theme.dark", size: "s", tone: "subtle" }) : /* @__PURE__ */ jsx38(Icon, { name: "theme.light", size: "s", tone: "subtle" }) })
|
|
7660
7821
|
}
|
|
7661
7822
|
) : null,
|
|
7662
|
-
/* @__PURE__ */
|
|
7823
|
+
/* @__PURE__ */ jsx38(
|
|
7663
7824
|
Button.Root,
|
|
7664
7825
|
{
|
|
7665
7826
|
type: "button",
|
|
@@ -7668,7 +7829,7 @@ function ExampleFrameToolbar() {
|
|
|
7668
7829
|
size: "s",
|
|
7669
7830
|
onClick: handleCopy,
|
|
7670
7831
|
"aria-label": copyLabel,
|
|
7671
|
-
children: /* @__PURE__ */
|
|
7832
|
+
children: /* @__PURE__ */ jsx38(Button.Icon, { children: /* @__PURE__ */ jsx38(Icon, { name: "action.copy", size: "s", tone: "subtle" }) })
|
|
7672
7833
|
}
|
|
7673
7834
|
)
|
|
7674
7835
|
] })
|
|
@@ -7682,15 +7843,15 @@ function ExampleFrameToolbar() {
|
|
|
7682
7843
|
size: "s",
|
|
7683
7844
|
children: [
|
|
7684
7845
|
/* @__PURE__ */ jsxs18(SegmentedControl.Item, { value: "desktop", children: [
|
|
7685
|
-
/* @__PURE__ */
|
|
7846
|
+
/* @__PURE__ */ jsx38(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx38(Monitor, { size: 14, strokeWidth: 2, "aria-hidden": true }) }),
|
|
7686
7847
|
"Desktop"
|
|
7687
7848
|
] }),
|
|
7688
7849
|
/* @__PURE__ */ jsxs18(SegmentedControl.Item, { value: "tablet", children: [
|
|
7689
|
-
/* @__PURE__ */
|
|
7850
|
+
/* @__PURE__ */ jsx38(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx38(Tablet, { size: 14, strokeWidth: 2, "aria-hidden": true }) }),
|
|
7690
7851
|
"Tablet"
|
|
7691
7852
|
] }),
|
|
7692
7853
|
/* @__PURE__ */ jsxs18(SegmentedControl.Item, { value: "mobile", children: [
|
|
7693
|
-
/* @__PURE__ */
|
|
7854
|
+
/* @__PURE__ */ jsx38(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx38(Smartphone, { size: 14, strokeWidth: 2, "aria-hidden": true }) }),
|
|
7694
7855
|
"Mobile"
|
|
7695
7856
|
] })
|
|
7696
7857
|
]
|
|
@@ -7703,11 +7864,11 @@ function ExampleFrameCodePane({ themePreset }) {
|
|
|
7703
7864
|
const ctx = useExampleFrameContext();
|
|
7704
7865
|
const trimmed = ctx.code.trimEnd();
|
|
7705
7866
|
const presetProps = themePreset != null && themePreset !== "" ? { "data-theme-preset": themePreset } : {};
|
|
7706
|
-
return /* @__PURE__ */
|
|
7867
|
+
return /* @__PURE__ */ jsx38("div", { className: ExampleFrame_default.codePane, "data-theme": ctx.colorScheme, ...presetProps, children: /* @__PURE__ */ jsx38(CodeBlock.Root, { code: trimmed, colorScheme: ctx.colorScheme }) });
|
|
7707
7868
|
}
|
|
7708
7869
|
ExampleFrameCodePane.displayName = "ExampleFrame.CodePane";
|
|
7709
7870
|
function ExampleFrameStage({ children }) {
|
|
7710
|
-
return /* @__PURE__ */
|
|
7871
|
+
return /* @__PURE__ */ jsx38(Fragment5, { children });
|
|
7711
7872
|
}
|
|
7712
7873
|
ExampleFrameStage.displayName = "ExampleFrame.Stage";
|
|
7713
7874
|
var ExampleFrame = {
|
|
@@ -7716,10 +7877,10 @@ var ExampleFrame = {
|
|
|
7716
7877
|
};
|
|
7717
7878
|
|
|
7718
7879
|
// src/components/file-upload/FileUpload.tsx
|
|
7719
|
-
import * as
|
|
7880
|
+
import * as React53 from "react";
|
|
7720
7881
|
|
|
7721
7882
|
// src/components/progress-bar/ProgressBar.tsx
|
|
7722
|
-
import * as
|
|
7883
|
+
import * as React52 from "react";
|
|
7723
7884
|
|
|
7724
7885
|
// src/components/progress-bar/ProgressBar.module.css
|
|
7725
7886
|
var ProgressBar_default = {
|
|
@@ -7729,18 +7890,18 @@ var ProgressBar_default = {
|
|
|
7729
7890
|
};
|
|
7730
7891
|
|
|
7731
7892
|
// src/components/progress-bar/ProgressBar.tsx
|
|
7732
|
-
import { jsx as
|
|
7893
|
+
import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
7733
7894
|
function clampProgress(value, max) {
|
|
7734
7895
|
return Math.min(max, Math.max(value, 0));
|
|
7735
7896
|
}
|
|
7736
|
-
var ProgressBarRoot =
|
|
7897
|
+
var ProgressBarRoot = React52.forwardRef(
|
|
7737
7898
|
({ value, max = 100, label, size = "m", className }, ref) => {
|
|
7738
7899
|
const safeMax = max > 0 ? max : 100;
|
|
7739
7900
|
const safeValue = clampProgress(value, safeMax);
|
|
7740
|
-
const labelId =
|
|
7901
|
+
const labelId = React52.useId();
|
|
7741
7902
|
return /* @__PURE__ */ jsxs19("div", { className: cx(ProgressBar_default.root, className), ...toDataAttributes({ size }), children: [
|
|
7742
|
-
label ? /* @__PURE__ */
|
|
7743
|
-
/* @__PURE__ */
|
|
7903
|
+
label ? /* @__PURE__ */ jsx39("span", { className: ProgressBar_default.label, id: labelId, children: label }) : null,
|
|
7904
|
+
/* @__PURE__ */ jsx39(
|
|
7744
7905
|
"progress",
|
|
7745
7906
|
{
|
|
7746
7907
|
ref,
|
|
@@ -7792,26 +7953,26 @@ var FileUpload_default = {
|
|
|
7792
7953
|
};
|
|
7793
7954
|
|
|
7794
7955
|
// src/components/file-upload/FileUpload.tsx
|
|
7795
|
-
import { jsx as
|
|
7956
|
+
import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
7796
7957
|
function FileUploadIcon({ className, children, ...rest }) {
|
|
7797
|
-
return /* @__PURE__ */
|
|
7958
|
+
return /* @__PURE__ */ jsx40("span", { className: cx(FileUpload_default.iconWrap, className), "aria-hidden": true, ...rest, children });
|
|
7798
7959
|
}
|
|
7799
7960
|
FileUploadIcon.displayName = "FileUpload.Icon";
|
|
7800
7961
|
function FileUploadTitle({ className, children, tone = "default", ...rest }) {
|
|
7801
|
-
return /* @__PURE__ */
|
|
7962
|
+
return /* @__PURE__ */ jsx40("p", { className: cx(FileUpload_default.title, tone === "muted" && FileUpload_default.titleMuted, className), ...rest, children });
|
|
7802
7963
|
}
|
|
7803
7964
|
FileUploadTitle.displayName = "FileUpload.Title";
|
|
7804
7965
|
function FileUploadHint({ className, children, ...rest }) {
|
|
7805
7966
|
const controlSize = useOptionalControlSize() ?? "m";
|
|
7806
|
-
return /* @__PURE__ */
|
|
7967
|
+
return /* @__PURE__ */ jsx40(Hint.Root, { size: controlSize, className, ...rest, children });
|
|
7807
7968
|
}
|
|
7808
7969
|
FileUploadHint.displayName = "FileUpload.Hint";
|
|
7809
7970
|
function FileUploadBrowseLabel({ className, children, ...rest }) {
|
|
7810
|
-
return /* @__PURE__ */
|
|
7971
|
+
return /* @__PURE__ */ jsx40("span", { className: cx(FileUpload_default.browse, className), ...rest, children });
|
|
7811
7972
|
}
|
|
7812
7973
|
FileUploadBrowseLabel.displayName = "FileUpload.BrowseLabel";
|
|
7813
|
-
var FileUploadBrowseLink =
|
|
7814
|
-
({ className, type = "button", onClick, ...rest }, ref) => /* @__PURE__ */
|
|
7974
|
+
var FileUploadBrowseLink = React53.forwardRef(
|
|
7975
|
+
({ className, type = "button", onClick, ...rest }, ref) => /* @__PURE__ */ jsx40(
|
|
7815
7976
|
"button",
|
|
7816
7977
|
{
|
|
7817
7978
|
ref,
|
|
@@ -7828,15 +7989,15 @@ var FileUploadBrowseLink = React51.forwardRef(
|
|
|
7828
7989
|
);
|
|
7829
7990
|
FileUploadBrowseLink.displayName = "FileUpload.BrowseLink";
|
|
7830
7991
|
function FileUploadDropBody({ className, children, ...rest }) {
|
|
7831
|
-
return /* @__PURE__ */
|
|
7992
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.dropBody, className), ...rest, children });
|
|
7832
7993
|
}
|
|
7833
7994
|
FileUploadDropBody.displayName = "FileUpload.DropBody";
|
|
7834
7995
|
function FileUploadActionsRow({ className, children, ...rest }) {
|
|
7835
|
-
return /* @__PURE__ */
|
|
7996
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.actionsRow, className), ...rest, children });
|
|
7836
7997
|
}
|
|
7837
7998
|
FileUploadActionsRow.displayName = "FileUpload.ActionsRow";
|
|
7838
|
-
var FileUploadChip =
|
|
7839
|
-
({ className, type = "button", onClick, ...rest }, ref) => /* @__PURE__ */
|
|
7999
|
+
var FileUploadChip = React53.forwardRef(
|
|
8000
|
+
({ className, type = "button", onClick, ...rest }, ref) => /* @__PURE__ */ jsx40(
|
|
7840
8001
|
"button",
|
|
7841
8002
|
{
|
|
7842
8003
|
ref,
|
|
@@ -7853,12 +8014,12 @@ var FileUploadChip = React51.forwardRef(
|
|
|
7853
8014
|
);
|
|
7854
8015
|
FileUploadChip.displayName = "FileUpload.Chip";
|
|
7855
8016
|
function FileUploadChipLabel({ className, children, ...rest }) {
|
|
7856
|
-
return /* @__PURE__ */
|
|
8017
|
+
return /* @__PURE__ */ jsx40("span", { className: cx(FileUpload_default.chipLabel, className), ...rest, children });
|
|
7857
8018
|
}
|
|
7858
8019
|
FileUploadChipLabel.displayName = "FileUpload.ChipLabel";
|
|
7859
8020
|
function FileUploadFormatBadge({ format, color = "gray", className }) {
|
|
7860
8021
|
const label = format.trim().slice(0, 8).toUpperCase();
|
|
7861
|
-
return /* @__PURE__ */
|
|
8022
|
+
return /* @__PURE__ */ jsx40(
|
|
7862
8023
|
"span",
|
|
7863
8024
|
{
|
|
7864
8025
|
className: cx(FileUpload_default.formatBadge, className),
|
|
@@ -7875,7 +8036,7 @@ function FileUploadItem({
|
|
|
7875
8036
|
size = "m",
|
|
7876
8037
|
...rest
|
|
7877
8038
|
}) {
|
|
7878
|
-
return /* @__PURE__ */
|
|
8039
|
+
return /* @__PURE__ */ jsx40(
|
|
7879
8040
|
"div",
|
|
7880
8041
|
{
|
|
7881
8042
|
className: cx(FileUpload_default.item, className),
|
|
@@ -7886,50 +8047,50 @@ function FileUploadItem({
|
|
|
7886
8047
|
}
|
|
7887
8048
|
FileUploadItem.displayName = "FileUpload.Item";
|
|
7888
8049
|
function FileUploadItemRow({ className, children, ...rest }) {
|
|
7889
|
-
return /* @__PURE__ */
|
|
8050
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemRow, className), ...rest, children });
|
|
7890
8051
|
}
|
|
7891
8052
|
FileUploadItemRow.displayName = "FileUpload.ItemRow";
|
|
7892
8053
|
function FileUploadItemMain({ className, children, ...rest }) {
|
|
7893
|
-
return /* @__PURE__ */
|
|
8054
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemMain, className), ...rest, children });
|
|
7894
8055
|
}
|
|
7895
8056
|
FileUploadItemMain.displayName = "FileUpload.ItemMain";
|
|
7896
8057
|
function FileUploadItemStack({ className, children, ...rest }) {
|
|
7897
|
-
return /* @__PURE__ */
|
|
8058
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemStack, className), ...rest, children });
|
|
7898
8059
|
}
|
|
7899
8060
|
FileUploadItemStack.displayName = "FileUpload.ItemStack";
|
|
7900
8061
|
function FileUploadItemTextGroup({ className, children, ...rest }) {
|
|
7901
|
-
return /* @__PURE__ */
|
|
8062
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemTextGroup, className), ...rest, children });
|
|
7902
8063
|
}
|
|
7903
8064
|
FileUploadItemTextGroup.displayName = "FileUpload.ItemTextGroup";
|
|
7904
|
-
var FileUploadItemTryAgain =
|
|
7905
|
-
({ className, type = "button", ...rest }, ref) => /* @__PURE__ */
|
|
8065
|
+
var FileUploadItemTryAgain = React53.forwardRef(
|
|
8066
|
+
({ className, type = "button", ...rest }, ref) => /* @__PURE__ */ jsx40("button", { ref, type, className: cx(FileUpload_default.itemTryAgain, className), ...rest })
|
|
7906
8067
|
);
|
|
7907
8068
|
FileUploadItemTryAgain.displayName = "FileUpload.ItemTryAgain";
|
|
7908
8069
|
function FileUploadItemName({ className, children, ...rest }) {
|
|
7909
|
-
return /* @__PURE__ */
|
|
8070
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemName, className), ...rest, children });
|
|
7910
8071
|
}
|
|
7911
8072
|
FileUploadItemName.displayName = "FileUpload.ItemName";
|
|
7912
8073
|
function FileUploadItemMeta({ className, children, ...rest }) {
|
|
7913
|
-
return /* @__PURE__ */
|
|
8074
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemMeta, className), ...rest, children });
|
|
7914
8075
|
}
|
|
7915
8076
|
FileUploadItemMeta.displayName = "FileUpload.ItemMeta";
|
|
7916
8077
|
function FileUploadItemMetaSep({ className, ...rest }) {
|
|
7917
|
-
return /* @__PURE__ */
|
|
8078
|
+
return /* @__PURE__ */ jsx40("span", { className: cx(FileUpload_default.itemMetaSep, className), "aria-hidden": true, ...rest, children: "\u2219" });
|
|
7918
8079
|
}
|
|
7919
8080
|
FileUploadItemMetaSep.displayName = "FileUpload.ItemMetaSep";
|
|
7920
8081
|
function FileUploadItemActions({ className, children, ...rest }) {
|
|
7921
|
-
return /* @__PURE__ */
|
|
8082
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemActions, className), ...rest, children });
|
|
7922
8083
|
}
|
|
7923
8084
|
FileUploadItemActions.displayName = "FileUpload.ItemActions";
|
|
7924
8085
|
function FileUploadItemFooter({ className, children, ...rest }) {
|
|
7925
|
-
return /* @__PURE__ */
|
|
8086
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemFooter, className), ...rest, children });
|
|
7926
8087
|
}
|
|
7927
8088
|
FileUploadItemFooter.displayName = "FileUpload.ItemFooter";
|
|
7928
8089
|
function FileUploadItemProgress({ value, max, className, children }) {
|
|
7929
|
-
return /* @__PURE__ */
|
|
8090
|
+
return /* @__PURE__ */ jsx40("div", { className: cx(FileUpload_default.itemProgress, className), children: children ?? (value !== void 0 ? /* @__PURE__ */ jsx40(ProgressBar.Root, { value, max }) : null) });
|
|
7930
8091
|
}
|
|
7931
8092
|
FileUploadItemProgress.displayName = "FileUpload.ItemProgress";
|
|
7932
|
-
var FileUploadRoot =
|
|
8093
|
+
var FileUploadRoot = React53.forwardRef(
|
|
7933
8094
|
({
|
|
7934
8095
|
size = "m",
|
|
7935
8096
|
appearance = "dashed",
|
|
@@ -7942,7 +8103,7 @@ var FileUploadRoot = React51.forwardRef(
|
|
|
7942
8103
|
children,
|
|
7943
8104
|
...rest
|
|
7944
8105
|
}, ref) => {
|
|
7945
|
-
const [isDragOver, setIsDragOver] =
|
|
8106
|
+
const [isDragOver, setIsDragOver] = React53.useState(false);
|
|
7946
8107
|
const mergeInputRef = useMergedRefs(inputRefProp);
|
|
7947
8108
|
const handleChange = (e) => {
|
|
7948
8109
|
const list = e.target.files;
|
|
@@ -7971,12 +8132,12 @@ var FileUploadRoot = React51.forwardRef(
|
|
|
7971
8132
|
}
|
|
7972
8133
|
};
|
|
7973
8134
|
const defaultBody = /* @__PURE__ */ jsxs20("div", { className: FileUpload_default.inner, children: [
|
|
7974
|
-
/* @__PURE__ */
|
|
8135
|
+
/* @__PURE__ */ jsx40(FileUploadIcon, { children: /* @__PURE__ */ jsx40(Icon, { name: "action.upload", size, tone: "subtle" }) }),
|
|
7975
8136
|
/* @__PURE__ */ jsxs20("div", { className: FileUpload_default.copy, children: [
|
|
7976
|
-
/* @__PURE__ */
|
|
7977
|
-
/* @__PURE__ */
|
|
8137
|
+
/* @__PURE__ */ jsx40(FileUploadTitle, { children: "Choose a file or drag & drop it here." }),
|
|
8138
|
+
/* @__PURE__ */ jsx40(FileUploadHint, { children: "JPEG, PNG, PDF, MP4 up to 50 MB." })
|
|
7978
8139
|
] }),
|
|
7979
|
-
/* @__PURE__ */
|
|
8140
|
+
/* @__PURE__ */ jsx40(FileUploadBrowseLabel, { children: "Browse file" })
|
|
7980
8141
|
] });
|
|
7981
8142
|
return /* @__PURE__ */ jsxs20(
|
|
7982
8143
|
"label",
|
|
@@ -7991,7 +8152,7 @@ var FileUploadRoot = React51.forwardRef(
|
|
|
7991
8152
|
onDragLeave: handleDragLeave,
|
|
7992
8153
|
onDrop: handleDrop,
|
|
7993
8154
|
children: [
|
|
7994
|
-
/* @__PURE__ */
|
|
8155
|
+
/* @__PURE__ */ jsx40(
|
|
7995
8156
|
"input",
|
|
7996
8157
|
{
|
|
7997
8158
|
ref: mergeInputRef,
|
|
@@ -8004,7 +8165,7 @@ var FileUploadRoot = React51.forwardRef(
|
|
|
8004
8165
|
"aria-disabled": disabled || void 0
|
|
8005
8166
|
}
|
|
8006
8167
|
),
|
|
8007
|
-
/* @__PURE__ */
|
|
8168
|
+
/* @__PURE__ */ jsx40(ControlSizeProvider, { value: size, children: children ?? defaultBody })
|
|
8008
8169
|
]
|
|
8009
8170
|
}
|
|
8010
8171
|
);
|
|
@@ -8038,7 +8199,7 @@ var FileUpload = {
|
|
|
8038
8199
|
};
|
|
8039
8200
|
|
|
8040
8201
|
// src/components/kbd/Kbd.tsx
|
|
8041
|
-
import * as
|
|
8202
|
+
import * as React54 from "react";
|
|
8042
8203
|
|
|
8043
8204
|
// src/components/kbd/Kbd.module.css
|
|
8044
8205
|
var Kbd_default = {
|
|
@@ -8046,19 +8207,19 @@ var Kbd_default = {
|
|
|
8046
8207
|
};
|
|
8047
8208
|
|
|
8048
8209
|
// src/components/kbd/Kbd.tsx
|
|
8049
|
-
import { jsx as
|
|
8050
|
-
var KbdRoot =
|
|
8210
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
8211
|
+
var KbdRoot = React54.forwardRef(
|
|
8051
8212
|
({ children, className, size: sizeProp, ...rest }, ref) => {
|
|
8052
8213
|
const controlSurface = useOptionalControlSize();
|
|
8053
8214
|
const size = sizeProp ?? (controlSurface !== void 0 ? controlSurfaceToInputSize(controlSurface) : "m");
|
|
8054
|
-
return /* @__PURE__ */
|
|
8215
|
+
return /* @__PURE__ */ jsx41(
|
|
8055
8216
|
"kbd",
|
|
8056
8217
|
{
|
|
8057
8218
|
ref,
|
|
8058
8219
|
className: cx(Kbd_default.root, className),
|
|
8059
8220
|
...rest,
|
|
8060
8221
|
...toDataAttributes({ size }),
|
|
8061
|
-
children: /* @__PURE__ */
|
|
8222
|
+
children: /* @__PURE__ */ jsx41(ControlSizeProvider, { value: size, children })
|
|
8062
8223
|
}
|
|
8063
8224
|
);
|
|
8064
8225
|
}
|
|
@@ -8068,7 +8229,7 @@ var Kbd = { Root: KbdRoot };
|
|
|
8068
8229
|
|
|
8069
8230
|
// src/components/notification/Notification.tsx
|
|
8070
8231
|
import { AlertTriangle, CheckCircle2, Info, X as X3, XCircle } from "lucide-react";
|
|
8071
|
-
import * as
|
|
8232
|
+
import * as React55 from "react";
|
|
8072
8233
|
|
|
8073
8234
|
// src/components/notification/Notification.module.css
|
|
8074
8235
|
var Notification_default = {
|
|
@@ -8097,16 +8258,16 @@ var Notification_default = {
|
|
|
8097
8258
|
};
|
|
8098
8259
|
|
|
8099
8260
|
// src/components/notification/Notification.tsx
|
|
8100
|
-
import { jsx as
|
|
8261
|
+
import { jsx as jsx42, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
8101
8262
|
function useCountdown(item, paused, onExpire) {
|
|
8102
|
-
const [progress, setProgress] =
|
|
8103
|
-
const remainingRef =
|
|
8104
|
-
const lastTsRef =
|
|
8105
|
-
const pausedRef =
|
|
8106
|
-
const onExpireRef =
|
|
8263
|
+
const [progress, setProgress] = React55.useState(1);
|
|
8264
|
+
const remainingRef = React55.useRef(item.duration);
|
|
8265
|
+
const lastTsRef = React55.useRef(null);
|
|
8266
|
+
const pausedRef = React55.useRef(paused);
|
|
8267
|
+
const onExpireRef = React55.useRef(onExpire);
|
|
8107
8268
|
pausedRef.current = paused;
|
|
8108
8269
|
onExpireRef.current = onExpire;
|
|
8109
|
-
|
|
8270
|
+
React55.useEffect(() => {
|
|
8110
8271
|
if (item.persistent || item.duration <= 0) return;
|
|
8111
8272
|
remainingRef.current = item.duration;
|
|
8112
8273
|
lastTsRef.current = null;
|
|
@@ -8171,14 +8332,14 @@ function NotificationCard({
|
|
|
8171
8332
|
stackExpanded
|
|
8172
8333
|
}),
|
|
8173
8334
|
children: [
|
|
8174
|
-
/* @__PURE__ */
|
|
8335
|
+
/* @__PURE__ */ jsx42("div", { className: Notification_default.iconWrap, "aria-hidden": "true", children: item.icon ?? /* @__PURE__ */ jsx42(DefaultIcon, { className: Notification_default.icon }) }),
|
|
8175
8336
|
/* @__PURE__ */ jsxs21("div", { className: Notification_default.content, children: [
|
|
8176
8337
|
/* @__PURE__ */ jsxs21("header", { className: Notification_default.header, children: [
|
|
8177
|
-
/* @__PURE__ */
|
|
8178
|
-
item.badge !== void 0 ? /* @__PURE__ */
|
|
8338
|
+
/* @__PURE__ */ jsx42("p", { className: Notification_default.title, children: item.title }),
|
|
8339
|
+
item.badge !== void 0 ? /* @__PURE__ */ jsx42("span", { className: Notification_default.badge, children: item.badge }) : null
|
|
8179
8340
|
] }),
|
|
8180
|
-
item.description ? /* @__PURE__ */
|
|
8181
|
-
item.action ? /* @__PURE__ */
|
|
8341
|
+
item.description ? /* @__PURE__ */ jsx42("p", { className: Notification_default.description, children: item.description }) : null,
|
|
8342
|
+
item.action ? /* @__PURE__ */ jsx42("div", { className: Notification_default.actionRow, children: /* @__PURE__ */ jsx42(
|
|
8182
8343
|
Button.Root,
|
|
8183
8344
|
{
|
|
8184
8345
|
type: "button",
|
|
@@ -8190,17 +8351,17 @@ function NotificationCard({
|
|
|
8190
8351
|
}
|
|
8191
8352
|
) }) : null
|
|
8192
8353
|
] }),
|
|
8193
|
-
item.closable ? /* @__PURE__ */
|
|
8354
|
+
item.closable ? /* @__PURE__ */ jsx42(
|
|
8194
8355
|
"button",
|
|
8195
8356
|
{
|
|
8196
8357
|
type: "button",
|
|
8197
8358
|
className: Notification_default.closeButton,
|
|
8198
8359
|
"aria-label": "Dismiss notification",
|
|
8199
8360
|
onClick: () => onDismiss(item.id),
|
|
8200
|
-
children: /* @__PURE__ */
|
|
8361
|
+
children: /* @__PURE__ */ jsx42(X3, { "aria-hidden": "true" })
|
|
8201
8362
|
}
|
|
8202
8363
|
) : null,
|
|
8203
|
-
!item.persistent ? /* @__PURE__ */
|
|
8364
|
+
!item.persistent ? /* @__PURE__ */ jsx42("div", { className: Notification_default.progressTrack, "aria-hidden": "true", children: /* @__PURE__ */ jsx42("span", { className: Notification_default.progressValue, style: { transform: `scaleX(${progress})` } }) }) : null
|
|
8204
8365
|
]
|
|
8205
8366
|
}
|
|
8206
8367
|
);
|
|
@@ -8208,8 +8369,8 @@ function NotificationCard({
|
|
|
8208
8369
|
|
|
8209
8370
|
// src/components/notification/NotificationStore.tsx
|
|
8210
8371
|
import { AnimatePresence, LayoutGroup, motion } from "framer-motion";
|
|
8211
|
-
import * as
|
|
8212
|
-
import { jsx as
|
|
8372
|
+
import * as React56 from "react";
|
|
8373
|
+
import { jsx as jsx43, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
8213
8374
|
var DEFAULT_DURATION = 5e3;
|
|
8214
8375
|
var PEEK_VISIBLE = 3;
|
|
8215
8376
|
var PEEK_PX = 8;
|
|
@@ -8236,7 +8397,7 @@ var POSITIONS = [
|
|
|
8236
8397
|
"bottom-right"
|
|
8237
8398
|
];
|
|
8238
8399
|
var TYPES = ["success", "error", "warning", "info"];
|
|
8239
|
-
var StoreContext =
|
|
8400
|
+
var StoreContext = React56.createContext(null);
|
|
8240
8401
|
function newId() {
|
|
8241
8402
|
return globalThis.crypto?.randomUUID?.() ?? `ntf-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
8242
8403
|
}
|
|
@@ -8248,10 +8409,10 @@ function NotificationStack({
|
|
|
8248
8409
|
items,
|
|
8249
8410
|
onDismiss
|
|
8250
8411
|
}) {
|
|
8251
|
-
const [expanded, setExpanded] =
|
|
8252
|
-
const collapseTimerRef =
|
|
8412
|
+
const [expanded, setExpanded] = React56.useState(false);
|
|
8413
|
+
const collapseTimerRef = React56.useRef(null);
|
|
8253
8414
|
const top = isTop(position);
|
|
8254
|
-
const handleHover =
|
|
8415
|
+
const handleHover = React56.useCallback((hovered) => {
|
|
8255
8416
|
if (collapseTimerRef.current !== null) {
|
|
8256
8417
|
clearTimeout(collapseTimerRef.current);
|
|
8257
8418
|
collapseTimerRef.current = null;
|
|
@@ -8262,14 +8423,14 @@ function NotificationStack({
|
|
|
8262
8423
|
collapseTimerRef.current = window.setTimeout(() => setExpanded(false), 100);
|
|
8263
8424
|
}
|
|
8264
8425
|
}, []);
|
|
8265
|
-
|
|
8426
|
+
React56.useEffect(
|
|
8266
8427
|
() => () => {
|
|
8267
8428
|
if (collapseTimerRef.current !== null) clearTimeout(collapseTimerRef.current);
|
|
8268
8429
|
},
|
|
8269
8430
|
[]
|
|
8270
8431
|
);
|
|
8271
8432
|
const visible = items.filter((n) => !n.dismissing);
|
|
8272
|
-
return /* @__PURE__ */
|
|
8433
|
+
return /* @__PURE__ */ jsx43(
|
|
8273
8434
|
motion.ol,
|
|
8274
8435
|
{
|
|
8275
8436
|
layout: true,
|
|
@@ -8280,7 +8441,7 @@ function NotificationStack({
|
|
|
8280
8441
|
transition: { layout: TWEEN_SLOW },
|
|
8281
8442
|
onMouseEnter: () => handleHover(true),
|
|
8282
8443
|
onMouseLeave: () => handleHover(false),
|
|
8283
|
-
children: /* @__PURE__ */
|
|
8444
|
+
children: /* @__PURE__ */ jsx43(AnimatePresence, { children: visible.map((item, index) => /* @__PURE__ */ jsx43(
|
|
8284
8445
|
NotificationStackItem,
|
|
8285
8446
|
{
|
|
8286
8447
|
item,
|
|
@@ -8296,7 +8457,7 @@ function NotificationStack({
|
|
|
8296
8457
|
}
|
|
8297
8458
|
);
|
|
8298
8459
|
}
|
|
8299
|
-
var NotificationStackItem =
|
|
8460
|
+
var NotificationStackItem = React56.memo(function NotificationStackItem2({
|
|
8300
8461
|
item,
|
|
8301
8462
|
index,
|
|
8302
8463
|
expanded,
|
|
@@ -8311,7 +8472,7 @@ var NotificationStackItem = React54.memo(function NotificationStackItem2({
|
|
|
8311
8472
|
const rotateEnter = top ? -45 : 45;
|
|
8312
8473
|
const rotateExit = top ? 25 : -25;
|
|
8313
8474
|
const layoutDep = `${item.id}-${index}-${String(expanded)}-${String(hidden)}`;
|
|
8314
|
-
return /* @__PURE__ */
|
|
8475
|
+
return /* @__PURE__ */ jsx43(
|
|
8315
8476
|
motion.li,
|
|
8316
8477
|
{
|
|
8317
8478
|
className: Notification_default.item,
|
|
@@ -8347,7 +8508,7 @@ var NotificationStackItem = React54.memo(function NotificationStackItem2({
|
|
|
8347
8508
|
transformOrigin: top ? "top center" : "bottom center",
|
|
8348
8509
|
pointerEvents: hidden ? "none" : "auto"
|
|
8349
8510
|
},
|
|
8350
|
-
children: /* @__PURE__ */
|
|
8511
|
+
children: /* @__PURE__ */ jsx43(
|
|
8351
8512
|
NotificationCard,
|
|
8352
8513
|
{
|
|
8353
8514
|
item,
|
|
@@ -8364,7 +8525,7 @@ function NotificationToaster({
|
|
|
8364
8525
|
entries,
|
|
8365
8526
|
onDismiss
|
|
8366
8527
|
}) {
|
|
8367
|
-
const grouped =
|
|
8528
|
+
const grouped = React56.useMemo(() => {
|
|
8368
8529
|
const map = /* @__PURE__ */ new Map();
|
|
8369
8530
|
for (const entry of entries) {
|
|
8370
8531
|
if (!map.has(entry.position)) map.set(entry.position, /* @__PURE__ */ new Map());
|
|
@@ -8380,18 +8541,18 @@ function NotificationToaster({
|
|
|
8380
8541
|
}
|
|
8381
8542
|
return map;
|
|
8382
8543
|
}, [entries]);
|
|
8383
|
-
return /* @__PURE__ */
|
|
8544
|
+
return /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsx43("div", { className: Notification_default.viewport, children: POSITIONS.map((pos) => {
|
|
8384
8545
|
const byType = grouped.get(pos);
|
|
8385
8546
|
if (!byType?.size) return null;
|
|
8386
8547
|
const [vertical, horizontal] = pos.split("-");
|
|
8387
8548
|
const stacks = TYPES.map((type) => ({ type, items: byType.get(type) ?? [] })).filter(
|
|
8388
8549
|
(s) => s.items.length > 0
|
|
8389
8550
|
);
|
|
8390
|
-
return /* @__PURE__ */
|
|
8551
|
+
return /* @__PURE__ */ jsx43(
|
|
8391
8552
|
"section",
|
|
8392
8553
|
{
|
|
8393
8554
|
className: `${Notification_default.zone} ${Notification_default[vertical]} ${Notification_default[horizontal]}`,
|
|
8394
|
-
children: /* @__PURE__ */
|
|
8555
|
+
children: /* @__PURE__ */ jsx43(LayoutGroup, { id: `zone-${pos}`, children: stacks.map((s) => /* @__PURE__ */ jsx43(
|
|
8395
8556
|
NotificationStack,
|
|
8396
8557
|
{
|
|
8397
8558
|
position: pos,
|
|
@@ -8410,18 +8571,18 @@ function NotificationProvider({
|
|
|
8410
8571
|
position = "top-right",
|
|
8411
8572
|
max = 5
|
|
8412
8573
|
}) {
|
|
8413
|
-
const [entries, setEntries] =
|
|
8414
|
-
const dismiss =
|
|
8574
|
+
const [entries, setEntries] = React56.useState([]);
|
|
8575
|
+
const dismiss = React56.useCallback((id) => {
|
|
8415
8576
|
setEntries((prev) => prev.map((n) => n.id === id ? { ...n, dismissing: true } : n));
|
|
8416
8577
|
window.setTimeout(() => {
|
|
8417
8578
|
setEntries((prev) => prev.filter((n) => n.id !== id));
|
|
8418
8579
|
}, DISMISS_CLEANUP_MS);
|
|
8419
8580
|
}, []);
|
|
8420
|
-
const dismissAll =
|
|
8581
|
+
const dismissAll = React56.useCallback(() => {
|
|
8421
8582
|
setEntries((prev) => prev.map((n) => ({ ...n, dismissing: true })));
|
|
8422
8583
|
window.setTimeout(() => setEntries([]), DISMISS_CLEANUP_MS);
|
|
8423
8584
|
}, []);
|
|
8424
|
-
const notify =
|
|
8585
|
+
const notify = React56.useCallback(
|
|
8425
8586
|
(options) => {
|
|
8426
8587
|
const id = newId();
|
|
8427
8588
|
const record = {
|
|
@@ -8447,29 +8608,29 @@ function NotificationProvider({
|
|
|
8447
8608
|
},
|
|
8448
8609
|
[position, max]
|
|
8449
8610
|
);
|
|
8450
|
-
const publicItems =
|
|
8451
|
-
const value =
|
|
8611
|
+
const publicItems = React56.useMemo(() => entries.filter((n) => !n.dismissing), [entries]);
|
|
8612
|
+
const value = React56.useMemo(
|
|
8452
8613
|
() => ({ items: publicItems, notify, dismiss, dismissAll }),
|
|
8453
8614
|
[publicItems, notify, dismiss, dismissAll]
|
|
8454
8615
|
);
|
|
8455
8616
|
return /* @__PURE__ */ jsxs22(StoreContext.Provider, { value, children: [
|
|
8456
8617
|
children,
|
|
8457
|
-
/* @__PURE__ */
|
|
8618
|
+
/* @__PURE__ */ jsx43(NotificationToaster, { entries, onDismiss: dismiss })
|
|
8458
8619
|
] });
|
|
8459
8620
|
}
|
|
8460
8621
|
function useNotifications() {
|
|
8461
|
-
const ctx =
|
|
8622
|
+
const ctx = React56.useContext(StoreContext);
|
|
8462
8623
|
if (!ctx) throw new Error("useNotifications must be used within NotificationProvider");
|
|
8463
8624
|
return { notify: ctx.notify, dismiss: ctx.dismiss, dismissAll: ctx.dismissAll };
|
|
8464
8625
|
}
|
|
8465
8626
|
function useNotificationStore() {
|
|
8466
|
-
const ctx =
|
|
8627
|
+
const ctx = React56.useContext(StoreContext);
|
|
8467
8628
|
if (!ctx) throw new Error("useNotificationStore must be used within NotificationProvider");
|
|
8468
8629
|
return ctx;
|
|
8469
8630
|
}
|
|
8470
8631
|
|
|
8471
8632
|
// src/components/page-content/PageContent.tsx
|
|
8472
|
-
import * as
|
|
8633
|
+
import * as React57 from "react";
|
|
8473
8634
|
|
|
8474
8635
|
// src/components/page-content/PageContent.module.css
|
|
8475
8636
|
var PageContent_default = {
|
|
@@ -8482,10 +8643,10 @@ var PageContent_default = {
|
|
|
8482
8643
|
};
|
|
8483
8644
|
|
|
8484
8645
|
// src/components/page-content/PageContent.tsx
|
|
8485
|
-
import { jsx as
|
|
8486
|
-
var PageContentRoot =
|
|
8646
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
8647
|
+
var PageContentRoot = React57.forwardRef(
|
|
8487
8648
|
function PageContentRoot2({ maxWidth = "full", className, children, ...rest }, forwardedRef) {
|
|
8488
|
-
return /* @__PURE__ */
|
|
8649
|
+
return /* @__PURE__ */ jsx44(
|
|
8489
8650
|
"div",
|
|
8490
8651
|
{
|
|
8491
8652
|
ref: forwardedRef,
|
|
@@ -8500,25 +8661,25 @@ var PageContentRoot = React55.forwardRef(
|
|
|
8500
8661
|
}
|
|
8501
8662
|
);
|
|
8502
8663
|
PageContentRoot.displayName = "PageContent.Root";
|
|
8503
|
-
var PageContentSection =
|
|
8664
|
+
var PageContentSection = React57.forwardRef(
|
|
8504
8665
|
function PageContentSection2({ className, children, ...rest }, forwardedRef) {
|
|
8505
|
-
return /* @__PURE__ */
|
|
8666
|
+
return /* @__PURE__ */ jsx44("section", { ref: forwardedRef, className: cx(PageContent_default.section, className), ...rest, children });
|
|
8506
8667
|
}
|
|
8507
8668
|
);
|
|
8508
8669
|
PageContentSection.displayName = "PageContent.Section";
|
|
8509
8670
|
function PageContentHeader({ className, children, ...rest }) {
|
|
8510
|
-
return /* @__PURE__ */
|
|
8671
|
+
return /* @__PURE__ */ jsx44("div", { className: cx(PageContent_default.header, className), ...rest, children });
|
|
8511
8672
|
}
|
|
8512
8673
|
PageContentHeader.displayName = "PageContent.Header";
|
|
8513
|
-
var PageContentTitle =
|
|
8674
|
+
var PageContentTitle = React57.forwardRef(
|
|
8514
8675
|
function PageContentTitle2({ className, children, ...rest }, forwardedRef) {
|
|
8515
|
-
return /* @__PURE__ */
|
|
8676
|
+
return /* @__PURE__ */ jsx44("h1", { ref: forwardedRef, className: cx(PageContent_default.title, className), ...rest, children });
|
|
8516
8677
|
}
|
|
8517
8678
|
);
|
|
8518
8679
|
PageContentTitle.displayName = "PageContent.Title";
|
|
8519
|
-
var PageContentDescription =
|
|
8680
|
+
var PageContentDescription = React57.forwardRef(
|
|
8520
8681
|
function PageContentDescription2({ className, children, measure = "readable", ...rest }, forwardedRef) {
|
|
8521
|
-
return /* @__PURE__ */
|
|
8682
|
+
return /* @__PURE__ */ jsx44(
|
|
8522
8683
|
"p",
|
|
8523
8684
|
{
|
|
8524
8685
|
ref: forwardedRef,
|
|
@@ -8534,7 +8695,7 @@ var PageContentDescription = React55.forwardRef(
|
|
|
8534
8695
|
);
|
|
8535
8696
|
PageContentDescription.displayName = "PageContent.Description";
|
|
8536
8697
|
function PageContentBody({ className, children, ...rest }) {
|
|
8537
|
-
return /* @__PURE__ */
|
|
8698
|
+
return /* @__PURE__ */ jsx44("div", { className: cx(PageContent_default.body, className), ...rest, children });
|
|
8538
8699
|
}
|
|
8539
8700
|
PageContentBody.displayName = "PageContent.Body";
|
|
8540
8701
|
var PageContent = {
|
|
@@ -8547,17 +8708,17 @@ var PageContent = {
|
|
|
8547
8708
|
};
|
|
8548
8709
|
|
|
8549
8710
|
// src/components/popover/Popover.tsx
|
|
8550
|
-
import * as
|
|
8711
|
+
import * as React59 from "react";
|
|
8551
8712
|
|
|
8552
8713
|
// src/components/popover/Popover.module.css
|
|
8553
8714
|
var Popover_default = {
|
|
8554
|
-
|
|
8715
|
+
popoverScroll: "Popover_popoverScroll",
|
|
8555
8716
|
popoverInBottom: "Popover_popoverInBottom",
|
|
8556
8717
|
popoverInTop: "Popover_popoverInTop"
|
|
8557
8718
|
};
|
|
8558
8719
|
|
|
8559
8720
|
// src/components/popover/usePopoverPosition.ts
|
|
8560
|
-
import * as
|
|
8721
|
+
import * as React58 from "react";
|
|
8561
8722
|
|
|
8562
8723
|
// src/components/popover/popoverGeometry.ts
|
|
8563
8724
|
var POPOVER_MIN_MAX_HEIGHT = 120;
|
|
@@ -8584,8 +8745,8 @@ function usePopoverPosition({
|
|
|
8584
8745
|
align,
|
|
8585
8746
|
sameMinWidthAsTrigger
|
|
8586
8747
|
}) {
|
|
8587
|
-
const [layout, setLayout] =
|
|
8588
|
-
const commit =
|
|
8748
|
+
const [layout, setLayout] = React58.useState(null);
|
|
8749
|
+
const commit = React58.useCallback(() => {
|
|
8589
8750
|
const trigger = triggerRef.current;
|
|
8590
8751
|
const panel = contentRef.current;
|
|
8591
8752
|
if (!trigger || !panel) return;
|
|
@@ -8622,7 +8783,7 @@ function usePopoverPosition({
|
|
|
8622
8783
|
};
|
|
8623
8784
|
setLayout((prev) => prev && layoutEqual2(prev, next) ? prev : next);
|
|
8624
8785
|
}, [triggerRef, contentRef, side, align, sameMinWidthAsTrigger]);
|
|
8625
|
-
|
|
8786
|
+
React58.useLayoutEffect(() => {
|
|
8626
8787
|
if (!open) {
|
|
8627
8788
|
setLayout(null);
|
|
8628
8789
|
return;
|
|
@@ -8659,7 +8820,7 @@ function usePopoverPosition({
|
|
|
8659
8820
|
}
|
|
8660
8821
|
|
|
8661
8822
|
// src/components/popover/Popover.tsx
|
|
8662
|
-
import { jsx as
|
|
8823
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
8663
8824
|
var [PopoverProvider, usePopoverContext] = createComponentContext("Popover");
|
|
8664
8825
|
function PopoverRoot({ open, defaultOpen = false, onOpenChange, children }) {
|
|
8665
8826
|
const [isOpen, setIsOpen] = useControllableState({
|
|
@@ -8667,25 +8828,25 @@ function PopoverRoot({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
8667
8828
|
defaultValue: defaultOpen,
|
|
8668
8829
|
onChange: onOpenChange
|
|
8669
8830
|
});
|
|
8670
|
-
const id =
|
|
8831
|
+
const id = React59.useId();
|
|
8671
8832
|
const triggerId = `${id}-trigger`;
|
|
8672
8833
|
const contentId = `${id}-content`;
|
|
8673
|
-
const triggerRef =
|
|
8674
|
-
const onClose =
|
|
8675
|
-
const onToggle =
|
|
8676
|
-
const value =
|
|
8834
|
+
const triggerRef = React59.useRef(null);
|
|
8835
|
+
const onClose = React59.useCallback(() => setIsOpen(false), [setIsOpen]);
|
|
8836
|
+
const onToggle = React59.useCallback(() => setIsOpen((v) => !v), [setIsOpen]);
|
|
8837
|
+
const value = React59.useMemo(
|
|
8677
8838
|
() => ({ isOpen, onClose, onToggle, triggerId, contentId, triggerRef }),
|
|
8678
8839
|
[isOpen, onClose, onToggle, triggerId, contentId]
|
|
8679
8840
|
);
|
|
8680
|
-
return /* @__PURE__ */
|
|
8841
|
+
return /* @__PURE__ */ jsx45(PopoverProvider, { value, children });
|
|
8681
8842
|
}
|
|
8682
8843
|
PopoverRoot.displayName = "PopoverRoot";
|
|
8683
8844
|
function PopoverTrigger({ children, asChild: _asChild = true }) {
|
|
8684
8845
|
void _asChild;
|
|
8685
8846
|
const { isOpen, onToggle, triggerId, contentId, triggerRef } = usePopoverContext();
|
|
8686
|
-
const toggleRef =
|
|
8847
|
+
const toggleRef = React59.useRef(onToggle);
|
|
8687
8848
|
toggleRef.current = onToggle;
|
|
8688
|
-
const setNode =
|
|
8849
|
+
const setNode = React59.useCallback(
|
|
8689
8850
|
(el) => {
|
|
8690
8851
|
triggerRef.current = el;
|
|
8691
8852
|
},
|
|
@@ -8693,9 +8854,9 @@ function PopoverTrigger({ children, asChild: _asChild = true }) {
|
|
|
8693
8854
|
);
|
|
8694
8855
|
const child = children;
|
|
8695
8856
|
const childRef = child.props.ref ?? child.ref;
|
|
8696
|
-
const mergedRef =
|
|
8857
|
+
const mergedRef = React59.useMemo(() => mergeRefs(childRef, setNode), [childRef, setNode]);
|
|
8697
8858
|
const userClick = child.props?.onClick;
|
|
8698
|
-
return
|
|
8859
|
+
return React59.cloneElement(child, {
|
|
8699
8860
|
ref: mergedRef,
|
|
8700
8861
|
id: triggerId,
|
|
8701
8862
|
"aria-expanded": isOpen,
|
|
@@ -8715,13 +8876,13 @@ function PopoverContent({
|
|
|
8715
8876
|
size = "m",
|
|
8716
8877
|
trapFocus = false,
|
|
8717
8878
|
insetPadding = "none",
|
|
8718
|
-
insetGap = "
|
|
8879
|
+
insetGap = "pad",
|
|
8719
8880
|
children,
|
|
8720
8881
|
className
|
|
8721
8882
|
}) {
|
|
8722
8883
|
const { isOpen, onClose, triggerRef, contentId, triggerId } = usePopoverContext();
|
|
8723
8884
|
const overlayPortalLayer = useOverlayPortalLayer();
|
|
8724
|
-
const contentRef =
|
|
8885
|
+
const contentRef = React59.useRef(null);
|
|
8725
8886
|
const layout = usePopoverPosition({
|
|
8726
8887
|
open: isOpen,
|
|
8727
8888
|
triggerRef,
|
|
@@ -8734,7 +8895,7 @@ function PopoverContent({
|
|
|
8734
8895
|
enabled: isOpen && trapFocus,
|
|
8735
8896
|
restoreFocus: true
|
|
8736
8897
|
});
|
|
8737
|
-
const ref =
|
|
8898
|
+
const ref = React59.useMemo(() => mergeRefs(contentRef, trapRef), [trapRef]);
|
|
8738
8899
|
useEscapeKey({ enabled: isOpen, onEscape: onClose });
|
|
8739
8900
|
useOutsideClick({
|
|
8740
8901
|
refs: [triggerRef, contentRef],
|
|
@@ -8743,7 +8904,7 @@ function PopoverContent({
|
|
|
8743
8904
|
shouldSuppressOutsideClick: (target) => isPortaledSelectListboxOwnedByContainer(target, contentRef.current)
|
|
8744
8905
|
});
|
|
8745
8906
|
if (!isOpen) return null;
|
|
8746
|
-
return /* @__PURE__ */
|
|
8907
|
+
return /* @__PURE__ */ jsx45(Portal, { children: /* @__PURE__ */ jsx45(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx45(
|
|
8747
8908
|
ScrollContainer,
|
|
8748
8909
|
{
|
|
8749
8910
|
ref,
|
|
@@ -8757,7 +8918,7 @@ function PopoverContent({
|
|
|
8757
8918
|
"data-size": size,
|
|
8758
8919
|
"data-inset-padding": insetPadding,
|
|
8759
8920
|
"data-inset-gap": insetGap,
|
|
8760
|
-
className: cx(Popover_default.
|
|
8921
|
+
className: cx(Popover_default.popoverScroll, className),
|
|
8761
8922
|
style: layout?.style,
|
|
8762
8923
|
children
|
|
8763
8924
|
}
|
|
@@ -8771,7 +8932,7 @@ var Popover = {
|
|
|
8771
8932
|
};
|
|
8772
8933
|
|
|
8773
8934
|
// src/components/progress-circle/ProgressCircle.tsx
|
|
8774
|
-
import * as
|
|
8935
|
+
import * as React60 from "react";
|
|
8775
8936
|
|
|
8776
8937
|
// src/components/progress-circle/ProgressCircle.module.css
|
|
8777
8938
|
var ProgressCircle_default = {
|
|
@@ -8782,12 +8943,12 @@ var ProgressCircle_default = {
|
|
|
8782
8943
|
};
|
|
8783
8944
|
|
|
8784
8945
|
// src/components/progress-circle/ProgressCircle.tsx
|
|
8785
|
-
import { jsx as
|
|
8946
|
+
import { jsx as jsx46, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
8786
8947
|
var pc = primitiveTokens.progressCircle;
|
|
8787
8948
|
function clampProgress2(value, max) {
|
|
8788
8949
|
return Math.min(max, Math.max(value, 0));
|
|
8789
8950
|
}
|
|
8790
|
-
var ProgressCircleRoot =
|
|
8951
|
+
var ProgressCircleRoot = React60.forwardRef(
|
|
8791
8952
|
({ value, max = 100, size = "m", label, children, className }, ref) => {
|
|
8792
8953
|
const safeMax = max > 0 ? max : 100;
|
|
8793
8954
|
const safeValue = clampProgress2(value, safeMax);
|
|
@@ -8821,7 +8982,7 @@ var ProgressCircleRoot = React58.forwardRef(
|
|
|
8821
8982
|
"aria-valuemax": safeMax,
|
|
8822
8983
|
"aria-label": label,
|
|
8823
8984
|
children: [
|
|
8824
|
-
/* @__PURE__ */
|
|
8985
|
+
/* @__PURE__ */ jsx46(
|
|
8825
8986
|
"circle",
|
|
8826
8987
|
{
|
|
8827
8988
|
cx: center,
|
|
@@ -8832,7 +8993,7 @@ var ProgressCircleRoot = React58.forwardRef(
|
|
|
8832
8993
|
strokeWidth
|
|
8833
8994
|
}
|
|
8834
8995
|
),
|
|
8835
|
-
/* @__PURE__ */
|
|
8996
|
+
/* @__PURE__ */ jsx46(
|
|
8836
8997
|
"circle",
|
|
8837
8998
|
{
|
|
8838
8999
|
cx: center,
|
|
@@ -8849,7 +9010,7 @@ var ProgressCircleRoot = React58.forwardRef(
|
|
|
8849
9010
|
]
|
|
8850
9011
|
}
|
|
8851
9012
|
),
|
|
8852
|
-
children ? /* @__PURE__ */
|
|
9013
|
+
children ? /* @__PURE__ */ jsx46("div", { className: ProgressCircle_default.inner, children }) : null
|
|
8853
9014
|
]
|
|
8854
9015
|
}
|
|
8855
9016
|
);
|
|
@@ -8859,7 +9020,7 @@ ProgressCircleRoot.displayName = "ProgressCircleRoot";
|
|
|
8859
9020
|
var ProgressCircle = { Root: ProgressCircleRoot };
|
|
8860
9021
|
|
|
8861
9022
|
// src/components/radio/Radio.tsx
|
|
8862
|
-
import * as
|
|
9023
|
+
import * as React61 from "react";
|
|
8863
9024
|
|
|
8864
9025
|
// src/components/radio/Radio.module.css
|
|
8865
9026
|
var Radio_default = {
|
|
@@ -8875,9 +9036,9 @@ var Radio_default = {
|
|
|
8875
9036
|
};
|
|
8876
9037
|
|
|
8877
9038
|
// src/components/radio/Radio.tsx
|
|
8878
|
-
import { jsx as
|
|
9039
|
+
import { jsx as jsx47, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
8879
9040
|
var [RadioProvider, useRadioContext] = createComponentContext("Radio");
|
|
8880
|
-
var RadioRoot =
|
|
9041
|
+
var RadioRoot = React61.forwardRef(
|
|
8881
9042
|
({
|
|
8882
9043
|
id,
|
|
8883
9044
|
variant = "default",
|
|
@@ -8888,14 +9049,14 @@ var RadioRoot = React59.forwardRef(
|
|
|
8888
9049
|
children,
|
|
8889
9050
|
...inputRest
|
|
8890
9051
|
}, ref) => {
|
|
8891
|
-
const rawId =
|
|
9052
|
+
const rawId = React61.useId();
|
|
8892
9053
|
const inputId = id ?? rawId;
|
|
8893
9054
|
const hintId = `${inputId}-hint`;
|
|
8894
9055
|
const errorId = `${inputId}-error`;
|
|
8895
|
-
const [hasHint, setHasHint] =
|
|
8896
|
-
const [hasError, setHasError] =
|
|
9056
|
+
const [hasHint, setHasHint] = React61.useState(false);
|
|
9057
|
+
const [hasError, setHasError] = React61.useState(false);
|
|
8897
9058
|
const invalid = variant === "error" || hasError;
|
|
8898
|
-
const restInputPropsRef =
|
|
9059
|
+
const restInputPropsRef = React61.useRef(inputRest);
|
|
8899
9060
|
restInputPropsRef.current = inputRest;
|
|
8900
9061
|
const parts = [
|
|
8901
9062
|
ariaDescribedBy,
|
|
@@ -8903,11 +9064,11 @@ var RadioRoot = React59.forwardRef(
|
|
|
8903
9064
|
hasError ? errorId : void 0
|
|
8904
9065
|
].filter(Boolean);
|
|
8905
9066
|
const describedBy = parts.length > 0 ? parts.join(" ") : void 0;
|
|
8906
|
-
const registerHint =
|
|
8907
|
-
const unregisterHint =
|
|
8908
|
-
const registerError =
|
|
8909
|
-
const unregisterError =
|
|
8910
|
-
const ctxValue =
|
|
9067
|
+
const registerHint = React61.useCallback(() => setHasHint(true), []);
|
|
9068
|
+
const unregisterHint = React61.useCallback(() => setHasHint(false), []);
|
|
9069
|
+
const registerError = React61.useCallback(() => setHasError(true), []);
|
|
9070
|
+
const unregisterError = React61.useCallback(() => setHasError(false), []);
|
|
9071
|
+
const ctxValue = React61.useMemo(
|
|
8911
9072
|
() => ({
|
|
8912
9073
|
inputId,
|
|
8913
9074
|
hintId,
|
|
@@ -8938,7 +9099,7 @@ var RadioRoot = React59.forwardRef(
|
|
|
8938
9099
|
unregisterError
|
|
8939
9100
|
]
|
|
8940
9101
|
);
|
|
8941
|
-
return /* @__PURE__ */
|
|
9102
|
+
return /* @__PURE__ */ jsx47(RadioProvider, { value: ctxValue, children: /* @__PURE__ */ jsx47(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx47(
|
|
8942
9103
|
"div",
|
|
8943
9104
|
{
|
|
8944
9105
|
className: cx(Radio_default.field, className),
|
|
@@ -8954,9 +9115,9 @@ var RadioRoot = React59.forwardRef(
|
|
|
8954
9115
|
}
|
|
8955
9116
|
);
|
|
8956
9117
|
RadioRoot.displayName = "RadioRoot";
|
|
8957
|
-
var RadioLabel =
|
|
9118
|
+
var RadioLabel = React61.forwardRef(function RadioLabel2({ children, className, ...rest }, ref) {
|
|
8958
9119
|
const { inputId, inputRef, invalid, disabled, describedBy, restInputPropsRef, size } = useRadioContext();
|
|
8959
|
-
const filterId =
|
|
9120
|
+
const filterId = React61.useId();
|
|
8960
9121
|
const svgFilterId = `es-radio-${filterId.replace(/:/g, "")}`;
|
|
8961
9122
|
return /* @__PURE__ */ jsxs24(
|
|
8962
9123
|
Label.Root,
|
|
@@ -8969,7 +9130,7 @@ var RadioLabel = React59.forwardRef(function RadioLabel2({ children, className,
|
|
|
8969
9130
|
...rest,
|
|
8970
9131
|
children: [
|
|
8971
9132
|
/* @__PURE__ */ jsxs24("span", { className: Radio_default.controlCell, children: [
|
|
8972
|
-
/* @__PURE__ */
|
|
9133
|
+
/* @__PURE__ */ jsx47(
|
|
8973
9134
|
"input",
|
|
8974
9135
|
{
|
|
8975
9136
|
ref: inputRef,
|
|
@@ -8983,8 +9144,8 @@ var RadioLabel = React59.forwardRef(function RadioLabel2({ children, className,
|
|
|
8983
9144
|
}
|
|
8984
9145
|
),
|
|
8985
9146
|
/* @__PURE__ */ jsxs24("svg", { viewBox: "0 0 18 18", className: Radio_default.svg, "aria-hidden": "true", children: [
|
|
8986
|
-
/* @__PURE__ */
|
|
8987
|
-
/* @__PURE__ */
|
|
9147
|
+
/* @__PURE__ */ jsx47("defs", { children: /* @__PURE__ */ jsx47("filter", { id: svgFilterId, children: /* @__PURE__ */ jsx47("feDropShadow", { dx: "0", dy: "1", stdDeviation: "0.5", floodOpacity: "0.10" }) }) }),
|
|
9148
|
+
/* @__PURE__ */ jsx47(
|
|
8988
9149
|
"circle",
|
|
8989
9150
|
{
|
|
8990
9151
|
cx: "9",
|
|
@@ -8994,10 +9155,10 @@ var RadioLabel = React59.forwardRef(function RadioLabel2({ children, className,
|
|
|
8994
9155
|
filter: `url(#${svgFilterId})`
|
|
8995
9156
|
}
|
|
8996
9157
|
),
|
|
8997
|
-
/* @__PURE__ */
|
|
9158
|
+
/* @__PURE__ */ jsx47("circle", { cx: "9", cy: "9", r: "4", className: Radio_default.innerCircle })
|
|
8998
9159
|
] })
|
|
8999
9160
|
] }),
|
|
9000
|
-
children !== void 0 && children !== null ? /* @__PURE__ */
|
|
9161
|
+
children !== void 0 && children !== null ? /* @__PURE__ */ jsx47("span", { className: Radio_default.text, children }) : null
|
|
9001
9162
|
]
|
|
9002
9163
|
}
|
|
9003
9164
|
);
|
|
@@ -9005,13 +9166,13 @@ var RadioLabel = React59.forwardRef(function RadioLabel2({ children, className,
|
|
|
9005
9166
|
RadioLabel.displayName = "RadioLabel";
|
|
9006
9167
|
function RadioHint({ children, className, ...rest }) {
|
|
9007
9168
|
const { hintId, registerHint, unregisterHint, size, disabled } = useRadioContext();
|
|
9008
|
-
|
|
9169
|
+
React61.useLayoutEffect(() => {
|
|
9009
9170
|
registerHint();
|
|
9010
9171
|
return () => {
|
|
9011
9172
|
unregisterHint();
|
|
9012
9173
|
};
|
|
9013
9174
|
}, [registerHint, unregisterHint]);
|
|
9014
|
-
return /* @__PURE__ */
|
|
9175
|
+
return /* @__PURE__ */ jsx47(
|
|
9015
9176
|
Hint.Root,
|
|
9016
9177
|
{
|
|
9017
9178
|
id: hintId,
|
|
@@ -9026,13 +9187,13 @@ function RadioHint({ children, className, ...rest }) {
|
|
|
9026
9187
|
RadioHint.displayName = "RadioHint";
|
|
9027
9188
|
function RadioError({ children, className, ...rest }) {
|
|
9028
9189
|
const { errorId, registerError, unregisterError, size } = useRadioContext();
|
|
9029
|
-
|
|
9190
|
+
React61.useLayoutEffect(() => {
|
|
9030
9191
|
registerError();
|
|
9031
9192
|
return () => {
|
|
9032
9193
|
unregisterError();
|
|
9033
9194
|
};
|
|
9034
9195
|
}, [registerError, unregisterError]);
|
|
9035
|
-
return /* @__PURE__ */
|
|
9196
|
+
return /* @__PURE__ */ jsx47(
|
|
9036
9197
|
Hint.Root,
|
|
9037
9198
|
{
|
|
9038
9199
|
id: errorId,
|
|
@@ -9053,7 +9214,7 @@ var Radio = {
|
|
|
9053
9214
|
};
|
|
9054
9215
|
|
|
9055
9216
|
// src/components/segmented-progress-bar/SegmentedProgressBar.tsx
|
|
9056
|
-
import * as
|
|
9217
|
+
import * as React62 from "react";
|
|
9057
9218
|
|
|
9058
9219
|
// src/components/segmented-progress-bar/SegmentedProgressBar.module.css
|
|
9059
9220
|
var SegmentedProgressBar_default = {
|
|
@@ -9065,7 +9226,7 @@ var SegmentedProgressBar_default = {
|
|
|
9065
9226
|
};
|
|
9066
9227
|
|
|
9067
9228
|
// src/components/segmented-progress-bar/SegmentedProgressBar.tsx
|
|
9068
|
-
import { jsx as
|
|
9229
|
+
import { jsx as jsx48, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
9069
9230
|
function clampNonNegative(n) {
|
|
9070
9231
|
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
9071
9232
|
}
|
|
@@ -9082,15 +9243,15 @@ function buildDistributionDescription(segments, total) {
|
|
|
9082
9243
|
});
|
|
9083
9244
|
return parts.join(", ");
|
|
9084
9245
|
}
|
|
9085
|
-
var SegmentedProgressBarRoot =
|
|
9246
|
+
var SegmentedProgressBarRoot = React62.forwardRef(
|
|
9086
9247
|
({ segments, label, size = "m", segmentGap = "none", className }, ref) => {
|
|
9087
|
-
const labelId =
|
|
9088
|
-
const descriptionId =
|
|
9089
|
-
const safe =
|
|
9248
|
+
const labelId = React62.useId();
|
|
9249
|
+
const descriptionId = React62.useId();
|
|
9250
|
+
const safe = React62.useMemo(
|
|
9090
9251
|
() => segments.map((s) => ({ ...s, value: clampNonNegative(s.value) })),
|
|
9091
9252
|
[segments]
|
|
9092
9253
|
);
|
|
9093
|
-
const total =
|
|
9254
|
+
const total = React62.useMemo(() => safe.reduce((acc, s) => acc + s.value, 0), [safe]);
|
|
9094
9255
|
const distributionText = buildDistributionDescription(safe, total);
|
|
9095
9256
|
const trackA11y = label ? { "aria-labelledby": labelId, "aria-describedby": descriptionId } : { "aria-label": distributionText };
|
|
9096
9257
|
return /* @__PURE__ */ jsxs25(
|
|
@@ -9099,10 +9260,10 @@ var SegmentedProgressBarRoot = React60.forwardRef(
|
|
|
9099
9260
|
className: cx(SegmentedProgressBar_default.root, className),
|
|
9100
9261
|
...toDataAttributes({ size, "segment-gap": segmentGap }),
|
|
9101
9262
|
children: [
|
|
9102
|
-
label ? /* @__PURE__ */
|
|
9103
|
-
label ? /* @__PURE__ */
|
|
9104
|
-
/* @__PURE__ */
|
|
9105
|
-
return /* @__PURE__ */
|
|
9263
|
+
label ? /* @__PURE__ */ jsx48("span", { className: SegmentedProgressBar_default.label, id: labelId, children: label }) : null,
|
|
9264
|
+
label ? /* @__PURE__ */ jsx48("span", { id: descriptionId, className: SegmentedProgressBar_default.visuallyHidden, children: distributionText }) : null,
|
|
9265
|
+
/* @__PURE__ */ jsx48("div", { ref, className: SegmentedProgressBar_default.track, role: "group", ...trackA11y, children: total > 0 ? safe.map((seg, i) => {
|
|
9266
|
+
return /* @__PURE__ */ jsx48(
|
|
9106
9267
|
"div",
|
|
9107
9268
|
{
|
|
9108
9269
|
className: SegmentedProgressBar_default.segment,
|
|
@@ -9122,7 +9283,7 @@ SegmentedProgressBarRoot.displayName = "SegmentedProgressBarRoot";
|
|
|
9122
9283
|
var SegmentedProgressBar = { Root: SegmentedProgressBarRoot };
|
|
9123
9284
|
|
|
9124
9285
|
// src/components/slider/Slider.tsx
|
|
9125
|
-
import * as
|
|
9286
|
+
import * as React63 from "react";
|
|
9126
9287
|
|
|
9127
9288
|
// src/components/slider/Slider.module.css
|
|
9128
9289
|
var Slider_default = {
|
|
@@ -9132,7 +9293,7 @@ var Slider_default = {
|
|
|
9132
9293
|
};
|
|
9133
9294
|
|
|
9134
9295
|
// src/components/slider/Slider.tsx
|
|
9135
|
-
import { jsx as
|
|
9296
|
+
import { jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9136
9297
|
function clamp2(n, min, max) {
|
|
9137
9298
|
return Math.min(max, Math.max(min, n));
|
|
9138
9299
|
}
|
|
@@ -9158,7 +9319,7 @@ function SliderRoot({
|
|
|
9158
9319
|
defaultValue: clamp2(initialDefault, min, max),
|
|
9159
9320
|
onChange
|
|
9160
9321
|
});
|
|
9161
|
-
const id =
|
|
9322
|
+
const id = React63.useId();
|
|
9162
9323
|
const safeValue = clamp2(value, min, max);
|
|
9163
9324
|
const applyValueFromInput = (el) => {
|
|
9164
9325
|
const next = Number.parseFloat(el.value);
|
|
@@ -9173,9 +9334,9 @@ function SliderRoot({
|
|
|
9173
9334
|
const handleRangeInput = (e) => {
|
|
9174
9335
|
applyValueFromInput(e.currentTarget);
|
|
9175
9336
|
};
|
|
9176
|
-
return /* @__PURE__ */
|
|
9177
|
-
label ? /* @__PURE__ */
|
|
9178
|
-
/* @__PURE__ */
|
|
9337
|
+
return /* @__PURE__ */ jsx49("div", { className: cx(Slider_default.root, className), ...toDataAttributes({ size }), children: /* @__PURE__ */ jsxs26(ControlSizeProvider, { value: size, children: [
|
|
9338
|
+
label ? /* @__PURE__ */ jsx49("label", { className: Slider_default.label, htmlFor: id, children: label }) : null,
|
|
9339
|
+
/* @__PURE__ */ jsx49(
|
|
9179
9340
|
"input",
|
|
9180
9341
|
{
|
|
9181
9342
|
id: label ? id : void 0,
|
|
@@ -9197,7 +9358,7 @@ SliderRoot.displayName = "SliderRoot";
|
|
|
9197
9358
|
var Slider2 = { Root: SliderRoot };
|
|
9198
9359
|
|
|
9199
9360
|
// src/components/stepper/HorizontalStepper.tsx
|
|
9200
|
-
import * as
|
|
9361
|
+
import * as React64 from "react";
|
|
9201
9362
|
|
|
9202
9363
|
// src/components/stepper/StepperAlign.module.css
|
|
9203
9364
|
var StepperAlign_default = {
|
|
@@ -9215,10 +9376,10 @@ var StepperAlign_default = {
|
|
|
9215
9376
|
};
|
|
9216
9377
|
|
|
9217
9378
|
// src/components/stepper/stepperAlignContext.tsx
|
|
9218
|
-
import { jsx as
|
|
9379
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
9219
9380
|
var [StepperAlignItemProvider, useStepperAlignItemState] = createComponentContext("StepperAlign.Item");
|
|
9220
9381
|
function StepperAlignCheckIcon({ className }) {
|
|
9221
|
-
return /* @__PURE__ */
|
|
9382
|
+
return /* @__PURE__ */ jsx50(
|
|
9222
9383
|
"svg",
|
|
9223
9384
|
{
|
|
9224
9385
|
className,
|
|
@@ -9226,7 +9387,7 @@ function StepperAlignCheckIcon({ className }) {
|
|
|
9226
9387
|
xmlns: "http://www.w3.org/2000/svg",
|
|
9227
9388
|
fill: "none",
|
|
9228
9389
|
"aria-hidden": "true",
|
|
9229
|
-
children: /* @__PURE__ */
|
|
9390
|
+
children: /* @__PURE__ */ jsx50(
|
|
9230
9391
|
"path",
|
|
9231
9392
|
{
|
|
9232
9393
|
fill: "currentColor",
|
|
@@ -9238,14 +9399,14 @@ function StepperAlignCheckIcon({ className }) {
|
|
|
9238
9399
|
}
|
|
9239
9400
|
|
|
9240
9401
|
// src/components/stepper/HorizontalStepper.tsx
|
|
9241
|
-
import { jsx as
|
|
9402
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
9242
9403
|
function HorizontalStepperRoot({
|
|
9243
9404
|
className,
|
|
9244
9405
|
size = "m",
|
|
9245
9406
|
children,
|
|
9246
9407
|
...rest
|
|
9247
9408
|
}) {
|
|
9248
|
-
return /* @__PURE__ */
|
|
9409
|
+
return /* @__PURE__ */ jsx51(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx51("div", { className: cx(StepperAlign_default.hRoot, className), "data-size": size, ...rest, children }) });
|
|
9249
9410
|
}
|
|
9250
9411
|
HorizontalStepperRoot.displayName = "HorizontalStepper.Root";
|
|
9251
9412
|
function HorizontalStepperSeparatorIcon({
|
|
@@ -9254,12 +9415,12 @@ function HorizontalStepperSeparatorIcon({
|
|
|
9254
9415
|
...rest
|
|
9255
9416
|
}) {
|
|
9256
9417
|
const Component = as ?? IconChevronRight;
|
|
9257
|
-
return /* @__PURE__ */
|
|
9418
|
+
return /* @__PURE__ */ jsx51("span", { className: StepperAlign_default.hSeparator, "aria-hidden": "true", children: /* @__PURE__ */ jsx51(Component, { className: cx(StepperAlign_default.hSeparatorIcon, className), strokeWidth: 2, ...rest }) });
|
|
9258
9419
|
}
|
|
9259
9420
|
HorizontalStepperSeparatorIcon.displayName = "HorizontalStepper.SeparatorIcon";
|
|
9260
|
-
var HorizontalStepperItem =
|
|
9421
|
+
var HorizontalStepperItem = React64.forwardRef(
|
|
9261
9422
|
function HorizontalStepperItem2({ state = "default", className, type = "button", children, ...rest }, ref) {
|
|
9262
|
-
return /* @__PURE__ */
|
|
9423
|
+
return /* @__PURE__ */ jsx51(StepperAlignItemProvider, { value: { state }, children: /* @__PURE__ */ jsx51(
|
|
9263
9424
|
"button",
|
|
9264
9425
|
{
|
|
9265
9426
|
ref,
|
|
@@ -9282,9 +9443,9 @@ function HorizontalStepperItemIndicator({
|
|
|
9282
9443
|
const { state: ctxState } = useStepperAlignItemState();
|
|
9283
9444
|
const state = stateProp ?? ctxState;
|
|
9284
9445
|
if (state === "completed") {
|
|
9285
|
-
return /* @__PURE__ */
|
|
9446
|
+
return /* @__PURE__ */ jsx51("div", { className: cx(StepperAlign_default.hIndicator, className), "data-state": state, ...rest, children: /* @__PURE__ */ jsx51(StepperAlignCheckIcon, { className: StepperAlign_default.hCheck }) });
|
|
9286
9447
|
}
|
|
9287
|
-
return /* @__PURE__ */
|
|
9448
|
+
return /* @__PURE__ */ jsx51("div", { className: cx(StepperAlign_default.hIndicator, className), "data-state": state, ...rest, children });
|
|
9288
9449
|
}
|
|
9289
9450
|
HorizontalStepperItemIndicator.displayName = "HorizontalStepper.ItemIndicator";
|
|
9290
9451
|
var HorizontalStepper = {
|
|
@@ -9295,7 +9456,7 @@ var HorizontalStepper = {
|
|
|
9295
9456
|
};
|
|
9296
9457
|
|
|
9297
9458
|
// src/components/stepper/Stepper.tsx
|
|
9298
|
-
import * as
|
|
9459
|
+
import * as React66 from "react";
|
|
9299
9460
|
|
|
9300
9461
|
// src/components/stepper/Stepper.module.css
|
|
9301
9462
|
var Stepper_default = {
|
|
@@ -9308,15 +9469,15 @@ var Stepper_default = {
|
|
|
9308
9469
|
};
|
|
9309
9470
|
|
|
9310
9471
|
// src/components/stepper/VerticalStepper.tsx
|
|
9311
|
-
import * as
|
|
9312
|
-
import { jsx as
|
|
9472
|
+
import * as React65 from "react";
|
|
9473
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
9313
9474
|
function VerticalStepperRoot({
|
|
9314
9475
|
className,
|
|
9315
9476
|
size = "m",
|
|
9316
9477
|
children,
|
|
9317
9478
|
...rest
|
|
9318
9479
|
}) {
|
|
9319
|
-
return /* @__PURE__ */
|
|
9480
|
+
return /* @__PURE__ */ jsx52(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx52("div", { className: cx(StepperAlign_default.vRoot, className), "data-size": size, ...rest, children }) });
|
|
9320
9481
|
}
|
|
9321
9482
|
VerticalStepperRoot.displayName = "VerticalStepper.Root";
|
|
9322
9483
|
function VerticalStepperArrow({
|
|
@@ -9325,12 +9486,12 @@ function VerticalStepperArrow({
|
|
|
9325
9486
|
...rest
|
|
9326
9487
|
}) {
|
|
9327
9488
|
const Component = as ?? IconChevronRight;
|
|
9328
|
-
return /* @__PURE__ */
|
|
9489
|
+
return /* @__PURE__ */ jsx52(Component, { className: cx(StepperAlign_default.vArrow, className), strokeWidth: 2, ...rest });
|
|
9329
9490
|
}
|
|
9330
9491
|
VerticalStepperArrow.displayName = "VerticalStepper.Arrow";
|
|
9331
|
-
var VerticalStepperItem =
|
|
9492
|
+
var VerticalStepperItem = React65.forwardRef(
|
|
9332
9493
|
function VerticalStepperItem2({ state = "default", className, type = "button", children, ...rest }, ref) {
|
|
9333
|
-
return /* @__PURE__ */
|
|
9494
|
+
return /* @__PURE__ */ jsx52(StepperAlignItemProvider, { value: { state }, children: /* @__PURE__ */ jsx52(
|
|
9334
9495
|
"button",
|
|
9335
9496
|
{
|
|
9336
9497
|
ref,
|
|
@@ -9353,9 +9514,9 @@ function VerticalStepperItemIndicator({
|
|
|
9353
9514
|
const { state: ctxState } = useStepperAlignItemState();
|
|
9354
9515
|
const state = stateProp ?? ctxState;
|
|
9355
9516
|
if (state === "completed") {
|
|
9356
|
-
return /* @__PURE__ */
|
|
9517
|
+
return /* @__PURE__ */ jsx52("div", { className: cx(StepperAlign_default.vIndicator, className), "data-state": state, ...rest, children: /* @__PURE__ */ jsx52(StepperAlignCheckIcon, { className: StepperAlign_default.vCheck }) });
|
|
9357
9518
|
}
|
|
9358
|
-
return /* @__PURE__ */
|
|
9519
|
+
return /* @__PURE__ */ jsx52("div", { className: cx(StepperAlign_default.vIndicator, className), "data-state": state, ...rest, children });
|
|
9359
9520
|
}
|
|
9360
9521
|
VerticalStepperItemIndicator.displayName = "VerticalStepper.ItemIndicator";
|
|
9361
9522
|
var VerticalStepper = {
|
|
@@ -9366,7 +9527,7 @@ var VerticalStepper = {
|
|
|
9366
9527
|
};
|
|
9367
9528
|
|
|
9368
9529
|
// src/components/stepper/Stepper.tsx
|
|
9369
|
-
import { jsx as
|
|
9530
|
+
import { jsx as jsx53, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
9370
9531
|
var [StepperRootProvider, useStepperRootContext] = createComponentContext("Stepper");
|
|
9371
9532
|
var [StepperStepProvider, useStepperStepContext] = createComponentContext("Stepper.Step");
|
|
9372
9533
|
function toAlignState(status) {
|
|
@@ -9386,18 +9547,18 @@ function StepperRoot({
|
|
|
9386
9547
|
children,
|
|
9387
9548
|
className
|
|
9388
9549
|
}) {
|
|
9389
|
-
const indexRef =
|
|
9550
|
+
const indexRef = React66.useRef(0);
|
|
9390
9551
|
indexRef.current = 0;
|
|
9391
|
-
const getNextStepIndex =
|
|
9552
|
+
const getNextStepIndex = React66.useCallback(() => {
|
|
9392
9553
|
const idx = indexRef.current;
|
|
9393
9554
|
indexRef.current += 1;
|
|
9394
9555
|
return idx;
|
|
9395
9556
|
}, []);
|
|
9396
|
-
const value =
|
|
9557
|
+
const value = React66.useMemo(
|
|
9397
9558
|
() => ({ orientation, currentStep, getNextStepIndex }),
|
|
9398
9559
|
[orientation, currentStep, getNextStepIndex]
|
|
9399
9560
|
);
|
|
9400
|
-
return /* @__PURE__ */
|
|
9561
|
+
return /* @__PURE__ */ jsx53(StepperRootProvider, { value, children: /* @__PURE__ */ jsx53(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx53(
|
|
9401
9562
|
"ol",
|
|
9402
9563
|
{
|
|
9403
9564
|
className: cx(
|
|
@@ -9412,11 +9573,11 @@ function StepperRoot({
|
|
|
9412
9573
|
}
|
|
9413
9574
|
StepperRoot.displayName = "Stepper.Root";
|
|
9414
9575
|
function StepperSeparatorIcon({ className }) {
|
|
9415
|
-
return /* @__PURE__ */
|
|
9576
|
+
return /* @__PURE__ */ jsx53("li", { className: Stepper_default.separatorLi, "aria-hidden": "true", children: /* @__PURE__ */ jsx53(HorizontalStepper.SeparatorIcon, { className }) });
|
|
9416
9577
|
}
|
|
9417
9578
|
StepperSeparatorIcon.displayName = "Stepper.SeparatorIcon";
|
|
9418
9579
|
function StepperArrow({ className, ...rest }) {
|
|
9419
|
-
return /* @__PURE__ */
|
|
9580
|
+
return /* @__PURE__ */ jsx53(VerticalStepper.Arrow, { className, ...rest });
|
|
9420
9581
|
}
|
|
9421
9582
|
StepperArrow.displayName = "Stepper.Arrow";
|
|
9422
9583
|
function StepperIndicator({ children, className }) {
|
|
@@ -9425,8 +9586,8 @@ function StepperIndicator({ children, className }) {
|
|
|
9425
9586
|
const alignState = toAlignState(status);
|
|
9426
9587
|
const indClass = orientation === "horizontal" ? StepperAlign_default.hIndicator : StepperAlign_default.vIndicator;
|
|
9427
9588
|
const checkClass = orientation === "horizontal" ? StepperAlign_default.hCheck : StepperAlign_default.vCheck;
|
|
9428
|
-
const defaultChild = status === "completed" ? /* @__PURE__ */
|
|
9429
|
-
return /* @__PURE__ */
|
|
9589
|
+
const defaultChild = status === "completed" ? /* @__PURE__ */ jsx53(StepperAlignCheckIcon, { className: checkClass }) : String(index + 1);
|
|
9590
|
+
return /* @__PURE__ */ jsx53(
|
|
9430
9591
|
"span",
|
|
9431
9592
|
{
|
|
9432
9593
|
className: cx(indClass, className),
|
|
@@ -9440,18 +9601,18 @@ function StepperIndicator({ children, className }) {
|
|
|
9440
9601
|
StepperIndicator.displayName = "Stepper.Indicator";
|
|
9441
9602
|
function StepperContent({ title, description, className }) {
|
|
9442
9603
|
return /* @__PURE__ */ jsxs27("div", { className: cx(Stepper_default.content, className), children: [
|
|
9443
|
-
/* @__PURE__ */
|
|
9444
|
-
description ? /* @__PURE__ */
|
|
9604
|
+
/* @__PURE__ */ jsx53("div", { className: Stepper_default.title, children: title }),
|
|
9605
|
+
description ? /* @__PURE__ */ jsx53("p", { className: Stepper_default.description, children: description }) : null
|
|
9445
9606
|
] });
|
|
9446
9607
|
}
|
|
9447
9608
|
StepperContent.displayName = "Stepper.Content";
|
|
9448
|
-
var StepperStep =
|
|
9609
|
+
var StepperStep = React66.forwardRef(function StepperStep2({ index: indexProp, status: statusProp, children, className, disabled, type = "button", ...rest }, ref) {
|
|
9449
9610
|
const { currentStep, orientation, getNextStepIndex } = useStepperRootContext();
|
|
9450
9611
|
const index = indexProp ?? getNextStepIndex();
|
|
9451
9612
|
const status = statusProp ?? computeStepStatus(index, currentStep);
|
|
9452
9613
|
const alignState = toAlignState(status);
|
|
9453
9614
|
const itemClass = orientation === "horizontal" ? StepperAlign_default.hItem : StepperAlign_default.vItem;
|
|
9454
|
-
return /* @__PURE__ */
|
|
9615
|
+
return /* @__PURE__ */ jsx53(StepperStepProvider, { value: { status, index }, children: /* @__PURE__ */ jsx53(StepperAlignItemProvider, { value: { state: alignState }, children: /* @__PURE__ */ jsx53("li", { className: Stepper_default.stepLi, "data-status": status, children: /* @__PURE__ */ jsx53(
|
|
9455
9616
|
"button",
|
|
9456
9617
|
{
|
|
9457
9618
|
ref,
|
|
@@ -9479,7 +9640,7 @@ var Stepper = {
|
|
|
9479
9640
|
};
|
|
9480
9641
|
|
|
9481
9642
|
// src/components/switch/Switch.tsx
|
|
9482
|
-
import * as
|
|
9643
|
+
import * as React67 from "react";
|
|
9483
9644
|
|
|
9484
9645
|
// src/components/switch/Switch.module.css
|
|
9485
9646
|
var Switch_default = {
|
|
@@ -9493,9 +9654,9 @@ var Switch_default = {
|
|
|
9493
9654
|
};
|
|
9494
9655
|
|
|
9495
9656
|
// src/components/switch/Switch.tsx
|
|
9496
|
-
import { jsx as
|
|
9657
|
+
import { jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
9497
9658
|
var [SwitchProvider, useSwitchContext] = createComponentContext("Switch");
|
|
9498
|
-
var SwitchRoot =
|
|
9659
|
+
var SwitchRoot = React67.forwardRef(
|
|
9499
9660
|
({
|
|
9500
9661
|
id,
|
|
9501
9662
|
checked,
|
|
@@ -9510,19 +9671,19 @@ var SwitchRoot = React65.forwardRef(
|
|
|
9510
9671
|
children,
|
|
9511
9672
|
...inputRest
|
|
9512
9673
|
}, ref) => {
|
|
9513
|
-
const rawId =
|
|
9674
|
+
const rawId = React67.useId();
|
|
9514
9675
|
const inputId = id ?? rawId;
|
|
9515
9676
|
const hintId = `${inputId}-hint`;
|
|
9516
9677
|
const errorId = `${inputId}-error`;
|
|
9517
|
-
const [hasHint, setHasHint] =
|
|
9518
|
-
const [hasError, setHasError] =
|
|
9678
|
+
const [hasHint, setHasHint] = React67.useState(false);
|
|
9679
|
+
const [hasError, setHasError] = React67.useState(false);
|
|
9519
9680
|
const invalid = variant === "error" || hasError;
|
|
9520
9681
|
const [isChecked, setChecked] = useControllableState({
|
|
9521
9682
|
value: checked,
|
|
9522
9683
|
defaultValue: defaultChecked,
|
|
9523
9684
|
onChange: onCheckedChange
|
|
9524
9685
|
});
|
|
9525
|
-
const handleChange =
|
|
9686
|
+
const handleChange = React67.useCallback(
|
|
9526
9687
|
(e) => {
|
|
9527
9688
|
if (readOnly) {
|
|
9528
9689
|
e.preventDefault();
|
|
@@ -9532,7 +9693,7 @@ var SwitchRoot = React65.forwardRef(
|
|
|
9532
9693
|
},
|
|
9533
9694
|
[readOnly, setChecked]
|
|
9534
9695
|
);
|
|
9535
|
-
const restInputPropsRef =
|
|
9696
|
+
const restInputPropsRef = React67.useRef(inputRest);
|
|
9536
9697
|
restInputPropsRef.current = inputRest;
|
|
9537
9698
|
const parts = [
|
|
9538
9699
|
ariaDescribedBy,
|
|
@@ -9540,11 +9701,11 @@ var SwitchRoot = React65.forwardRef(
|
|
|
9540
9701
|
hasError ? errorId : void 0
|
|
9541
9702
|
].filter(Boolean);
|
|
9542
9703
|
const describedBy = parts.length > 0 ? parts.join(" ") : void 0;
|
|
9543
|
-
const registerHint =
|
|
9544
|
-
const unregisterHint =
|
|
9545
|
-
const registerError =
|
|
9546
|
-
const unregisterError =
|
|
9547
|
-
const ctxValue =
|
|
9704
|
+
const registerHint = React67.useCallback(() => setHasHint(true), []);
|
|
9705
|
+
const unregisterHint = React67.useCallback(() => setHasHint(false), []);
|
|
9706
|
+
const registerError = React67.useCallback(() => setHasError(true), []);
|
|
9707
|
+
const unregisterError = React67.useCallback(() => setHasError(false), []);
|
|
9708
|
+
const ctxValue = React67.useMemo(
|
|
9548
9709
|
() => ({
|
|
9549
9710
|
inputId,
|
|
9550
9711
|
hintId,
|
|
@@ -9581,7 +9742,7 @@ var SwitchRoot = React65.forwardRef(
|
|
|
9581
9742
|
unregisterError
|
|
9582
9743
|
]
|
|
9583
9744
|
);
|
|
9584
|
-
return /* @__PURE__ */
|
|
9745
|
+
return /* @__PURE__ */ jsx54(SwitchProvider, { value: ctxValue, children: /* @__PURE__ */ jsx54(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsx54(
|
|
9585
9746
|
"div",
|
|
9586
9747
|
{
|
|
9587
9748
|
className: cx(Switch_default.field, className),
|
|
@@ -9599,7 +9760,7 @@ var SwitchRoot = React65.forwardRef(
|
|
|
9599
9760
|
}
|
|
9600
9761
|
);
|
|
9601
9762
|
SwitchRoot.displayName = "SwitchRoot";
|
|
9602
|
-
var SwitchLabel =
|
|
9763
|
+
var SwitchLabel = React67.forwardRef(function SwitchLabel2({ children, className, ...rest }, ref) {
|
|
9603
9764
|
const {
|
|
9604
9765
|
inputId,
|
|
9605
9766
|
inputRef,
|
|
@@ -9623,7 +9784,7 @@ var SwitchLabel = React65.forwardRef(function SwitchLabel2({ children, className
|
|
|
9623
9784
|
...rest,
|
|
9624
9785
|
children: [
|
|
9625
9786
|
/* @__PURE__ */ jsxs28("span", { className: Switch_default.controlCell, children: [
|
|
9626
|
-
/* @__PURE__ */
|
|
9787
|
+
/* @__PURE__ */ jsx54(
|
|
9627
9788
|
"input",
|
|
9628
9789
|
{
|
|
9629
9790
|
ref: inputRef,
|
|
@@ -9641,9 +9802,9 @@ var SwitchLabel = React65.forwardRef(function SwitchLabel2({ children, className
|
|
|
9641
9802
|
...restInputPropsRef.current
|
|
9642
9803
|
}
|
|
9643
9804
|
),
|
|
9644
|
-
/* @__PURE__ */
|
|
9805
|
+
/* @__PURE__ */ jsx54("span", { className: Switch_default.track, "aria-hidden": "true" })
|
|
9645
9806
|
] }),
|
|
9646
|
-
children !== void 0 && children !== null ? /* @__PURE__ */
|
|
9807
|
+
children !== void 0 && children !== null ? /* @__PURE__ */ jsx54("span", { className: Switch_default.text, children }) : null
|
|
9647
9808
|
]
|
|
9648
9809
|
}
|
|
9649
9810
|
);
|
|
@@ -9651,13 +9812,13 @@ var SwitchLabel = React65.forwardRef(function SwitchLabel2({ children, className
|
|
|
9651
9812
|
SwitchLabel.displayName = "SwitchLabel";
|
|
9652
9813
|
function SwitchHint({ children, className, ...rest }) {
|
|
9653
9814
|
const { hintId, registerHint, unregisterHint, size, disabled } = useSwitchContext();
|
|
9654
|
-
|
|
9815
|
+
React67.useLayoutEffect(() => {
|
|
9655
9816
|
registerHint();
|
|
9656
9817
|
return () => {
|
|
9657
9818
|
unregisterHint();
|
|
9658
9819
|
};
|
|
9659
9820
|
}, [registerHint, unregisterHint]);
|
|
9660
|
-
return /* @__PURE__ */
|
|
9821
|
+
return /* @__PURE__ */ jsx54(
|
|
9661
9822
|
Hint.Root,
|
|
9662
9823
|
{
|
|
9663
9824
|
id: hintId,
|
|
@@ -9672,13 +9833,13 @@ function SwitchHint({ children, className, ...rest }) {
|
|
|
9672
9833
|
SwitchHint.displayName = "SwitchHint";
|
|
9673
9834
|
function SwitchError({ children, className, ...rest }) {
|
|
9674
9835
|
const { errorId, registerError, unregisterError, size } = useSwitchContext();
|
|
9675
|
-
|
|
9836
|
+
React67.useLayoutEffect(() => {
|
|
9676
9837
|
registerError();
|
|
9677
9838
|
return () => {
|
|
9678
9839
|
unregisterError();
|
|
9679
9840
|
};
|
|
9680
9841
|
}, [registerError, unregisterError]);
|
|
9681
|
-
return /* @__PURE__ */
|
|
9842
|
+
return /* @__PURE__ */ jsx54(
|
|
9682
9843
|
Hint.Root,
|
|
9683
9844
|
{
|
|
9684
9845
|
id: errorId,
|
|
@@ -9699,7 +9860,7 @@ var Switch = {
|
|
|
9699
9860
|
};
|
|
9700
9861
|
|
|
9701
9862
|
// src/components/tabs/Tabs.tsx
|
|
9702
|
-
import * as
|
|
9863
|
+
import * as React68 from "react";
|
|
9703
9864
|
|
|
9704
9865
|
// src/components/tabs/Tabs.module.css
|
|
9705
9866
|
var Tabs_default = {
|
|
@@ -9715,7 +9876,7 @@ var Tabs_default = {
|
|
|
9715
9876
|
};
|
|
9716
9877
|
|
|
9717
9878
|
// src/components/tabs/Tabs.tsx
|
|
9718
|
-
import { jsx as
|
|
9879
|
+
import { jsx as jsx55, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
9719
9880
|
var [TabsProvider, useTabsContext] = createComponentContext("Tabs");
|
|
9720
9881
|
function TabsRoot({
|
|
9721
9882
|
value,
|
|
@@ -9726,29 +9887,29 @@ function TabsRoot({
|
|
|
9726
9887
|
children,
|
|
9727
9888
|
className
|
|
9728
9889
|
}) {
|
|
9729
|
-
const rootId =
|
|
9890
|
+
const rootId = React68.useId();
|
|
9730
9891
|
const [activeValue, setActiveValue] = useControllableState({
|
|
9731
9892
|
value,
|
|
9732
9893
|
defaultValue,
|
|
9733
9894
|
onChange: onValueChange
|
|
9734
9895
|
});
|
|
9735
|
-
const contextValue =
|
|
9896
|
+
const contextValue = React68.useMemo(
|
|
9736
9897
|
() => ({ activeValue, onSelect: setActiveValue, orientation, rootId, size }),
|
|
9737
9898
|
[activeValue, setActiveValue, orientation, rootId, size]
|
|
9738
9899
|
);
|
|
9739
|
-
return /* @__PURE__ */
|
|
9900
|
+
return /* @__PURE__ */ jsx55(TabsProvider, { value: contextValue, children: /* @__PURE__ */ jsx55("div", { className: cx(Tabs_default.root, className), "data-orientation": orientation, "data-size": size, children }) });
|
|
9740
9901
|
}
|
|
9741
9902
|
TabsRoot.displayName = "TabsRoot";
|
|
9742
9903
|
function TabsList({ children, className }) {
|
|
9743
9904
|
const { orientation, rootId, activeValue, onSelect, size } = useTabsContext();
|
|
9744
|
-
const listRef =
|
|
9745
|
-
const [indicator, setIndicator] =
|
|
9905
|
+
const listRef = React68.useRef(null);
|
|
9906
|
+
const [indicator, setIndicator] = React68.useState({
|
|
9746
9907
|
left: 0,
|
|
9747
9908
|
top: 0,
|
|
9748
9909
|
width: 0,
|
|
9749
9910
|
height: 0
|
|
9750
9911
|
});
|
|
9751
|
-
const updateIndicator =
|
|
9912
|
+
const updateIndicator = React68.useCallback(() => {
|
|
9752
9913
|
const list = listRef.current;
|
|
9753
9914
|
if (!list) return;
|
|
9754
9915
|
const active = list.querySelector('[role="tab"][aria-selected="true"]');
|
|
@@ -9763,7 +9924,7 @@ function TabsList({ children, className }) {
|
|
|
9763
9924
|
height: active.offsetHeight
|
|
9764
9925
|
});
|
|
9765
9926
|
}, []);
|
|
9766
|
-
|
|
9927
|
+
React68.useLayoutEffect(() => {
|
|
9767
9928
|
const list = listRef.current;
|
|
9768
9929
|
if (!list) return;
|
|
9769
9930
|
updateIndicator();
|
|
@@ -9828,8 +9989,8 @@ function TabsList({ children, className }) {
|
|
|
9828
9989
|
className: cx(Tabs_default.list, className),
|
|
9829
9990
|
onKeyDown: handleKeyDown,
|
|
9830
9991
|
children: [
|
|
9831
|
-
/* @__PURE__ */
|
|
9832
|
-
/* @__PURE__ */
|
|
9992
|
+
/* @__PURE__ */ jsx55(ControlSizeProvider, { value: size, children }),
|
|
9993
|
+
/* @__PURE__ */ jsx55(
|
|
9833
9994
|
"div",
|
|
9834
9995
|
{
|
|
9835
9996
|
className: cx(
|
|
@@ -9855,7 +10016,7 @@ TabsList.displayName = "TabsList";
|
|
|
9855
10016
|
function TabsTab({ value, disabled = false, children, className }) {
|
|
9856
10017
|
const { activeValue, onSelect, rootId } = useTabsContext();
|
|
9857
10018
|
const isSelected = activeValue === value;
|
|
9858
|
-
return /* @__PURE__ */
|
|
10019
|
+
return /* @__PURE__ */ jsx55(
|
|
9859
10020
|
"button",
|
|
9860
10021
|
{
|
|
9861
10022
|
role: "tab",
|
|
@@ -9877,18 +10038,18 @@ function TabsTab({ value, disabled = false, children, className }) {
|
|
|
9877
10038
|
}
|
|
9878
10039
|
TabsTab.displayName = "TabsTab";
|
|
9879
10040
|
function TabsIcon({ children, className, ...rest }) {
|
|
9880
|
-
return /* @__PURE__ */
|
|
10041
|
+
return /* @__PURE__ */ jsx55("span", { className: cx(Tabs_default.icon, className), "aria-hidden": "true", ...rest, children });
|
|
9881
10042
|
}
|
|
9882
10043
|
TabsIcon.displayName = "TabsIcon";
|
|
9883
10044
|
function TabsLabel({ children, className, ...rest }) {
|
|
9884
|
-
return /* @__PURE__ */
|
|
10045
|
+
return /* @__PURE__ */ jsx55("span", { className: cx(Tabs_default.label, className), ...rest, children });
|
|
9885
10046
|
}
|
|
9886
10047
|
TabsLabel.displayName = "TabsLabel";
|
|
9887
10048
|
function TabsPanel({ value, children, className }) {
|
|
9888
10049
|
const { activeValue, rootId } = useTabsContext();
|
|
9889
10050
|
const isActive = activeValue === value;
|
|
9890
10051
|
if (!isActive) return null;
|
|
9891
|
-
return /* @__PURE__ */
|
|
10052
|
+
return /* @__PURE__ */ jsx55(
|
|
9892
10053
|
"div",
|
|
9893
10054
|
{
|
|
9894
10055
|
role: "tabpanel",
|
|
@@ -9910,7 +10071,7 @@ var Tabs = {
|
|
|
9910
10071
|
};
|
|
9911
10072
|
|
|
9912
10073
|
// src/components/tag/Tag.tsx
|
|
9913
|
-
import * as
|
|
10074
|
+
import * as React69 from "react";
|
|
9914
10075
|
|
|
9915
10076
|
// src/components/tag/Tag.module.css
|
|
9916
10077
|
var Tag_default = {
|
|
@@ -9922,8 +10083,8 @@ var Tag_default = {
|
|
|
9922
10083
|
};
|
|
9923
10084
|
|
|
9924
10085
|
// src/components/tag/Tag.tsx
|
|
9925
|
-
import { jsx as
|
|
9926
|
-
var TagRoot =
|
|
10086
|
+
import { jsx as jsx56, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
10087
|
+
var TagRoot = React69.forwardRef(
|
|
9927
10088
|
({ size: sizeProp, onRemove, disabled, children, className, ...rest }, ref) => {
|
|
9928
10089
|
const controlSurface = useOptionalControlSize();
|
|
9929
10090
|
const size = sizeProp ?? (controlSurface !== void 0 ? controlSurfaceToInputSize(controlSurface) : "m");
|
|
@@ -9939,8 +10100,8 @@ var TagRoot = React67.forwardRef(
|
|
|
9939
10100
|
}),
|
|
9940
10101
|
...rest,
|
|
9941
10102
|
children: [
|
|
9942
|
-
/* @__PURE__ */
|
|
9943
|
-
onRemove ? /* @__PURE__ */
|
|
10103
|
+
/* @__PURE__ */ jsx56("span", { className: Tag_default.body, children: /* @__PURE__ */ jsx56(ControlSizeProvider, { value: size, children }) }),
|
|
10104
|
+
onRemove ? /* @__PURE__ */ jsx56(
|
|
9944
10105
|
"button",
|
|
9945
10106
|
{
|
|
9946
10107
|
type: "button",
|
|
@@ -9948,7 +10109,7 @@ var TagRoot = React67.forwardRef(
|
|
|
9948
10109
|
"aria-label": "Remove",
|
|
9949
10110
|
onClick: onRemove,
|
|
9950
10111
|
disabled,
|
|
9951
|
-
children: /* @__PURE__ */
|
|
10112
|
+
children: /* @__PURE__ */ jsx56("svg", { className: Tag_default.removeIcon, viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx56(
|
|
9952
10113
|
"path",
|
|
9953
10114
|
{
|
|
9954
10115
|
d: "M2 2l8 8M10 2l-8 8",
|
|
@@ -9966,13 +10127,13 @@ var TagRoot = React67.forwardRef(
|
|
|
9966
10127
|
);
|
|
9967
10128
|
TagRoot.displayName = "TagRoot";
|
|
9968
10129
|
function TagIcon({ children, className }) {
|
|
9969
|
-
return /* @__PURE__ */
|
|
10130
|
+
return /* @__PURE__ */ jsx56("span", { className: cx(Tag_default.icon, className), children });
|
|
9970
10131
|
}
|
|
9971
10132
|
TagIcon.displayName = "TagIcon";
|
|
9972
10133
|
var Tag = { Root: TagRoot, Icon: TagIcon };
|
|
9973
10134
|
|
|
9974
10135
|
// src/components/textarea/Textarea.tsx
|
|
9975
|
-
import * as
|
|
10136
|
+
import * as React70 from "react";
|
|
9976
10137
|
|
|
9977
10138
|
// src/components/textarea/Textarea.module.css
|
|
9978
10139
|
var Textarea_default = {
|
|
@@ -9989,7 +10150,7 @@ var Textarea_default = {
|
|
|
9989
10150
|
};
|
|
9990
10151
|
|
|
9991
10152
|
// src/components/textarea/Textarea.tsx
|
|
9992
|
-
import { jsx as
|
|
10153
|
+
import { jsx as jsx57, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
9993
10154
|
var [TextareaProvider, useTextareaContext] = createComponentContext("Textarea");
|
|
9994
10155
|
function TextareaCharCounter({ current, max }) {
|
|
9995
10156
|
const overflow = current > max;
|
|
@@ -10011,8 +10172,8 @@ TextareaCharCounter.displayName = "Textarea.CharCounter";
|
|
|
10011
10172
|
function partitionTextareaChildren(children) {
|
|
10012
10173
|
const counters = [];
|
|
10013
10174
|
const rest = [];
|
|
10014
|
-
|
|
10015
|
-
if (
|
|
10175
|
+
React70.Children.forEach(children, (child) => {
|
|
10176
|
+
if (React70.isValidElement(child) && child.type === TextareaCharCounter) {
|
|
10016
10177
|
counters.push(child);
|
|
10017
10178
|
} else if (child != null && child !== false) {
|
|
10018
10179
|
rest.push(child);
|
|
@@ -10020,7 +10181,7 @@ function partitionTextareaChildren(children) {
|
|
|
10020
10181
|
});
|
|
10021
10182
|
return { counters, rest };
|
|
10022
10183
|
}
|
|
10023
|
-
var TextareaRoot =
|
|
10184
|
+
var TextareaRoot = React70.forwardRef(
|
|
10024
10185
|
({
|
|
10025
10186
|
id,
|
|
10026
10187
|
className,
|
|
@@ -10037,12 +10198,12 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10037
10198
|
children,
|
|
10038
10199
|
...rest
|
|
10039
10200
|
}, ref) => {
|
|
10040
|
-
const rawId =
|
|
10201
|
+
const rawId = React70.useId();
|
|
10041
10202
|
const inputId = id ?? rawId;
|
|
10042
10203
|
const hintId = `${inputId}-hint`;
|
|
10043
10204
|
const errorId = `${inputId}-error`;
|
|
10044
|
-
const [hasHint, setHasHint] =
|
|
10045
|
-
const [hasError, setHasError] =
|
|
10205
|
+
const [hasHint, setHasHint] = React70.useState(false);
|
|
10206
|
+
const [hasError, setHasError] = React70.useState(false);
|
|
10046
10207
|
const invalid = variant === "error" || hasError;
|
|
10047
10208
|
const resolvedAriaInvalid = ariaInvalid ?? (invalid || void 0);
|
|
10048
10209
|
const parts = [
|
|
@@ -10051,25 +10212,25 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10051
10212
|
hasError ? errorId : void 0
|
|
10052
10213
|
].filter(Boolean);
|
|
10053
10214
|
const describedBy = parts.length > 0 ? parts.join(" ") : void 0;
|
|
10054
|
-
const registerHint =
|
|
10055
|
-
const unregisterHint =
|
|
10056
|
-
const registerError =
|
|
10057
|
-
const unregisterError =
|
|
10058
|
-
const wrapperRef =
|
|
10215
|
+
const registerHint = React70.useCallback(() => setHasHint(true), []);
|
|
10216
|
+
const unregisterHint = React70.useCallback(() => setHasHint(false), []);
|
|
10217
|
+
const registerError = React70.useCallback(() => setHasError(true), []);
|
|
10218
|
+
const unregisterError = React70.useCallback(() => setHasError(false), []);
|
|
10219
|
+
const wrapperRef = React70.useRef(null);
|
|
10059
10220
|
const { counters: counterChildren, rest: otherChildren } = partitionTextareaChildren(children);
|
|
10060
10221
|
const showFooter = counterChildren.length > 0;
|
|
10061
|
-
|
|
10222
|
+
React70.useLayoutEffect(() => {
|
|
10062
10223
|
if (!autoResize || !wrapperRef.current) return;
|
|
10063
10224
|
const textarea = wrapperRef.current.querySelector("textarea");
|
|
10064
10225
|
if (textarea) {
|
|
10065
10226
|
wrapperRef.current.dataset.value = textarea.value;
|
|
10066
10227
|
}
|
|
10067
10228
|
}, [autoResize]);
|
|
10068
|
-
|
|
10229
|
+
React70.useEffect(() => {
|
|
10069
10230
|
if (!autoResize || !wrapperRef.current || typeof value !== "string") return;
|
|
10070
10231
|
wrapperRef.current.dataset.value = value;
|
|
10071
10232
|
}, [autoResize, value]);
|
|
10072
|
-
const handleInput =
|
|
10233
|
+
const handleInput = React70.useCallback(
|
|
10073
10234
|
(e) => {
|
|
10074
10235
|
if (autoResize && wrapperRef.current) {
|
|
10075
10236
|
wrapperRef.current.dataset.value = e.currentTarget.value;
|
|
@@ -10078,7 +10239,7 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10078
10239
|
},
|
|
10079
10240
|
[autoResize, onInput]
|
|
10080
10241
|
);
|
|
10081
|
-
const ctxValue =
|
|
10242
|
+
const ctxValue = React70.useMemo(
|
|
10082
10243
|
() => ({
|
|
10083
10244
|
hintId,
|
|
10084
10245
|
errorId,
|
|
@@ -10102,7 +10263,7 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10102
10263
|
unregisterError
|
|
10103
10264
|
]
|
|
10104
10265
|
);
|
|
10105
|
-
const textareaEl = /* @__PURE__ */
|
|
10266
|
+
const textareaEl = /* @__PURE__ */ jsx57(
|
|
10106
10267
|
"textarea",
|
|
10107
10268
|
{
|
|
10108
10269
|
ref,
|
|
@@ -10118,9 +10279,9 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10118
10279
|
...rest
|
|
10119
10280
|
}
|
|
10120
10281
|
);
|
|
10121
|
-
const textareaBlock = autoResize ? /* @__PURE__ */
|
|
10122
|
-
return /* @__PURE__ */
|
|
10123
|
-
/* @__PURE__ */
|
|
10282
|
+
const textareaBlock = autoResize ? /* @__PURE__ */ jsx57("div", { ref: wrapperRef, className: Textarea_default.autoResize, children: textareaEl }) : textareaEl;
|
|
10283
|
+
return /* @__PURE__ */ jsx57(TextareaProvider, { value: ctxValue, children: /* @__PURE__ */ jsx57(ControlSizeProvider, { value: size, children: /* @__PURE__ */ jsxs31("div", { className: Textarea_default.field, ...toDataAttributes({ size }), children: [
|
|
10284
|
+
/* @__PURE__ */ jsx57(
|
|
10124
10285
|
"label",
|
|
10125
10286
|
{
|
|
10126
10287
|
htmlFor: inputId,
|
|
@@ -10132,8 +10293,8 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10132
10293
|
size
|
|
10133
10294
|
}),
|
|
10134
10295
|
children: /* @__PURE__ */ jsxs31("div", { className: Textarea_default.controlStack, children: [
|
|
10135
|
-
/* @__PURE__ */
|
|
10136
|
-
showFooter ? /* @__PURE__ */
|
|
10296
|
+
/* @__PURE__ */ jsx57("div", { className: Textarea_default.textareaRegion, children: textareaBlock }),
|
|
10297
|
+
showFooter ? /* @__PURE__ */ jsx57("div", { className: Textarea_default.controlFooter, children: counterChildren }) : null
|
|
10137
10298
|
] })
|
|
10138
10299
|
}
|
|
10139
10300
|
),
|
|
@@ -10144,13 +10305,13 @@ var TextareaRoot = React68.forwardRef(
|
|
|
10144
10305
|
TextareaRoot.displayName = "Textarea.Root";
|
|
10145
10306
|
function TextareaHint({ children, className, ...rest }) {
|
|
10146
10307
|
const { hintId, registerHint, unregisterHint, size, disabled, readOnly } = useTextareaContext();
|
|
10147
|
-
|
|
10308
|
+
React70.useLayoutEffect(() => {
|
|
10148
10309
|
registerHint();
|
|
10149
10310
|
return () => {
|
|
10150
10311
|
unregisterHint();
|
|
10151
10312
|
};
|
|
10152
10313
|
}, [registerHint, unregisterHint]);
|
|
10153
|
-
return /* @__PURE__ */
|
|
10314
|
+
return /* @__PURE__ */ jsx57(
|
|
10154
10315
|
Hint.Root,
|
|
10155
10316
|
{
|
|
10156
10317
|
id: hintId,
|
|
@@ -10165,13 +10326,13 @@ function TextareaHint({ children, className, ...rest }) {
|
|
|
10165
10326
|
TextareaHint.displayName = "Textarea.Hint";
|
|
10166
10327
|
function TextareaError({ children, className, ...rest }) {
|
|
10167
10328
|
const { errorId, registerError, unregisterError, size } = useTextareaContext();
|
|
10168
|
-
|
|
10329
|
+
React70.useLayoutEffect(() => {
|
|
10169
10330
|
registerError();
|
|
10170
10331
|
return () => {
|
|
10171
10332
|
unregisterError();
|
|
10172
10333
|
};
|
|
10173
10334
|
}, [registerError, unregisterError]);
|
|
10174
|
-
return /* @__PURE__ */
|
|
10335
|
+
return /* @__PURE__ */ jsx57(
|
|
10175
10336
|
Hint.Root,
|
|
10176
10337
|
{
|
|
10177
10338
|
id: errorId,
|
|
@@ -10241,7 +10402,8 @@ var componentSizes = {
|
|
|
10241
10402
|
progressBar: ["s", "m", "l", "xl"],
|
|
10242
10403
|
sidebar: ["s", "m", "l", "xl"],
|
|
10243
10404
|
drawer: ["s", "m", "l", "xl"],
|
|
10244
|
-
dataTable: ["s", "m", "l", "xl"]
|
|
10405
|
+
dataTable: ["s", "m", "l", "xl"],
|
|
10406
|
+
emptyPage: ["s", "m", "l", "xl"]
|
|
10245
10407
|
};
|
|
10246
10408
|
var buttonModes = ["filled", "stroke", "lighter", "ghost", "fancy"];
|
|
10247
10409
|
export {
|
|
@@ -10265,6 +10427,7 @@ export {
|
|
|
10265
10427
|
Divider,
|
|
10266
10428
|
Drawer,
|
|
10267
10429
|
Dropdown,
|
|
10430
|
+
EmptyPage,
|
|
10268
10431
|
ExampleFrame,
|
|
10269
10432
|
FileUpload,
|
|
10270
10433
|
Hint,
|