@cube-dev/ui-kit 0.199.1 → 0.199.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/CHANGELOG.md +12 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +2 -2
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +17 -17
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +6 -8
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +31 -32
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +116 -127
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +4 -3
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +4 -3
- package/dist/components/actions/Menu/styled.js.map +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +32 -23
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +83 -87
- package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +10 -14
- package/dist/components/content/Layout/Layout.js.map +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +14 -14
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +20 -20
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +9 -9
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +23 -25
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +2 -5
- package/dist/components/content/TextItem/TextItem.js.map +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +6 -8
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +4 -6
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +2 -2
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableView.js +4 -7
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +11 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.d.ts +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +4 -4
- package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +7 -10
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +174 -183
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +2 -2
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +2 -2
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -2
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +2 -2
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +5 -5
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +6 -6
- package/dist/components/fields/color/ColorPanel.js.map +1 -1
- package/dist/components/fields/color/channels.js +4 -4
- package/dist/components/fields/color/channels.js.map +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +11 -8
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Panel.js.map +1 -1
- package/dist/components/layout/Prefix.js +16 -22
- package/dist/components/layout/Prefix.js.map +1 -1
- package/dist/components/layout/ResizablePanel.js +7 -6
- package/dist/components/layout/ResizablePanel.js.map +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +16 -22
- package/dist/components/layout/Suffix.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +2 -1
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +2 -2
- package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +6 -9
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +8 -6
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +3 -3
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +2 -2
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +2 -2
- package/dist/components/overlays/Modal/Underlay.js.map +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +28 -13
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +58 -57
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/Cube.js.map +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +127 -162
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +25 -22
- package/dist/icons/DirectionIcon.js.map +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +7 -2
- package/dist/icons/PlayCircleIcon.js.map +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.js +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +5 -1
- package/dist/tokens/base.js.map +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +4 -4
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/resolve.js.map +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/Usage.md +2 -0
- package/docs/components/content/HotKeys.md +2 -2
- package/docs/components/content/InlineInput.md +2 -2
- package/docs/components/content/Item.md +5 -5
- package/docs/components/content/Layout.md +7 -7
- package/docs/components/content/Text.md +1 -1
- package/package.json +2 -2
- package/tasty.config.ts +53 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
//#region src/components/content/Layout/hooks/useTinyScrollbar.ts
|
|
@@ -176,32 +176,30 @@ function useTinyScrollbar(ref, enabled) {
|
|
|
176
176
|
let t10;
|
|
177
177
|
if ($[18] !== t8 || $[19] !== t9) {
|
|
178
178
|
t10 = {
|
|
179
|
-
"
|
|
180
|
-
"
|
|
179
|
+
"$scrollbar-v-top": t8,
|
|
180
|
+
"$scrollbar-v-height": t9
|
|
181
181
|
};
|
|
182
182
|
$[18] = t8;
|
|
183
183
|
$[19] = t9;
|
|
184
184
|
$[20] = t10;
|
|
185
185
|
} else t10 = $[20];
|
|
186
|
-
const t11 =
|
|
187
|
-
const t12 = `${hHandle.
|
|
188
|
-
|
|
186
|
+
const t11 = `${hHandle.left}px`;
|
|
187
|
+
const t12 = `${hHandle.width}px`;
|
|
188
|
+
let t13;
|
|
189
|
+
if ($[21] !== t11 || $[22] !== t12) {
|
|
190
|
+
t13 = {
|
|
191
|
+
"$scrollbar-h-left": t11,
|
|
192
|
+
"$scrollbar-h-width": t12
|
|
193
|
+
};
|
|
194
|
+
$[21] = t11;
|
|
195
|
+
$[22] = t12;
|
|
196
|
+
$[23] = t13;
|
|
197
|
+
} else t13 = $[23];
|
|
189
198
|
let t14;
|
|
190
|
-
if ($[
|
|
199
|
+
if ($[24] !== isAtEndX || $[25] !== isAtEndY || $[26] !== isAtStartX || $[27] !== isAtStartY || $[28] !== isScrolling || $[29] !== scrollState.hasOverflowX || $[30] !== scrollState.hasOverflowY || $[31] !== t10 || $[32] !== t13) {
|
|
191
200
|
t14 = {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
};
|
|
195
|
-
$[21] = t12;
|
|
196
|
-
$[22] = t13;
|
|
197
|
-
$[23] = t14;
|
|
198
|
-
} else t14 = $[23];
|
|
199
|
-
const t15 = t14;
|
|
200
|
-
let t16;
|
|
201
|
-
if ($[24] !== isAtEndX || $[25] !== isAtEndY || $[26] !== isAtStartX || $[27] !== isAtStartY || $[28] !== isScrolling || $[29] !== scrollState.hasOverflowX || $[30] !== scrollState.hasOverflowY || $[31] !== t11 || $[32] !== t15) {
|
|
202
|
-
t16 = {
|
|
203
|
-
handleVStyle: t11,
|
|
204
|
-
handleHStyle: t15,
|
|
201
|
+
handleVTokens: t10,
|
|
202
|
+
handleHTokens: t13,
|
|
205
203
|
hasOverflowY: scrollState.hasOverflowY,
|
|
206
204
|
hasOverflowX: scrollState.hasOverflowX,
|
|
207
205
|
isScrolling,
|
|
@@ -217,11 +215,11 @@ function useTinyScrollbar(ref, enabled) {
|
|
|
217
215
|
$[28] = isScrolling;
|
|
218
216
|
$[29] = scrollState.hasOverflowX;
|
|
219
217
|
$[30] = scrollState.hasOverflowY;
|
|
220
|
-
$[31] =
|
|
221
|
-
$[32] =
|
|
222
|
-
$[33] =
|
|
223
|
-
} else
|
|
224
|
-
return
|
|
218
|
+
$[31] = t10;
|
|
219
|
+
$[32] = t13;
|
|
220
|
+
$[33] = t14;
|
|
221
|
+
} else t14 = $[33];
|
|
222
|
+
return t14;
|
|
225
223
|
}
|
|
226
224
|
//#endregion
|
|
227
225
|
export { useTinyScrollbar };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTinyScrollbar.js","names":["CSSProperties","RefObject","useCallback","useEffect","useRef","useState","TinyScrollbarState","hasOverflowY","hasOverflowX","scrollTop","scrollLeft","scrollHeight","scrollWidth","clientHeight","clientWidth","TinyScrollbarResult","handleVStyle","handleHStyle","isScrolling","isAtStartX","isAtStartY","isAtEndX","isAtEndY","MIN_HANDLE_SIZE","SCROLL_VISIBILITY_DURATION","OVERFLOW_THRESHOLD","useTinyScrollbar","ref","enabled","$","_c","t0","Symbol","for","scrollState","setScrollState","setIsScrolling","scrollTimeoutRef","resizeFrameRef","t1","element","current","prev","updateScrollState","t2","t3","element_0","showScrollbarBriefly","clearTimeout","setTimeout","handleScroll","handleMouseEnter","addEventListener","passive","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","removeEventListener","disconnect","t4","scrollHeight_0","clientHeight_0","scrollTop_0","hasOverflowY_0","top","height","trackHeight","ratio","handleHeight","Math","max","round","availableTrack","scrollRatio","handleTop","calculateVHandle","t5","scrollWidth_0","clientWidth_0","scrollLeft_0","hasOverflowX_0","left","width","trackWidth","ratio_0","handleWidth","availableTrack_0","scrollRatio_0","handleLeft","calculateHHandle","t6","vHandle","t7","hHandle","scrollTop_1","scrollLeft_1","scrollHeight_1","scrollWidth_1","clientHeight_1","clientWidth_1","hasOverflowY_1","hasOverflowX_1","t8","t9","t10","t11","t12","t13","t14","t15","t16","_c"],"sources":["../../../../../src/components/content/Layout/hooks/useTinyScrollbar.ts"],"sourcesContent":["import {\n CSSProperties,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nexport interface TinyScrollbarState {\n hasOverflowY: boolean;\n hasOverflowX: boolean;\n scrollTop: number;\n scrollLeft: number;\n scrollHeight: number;\n scrollWidth: number;\n clientHeight: number;\n clientWidth: number;\n}\n\nexport interface TinyScrollbarResult {\n handleVStyle: CSSProperties;\n handleHStyle: CSSProperties;\n hasOverflowY: boolean;\n hasOverflowX: boolean;\n isScrolling: boolean;\n /** Whether scroll is at the start edge (top for Y, left for X) */\n isAtStartX: boolean;\n isAtStartY: boolean;\n /** Whether scroll is at the end edge (bottom for Y, right for X) */\n isAtEndX: boolean;\n isAtEndY: boolean;\n}\n\nconst MIN_HANDLE_SIZE = 20;\nconst SCROLL_VISIBILITY_DURATION = 1000;\n// Threshold to prevent overflow oscillation at boundary\nconst OVERFLOW_THRESHOLD = 2;\n\nexport function useTinyScrollbar(\n ref: RefObject<HTMLElement | null>,\n enabled: boolean,\n): TinyScrollbarResult {\n const [scrollState, setScrollState] = useState<TinyScrollbarState>({\n hasOverflowY: false,\n hasOverflowX: false,\n scrollTop: 0,\n scrollLeft: 0,\n scrollHeight: 0,\n scrollWidth: 0,\n clientHeight: 0,\n clientWidth: 0,\n });\n const [isScrolling, setIsScrolling] = useState(false);\n const scrollTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const resizeFrameRef = useRef<number | null>(null);\n\n const updateScrollState = useCallback(() => {\n const element = ref.current;\n\n if (!element) return;\n\n const {\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n } = element;\n\n // Use threshold to prevent oscillation at overflow boundary\n const hasOverflowY = scrollHeight > clientHeight + OVERFLOW_THRESHOLD;\n const hasOverflowX = scrollWidth > clientWidth + OVERFLOW_THRESHOLD;\n\n setScrollState((prev) => {\n // Only update if values actually changed to prevent unnecessary re-renders\n if (\n prev.hasOverflowY === hasOverflowY &&\n prev.hasOverflowX === hasOverflowX &&\n prev.scrollTop === scrollTop &&\n prev.scrollLeft === scrollLeft &&\n prev.scrollHeight === scrollHeight &&\n prev.scrollWidth === scrollWidth &&\n prev.clientHeight === clientHeight &&\n prev.clientWidth === clientWidth\n ) {\n return prev; // Return same reference to skip re-render\n }\n\n return {\n hasOverflowY,\n hasOverflowX,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n };\n });\n }, [ref]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const element = ref.current;\n\n if (!element) return;\n\n // Initial update\n updateScrollState();\n\n // Show scrollbar briefly and hide after delay\n const showScrollbarBriefly = () => {\n setIsScrolling(true);\n\n // Clear existing timeout\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n // Hide scrollbar after delay\n scrollTimeoutRef.current = setTimeout(() => {\n setIsScrolling(false);\n }, SCROLL_VISIBILITY_DURATION);\n };\n\n // Listen for scroll events\n const handleScroll = () => {\n updateScrollState();\n showScrollbarBriefly();\n };\n\n // Show scrollbar briefly when mouse enters the container\n const handleMouseEnter = () => {\n showScrollbarBriefly();\n };\n\n element.addEventListener('scroll', handleScroll, { passive: true });\n element.addEventListener('mouseenter', handleMouseEnter);\n\n // ResizeObserver for content size changes\n // Uses requestAnimationFrame to coalesce updates and prevent cascading events\n const resizeObserver = new ResizeObserver(() => {\n if (resizeFrameRef.current) {\n cancelAnimationFrame(resizeFrameRef.current);\n }\n\n resizeFrameRef.current = requestAnimationFrame(() => {\n updateScrollState();\n showScrollbarBriefly();\n });\n });\n\n resizeObserver.observe(element);\n\n // Note: We intentionally don't observe children to prevent\n // cascading resize events in nested layouts\n\n return () => {\n element.removeEventListener('scroll', handleScroll);\n element.removeEventListener('mouseenter', handleMouseEnter);\n resizeObserver.disconnect();\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n if (resizeFrameRef.current) {\n cancelAnimationFrame(resizeFrameRef.current);\n }\n };\n }, [enabled, ref, updateScrollState]);\n\n // Calculate vertical handle position and size\n const calculateVHandle = () => {\n const { scrollHeight, clientHeight, scrollTop, hasOverflowY } = scrollState;\n\n if (!hasOverflowY || !enabled) {\n return { top: 0, height: 0 };\n }\n\n const trackHeight = clientHeight - 2; // 1px padding on each end\n const ratio = clientHeight / scrollHeight;\n let handleHeight = Math.max(\n MIN_HANDLE_SIZE,\n Math.round(trackHeight * ratio),\n );\n const availableTrack = trackHeight - handleHeight;\n const scrollRatio =\n scrollHeight - clientHeight > 0\n ? scrollTop / (scrollHeight - clientHeight)\n : 0;\n const handleTop = 1 + Math.round(availableTrack * scrollRatio);\n\n return { top: handleTop, height: handleHeight };\n };\n\n // Calculate horizontal handle position and size\n const calculateHHandle = () => {\n const { scrollWidth, clientWidth, scrollLeft, hasOverflowX } = scrollState;\n\n if (!hasOverflowX || !enabled) {\n return { left: 0, width: 0 };\n }\n\n const trackWidth = clientWidth - 2; // 1px padding on each end\n const ratio = clientWidth / scrollWidth;\n let handleWidth = Math.max(MIN_HANDLE_SIZE, Math.round(trackWidth * ratio));\n const availableTrack = trackWidth - handleWidth;\n const scrollRatio =\n scrollWidth - clientWidth > 0\n ? scrollLeft / (scrollWidth - clientWidth)\n : 0;\n const handleLeft = 1 + Math.round(availableTrack * scrollRatio);\n\n return { left: handleLeft, width: handleWidth };\n };\n\n const vHandle = calculateVHandle();\n const hHandle = calculateHHandle();\n\n // Calculate edge detection\n const {\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n hasOverflowY,\n hasOverflowX,\n } = scrollState;\n\n // For Y axis: at start if scrollTop is 0, at end if scrolled to bottom\n const isAtStartY = !hasOverflowY || scrollTop <= 0;\n const isAtEndY =\n !hasOverflowY || scrollTop >= scrollHeight - clientHeight - 1;\n\n // For X axis: at start if scrollLeft is 0, at end if scrolled to right\n const isAtStartX = !hasOverflowX || scrollLeft <= 0;\n const isAtEndX = !hasOverflowX || scrollLeft >= scrollWidth - clientWidth - 1;\n\n return {\n handleVStyle: {\n '--scrollbar-v-top': `${vHandle.top}px`,\n '--scrollbar-v-height': `${vHandle.height}px`,\n } as CSSProperties,\n handleHStyle: {\n '--scrollbar-h-left': `${hHandle.left}px`,\n '--scrollbar-h-width': `${hHandle.width}px`,\n } as CSSProperties,\n hasOverflowY: scrollState.hasOverflowY,\n hasOverflowX: scrollState.hasOverflowX,\n isScrolling,\n isAtStartX,\n isAtStartY,\n isAtEndX,\n isAtEndY,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTinyScrollbar.js","names":["RefObject","useCallback","useEffect","useRef","useState","Tokens","TinyScrollbarState","hasOverflowY","hasOverflowX","scrollTop","scrollLeft","scrollHeight","scrollWidth","clientHeight","clientWidth","TinyScrollbarResult","handleVTokens","handleHTokens","isScrolling","isAtStartX","isAtStartY","isAtEndX","isAtEndY","MIN_HANDLE_SIZE","SCROLL_VISIBILITY_DURATION","OVERFLOW_THRESHOLD","useTinyScrollbar","ref","enabled","$","_c","t0","Symbol","for","scrollState","setScrollState","setIsScrolling","scrollTimeoutRef","resizeFrameRef","t1","element","current","prev","updateScrollState","t2","t3","element_0","showScrollbarBriefly","clearTimeout","setTimeout","handleScroll","handleMouseEnter","addEventListener","passive","resizeObserver","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","removeEventListener","disconnect","t4","scrollHeight_0","clientHeight_0","scrollTop_0","hasOverflowY_0","top","height","trackHeight","ratio","handleHeight","Math","max","round","availableTrack","scrollRatio","handleTop","calculateVHandle","t5","scrollWidth_0","clientWidth_0","scrollLeft_0","hasOverflowX_0","left","width","trackWidth","ratio_0","handleWidth","availableTrack_0","scrollRatio_0","handleLeft","calculateHHandle","t6","vHandle","t7","hHandle","scrollTop_1","scrollLeft_1","scrollHeight_1","scrollWidth_1","clientHeight_1","clientWidth_1","hasOverflowY_1","hasOverflowX_1","t8","t9","t10","t11","t12","t13","t14","_c"],"sources":["../../../../../src/components/content/Layout/hooks/useTinyScrollbar.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { Tokens } from '@tenphi/tasty';\n\nexport interface TinyScrollbarState {\n hasOverflowY: boolean;\n hasOverflowX: boolean;\n scrollTop: number;\n scrollLeft: number;\n scrollHeight: number;\n scrollWidth: number;\n clientHeight: number;\n clientWidth: number;\n}\n\nexport interface TinyScrollbarResult {\n handleVTokens: Tokens;\n handleHTokens: Tokens;\n hasOverflowY: boolean;\n hasOverflowX: boolean;\n isScrolling: boolean;\n /** Whether scroll is at the start edge (top for Y, left for X) */\n isAtStartX: boolean;\n isAtStartY: boolean;\n /** Whether scroll is at the end edge (bottom for Y, right for X) */\n isAtEndX: boolean;\n isAtEndY: boolean;\n}\n\nconst MIN_HANDLE_SIZE = 20;\nconst SCROLL_VISIBILITY_DURATION = 1000;\n// Threshold to prevent overflow oscillation at boundary\nconst OVERFLOW_THRESHOLD = 2;\n\nexport function useTinyScrollbar(\n ref: RefObject<HTMLElement | null>,\n enabled: boolean,\n): TinyScrollbarResult {\n const [scrollState, setScrollState] = useState<TinyScrollbarState>({\n hasOverflowY: false,\n hasOverflowX: false,\n scrollTop: 0,\n scrollLeft: 0,\n scrollHeight: 0,\n scrollWidth: 0,\n clientHeight: 0,\n clientWidth: 0,\n });\n const [isScrolling, setIsScrolling] = useState(false);\n const scrollTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const resizeFrameRef = useRef<number | null>(null);\n\n const updateScrollState = useCallback(() => {\n const element = ref.current;\n\n if (!element) return;\n\n const {\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n } = element;\n\n // Use threshold to prevent oscillation at overflow boundary\n const hasOverflowY = scrollHeight > clientHeight + OVERFLOW_THRESHOLD;\n const hasOverflowX = scrollWidth > clientWidth + OVERFLOW_THRESHOLD;\n\n setScrollState((prev) => {\n // Only update if values actually changed to prevent unnecessary re-renders\n if (\n prev.hasOverflowY === hasOverflowY &&\n prev.hasOverflowX === hasOverflowX &&\n prev.scrollTop === scrollTop &&\n prev.scrollLeft === scrollLeft &&\n prev.scrollHeight === scrollHeight &&\n prev.scrollWidth === scrollWidth &&\n prev.clientHeight === clientHeight &&\n prev.clientWidth === clientWidth\n ) {\n return prev; // Return same reference to skip re-render\n }\n\n return {\n hasOverflowY,\n hasOverflowX,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n };\n });\n }, [ref]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const element = ref.current;\n\n if (!element) return;\n\n // Initial update\n updateScrollState();\n\n // Show scrollbar briefly and hide after delay\n const showScrollbarBriefly = () => {\n setIsScrolling(true);\n\n // Clear existing timeout\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n // Hide scrollbar after delay\n scrollTimeoutRef.current = setTimeout(() => {\n setIsScrolling(false);\n }, SCROLL_VISIBILITY_DURATION);\n };\n\n // Listen for scroll events\n const handleScroll = () => {\n updateScrollState();\n showScrollbarBriefly();\n };\n\n // Show scrollbar briefly when mouse enters the container\n const handleMouseEnter = () => {\n showScrollbarBriefly();\n };\n\n element.addEventListener('scroll', handleScroll, { passive: true });\n element.addEventListener('mouseenter', handleMouseEnter);\n\n // ResizeObserver for content size changes\n // Uses requestAnimationFrame to coalesce updates and prevent cascading events\n const resizeObserver = new ResizeObserver(() => {\n if (resizeFrameRef.current) {\n cancelAnimationFrame(resizeFrameRef.current);\n }\n\n resizeFrameRef.current = requestAnimationFrame(() => {\n updateScrollState();\n showScrollbarBriefly();\n });\n });\n\n resizeObserver.observe(element);\n\n // Note: We intentionally don't observe children to prevent\n // cascading resize events in nested layouts\n\n return () => {\n element.removeEventListener('scroll', handleScroll);\n element.removeEventListener('mouseenter', handleMouseEnter);\n resizeObserver.disconnect();\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n if (resizeFrameRef.current) {\n cancelAnimationFrame(resizeFrameRef.current);\n }\n };\n }, [enabled, ref, updateScrollState]);\n\n // Calculate vertical handle position and size\n const calculateVHandle = () => {\n const { scrollHeight, clientHeight, scrollTop, hasOverflowY } = scrollState;\n\n if (!hasOverflowY || !enabled) {\n return { top: 0, height: 0 };\n }\n\n const trackHeight = clientHeight - 2; // 1px padding on each end\n const ratio = clientHeight / scrollHeight;\n let handleHeight = Math.max(\n MIN_HANDLE_SIZE,\n Math.round(trackHeight * ratio),\n );\n const availableTrack = trackHeight - handleHeight;\n const scrollRatio =\n scrollHeight - clientHeight > 0\n ? scrollTop / (scrollHeight - clientHeight)\n : 0;\n const handleTop = 1 + Math.round(availableTrack * scrollRatio);\n\n return { top: handleTop, height: handleHeight };\n };\n\n // Calculate horizontal handle position and size\n const calculateHHandle = () => {\n const { scrollWidth, clientWidth, scrollLeft, hasOverflowX } = scrollState;\n\n if (!hasOverflowX || !enabled) {\n return { left: 0, width: 0 };\n }\n\n const trackWidth = clientWidth - 2; // 1px padding on each end\n const ratio = clientWidth / scrollWidth;\n let handleWidth = Math.max(MIN_HANDLE_SIZE, Math.round(trackWidth * ratio));\n const availableTrack = trackWidth - handleWidth;\n const scrollRatio =\n scrollWidth - clientWidth > 0\n ? scrollLeft / (scrollWidth - clientWidth)\n : 0;\n const handleLeft = 1 + Math.round(availableTrack * scrollRatio);\n\n return { left: handleLeft, width: handleWidth };\n };\n\n const vHandle = calculateVHandle();\n const hHandle = calculateHHandle();\n\n // Calculate edge detection\n const {\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n hasOverflowY,\n hasOverflowX,\n } = scrollState;\n\n // For Y axis: at start if scrollTop is 0, at end if scrolled to bottom\n const isAtStartY = !hasOverflowY || scrollTop <= 0;\n const isAtEndY =\n !hasOverflowY || scrollTop >= scrollHeight - clientHeight - 1;\n\n // For X axis: at start if scrollLeft is 0, at end if scrolled to right\n const isAtStartX = !hasOverflowX || scrollLeft <= 0;\n const isAtEndX = !hasOverflowX || scrollLeft >= scrollWidth - clientWidth - 1;\n\n return {\n handleVTokens: {\n '$scrollbar-v-top': `${vHandle.top}px`,\n '$scrollbar-v-height': `${vHandle.height}px`,\n },\n handleHTokens: {\n '$scrollbar-h-left': `${hHandle.left}px`,\n '$scrollbar-h-width': `${hHandle.width}px`,\n },\n hasOverflowY: scrollState.hasOverflowY,\n hasOverflowX: scrollState.hasOverflowX,\n isScrolling,\n isAtStartX,\n isAtStartY,\n isAtEndX,\n isAtEndY,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import "./LayoutContext.js";
|
|
3
3
|
import { Layout as _Layout } from "./Layout.js";
|
|
4
4
|
import { LayoutContent as _LayoutContent } from "./LayoutContent.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { Text as _Text } from "./Text.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { Prism as RendererPrism, ensureYamlSqlExtensions } from "./prismSetup.js";
|
|
3
3
|
import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
|
|
4
4
|
import { forwardRef } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrismCode.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","Styles","tasty","Highlight","forwardRef","ensureYamlSqlExtensions","Prism","PreElement","as","qa","styleProps","concat","className","styles","margin","padding","overflow","scrollbar","preset","Code","display","whiteSpace","wrapped","overflowWrap","CubePrismCodeProps","style","isWrapped","code","language","isDiffCode","lines","split","additionPattern","deletionPattern","headerPattern","line","test","PrismCode","props","ref","otherProps","Error","isDiff","grammarLang","languages","diff","tokens","getLineProps","getTokenProps","color","undefined","backgroundColor","map","i","key","_lineKey","lineProps","token","_tokenKey","tokenProps","_PrismCode","displayName","Prism"],"sources":["../../../../src/components/content/PrismCode/PrismCode.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { Highlight } from 'prism-react-renderer';\nimport { forwardRef } from 'react';\n\nimport { ensureYamlSqlExtensions, Prism } from './prismSetup';\n\nimport 'prismjs/components/prism-markup.js';\nimport 'prismjs/components/prism-javascript.js';\nimport 'prismjs/components/prism-yaml.js';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-sql.js';\n\nconst PreElement = tasty({\n as: 'pre',\n qa: 'CodeBlock',\n styleProps: CONTAINER_STYLES.concat([]),\n className: 'cube-prism-code',\n styles: {\n margin: 0,\n padding: 0,\n overflow: 'auto',\n scrollbar: 'styled',\n preset: 's3',\n\n Code: {\n display: 'block',\n preset: 's3',\n // The global Prism CSS pins `white-space: pre` on\n // `code[class*=\"language-\"]`, so the wrap has to be re-declared right on\n // the `<code>` element — `pre-wrap` on the surrounding block alone does\n // not cascade past it. `overflow-wrap: anywhere` also breaks runs with no\n // spaces (URLs, tokens, identifiers) that `pre-wrap` on its own would let\n // overflow.\n whiteSpace: {\n '': 'pre',\n wrapped: 'pre-wrap',\n },\n overflowWrap: {\n '': 'normal',\n wrapped: 'anywhere',\n },\n },\n },\n});\n\nexport interface CubePrismCodeProps extends ContainerStyleProps {\n /** The CSS style map */\n style?: BaseProps['style'];\n styles?: Styles;\n /**\n * Soft-wrap long lines onto multiple lines instead of scrolling them\n * horizontally. Unbreakable runs like URLs, tokens and identifiers wrap too.\n * Useful for error messages and logs.\n */\n isWrapped?: boolean;\n /** The code snippet */\n code?: string;\n /** The language of the code snippet */\n language?:\n | 'javascript'\n | 'css'\n | 'sql'\n | 'less'\n | 'html'\n | 'json'\n | 'yaml'\n | 'bash'\n | 'editorconfig'\n | 'php'\n | 'python'\n | 'typescript';\n}\n\nfunction isDiffCode(code: string): boolean {\n // Split the code into lines\n const lines = code.split('\\n');\n\n // Define patterns to check for diff characteristics\n const additionPattern = /^\\+/; // Lines starting with '+'\n const deletionPattern = /^-+/; // Lines starting with '-'\n const headerPattern = /^(diff --git|---|\\+\\+\\+)/; // Diff headers\n\n // Check each line for diff-specific patterns\n for (const line of lines) {\n if (\n additionPattern.test(line) ||\n deletionPattern.test(line) ||\n headerPattern.test(line)\n ) {\n return true; // Code matches a diff pattern\n }\n }\n\n // No diff-specific patterns found\n return false;\n}\n\nfunction PrismCode(props: CubePrismCodeProps, ref) {\n let { code = '', language = 'javascript', isWrapped, ...otherProps } = props;\n\n if (!code) {\n code = '';\n }\n\n if (typeof code !== 'string' && code) {\n throw new Error(\n 'UIKit: code prop should be a string in PrismCode. Found: ' + typeof code,\n );\n }\n\n const isDiff = isDiffCode(code || '');\n\n const grammarLang = isDiff ? `diff-${language}` : language;\n\n // Ensure the diff language exists before rendering\n if (isDiff && !Prism.languages[grammarLang]) {\n Prism.languages[grammarLang] = Prism.languages.diff;\n }\n\n // Ensure YAML SQL extensions are applied for YAML content\n if (language === 'yaml' || grammarLang === 'diff-yaml') {\n ensureYamlSqlExtensions();\n }\n\n return (\n <PreElement ref={ref} {...otherProps} mods={{ wrapped: isWrapped }}>\n <Highlight prism={Prism} code={code} language={grammarLang as any}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => {\n return (\n <code\n data-element=\"Code\"\n className={`${className}${isDiff ? ' diff-highlight' : ''}`}\n style={{\n ...style,\n color: undefined,\n backgroundColor: undefined,\n }}\n >\n {tokens.map((line, i) => {\n const { key: _lineKey, ...lineProps } = getLineProps({\n line,\n key: i,\n });\n\n return (\n <span\n key={i}\n {...lineProps}\n style={{\n ...lineProps.style,\n color: undefined,\n }}\n >\n {line.map((token, key) => {\n const { key: _tokenKey, ...tokenProps } = getTokenProps({\n token,\n key,\n });\n\n return (\n <span\n key={key}\n {...tokenProps}\n style={{\n ...tokenProps.style,\n color: undefined,\n backgroundColor: undefined,\n }}\n />\n );\n })}\n {'\\n'}\n </span>\n );\n })}\n </code>\n );\n }}\n </Highlight>\n </PreElement>\n );\n}\n\n/**\n * Code block with syntax highlighting\n */\nconst _PrismCode = forwardRef(PrismCode);\n\n_PrismCode.displayName = 'PrismCode';\n\nexport { _PrismCode as PrismCode };\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAMS,aAAaL,MAAM;CACvBM,IAAI;CACJC,IAAI;CACJC,YAAYX,iBAAiBY,OAAO,CAAA,CAAE;CACtCC,WAAW;CACXC,QAAQ;EACNC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,WAAW;EACXC,QAAQ;EAERC,MAAM;GACJC,SAAS;GACTF,QAAQ;GAORG,YAAY;IACV,IAAI;IACJC,SAAS;GACX;GACAC,cAAc;IACZ,IAAI;IACJD,SAAS;GACX;EACF;CACF;AACF,CAAC;AA8BD,SAASO,WAAWF,MAAuB;CAEzC,MAAMG,QAAQH,KAAKI,MAAM,IAAI;CAG7B,MAAMC,kBAAkB;CACxB,MAAMC,kBAAkB;CACxB,MAAMC,gBAAgB;CAGtB,KAAK,MAAMC,QAAQL,OACjB,IACEE,gBAAgBI,KAAKD,IAAI,KACzBF,gBAAgBG,KAAKD,IAAI,KACzBD,cAAcE,KAAKD,IAAI,GAEvB,OAAO;CAKX,OAAO;AACT;AAEA,SAASE,UAAUC,OAA2BC,KAAK;CACjD,IAAI,EAAEZ,OAAO,IAAIC,WAAW,cAAcF,WAAW,GAAGc,eAAeF;CAEvE,IAAI,CAACX,MACHA,OAAO;CAGT,IAAI,OAAOA,SAAS,YAAYA,MAC9B,MAAM,IAAIc,MACR,8DAA8D,OAAOd,IACvE;CAGF,MAAMe,SAASb,WAAWF,QAAQ,EAAE;CAEpC,MAAMgB,cAAcD,SAAS,QAAQd,aAAaA;CAGlD,IAAIc,UAAU,CAACpC,cAAMsC,UAAUD,cAC7BrC,cAAMsC,UAAUD,eAAerC,cAAMsC,UAAUC;CAIjD,IAAIjB,aAAa,UAAUe,gBAAgB,aACzCtC,wBAAwB;CAG1B,OACE,oBAAC,YAAD;EAAiBkC;EAAK,GAAIC;EAAY,MAAM,EAAElB,SAASI,UAAU;EAC/D,UAAA,oBAAC,WAAD;GAAW,OAAOpB;GAAaqB;GAAM,UAAUgB;GAC3C,WAAA,EAAE/B,WAAWa,OAAOqB,QAAQC,cAAcC,oBAAoB;IAC9D,OACE,oBAAC,QAAD;KACE,gBAAa;KACb,WAAW,GAAGpC,YAAY8B,SAAS,oBAAoB;
|
|
1
|
+
{"version":3,"file":"PrismCode.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","Styles","tasty","Highlight","forwardRef","ensureYamlSqlExtensions","Prism","PreElement","as","qa","styleProps","concat","className","styles","margin","padding","overflow","scrollbar","preset","Code","display","whiteSpace","wrapped","overflowWrap","CubePrismCodeProps","style","isWrapped","code","language","isDiffCode","lines","split","additionPattern","deletionPattern","headerPattern","line","test","PrismCode","props","ref","otherProps","Error","isDiff","grammarLang","languages","diff","tokens","getLineProps","getTokenProps","color","undefined","backgroundColor","map","i","key","_lineKey","lineProps","token","_tokenKey","tokenProps","_PrismCode","displayName","Prism"],"sources":["../../../../src/components/content/PrismCode/PrismCode.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { Highlight } from 'prism-react-renderer';\nimport { forwardRef } from 'react';\n\nimport { ensureYamlSqlExtensions, Prism } from './prismSetup';\n\nimport 'prismjs/components/prism-markup.js';\nimport 'prismjs/components/prism-javascript.js';\nimport 'prismjs/components/prism-yaml.js';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-sql.js';\n\nconst PreElement = tasty({\n as: 'pre',\n qa: 'CodeBlock',\n styleProps: CONTAINER_STYLES.concat([]),\n className: 'cube-prism-code',\n styles: {\n margin: 0,\n padding: 0,\n overflow: 'auto',\n scrollbar: 'styled',\n preset: 's3',\n\n Code: {\n display: 'block',\n preset: 's3',\n // The global Prism CSS pins `white-space: pre` on\n // `code[class*=\"language-\"]`, so the wrap has to be re-declared right on\n // the `<code>` element — `pre-wrap` on the surrounding block alone does\n // not cascade past it. `overflow-wrap: anywhere` also breaks runs with no\n // spaces (URLs, tokens, identifiers) that `pre-wrap` on its own would let\n // overflow.\n whiteSpace: {\n '': 'pre',\n wrapped: 'pre-wrap',\n },\n overflowWrap: {\n '': 'normal',\n wrapped: 'anywhere',\n },\n },\n },\n});\n\nexport interface CubePrismCodeProps extends ContainerStyleProps {\n /** The CSS style map */\n style?: BaseProps['style'];\n styles?: Styles;\n /**\n * Soft-wrap long lines onto multiple lines instead of scrolling them\n * horizontally. Unbreakable runs like URLs, tokens and identifiers wrap too.\n * Useful for error messages and logs.\n */\n isWrapped?: boolean;\n /** The code snippet */\n code?: string;\n /** The language of the code snippet */\n language?:\n | 'javascript'\n | 'css'\n | 'sql'\n | 'less'\n | 'html'\n | 'json'\n | 'yaml'\n | 'bash'\n | 'editorconfig'\n | 'php'\n | 'python'\n | 'typescript';\n}\n\nfunction isDiffCode(code: string): boolean {\n // Split the code into lines\n const lines = code.split('\\n');\n\n // Define patterns to check for diff characteristics\n const additionPattern = /^\\+/; // Lines starting with '+'\n const deletionPattern = /^-+/; // Lines starting with '-'\n const headerPattern = /^(diff --git|---|\\+\\+\\+)/; // Diff headers\n\n // Check each line for diff-specific patterns\n for (const line of lines) {\n if (\n additionPattern.test(line) ||\n deletionPattern.test(line) ||\n headerPattern.test(line)\n ) {\n return true; // Code matches a diff pattern\n }\n }\n\n // No diff-specific patterns found\n return false;\n}\n\nfunction PrismCode(props: CubePrismCodeProps, ref) {\n let { code = '', language = 'javascript', isWrapped, ...otherProps } = props;\n\n if (!code) {\n code = '';\n }\n\n if (typeof code !== 'string' && code) {\n throw new Error(\n 'UIKit: code prop should be a string in PrismCode. Found: ' + typeof code,\n );\n }\n\n const isDiff = isDiffCode(code || '');\n\n const grammarLang = isDiff ? `diff-${language}` : language;\n\n // Ensure the diff language exists before rendering\n if (isDiff && !Prism.languages[grammarLang]) {\n Prism.languages[grammarLang] = Prism.languages.diff;\n }\n\n // Ensure YAML SQL extensions are applied for YAML content\n if (language === 'yaml' || grammarLang === 'diff-yaml') {\n ensureYamlSqlExtensions();\n }\n\n return (\n <PreElement ref={ref} {...otherProps} mods={{ wrapped: isWrapped }}>\n <Highlight prism={Prism} code={code} language={grammarLang as any}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => {\n return (\n <code\n data-element=\"Code\"\n className={`${className}${isDiff ? ' diff-highlight' : ''}`}\n // oxlint-disable-next-line react/forbid-dom-props -- prism-react-renderer supplies its theme styles; we only clear its colors\n style={{\n ...style,\n color: undefined,\n backgroundColor: undefined,\n }}\n >\n {tokens.map((line, i) => {\n const { key: _lineKey, ...lineProps } = getLineProps({\n line,\n key: i,\n });\n\n return (\n <span\n key={i}\n {...lineProps}\n // oxlint-disable-next-line react/forbid-dom-props -- prism-react-renderer supplies its theme styles; we only clear its colors\n style={{\n ...lineProps.style,\n color: undefined,\n }}\n >\n {line.map((token, key) => {\n const { key: _tokenKey, ...tokenProps } = getTokenProps({\n token,\n key,\n });\n\n return (\n <span\n key={key}\n {...tokenProps}\n // oxlint-disable-next-line react/forbid-dom-props -- prism-react-renderer supplies its theme styles; we only clear its colors\n style={{\n ...tokenProps.style,\n color: undefined,\n backgroundColor: undefined,\n }}\n />\n );\n })}\n {'\\n'}\n </span>\n );\n })}\n </code>\n );\n }}\n </Highlight>\n </PreElement>\n );\n}\n\n/**\n * Code block with syntax highlighting\n */\nconst _PrismCode = forwardRef(PrismCode);\n\n_PrismCode.displayName = 'PrismCode';\n\nexport { _PrismCode as PrismCode };\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAMS,aAAaL,MAAM;CACvBM,IAAI;CACJC,IAAI;CACJC,YAAYX,iBAAiBY,OAAO,CAAA,CAAE;CACtCC,WAAW;CACXC,QAAQ;EACNC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,WAAW;EACXC,QAAQ;EAERC,MAAM;GACJC,SAAS;GACTF,QAAQ;GAORG,YAAY;IACV,IAAI;IACJC,SAAS;GACX;GACAC,cAAc;IACZ,IAAI;IACJD,SAAS;GACX;EACF;CACF;AACF,CAAC;AA8BD,SAASO,WAAWF,MAAuB;CAEzC,MAAMG,QAAQH,KAAKI,MAAM,IAAI;CAG7B,MAAMC,kBAAkB;CACxB,MAAMC,kBAAkB;CACxB,MAAMC,gBAAgB;CAGtB,KAAK,MAAMC,QAAQL,OACjB,IACEE,gBAAgBI,KAAKD,IAAI,KACzBF,gBAAgBG,KAAKD,IAAI,KACzBD,cAAcE,KAAKD,IAAI,GAEvB,OAAO;CAKX,OAAO;AACT;AAEA,SAASE,UAAUC,OAA2BC,KAAK;CACjD,IAAI,EAAEZ,OAAO,IAAIC,WAAW,cAAcF,WAAW,GAAGc,eAAeF;CAEvE,IAAI,CAACX,MACHA,OAAO;CAGT,IAAI,OAAOA,SAAS,YAAYA,MAC9B,MAAM,IAAIc,MACR,8DAA8D,OAAOd,IACvE;CAGF,MAAMe,SAASb,WAAWF,QAAQ,EAAE;CAEpC,MAAMgB,cAAcD,SAAS,QAAQd,aAAaA;CAGlD,IAAIc,UAAU,CAACpC,cAAMsC,UAAUD,cAC7BrC,cAAMsC,UAAUD,eAAerC,cAAMsC,UAAUC;CAIjD,IAAIjB,aAAa,UAAUe,gBAAgB,aACzCtC,wBAAwB;CAG1B,OACE,oBAAC,YAAD;EAAiBkC;EAAK,GAAIC;EAAY,MAAM,EAAElB,SAASI,UAAU;EAC/D,UAAA,oBAAC,WAAD;GAAW,OAAOpB;GAAaqB;GAAM,UAAUgB;GAC3C,WAAA,EAAE/B,WAAWa,OAAOqB,QAAQC,cAAcC,oBAAoB;IAC9D,OACE,oBAAC,QAAD;KACE,gBAAa;KACb,WAAW,GAAGpC,YAAY8B,SAAS,oBAAoB;KAEvD,OAAO;MACL,GAAGjB;MACHwB,OAAOC,KAAAA;MACPC,iBAAiBD,KAAAA;KACnB;KAECJ,UAAAA,OAAOM,KAAKjB,MAAMkB,MAAM;MACvB,MAAM,EAAEC,KAAKC,UAAU,GAAGC,cAAcT,aAAa;OACnDZ;OACAmB,KAAKD;MACP,CAAC;MAED,OACE,qBAAC,QAAD;OAEE,GAAIG;OAEJ,OAAO;QACL,GAAGA,UAAU/B;QACbwB,OAAOC,KAAAA;OACT;OAPF,UAAA,CASGf,KAAKiB,KAAKK,OAAOH,QAAQ;QACxB,MAAM,EAAEA,KAAKI,WAAW,GAAGC,eAAeX,cAAc;SACtDS;SACAH;QACF,CAAC;QAED,OACE,oBAAC,QAAD;SAEE,GAAIK;SAEJ,OAAO;UACL,GAAGA,WAAWlC;UACdwB,OAAOC,KAAAA;UACPC,iBAAiBD,KAAAA;SACnB;QAAE,GAPGI,GAOH;OAGR,CAAC,GACA,IACG;MA5BCD,GAAAA,CA4BD;KAEV,CAAC;IACG,CAAA;GAEV;EACS,CAAA;CACD,CAAA;AAEhB;;;;AAKA,MAAMO,aAAaxD,WAAWiC,SAAS;AAEvCuB,WAAWC,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { Prism as RendererPrism } from "prism-react-renderer";
|
|
3
3
|
//#region src/components/content/PrismCode/prismSetup.tsx
|
|
4
4
|
globalThis.Prism = RendererPrism;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prismSetup.js","names":["Prism","RendererPrism","globalThis","languages","diff","coord","PREFIXES","unchanged","Object","keys","forEach","name","prefix","alias","test","push","exec","pattern","RegExp","inside","line","lookbehind","defineProperty","value","LANGUAGE_REGEX","HTML_TAG","HTML_LINE","source","replace","warningLogged","hooks","add","env","lang","language","grammar","plugins","autoloader","console","warn","langMatch","isGenericDiff","diffLanguage","diffGrammar","enhance","tokens","i","length","t","Array","isArray","content","type","tokenize","ensureYamlSqlExtensions","yaml","sql","insertBefore","indent"],"sources":["../../../../src/components/content/PrismCode/prismSetup.tsx"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n// This file patches Prism with extra languages & plugins for prism-react-renderer\n// Its content is mostly vanilla JS copied from Prism, so type-checking is disabled above.\nimport { Prism as RendererPrism } from 'prism-react-renderer';\n\n// make the instance globally visible for other plugins (optional)\n(globalThis as any).Prism = RendererPrism;\n\n(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m,\n // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m,\n ],\n\n // deleted, inserted, unchanged, diff\n };\n\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!',\n };\n\n // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name];\n\n var alias = [];\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0]);\n }\n if (name === 'diff') {\n alias.push('bold');\n }\n\n Prism.languages.diff[name] = {\n pattern: RegExp('^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+', 'm'),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true,\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0],\n },\n },\n };\n });\n\n // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES,\n });\n})(RendererPrism);\n\n(function (Prism) {\n if (typeof Prism === 'undefined') {\n return;\n }\n\n var LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n var HTML_TAG =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/g;\n //this will match a line plus the line break while ignoring the line breaks HTML tags may contain.\n var HTML_LINE = RegExp(\n /(?:__|[^\\r\\n<])*(?:\\r\\n?|\\n|(?:__|[^\\r\\n<])(?![^\\r\\n]))/.source.replace(\n /__/g,\n function () {\n return HTML_TAG.source;\n },\n ),\n 'gi',\n );\n\n var warningLogged = false;\n\n Prism.hooks.add('before-sanity-check', function (env) {\n var lang = env.language;\n if (LANGUAGE_REGEX.test(lang) && !env.grammar) {\n env.grammar = Prism.languages[lang] = Prism.languages.diff;\n }\n });\n Prism.hooks.add('before-tokenize', function (env) {\n if (!warningLogged && !Prism.languages.diff && !Prism.plugins.autoloader) {\n warningLogged = true;\n console.warn(\n \"Prism's Diff Highlight plugin requires the Diff language definition (prism-diff.js).\" +\n \"Make sure the language definition is loaded or use Prism's Autoloader plugin.\",\n );\n }\n\n var lang = env.language;\n if (LANGUAGE_REGEX.test(lang) && !Prism.languages[lang]) {\n Prism.languages[lang] = Prism.languages.diff;\n }\n\n // Always ensure diff-* languages use the diff grammar for tokenization\n if (LANGUAGE_REGEX.test(lang)) {\n env.grammar = Prism.languages.diff;\n }\n });\n\n /**\n * The original diff-highlight plugin relies on the `wrap` hook which is\n * executed during `Token.stringify()`. `prism-react-renderer`, however,\n * never calls `Token.stringify()` – it works directly with Prism tokens.\n * This means the original plugin is effectively a no-op and nested\n * highlighting inside diff blocks (e.g. `diff-sql`) is lost.\n *\n * To make the plugin compatible with prism-react-renderer we re-implement\n * the essential logic inside an `after-tokenize` hook. The algorithm\n * iterates over all tokens, detects diff line tokens (\"inserted-sign\",\n * \"deleted-sign\", …) and replaces their textual content with a\n * token sequence consisting of:\n * 1. a `prefix` token (so \"+\" or \"-\" can still be styled)\n * 2. the result of tokenising the rest of the line using the proper\n * grammar (sql, js, …)\n *\n * The end result is *pure tokens*, so prism-react-renderer can render\n * them just like any other language.\n */\n\n Prism.hooks.add('after-tokenize', function (env) {\n var langMatch = LANGUAGE_REGEX.exec(env.language || '');\n var isGenericDiff = env.language === 'diff';\n\n if (!isGenericDiff && !langMatch) {\n return; // not a diff language – skip\n }\n\n var diffLanguage = isGenericDiff ? null : langMatch[1];\n var diffGrammar = diffLanguage ? Prism.languages[diffLanguage] : null;\n if (!diffGrammar && diffLanguage === 'js') {\n diffGrammar = Prism.languages['javascript'];\n }\n\n var PREFIXES = Prism.languages.diff && Prism.languages.diff.PREFIXES;\n if (!PREFIXES) return;\n\n /**\n * Recursively walk all tokens. Whenever we encounter a token of type\n * `line` (those are produced by the built-in diff grammar for the\n * part **after** the +/-/!/␠ prefix) we re-tokenise its text with the\n * real language grammar (sql, js, …) and replace the string with the\n * resulting token array. This keeps the original diff token tree –\n * including the `prefix` sub-token – intact while adding proper\n * syntax colours to the remainder of the line.\n */\n function enhance(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n var t = tokens[i];\n\n if (typeof t === 'string') continue;\n\n if (Array.isArray(t.content)) {\n enhance(t.content);\n } else if (t.type === 'line' && typeof t.content === 'string') {\n if (diffGrammar) {\n t.content = Prism.tokenize(t.content, diffGrammar);\n }\n }\n }\n }\n\n enhance(env.tokens);\n });\n})(RendererPrism);\n\n// Function to ensure YAML SQL extensions are applied\nfunction ensureYamlSqlExtensions() {\n // Check if extensions are already applied\n if (\n RendererPrism.languages.yaml &&\n RendererPrism.languages.yaml['sql-scalar']\n ) {\n return; // Already applied\n }\n\n // Apply extensions if both YAML and SQL grammars are available\n if (RendererPrism.languages.yaml && RendererPrism.languages.sql) {\n // Insert SQL patterns before existing YAML patterns for higher priority\n RendererPrism.languages.insertBefore('yaml', 'key', {\n 'sql-inline': {\n pattern: /((?:^|\\n)\\s*sql\\s*:\\s*)([^\\n\\r|>]+)/,\n lookbehind: true,\n inside: RendererPrism.languages.sql,\n },\n });\n\n // Handle multiline SQL blocks with proper indentation\n RendererPrism.languages.insertBefore('yaml', 'key', {\n 'sql-multiline': {\n pattern:\n /((?:^|\\n)\\s*sql\\s*:\\s*[|>][-+]?\\s*\\n)((?:\\s{2,}[^\\n\\r]+(?:\\n|$))+)/,\n lookbehind: true,\n inside: {\n 'sql-content': {\n pattern: /^(\\s+)(.+)/gm,\n inside: {\n indent: /^\\s+/,\n 'sql-code': {\n pattern: /.+/,\n inside: RendererPrism.languages.sql,\n },\n },\n },\n },\n },\n });\n\n // Handle YAML scalar content that follows sql: > or sql: | indicators\n RendererPrism.languages.insertBefore('yaml', 'scalar', {\n 'sql-scalar': {\n pattern:\n /^\\s*(SELECT|INSERT|UPDATE|DELETE|WITH|CREATE|DROP|ALTER|UNION|FROM|WHERE|JOIN|GROUP|ORDER|HAVING)[\\s\\S]*$/im,\n inside: RendererPrism.languages.sql,\n },\n });\n }\n}\n\nexport { RendererPrism as Prism };\nexport { ensureYamlSqlExtensions };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prismSetup.js","names":["Prism","RendererPrism","globalThis","languages","diff","coord","PREFIXES","unchanged","Object","keys","forEach","name","prefix","alias","test","push","exec","pattern","RegExp","inside","line","lookbehind","defineProperty","value","LANGUAGE_REGEX","HTML_TAG","HTML_LINE","source","replace","warningLogged","hooks","add","env","lang","language","grammar","plugins","autoloader","console","warn","langMatch","isGenericDiff","diffLanguage","diffGrammar","enhance","tokens","i","length","t","Array","isArray","content","type","tokenize","ensureYamlSqlExtensions","yaml","sql","insertBefore","indent"],"sources":["../../../../src/components/content/PrismCode/prismSetup.tsx"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable -- mostly vanilla Prism code, kept as upstream wrote it */\n// This file patches Prism with extra languages & plugins for prism-react-renderer\n// Its content is mostly vanilla JS copied from Prism, so type-checking is disabled above.\nimport { Prism as RendererPrism } from 'prism-react-renderer';\n\n// make the instance globally visible for other plugins (optional)\n(globalThis as any).Prism = RendererPrism;\n\n(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m,\n // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m,\n ],\n\n // deleted, inserted, unchanged, diff\n };\n\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!',\n };\n\n // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name];\n\n var alias = [];\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0]);\n }\n if (name === 'diff') {\n alias.push('bold');\n }\n\n Prism.languages.diff[name] = {\n pattern: RegExp('^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+', 'm'),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true,\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0],\n },\n },\n };\n });\n\n // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES,\n });\n})(RendererPrism);\n\n(function (Prism) {\n if (typeof Prism === 'undefined') {\n return;\n }\n\n var LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n var HTML_TAG =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/g;\n //this will match a line plus the line break while ignoring the line breaks HTML tags may contain.\n var HTML_LINE = RegExp(\n /(?:__|[^\\r\\n<])*(?:\\r\\n?|\\n|(?:__|[^\\r\\n<])(?![^\\r\\n]))/.source.replace(\n /__/g,\n function () {\n return HTML_TAG.source;\n },\n ),\n 'gi',\n );\n\n var warningLogged = false;\n\n Prism.hooks.add('before-sanity-check', function (env) {\n var lang = env.language;\n if (LANGUAGE_REGEX.test(lang) && !env.grammar) {\n env.grammar = Prism.languages[lang] = Prism.languages.diff;\n }\n });\n Prism.hooks.add('before-tokenize', function (env) {\n if (!warningLogged && !Prism.languages.diff && !Prism.plugins.autoloader) {\n warningLogged = true;\n console.warn(\n \"Prism's Diff Highlight plugin requires the Diff language definition (prism-diff.js).\" +\n \"Make sure the language definition is loaded or use Prism's Autoloader plugin.\",\n );\n }\n\n var lang = env.language;\n if (LANGUAGE_REGEX.test(lang) && !Prism.languages[lang]) {\n Prism.languages[lang] = Prism.languages.diff;\n }\n\n // Always ensure diff-* languages use the diff grammar for tokenization\n if (LANGUAGE_REGEX.test(lang)) {\n env.grammar = Prism.languages.diff;\n }\n });\n\n /**\n * The original diff-highlight plugin relies on the `wrap` hook which is\n * executed during `Token.stringify()`. `prism-react-renderer`, however,\n * never calls `Token.stringify()` – it works directly with Prism tokens.\n * This means the original plugin is effectively a no-op and nested\n * highlighting inside diff blocks (e.g. `diff-sql`) is lost.\n *\n * To make the plugin compatible with prism-react-renderer we re-implement\n * the essential logic inside an `after-tokenize` hook. The algorithm\n * iterates over all tokens, detects diff line tokens (\"inserted-sign\",\n * \"deleted-sign\", …) and replaces their textual content with a\n * token sequence consisting of:\n * 1. a `prefix` token (so \"+\" or \"-\" can still be styled)\n * 2. the result of tokenising the rest of the line using the proper\n * grammar (sql, js, …)\n *\n * The end result is *pure tokens*, so prism-react-renderer can render\n * them just like any other language.\n */\n\n Prism.hooks.add('after-tokenize', function (env) {\n var langMatch = LANGUAGE_REGEX.exec(env.language || '');\n var isGenericDiff = env.language === 'diff';\n\n if (!isGenericDiff && !langMatch) {\n return; // not a diff language – skip\n }\n\n var diffLanguage = isGenericDiff ? null : langMatch[1];\n var diffGrammar = diffLanguage ? Prism.languages[diffLanguage] : null;\n if (!diffGrammar && diffLanguage === 'js') {\n diffGrammar = Prism.languages['javascript'];\n }\n\n var PREFIXES = Prism.languages.diff && Prism.languages.diff.PREFIXES;\n if (!PREFIXES) return;\n\n /**\n * Recursively walk all tokens. Whenever we encounter a token of type\n * `line` (those are produced by the built-in diff grammar for the\n * part **after** the +/-/!/␠ prefix) we re-tokenise its text with the\n * real language grammar (sql, js, …) and replace the string with the\n * resulting token array. This keeps the original diff token tree –\n * including the `prefix` sub-token – intact while adding proper\n * syntax colours to the remainder of the line.\n */\n function enhance(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n var t = tokens[i];\n\n if (typeof t === 'string') continue;\n\n if (Array.isArray(t.content)) {\n enhance(t.content);\n } else if (t.type === 'line' && typeof t.content === 'string') {\n if (diffGrammar) {\n t.content = Prism.tokenize(t.content, diffGrammar);\n }\n }\n }\n }\n\n enhance(env.tokens);\n });\n})(RendererPrism);\n\n// Function to ensure YAML SQL extensions are applied\nfunction ensureYamlSqlExtensions() {\n // Check if extensions are already applied\n if (\n RendererPrism.languages.yaml &&\n RendererPrism.languages.yaml['sql-scalar']\n ) {\n return; // Already applied\n }\n\n // Apply extensions if both YAML and SQL grammars are available\n if (RendererPrism.languages.yaml && RendererPrism.languages.sql) {\n // Insert SQL patterns before existing YAML patterns for higher priority\n RendererPrism.languages.insertBefore('yaml', 'key', {\n 'sql-inline': {\n pattern: /((?:^|\\n)\\s*sql\\s*:\\s*)([^\\n\\r|>]+)/,\n lookbehind: true,\n inside: RendererPrism.languages.sql,\n },\n });\n\n // Handle multiline SQL blocks with proper indentation\n RendererPrism.languages.insertBefore('yaml', 'key', {\n 'sql-multiline': {\n pattern:\n /((?:^|\\n)\\s*sql\\s*:\\s*[|>][-+]?\\s*\\n)((?:\\s{2,}[^\\n\\r]+(?:\\n|$))+)/,\n lookbehind: true,\n inside: {\n 'sql-content': {\n pattern: /^(\\s+)(.+)/gm,\n inside: {\n indent: /^\\s+/,\n 'sql-code': {\n pattern: /.+/,\n inside: RendererPrism.languages.sql,\n },\n },\n },\n },\n },\n });\n\n // Handle YAML scalar content that follows sql: > or sql: | indicators\n RendererPrism.languages.insertBefore('yaml', 'scalar', {\n 'sql-scalar': {\n pattern:\n /^\\s*(SELECT|INSERT|UPDATE|DELETE|WITH|CREATE|DROP|ALTER|UNION|FROM|WHERE|JOIN|GROUP|ORDER|HAVING)[\\s\\S]*$/im,\n inside: RendererPrism.languages.sql,\n },\n });\n }\n}\n\nexport { RendererPrism as Prism };\nexport { ensureYamlSqlExtensions };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { PrismCode as _PrismCode } from "../PrismCode/PrismCode.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
3
3
|
import { Space } from "../../layout/Space.js";
|
|
4
4
|
import { Grid } from "../../layout/Grid.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Item as _Item } from "../Item/Item.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { useSlotProps } from "../../utils/react/Slots.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { TEXT_DEFAULT_STYLES, TEXT_PROP_MAP, useTextProps } from "../Text.js";
|
|
4
4
|
import { highlightText } from "../highlightText.js";
|
|
@@ -26,10 +26,7 @@ const TextItemElement = tasty({
|
|
|
26
26
|
styles: TEXT_DEFAULT_STYLES,
|
|
27
27
|
variants: {
|
|
28
28
|
plain: TEXT_ITEM_STYLES,
|
|
29
|
-
table: {
|
|
30
|
-
...TEXT_ITEM_STYLES,
|
|
31
|
-
preset: "t3"
|
|
32
|
-
}
|
|
29
|
+
table: mergeStyles(TEXT_ITEM_STYLES, { preset: "t3" })
|
|
33
30
|
}
|
|
34
31
|
});
|
|
35
32
|
const TEXT_ITEM_STYLE_KEYS = Object.keys(TEXT_ITEM_STYLES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextItem.js","names":["BASE_STYLES","COLOR_STYLES","filterBaseProps","mergeStyles","Styles","tasty","TEXT_STYLES","forwardRef","HTMLAttributes","Ref","RefObject","useEffectEvent","useLayoutEffect","PositionProps","extractStyles","highlightText","CubeTextProps","TEXT_DEFAULT_STYLES","TEXT_PROP_MAP","useTextProps","AutoTooltipValue","useAutoTooltip","STYLE_LIST","const","CubeTextItemProps","Omit","highlight","highlightCaseSensitive","highlightStyles","tooltip","tooltipPlacement","TEXT_ITEM_STYLES","display","verticalAlign","width","whiteSpace","overflow","textOverflow","TextItemElement","as","styles","variants","plain","table","preset","TEXT_ITEM_STYLE_KEYS","Object","keys","Array","getStaticVariant","count","length","every","key","TextItemContent","t0","$","_c","handleRef","onAppearanceCommit","t1","t2","t3","t4","t5","t6","ref","labelRef","tooltipRef","t7","props","t8","element","current","undefined","qa","textProps","variant","shouldMeasure","t9","refreshOverflow","t10","t11","t12","t13","TextItem","HTMLElement","children","restProps","renderWithTooltip","isAutoTooltipEnabled","scheduleOverflowCheck","processedChildren","renderElement","tooltipTriggerProps","eventProps","displayName","_c"],"sources":["../../../../src/components/content/TextItem/TextItem.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n COLOR_STYLES,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n HTMLAttributes,\n Ref,\n RefObject,\n useEffectEvent,\n useLayoutEffect,\n} from 'react';\nimport { PositionProps } from 'react-aria';\n\nimport { extractStyles } from '../../../utils/styles';\nimport { highlightText } from '../highlightText';\nimport {\n CubeTextProps,\n TEXT_DEFAULT_STYLES,\n TEXT_PROP_MAP,\n useTextProps,\n} from '../Text';\nimport { AutoTooltipValue, useAutoTooltip } from '../use-auto-tooltip';\n\nconst STYLE_LIST = [...BASE_STYLES, ...TEXT_STYLES, ...COLOR_STYLES] as const;\n\n/**\n * TextItem truncates to one line with an ellipsis, so Text's `ellipsis` and\n * `nowrap` have nothing to switch.\n */\nexport interface CubeTextItemProps extends Omit<\n CubeTextProps,\n 'ellipsis' | 'nowrap'\n> {\n /**\n * String to highlight within children.\n * Only works when children is a plain string.\n */\n highlight?: string;\n /**\n * Whether highlight matching is case-sensitive.\n * @default false\n */\n highlightCaseSensitive?: boolean;\n /**\n * Custom styles for highlighted text.\n */\n highlightStyles?: Styles;\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n * @default true\n */\n tooltip?: AutoTooltipValue;\n /**\n * Default tooltip placement.\n * @default \"top\"\n */\n tooltipPlacement?: PositionProps['placement'];\n}\n\nconst TEXT_ITEM_STYLES = {\n display: 'inline-block',\n verticalAlign: 'bottom',\n width: 'max 100%',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n} satisfies Styles;\n\nconst TextItemElement = tasty({\n as: 'span',\n styles: TEXT_DEFAULT_STYLES,\n variants: {\n plain: TEXT_ITEM_STYLES,\n table: { ...TEXT_ITEM_STYLES, preset: 't3' },\n },\n});\n\nconst TEXT_ITEM_STYLE_KEYS = Object.keys(TEXT_ITEM_STYLES) as Array<\n keyof typeof TEXT_ITEM_STYLES\n>;\n\nfunction getStaticVariant(styles: Styles) {\n const count = Object.keys(styles).length;\n\n if (\n !TEXT_ITEM_STYLE_KEYS.every((key) => styles[key] === TEXT_ITEM_STYLES[key])\n ) {\n return;\n }\n\n if (count === TEXT_ITEM_STYLE_KEYS.length) return 'plain';\n if (count === TEXT_ITEM_STYLE_KEYS.length + 1 && styles.preset === 't3')\n return 'table';\n}\n\n/** Own the DOM ref outside the tooltip's render prop so Compiler can retain it. */\nfunction TextItemContent({\n ref,\n labelRef,\n tooltipRef,\n onAppearanceCommit,\n ...props\n}: CubeTextProps & {\n ref?: Ref<HTMLElement>;\n labelRef: (element: HTMLElement | null) => void;\n tooltipRef?: RefObject<HTMLElement | null>;\n onAppearanceCommit?: () => void;\n}) {\n const handleRef = (element: HTMLElement | null) => {\n if (typeof ref === 'function') ref(element);\n else if (ref) ref.current = element;\n\n if (tooltipRef) tooltipRef.current = element;\n\n labelRef(element);\n };\n\n // Match tasty(Text)'s prop/style merge before Text applies its slot. A reset\n // here removes the TextItem default and restores Text's native default.\n const textProps = useTextProps({\n qa: 'TextItem',\n ...props,\n as: props.as ?? undefined,\n element: props.element || undefined,\n styles: mergeStyles(TEXT_ITEM_STYLES, props.styles),\n });\n const variant = getStaticVariant(textProps.styles);\n\n const shouldMeasure = !!onAppearanceCommit;\n const refreshOverflow = useEffectEvent(() => onAppearanceCommit?.());\n\n // A fixed box can change its text width without a ResizeObserver delivery.\n // Queue after its props/slot commit, as the former ref reattachment did.\n useLayoutEffect(() => {\n if (shouldMeasure) refreshOverflow();\n }, [textProps, shouldMeasure]);\n\n // Reuse Tasty's static-style cache for common labels, with one native owner\n // across style/slot changes so a focused label never remounts for styling.\n return (\n <TextItemElement\n {...textProps}\n variant={variant}\n styles={variant ? undefined : textProps.styles}\n ref={handleRef}\n />\n );\n}\n\nexport const TextItem = forwardRef<HTMLElement, CubeTextItemProps>(\n function TextItem(props, ref) {\n const {\n children,\n highlight,\n highlightCaseSensitive = false,\n highlightStyles,\n tooltip = true,\n tooltipPlacement = 'top',\n ...restProps\n } = props;\n\n // Extract style props (preset, color, etc.) to pass via styles prop\n const styles = extractStyles(restProps, STYLE_LIST, {}, TEXT_PROP_MAP);\n\n const {\n labelRef,\n renderWithTooltip,\n isAutoTooltipEnabled,\n scheduleOverflowCheck,\n } = useAutoTooltip({ tooltip, children });\n\n // Process children with highlight if applicable\n const processedChildren =\n typeof children === 'string' && highlight\n ? highlightText(\n children,\n highlight,\n highlightCaseSensitive,\n highlightStyles,\n )\n : children;\n\n const renderElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n return (\n <TextItemContent\n {...filterBaseProps(restProps, { eventProps: true })}\n {...tooltipTriggerProps}\n ref={ref}\n labelRef={labelRef}\n tooltipRef={tooltipRef}\n onAppearanceCommit={\n isAutoTooltipEnabled ? scheduleOverflowCheck : undefined\n }\n styles={styles}\n >\n {processedChildren}\n </TextItemContent>\n );\n };\n\n return renderWithTooltip(renderElement, tooltipPlacement);\n },\n);\n\nTextItem.displayName = 'TextItem';\n"],"mappings":";;;;;;;;;;AA6BA,MAAMsB,aAAa;CAAC,GAAGtB;CAAa,GAAGM;CAAa,GAAGL;AAAY;AAuCnE,MAAM8B,mBAAmB;CACvBC,SAAS;CACTC,eAAe;CACfC,OAAO;CACPC,YAAY;CACZC,UAAU;CACVC,cAAc;AAChB;AAEA,MAAMC,kBAAkBjC,MAAM;CAC5BkC,IAAI;CACJC,QAAQvB;CACRwB,UAAU;EACRC,OAAOX;EACPY,OAAO;GAAE,GAAGZ;GAAkBa,QAAQ;EAAK;CAC7C;AACF,CAAC;AAED,MAAMC,uBAAuBC,OAAOC,KAAKhB,gBAAgB;AAIzD,SAASkB,iBAAiBT,QAAgB;CACxC,MAAMU,QAAQJ,OAAOC,KAAKP,MAAM,CAAC,CAACW;CAElC,IACE,CAACN,qBAAqBO,OAAOC,QAAQb,OAAOa,SAAStB,iBAAiBsB,IAAI,GAE1E;CAGF,IAAIH,UAAUL,qBAAqBM,QAAQ,OAAO;CAClD,IAAID,UAAUL,qBAAqBM,SAAS,KAAKX,OAAOI,WAAW,MACjE,OAAO;AACX;;AAGA,SAAAU,gBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT,EAAA,OAAAD,IAAA;EAAyB,MAAA,EAAAW,KAAAC,UAAAC,YAAAT,oBAAAU,IAAA,GAAAC,UAAAf;EAAAI,qBAAAU;EAWxB,IAAAE;EAAA,IAAAf,EAAA,OAAAW,YAAAX,EAAA,QAAAU,OAAAV,EAAA,QAAAY,YAAA;GACmBG,MAAAC,YAAA;IAChB,IAAI,OAAON,QAAQ,YAAYA,IAAIM,OAAO;SACrC,IAAIN,KAAKA,IAAGO,UAAWD;IAE5B,IAAIJ,YAAYA,WAAUK,UAAWD;IAErCL,SAASK,OAAO;GAAC;GAClBhB,EAAA,KAAAW;GAAAX,EAAA,MAAAU;GAAAV,EAAA,MAAAY;GAAAZ,EAAA,MAAAe;EAAA,OAAAA,KAAAf,EAAA;EAPDE,YAAkBa;EAWApD,KAAAA;EACZyC,KAAA;EACDU,KAAAA;EACCR,KAAAQ,MAAK/B,MAALmC,KAAAA;EACKX,KAAAO,MAAKE,WAALE,KAAAA;EACDV,KAAA7D,YAAY4B,kBAAkBuC,MAAK9B,MAAO;EAACgB,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAA;EAAAP,YAAAF,EAAA;EAAAG,qBAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;EAAAQ,KAAAR,EAAA;EAAAS,KAAAT,EAAA;CAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,QAAAI,MAAAJ,EAAA,QAAAK,MAAAL,EAAA,QAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,IAAA;EALtBK,KAAA;GAAAM,IACzBf;GAAU,GACXU;GAAK/B,IACJuB;GAAqBU,SAChBT;GAA0BvB,QAC3BwB;EACV;EAACR,EAAA,MAAAI;EAAAJ,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAa;CAAA,OAAAA,KAAAb,EAAA;CAND,MAAAoB,YAAkBzD,GAAakD,EAM9B;CAAE,IAAAE;CAAA,IAAAf,EAAA,QAAAoB,UAAApC,QAAA;EACa+B,KAAAtB,iBAAiB2B,UAASpC,MAAO;EAACgB,EAAA,MAAAoB,UAAApC;EAAAgB,EAAA,MAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAlD,MAAAqB,UAAgBN;CAEhB,MAAAO,gBAAsB,CAAC,CAACnB;CAAmB,IAAAoB;CAAA,IAAAvB,EAAA,QAAAG,oBAAA;EACJoB,WAAMpB,qBAAqB;EAACH,EAAA,MAAAG;EAAAH,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAnE,MAAAwB,kBAAwBrE,eAAeoE,EAA4B;CAAE,IAAAE;CAAA,IAAAzB,EAAA,QAAAwB,mBAAAxB,EAAA,QAAAsB,eAAA;EAIrDG,YAAA;GACd,IAAIH,eAAeE,gBAAgB;EAAE;EACtCxB,EAAA,MAAAwB;EAAAxB,EAAA,MAAAsB;EAAAtB,EAAA,MAAAyB;CAAA,OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,QAAAsB,iBAAAtB,EAAA,QAAAoB,WAAA;EAAEM,MAAA,CAACN,WAAWE,aAAa;EAACtB,EAAA,MAAAsB;EAAAtB,EAAA,MAAAoB;EAAApB,EAAA,MAAA0B;CAAA,OAAAA,MAAA1B,EAAA;CAF7B5C,gBAAgBqE,KAEbC,GAA0B;CAQjB,MAAAC,MAAAN,UAAAH,KAAAA,IAAsBE,UAASpC;CAAO,IAAA4C;CAAA,IAAA5B,EAAA,QAAAE,aAAAF,EAAA,QAAA2B,OAAA3B,EAAA,QAAAoB,aAAApB,EAAA,QAAAqB,SAAA;EAHhDO,MAAA,oBAAC,iBAAD;GAAgB,GACVR;GACKC;GACD,QAAAM;GACHzB,KAAAA;EAAS,CAAA;EACdF,EAAA,MAAAE;EAAAF,EAAA,MAAA2B;EAAA3B,EAAA,MAAAoB;EAAApB,EAAA,MAAAqB;EAAArB,EAAA,MAAA4B;CAAA,OAAAA,MAAA5B,EAAA;CAAA,OALF4B;AAKE;AAIN,MAAaC,WAAW9E,WACtB,SAAA8E,SAAAf,OAAAJ,KAAA;CAAA,MAAAV,IAAAC,EAAA,CAAA;CACE,MAAA,EAAA8B,UAAA7D,WAAAC,wBAAA4B,IAAA3B,iBAAAC,SAAA+B,IAAA9B,kBAAA+B,IAAA,GAAA2B,cAQIlB;CALF,MAAA3C,yBAAA4B,OAAAmB,KAAAA,IAAA,QAAAnB;CAEA,MAAA1B,UAAA+B,OAAAc,KAAAA,IAAA,OAAAd;CACA,MAAA9B,mBAAA+B,OAAAa,KAAAA,IAAA,QAAAb;CAKF,MAAArB,SAAe1B,cAAc0E,WAAWlE,YAAY,CAAC,GAAGJ,aAAa;CAAE,IAAA4C;CAAA,IAAAN,EAAA,OAAA+B,YAAA/B,EAAA,OAAA3B,SAAA;EAOpDiC,KAAA;GAAAjC;GAAA0D;EAAoB;EAAC/B,EAAA,KAAA+B;EAAA/B,EAAA,KAAA3B;EAAA2B,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CALxC,MAAA,EAAAW,UAAAsB,mBAAAC,sBAAAC,0BAKItE,eAAeyC,EAAqB;CAAE,IAAAC;CAAA,IAAAP,EAAA,OAAA+B,YAAA/B,EAAA,OAAA9B,aAAA8B,EAAA,OAAA7B,0BAAA6B,EAAA,OAAA5B,iBAAA;EAIxCmC,KAAA,OAAOwB,aAAa,YAApB7D,YACIX,cACEwE,UACA7D,WACAC,wBACAC,eAEK,IAPX2D;EAOY/B,EAAA,KAAA+B;EAAA/B,EAAA,KAAA9B;EAAA8B,EAAA,KAAA7B;EAAA6B,EAAA,KAAA5B;EAAA4B,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CARd,MAAAoC,oBACE7B;CASF,MAAA8B,iBAAsBC,qBAAA1B,eAKlB,oBAAC,iBAAD;EAAgB,GACVlE,gBAAgBsF,WAAW,EAAAO,YAAc,KAAK,CAAC;EAAC,GAChDD;EACC5B;EACKC;EACEC;EAEV,oBAAAsB,uBAAAC,wBAAAjB,KAAAA;EAEMlC;EAEPoD,UAAAA;CAXa,CAAA;CAclB,OAEKH,kBAAkBI,eAAe/D,gBAAgB;AAAC,CAE7D;AAEAuD,SAASW,cAAc"}
|
|
1
|
+
{"version":3,"file":"TextItem.js","names":["BASE_STYLES","COLOR_STYLES","filterBaseProps","mergeStyles","Styles","tasty","TEXT_STYLES","forwardRef","HTMLAttributes","Ref","RefObject","useEffectEvent","useLayoutEffect","PositionProps","extractStyles","highlightText","CubeTextProps","TEXT_DEFAULT_STYLES","TEXT_PROP_MAP","useTextProps","AutoTooltipValue","useAutoTooltip","STYLE_LIST","const","CubeTextItemProps","Omit","highlight","highlightCaseSensitive","highlightStyles","tooltip","tooltipPlacement","TEXT_ITEM_STYLES","display","verticalAlign","width","whiteSpace","overflow","textOverflow","TextItemElement","as","styles","variants","plain","table","preset","TEXT_ITEM_STYLE_KEYS","Object","keys","Array","getStaticVariant","count","length","every","key","TextItemContent","t0","$","_c","handleRef","onAppearanceCommit","t1","t2","t3","t4","t5","t6","ref","labelRef","tooltipRef","t7","props","t8","element","current","undefined","qa","textProps","variant","shouldMeasure","t9","refreshOverflow","t10","t11","t12","t13","TextItem","HTMLElement","children","restProps","renderWithTooltip","isAutoTooltipEnabled","scheduleOverflowCheck","processedChildren","renderElement","tooltipTriggerProps","eventProps","displayName","_c"],"sources":["../../../../src/components/content/TextItem/TextItem.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n COLOR_STYLES,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n HTMLAttributes,\n Ref,\n RefObject,\n useEffectEvent,\n useLayoutEffect,\n} from 'react';\nimport { PositionProps } from 'react-aria';\n\nimport { extractStyles } from '../../../utils/styles';\nimport { highlightText } from '../highlightText';\nimport {\n CubeTextProps,\n TEXT_DEFAULT_STYLES,\n TEXT_PROP_MAP,\n useTextProps,\n} from '../Text';\nimport { AutoTooltipValue, useAutoTooltip } from '../use-auto-tooltip';\n\nconst STYLE_LIST = [...BASE_STYLES, ...TEXT_STYLES, ...COLOR_STYLES] as const;\n\n/**\n * TextItem truncates to one line with an ellipsis, so Text's `ellipsis` and\n * `nowrap` have nothing to switch.\n */\nexport interface CubeTextItemProps extends Omit<\n CubeTextProps,\n 'ellipsis' | 'nowrap'\n> {\n /**\n * String to highlight within children.\n * Only works when children is a plain string.\n */\n highlight?: string;\n /**\n * Whether highlight matching is case-sensitive.\n * @default false\n */\n highlightCaseSensitive?: boolean;\n /**\n * Custom styles for highlighted text.\n */\n highlightStyles?: Styles;\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n * @default true\n */\n tooltip?: AutoTooltipValue;\n /**\n * Default tooltip placement.\n * @default \"top\"\n */\n tooltipPlacement?: PositionProps['placement'];\n}\n\nconst TEXT_ITEM_STYLES = {\n display: 'inline-block',\n verticalAlign: 'bottom',\n width: 'max 100%',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n} satisfies Styles;\n\nconst TextItemElement = tasty({\n as: 'span',\n styles: TEXT_DEFAULT_STYLES,\n variants: {\n plain: TEXT_ITEM_STYLES,\n table: mergeStyles(TEXT_ITEM_STYLES, { preset: 't3' }),\n },\n});\n\nconst TEXT_ITEM_STYLE_KEYS = Object.keys(TEXT_ITEM_STYLES) as Array<\n keyof typeof TEXT_ITEM_STYLES\n>;\n\nfunction getStaticVariant(styles: Styles) {\n const count = Object.keys(styles).length;\n\n if (\n !TEXT_ITEM_STYLE_KEYS.every((key) => styles[key] === TEXT_ITEM_STYLES[key])\n ) {\n return;\n }\n\n if (count === TEXT_ITEM_STYLE_KEYS.length) return 'plain';\n if (count === TEXT_ITEM_STYLE_KEYS.length + 1 && styles.preset === 't3')\n return 'table';\n}\n\n/** Own the DOM ref outside the tooltip's render prop so Compiler can retain it. */\nfunction TextItemContent({\n ref,\n labelRef,\n tooltipRef,\n onAppearanceCommit,\n ...props\n}: CubeTextProps & {\n ref?: Ref<HTMLElement>;\n labelRef: (element: HTMLElement | null) => void;\n tooltipRef?: RefObject<HTMLElement | null>;\n onAppearanceCommit?: () => void;\n}) {\n const handleRef = (element: HTMLElement | null) => {\n if (typeof ref === 'function') ref(element);\n else if (ref) ref.current = element;\n\n if (tooltipRef) tooltipRef.current = element;\n\n labelRef(element);\n };\n\n // Match tasty(Text)'s prop/style merge before Text applies its slot. A reset\n // here removes the TextItem default and restores Text's native default.\n const textProps = useTextProps({\n qa: 'TextItem',\n ...props,\n as: props.as ?? undefined,\n element: props.element || undefined,\n styles: mergeStyles(TEXT_ITEM_STYLES, props.styles),\n });\n const variant = getStaticVariant(textProps.styles);\n\n const shouldMeasure = !!onAppearanceCommit;\n const refreshOverflow = useEffectEvent(() => onAppearanceCommit?.());\n\n // A fixed box can change its text width without a ResizeObserver delivery.\n // Queue after its props/slot commit, as the former ref reattachment did.\n useLayoutEffect(() => {\n if (shouldMeasure) refreshOverflow();\n }, [textProps, shouldMeasure]);\n\n // Reuse Tasty's static-style cache for common labels, with one native owner\n // across style/slot changes so a focused label never remounts for styling.\n return (\n <TextItemElement\n {...textProps}\n variant={variant}\n styles={variant ? undefined : textProps.styles}\n ref={handleRef}\n />\n );\n}\n\nexport const TextItem = forwardRef<HTMLElement, CubeTextItemProps>(\n function TextItem(props, ref) {\n const {\n children,\n highlight,\n highlightCaseSensitive = false,\n highlightStyles,\n tooltip = true,\n tooltipPlacement = 'top',\n ...restProps\n } = props;\n\n // Extract style props (preset, color, etc.) to pass via styles prop\n const styles = extractStyles(restProps, STYLE_LIST, {}, TEXT_PROP_MAP);\n\n const {\n labelRef,\n renderWithTooltip,\n isAutoTooltipEnabled,\n scheduleOverflowCheck,\n } = useAutoTooltip({ tooltip, children });\n\n // Process children with highlight if applicable\n const processedChildren =\n typeof children === 'string' && highlight\n ? highlightText(\n children,\n highlight,\n highlightCaseSensitive,\n highlightStyles,\n )\n : children;\n\n const renderElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n return (\n <TextItemContent\n {...filterBaseProps(restProps, { eventProps: true })}\n {...tooltipTriggerProps}\n ref={ref}\n labelRef={labelRef}\n tooltipRef={tooltipRef}\n onAppearanceCommit={\n isAutoTooltipEnabled ? scheduleOverflowCheck : undefined\n }\n styles={styles}\n >\n {processedChildren}\n </TextItemContent>\n );\n };\n\n return renderWithTooltip(renderElement, tooltipPlacement);\n },\n);\n\nTextItem.displayName = 'TextItem';\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { useSlotProps } from "../../utils/react/Slots.js";
|
|
4
4
|
import { TEXT_PROP_MAP } from "./Text.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.199.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -230,15 +230,13 @@ function TreeBase(props, ref) {
|
|
|
230
230
|
paddingStart: containerPadding,
|
|
231
231
|
paddingEnd: containerPadding
|
|
232
232
|
});
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
return { ["--tree-height"]: `${height}px` };
|
|
236
|
-
}, [height]);
|
|
233
|
+
const treeTokens = useMemo(() => height == null ? void 0 : { "$tree-height": `${height}px` }, [height]);
|
|
234
|
+
const totalSize = rowVirtualizer.getTotalSize();
|
|
237
235
|
const sizerStyle = useMemo(() => ({
|
|
238
236
|
position: "relative",
|
|
239
237
|
width: "100%",
|
|
240
|
-
height: `${
|
|
241
|
-
}), [
|
|
238
|
+
height: `${totalSize}px`
|
|
239
|
+
}), [totalSize]);
|
|
242
240
|
/**
|
|
243
241
|
* Each scroll effect tracks its own "last scrolled" target instead
|
|
244
242
|
* of sharing one ref. A shared ref creates a feedback loop: keyboard
|
|
@@ -309,7 +307,7 @@ function TreeBase(props, ref) {
|
|
|
309
307
|
qa: qa ?? "Tree",
|
|
310
308
|
mods,
|
|
311
309
|
styles: baseStyles,
|
|
312
|
-
|
|
310
|
+
tokens: treeTokens,
|
|
313
311
|
children: /* @__PURE__ */ jsx(TreeScrollContainer, {
|
|
314
312
|
ref: mergedScrollRef,
|
|
315
313
|
children: /* @__PURE__ */ jsx("div", {
|