@cloudscape-design/components 3.0.1342 → 3.0.1344
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/expandable-section/expandable-section-header.d.ts +3 -1
- package/expandable-section/expandable-section-header.d.ts.map +1 -1
- package/expandable-section/expandable-section-header.js +57 -13
- package/expandable-section/expandable-section-header.js.map +1 -1
- package/expandable-section/interfaces.d.ts +1 -1
- package/expandable-section/interfaces.js.map +1 -1
- package/expandable-section/internal.d.ts +15 -0
- package/expandable-section/internal.d.ts.map +1 -1
- package/expandable-section/internal.js +3 -3
- package/expandable-section/internal.js.map +1 -1
- package/expandable-section/styles.css.js +42 -35
- package/expandable-section/styles.scoped.css +177 -69
- package/expandable-section/styles.selectors.js +42 -35
- package/i18n/messages/all.all.js +1 -1
- package/i18n/messages/all.all.json +1 -1
- package/i18n/messages/all.ar.js +1 -1
- package/i18n/messages/all.ar.json +1 -1
- package/i18n/messages/all.de.js +1 -1
- package/i18n/messages/all.de.json +1 -1
- package/i18n/messages/all.en-GB.js +1 -1
- package/i18n/messages/all.en-GB.json +1 -1
- package/i18n/messages/all.en.js +1 -1
- package/i18n/messages/all.en.json +1 -1
- package/i18n/messages/all.es.js +1 -1
- package/i18n/messages/all.es.json +1 -1
- package/i18n/messages/all.fr.js +1 -1
- package/i18n/messages/all.fr.json +1 -1
- package/i18n/messages/all.id.js +1 -1
- package/i18n/messages/all.id.json +1 -1
- package/i18n/messages/all.it.js +1 -1
- package/i18n/messages/all.it.json +1 -1
- package/i18n/messages/all.ja.js +1 -1
- package/i18n/messages/all.ja.json +1 -1
- package/i18n/messages/all.ko.js +1 -1
- package/i18n/messages/all.ko.json +1 -1
- package/i18n/messages/all.pt-BR.js +1 -1
- package/i18n/messages/all.pt-BR.json +1 -1
- package/i18n/messages/all.tr.js +1 -1
- package/i18n/messages/all.tr.json +1 -1
- package/i18n/messages/all.zh-CN.js +1 -1
- package/i18n/messages/all.zh-CN.json +1 -1
- package/i18n/messages/all.zh-TW.js +1 -1
- package/i18n/messages/all.zh-TW.json +1 -1
- package/i18n/messages-types.d.ts +5 -0
- package/i18n/messages-types.d.ts.map +1 -1
- package/i18n/messages-types.js.map +1 -1
- package/input/styles.css.js +28 -28
- package/input/styles.scoped.css +70 -70
- package/input/styles.selectors.js +28 -28
- package/internal/base-component/styles.scoped.css +11 -6
- package/internal/environment.js +2 -2
- package/internal/environment.json +2 -2
- package/internal/generated/styles/tokens.d.ts +1 -0
- package/internal/generated/styles/tokens.js +2 -1
- package/internal/generated/theming/index.cjs +46 -15
- package/internal/generated/theming/index.js +46 -15
- package/internal/manifest.json +1 -1
- package/manifest.json +2 -2
- package/multiselect/index.d.ts.map +1 -1
- package/multiselect/index.js +4 -0
- package/multiselect/index.js.map +1 -1
- package/multiselect/interfaces.d.ts +8 -1
- package/multiselect/interfaces.d.ts.map +1 -1
- package/multiselect/interfaces.js.map +1 -1
- package/multiselect/internal.d.ts.map +1 -1
- package/multiselect/internal.js +22 -2
- package/multiselect/internal.js.map +1 -1
- package/multiselect/styles.css.js +5 -3
- package/multiselect/styles.scoped.css +13 -3
- package/multiselect/styles.selectors.js +5 -3
- package/multiselect/use-multiselect.d.ts +4 -1
- package/multiselect/use-multiselect.d.ts.map +1 -1
- package/multiselect/use-multiselect.js +5 -3
- package/multiselect/use-multiselect.js.map +1 -1
- package/package.json +95 -1
- package/pagination/index.d.ts.map +1 -1
- package/pagination/index.js +3 -3
- package/pagination/index.js.map +1 -1
- package/pagination/interfaces.d.ts +19 -3
- package/pagination/interfaces.d.ts.map +1 -1
- package/pagination/interfaces.js.map +1 -1
- package/pagination/internal.d.ts.map +1 -1
- package/pagination/internal.js +18 -6
- package/pagination/internal.js.map +1 -1
- package/pagination/styles.css.js +12 -11
- package/pagination/styles.scoped.css +34 -25
- package/pagination/styles.selectors.js +12 -11
- package/pagination/test-classes/styles.css.js +6 -0
- package/pagination/test-classes/styles.scoped.css +7 -0
- package/pagination/test-classes/styles.selectors.js +7 -0
- package/prompt-input/internal.d.ts.map +1 -1
- package/prompt-input/internal.js +14 -2
- package/prompt-input/internal.js.map +1 -1
- package/select/index.d.ts.map +1 -1
- package/select/index.js +4 -0
- package/select/index.js.map +1 -1
- package/select/interfaces.d.ts +39 -0
- package/select/interfaces.d.ts.map +1 -1
- package/select/interfaces.js.map +1 -1
- package/select/internal.d.ts.map +1 -1
- package/select/internal.js +20 -4
- package/select/internal.js.map +1 -1
- package/select/styles.css.js +3 -1
- package/select/styles.scoped.css +11 -1
- package/select/styles.selectors.js +3 -1
- package/select/utils/dropdown-customization.d.ts +26 -0
- package/select/utils/dropdown-customization.d.ts.map +1 -0
- package/select/utils/dropdown-customization.js +22 -0
- package/select/utils/dropdown-customization.js.map +1 -0
- package/select/utils/use-select.d.ts +5 -1
- package/select/utils/use-select.d.ts.map +1 -1
- package/select/utils/use-select.js +21 -4
- package/select/utils/use-select.js.map +1 -1
- package/side-navigation/parts.d.ts.map +1 -1
- package/side-navigation/parts.js +3 -2
- package/side-navigation/parts.js.map +1 -1
- package/side-navigation/styles.css.js +50 -48
- package/side-navigation/styles.scoped.css +106 -93
- package/side-navigation/styles.selectors.js +50 -48
- package/skeleton/styles.css.js +15 -15
- package/skeleton/styles.scoped.css +26 -26
- package/skeleton/styles.selectors.js +15 -15
- package/test-utils/dom/multiselect/index.d.ts +16 -0
- package/test-utils/dom/multiselect/index.js +16 -0
- package/test-utils/dom/multiselect/index.js.map +1 -1
- package/test-utils/dom/pagination/index.d.ts +5 -1
- package/test-utils/dom/pagination/index.js +7 -0
- package/test-utils/dom/pagination/index.js.map +1 -1
- package/test-utils/dom/select/index.d.ts +16 -0
- package/test-utils/dom/select/index.js +16 -0
- package/test-utils/dom/select/index.js.map +1 -1
- package/test-utils/selectors/multiselect/index.d.ts +16 -0
- package/test-utils/selectors/multiselect/index.js +20 -0
- package/test-utils/selectors/multiselect/index.js.map +1 -1
- package/test-utils/selectors/pagination/index.d.ts +5 -1
- package/test-utils/selectors/pagination/index.js +7 -0
- package/test-utils/selectors/pagination/index.js.map +1 -1
- package/test-utils/selectors/select/index.d.ts +16 -0
- package/test-utils/selectors/select/index.js +20 -0
- package/test-utils/selectors/select/index.js.map +1 -1
- package/textarea/index.d.ts.map +1 -1
- package/textarea/index.js +11 -3
- package/textarea/index.js.map +1 -1
- package/textarea/interfaces.d.ts +12 -0
- package/textarea/interfaces.d.ts.map +1 -1
- package/textarea/interfaces.js.map +1 -1
- package/textarea/styles.css.js +9 -5
- package/textarea/styles.scoped.css +26 -14
- package/textarea/styles.selectors.js +9 -5
|
@@ -16,6 +16,12 @@ export interface PaginationProps {
|
|
|
16
16
|
* `onNextPageClick` handler is called with `requestedPageAvailable: false` in the event detail.
|
|
17
17
|
*/
|
|
18
18
|
openEnd?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Specifies how pages are displayed:
|
|
21
|
+
* * `normal` - Displays page number buttons. For larger page ranges, the displayed range is truncated with ellipses.
|
|
22
|
+
* * `compact` - Displays the current page and page count between the previous and next buttons. When `openEnd` is `true`, a plus sign after the page count indicates that more pages are available.
|
|
23
|
+
*/
|
|
24
|
+
pagesVariant?: PaginationProps.PagesVariant;
|
|
19
25
|
/**
|
|
20
26
|
* If set to `true`, the pagination links will be disabled. Use it, for example, if you want to prevent the user
|
|
21
27
|
* from changing page before items are loaded.
|
|
@@ -42,6 +48,13 @@ export interface PaginationProps {
|
|
|
42
48
|
*/
|
|
43
49
|
ariaLabels?: PaginationProps.Labels;
|
|
44
50
|
/**
|
|
51
|
+
* An object containing all the necessary localized strings required by the component:
|
|
52
|
+
* * `jumpToPageInputLabel` (string) - Accessible label for the jump-to-page number input.
|
|
53
|
+
* * `jumpToPageError` (string) - Error message displayed when the entered page number is invalid.
|
|
54
|
+
* * `jumpToPageLoadingText` (string) - Loading text displayed while the jump-to-page action is in progress.
|
|
55
|
+
* * `pagesCompactText` ((options: { currentPage: number; pagesCount: number; openEnd: boolean }) => string) -
|
|
56
|
+
* Provides the visible text for compact pages, for example `3 of 12`, or `3 of 12+` when `openEnd` is `true`.
|
|
57
|
+
* Receives the current page, page count, and whether pagination is open-ended.
|
|
45
58
|
* @i18n
|
|
46
59
|
*/
|
|
47
60
|
i18nStrings?: PaginationProps.I18nStrings;
|
|
@@ -68,6 +81,7 @@ export interface PaginationProps {
|
|
|
68
81
|
jumpToPage?: PaginationProps.JumpToPageProps;
|
|
69
82
|
}
|
|
70
83
|
export declare namespace PaginationProps {
|
|
84
|
+
type PagesVariant = 'normal' | 'compact';
|
|
71
85
|
interface Labels {
|
|
72
86
|
nextPageLabel?: string;
|
|
73
87
|
paginationLabel?: string;
|
|
@@ -76,12 +90,14 @@ export declare namespace PaginationProps {
|
|
|
76
90
|
jumpToPageButton?: string;
|
|
77
91
|
}
|
|
78
92
|
interface I18nStrings {
|
|
79
|
-
/** @i18n */
|
|
80
93
|
jumpToPageInputLabel?: string;
|
|
81
|
-
/** @i18n */
|
|
82
94
|
jumpToPageError?: string;
|
|
83
|
-
/** @i18n */
|
|
84
95
|
jumpToPageLoadingText?: string;
|
|
96
|
+
pagesCompactText?: (options: {
|
|
97
|
+
currentPage: number;
|
|
98
|
+
pagesCount: number;
|
|
99
|
+
openEnd: boolean;
|
|
100
|
+
}) => string;
|
|
85
101
|
}
|
|
86
102
|
interface ChangeDetail {
|
|
87
103
|
currentPageIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/pagination/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACpC
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/pagination/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACpC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAEnE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAEjF;;;;;OAKG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC7E;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC;CAC9C;AAED,yBAAiB,eAAe,CAAC;IAC/B,KAAY,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEhD,UAAiB,MAAM;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;QAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAED,UAAiB,WAAW;QAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,KAAK,MAAM,CAAC;KACvG;IAED,UAAiB,YAAY;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAED,UAAiB,eAAe;QAC9B,sBAAsB,EAAE,OAAO,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IAED,UAAiB,eAAe;QAC9B;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAED,UAAiB,GAAG;QAClB;;WAEG;QACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;KACvC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/pagination/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { NonCancelableEventHandler } from '../types/events';\n\nexport interface PaginationProps {\n /**\n * Index of the current page. The first page has an index of 1.\n */\n currentPageIndex: number;\n\n /**\n * Sets the total number of pages. Only positive integers are allowed.\n */\n pagesCount: number;\n\n /**\n * Sets the pagination variant. It can be either default (when setting it to `false`) or open ended (when setting it\n * to `true`). Default pagination navigates you through the items list. The open-end variant enables you\n * to lazy-load your items because it always displays three dots before the next page icon. The next page button is\n * never disabled. When the user clicks on it but there are no more items to show, the\n * `onNextPageClick` handler is called with `requestedPageAvailable: false` in the event detail.\n */\n openEnd?: boolean;\n\n /**\n * If set to `true`, the pagination links will be disabled. Use it, for example, if you want to prevent the user\n * from changing page before items are loaded.\n */\n disabled?: boolean;\n\n /**\n * Adds aria-labels to the pagination buttons:\n * * `paginationLabel` (string) - Label for the entire pagination group. It allows users to distinguish context\n * * in cases of multiple pagination components in a page.\n * * `previousPageLabel` (string) - Previous page button.\n * * `pageLabel` (number => string) - Individual page button, this function is called for every page number that's rendered.\n * * `nextPageLabel` (string) - Next page button\n *\n * Example:\n * ```\n * {\n * nextPageLabel: 'Next page',\n * paginationLabel: 'Table pagination',\n * previousPageLabel: 'Previous page',\n * pageLabel: pageNumber => `Page ${pageNumber}`\n * }\n * ```\n * @i18n\n */\n ariaLabels?: PaginationProps.Labels;\n /**\n * @i18n\n */\n i18nStrings?: PaginationProps.I18nStrings;\n\n /**\n * Called when a user interaction causes a pagination change. The event `detail` contains the new `currentPageIndex`.\n */\n onChange?: NonCancelableEventHandler<PaginationProps.ChangeDetail>;\n\n /**\n * Called when the previous page arrow is clicked. The event `detail` contains the following:\n * * `requestedPageAvailable` (boolean) - Always set to `true`.\n * * `requestedPageIndex` (integer) - The index of the requested page.\n */\n onPreviousPageClick?: NonCancelableEventHandler<PaginationProps.PageClickDetail>;\n\n /**\n * Called when the next page arrow is clicked. The event `detail` contains the following:\n * * `requestedPageAvailable` (boolean) - Indicates whether the requested page is available for display.\n * The value can be `false` when the `openEnd` property is set to `true`.\n * * `requestedPageIndex` (integer) - The index of the requested page.\n */\n onNextPageClick?: NonCancelableEventHandler<PaginationProps.PageClickDetail>;\n /**\n * Jump to page configuration\n */\n jumpToPage?: PaginationProps.JumpToPageProps;\n}\n\nexport namespace PaginationProps {\n export interface Labels {\n nextPageLabel?: string;\n paginationLabel?: string;\n previousPageLabel?: string;\n pageLabel?: (pageNumber: number) => string;\n jumpToPageButton?: string;\n }\n\n export interface I18nStrings {\n
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/pagination/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { NonCancelableEventHandler } from '../types/events';\n\nexport interface PaginationProps {\n /**\n * Index of the current page. The first page has an index of 1.\n */\n currentPageIndex: number;\n\n /**\n * Sets the total number of pages. Only positive integers are allowed.\n */\n pagesCount: number;\n\n /**\n * Sets the pagination variant. It can be either default (when setting it to `false`) or open ended (when setting it\n * to `true`). Default pagination navigates you through the items list. The open-end variant enables you\n * to lazy-load your items because it always displays three dots before the next page icon. The next page button is\n * never disabled. When the user clicks on it but there are no more items to show, the\n * `onNextPageClick` handler is called with `requestedPageAvailable: false` in the event detail.\n */\n openEnd?: boolean;\n\n /**\n * Specifies how pages are displayed:\n * * `normal` - Displays page number buttons. For larger page ranges, the displayed range is truncated with ellipses.\n * * `compact` - Displays the current page and page count between the previous and next buttons. When `openEnd` is `true`, a plus sign after the page count indicates that more pages are available.\n */\n pagesVariant?: PaginationProps.PagesVariant;\n\n /**\n * If set to `true`, the pagination links will be disabled. Use it, for example, if you want to prevent the user\n * from changing page before items are loaded.\n */\n disabled?: boolean;\n\n /**\n * Adds aria-labels to the pagination buttons:\n * * `paginationLabel` (string) - Label for the entire pagination group. It allows users to distinguish context\n * * in cases of multiple pagination components in a page.\n * * `previousPageLabel` (string) - Previous page button.\n * * `pageLabel` (number => string) - Individual page button, this function is called for every page number that's rendered.\n * * `nextPageLabel` (string) - Next page button\n *\n * Example:\n * ```\n * {\n * nextPageLabel: 'Next page',\n * paginationLabel: 'Table pagination',\n * previousPageLabel: 'Previous page',\n * pageLabel: pageNumber => `Page ${pageNumber}`\n * }\n * ```\n * @i18n\n */\n ariaLabels?: PaginationProps.Labels;\n /**\n * An object containing all the necessary localized strings required by the component:\n * * `jumpToPageInputLabel` (string) - Accessible label for the jump-to-page number input.\n * * `jumpToPageError` (string) - Error message displayed when the entered page number is invalid.\n * * `jumpToPageLoadingText` (string) - Loading text displayed while the jump-to-page action is in progress.\n * * `pagesCompactText` ((options: { currentPage: number; pagesCount: number; openEnd: boolean }) => string) -\n * Provides the visible text for compact pages, for example `3 of 12`, or `3 of 12+` when `openEnd` is `true`.\n * Receives the current page, page count, and whether pagination is open-ended.\n * @i18n\n */\n i18nStrings?: PaginationProps.I18nStrings;\n\n /**\n * Called when a user interaction causes a pagination change. The event `detail` contains the new `currentPageIndex`.\n */\n onChange?: NonCancelableEventHandler<PaginationProps.ChangeDetail>;\n\n /**\n * Called when the previous page arrow is clicked. The event `detail` contains the following:\n * * `requestedPageAvailable` (boolean) - Always set to `true`.\n * * `requestedPageIndex` (integer) - The index of the requested page.\n */\n onPreviousPageClick?: NonCancelableEventHandler<PaginationProps.PageClickDetail>;\n\n /**\n * Called when the next page arrow is clicked. The event `detail` contains the following:\n * * `requestedPageAvailable` (boolean) - Indicates whether the requested page is available for display.\n * The value can be `false` when the `openEnd` property is set to `true`.\n * * `requestedPageIndex` (integer) - The index of the requested page.\n */\n onNextPageClick?: NonCancelableEventHandler<PaginationProps.PageClickDetail>;\n /**\n * Jump to page configuration\n */\n jumpToPage?: PaginationProps.JumpToPageProps;\n}\n\nexport namespace PaginationProps {\n export type PagesVariant = 'normal' | 'compact';\n\n export interface Labels {\n nextPageLabel?: string;\n paginationLabel?: string;\n previousPageLabel?: string;\n pageLabel?: (pageNumber: number) => string;\n jumpToPageButton?: string;\n }\n\n export interface I18nStrings {\n jumpToPageInputLabel?: string;\n jumpToPageError?: string;\n jumpToPageLoadingText?: string;\n pagesCompactText?: (options: { currentPage: number; pagesCount: number; openEnd: boolean }) => string;\n }\n\n export interface ChangeDetail {\n currentPageIndex: number;\n }\n\n export interface PageClickDetail {\n requestedPageAvailable: boolean;\n requestedPageIndex: number;\n }\n\n export interface JumpToPageProps {\n /**\n * User controlled loading state when jump to page callback is executing\n */\n loading?: boolean;\n }\n\n export interface Ref {\n /**\n * Set error state for jump to page. Component will auto-clear when user types or navigates.\n */\n setError: (hasError: boolean) => void;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAgBhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAgBhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAoF/C,QAAA,MAAM,kBAAkB,0HAmQvB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
package/pagination/internal.js
CHANGED
|
@@ -15,6 +15,7 @@ import InternalPopover from '../popover/internal';
|
|
|
15
15
|
import InternalSpaceBetween from '../space-between/internal';
|
|
16
16
|
import { getPaginationState, range } from './utils';
|
|
17
17
|
import styles from './styles.css.js';
|
|
18
|
+
import testUtilStyles from './test-classes/styles.css.js';
|
|
18
19
|
function PageButton({ className, ariaLabel, disabled, pageIndex, isCurrent = false, children, onClick, ...rest }) {
|
|
19
20
|
function handleClick(event) {
|
|
20
21
|
if (disabled) {
|
|
@@ -42,7 +43,7 @@ function PageNumber({ pageIndex, ...rest }) {
|
|
|
42
43
|
},
|
|
43
44
|
})) }, pageIndex));
|
|
44
45
|
}
|
|
45
|
-
const InternalPagination = React.forwardRef(({ openEnd, currentPageIndex, ariaLabels, i18nStrings, pagesCount, disabled, onChange, onNextPageClick, onPreviousPageClick, __internalRootRef, jumpToPage, ...rest }, ref) => {
|
|
46
|
+
const InternalPagination = React.forwardRef(({ openEnd, currentPageIndex, ariaLabels, i18nStrings, pagesCount, disabled, pagesVariant = 'normal', onChange, onNextPageClick, onPreviousPageClick, __internalRootRef, jumpToPage, ...rest }, ref) => {
|
|
46
47
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
47
48
|
const baseProps = getBaseProps(rest);
|
|
48
49
|
const { leftDots, leftIndex, rightIndex, rightDots } = getPaginationState(currentPageIndex, pagesCount, openEnd);
|
|
@@ -65,6 +66,11 @@ const InternalPagination = React.forwardRef(({ openEnd, currentPageIndex, ariaLa
|
|
|
65
66
|
const nextPageLabel = (_b = i18n('ariaLabels.nextPageLabel', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.nextPageLabel)) !== null && _b !== void 0 ? _b : '';
|
|
66
67
|
const previousPageLabel = (_c = i18n('ariaLabels.previousPageLabel', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.previousPageLabel)) !== null && _c !== void 0 ? _c : '';
|
|
67
68
|
const pageNumberLabelFn = (_d = i18n('ariaLabels.pageLabel', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.pageLabel, format => pageNumber => format({ pageNumber }))) !== null && _d !== void 0 ? _d : ((pageNumber) => `${pageNumber}`);
|
|
69
|
+
const pagesCompactText = i18n('i18nStrings.pagesCompactText', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.pagesCompactText, format => options => format({
|
|
70
|
+
currentPage: options.currentPage,
|
|
71
|
+
pagesCount: options.pagesCount,
|
|
72
|
+
openEnd: options.openEnd ? 'true' : 'false',
|
|
73
|
+
}));
|
|
68
74
|
const jumpToPageLabel = (_e = i18n('i18nStrings.jumpToPageInputLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.jumpToPageInputLabel)) !== null && _e !== void 0 ? _e : '';
|
|
69
75
|
const jumpToPageButtonLabel = (_f = i18n('ariaLabels.jumpToPageButtonLabel', ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.jumpToPageButton)) !== null && _f !== void 0 ? _f : '';
|
|
70
76
|
const jumpToPageError = (_g = i18n('i18nStrings.jumpToPageError', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.jumpToPageError)) !== null && _g !== void 0 ? _g : '';
|
|
@@ -132,11 +138,17 @@ const InternalPagination = React.forwardRef(({ openEnd, currentPageIndex, ariaLa
|
|
|
132
138
|
},
|
|
133
139
|
})) },
|
|
134
140
|
React.createElement(InternalIcon, { name: "angle-left", variant: disabled ? 'disabled' : 'normal' })),
|
|
135
|
-
React.createElement(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
141
|
+
pagesVariant === 'compact' ? (React.createElement("li", { "aria-disabled": disabled ? true : undefined, className: styles['pages-compact'] },
|
|
142
|
+
React.createElement("span", { className: testUtilStyles['pages-compact-text'] }, pagesCompactText === null || pagesCompactText === void 0 ? void 0 : pagesCompactText({
|
|
143
|
+
currentPage: currentPageIndex,
|
|
144
|
+
pagesCount,
|
|
145
|
+
openEnd: !!openEnd,
|
|
146
|
+
})))) : (React.createElement(React.Fragment, null,
|
|
147
|
+
React.createElement(PageNumber, { pageIndex: 1, isCurrent: currentPageIndex === 1, disabled: disabled, ariaLabel: pageNumberLabelFn(1), onClick: handlePageClick }),
|
|
148
|
+
leftDots && React.createElement("li", { className: styles.dots }, "..."),
|
|
149
|
+
range(leftIndex, rightIndex).map(pageIndex => (React.createElement(PageNumber, { key: pageIndex, isCurrent: currentPageIndex === pageIndex, pageIndex: pageIndex, disabled: disabled, ariaLabel: pageNumberLabelFn(pageIndex), onClick: handlePageClick }))),
|
|
150
|
+
rightDots && React.createElement("li", { className: styles.dots }, "..."),
|
|
151
|
+
!openEnd && pagesCount > 1 && (React.createElement(PageNumber, { isCurrent: currentPageIndex === pagesCount, pageIndex: pagesCount, disabled: disabled, ariaLabel: pageNumberLabelFn(pagesCount), onClick: handlePageClick })))),
|
|
140
152
|
React.createElement(PageButton, { className: styles.arrow, pageIndex: currentPageIndex + 1, ariaLabel: nextPageLabel, disabled: nextButtonDisabled, onClick: handleNextPageClick, ...(nextButtonDisabled
|
|
141
153
|
? {}
|
|
142
154
|
: getAnalyticsMetadataAttribute({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport InternalInput from '../input/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { useTableComponentsContext } from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalPopover from '../popover/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataPaginationClick } from './analytics-metadata/interfaces';\nimport { PaginationProps } from './interfaces';\nimport { getPaginationState, range } from './utils';\n\nimport styles from './styles.css.js';\n\ninterface PageButtonProps {\n className?: string;\n ariaLabel: string;\n disabled?: boolean;\n pageIndex: number;\n isCurrent?: boolean;\n children?: React.ReactNode;\n onClick: (requestedIndex: number) => void;\n}\n\nfunction PageButton({\n className,\n ariaLabel,\n disabled,\n pageIndex,\n isCurrent = false,\n children,\n onClick,\n ...rest\n}: PageButtonProps) {\n function handleClick(event: React.MouseEvent) {\n if (disabled) {\n return;\n }\n event.preventDefault();\n onClick(pageIndex);\n }\n return (\n <li className={styles['page-item']} {...copyAnalyticsMetadataAttribute(rest)}>\n <button\n className={clsx(\n className,\n styles.button,\n disabled && styles['button-disabled'],\n isCurrent && styles['button-current']\n )}\n type=\"button\"\n aria-label={ariaLabel}\n aria-disabled={disabled ? true : undefined}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n aria-current={isCurrent}\n {...(disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'click',\n detail: {\n label: { root: 'self' },\n },\n } as GeneratedAnalyticsMetadataPaginationClick))}\n >\n {children}\n </button>\n </li>\n );\n}\n\nfunction PageNumber({ pageIndex, ...rest }: PageButtonProps) {\n return (\n <PageButton\n className={styles['page-number']}\n pageIndex={pageIndex}\n {...rest}\n {...(rest.disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: `${pageIndex}`,\n },\n }))}\n >\n {pageIndex}\n </PageButton>\n );\n}\n\ntype InternalPaginationProps = PaginationProps & InternalBaseComponentProps;\n\nconst InternalPagination = React.forwardRef(\n (\n {\n openEnd,\n currentPageIndex,\n ariaLabels,\n i18nStrings,\n pagesCount,\n disabled,\n onChange,\n onNextPageClick,\n onPreviousPageClick,\n __internalRootRef,\n jumpToPage,\n ...rest\n }: InternalPaginationProps,\n ref: React.Ref<PaginationProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const { leftDots, leftIndex, rightIndex, rightDots } = getPaginationState(currentPageIndex, pagesCount, openEnd);\n const [jumpToPageValue, setJumpToPageValue] = useState(currentPageIndex?.toString());\n const previousLoading = usePrevious(jumpToPage?.loading);\n const jumpToPageInputRef = useRef<HTMLInputElement>(null);\n const [hasError, setHasError] = useState(false);\n\n const i18n = useInternalI18n('pagination');\n\n // Expose setError function via ref\n React.useImperativeHandle(ref, () => ({\n setError: (error: boolean) => setHasError(error),\n }));\n\n // Sync input with currentPageIndex after loading completes\n React.useEffect(() => {\n if (previousLoading && !jumpToPage?.loading) {\n setJumpToPageValue(String(currentPageIndex));\n }\n }, [previousLoading, jumpToPage?.loading, currentPageIndex]);\n\n const paginationLabel = ariaLabels?.paginationLabel ?? '';\n const nextPageLabel = i18n('ariaLabels.nextPageLabel', ariaLabels?.nextPageLabel) ?? '';\n const previousPageLabel = i18n('ariaLabels.previousPageLabel', ariaLabels?.previousPageLabel) ?? '';\n const pageNumberLabelFn =\n i18n('ariaLabels.pageLabel', ariaLabels?.pageLabel, format => pageNumber => format({ pageNumber })) ??\n ((pageNumber: number) => `${pageNumber}`);\n\n const jumpToPageLabel = i18n('i18nStrings.jumpToPageInputLabel', i18nStrings?.jumpToPageInputLabel) ?? '';\n const jumpToPageButtonLabel = i18n('ariaLabels.jumpToPageButtonLabel', ariaLabels?.jumpToPageButton) ?? '';\n const jumpToPageError = i18n('i18nStrings.jumpToPageError', i18nStrings?.jumpToPageError) ?? '';\n const jumpToPageLoadingText = i18n('i18nStrings.jumpToPageLoadingText', i18nStrings?.jumpToPageLoadingText) ?? '';\n\n function handlePrevPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onPreviousPageClick, {\n requestedPageAvailable: true,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handleNextPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onNextPageClick, {\n requestedPageAvailable: currentPageIndex < pagesCount,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handlePageClick(requestedPageIndex: number, errorState?: boolean) {\n setJumpToPageValue(String(requestedPageIndex));\n setHasError(!!errorState); // Clear error on successful navigation\n fireNonCancelableEvent(onChange, { currentPageIndex: requestedPageIndex });\n }\n\n function handleJumpToPageClick(requestedPageIndex: number) {\n const adjustedIndex = Math.max(1, Math.floor(requestedPageIndex));\n\n if (openEnd) {\n // Open-end: always navigate, parent will handle async loading\n handlePageClick(adjustedIndex);\n } else {\n // Closed-end: validate range\n if (adjustedIndex >= 1 && adjustedIndex <= pagesCount) {\n handlePageClick(adjustedIndex);\n } else {\n // Out of range - set error and navigate to last page\n handlePageClick(pagesCount, true);\n }\n }\n jumpToPageInputRef.current?.focus();\n }\n\n // Auto-clear error when user types in the input\n const handleInputChange = (e: NonCancelableCustomEvent<BaseChangeDetail>) => {\n setJumpToPageValue(e.detail.value);\n if (hasError) {\n setHasError(false);\n }\n };\n\n const previousButtonDisabled = disabled || currentPageIndex === 1;\n const nextButtonDisabled = disabled || (!openEnd && (pagesCount === 0 || currentPageIndex === pagesCount));\n const tableComponentContext = useTableComponentsContext();\n if (tableComponentContext?.paginationRef?.current) {\n tableComponentContext.paginationRef.current.currentPageIndex = currentPageIndex;\n tableComponentContext.paginationRef.current.totalPageCount = pagesCount;\n tableComponentContext.paginationRef.current.openEnd = openEnd;\n }\n\n const jumpToPageButton = (\n <InternalButton\n iconName=\"arrow-right\"\n variant=\"icon\"\n loading={jumpToPage?.loading}\n loadingText={jumpToPageLoadingText}\n ariaLabel={jumpToPage?.loading ? jumpToPageLoadingText : jumpToPageButtonLabel}\n onClick={() => handleJumpToPageClick(Number(jumpToPageValue))}\n disabled={disabled || !jumpToPageValue || Number(jumpToPageValue) === currentPageIndex}\n />\n );\n\n return (\n <ul\n aria-label={paginationLabel}\n {...baseProps}\n className={clsx(baseProps.className, styles.root, disabled && styles['root-disabled'])}\n ref={__internalRootRef}\n >\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex - 1}\n ariaLabel={previousPageLabel}\n disabled={previousButtonDisabled}\n onClick={handlePrevPageClick}\n {...(previousButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'prev',\n },\n }))}\n >\n <InternalIcon name=\"angle-left\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n <PageNumber\n pageIndex={1}\n isCurrent={currentPageIndex === 1}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(1)}\n onClick={handlePageClick}\n />\n {leftDots && <li className={styles.dots}>...</li>}\n {range(leftIndex, rightIndex).map(pageIndex => (\n <PageNumber\n key={pageIndex}\n isCurrent={currentPageIndex === pageIndex}\n pageIndex={pageIndex}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pageIndex)}\n onClick={handlePageClick}\n />\n ))}\n {rightDots && <li className={styles.dots}>...</li>}\n {!openEnd && pagesCount > 1 && (\n <PageNumber\n isCurrent={currentPageIndex === pagesCount}\n pageIndex={pagesCount}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pagesCount)}\n onClick={handlePageClick}\n />\n )}\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex + 1}\n ariaLabel={nextPageLabel}\n disabled={nextButtonDisabled}\n onClick={handleNextPageClick}\n {...(nextButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'next',\n },\n }))}\n >\n <InternalIcon name=\"angle-right\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n {jumpToPage && (\n <li className={styles['jump-to-page']}>\n <InternalSpaceBetween size=\"xxs\" direction=\"horizontal\" alignItems=\"end\">\n <div className={styles['jump-to-page-input']}>\n <InternalInput\n ref={jumpToPageInputRef}\n type=\"number\"\n value={jumpToPageValue}\n disabled={disabled}\n __inlineLabelText={jumpToPageLabel || undefined}\n __fullWidth={true}\n ariaLabel={jumpToPageLabel || undefined}\n nativeInputAttributes={{\n min: 1,\n max: !openEnd ? pagesCount : undefined,\n }}\n onChange={handleInputChange}\n onBlur={() => setHasError(false)}\n onKeyDown={e => {\n if (e.detail.keyCode === 13 && jumpToPageValue && Number(jumpToPageValue) !== currentPageIndex) {\n handleJumpToPageClick(Number(jumpToPageValue));\n }\n }}\n />\n </div>\n {hasError && !jumpToPage?.loading ? (\n <InternalPopover\n size=\"medium\"\n dismissButton={false}\n __visible={true}\n content={jumpToPageError}\n position=\"bottom\"\n triggerType=\"custom\"\n __onVisibleChange={({ detail }) => !detail.visible && setHasError(false)}\n >\n {jumpToPageButton}\n </InternalPopover>\n ) : (\n jumpToPageButton\n )}\n </InternalSpaceBetween>\n </li>\n )}\n </ul>\n );\n }\n);\n\nexport default InternalPagination;\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport InternalInput from '../input/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { useTableComponentsContext } from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalPopover from '../popover/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataPaginationClick } from './analytics-metadata/interfaces';\nimport { PaginationProps } from './interfaces';\nimport { getPaginationState, range } from './utils';\n\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface PageButtonProps {\n className?: string;\n ariaLabel: string;\n disabled?: boolean;\n pageIndex: number;\n isCurrent?: boolean;\n children?: React.ReactNode;\n onClick: (requestedIndex: number) => void;\n}\n\nfunction PageButton({\n className,\n ariaLabel,\n disabled,\n pageIndex,\n isCurrent = false,\n children,\n onClick,\n ...rest\n}: PageButtonProps) {\n function handleClick(event: React.MouseEvent) {\n if (disabled) {\n return;\n }\n event.preventDefault();\n onClick(pageIndex);\n }\n return (\n <li className={styles['page-item']} {...copyAnalyticsMetadataAttribute(rest)}>\n <button\n className={clsx(\n className,\n styles.button,\n disabled && styles['button-disabled'],\n isCurrent && styles['button-current']\n )}\n type=\"button\"\n aria-label={ariaLabel}\n aria-disabled={disabled ? true : undefined}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n aria-current={isCurrent}\n {...(disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'click',\n detail: {\n label: { root: 'self' },\n },\n } as GeneratedAnalyticsMetadataPaginationClick))}\n >\n {children}\n </button>\n </li>\n );\n}\n\nfunction PageNumber({ pageIndex, ...rest }: PageButtonProps) {\n return (\n <PageButton\n className={styles['page-number']}\n pageIndex={pageIndex}\n {...rest}\n {...(rest.disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: `${pageIndex}`,\n },\n }))}\n >\n {pageIndex}\n </PageButton>\n );\n}\n\ntype InternalPaginationProps = PaginationProps & InternalBaseComponentProps;\n\nconst InternalPagination = React.forwardRef(\n (\n {\n openEnd,\n currentPageIndex,\n ariaLabels,\n i18nStrings,\n pagesCount,\n disabled,\n pagesVariant = 'normal',\n onChange,\n onNextPageClick,\n onPreviousPageClick,\n __internalRootRef,\n jumpToPage,\n ...rest\n }: InternalPaginationProps,\n ref: React.Ref<PaginationProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const { leftDots, leftIndex, rightIndex, rightDots } = getPaginationState(currentPageIndex, pagesCount, openEnd);\n const [jumpToPageValue, setJumpToPageValue] = useState(currentPageIndex?.toString());\n const previousLoading = usePrevious(jumpToPage?.loading);\n const jumpToPageInputRef = useRef<HTMLInputElement>(null);\n const [hasError, setHasError] = useState(false);\n\n const i18n = useInternalI18n('pagination');\n\n // Expose setError function via ref\n React.useImperativeHandle(ref, () => ({\n setError: (error: boolean) => setHasError(error),\n }));\n\n // Sync input with currentPageIndex after loading completes\n React.useEffect(() => {\n if (previousLoading && !jumpToPage?.loading) {\n setJumpToPageValue(String(currentPageIndex));\n }\n }, [previousLoading, jumpToPage?.loading, currentPageIndex]);\n\n const paginationLabel = ariaLabels?.paginationLabel ?? '';\n const nextPageLabel = i18n('ariaLabels.nextPageLabel', ariaLabels?.nextPageLabel) ?? '';\n const previousPageLabel = i18n('ariaLabels.previousPageLabel', ariaLabels?.previousPageLabel) ?? '';\n const pageNumberLabelFn =\n i18n('ariaLabels.pageLabel', ariaLabels?.pageLabel, format => pageNumber => format({ pageNumber })) ??\n ((pageNumber: number) => `${pageNumber}`);\n\n const pagesCompactText = i18n(\n 'i18nStrings.pagesCompactText',\n i18nStrings?.pagesCompactText,\n format => options =>\n format({\n currentPage: options.currentPage,\n pagesCount: options.pagesCount,\n openEnd: options.openEnd ? 'true' : 'false',\n })\n );\n\n const jumpToPageLabel = i18n('i18nStrings.jumpToPageInputLabel', i18nStrings?.jumpToPageInputLabel) ?? '';\n const jumpToPageButtonLabel = i18n('ariaLabels.jumpToPageButtonLabel', ariaLabels?.jumpToPageButton) ?? '';\n const jumpToPageError = i18n('i18nStrings.jumpToPageError', i18nStrings?.jumpToPageError) ?? '';\n const jumpToPageLoadingText = i18n('i18nStrings.jumpToPageLoadingText', i18nStrings?.jumpToPageLoadingText) ?? '';\n\n function handlePrevPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onPreviousPageClick, {\n requestedPageAvailable: true,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handleNextPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onNextPageClick, {\n requestedPageAvailable: currentPageIndex < pagesCount,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handlePageClick(requestedPageIndex: number, errorState?: boolean) {\n setJumpToPageValue(String(requestedPageIndex));\n setHasError(!!errorState); // Clear error on successful navigation\n fireNonCancelableEvent(onChange, { currentPageIndex: requestedPageIndex });\n }\n\n function handleJumpToPageClick(requestedPageIndex: number) {\n const adjustedIndex = Math.max(1, Math.floor(requestedPageIndex));\n\n if (openEnd) {\n // Open-end: always navigate, parent will handle async loading\n handlePageClick(adjustedIndex);\n } else {\n // Closed-end: validate range\n if (adjustedIndex >= 1 && adjustedIndex <= pagesCount) {\n handlePageClick(adjustedIndex);\n } else {\n // Out of range - set error and navigate to last page\n handlePageClick(pagesCount, true);\n }\n }\n jumpToPageInputRef.current?.focus();\n }\n\n // Auto-clear error when user types in the input\n const handleInputChange = (e: NonCancelableCustomEvent<BaseChangeDetail>) => {\n setJumpToPageValue(e.detail.value);\n if (hasError) {\n setHasError(false);\n }\n };\n\n const previousButtonDisabled = disabled || currentPageIndex === 1;\n const nextButtonDisabled = disabled || (!openEnd && (pagesCount === 0 || currentPageIndex === pagesCount));\n const tableComponentContext = useTableComponentsContext();\n if (tableComponentContext?.paginationRef?.current) {\n tableComponentContext.paginationRef.current.currentPageIndex = currentPageIndex;\n tableComponentContext.paginationRef.current.totalPageCount = pagesCount;\n tableComponentContext.paginationRef.current.openEnd = openEnd;\n }\n\n const jumpToPageButton = (\n <InternalButton\n iconName=\"arrow-right\"\n variant=\"icon\"\n loading={jumpToPage?.loading}\n loadingText={jumpToPageLoadingText}\n ariaLabel={jumpToPage?.loading ? jumpToPageLoadingText : jumpToPageButtonLabel}\n onClick={() => handleJumpToPageClick(Number(jumpToPageValue))}\n disabled={disabled || !jumpToPageValue || Number(jumpToPageValue) === currentPageIndex}\n />\n );\n\n return (\n <ul\n aria-label={paginationLabel}\n {...baseProps}\n className={clsx(baseProps.className, styles.root, disabled && styles['root-disabled'])}\n ref={__internalRootRef}\n >\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex - 1}\n ariaLabel={previousPageLabel}\n disabled={previousButtonDisabled}\n onClick={handlePrevPageClick}\n {...(previousButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'prev',\n },\n }))}\n >\n <InternalIcon name=\"angle-left\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n {pagesVariant === 'compact' ? (\n <li aria-disabled={disabled ? true : undefined} className={styles['pages-compact']}>\n <span className={testUtilStyles['pages-compact-text']}>\n {pagesCompactText?.({\n currentPage: currentPageIndex,\n pagesCount,\n openEnd: !!openEnd,\n })}\n </span>\n </li>\n ) : (\n <>\n <PageNumber\n pageIndex={1}\n isCurrent={currentPageIndex === 1}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(1)}\n onClick={handlePageClick}\n />\n {leftDots && <li className={styles.dots}>...</li>}\n {range(leftIndex, rightIndex).map(pageIndex => (\n <PageNumber\n key={pageIndex}\n isCurrent={currentPageIndex === pageIndex}\n pageIndex={pageIndex}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pageIndex)}\n onClick={handlePageClick}\n />\n ))}\n {rightDots && <li className={styles.dots}>...</li>}\n {!openEnd && pagesCount > 1 && (\n <PageNumber\n isCurrent={currentPageIndex === pagesCount}\n pageIndex={pagesCount}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pagesCount)}\n onClick={handlePageClick}\n />\n )}\n </>\n )}\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex + 1}\n ariaLabel={nextPageLabel}\n disabled={nextButtonDisabled}\n onClick={handleNextPageClick}\n {...(nextButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'next',\n },\n }))}\n >\n <InternalIcon name=\"angle-right\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n {jumpToPage && (\n <li className={styles['jump-to-page']}>\n <InternalSpaceBetween size=\"xxs\" direction=\"horizontal\" alignItems=\"end\">\n <div className={styles['jump-to-page-input']}>\n <InternalInput\n ref={jumpToPageInputRef}\n type=\"number\"\n value={jumpToPageValue}\n disabled={disabled}\n __inlineLabelText={jumpToPageLabel || undefined}\n __fullWidth={true}\n ariaLabel={jumpToPageLabel || undefined}\n nativeInputAttributes={{\n min: 1,\n max: !openEnd ? pagesCount : undefined,\n }}\n onChange={handleInputChange}\n onBlur={() => setHasError(false)}\n onKeyDown={e => {\n if (e.detail.keyCode === 13 && jumpToPageValue && Number(jumpToPageValue) !== currentPageIndex) {\n handleJumpToPageClick(Number(jumpToPageValue));\n }\n }}\n />\n </div>\n {hasError && !jumpToPage?.loading ? (\n <InternalPopover\n size=\"medium\"\n dismissButton={false}\n __visible={true}\n content={jumpToPageError}\n position=\"bottom\"\n triggerType=\"custom\"\n __onVisibleChange={({ detail }) => !detail.visible && setHasError(false)}\n >\n {jumpToPageButton}\n </InternalPopover>\n ) : (\n jumpToPageButton\n )}\n </InternalSpaceBetween>\n </li>\n )}\n </ul>\n );\n }\n);\n\nexport default InternalPagination;\n"]}
|
package/pagination/styles.css.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"root": "
|
|
5
|
-
"button": "
|
|
6
|
-
"dots": "
|
|
7
|
-
"button-disabled": "awsui_button-
|
|
8
|
-
"arrow": "
|
|
9
|
-
"page-number": "awsui_page-
|
|
10
|
-
"button-current": "awsui_button-
|
|
11
|
-
"jump-to-page": "awsui_jump-to-
|
|
12
|
-
"jump-to-page-input": "awsui_jump-to-page-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
4
|
+
"root": "awsui_root_fvjdu_1ekf1_145",
|
|
5
|
+
"button": "awsui_button_fvjdu_1ekf1_186",
|
|
6
|
+
"dots": "awsui_dots_fvjdu_1ekf1_187",
|
|
7
|
+
"button-disabled": "awsui_button-disabled_fvjdu_1ekf1_215",
|
|
8
|
+
"arrow": "awsui_arrow_fvjdu_1ekf1_220",
|
|
9
|
+
"page-number": "awsui_page-number_fvjdu_1ekf1_230",
|
|
10
|
+
"button-current": "awsui_button-current_fvjdu_1ekf1_236",
|
|
11
|
+
"jump-to-page": "awsui_jump-to-page_fvjdu_1ekf1_249",
|
|
12
|
+
"jump-to-page-input": "awsui_jump-to-page-input_fvjdu_1ekf1_257",
|
|
13
|
+
"pages-compact": "awsui_pages-compact_fvjdu_1ekf1_267",
|
|
14
|
+
"page-item": "awsui_page-item_fvjdu_1ekf1_272",
|
|
15
|
+
"root-disabled": "awsui_root-disabled_fvjdu_1ekf1_293"
|
|
15
16
|
};
|
|
16
17
|
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
*/
|
|
143
143
|
/* Style used for links in slots/components that are text heavy, to help links stand out among
|
|
144
144
|
surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
|
|
145
|
-
.
|
|
145
|
+
.awsui_root_fvjdu_1ekf1_145:not(#\9) {
|
|
146
146
|
border-collapse: separate;
|
|
147
147
|
border-spacing: 0;
|
|
148
148
|
box-sizing: border-box;
|
|
@@ -183,14 +183,14 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
183
183
|
list-style: none;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
.
|
|
187
|
-
.
|
|
186
|
+
.awsui_button_fvjdu_1ekf1_186:not(#\9),
|
|
187
|
+
.awsui_dots_fvjdu_1ekf1_187:not(#\9) {
|
|
188
188
|
min-inline-size: var(--space-l-2ud1p3, 20px);
|
|
189
189
|
border-block: var(--border-width-button-jm0qg7, 2px) solid transparent;
|
|
190
190
|
border-inline: var(--border-width-button-jm0qg7, 2px) solid transparent;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
.
|
|
193
|
+
.awsui_button_fvjdu_1ekf1_186:not(#\9) {
|
|
194
194
|
cursor: pointer;
|
|
195
195
|
text-align: center;
|
|
196
196
|
box-sizing: border-box;
|
|
@@ -199,10 +199,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
199
199
|
padding-block: 0;
|
|
200
200
|
padding-inline: 0;
|
|
201
201
|
}
|
|
202
|
-
.
|
|
202
|
+
.awsui_button_fvjdu_1ekf1_186:not(#\9):focus {
|
|
203
203
|
outline: none;
|
|
204
204
|
}
|
|
205
|
-
body[data-awsui-focus-visible=true] .
|
|
205
|
+
body[data-awsui-focus-visible=true] .awsui_button_fvjdu_1ekf1_186:not(#\9):focus {
|
|
206
206
|
outline: 2px dotted transparent;
|
|
207
207
|
border-block: var(--border-width-button-jm0qg7, 2px) solid var(--color-border-item-focused-uk47pl, #006ce0);
|
|
208
208
|
border-inline: var(--border-width-button-jm0qg7, 2px) solid var(--color-border-item-focused-uk47pl, #006ce0);
|
|
@@ -212,41 +212,41 @@ body[data-awsui-focus-visible=true] .awsui_button_fvjdu_ho015_186:not(#\9):focus
|
|
|
212
212
|
border-end-end-radius: var(--border-radius-control-default-focus-ring-1uabki, 4px);
|
|
213
213
|
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-9mjajk, 1px) var(--color-border-item-focused-uk47pl, #006ce0);
|
|
214
214
|
}
|
|
215
|
-
.awsui_button-
|
|
215
|
+
.awsui_button-disabled_fvjdu_1ekf1_215:not(#\9) {
|
|
216
216
|
cursor: default;
|
|
217
217
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
.
|
|
220
|
+
.awsui_arrow_fvjdu_1ekf1_220:not(#\9) {
|
|
221
221
|
color: var(--color-text-interactive-default-ugh9wp, #424650);
|
|
222
222
|
}
|
|
223
|
-
.
|
|
223
|
+
.awsui_arrow_fvjdu_1ekf1_220:not(#\9):not(.awsui_button-disabled_fvjdu_1ekf1_215):hover {
|
|
224
224
|
color: var(--color-text-interactive-hover-6naf7i, #0f141a);
|
|
225
225
|
}
|
|
226
|
-
.
|
|
226
|
+
.awsui_arrow_fvjdu_1ekf1_220.awsui_button-disabled_fvjdu_1ekf1_215:not(#\9) {
|
|
227
227
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
.awsui_page-
|
|
230
|
+
.awsui_page-number_fvjdu_1ekf1_230:not(#\9) {
|
|
231
231
|
color: var(--color-text-pagination-page-number-default-74j15c, #424650);
|
|
232
232
|
}
|
|
233
|
-
.awsui_page-
|
|
233
|
+
.awsui_page-number_fvjdu_1ekf1_230:not(#\9):not(.awsui_button-disabled_fvjdu_1ekf1_215):hover {
|
|
234
234
|
color: var(--color-text-interactive-hover-6naf7i, #0f141a);
|
|
235
235
|
}
|
|
236
|
-
.awsui_page-
|
|
236
|
+
.awsui_page-number_fvjdu_1ekf1_230.awsui_button-current_fvjdu_1ekf1_236:not(#\9) {
|
|
237
237
|
font-weight: var(--font-wayfinding-link-active-weight-ny4hup, 700);
|
|
238
238
|
-webkit-font-smoothing: var(--font-smoothing-webkit-oemolo, antialiased);
|
|
239
239
|
-moz-osx-font-smoothing: var(--font-smoothing-moz-osx-hbm0aq, grayscale);
|
|
240
240
|
color: var(--color-text-interactive-active-uoe6zi, #0f141a);
|
|
241
241
|
}
|
|
242
|
-
.awsui_page-
|
|
242
|
+
.awsui_page-number_fvjdu_1ekf1_230.awsui_button-current_fvjdu_1ekf1_236.awsui_button-disabled_fvjdu_1ekf1_215:not(#\9) {
|
|
243
243
|
color: var(--color-text-pagination-page-number-active-disabled-gfl43p, #b4b4bb);
|
|
244
244
|
}
|
|
245
|
-
.awsui_page-
|
|
245
|
+
.awsui_page-number_fvjdu_1ekf1_230.awsui_button-disabled_fvjdu_1ekf1_215:not(#\9) {
|
|
246
246
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
.awsui_jump-to-
|
|
249
|
+
.awsui_jump-to-page_fvjdu_1ekf1_249:not(#\9) {
|
|
250
250
|
border-inline-start: var(--border-divider-section-width-uwo8my, 1px) solid var(--color-border-divider-default-nr68jt, #c6c6cd);
|
|
251
251
|
box-sizing: border-box;
|
|
252
252
|
margin-inline-start: var(--space-xs-ymlm0b, 8px);
|
|
@@ -254,18 +254,24 @@ body[data-awsui-focus-visible=true] .awsui_button_fvjdu_ho015_186:not(#\9):focus
|
|
|
254
254
|
padding-inline-start: 15px;
|
|
255
255
|
list-style: none;
|
|
256
256
|
}
|
|
257
|
-
.awsui_jump-to-page-
|
|
257
|
+
.awsui_jump-to-page-input_fvjdu_1ekf1_257:not(#\9) {
|
|
258
258
|
inline-size: 87px;
|
|
259
259
|
margin-block-start: -0.6em;
|
|
260
260
|
overflow: visible;
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
-
.
|
|
263
|
+
.awsui_dots_fvjdu_1ekf1_187:not(#\9) {
|
|
264
264
|
color: var(--color-text-interactive-default-ugh9wp, #424650);
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
-
.
|
|
268
|
-
|
|
267
|
+
.awsui_pages-compact_fvjdu_1ekf1_267:not(#\9) {
|
|
268
|
+
color: var(--color-text-pagination-page-number-default-74j15c, #424650);
|
|
269
|
+
white-space: nowrap;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.awsui_page-item_fvjdu_1ekf1_272:not(#\9),
|
|
273
|
+
.awsui_dots_fvjdu_1ekf1_187:not(#\9),
|
|
274
|
+
.awsui_pages-compact_fvjdu_1ekf1_267:not(#\9) {
|
|
269
275
|
margin-block: var(--space-field-vertical-vm99qz, 5px);
|
|
270
276
|
margin-inline: var(--space-xxs-hwfkai, 4px);
|
|
271
277
|
text-align: center;
|
|
@@ -273,15 +279,18 @@ body[data-awsui-focus-visible=true] .awsui_button_fvjdu_ho015_186:not(#\9):focus
|
|
|
273
279
|
padding-block: 0;
|
|
274
280
|
padding-inline: 0;
|
|
275
281
|
}
|
|
276
|
-
.awsui_page-
|
|
277
|
-
.
|
|
282
|
+
.awsui_page-item_fvjdu_1ekf1_272:not(#\9):first-child,
|
|
283
|
+
.awsui_dots_fvjdu_1ekf1_187:not(#\9):first-child,
|
|
284
|
+
.awsui_pages-compact_fvjdu_1ekf1_267:not(#\9):first-child {
|
|
278
285
|
margin-inline-start: 0;
|
|
279
286
|
}
|
|
280
|
-
.awsui_page-
|
|
281
|
-
.
|
|
287
|
+
.awsui_page-item_fvjdu_1ekf1_272:not(#\9):last-child,
|
|
288
|
+
.awsui_dots_fvjdu_1ekf1_187:not(#\9):last-child,
|
|
289
|
+
.awsui_pages-compact_fvjdu_1ekf1_267:not(#\9):last-child {
|
|
282
290
|
margin-inline-end: 0;
|
|
283
291
|
}
|
|
284
292
|
|
|
285
|
-
.awsui_root-
|
|
293
|
+
.awsui_root-disabled_fvjdu_1ekf1_293 > .awsui_dots_fvjdu_1ekf1_187:not(#\9),
|
|
294
|
+
.awsui_root-disabled_fvjdu_1ekf1_293 > .awsui_pages-compact_fvjdu_1ekf1_267:not(#\9) {
|
|
286
295
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
287
296
|
}
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"root": "
|
|
6
|
-
"button": "
|
|
7
|
-
"dots": "
|
|
8
|
-
"button-disabled": "awsui_button-
|
|
9
|
-
"arrow": "
|
|
10
|
-
"page-number": "awsui_page-
|
|
11
|
-
"button-current": "awsui_button-
|
|
12
|
-
"jump-to-page": "awsui_jump-to-
|
|
13
|
-
"jump-to-page-input": "awsui_jump-to-page-
|
|
14
|
-
"
|
|
15
|
-
"
|
|
5
|
+
"root": "awsui_root_fvjdu_1ekf1_145",
|
|
6
|
+
"button": "awsui_button_fvjdu_1ekf1_186",
|
|
7
|
+
"dots": "awsui_dots_fvjdu_1ekf1_187",
|
|
8
|
+
"button-disabled": "awsui_button-disabled_fvjdu_1ekf1_215",
|
|
9
|
+
"arrow": "awsui_arrow_fvjdu_1ekf1_220",
|
|
10
|
+
"page-number": "awsui_page-number_fvjdu_1ekf1_230",
|
|
11
|
+
"button-current": "awsui_button-current_fvjdu_1ekf1_236",
|
|
12
|
+
"jump-to-page": "awsui_jump-to-page_fvjdu_1ekf1_249",
|
|
13
|
+
"jump-to-page-input": "awsui_jump-to-page-input_fvjdu_1ekf1_257",
|
|
14
|
+
"pages-compact": "awsui_pages-compact_fvjdu_1ekf1_267",
|
|
15
|
+
"page-item": "awsui_page-item_fvjdu_1ekf1_272",
|
|
16
|
+
"root-disabled": "awsui_root-disabled_fvjdu_1ekf1_293"
|
|
16
17
|
};
|
|
17
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/prompt-input/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAiB3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAIlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,UAAU,wBACR,SAAQ,YAAY,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC,EAC3D,0BAA0B;CAAG;AAEjC,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/prompt-input/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAiB3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAIlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,UAAU,wBACR,SAAQ,YAAY,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC,EAC3D,0BAA0B;CAAG;AAEjC,QAAA,MAAM,mBAAmB,gJA2cxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
package/prompt-input/internal.js
CHANGED
|
@@ -73,7 +73,12 @@ const InternalPromptInput = React.forwardRef(({ value: valueProp, actionButtonAr
|
|
|
73
73
|
const scrollTop = element.scrollTop;
|
|
74
74
|
// this is required so the scrollHeight becomes dynamic, otherwise it will be locked at the highest value for the size it reached e.g. 500px
|
|
75
75
|
element.style.height = 'auto';
|
|
76
|
-
|
|
76
|
+
// The native textarea already grows to its `rows={minRows}` attribute, so this
|
|
77
|
+
// formula only needs to act as a one-line floor there. The contentEditable div used
|
|
78
|
+
// in token mode has no equivalent native sizing, so it must scale with minRows directly.
|
|
79
|
+
const minRowsHeight = isTokenMode
|
|
80
|
+
? `calc(${minRows} * (${LINE_HEIGHT} + ${PADDING} / 2) + ${PADDING})`
|
|
81
|
+
: `calc(${LINE_HEIGHT} + ${designTokens.spaceFieldVertical} * 2)`;
|
|
77
82
|
const scrollHeight = `calc(${element.scrollHeight}px)`;
|
|
78
83
|
if (maxRows === -1) {
|
|
79
84
|
element.style.height = `max(${scrollHeight}, ${minRowsHeight})`;
|
|
@@ -94,11 +99,18 @@ const InternalPromptInput = React.forwardRef(({ value: valueProp, actionButtonAr
|
|
|
94
99
|
requestAnimationFrame(() => adjustInputHeight());
|
|
95
100
|
}
|
|
96
101
|
}, [isTokenMode, tokens, adjustInputHeight, isCompactMode, placeholder]);
|
|
102
|
+
// When minRows/maxRows change, recalculate height synchronously — these prop
|
|
103
|
+
// changes don't involve caret position so no RAF deferral is needed.
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (isTokenMode) {
|
|
106
|
+
adjustInputHeight();
|
|
107
|
+
}
|
|
108
|
+
}, [isTokenMode, adjustInputHeight, minRows, maxRows]);
|
|
97
109
|
useEffect(() => {
|
|
98
110
|
if (!isTokenMode) {
|
|
99
111
|
adjustInputHeight();
|
|
100
112
|
}
|
|
101
|
-
}, [isTokenMode, value, adjustInputHeight, isCompactMode, placeholder]);
|
|
113
|
+
}, [isTokenMode, value, adjustInputHeight, isCompactMode, placeholder, minRows, maxRows]);
|
|
102
114
|
// Observe width changes on the component's root element to handle container resizes.
|
|
103
115
|
// We need a separate RefObject because __internalRootRef may be a callback ref,
|
|
104
116
|
// and useWidthChange needs a RefObject with .current to read the DOM node.
|