@konce-pt/react 0.11.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -64
- package/dist/accordion/accordion.d.ts +14 -6
- package/dist/accordion/accordion.js +25 -17
- package/dist/accordion/llms.txt +22 -10
- package/dist/alert/alert.d.ts +2 -2
- package/dist/alert/alert.js +3 -2
- package/dist/alert/llms.txt +10 -9
- package/dist/app-shell/app-shell.d.ts +14 -14
- package/dist/app-shell/app-shell.js +22 -15
- package/dist/app-shell/llms.txt +16 -15
- package/dist/auth/auth-types.d.ts +6 -6
- package/dist/auth/auth.d.ts +2 -2
- package/dist/auth/auth.js +24 -15
- package/dist/auth/llms.txt +12 -11
- package/dist/autocomplete/autocomplete.d.ts +19 -6
- package/dist/autocomplete/autocomplete.js +32 -11
- package/dist/autocomplete/llms.txt +19 -5
- package/dist/avatar/avatar.d.ts +6 -6
- package/dist/avatar/avatar.js +6 -5
- package/dist/avatar/llms.txt +10 -10
- package/dist/avatar-group/avatar-group.d.ts +4 -4
- package/dist/avatar-group/avatar-group.js +4 -3
- package/dist/avatar-group/llms.txt +8 -8
- package/dist/backdrop/backdrop.d.ts +7 -26
- package/dist/backdrop/backdrop.js +32 -27
- package/dist/backdrop/llms.txt +27 -27
- package/dist/badge/badge.d.ts +3 -3
- package/dist/badge/badge.js +1 -1
- package/dist/badge/llms.txt +11 -11
- package/dist/bottom-sheet/bottom-sheet.d.ts +8 -3
- package/dist/bottom-sheet/bottom-sheet.js +5 -4
- package/dist/bottom-sheet/llms.txt +11 -8
- package/dist/breadcrumb/breadcrumb.d.ts +8 -2
- package/dist/breadcrumb/breadcrumb.js +11 -3
- package/dist/breadcrumb/llms.txt +10 -2
- package/dist/button/button.d.ts +3 -3
- package/dist/button/button.js +10 -9
- package/dist/button/llms.txt +27 -19
- package/dist/button-group/button-group.d.ts +18 -5
- package/dist/button-group/button-group.js +54 -6
- package/dist/button-group/llms.txt +27 -18
- package/dist/card/card.d.ts +8 -8
- package/dist/card/card.js +10 -9
- package/dist/card/llms.txt +20 -20
- package/dist/carousel/carousel.d.ts +6 -6
- package/dist/carousel/carousel.js +8 -5
- package/dist/carousel/llms.txt +10 -10
- package/dist/charts/chart-legend.d.ts +3 -3
- package/dist/charts/chart-legend.js +2 -1
- package/dist/charts/chart-tooltip.d.ts +3 -3
- package/dist/charts/chart-tooltip.js +1 -1
- package/dist/charts/chart.d.ts +4 -3
- package/dist/charts/chart.js +18 -10
- package/dist/charts/llms.txt +10 -7
- package/dist/charts-entry/public-api.js +2 -2
- package/dist/chat/chat.d.ts +17 -10
- package/dist/chat/chat.js +77 -23
- package/dist/chat/llms.txt +39 -15
- package/dist/chat-composer/chat-composer.d.ts +20 -7
- package/dist/chat-composer/chat-composer.js +29 -7
- package/dist/chat-composer/llms.txt +20 -11
- package/dist/chat-dock/chat-dock.d.ts +11 -4
- package/dist/chat-dock/chat-dock.js +10 -6
- package/dist/chat-dock/llms.txt +15 -14
- package/dist/chat-entry/public-api.js +1 -1
- package/dist/chat-message/chat-message.d.ts +12 -5
- package/dist/chat-message/chat-message.js +19 -8
- package/dist/chat-message/llms.txt +16 -15
- package/dist/chat-typing/chat-typing.d.ts +2 -2
- package/dist/chat-typing/chat-typing.js +4 -3
- package/dist/chat-typing/llms.txt +6 -6
- package/dist/checkbox/checkbox.d.ts +13 -6
- package/dist/checkbox/checkbox.js +31 -5
- package/dist/checkbox/llms.txt +26 -11
- package/dist/chip/chip.d.ts +4 -4
- package/dist/chip/chip.js +3 -2
- package/dist/chip/llms.txt +11 -11
- package/dist/chips-input/chips-input.d.ts +6 -4
- package/dist/chips-input/chips-input.js +47 -12
- package/dist/chips-input/llms.txt +18 -8
- package/dist/clock/clock.d.ts +11 -6
- package/dist/clock/clock.js +38 -8
- package/dist/clock/llms.txt +12 -8
- package/dist/color-picker/color-picker.d.ts +9 -5
- package/dist/color-picker/color-picker.js +37 -18
- package/dist/color-picker/llms.txt +8 -5
- package/dist/confirm/confirm-container.d.ts +3 -3
- package/dist/confirm/confirm-container.js +6 -5
- package/dist/confirm/confirm-store.d.ts +4 -4
- package/dist/confirm/confirm-store.js +11 -5
- package/dist/confirm/llms.txt +8 -7
- package/dist/context-menu/context-menu.d.ts +1 -1
- package/dist/context-menu/context-menu.js +37 -14
- package/dist/context-menu/llms.txt +10 -7
- package/dist/data-table/data-table-types.d.ts +5 -5
- package/dist/data-table/data-table.d.ts +37 -5
- package/dist/data-table/data-table.js +426 -119
- package/dist/data-table/export-csv.d.ts +3 -3
- package/dist/data-table/export-csv.js +8 -10
- package/dist/data-table/llms.txt +127 -79
- package/dist/data-view/data-view.d.ts +13 -5
- package/dist/data-view/data-view.js +68 -6
- package/dist/data-view/llms.txt +29 -10
- package/dist/date-range/date-range.d.ts +20 -8
- package/dist/date-range/date-range.js +86 -63
- package/dist/date-range/llms.txt +32 -18
- package/dist/datepicker/datepicker.d.ts +22 -8
- package/dist/datepicker/datepicker.js +103 -71
- package/dist/datepicker/llms.txt +36 -22
- package/dist/dialog/dialog.d.ts +4 -4
- package/dist/dialog/dialog.js +32 -11
- package/dist/dialog/llms.txt +13 -10
- package/dist/divider/divider.d.ts +7 -1
- package/dist/divider/divider.js +3 -2
- package/dist/divider/llms.txt +4 -3
- package/dist/drawer/drawer.d.ts +9 -4
- package/dist/drawer/drawer.js +5 -4
- package/dist/drawer/llms.txt +13 -10
- package/dist/empty/empty.d.ts +2 -2
- package/dist/empty/empty.js +1 -1
- package/dist/empty/llms.txt +9 -9
- package/dist/fab/fab.d.ts +1 -1
- package/dist/fab/fab.js +1 -1
- package/dist/fab/llms.txt +10 -6
- package/dist/fieldset/fieldset.d.ts +18 -4
- package/dist/fieldset/fieldset.js +12 -6
- package/dist/fieldset/llms.txt +26 -9
- package/dist/file-upload/file-upload.d.ts +8 -2
- package/dist/file-upload/file-upload.js +22 -11
- package/dist/file-upload/llms.txt +12 -9
- package/dist/form-field/form-field-context.d.ts +4 -4
- package/dist/form-field/form-field.d.ts +12 -4
- package/dist/form-field/form-field.js +27 -6
- package/dist/form-field/llms.txt +25 -11
- package/dist/galleria/galleria.d.ts +3 -3
- package/dist/galleria/galleria.js +9 -6
- package/dist/galleria/llms.txt +7 -7
- package/dist/grid/col.d.ts +4 -4
- package/dist/grid/col.js +2 -2
- package/dist/grid/flex.d.ts +3 -3
- package/dist/grid/flex.js +1 -1
- package/dist/grid/grid.d.ts +7 -7
- package/dist/grid/grid.js +3 -3
- package/dist/grid/layout.d.ts +2 -2
- package/dist/grid/layout.js +2 -2
- package/dist/grid/llms.txt +15 -15
- package/dist/grid-entry/public-api.js +1 -1
- package/dist/i18n/i18n-context.d.ts +6 -6
- package/dist/i18n/i18n-context.js +27 -5
- package/dist/icon/icon-registry.d.ts +3 -3
- package/dist/icon/icon-registry.js +3 -3
- package/dist/icon/icon.d.ts +4 -4
- package/dist/icon/icon.js +10 -7
- package/dist/icon/llms.txt +13 -13
- package/dist/icon-button/icon-button.d.ts +2 -2
- package/dist/icon-button/icon-button.js +1 -1
- package/dist/icon-button/llms.txt +9 -5
- package/dist/icons-entry/public-api.d.ts +2 -2
- package/dist/icons-entry/public-api.js +3 -3
- package/dist/image/image.js +5 -5
- package/dist/image/llms.txt +13 -13
- package/dist/input/input.d.ts +18 -5
- package/dist/input/input.js +22 -6
- package/dist/input/llms.txt +25 -11
- package/dist/input-mask/input-mask.d.ts +7 -2
- package/dist/input-mask/input-mask.js +17 -43
- package/dist/input-mask/llms.txt +8 -5
- package/dist/input-number/input-number.d.ts +11 -9
- package/dist/input-number/input-number.js +25 -21
- package/dist/input-number/llms.txt +17 -14
- package/dist/input-otp/input-otp.d.ts +18 -5
- package/dist/input-otp/input-otp.js +48 -24
- package/dist/input-otp/llms.txt +18 -7
- package/dist/internal/calendar-focus.d.ts +1 -1
- package/dist/internal/calendar-focus.js +3 -3
- package/dist/internal/cn.d.ts +1 -1
- package/dist/internal/mask.d.ts +14 -0
- package/dist/internal/mask.js +62 -0
- package/dist/internal/number-group.d.ts +22 -0
- package/dist/internal/number-group.js +53 -0
- package/dist/internal/option-key.d.ts +6 -0
- package/dist/internal/option-key.js +8 -0
- package/dist/internal/option-nav.d.ts +4 -4
- package/dist/internal/option-nav.js +5 -5
- package/dist/internal/overlay-container.js +1 -1
- package/dist/internal/overlay.d.ts +3 -3
- package/dist/internal/overlay.js +40 -10
- package/dist/internal/password-strength.d.ts +6 -0
- package/dist/internal/password-strength.js +74 -0
- package/dist/internal/roving.d.ts +2 -2
- package/dist/internal/roving.js +3 -3
- package/dist/internal/scroll-lock.d.ts +6 -0
- package/dist/internal/scroll-lock.js +35 -0
- package/dist/internal/slot-children.d.ts +13 -0
- package/dist/internal/slot-children.js +31 -0
- package/dist/internal/slot.d.ts +3 -3
- package/dist/internal/slot.js +2 -2
- package/dist/internal/step.d.ts +12 -0
- package/dist/internal/step.js +31 -0
- package/dist/internal/tween.d.ts +5 -5
- package/dist/internal/tween.js +7 -8
- package/dist/internal/types.d.ts +2 -2
- package/dist/internal/use-breakpoint.d.ts +2 -2
- package/dist/internal/use-breakpoint.js +4 -4
- package/dist/internal/use-controllable-state.d.ts +5 -0
- package/dist/internal/use-controllable-state.js +25 -4
- package/dist/internal/use-id.d.ts +2 -2
- package/dist/internal/use-id.js +2 -2
- package/dist/internal/use-modal-focus.d.ts +2 -1
- package/dist/internal/use-modal-focus.js +14 -3
- package/dist/knob/knob.d.ts +7 -4
- package/dist/knob/knob.js +27 -22
- package/dist/knob/llms.txt +18 -11
- package/dist/listbox/listbox.d.ts +8 -6
- package/dist/listbox/listbox.js +37 -17
- package/dist/listbox/llms.txt +12 -9
- package/dist/loader/llms.txt +56 -0
- package/dist/loader/loader.d.ts +49 -0
- package/dist/loader/loader.js +68 -0
- package/dist/map/llms.txt +30 -23
- package/dist/map/map-create-dialog.d.ts +4 -4
- package/dist/map/map-create-dialog.js +36 -28
- package/dist/map/map-hours-field.d.ts +4 -4
- package/dist/map/map-hours-field.js +8 -7
- package/dist/map/map-image-field.d.ts +2 -2
- package/dist/map/map-image-field.js +6 -5
- package/dist/map/map-legend.d.ts +4 -4
- package/dist/map/map-legend.js +3 -2
- package/dist/map/map-poi-card.d.ts +3 -3
- package/dist/map/map-poi-card.js +10 -9
- package/dist/map/map-search.d.ts +17 -6
- package/dist/map/map-search.js +70 -43
- package/dist/map/map.d.ts +25 -13
- package/dist/map/map.js +86 -57
- package/dist/map/ports.d.ts +9 -9
- package/dist/map/ports.js +6 -6
- package/dist/map-entry/public-api.js +2 -2
- package/dist/megamenu/llms.txt +18 -7
- package/dist/megamenu/megamenu.d.ts +12 -6
- package/dist/megamenu/megamenu.js +23 -14
- package/dist/mention/llms.txt +15 -15
- package/dist/mention/mention.d.ts +5 -5
- package/dist/mention/mention.js +2 -2
- package/dist/mention/mentions.d.ts +1 -1
- package/dist/mention/mentions.js +1 -1
- package/dist/menu/llms.txt +12 -12
- package/dist/menu/menu-item.d.ts +4 -4
- package/dist/menu/menu-keys.d.ts +2 -2
- package/dist/menu/menu-keys.js +5 -5
- package/dist/menu/menu-rows.js +1 -0
- package/dist/menu/menu.d.ts +2 -2
- package/dist/menu/menu.js +15 -8
- package/dist/menubar/llms.txt +19 -8
- package/dist/menubar/menubar.d.ts +11 -5
- package/dist/menubar/menubar.js +23 -11
- package/dist/meter-group/llms.txt +12 -12
- package/dist/meter-group/meter-group.d.ts +2 -2
- package/dist/meter-group/meter-group.js +2 -1
- package/dist/motion/motion-context.d.ts +22 -0
- package/dist/motion/motion-context.js +28 -0
- package/dist/order-list/llms.txt +24 -9
- package/dist/order-list/order-list.d.ts +12 -4
- package/dist/order-list/order-list.js +123 -25
- package/dist/paginator/llms.txt +8 -8
- package/dist/paginator/paginator.js +7 -4
- package/dist/panel/llms.txt +25 -13
- package/dist/panel/panel.d.ts +11 -3
- package/dist/panel/panel.js +12 -7
- package/dist/password/llms.txt +19 -7
- package/dist/password/password.d.ts +2 -2
- package/dist/password/password.js +27 -16
- package/dist/peek/llms.txt +11 -11
- package/dist/peek/peek.d.ts +6 -6
- package/dist/peek/peek.js +41 -19
- package/dist/pick-list/llms.txt +35 -12
- package/dist/pick-list/pick-list.d.ts +12 -4
- package/dist/pick-list/pick-list.js +128 -24
- package/dist/popover/llms.txt +13 -10
- package/dist/popover/popover.d.ts +6 -4
- package/dist/popover/popover.js +14 -7
- package/dist/progress/llms.txt +17 -17
- package/dist/progress/progress.d.ts +7 -7
- package/dist/progress/progress.js +7 -6
- package/dist/public-api.d.ts +16 -4
- package/dist/public-api.js +13 -7
- package/dist/radio-group/llms.txt +16 -6
- package/dist/radio-group/radio-group.d.ts +12 -3
- package/dist/radio-group/radio-group.js +23 -4
- package/dist/rating/llms.txt +20 -13
- package/dist/rating/rating-pointer.d.ts +16 -0
- package/dist/rating/rating-pointer.js +26 -0
- package/dist/rating/rating.d.ts +6 -6
- package/dist/rating/rating.js +77 -12
- package/dist/rich-text/lists.d.ts +2 -2
- package/dist/rich-text/lists.js +7 -7
- package/dist/rich-text/llms.txt +35 -12
- package/dist/rich-text/rich-text.d.ts +13 -14
- package/dist/rich-text/rich-text.js +311 -142
- package/dist/rich-text/sanitize.d.ts +11 -2
- package/dist/rich-text/sanitize.js +80 -32
- package/dist/rich-text/tables.d.ts +3 -3
- package/dist/rich-text/tables.js +3 -3
- package/dist/roadmap/llms.txt +23 -17
- package/dist/roadmap/roadmap.d.ts +6 -6
- package/dist/roadmap/roadmap.js +102 -25
- package/dist/roadmap-entry/public-api.js +2 -2
- package/dist/scroll-top/llms.txt +6 -6
- package/dist/scroll-top/scroll-top.d.ts +1 -1
- package/dist/scroll-top/scroll-top.js +2 -1
- package/dist/select/llms.txt +22 -12
- package/dist/select/select.d.ts +10 -8
- package/dist/select/select.js +87 -47
- package/dist/shared/types.d.ts +22 -1
- package/dist/shared/types.js +9 -1
- package/dist/sidenav/llms.txt +9 -9
- package/dist/sidenav/sidenav.d.ts +2 -3
- package/dist/sidenav/sidenav.js +5 -4
- package/dist/skeleton/llms.txt +3 -3
- package/dist/skeleton/skeleton.d.ts +1 -1
- package/dist/skeleton/skeleton.js +1 -1
- package/dist/slider/llms.txt +34 -12
- package/dist/slider/slider-drag.d.ts +26 -0
- package/dist/slider/slider-drag.js +79 -0
- package/dist/slider/slider.d.ts +8 -5
- package/dist/slider/slider.js +38 -8
- package/dist/speech/llms.txt +97 -0
- package/dist/speech/speech-button.d.ts +44 -0
- package/dist/speech/speech-button.js +86 -0
- package/dist/speech/speech-wave.d.ts +19 -0
- package/dist/speech/speech-wave.js +16 -0
- package/dist/speech/use-speech-recognition.d.ts +81 -0
- package/dist/speech/use-speech-recognition.js +179 -0
- package/dist/speed-dial/llms.txt +14 -8
- package/dist/speed-dial/speed-dial.d.ts +1 -1
- package/dist/speed-dial/speed-dial.js +3 -2
- package/dist/spinner/llms.txt +7 -7
- package/dist/spinner/spinner.d.ts +1 -1
- package/dist/spinner/spinner.js +2 -1
- package/dist/split-button/llms.txt +21 -15
- package/dist/split-button/split-button.d.ts +2 -2
- package/dist/split-button/split-button.js +13 -6
- package/dist/splitter/llms.txt +11 -11
- package/dist/splitter/splitter.d.ts +3 -3
- package/dist/splitter/splitter.js +25 -10
- package/dist/stepper/llms.txt +35 -13
- package/dist/stepper/stepper.d.ts +6 -6
- package/dist/stepper/stepper.js +60 -13
- package/dist/switch/llms.txt +15 -5
- package/dist/switch/switch.d.ts +10 -3
- package/dist/switch/switch.js +18 -4
- package/dist/switch-group/llms.txt +11 -8
- package/dist/switch-group/switch-group.d.ts +6 -4
- package/dist/switch-group/switch-group.js +9 -7
- package/dist/tabs/llms.txt +12 -9
- package/dist/tabs/tabs.d.ts +5 -5
- package/dist/tabs/tabs.js +36 -20
- package/dist/textarea/llms.txt +23 -12
- package/dist/textarea/textarea.d.ts +19 -6
- package/dist/textarea/textarea.js +22 -7
- package/dist/timeline/llms.txt +4 -4
- package/dist/timeline/timeline.d.ts +1 -1
- package/dist/timeline/timeline.js +1 -1
- package/dist/toast/llms.txt +50 -17
- package/dist/toast/toast-container.d.ts +9 -3
- package/dist/toast/toast-container.js +18 -9
- package/dist/toast/toast-store.d.ts +42 -2
- package/dist/toast/toast-store.js +36 -1
- package/dist/toolbar/llms.txt +7 -7
- package/dist/toolbar/toolbar.d.ts +3 -3
- package/dist/toolbar/toolbar.js +2 -2
- package/dist/tooltip/llms.txt +14 -12
- package/dist/tooltip/tooltip.d.ts +5 -4
- package/dist/tooltip/tooltip.js +100 -41
- package/dist/tree/llms.txt +25 -11
- package/dist/tree/tree-keys.d.ts +5 -5
- package/dist/tree/tree-keys.js +7 -7
- package/dist/tree/tree.d.ts +17 -5
- package/dist/tree/tree.js +62 -20
- package/dist/update/llms.txt +54 -0
- package/dist/update/update.d.ts +49 -0
- package/dist/update/update.js +82 -0
- package/package.json +18 -15
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef, type ReactNode } from 'react';
|
|
2
|
+
import { type KptLoaderColor } from '@konce-pt/motion';
|
|
3
|
+
import type { KptHostProps } from '../internal/types.ts';
|
|
4
|
+
import { type KptI18nOverrides } from '../i18n/i18n-context.tsx';
|
|
5
|
+
/** `pending` - czeka na decyzję albo w kolejce; `downloading` - pobiera; potem wynik. */
|
|
6
|
+
export type KptUpdateStatus = 'pending' | 'downloading' | 'success' | 'error';
|
|
7
|
+
/** Co kliknął użytkownik - zależy od stanu: aktualizuj, anuluj, otwórz, ponów. */
|
|
8
|
+
export type KptUpdateAction = 'update' | 'cancel' | 'open' | 'retry';
|
|
9
|
+
export interface KptUpdateProps extends Omit<ComponentPropsWithRef<'div'>, 'children'>, KptI18nOverrides {
|
|
10
|
+
/** Nazwa aplikacji albo pakietu. */
|
|
11
|
+
name: string;
|
|
12
|
+
status?: KptUpdateStatus;
|
|
13
|
+
/** Pobrane bajty; z `total` daje postęp i linię "x z y". */
|
|
14
|
+
loaded?: number | null;
|
|
15
|
+
/** Rozmiar całości w bajtach; bez niego pobieranie jest nieokreślone. */
|
|
16
|
+
total?: number | null;
|
|
17
|
+
/** Rozmiar pierścienia (100 jednostek rysunku `KptLoader`). Domyślnie `5.5rem`. */
|
|
18
|
+
size?: string;
|
|
19
|
+
/** Barwa pierścienia i kafla ikony - rola motywu albo kolor CSS. Domyślnie `info`. */
|
|
20
|
+
color?: KptLoaderColor;
|
|
21
|
+
/** `false` chowa przycisk akcji. */
|
|
22
|
+
showAction?: boolean;
|
|
23
|
+
/** Nadpisania napisów; pominięte = słownik `update.*`. */
|
|
24
|
+
pendingText?: string;
|
|
25
|
+
downloadingText?: string;
|
|
26
|
+
successText?: string;
|
|
27
|
+
errorText?: string;
|
|
28
|
+
updateLabel?: string;
|
|
29
|
+
cancelLabel?: string;
|
|
30
|
+
openLabel?: string;
|
|
31
|
+
retryLabel?: string;
|
|
32
|
+
/** Klik w przycisk: `update`, `cancel`, `open` albo `retry` - wg stanu w chwili kliknięcia. */
|
|
33
|
+
onAction?: (action: KptUpdateAction) => void;
|
|
34
|
+
/** Ikona aplikacji; pominięta = `download`. */
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
/** Propsy wrappera `kpt-update-host` (odpowiednik hosta Angulara). */
|
|
37
|
+
hostProps?: KptHostProps<'div'>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Wiersz aktualizacji aplikacji: ikona w pierścieniu `KptLoader variant="ring"`, nazwa, linia
|
|
41
|
+
* stanu ("12,3 MB z 24 MB") i przycisk, którego napis idzie za stanem. Napisy przenikają się
|
|
42
|
+
* przy zmianie stanu. Komponent nic nie pobiera - stan, bajty i reakcję na `onAction` daje aplikacja.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* <KptUpdate name="Kompas" status={status} loaded={loaded} total={total} onAction={handle}>
|
|
46
|
+
* <img src="/kompas.svg" alt="" />
|
|
47
|
+
* </KptUpdate>
|
|
48
|
+
*/
|
|
49
|
+
export declare function KptUpdate({ name, status, loaded, total, size, color, showAction, pendingText, downloadingText, successText, errorText, updateLabel, cancelLabel, openLabel, retryLabel, onAction, locale, dictionary, children, hostProps, className, style, ...rest }: Readonly<KptUpdateProps>): import("react").JSX.Element;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { byteUnitOf, formatBytes } from '@konce-pt/i18n';
|
|
5
|
+
import { loaderColor, loaderOnColor, setText, swapText } from '@konce-pt/motion';
|
|
6
|
+
import { KptButton } from "../button/button.js";
|
|
7
|
+
import { KptIcon } from "../icon/icon.js";
|
|
8
|
+
import { KptLoader } from "../loader/loader.js";
|
|
9
|
+
import { cn } from "../internal/cn.js";
|
|
10
|
+
import { useKptMessages } from "../i18n/i18n-context.js";
|
|
11
|
+
import { useKptMotion } from "../motion/motion-context.js";
|
|
12
|
+
const ACTION = {
|
|
13
|
+
pending: 'update',
|
|
14
|
+
downloading: 'cancel',
|
|
15
|
+
success: 'open',
|
|
16
|
+
error: 'retry',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Wiersz aktualizacji aplikacji: ikona w pierścieniu `KptLoader variant="ring"`, nazwa, linia
|
|
20
|
+
* stanu ("12,3 MB z 24 MB") i przycisk, którego napis idzie za stanem. Napisy przenikają się
|
|
21
|
+
* przy zmianie stanu. Komponent nic nie pobiera - stan, bajty i reakcję na `onAction` daje aplikacja.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <KptUpdate name="Kompas" status={status} loaded={loaded} total={total} onAction={handle}>
|
|
25
|
+
* <img src="/kompas.svg" alt="" />
|
|
26
|
+
* </KptUpdate>
|
|
27
|
+
*/
|
|
28
|
+
export function KptUpdate({ name, status = 'pending', loaded = null, total = null, size = '5.5rem', color = 'info', showAction = true, pendingText, downloadingText, successText, errorText, updateLabel, cancelLabel, openLabel, retryLabel, onAction, locale, dictionary, children, hostProps, className, style, ...rest }) {
|
|
29
|
+
const { t, locale: activeLocale } = useKptMessages({ locale, dictionary });
|
|
30
|
+
const motion = useKptMotion();
|
|
31
|
+
const lineRef = useRef(null);
|
|
32
|
+
const buttonRef = useRef(null);
|
|
33
|
+
const lastStatus = useRef(null);
|
|
34
|
+
const [ready, setReady] = useState(false);
|
|
35
|
+
const loaderStatus = status === 'success' || status === 'error' ? status : 'loading';
|
|
36
|
+
// Postęp tylko w trakcie pobierania i tylko ze znaną całością.
|
|
37
|
+
const progressValue = status === 'downloading' && total && total > 0 ? (loaded ?? 0) : null;
|
|
38
|
+
const statusText = {
|
|
39
|
+
pending: pendingText ?? t('update.pending'),
|
|
40
|
+
downloading: downloadingText ?? t('update.downloading'),
|
|
41
|
+
success: successText ?? t('update.success'),
|
|
42
|
+
error: errorText ?? t('update.error'),
|
|
43
|
+
}[status];
|
|
44
|
+
let lineText = statusText;
|
|
45
|
+
if (status === 'downloading' && loaded != null) {
|
|
46
|
+
if (!total)
|
|
47
|
+
lineText = formatBytes(loaded, activeLocale);
|
|
48
|
+
else {
|
|
49
|
+
const unit = byteUnitOf(total);
|
|
50
|
+
lineText = t('update.size', { loaded: formatBytes(loaded, activeLocale, unit, true), total: formatBytes(total, activeLocale, unit) });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const actionLabel = {
|
|
54
|
+
update: updateLabel ?? t('update.update'),
|
|
55
|
+
cancel: cancelLabel ?? t('update.cancel'),
|
|
56
|
+
open: openLabel ?? t('update.open'),
|
|
57
|
+
retry: retryLabel ?? t('update.retry'),
|
|
58
|
+
}[ACTION[status]];
|
|
59
|
+
// Napisy idą przez `swapText` (przenikanie): przy zmianie stanu albo języka nowy wjeżdża,
|
|
60
|
+
// a przy samym liczniku bajtów zmienia się na miejscu, bez mrugania.
|
|
61
|
+
const motionOn = motion?.enabled !== false;
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
const line = lineRef.current;
|
|
64
|
+
if (!line)
|
|
65
|
+
return;
|
|
66
|
+
const animate = motionOn && lastStatus.current !== null;
|
|
67
|
+
if (status === lastStatus.current && status === 'downloading')
|
|
68
|
+
setText(line, lineText);
|
|
69
|
+
else
|
|
70
|
+
swapText(line, lineText, animate);
|
|
71
|
+
if (buttonRef.current)
|
|
72
|
+
swapText(buttonRef.current, actionLabel, animate);
|
|
73
|
+
lastStatus.current = status;
|
|
74
|
+
}, [status, lineText, actionLabel, motionOn, showAction]);
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
// Region statusu dostaje tekst klatkę po pojawieniu się - pusty region nie jest ogłaszany.
|
|
77
|
+
const frame = requestAnimationFrame(() => setReady(true));
|
|
78
|
+
return () => cancelAnimationFrame(frame);
|
|
79
|
+
}, []);
|
|
80
|
+
const { className: hostClassName, ...hostRest } = hostProps ?? {};
|
|
81
|
+
return (_jsx("div", { className: cn('kpt-update-host', hostClassName), ...hostRest, children: _jsxs("div", { className: cn('kpt-update', className), "data-status": status, style: { '--_tile': loaderColor(color), '--_tile-on': loaderOnColor(color), ...style }, ...rest, children: [_jsx(KptLoader, { hostProps: { className: 'kpt-update__ring' }, variant: "ring", status: loaderStatus, value: progressValue, max: total ?? 100, size: size, colors: [color], label: statusText, announce: false, children: _jsx("span", { className: "kpt-update__icon", children: children ?? _jsx(KptIcon, { name: "download" }) }) }), _jsxs("div", { className: "kpt-update__meta", children: [_jsx("span", { className: "kpt-update__name", children: name }), _jsx("span", { ref: lineRef, className: "kpt-update__line kpt-update__swap", "aria-hidden": "true" }), showAction ? (_jsx(KptButton, { hostProps: { className: 'kpt-update__action' }, variant: "tonal", size: "sm", onClick: () => onAction?.(ACTION[status]), children: _jsx("span", { ref: buttonRef, className: "kpt-update__swap" }) })) : null] }), _jsx("span", { className: "kpt-update__live", role: "status", children: ready ? `${name}: ${statusText}` : '' })] }) }));
|
|
82
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@konce-pt/react",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Open-source React 19 component library on the Koncept UI design system
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "Open-source React 19 component library on the Koncept UI design system - the same kpt-* CSS layer and --kpt-* tokens as the Angular port. Zero runtime dependencies.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "konce.pt",
|
|
7
7
|
"homepage": "https://ui.konce.pt/react",
|
|
@@ -60,22 +60,24 @@
|
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
|
-
"react": "
|
|
64
|
-
"react-dom": "
|
|
63
|
+
"react": "^19.2.0",
|
|
64
|
+
"react-dom": "^19.2.0",
|
|
65
65
|
"leaflet": "^1.9.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@konce-pt/
|
|
69
|
-
"@konce-pt/
|
|
70
|
-
"@konce-pt/
|
|
71
|
-
"@konce-pt/i18n": "0.
|
|
72
|
-
"@konce-pt/
|
|
73
|
-
"@konce-pt/
|
|
74
|
-
"@konce-pt/
|
|
75
|
-
"@konce-pt/
|
|
76
|
-
"@konce-pt/
|
|
77
|
-
"@konce-pt/
|
|
78
|
-
"@konce-pt/
|
|
68
|
+
"@konce-pt/chart": "0.14.0",
|
|
69
|
+
"@konce-pt/chat": "0.14.0",
|
|
70
|
+
"@konce-pt/mention": "0.14.0",
|
|
71
|
+
"@konce-pt/i18n": "0.14.0",
|
|
72
|
+
"@konce-pt/backdrop": "0.14.0",
|
|
73
|
+
"@konce-pt/motion": "0.14.0",
|
|
74
|
+
"@konce-pt/icons": "0.14.0",
|
|
75
|
+
"@konce-pt/datetime": "0.14.0",
|
|
76
|
+
"@konce-pt/table": "0.14.0",
|
|
77
|
+
"@konce-pt/speech": "0.14.0",
|
|
78
|
+
"@konce-pt/tokens": "0.14.0",
|
|
79
|
+
"@konce-pt/roadmap": "0.14.0",
|
|
80
|
+
"@konce-pt/map": "0.14.0"
|
|
79
81
|
},
|
|
80
82
|
"devDependencies": {
|
|
81
83
|
"@types/react": "^19.2.0",
|
|
@@ -93,6 +95,7 @@
|
|
|
93
95
|
},
|
|
94
96
|
"scripts": {
|
|
95
97
|
"build": "tsc -p tsconfig.build.json && node scripts/copy-llms.mjs",
|
|
98
|
+
"lint": "eslint .",
|
|
96
99
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\""
|
|
97
100
|
}
|
|
98
101
|
}
|