@drivenets/design-system 0.0.3 → 0.0.4
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/CHANGELOG.md +6 -0
- package/dist/components/ds-alert-banner/ds-alert-banner.cjs +157 -52
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +5 -5
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.js +157 -52
- package/dist/components/ds-alert-banner/ds-alert-banner.js.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.types.js.map +1 -1
- package/dist/components/ds-breadcrumb/ds-breadcrumb.cjs +59 -16
- package/dist/components/ds-breadcrumb/ds-breadcrumb.js +59 -16
- package/dist/components/ds-breadcrumb/ds-breadcrumb.js.map +1 -1
- package/dist/components/ds-button/ds-button.cjs +18 -2
- package/dist/components/ds-button/ds-button.d.cts +2 -2
- package/dist/components/ds-button/ds-button.d.ts +2 -2
- package/dist/components/ds-button/ds-button.js +18 -2
- package/dist/components/ds-button/ds-button.js.map +1 -1
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +79 -10
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +79 -10
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -1
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +78 -10
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +78 -10
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -1
- package/dist/components/ds-checkbox/ds-checkbox.cjs +89 -18
- package/dist/components/ds-checkbox/ds-checkbox.js +89 -18
- package/dist/components/ds-checkbox/ds-checkbox.js.map +1 -1
- package/dist/components/ds-chip/ds-chip.cjs +100 -30
- package/dist/components/ds-chip/ds-chip.js +100 -30
- package/dist/components/ds-chip/ds-chip.js.map +1 -1
- package/dist/components/ds-chip-group/ds-chip-group.cjs +6 -6
- package/dist/components/ds-chip-group/ds-chip-group.js +6 -6
- package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -1
- package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -1
- package/dist/components/ds-confirmation/ds-confirmation.cjs +210 -56
- package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
- package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.js +210 -56
- package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -1
- package/dist/components/ds-dialog/ds-dialog.js.map +1 -1
- package/dist/components/ds-drawer/ds-drawer.cjs +261 -61
- package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
- package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
- package/dist/components/ds-drawer/ds-drawer.js +261 -61
- package/dist/components/ds-drawer/ds-drawer.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +481 -135
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +481 -135
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.cjs +146 -56
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js +146 -56
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js.map +1 -1
- package/dist/components/ds-file-upload/components/file-upload/file-upload.cjs +190 -69
- package/dist/components/ds-file-upload/components/file-upload/file-upload.js +190 -69
- package/dist/components/ds-file-upload/components/file-upload/file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +273 -132
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +273 -132
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js.map +1 -1
- package/dist/components/ds-file-upload/ds-file-upload.cjs +96 -16
- package/dist/components/ds-file-upload/ds-file-upload.js +96 -16
- package/dist/components/ds-file-upload/ds-file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/errors/file-upload-errors.js.map +1 -1
- package/dist/components/ds-file-upload/hooks/use-file-upload.cjs +93 -93
- package/dist/components/ds-file-upload/hooks/use-file-upload.js +93 -93
- package/dist/components/ds-file-upload/hooks/use-file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/types/accept-types.js.map +1 -1
- package/dist/components/ds-file-upload/utils/accept-utils.js.map +1 -1
- package/dist/components/ds-file-upload/utils/constants.js.map +1 -1
- package/dist/components/ds-file-upload/utils/file-factory.js.map +1 -1
- package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -1
- package/dist/components/ds-file-upload/utils/generate-helper-text.js.map +1 -1
- package/dist/components/ds-file-upload/utils/get-error-message.js.map +1 -1
- package/dist/components/ds-file-upload/utils/is-file-equal.js.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.cjs +119 -34
- package/dist/components/ds-form-control/ds-form-control.d.cts +7 -7
- package/dist/components/ds-form-control/ds-form-control.d.ts +7 -7
- package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.js +119 -34
- package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.types.js.map +1 -1
- package/dist/components/ds-grid/ds-grid.js.map +1 -1
- package/dist/components/ds-icon/ds-icon.cjs +84 -13
- package/dist/components/ds-icon/ds-icon.js +84 -13
- package/dist/components/ds-icon/ds-icon.js.map +1 -1
- package/dist/components/ds-icon/ds-icon.types.d.cts.map +1 -1
- package/dist/components/ds-icon/ds-icon.types.js.map +1 -1
- package/dist/components/ds-modal/ds-modal.cjs +222 -55
- package/dist/components/ds-modal/ds-modal.d.cts +8 -8
- package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
- package/dist/components/ds-modal/ds-modal.d.ts +8 -8
- package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
- package/dist/components/ds-modal/ds-modal.js +222 -55
- package/dist/components/ds-modal/ds-modal.js.map +1 -1
- package/dist/components/ds-number-input/ds-number-input.cjs +136 -49
- package/dist/components/ds-number-input/ds-number-input.js +136 -49
- package/dist/components/ds-number-input/ds-number-input.js.map +1 -1
- package/dist/components/ds-panel/ds-panel.cjs +111 -19
- package/dist/components/ds-panel/ds-panel.d.cts +2 -2
- package/dist/components/ds-panel/ds-panel.d.cts.map +1 -1
- package/dist/components/ds-panel/ds-panel.js +111 -19
- package/dist/components/ds-panel/ds-panel.js.map +1 -1
- package/dist/components/ds-password-input/ds-password-input.cjs +108 -41
- package/dist/components/ds-password-input/ds-password-input.js +108 -41
- package/dist/components/ds-password-input/ds-password-input.js.map +1 -1
- package/dist/components/ds-popover/ds-popover.cjs +50 -12
- package/dist/components/ds-popover/ds-popover.js +50 -12
- package/dist/components/ds-popover/ds-popover.js.map +1 -1
- package/dist/components/ds-radio-group/ds-radio-group.cjs +209 -53
- package/dist/components/ds-radio-group/ds-radio-group.js +209 -53
- package/dist/components/ds-radio-group/ds-radio-group.js.map +1 -1
- package/dist/components/ds-select/ds-select.cjs +198 -89
- package/dist/components/ds-select/ds-select.d.cts +2 -2
- package/dist/components/ds-select/ds-select.d.cts.map +1 -1
- package/dist/components/ds-select/ds-select.js +198 -89
- package/dist/components/ds-select/ds-select.js.map +1 -1
- package/dist/components/ds-select/select-items-chips.cjs +73 -22
- package/dist/components/ds-select/select-items-chips.js +73 -22
- package/dist/components/ds-select/select-items-chips.js.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.cjs +208 -46
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.js +208 -46
- package/dist/components/ds-smart-tabs/ds-smart-tabs.js.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.types.js.map +1 -1
- package/dist/components/ds-spinner/ds-spinner.cjs +90 -20
- package/dist/components/ds-spinner/ds-spinner.js +90 -20
- package/dist/components/ds-spinner/ds-spinner.js.map +1 -1
- package/dist/components/ds-spinner/ds-spinner.types.js.map +1 -1
- package/dist/components/ds-status-badge/ds-status-badge.cjs +54 -11
- package/dist/components/ds-status-badge/ds-status-badge.js +54 -11
- package/dist/components/ds-status-badge/ds-status-badge.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-content.cjs +59 -13
- package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
- package/dist/components/ds-stepper/components/ds-step-content.js +59 -13
- package/dist/components/ds-stepper/components/ds-step-content.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-description.cjs +14 -5
- package/dist/components/ds-stepper/components/ds-step-description.js +14 -5
- package/dist/components/ds-stepper/components/ds-step-description.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-label.cjs +14 -5
- package/dist/components/ds-stepper/components/ds-step-label.js +14 -5
- package/dist/components/ds-stepper/components/ds-step-label.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-next-button.cjs +23 -6
- package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
- package/dist/components/ds-stepper/components/ds-step-next-button.js +23 -6
- package/dist/components/ds-stepper/components/ds-step-next-button.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step.cjs +106 -25
- package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
- package/dist/components/ds-stepper/components/ds-step.js +106 -25
- package/dist/components/ds-stepper/components/ds-step.js.map +1 -1
- package/dist/components/ds-stepper/ds-stepper.cjs +62 -15
- package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
- package/dist/components/ds-stepper/ds-stepper.d.cts.map +1 -1
- package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
- package/dist/components/ds-stepper/ds-stepper.js +62 -15
- package/dist/components/ds-stepper/ds-stepper.js.map +1 -1
- package/dist/components/ds-stepper/hooks/use-stepper.js.map +1 -1
- package/dist/components/ds-stepper/hooks/use-steps.cjs +29 -9
- package/dist/components/ds-stepper/hooks/use-steps.js +29 -9
- package/dist/components/ds-stepper/hooks/use-steps.js.map +1 -1
- package/dist/components/ds-system-status/ds-system-status.cjs +37 -7
- package/dist/components/ds-system-status/ds-system-status.js +37 -7
- package/dist/components/ds-system-status/ds-system-status.js.map +1 -1
- package/dist/components/ds-system-status/ds-system-status.types.js.map +1 -1
- package/dist/components/ds-table/components/core-table/core-table.cjs +281 -48
- package/dist/components/ds-table/components/core-table/core-table.js +281 -48
- package/dist/components/ds-table/components/core-table/core-table.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +134 -50
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +134 -50
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.cjs +140 -43
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js +140 -43
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.cjs +37 -6
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.js +37 -6
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +272 -100
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +272 -100
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -1
- package/dist/components/ds-table/context/ds-table-context.js.map +1 -1
- package/dist/components/ds-table/ds-table.cjs +15 -15
- package/dist/components/ds-table/ds-table.d.cts +2 -2
- package/dist/components/ds-table/ds-table.js +15 -15
- package/dist/components/ds-table/ds-table.js.map +1 -1
- package/dist/components/ds-table/hooks/use-drag-and-drop.cjs +126 -38
- package/dist/components/ds-table/hooks/use-drag-and-drop.js +126 -38
- package/dist/components/ds-table/hooks/use-drag-and-drop.js.map +1 -1
- package/dist/components/ds-table/utils/column-styling.js.map +1 -1
- package/dist/components/ds-table/utils/create-columns-grid-template.js.map +1 -1
- package/dist/components/ds-table/utils/merge-refs.js.map +1 -1
- package/dist/components/ds-text-input/ds-text-input.cjs +128 -43
- package/dist/components/ds-text-input/ds-text-input.js +128 -43
- package/dist/components/ds-text-input/ds-text-input.js.map +1 -1
- package/dist/components/ds-text-input/ds-text-input.types.js.map +1 -1
- package/dist/components/ds-textarea/ds-textarea.cjs +66 -22
- package/dist/components/ds-textarea/ds-textarea.js +66 -22
- package/dist/components/ds-textarea/ds-textarea.js.map +1 -1
- package/dist/components/ds-toast/ds-toast-context.cjs +62 -17
- package/dist/components/ds-toast/ds-toast-context.js +62 -17
- package/dist/components/ds-toast/ds-toast-context.js.map +1 -1
- package/dist/components/ds-toast/ds-toast.cjs +90 -26
- package/dist/components/ds-toast/ds-toast.js +90 -26
- package/dist/components/ds-toast/ds-toast.js.map +1 -1
- package/dist/components/ds-tooltip/ds-tooltip.cjs +51 -13
- package/dist/components/ds-tooltip/ds-tooltip.js +51 -13
- package/dist/components/ds-tooltip/ds-tooltip.js.map +1 -1
- package/dist/components/ds-typography/ds-typography.cjs +51 -7
- package/dist/components/ds-typography/ds-typography.config.js.map +1 -1
- package/dist/components/ds-typography/ds-typography.js +51 -7
- package/dist/components/ds-typography/ds-typography.js.map +1 -1
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.cjs +91 -30
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js +91 -30
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js.map +1 -1
- package/dist/index.min.css +1 -1
- package/package.json +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-dropdown-menu.js","names":["DEFAULT_POSITIONING: DsDropdownMenuPositioning","Root: React.FC<DsDropdownMenuRootProps>","Trigger: React.FC<DsDropdownMenuTriggerProps>","Content: React.FC<DsDropdownMenuContentProps>","styles","Item: React.FC<DsDropdownMenuItemProps>","ItemIndicator: React.FC<DsDropdownMenuItemIndicatorProps>","DsIcon","Header: React.FC<DsDropdownMenuHeaderProps>","Actions: React.FC<DsDropdownMenuActionsProps>","ItemGroup: React.FC<DsDropdownMenuItemGroupProps>","ItemGroupLabel: React.FC<DsDropdownMenuItemGroupLabelProps>","DsTypography","ItemGroupContent: React.FC<DsDropdownMenuItemGroupContentProps>","Separator: React.FC<DsDropdownMenuSeparatorProps>","DsDropdownMenuLegacy: React.FC<DsDropdownMenuLegacyProps>","DsTextInput"],"sources":["../../../src/components/ds-dropdown-menu/ds-dropdown-menu.tsx"],"sourcesContent":["import type React from 'react';\nimport { createContext, Fragment, useContext, useState } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Menu } from '@ark-ui/react/menu';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-dropdown-menu.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport DsTypography from '../ds-typography/ds-typography';\nimport DsTextInput from '../ds-text-input/ds-text-input';\nimport type {\n\tDsDropdownMenuActionsProps,\n\tDsDropdownMenuContentProps,\n\tDsDropdownMenuHeaderProps,\n\tDsDropdownMenuItemGroupContentProps,\n\tDsDropdownMenuItemGroupLabelProps,\n\tDsDropdownMenuItemGroupProps,\n\tDsDropdownMenuItemIndicatorProps,\n\tDsDropdownMenuItemProps,\n\tDsDropdownMenuLegacyProps,\n\tDsDropdownMenuPositioning,\n\tDsDropdownMenuRootProps,\n\tDsDropdownMenuSeparatorProps,\n\tDsDropdownMenuTriggerProps,\n} from './ds-dropdown-menu.types';\n\n/**\n * Context to share state between Group and GroupLabel\n */\ninterface GroupContextValue {\n\tcollapsed: boolean;\n\ttoggle: () => void;\n}\n\nconst GroupContext = createContext<GroupContextValue | null>(null);\n\nconst DEFAULT_POSITIONING: DsDropdownMenuPositioning = {\n\tplacement: 'bottom-start' as const,\n\tgutter: 4,\n};\n\n/**\n * Root component - manages dropdown state\n */\nconst Root: React.FC<DsDropdownMenuRootProps> = ({\n\topen,\n\tonOpenChange,\n\tonSelect,\n\tonHighlightChange,\n\tpositioning: customPositioning,\n\tpreventCloseOnSelect = false,\n\tchildren,\n}) => {\n\tconst positioning = {\n\t\t...DEFAULT_POSITIONING,\n\t\t...customPositioning,\n\t};\n\n\treturn (\n\t\t<Menu.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={(details) => onOpenChange?.(details.open)}\n\t\t\tonSelect={(details) => onSelect?.(details.value)}\n\t\t\tonHighlightChange={(details) => onHighlightChange?.(details.highlightedValue)}\n\t\t\tpositioning={positioning}\n\t\t\tcloseOnSelect={!preventCloseOnSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Root>\n\t);\n};\n\n/**\n * Trigger component - wraps the trigger element\n */\nconst Trigger: React.FC<DsDropdownMenuTriggerProps> = Menu.Trigger;\n\n/**\n * Content component - wraps the dropdown content\n */\nconst Content: React.FC<DsDropdownMenuContentProps> = ({\n\tdisablePortal = false,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\tconst Wrapper = disablePortal ? Fragment : Portal;\n\n\treturn (\n\t\t<Wrapper>\n\t\t\t<Menu.Positioner>\n\t\t\t\t<Menu.Content className={classNames(styles.content, className)} style={style}>\n\t\t\t\t\t{children}\n\t\t\t\t</Menu.Content>\n\t\t\t</Menu.Positioner>\n\t\t</Wrapper>\n\t);\n};\n\n/**\n * Item component - renders a menu item\n */\nconst Item: React.FC<DsDropdownMenuItemProps> = ({\n\tdisabled,\n\tselected,\n\tvalue,\n\tasChild,\n\tonClick,\n\tonSelect,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\treturn (\n\t\t<Menu.Item\n\t\t\tdisabled={disabled}\n\t\t\tclassName={classNames(\n\t\t\t\tstyles.item,\n\t\t\t\t{\n\t\t\t\t\t[styles.selected]: selected,\n\t\t\t\t},\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tasChild={asChild}\n\t\t\tonClick={onClick}\n\t\t\tonSelect={onSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Item>\n\t);\n};\n\n/**\n * ItemIndicator component - renders a selection indicator (check icon by default)\n */\nconst ItemIndicator: React.FC<DsDropdownMenuItemIndicatorProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<span className={classNames(styles.indicator, className)} style={style}>\n\t\t\t{children ?? <DsIcon icon=\"check\" />}\n\t\t</span>\n\t);\n};\n\n/**\n * Header component - sticky header container for search, filters, or other controls\n */\nconst Header: React.FC<DsDropdownMenuHeaderProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div className={classNames(styles.header, className)} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Actions component - footer container for action buttons\n */\nconst Actions: React.FC<DsDropdownMenuActionsProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(styles.actions, className)}\n\t\t\tstyle={style}\n\t\t\trole=\"menu\"\n\t\t\taria-label=\"Menu actions\"\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * ItemGroup component - collapsible group container\n */\nconst ItemGroup: React.FC<DsDropdownMenuItemGroupProps> = ({\n\tchildren,\n\tcollapsed: controlledCollapsed,\n\tonCollapsedChange,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [internalCollapsed, setInternalCollapsed] = useState(false);\n\n\tconst isControlled = controlledCollapsed !== undefined;\n\tconst collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n\tconst toggle = () => {\n\t\tconst newCollapsed = !collapsed;\n\t\tif (!isControlled) {\n\t\t\tsetInternalCollapsed(newCollapsed);\n\t\t}\n\t\tonCollapsedChange?.(newCollapsed);\n\t};\n\n\treturn (\n\t\t<GroupContext.Provider value={{ collapsed, toggle }}>\n\t\t\t<Menu.ItemGroup className={classNames(styles.group, className)} style={style}>\n\t\t\t\t{children}\n\t\t\t</Menu.ItemGroup>\n\t\t</GroupContext.Provider>\n\t);\n};\n\n/**\n * ItemGroupLabel component - clickable group header with collapse indicator\n */\nconst ItemGroupLabel: React.FC<DsDropdownMenuItemGroupLabelProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (!context) {\n\t\t// If not inside a Group, just render static label\n\t\treturn (\n\t\t\t<Menu.ItemGroupLabel className={classNames(styles.groupLabel, className)} style={style}>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t</Menu.ItemGroupLabel>\n\t\t);\n\t}\n\n\tconst { collapsed, toggle } = context;\n\n\treturn (\n\t\t<Menu.ItemGroupLabel asChild>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={classNames(styles.groupLabel, styles.groupLabelCollapsible, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonClick={toggle}\n\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t\t<DsIcon\n\t\t\t\t\ticon=\"keyboard_arrow_down\"\n\t\t\t\t\tclassName={classNames(styles.groupLabelIcon, {\n\t\t\t\t\t\t[styles.groupLabelIconRotated]: !collapsed,\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</Menu.ItemGroupLabel>\n\t);\n};\n\n/**\n * ItemGroupContent component - collapsible content container\n */\nconst ItemGroupContent: React.FC<DsDropdownMenuItemGroupContentProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (context?.collapsed) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={className} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Separator component - renders a visual divider\n */\nconst Separator: React.FC<DsDropdownMenuSeparatorProps> = ({ className, style }) => {\n\treturn <Menu.Separator className={classNames(styles.separator, className)} style={style} />;\n};\n\n/**\n * DEPRECATED: Legacy DsDropdownMenu component with options array\n * Use compound component pattern instead\n * @deprecated\n */\nexport const DsDropdownMenuLegacy: React.FC<DsDropdownMenuLegacyProps> = ({\n\toptions,\n\tchildren,\n\tcontentGap = 0,\n\tclassName,\n\tstyle,\n\talign = 'center',\n\tside = 'bottom',\n\tdisablePortal = false,\n\tdisableSearch = true,\n\tselected,\n\tonSelect,\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [searchTerm, setSearchTerm] = useState('');\n\n\tconst Wrapper = disablePortal ? Fragment : DropdownMenu.Portal;\n\n\tconst filteredOptions = disableSearch\n\t\t? options\n\t\t: options.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));\n\n\treturn (\n\t\t<DropdownMenu.Root open={open} onOpenChange={setOpen}>\n\t\t\t<DropdownMenu.Trigger asChild>{children}</DropdownMenu.Trigger>\n\t\t\t<Wrapper>\n\t\t\t\t<DropdownMenu.Content\n\t\t\t\t\tclassName={classNames(styles.contentLegacy, styles.viewportLegacy)}\n\t\t\t\t\tsideOffset={contentGap}\n\t\t\t\t\talign={align}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t{!disableSearch && (\n\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\tonValueChange={setSearchTerm}\n\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{filteredOptions.map((option, i) => (\n\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\tstyles.itemLegacy,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[styles.selected]: selected === option.value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t\t\tif (!option.disabled) {\n\t\t\t\t\t\t\t\t\tif (option.value) {\n\t\t\t\t\t\t\t\t\t\tonSelect?.(option.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\toption.onClick?.(e);\n\t\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.icon && <DsIcon icon={option.icon} className={styles.itemIcon} />}\n\t\t\t\t\t\t\t<span className={styles.label}>{option.label}</span>\n\t\t\t\t\t\t\t{option.value && selected === option.value && (\n\t\t\t\t\t\t\t\t<span className={styles.indicator}>\n\t\t\t\t\t\t\t\t\t<DsIcon icon=\"check\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</DropdownMenu.Item>\n\t\t\t\t\t))}\n\t\t\t\t</DropdownMenu.Content>\n\t\t\t</Wrapper>\n\t\t</DropdownMenu.Root>\n\t);\n};\n\n/**\n * Design system DsDropdownMenu component\n *\n * @example\n * <DsDropdownMenu.Root>\n * <DsDropdownMenu.Trigger>\n * <button>Open</button>\n * </DsDropdownMenu.Trigger>\n * <DsDropdownMenu.Content>\n * <DsDropdownMenu.Header>\n * <DsTextInput placeholder=\"Search...\" />\n * </DsDropdownMenu.Header>\n * <DsDropdownMenu.Item value=\"item1\">\n * Item 1\n * <DsDropdownMenu.ItemIndicator />\n * </DsDropdownMenu.Item>\n * <DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.ItemGroupLabel>Group Name</DsDropdownMenu.ItemGroupLabel>\n * <DsDropdownMenu.ItemGroupContent>\n * <DsDropdownMenu.Item value=\"item2\">Item 2</DsDropdownMenu.Item>\n * </DsDropdownMenu.ItemGroupContent>\n * </DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.Separator />\n * <DsDropdownMenu.Actions>\n * <DsButton>Cancel</DsButton>\n * <DsButton>Apply</DsButton>\n * </DsDropdownMenu.Actions>\n * </DsDropdownMenu.Content>\n * </DsDropdownMenu.Root>\n */\nexport const DsDropdownMenu = {\n\tRoot,\n\tTrigger,\n\tContent,\n\tItem,\n\tItemIndicator,\n\tHeader,\n\tActions,\n\tItemGroup,\n\tItemGroupLabel,\n\tItemGroupContent,\n\tSeparator,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ds-dropdown-menu.js","names":["React","createContext","Fragment","useContext","useState","DropdownMenu","Menu","Portal","classNames","styles","DsIcon","DsTypography","DsTextInput","DsDropdownMenuActionsProps","DsDropdownMenuContentProps","DsDropdownMenuHeaderProps","DsDropdownMenuItemGroupContentProps","DsDropdownMenuItemGroupLabelProps","DsDropdownMenuItemGroupProps","DsDropdownMenuItemIndicatorProps","DsDropdownMenuItemProps","DsDropdownMenuLegacyProps","DsDropdownMenuPositioning","DsDropdownMenuRootProps","DsDropdownMenuSeparatorProps","DsDropdownMenuTriggerProps","GroupContextValue","collapsed","toggle","GroupContext","DEFAULT_POSITIONING","placement","const","gutter","Root","FC","t0","$","_c","open","onOpenChange","onSelect","onHighlightChange","positioning","customPositioning","preventCloseOnSelect","t1","children","undefined","t2","t3","details","t4","details_0","value","t5","details_1","highlightedValue","t6","t7","Trigger","Content","disablePortal","className","style","Wrapper","content","Item","disabled","selected","asChild","onClick","item","ItemIndicator","indicator","Header","header","Actions","actions","ItemGroup","controlledCollapsed","onCollapsedChange","internalCollapsed","setInternalCollapsed","isControlled","newCollapsed","group","ItemGroupLabel","context","groupLabel","groupLabelCollapsible","groupLabelIcon","groupLabelIconRotated","_temp","ItemGroupContent","Separator","separator","DsDropdownMenuLegacy","options","contentGap","align","side","disableSearch","setOpen","searchTerm","setSearchTerm","filter","option","label","toLowerCase","includes","filteredOptions","t8","Symbol","for","contentLegacy","viewportLegacy","t9","startAdornment","_temp2","t10","t11","option_0","i","itemLegacy","e_0","e","stopPropagation","icon","itemIcon","map","t12","t13","DsDropdownMenu"],"sources":["../../../src/components/ds-dropdown-menu/ds-dropdown-menu.tsx"],"sourcesContent":["import type React from 'react';\nimport { createContext, Fragment, useContext, useState } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Menu } from '@ark-ui/react/menu';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-dropdown-menu.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport DsTypography from '../ds-typography/ds-typography';\nimport DsTextInput from '../ds-text-input/ds-text-input';\nimport type {\n\tDsDropdownMenuActionsProps,\n\tDsDropdownMenuContentProps,\n\tDsDropdownMenuHeaderProps,\n\tDsDropdownMenuItemGroupContentProps,\n\tDsDropdownMenuItemGroupLabelProps,\n\tDsDropdownMenuItemGroupProps,\n\tDsDropdownMenuItemIndicatorProps,\n\tDsDropdownMenuItemProps,\n\tDsDropdownMenuLegacyProps,\n\tDsDropdownMenuPositioning,\n\tDsDropdownMenuRootProps,\n\tDsDropdownMenuSeparatorProps,\n\tDsDropdownMenuTriggerProps,\n} from './ds-dropdown-menu.types';\n\n/**\n * Context to share state between Group and GroupLabel\n */\ninterface GroupContextValue {\n\tcollapsed: boolean;\n\ttoggle: () => void;\n}\n\nconst GroupContext = createContext<GroupContextValue | null>(null);\n\nconst DEFAULT_POSITIONING: DsDropdownMenuPositioning = {\n\tplacement: 'bottom-start' as const,\n\tgutter: 4,\n};\n\n/**\n * Root component - manages dropdown state\n */\nconst Root: React.FC<DsDropdownMenuRootProps> = ({\n\topen,\n\tonOpenChange,\n\tonSelect,\n\tonHighlightChange,\n\tpositioning: customPositioning,\n\tpreventCloseOnSelect = false,\n\tchildren,\n}) => {\n\tconst positioning = {\n\t\t...DEFAULT_POSITIONING,\n\t\t...customPositioning,\n\t};\n\n\treturn (\n\t\t<Menu.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={(details) => onOpenChange?.(details.open)}\n\t\t\tonSelect={(details) => onSelect?.(details.value)}\n\t\t\tonHighlightChange={(details) => onHighlightChange?.(details.highlightedValue)}\n\t\t\tpositioning={positioning}\n\t\t\tcloseOnSelect={!preventCloseOnSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Root>\n\t);\n};\n\n/**\n * Trigger component - wraps the trigger element\n */\nconst Trigger: React.FC<DsDropdownMenuTriggerProps> = Menu.Trigger;\n\n/**\n * Content component - wraps the dropdown content\n */\nconst Content: React.FC<DsDropdownMenuContentProps> = ({\n\tdisablePortal = false,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\tconst Wrapper = disablePortal ? Fragment : Portal;\n\n\treturn (\n\t\t<Wrapper>\n\t\t\t<Menu.Positioner>\n\t\t\t\t<Menu.Content className={classNames(styles.content, className)} style={style}>\n\t\t\t\t\t{children}\n\t\t\t\t</Menu.Content>\n\t\t\t</Menu.Positioner>\n\t\t</Wrapper>\n\t);\n};\n\n/**\n * Item component - renders a menu item\n */\nconst Item: React.FC<DsDropdownMenuItemProps> = ({\n\tdisabled,\n\tselected,\n\tvalue,\n\tasChild,\n\tonClick,\n\tonSelect,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\treturn (\n\t\t<Menu.Item\n\t\t\tdisabled={disabled}\n\t\t\tclassName={classNames(\n\t\t\t\tstyles.item,\n\t\t\t\t{\n\t\t\t\t\t[styles.selected]: selected,\n\t\t\t\t},\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tasChild={asChild}\n\t\t\tonClick={onClick}\n\t\t\tonSelect={onSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Item>\n\t);\n};\n\n/**\n * ItemIndicator component - renders a selection indicator (check icon by default)\n */\nconst ItemIndicator: React.FC<DsDropdownMenuItemIndicatorProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<span className={classNames(styles.indicator, className)} style={style}>\n\t\t\t{children ?? <DsIcon icon=\"check\" />}\n\t\t</span>\n\t);\n};\n\n/**\n * Header component - sticky header container for search, filters, or other controls\n */\nconst Header: React.FC<DsDropdownMenuHeaderProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div className={classNames(styles.header, className)} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Actions component - footer container for action buttons\n */\nconst Actions: React.FC<DsDropdownMenuActionsProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(styles.actions, className)}\n\t\t\tstyle={style}\n\t\t\trole=\"menu\"\n\t\t\taria-label=\"Menu actions\"\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * ItemGroup component - collapsible group container\n */\nconst ItemGroup: React.FC<DsDropdownMenuItemGroupProps> = ({\n\tchildren,\n\tcollapsed: controlledCollapsed,\n\tonCollapsedChange,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [internalCollapsed, setInternalCollapsed] = useState(false);\n\n\tconst isControlled = controlledCollapsed !== undefined;\n\tconst collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n\tconst toggle = () => {\n\t\tconst newCollapsed = !collapsed;\n\t\tif (!isControlled) {\n\t\t\tsetInternalCollapsed(newCollapsed);\n\t\t}\n\t\tonCollapsedChange?.(newCollapsed);\n\t};\n\n\treturn (\n\t\t<GroupContext.Provider value={{ collapsed, toggle }}>\n\t\t\t<Menu.ItemGroup className={classNames(styles.group, className)} style={style}>\n\t\t\t\t{children}\n\t\t\t</Menu.ItemGroup>\n\t\t</GroupContext.Provider>\n\t);\n};\n\n/**\n * ItemGroupLabel component - clickable group header with collapse indicator\n */\nconst ItemGroupLabel: React.FC<DsDropdownMenuItemGroupLabelProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (!context) {\n\t\t// If not inside a Group, just render static label\n\t\treturn (\n\t\t\t<Menu.ItemGroupLabel className={classNames(styles.groupLabel, className)} style={style}>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t</Menu.ItemGroupLabel>\n\t\t);\n\t}\n\n\tconst { collapsed, toggle } = context;\n\n\treturn (\n\t\t<Menu.ItemGroupLabel asChild>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={classNames(styles.groupLabel, styles.groupLabelCollapsible, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonClick={toggle}\n\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t\t<DsIcon\n\t\t\t\t\ticon=\"keyboard_arrow_down\"\n\t\t\t\t\tclassName={classNames(styles.groupLabelIcon, {\n\t\t\t\t\t\t[styles.groupLabelIconRotated]: !collapsed,\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</Menu.ItemGroupLabel>\n\t);\n};\n\n/**\n * ItemGroupContent component - collapsible content container\n */\nconst ItemGroupContent: React.FC<DsDropdownMenuItemGroupContentProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (context?.collapsed) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={className} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Separator component - renders a visual divider\n */\nconst Separator: React.FC<DsDropdownMenuSeparatorProps> = ({ className, style }) => {\n\treturn <Menu.Separator className={classNames(styles.separator, className)} style={style} />;\n};\n\n/**\n * DEPRECATED: Legacy DsDropdownMenu component with options array\n * Use compound component pattern instead\n * @deprecated\n */\nexport const DsDropdownMenuLegacy: React.FC<DsDropdownMenuLegacyProps> = ({\n\toptions,\n\tchildren,\n\tcontentGap = 0,\n\tclassName,\n\tstyle,\n\talign = 'center',\n\tside = 'bottom',\n\tdisablePortal = false,\n\tdisableSearch = true,\n\tselected,\n\tonSelect,\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [searchTerm, setSearchTerm] = useState('');\n\n\tconst Wrapper = disablePortal ? Fragment : DropdownMenu.Portal;\n\n\tconst filteredOptions = disableSearch\n\t\t? options\n\t\t: options.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));\n\n\treturn (\n\t\t<DropdownMenu.Root open={open} onOpenChange={setOpen}>\n\t\t\t<DropdownMenu.Trigger asChild>{children}</DropdownMenu.Trigger>\n\t\t\t<Wrapper>\n\t\t\t\t<DropdownMenu.Content\n\t\t\t\t\tclassName={classNames(styles.contentLegacy, styles.viewportLegacy)}\n\t\t\t\t\tsideOffset={contentGap}\n\t\t\t\t\talign={align}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t{!disableSearch && (\n\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\tonValueChange={setSearchTerm}\n\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{filteredOptions.map((option, i) => (\n\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\tstyles.itemLegacy,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[styles.selected]: selected === option.value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t\t\tif (!option.disabled) {\n\t\t\t\t\t\t\t\t\tif (option.value) {\n\t\t\t\t\t\t\t\t\t\tonSelect?.(option.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\toption.onClick?.(e);\n\t\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.icon && <DsIcon icon={option.icon} className={styles.itemIcon} />}\n\t\t\t\t\t\t\t<span className={styles.label}>{option.label}</span>\n\t\t\t\t\t\t\t{option.value && selected === option.value && (\n\t\t\t\t\t\t\t\t<span className={styles.indicator}>\n\t\t\t\t\t\t\t\t\t<DsIcon icon=\"check\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</DropdownMenu.Item>\n\t\t\t\t\t))}\n\t\t\t\t</DropdownMenu.Content>\n\t\t\t</Wrapper>\n\t\t</DropdownMenu.Root>\n\t);\n};\n\n/**\n * Design system DsDropdownMenu component\n *\n * @example\n * <DsDropdownMenu.Root>\n * <DsDropdownMenu.Trigger>\n * <button>Open</button>\n * </DsDropdownMenu.Trigger>\n * <DsDropdownMenu.Content>\n * <DsDropdownMenu.Header>\n * <DsTextInput placeholder=\"Search...\" />\n * </DsDropdownMenu.Header>\n * <DsDropdownMenu.Item value=\"item1\">\n * Item 1\n * <DsDropdownMenu.ItemIndicator />\n * </DsDropdownMenu.Item>\n * <DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.ItemGroupLabel>Group Name</DsDropdownMenu.ItemGroupLabel>\n * <DsDropdownMenu.ItemGroupContent>\n * <DsDropdownMenu.Item value=\"item2\">Item 2</DsDropdownMenu.Item>\n * </DsDropdownMenu.ItemGroupContent>\n * </DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.Separator />\n * <DsDropdownMenu.Actions>\n * <DsButton>Cancel</DsButton>\n * <DsButton>Apply</DsButton>\n * </DsDropdownMenu.Actions>\n * </DsDropdownMenu.Content>\n * </DsDropdownMenu.Root>\n */\nexport const DsDropdownMenu = {\n\tRoot,\n\tTrigger,\n\tContent,\n\tItem,\n\tItemIndicator,\n\tHeader,\n\tActions,\n\tItemGroup,\n\tItemGroupLabel,\n\tItemGroupContent,\n\tSeparator,\n};\n"],"mappings":"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"}
|
|
@@ -7,76 +7,166 @@ const require_ds_button = require('../ds-button/ds-button.cjs');
|
|
|
7
7
|
require('../ds-button/index.cjs');
|
|
8
8
|
const require_ds_expandable_text_input_module = require('./ds-expandable-text-input.module.cjs');
|
|
9
9
|
const require_merge_refs = require('../ds-table/utils/merge-refs.cjs');
|
|
10
|
+
let react_compiler_runtime = require("react/compiler-runtime");
|
|
10
11
|
let classnames = require("classnames");
|
|
11
12
|
classnames = require_rolldown_runtime.__toESM(classnames);
|
|
12
13
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
13
14
|
let react = require("react");
|
|
14
15
|
|
|
15
16
|
//#region src/components/ds-expandable-text-input/ds-expandable-text-input.tsx
|
|
16
|
-
function DsExpandableTextInput(
|
|
17
|
+
function DsExpandableTextInput(t0) {
|
|
18
|
+
const $ = (0, react_compiler_runtime.c)(38);
|
|
19
|
+
const { onClear, onExpandChange, icon, ...props } = t0;
|
|
17
20
|
const [expanded, _setExpanded] = (0, react.useState)(false);
|
|
18
21
|
const [dirty, setDirty] = (0, react.useState)(false);
|
|
19
22
|
const ref = (0, react.useRef)(null);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
let t1;
|
|
24
|
+
if ($[0] !== onExpandChange || $[1] !== setDirty) {
|
|
25
|
+
t1 = (newExpanded) => {
|
|
26
|
+
_setExpanded(newExpanded);
|
|
27
|
+
onExpandChange?.(newExpanded);
|
|
28
|
+
if (!newExpanded) setDirty(false);
|
|
29
|
+
};
|
|
30
|
+
$[0] = onExpandChange;
|
|
31
|
+
$[1] = setDirty;
|
|
32
|
+
$[2] = t1;
|
|
33
|
+
} else t1 = $[2];
|
|
34
|
+
const setExpanded = t1;
|
|
35
|
+
const T0 = require_ds_text_input.default;
|
|
36
|
+
const t2 = require_merge_refs.mergeRefs(ref, props.ref);
|
|
37
|
+
const t3 = expanded ? 0 : -1;
|
|
38
|
+
const t4 = (0, classnames.default)(props.className, require_ds_expandable_text_input_module.default.expandableInput, expanded && require_ds_expandable_text_input_module.default.expanded, dirty && require_ds_expandable_text_input_module.default.dirty);
|
|
39
|
+
let t5;
|
|
40
|
+
if ($[3] !== props || $[4] !== setDirty) {
|
|
41
|
+
t5 = (e) => {
|
|
31
42
|
props.onChange?.(e);
|
|
32
43
|
setDirty(true);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
};
|
|
45
|
+
$[3] = props;
|
|
46
|
+
$[4] = setDirty;
|
|
47
|
+
$[5] = t5;
|
|
48
|
+
} else t5 = $[5];
|
|
49
|
+
let t6;
|
|
50
|
+
if ($[6] !== dirty || $[7] !== props || $[8] !== ref || $[9] !== setExpanded) {
|
|
51
|
+
t6 = (e_0) => {
|
|
52
|
+
props.onBlur?.(e_0);
|
|
36
53
|
if (!dirty && !ref.current?.value) setExpanded(false);
|
|
37
|
-
}
|
|
38
|
-
|
|
54
|
+
};
|
|
55
|
+
$[6] = dirty;
|
|
56
|
+
$[7] = props;
|
|
57
|
+
$[8] = ref;
|
|
58
|
+
$[9] = setExpanded;
|
|
59
|
+
$[10] = t6;
|
|
60
|
+
} else t6 = $[10];
|
|
61
|
+
const t7 = expanded ? -1 : 0;
|
|
62
|
+
let t8;
|
|
63
|
+
if ($[11] !== props.disabled || $[12] !== ref || $[13] !== setExpanded) {
|
|
64
|
+
t8 = () => {
|
|
65
|
+
if (props.disabled) return;
|
|
66
|
+
setExpanded(true);
|
|
67
|
+
ref.current?.focus();
|
|
68
|
+
};
|
|
69
|
+
$[11] = props.disabled;
|
|
70
|
+
$[12] = ref;
|
|
71
|
+
$[13] = setExpanded;
|
|
72
|
+
$[14] = t8;
|
|
73
|
+
} else t8 = $[14];
|
|
74
|
+
let t9;
|
|
75
|
+
if ($[15] !== icon) {
|
|
76
|
+
t9 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_icon.default, {
|
|
77
|
+
icon,
|
|
78
|
+
size: "small"
|
|
79
|
+
});
|
|
80
|
+
$[15] = icon;
|
|
81
|
+
$[16] = t9;
|
|
82
|
+
} else t9 = $[16];
|
|
83
|
+
let t10;
|
|
84
|
+
if ($[17] !== expanded || $[18] !== t7 || $[19] !== t8 || $[20] !== t9) {
|
|
85
|
+
t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
86
|
+
type: "button",
|
|
87
|
+
className: require_ds_expandable_text_input_module.default.trigger,
|
|
88
|
+
"aria-label": "Open text input",
|
|
89
|
+
"aria-hidden": expanded,
|
|
90
|
+
tabIndex: t7,
|
|
91
|
+
onClick: t8,
|
|
92
|
+
children: t9
|
|
93
|
+
});
|
|
94
|
+
$[17] = expanded;
|
|
95
|
+
$[18] = t7;
|
|
96
|
+
$[19] = t8;
|
|
97
|
+
$[20] = t9;
|
|
98
|
+
$[21] = t10;
|
|
99
|
+
} else t10 = $[21];
|
|
100
|
+
let t11;
|
|
101
|
+
if ($[22] !== onClear || $[23] !== ref || $[24] !== setExpanded) {
|
|
102
|
+
t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_button.default, {
|
|
103
|
+
design: "v1.2",
|
|
104
|
+
size: "small",
|
|
105
|
+
buttonType: "tertiary",
|
|
106
|
+
variant: "filled",
|
|
107
|
+
className: require_ds_expandable_text_input_module.default.clearTrigger,
|
|
108
|
+
onClick: () => {
|
|
109
|
+
setExpanded(false);
|
|
110
|
+
if (ref.current) {
|
|
111
|
+
ref.current.blur();
|
|
112
|
+
ref.current.value = "";
|
|
113
|
+
}
|
|
114
|
+
onClear?.();
|
|
115
|
+
},
|
|
116
|
+
children: "Clear"
|
|
117
|
+
});
|
|
118
|
+
$[22] = onClear;
|
|
119
|
+
$[23] = ref;
|
|
120
|
+
$[24] = setExpanded;
|
|
121
|
+
$[25] = t11;
|
|
122
|
+
} else t11 = $[25];
|
|
123
|
+
let t12;
|
|
124
|
+
if ($[26] !== t10 || $[27] !== t11) {
|
|
125
|
+
t12 = {
|
|
39
126
|
inputWrapper: InputExpander,
|
|
40
|
-
startAdornment:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
},
|
|
70
|
-
children: "Clear"
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
});
|
|
127
|
+
startAdornment: t10,
|
|
128
|
+
endAdornment: t11
|
|
129
|
+
};
|
|
130
|
+
$[26] = t10;
|
|
131
|
+
$[27] = t11;
|
|
132
|
+
$[28] = t12;
|
|
133
|
+
} else t12 = $[28];
|
|
134
|
+
let t13;
|
|
135
|
+
if ($[29] !== T0 || $[30] !== props || $[31] !== t12 || $[32] !== t2 || $[33] !== t3 || $[34] !== t4 || $[35] !== t5 || $[36] !== t6) {
|
|
136
|
+
t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(T0, {
|
|
137
|
+
...props,
|
|
138
|
+
ref: t2,
|
|
139
|
+
tabIndex: t3,
|
|
140
|
+
className: t4,
|
|
141
|
+
onChange: t5,
|
|
142
|
+
onBlur: t6,
|
|
143
|
+
slots: t12
|
|
144
|
+
});
|
|
145
|
+
$[29] = T0;
|
|
146
|
+
$[30] = props;
|
|
147
|
+
$[31] = t12;
|
|
148
|
+
$[32] = t2;
|
|
149
|
+
$[33] = t3;
|
|
150
|
+
$[34] = t4;
|
|
151
|
+
$[35] = t5;
|
|
152
|
+
$[36] = t6;
|
|
153
|
+
$[37] = t13;
|
|
154
|
+
} else t13 = $[37];
|
|
155
|
+
return t13;
|
|
74
156
|
}
|
|
75
|
-
function InputExpander(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
157
|
+
function InputExpander(t0) {
|
|
158
|
+
const $ = (0, react_compiler_runtime.c)(2);
|
|
159
|
+
const { children } = t0;
|
|
160
|
+
let t1;
|
|
161
|
+
if ($[0] !== children) {
|
|
162
|
+
t1 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
163
|
+
className: require_ds_expandable_text_input_module.default.inputExpander,
|
|
164
|
+
children
|
|
165
|
+
});
|
|
166
|
+
$[0] = children;
|
|
167
|
+
$[1] = t1;
|
|
168
|
+
} else t1 = $[1];
|
|
169
|
+
return t1;
|
|
80
170
|
}
|
|
81
171
|
|
|
82
172
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsExpandableTextInputProps } from "./ds-expandable-text-input.types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime18 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/ds-expandable-text-input/ds-expandable-text-input.d.ts
|
|
5
5
|
declare function DsExpandableTextInput({
|
|
@@ -7,7 +7,7 @@ declare function DsExpandableTextInput({
|
|
|
7
7
|
onExpandChange,
|
|
8
8
|
icon,
|
|
9
9
|
...props
|
|
10
|
-
}: DsExpandableTextInputProps):
|
|
10
|
+
}: DsExpandableTextInputProps): react_jsx_runtime18.JSX.Element;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { DsExpandableTextInput };
|
|
13
13
|
//# sourceMappingURL=ds-expandable-text-input.d.cts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsExpandableTextInputProps } from "./ds-expandable-text-input.types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime18 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/ds-expandable-text-input/ds-expandable-text-input.d.ts
|
|
5
5
|
declare function DsExpandableTextInput({
|
|
@@ -7,7 +7,7 @@ declare function DsExpandableTextInput({
|
|
|
7
7
|
onExpandChange,
|
|
8
8
|
icon,
|
|
9
9
|
...props
|
|
10
|
-
}: DsExpandableTextInputProps):
|
|
10
|
+
}: DsExpandableTextInputProps): react_jsx_runtime18.JSX.Element;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { DsExpandableTextInput };
|
|
13
13
|
//# sourceMappingURL=ds-expandable-text-input.d.ts.map
|
|
@@ -6,75 +6,165 @@ import ds_button_default from "../ds-button/ds-button.js";
|
|
|
6
6
|
import "../ds-button/index.js";
|
|
7
7
|
import ds_expandable_text_input_module_default from "./ds-expandable-text-input.module.js";
|
|
8
8
|
import { mergeRefs } from "../ds-table/utils/merge-refs.js";
|
|
9
|
+
import { c } from "react/compiler-runtime";
|
|
9
10
|
import classNames from "classnames";
|
|
10
11
|
import { jsx } from "react/jsx-runtime";
|
|
11
12
|
import { useRef, useState } from "react";
|
|
12
13
|
|
|
13
14
|
//#region src/components/ds-expandable-text-input/ds-expandable-text-input.tsx
|
|
14
|
-
function DsExpandableTextInput(
|
|
15
|
+
function DsExpandableTextInput(t0) {
|
|
16
|
+
const $ = c(38);
|
|
17
|
+
const { onClear, onExpandChange, icon, ...props } = t0;
|
|
15
18
|
const [expanded, _setExpanded] = useState(false);
|
|
16
19
|
const [dirty, setDirty] = useState(false);
|
|
17
20
|
const ref = useRef(null);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
let t1;
|
|
22
|
+
if ($[0] !== onExpandChange || $[1] !== setDirty) {
|
|
23
|
+
t1 = (newExpanded) => {
|
|
24
|
+
_setExpanded(newExpanded);
|
|
25
|
+
onExpandChange?.(newExpanded);
|
|
26
|
+
if (!newExpanded) setDirty(false);
|
|
27
|
+
};
|
|
28
|
+
$[0] = onExpandChange;
|
|
29
|
+
$[1] = setDirty;
|
|
30
|
+
$[2] = t1;
|
|
31
|
+
} else t1 = $[2];
|
|
32
|
+
const setExpanded = t1;
|
|
33
|
+
const T0 = ds_text_input_default;
|
|
34
|
+
const t2 = mergeRefs(ref, props.ref);
|
|
35
|
+
const t3 = expanded ? 0 : -1;
|
|
36
|
+
const t4 = classNames(props.className, ds_expandable_text_input_module_default.expandableInput, expanded && ds_expandable_text_input_module_default.expanded, dirty && ds_expandable_text_input_module_default.dirty);
|
|
37
|
+
let t5;
|
|
38
|
+
if ($[3] !== props || $[4] !== setDirty) {
|
|
39
|
+
t5 = (e) => {
|
|
29
40
|
props.onChange?.(e);
|
|
30
41
|
setDirty(true);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
};
|
|
43
|
+
$[3] = props;
|
|
44
|
+
$[4] = setDirty;
|
|
45
|
+
$[5] = t5;
|
|
46
|
+
} else t5 = $[5];
|
|
47
|
+
let t6;
|
|
48
|
+
if ($[6] !== dirty || $[7] !== props || $[8] !== ref || $[9] !== setExpanded) {
|
|
49
|
+
t6 = (e_0) => {
|
|
50
|
+
props.onBlur?.(e_0);
|
|
34
51
|
if (!dirty && !ref.current?.value) setExpanded(false);
|
|
35
|
-
}
|
|
36
|
-
|
|
52
|
+
};
|
|
53
|
+
$[6] = dirty;
|
|
54
|
+
$[7] = props;
|
|
55
|
+
$[8] = ref;
|
|
56
|
+
$[9] = setExpanded;
|
|
57
|
+
$[10] = t6;
|
|
58
|
+
} else t6 = $[10];
|
|
59
|
+
const t7 = expanded ? -1 : 0;
|
|
60
|
+
let t8;
|
|
61
|
+
if ($[11] !== props.disabled || $[12] !== ref || $[13] !== setExpanded) {
|
|
62
|
+
t8 = () => {
|
|
63
|
+
if (props.disabled) return;
|
|
64
|
+
setExpanded(true);
|
|
65
|
+
ref.current?.focus();
|
|
66
|
+
};
|
|
67
|
+
$[11] = props.disabled;
|
|
68
|
+
$[12] = ref;
|
|
69
|
+
$[13] = setExpanded;
|
|
70
|
+
$[14] = t8;
|
|
71
|
+
} else t8 = $[14];
|
|
72
|
+
let t9;
|
|
73
|
+
if ($[15] !== icon) {
|
|
74
|
+
t9 = /* @__PURE__ */ jsx(ds_icon_default, {
|
|
75
|
+
icon,
|
|
76
|
+
size: "small"
|
|
77
|
+
});
|
|
78
|
+
$[15] = icon;
|
|
79
|
+
$[16] = t9;
|
|
80
|
+
} else t9 = $[16];
|
|
81
|
+
let t10;
|
|
82
|
+
if ($[17] !== expanded || $[18] !== t7 || $[19] !== t8 || $[20] !== t9) {
|
|
83
|
+
t10 = /* @__PURE__ */ jsx("button", {
|
|
84
|
+
type: "button",
|
|
85
|
+
className: ds_expandable_text_input_module_default.trigger,
|
|
86
|
+
"aria-label": "Open text input",
|
|
87
|
+
"aria-hidden": expanded,
|
|
88
|
+
tabIndex: t7,
|
|
89
|
+
onClick: t8,
|
|
90
|
+
children: t9
|
|
91
|
+
});
|
|
92
|
+
$[17] = expanded;
|
|
93
|
+
$[18] = t7;
|
|
94
|
+
$[19] = t8;
|
|
95
|
+
$[20] = t9;
|
|
96
|
+
$[21] = t10;
|
|
97
|
+
} else t10 = $[21];
|
|
98
|
+
let t11;
|
|
99
|
+
if ($[22] !== onClear || $[23] !== ref || $[24] !== setExpanded) {
|
|
100
|
+
t11 = /* @__PURE__ */ jsx(ds_button_default, {
|
|
101
|
+
design: "v1.2",
|
|
102
|
+
size: "small",
|
|
103
|
+
buttonType: "tertiary",
|
|
104
|
+
variant: "filled",
|
|
105
|
+
className: ds_expandable_text_input_module_default.clearTrigger,
|
|
106
|
+
onClick: () => {
|
|
107
|
+
setExpanded(false);
|
|
108
|
+
if (ref.current) {
|
|
109
|
+
ref.current.blur();
|
|
110
|
+
ref.current.value = "";
|
|
111
|
+
}
|
|
112
|
+
onClear?.();
|
|
113
|
+
},
|
|
114
|
+
children: "Clear"
|
|
115
|
+
});
|
|
116
|
+
$[22] = onClear;
|
|
117
|
+
$[23] = ref;
|
|
118
|
+
$[24] = setExpanded;
|
|
119
|
+
$[25] = t11;
|
|
120
|
+
} else t11 = $[25];
|
|
121
|
+
let t12;
|
|
122
|
+
if ($[26] !== t10 || $[27] !== t11) {
|
|
123
|
+
t12 = {
|
|
37
124
|
inputWrapper: InputExpander,
|
|
38
|
-
startAdornment:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
children: "Clear"
|
|
69
|
-
})
|
|
70
|
-
}
|
|
71
|
-
});
|
|
125
|
+
startAdornment: t10,
|
|
126
|
+
endAdornment: t11
|
|
127
|
+
};
|
|
128
|
+
$[26] = t10;
|
|
129
|
+
$[27] = t11;
|
|
130
|
+
$[28] = t12;
|
|
131
|
+
} else t12 = $[28];
|
|
132
|
+
let t13;
|
|
133
|
+
if ($[29] !== T0 || $[30] !== props || $[31] !== t12 || $[32] !== t2 || $[33] !== t3 || $[34] !== t4 || $[35] !== t5 || $[36] !== t6) {
|
|
134
|
+
t13 = /* @__PURE__ */ jsx(T0, {
|
|
135
|
+
...props,
|
|
136
|
+
ref: t2,
|
|
137
|
+
tabIndex: t3,
|
|
138
|
+
className: t4,
|
|
139
|
+
onChange: t5,
|
|
140
|
+
onBlur: t6,
|
|
141
|
+
slots: t12
|
|
142
|
+
});
|
|
143
|
+
$[29] = T0;
|
|
144
|
+
$[30] = props;
|
|
145
|
+
$[31] = t12;
|
|
146
|
+
$[32] = t2;
|
|
147
|
+
$[33] = t3;
|
|
148
|
+
$[34] = t4;
|
|
149
|
+
$[35] = t5;
|
|
150
|
+
$[36] = t6;
|
|
151
|
+
$[37] = t13;
|
|
152
|
+
} else t13 = $[37];
|
|
153
|
+
return t13;
|
|
72
154
|
}
|
|
73
|
-
function InputExpander(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
155
|
+
function InputExpander(t0) {
|
|
156
|
+
const $ = c(2);
|
|
157
|
+
const { children } = t0;
|
|
158
|
+
let t1;
|
|
159
|
+
if ($[0] !== children) {
|
|
160
|
+
t1 = /* @__PURE__ */ jsx("div", {
|
|
161
|
+
className: ds_expandable_text_input_module_default.inputExpander,
|
|
162
|
+
children
|
|
163
|
+
});
|
|
164
|
+
$[0] = children;
|
|
165
|
+
$[1] = t1;
|
|
166
|
+
} else t1 = $[1];
|
|
167
|
+
return t1;
|
|
78
168
|
}
|
|
79
169
|
|
|
80
170
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-expandable-text-input.js","names":["DsTextInput","styles","
|
|
1
|
+
{"version":3,"file":"ds-expandable-text-input.js","names":["ReactNode","useRef","useState","DsTextInput","DsIcon","classNames","styles","mergeRefs","DsExpandableTextInputProps","DsButton","DsExpandableTextInput","t0","$","_c","onClear","onExpandChange","icon","props","expanded","_setExpanded","dirty","setDirty","ref","t1","newExpanded","setExpanded","T0","t2","t3","t4","className","expandableInput","t5","e","onChange","t6","e_0","onBlur","current","value","t7","t8","disabled","focus","t9","t10","trigger","t11","clearTrigger","blur","t12","inputWrapper","InputExpander","startAdornment","endAdornment","t13","children","inputExpander"],"sources":["../../../src/components/ds-expandable-text-input/ds-expandable-text-input.tsx"],"sourcesContent":["import { type ReactNode, useRef, useState } from 'react';\nimport { DsTextInput } from '../ds-text-input';\nimport { DsIcon } from '../ds-icon';\nimport classNames from 'classnames';\nimport styles from './ds-expandable-text-input.module.scss';\nimport { mergeRefs } from '../ds-table/utils/merge-refs';\nimport type { DsExpandableTextInputProps } from './ds-expandable-text-input.types';\nimport { DsButton } from '../ds-button';\n\nexport function DsExpandableTextInput({\n\tonClear,\n\tonExpandChange,\n\ticon,\n\t...props\n}: DsExpandableTextInputProps) {\n\tconst [expanded, _setExpanded] = useState(false);\n\tconst [dirty, setDirty] = useState(false);\n\tconst ref = useRef<HTMLInputElement>(null);\n\n\tconst setExpanded = (newExpanded: boolean) => {\n\t\t_setExpanded(newExpanded);\n\n\t\tonExpandChange?.(newExpanded);\n\n\t\tif (!newExpanded) {\n\t\t\tsetDirty(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<DsTextInput\n\t\t\t{...props}\n\t\t\tref={mergeRefs(ref, props.ref)}\n\t\t\ttabIndex={expanded ? 0 : -1}\n\t\t\tclassName={classNames(\n\t\t\t\tprops.className,\n\t\t\t\tstyles.expandableInput,\n\t\t\t\texpanded && styles.expanded,\n\t\t\t\tdirty && styles.dirty,\n\t\t\t)}\n\t\t\tonChange={(e) => {\n\t\t\t\tprops.onChange?.(e);\n\n\t\t\t\tsetDirty(true);\n\t\t\t}}\n\t\t\tonBlur={(e) => {\n\t\t\t\tprops.onBlur?.(e);\n\n\t\t\t\tif (!dirty && !ref.current?.value) {\n\t\t\t\t\tsetExpanded(false);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tslots={{\n\t\t\t\tinputWrapper: InputExpander,\n\t\t\t\tstartAdornment: (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t\taria-label=\"Open text input\"\n\t\t\t\t\t\taria-hidden={expanded}\n\t\t\t\t\t\ttabIndex={expanded ? -1 : 0}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (props.disabled) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetExpanded(true);\n\n\t\t\t\t\t\t\tref.current?.focus();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon={icon} size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t),\n\n\t\t\t\tendAdornment: (\n\t\t\t\t\t<DsButton\n\t\t\t\t\t\tdesign=\"v1.2\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tclassName={styles.clearTrigger}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tsetExpanded(false);\n\n\t\t\t\t\t\t\tif (ref.current) {\n\t\t\t\t\t\t\t\tref.current.blur();\n\n\t\t\t\t\t\t\t\t// Manually clear the input in uncontrolled mode.\n\t\t\t\t\t\t\t\tref.current.value = '';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tonClear?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tClear\n\t\t\t\t\t</DsButton>\n\t\t\t\t),\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction InputExpander({ children }: { children: ReactNode }) {\n\treturn <div className={styles.inputExpander}>{children}</div>;\n}\n"],"mappings":"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"}
|