From f5af78e20804ca0f737eb5ca2fbc5e54bfc8c1c3 Mon Sep 17 00:00:00 2001 From: Daniel Leroux Date: Thu, 21 Nov 2024 12:42:12 +0100 Subject: [PATCH] feat(core): form component overhaul (#1318) --- .changeset/modern-comics-grow.md | 27 + .changeset/olive-peaches-march.md | 5 + .changeset/polite-crews-camp.md | 5 + .gitignore | 1 + SECURITY.md | 25 +- package.json | 7 + packages/aggrid/scss/ix-aggrid.scss | 11 + packages/aggrid/tests/aggrid.e2e.ts | 1 + ...-1-chromium---theme-classic-dark-linux.png | Bin 25175 -> 25556 bytes ...1-chromium---theme-classic-light-linux.png | Bin 26443 -> 26765 bytes .../src/app/app-routing.module.ts | 252 +- .../src/app/app.component.html | 1 - .../angular-test-app/src/app/app.module.ts | 157 +- .../custom-field-validation.html | 51 + .../custom-field-validation.ts | 16 + .../src/preview-examples/custom-field.html | 19 + .../src/preview-examples/custom-field.ts | 25 + .../src/preview-examples/date-dropdown.html | 9 + .../src/preview-examples/date-dropdown.ts | 2 +- .../preview-examples/date-input-disabled.html | 10 + .../preview-examples/date-input-disabled.ts | 16 + .../preview-examples/date-input-label.html | 15 + .../src/preview-examples/date-input-label.ts | 16 + .../preview-examples/date-input-readonly.html | 10 + .../preview-examples/date-input-readonly.ts | 16 + .../date-input-validation.html | 41 + .../preview-examples/date-input-validation.ts | 16 + .../src/preview-examples/date-input.html | 10 + .../src/preview-examples/date-input.ts | 16 + .../form-checkbox-disabled.html | 10 + .../form-checkbox-disabled.ts | 16 + .../form-checkbox-group-indeterminate.css | 16 + .../form-checkbox-group-indeterminate.html | 24 + .../form-checkbox-group-indeterminate.ts | 46 + .../preview-examples/form-checkbox-group.html | 13 + .../preview-examples/form-checkbox-group.ts | 17 + .../form-checkbox-validation.html | 51 + .../form-checkbox-validation.ts | 17 + .../src/preview-examples/form-checkbox.html | 10 + .../src/preview-examples/form-checkbox.ts | 16 + .../preview-examples/form-layout-auto.html | 7 + .../src/preview-examples/form-layout-auto.ts | 16 + .../src/preview-examples/form-layout-grid.css | 7 + .../preview-examples/form-layout-grid.html | 23 + .../src/preview-examples/form-layout-grid.ts | 17 + .../src/preview-examples/form-validation.css | 22 + .../src/preview-examples/form-validation.html | 110 + .../src/preview-examples/form-validation.ts | 174 + .../src/preview-examples/input-disabled.html | 13 + .../src/preview-examples/input-disabled.ts | 11 +- .../input-form-validation.html | 18 + .../preview-examples/input-form-validation.ts | 25 + .../src/preview-examples/input-label.html | 15 + .../src/preview-examples/input-label.ts | 16 + .../preview-examples/input-legacy-disabled.ts | 25 + ...input-labels.ts => input-legacy-labels.ts} | 2 +- .../preview-examples/input-legacy-readonly.ts | 25 + ...input-search.ts => input-legacy-search.ts} | 6 +- .../preview-examples/input-legacy-types.ts | 45 + ...with-icon.ts => input-legacy-with-icon.ts} | 2 +- .../src/preview-examples/input-legacy.ts | 24 + .../src/preview-examples/input-pattern.html | 13 + .../src/preview-examples/input-pattern.ts | 16 + .../src/preview-examples/input-readonly.html | 14 + .../src/preview-examples/input-readonly.ts | 11 +- .../src/preview-examples/input-types.html | 49 + .../src/preview-examples/input-types.ts | 33 +- .../preview-examples/input-validation.html | 35 + .../src/preview-examples/input-validation.ts | 16 + .../src/preview-examples/input.html | 12 + .../src/preview-examples/input.ts | 10 +- .../preview-examples/layout-auto-custom.html | 16 + .../preview-examples/layout-auto-custom.ts | 23 + .../src/preview-examples/layout-auto.css | 24 + .../src/preview-examples/layout-auto.html | 16 + .../src/preview-examples/layout-auto.ts | 17 + .../number-input-disabled.html | 10 + .../preview-examples/number-input-disabled.ts | 16 + .../preview-examples/number-input-label.html | 13 + .../preview-examples/number-input-label.ts | 16 + .../number-input-readonly.html | 10 + .../preview-examples/number-input-readonly.ts | 16 + .../number-input-stepper-button.html | 13 + .../number-input-stepper-button.ts | 16 + .../number-input-validation.html | 41 + .../number-input-validation.ts | 16 + .../src/preview-examples/number-input.html | 10 + .../src/preview-examples/number-input.ts | 16 + .../src/preview-examples/radio-disabled.html | 16 + .../src/preview-examples/radio-disabled.ts | 16 + .../src/preview-examples/radio-group.html | 32 + .../src/preview-examples/radio-group.ts | 16 + .../preview-examples/radio-validation.html | 52 + .../src/preview-examples/radio-validation.ts | 16 + .../src/preview-examples/radio.html | 6 + .../src/preview-examples/radio.ts | 16 + .../preview-examples/select-validation.html | 58 + .../src/preview-examples/select-validation.ts | 16 + .../preview-examples/textarea-disabled.html | 18 + .../src/preview-examples/textarea-disabled.ts | 6 +- .../textarea-legacy-disabled.ts | 20 + .../textarea-legacy-readonly.ts | 20 + .../src/preview-examples/textarea-legacy.ts | 16 + .../preview-examples/textarea-readonly.html | 15 + .../src/preview-examples/textarea-readonly.ts | 6 +- .../preview-examples/textarea-rows-cols.html | 18 + .../preview-examples/textarea-rows-cols.ts | 16 + .../preview-examples/textarea-validation.html | 58 + .../preview-examples/textarea-validation.ts | 17 + .../src/preview-examples/textarea.html | 14 + .../src/preview-examples/textarea.ts | 2 +- .../preview-examples/validation-select.html | 21 + .../src/preview-examples/validation-select.ts | 25 + packages/angular/src/app-initialize.ts | 2 +- .../angular/src/boolean-value-accessor.ts | 27 - packages/angular/src/components.ts | 385 +- .../boolean-value-accessor.ts | 37 + .../date-value-accessor.ts | 32 + .../src/control-value-accessors/index.ts | 13 + .../radio-value-accessor.ts | 39 + .../select-value-accessor.ts | 32 + .../text-value-accessor.ts | 33 + .../control-value-accessors/value-accessor.ts | 152 + packages/angular/src/declare-components.ts | 13 +- packages/angular/src/index.ts | 3 +- packages/angular/src/module.ts | 16 +- packages/angular/src/select-value-accessor.ts | 24 - packages/angular/src/value-accessor.ts | 39 - packages/core/component-doc.json | 17650 ++++++++++------ packages/core/package.json | 4 +- .../core/scss/components/form/_input.scss | 102 +- packages/core/scss/mixins/_field.scss | 18 + .../mixins/validation/_form-component.scss | 64 + packages/core/src/components.d.ts | 1940 +- .../category-filter/category-filter.scss | 21 +- .../checkbox-group/checkbox-group.scss | 26 + .../checkbox-group/checkbox-group.tsx | 110 + .../src/components/checkbox/checkbox.scss | 264 + .../core/src/components/checkbox/checkbox.tsx | 217 + .../components/checkbox/tests/checkbox.ct.ts | 57 + .../custom-field.scss} | 7 +- .../components/custom-field/custom-field.tsx | 113 + .../custom-field/tests/custom-field.ct.ts | 90 + .../date-dropdown/date-dropdown.tsx | 3 +- .../src/components/date-input/date-input.scss | 35 + .../src/components/date-input/date-input.tsx | 468 + .../date-input/tests/date-input.ct.ts | 164 + .../date-time-card/date-time-card.tsx | 7 +- .../core/src/components/drawer/drawer.scss | 4 - .../core/src/components/drawer/drawer.tsx | 54 +- .../components/drawer/test/drawer.spec.tsx | 17 +- .../dropdown/dropdown-controller.ts | 6 +- .../core/src/components/dropdown/dropdown.tsx | 10 +- .../components/field-label/field-label.scss | 16 + .../components/field-label/field-label.tsx | 196 + .../field-label/tests/field-label.ct.ts | 178 + .../field-wrapper/field-wrapper.mixins.scss | 40 + .../field-wrapper/field-wrapper.scss | 38 + .../field-wrapper/field-wrapper.tsx | 148 + .../field-wrapper/helper-text-util.tsx | 102 + .../field-wrapper/tests/field-wrapper.ct.ts | 82 + .../src/components/form-field/form-field.tsx | 40 - .../components/helper-text/helper-text.scss | 7 + .../components/helper-text/helper-text.tsx | 113 + .../src/components/input/input.animation.ts | 36 + .../core/src/components/input/input.fc.tsx | 143 + .../src/components/input/input.mixins.scss | 154 + packages/core/src/components/input/input.scss | 25 + packages/core/src/components/input/input.tsx | 320 + .../core/src/components/input/input.util.ts | 154 + .../src/components/input/number-input.scss | 31 + .../src/components/input/number-input.tsx | 332 + .../components/input/tests/form-ready.ct.ts | 88 + .../core/src/components/input/textarea.scss | 56 + .../core/src/components/input/textarea.tsx | 272 + .../components/layout-auto/layout-auto.scss | 19 + .../components/layout-auto/layout-auto.tsx | 134 + .../{grid => layout-grid}/layout-grid.scss | 0 .../{grid => layout-grid}/layout-grid.tsx | 0 .../src/components/playground/playground.tsx | 4 +- .../components/radio-group/radio-group.scss | 26 + .../components/radio-group/radio-group.tsx | 202 + .../radio-group/test/radio-group.ct.ts | 123 + packages/core/src/components/radio/radio.scss | 264 + packages/core/src/components/radio/radio.tsx | 177 + .../src/components/radio/test/radio.ct.ts | 47 + .../core/src/components/select/select.scss | 51 + .../core/src/components/select/select.tsx | 395 +- .../src/components/select/test/select.ct.ts | 57 +- .../src/components/toggle/test/toggle.ct.ts | 37 +- .../core/src/components/toggle/toggle.scss | 74 +- .../core/src/components/toggle/toggle.tsx | 65 +- packages/core/src/components/utils/a11y.ts | 19 +- .../utils/application-layout/context.ts | 10 +- .../core/src/components/utils/attributes.ts | 33 + .../core/src/components/utils/input/index.ts | 108 + .../src/components/utils/input/validation.ts | 178 + .../src/components/utils/theme-switcher.ts | 9 +- .../core/src/components/utils/type-helper.ts | 9 + packages/core/src/components/utils/uuid.ts | 18 + packages/core/src/index.ts | 8 + packages/core/src/setup.ts | 39 +- .../src/tests/checkbox-group/basic/index.html | 27 + .../checkbox-group/checkbox-group.e2e.ts | 27 + ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 14650 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 14635 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 11498 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 11439 bytes packages/core/src/tests/drawer/drawer.e2e.ts | 7 + ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 8397 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 8511 bytes .../src/tests/drawer/full-height/index.html | 28 + .../src/tests/form-fields/basic/index.html | 207 + .../src/tests/form-fields/form-fields.e2e.ts | 89 + ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 67190 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 66541 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 69462 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 69502 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 64367 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 64245 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 64669 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 64710 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 73524 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 73766 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 68010 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 67316 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 68984 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 68756 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 73143 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 73152 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 67315 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 67458 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 67482 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 68069 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 77700 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 77695 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 71727 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 70923 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 71760 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 71418 bytes .../core/src/tests/input/basic/index.html | 4 +- .../core/src/tests/input/disabled/index.html | 4 +- packages/core/src/tests/input/input.e2e.ts | 30 +- ...-1-chromium---theme-classic-dark-linux.png | Bin 9312 -> 4653 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9277 -> 4650 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 8567 -> 4306 bytes ...1-chromium---theme-classic-light-linux.png | Bin 8617 -> 4351 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 8567 -> 4306 bytes ...1-chromium---theme-classic-light-linux.png | Bin 8617 -> 4351 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 9297 -> 4920 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9295 -> 4898 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 9301 -> 4671 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9300 -> 4689 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 11617 -> 7314 bytes ...1-chromium---theme-classic-light-linux.png | Bin 11688 -> 7377 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 11617 -> 7314 bytes ...1-chromium---theme-classic-light-linux.png | Bin 11688 -> 7377 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 11017 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 10448 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 39379 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 39184 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 9751 -> 5355 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9759 -> 5334 bytes .../core/src/tests/input/readonly/index.html | 4 +- .../core/src/tests/input/tooltip/index.html | 32 + .../src/tests/input/with-slots/index.html | 96 + .../src/tests/number-input/basic/index.html | 42 + .../tests/number-input/number-input.e2e.ts | 18 + ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 19205 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 18856 bytes .../src/tests/radio-group/basic/index.html | 31 + .../src/tests/radio-group/radio-group.e2e.ts | 27 + ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 18620 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 18228 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 0 -> 11900 bytes ...1-chromium---theme-classic-light-linux.png | Bin 0 -> 11792 bytes .../src/tests/radiobutton/basic/index.html | 6 +- .../tests/radiobutton/long-text/index.html | 6 +- .../tests/radiobutton/no-checked/index.html | 6 +- ...-1-chromium---theme-classic-dark-linux.png | Bin 15362 -> 14410 bytes ...1-chromium---theme-classic-light-linux.png | Bin 14534 -> 13682 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 14909 -> 13943 bytes ...1-chromium---theme-classic-light-linux.png | Bin 14239 -> 13410 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 14909 -> 13943 bytes ...1-chromium---theme-classic-light-linux.png | Bin 14239 -> 13410 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 17235 -> 16388 bytes ...1-chromium---theme-classic-light-linux.png | Bin 17163 -> 16383 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 15629 -> 14669 bytes ...1-chromium---theme-classic-light-linux.png | Bin 14759 -> 13999 bytes .../core/src/tests/textarea/basic/index.html | 8 +- .../src/tests/textarea/disabled/index.html | 16 +- .../src/tests/textarea/readonly/index.html | 16 +- ...-1-chromium---theme-classic-dark-linux.png | Bin 9458 -> 9597 bytes ...1-chromium---theme-classic-light-linux.png | Bin 9437 -> 9594 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 5479 -> 5520 bytes ...1-chromium---theme-classic-light-linux.png | Bin 5457 -> 5494 bytes ...-1-chromium---theme-classic-dark-linux.png | Bin 5485 -> 5525 bytes ...1-chromium---theme-classic-light-linux.png | Bin 5464 -> 5501 bytes packages/core/src/tests/utils/test/index.ts | 21 + packages/core/stencil.config.ts | 34 +- .../docs/controls/_blind_code.md | 14 +- .../docs/controls/_blind_styleguide.md | 16 +- .../docs/controls/_breadcrumb_code.md | 48 +- .../docs/controls/_breadcrumb_styleguide.md | 20 +- .../docs/controls/_card-list_code.md | 18 +- .../docs/controls/_card-list_styleguide.md | 22 +- .../documentation/docs/controls/_card_code.md | 52 +- .../docs/controls/_card_styleguide.md | 27 +- .../docs/controls/_category-filter_code.md | 32 +- .../controls/_category-filter_styleguide.md | 31 +- .../documentation/docs/controls/_chip_code.md | 20 +- .../docs/controls/_chip_styleguide.md | 28 +- .../docs/controls/_content-header_code.md | 26 +- .../controls/_content-header_styleguide.md | 28 +- .../docs/controls/_custom-field_code.mdx | 35 + .../controls/_custom-field_styleguide.mdx | 44 + .../docs/controls/_date-input_code.mdx | 41 + .../docs/controls/_date-input_styleguide.mdx | 69 + .../docs/controls/_dropdown_code.md | 38 +- .../docs/controls/_dropdown_styleguide.md | 41 +- .../docs/controls/_forms-checkbox_code.mdx | 37 + .../controls/_forms-checkbox_styleguide.md | 39 + .../docs/controls/_forms-toggle_styleguide.md | 35 + .../docs/controls/_input_code.md | 51 + .../docs/controls/_input_styleguide.md | 52 + .../docs/controls/_layout-grid_code.md | 46 +- .../docs/controls/_layout-grid_styleguide.md | 40 +- .../docs/controls/_number-input_code.mdx | 45 + .../controls/_number-input_styleguide.mdx | 53 + .../docs/controls/_panes_code.md | 40 +- .../docs/controls/_panes_styleguide.md | 18 +- .../documentation/docs/controls/_pill_code.md | 28 +- .../docs/controls/_pill_styleguide.md | 25 +- .../docs/controls/_radio_code.mdx | 33 + .../docs/controls/_radio_styleguide.mdx | 43 + .../docs/controls/_select_code.mdx | 63 + .../docs/controls/_select_styleguide.md | 74 + .../docs/controls/_textarea-field_code.mdx | 37 + .../controls/_textarea-field_styleguide.mdx | 62 + .../docs/controls/_toast_code.md | 21 +- .../docs/controls/_toast_styleguide.md | 27 +- .../_about-and-legal_code.md | 32 +- .../_about-and-legal_styleguide.md | 16 +- .../_application-header_code.md | 27 +- .../_application-header_styleguide.md | 43 +- .../_application-menu_code.md | 78 +- .../_application-menu_styleguide.md | 44 +- .../application-frame/_application_code.md | 46 +- .../_application_styleguide.md | 16 +- .../_basic-navigation_code.md | 38 +- .../_basic-navigation_styleguide.md | 25 +- .../application-frame/_content_code.md | 25 +- .../application-frame/_content_styleguide.md | 2 + .../application-frame/_map-navigation_code.md | 44 +- .../_map-navigation_styleguide.md | 8 +- .../application-frame/_popover-news_code.md | 22 +- .../_popover-news_styleguide.md | 15 +- .../application-frame/_settings_code.md | 28 +- .../application-frame/_settings_styleguide.md | 9 +- .../application-frame/about-and-legal.md | 7 +- .../application-frame/application-header.md | 7 +- .../application-frame/application-menu.md | 7 +- .../controls/application-frame/application.md | 7 +- .../application-frame/basic-navigation.md | 7 +- .../controls/application-frame/content.md | 7 +- .../application-frame/map-navigation.md | 8 +- .../application-frame/popover-news.md | 7 +- .../controls/application-frame/settings.md | 7 +- packages/documentation/docs/controls/blind.md | 7 +- .../documentation/docs/controls/breadcrumb.md | 7 +- .../docs/controls/buttons/_button_code.md | 128 +- .../controls/buttons/_button_styleguide.md | 32 +- .../controls/buttons/_dropdown-button_code.md | 30 +- .../buttons/_dropdown-button_styleguide.md | 19 +- .../controls/buttons/_icon-button_code.md | 20 +- .../buttons/_icon-button_styleguide.md | 13 +- .../controls/buttons/_link-button_code.md | 24 +- .../buttons/_link-button_styleguide.md | 20 +- .../controls/buttons/_split-button_code.md | 36 +- .../buttons/_split-button_styleguide.md | 23 +- .../controls/buttons/_toggle-button_code.md | 102 +- .../buttons/_toggle-button_styleguide.md | 20 +- .../docs/controls/buttons/button.md | 7 +- .../docs/controls/buttons/dropdown-button.md | 7 +- .../docs/controls/buttons/icon-button.md | 7 +- .../docs/controls/buttons/link-button.md | 7 +- .../docs/controls/buttons/split-button.md | 7 +- .../docs/controls/buttons/toggle-buttons.md | 7 +- .../documentation/docs/controls/card-list.md | 7 +- packages/documentation/docs/controls/card.md | 12 +- .../docs/controls/category-filter.md | 7 +- .../documentation/docs/controls/charts/3d.md | 1 - .../docs/controls/charts/bar-chart.md | 1 - .../docs/controls/charts/gauge-chart.md | 1 - .../docs/controls/charts/line-chart.md | 1 - .../docs/controls/charts/overview.md | 6 +- .../docs/controls/charts/pie-chart.md | 1 - .../docs/controls/charts/special-chart.md | 1 - .../documentation/docs/controls/checkbox.md | 26 - .../documentation/docs/controls/checkbox.mdx | 24 + packages/documentation/docs/controls/chip.md | 7 +- .../docs/controls/content-header.md | 7 +- .../docs/controls/custom-field.mdx | 17 + .../documentation/docs/controls/dropdown.md | 7 +- .../docs/controls/forms/_category_.json | 3 + .../docs/controls/forms/_forms-field_code.mdx | 41 + .../controls/forms/_forms-field_style.mdx | 57 + .../controls/forms/_forms-layout_code.mdx | 47 + .../controls/forms/_forms-layout_style.mdx | 36 + .../controls/forms/_forms-validation_code.mdx | 104 + .../controls/forms/_forms-validation_style.md | 75 + .../docs/controls/forms/forms-behavior.md | 62 + .../docs/controls/forms/forms-field.md | 15 + .../docs/controls/forms/forms-layout.md | 15 + .../docs/controls/forms/forms-validation.mdx | 27 + .../docs/controls/input-date.mdx | 22 + .../docs/controls/input-number.mdx | 21 + packages/documentation/docs/controls/input.md | 61 - .../documentation/docs/controls/input.mdx | 24 + .../docs/controls/layout-auto.md | 38 + .../docs/controls/layout-grid.md | 7 +- .../documentation/docs/controls/messagebar.md | 2 +- .../documentation/docs/controls/pagination.md | 12 +- packages/documentation/docs/controls/panes.md | 7 +- packages/documentation/docs/controls/pill.md | 7 +- .../documentation/docs/controls/radio.mdx | 22 + .../docs/controls/radiobutton.md | 12 - .../documentation/docs/controls/select.md | 57 - .../documentation/docs/controls/select.mdx | 20 + .../documentation/docs/controls/textarea.md | 34 - .../documentation/docs/controls/textarea.mdx | 21 + packages/documentation/docs/controls/toast.md | 7 +- .../docs/controls/{toggle.md => toggle.mdx} | 0 .../docs/guidelines/_theme-switching_code.md | 15 +- .../guidelines/_theme-switching_styleguide.md | 15 +- .../docs/guidelines/theme-switching.md | 7 +- .../docs/icon-library/_icon_code.md | 21 +- .../docs/icon-library/_icon_styleguide.md | 62 +- .../documentation/docs/icon-library/icons.md | 7 +- .../documentation/docs/legacy/_category_.json | 3 + .../documentation/docs/legacy/checkbox.mdx | 28 + packages/documentation/docs/legacy/input.mdx | 60 + .../documentation/docs/legacy/radiobutton.mdx | 18 + .../documentation/docs/legacy/textarea.mdx | 33 + .../validation.md => legacy/validation.mdx} | 17 +- packages/documentation/docs/migration/uxt.md | 2 +- packages/documentation/scripts/api-tasks.ts | 10 +- .../documentation/scripts/download-theme.ts | 2 +- .../components/ApiTableTag/ApiTableTag.css | 5 - .../src/components/DocsTabs/DocsTabs.scss | 50 - .../src/components/DocsTabs/index.tsx | 125 - .../src/components/PlaygroundV2/index.tsx | 240 +- .../src/components/PlaygroundV2/utils.ts | 430 +- .../PlaygroundV3/angular-snippets.ts | 3 +- .../src/components/PlaygroundV3/index.tsx | 7 +- .../components/StackblitzEmbedded/index.tsx | 69 + .../src/components/Tags/LegacyTag.css | 35 + .../src/components/Tags/index.tsx | 26 + packages/documentation/src/css/api-table.scss | 8 +- packages/html-test-app/src/index.html | 5 +- .../application-breakpoints.html | 2 +- .../preview-examples/button-danger-ghost.html | 11 +- .../button-danger-outline.html | 11 +- .../src/preview-examples/button-danger.html | 3 +- .../button-grey-secondary.html | 2 +- .../src/preview-examples/button-loading.html | 2 +- .../src/preview-examples/content.html | 7 +- .../custom-field-validation.html | 63 + .../src/preview-examples/custom-field.html | 39 + .../preview-examples/date-input-disabled.html | 22 + .../preview-examples/date-input-label.html | 27 + .../preview-examples/date-input-readonly.html | 22 + .../date-input-validation.html | 57 + .../src/preview-examples/date-input.html | 22 + .../preview-examples/datepicker-locale.html | 2 +- .../preview-examples/drawer-full-height.html | 2 +- .../echarts-bar-horizontal-stacked.html | 7 +- .../preview-examples/echarts-bar-simple.html | 7 +- .../src/preview-examples/echarts-circle.html | 7 +- .../preview-examples/echarts-empty-state.html | 7 +- .../src/preview-examples/echarts-gauge.html | 7 +- .../echarts-line-advanced.html | 7 +- .../echarts-line-multiple-y-axis.html | 7 +- .../preview-examples/echarts-line-simple.html | 7 +- .../src/preview-examples/echarts-pie.html | 7 +- .../echarts-progress-arc.html | 7 +- .../echarts-progress-circle.html | 7 +- .../preview-examples/echarts-special-3d.html | 7 +- .../echarts-special-toolbox.html | 7 +- .../echarts-special-zoom.html | 7 +- .../form-checkbox-disabled.html | 26 + .../form-checkbox-group-indeterminate.css | 16 + .../form-checkbox-group-indeterminate.html | 67 + .../preview-examples/form-checkbox-group.html | 25 + .../form-checkbox-validation.html | 63 + .../src/preview-examples/form-checkbox.html | 22 + .../preview-examples/form-layout-auto.html | 27 + .../src/preview-examples/form-layout-grid.css | 7 + .../preview-examples/form-layout-grid.html | 44 + .../src/preview-examples/form-validation.css | 22 + .../icon-toggle-button-secondary-outline.html | 2 +- .../src/preview-examples/input-disabled.html | 18 +- .../src/preview-examples/input-label.html | 27 + .../input-legacy-disabled.html | 34 + ...t-labels.html => input-legacy-labels.html} | 2 +- .../input-legacy-readonly.html | 34 + ...t-search.html => input-legacy-search.html} | 2 +- .../preview-examples/input-legacy-types.html | 49 + ...-icon.html => input-legacy-with-icon.html} | 2 +- .../src/preview-examples/input-legacy.html | 33 + .../src/preview-examples/input-pattern.html | 26 + .../src/preview-examples/input-readonly.html | 19 +- .../src/preview-examples/input-types.html | 73 +- .../preview-examples/input-validation.html | 61 + .../src/preview-examples/input.html | 13 +- .../preview-examples/layout-auto-custom.html | 51 + .../src/preview-examples/layout-auto.css | 24 + .../src/preview-examples/layout-auto.html | 43 + .../src/preview-examples/loading.html | 2 +- .../src/preview-examples/menu-category.html | 2 +- .../src/preview-examples/message.html | 2 +- .../number-input-disabled.html | 22 + .../preview-examples/number-input-label.html | 25 + .../number-input-readonly.html | 22 + .../number-input-stepper-button.html | 22 + .../number-input-validation.html | 52 + .../src/preview-examples/number-input.html | 22 + .../src/preview-examples/pane-layout.html | 2 +- .../src/preview-examples/pane.html | 2 +- .../src/preview-examples/radio-disabled.html | 27 + .../src/preview-examples/radio-group.html | 44 + .../preview-examples/radio-validation.html | 65 + .../src/preview-examples/radio.html | 26 + .../preview-examples/select-validation.html | 70 + .../preview-examples/textarea-disabled.html | 11 +- .../textarea-legacy-disabled.html | 23 + .../textarea-legacy-readonly.html | 23 + .../src/preview-examples/textarea-legacy.html | 21 + .../preview-examples/textarea-readonly.html | 12 +- .../preview-examples/textarea-rows-cols.html | 31 + .../preview-examples/textarea-validation.html | 75 + .../src/preview-examples/textarea.html | 7 +- .../toggle-button-primary.html | 3 +- .../preview-examples/validation-select.html | 47 + .../src/public/additional-theme/.gitkeep | 0 packages/html-test-app/vite.config.ts | 1 + packages/react-test-app/package.json | 11 +- packages/react-test-app/src/main.tsx | 183 +- .../src/preview-examples/card.tsx | 12 +- .../custom-field-validation.tsx | 44 + .../src/preview-examples/custom-field.tsx | 36 + .../preview-examples/date-input-disabled.tsx | 14 + .../src/preview-examples/date-input-label.tsx | 21 + .../preview-examples/date-input-readonly.tsx | 14 + .../date-input-validation.tsx | 48 + .../src/preview-examples/date-input.tsx | 14 + .../form-checkbox-disabled.tsx | 16 + .../form-checkbox-group-indeterminate.css | 16 + .../form-checkbox-group-indeterminate.tsx | 95 + .../preview-examples/form-checkbox-group.tsx | 19 + .../form-checkbox-validation.tsx | 71 + .../src/preview-examples/form-checkbox.tsx | 16 + .../src/preview-examples/form-layout-auto.tsx | 27 + .../src/preview-examples/form-layout-grid.css | 7 + .../src/preview-examples/form-layout-grid.tsx | 48 + .../src/preview-examples/form-validation.css | 22 + .../src/preview-examples/form-validation.tsx | 286 + .../src/preview-examples/input-disabled.tsx | 15 +- .../src/preview-examples/input-label.tsx | 21 + .../input-legacy-disabled.tsx | 21 + ...put-labels.tsx => input-legacy-labels.tsx} | 0 .../input-legacy-readonly.tsx | 21 + ...put-search.tsx => input-legacy-search.tsx} | 0 .../preview-examples/input-legacy-types.tsx | 43 + ...th-icon.tsx => input-legacy-with-icon.tsx} | 0 .../src/preview-examples/input-legacy.tsx | 20 + .../src/preview-examples/input-pattern.tsx | 20 + .../src/preview-examples/input-readonly.tsx | 16 +- .../src/preview-examples/input-types.tsx | 62 +- .../src/preview-examples/input-validation.tsx | 52 + .../src/preview-examples/input.tsx | 12 +- .../preview-examples/layout-auto-custom.tsx | 34 + .../src/preview-examples/layout-auto.css | 24 + .../src/preview-examples/layout-auto.tsx | 27 + .../src/preview-examples/message-bar.tsx | 8 +- .../number-input-disabled.tsx | 14 + .../preview-examples/number-input-label.tsx | 19 + .../number-input-readonly.tsx | 14 + .../number-input-stepper-button.tsx | 14 + .../number-input-validation.tsx | 48 + .../src/preview-examples/number-input.tsx | 14 + .../src/preview-examples/pill-variants.tsx | 4 +- .../src/preview-examples/radio-disabled.tsx | 21 + .../src/preview-examples/radio-group.tsx | 38 + .../src/preview-examples/radio-validation.tsx | 100 + .../src/preview-examples/radio.tsx | 16 + .../preview-examples/select-validation.tsx | 66 + .../preview-examples/textarea-disabled.tsx | 8 +- .../textarea-legacy-disabled.tsx | 16 + .../textarea-legacy-readonly.tsx | 16 + .../src/preview-examples/textarea-legacy.tsx | 14 + .../preview-examples/textarea-readonly.tsx | 8 +- .../preview-examples/textarea-rows-cols.tsx | 23 + .../preview-examples/textarea-validation.tsx | 56 + .../src/preview-examples/textarea.tsx | 4 +- .../preview-examples/validation-select.tsx | 58 + packages/react-test-app/tsconfig.json | 24 +- packages/react-test-app/tsconfig.node.json | 6 +- packages/react/src/components.ts | 26 +- .../react-component-lib/utils/attachProps.ts | 4 +- packages/vue-test-app/index.html | 1 + packages/vue-test-app/package.json | 3 +- packages/vue-test-app/src/Root.vue | 295 +- .../src/preview-examples/about-and-legal.vue | 1 - .../custom-field-validation.vue | 42 + .../src/preview-examples/custom-field.vue | 37 + .../preview-examples/date-input-disabled.vue | 16 + .../src/preview-examples/date-input-label.vue | 21 + .../preview-examples/date-input-readonly.vue | 16 + .../date-input-validation.vue | 46 + .../src/preview-examples/date-input.vue | 16 + .../form-checkbox-disabled.vue | 16 + .../form-checkbox-group-indeterminate.css | 16 + .../form-checkbox-group-indeterminate.vue | 76 + .../preview-examples/form-checkbox-group.vue | 19 + .../form-checkbox-validation.vue | 69 + .../src/preview-examples/form-checkbox.vue | 16 + .../src/preview-examples/form-layout-auto.vue | 19 + .../src/preview-examples/form-layout-grid.css | 7 + .../src/preview-examples/form-layout-grid.vue | 39 + .../src/preview-examples/form-validation.css | 22 + .../src/preview-examples/form-validation.vue | 284 + .../src/preview-examples/input-disabled.vue | 17 +- .../src/preview-examples/input-label.vue | 21 + .../input-legacy-disabled.vue | 21 + ...put-labels.vue => input-legacy-labels.vue} | 2 +- .../input-legacy-readonly.vue | 21 + ...put-search.vue => input-legacy-search.vue} | 0 .../preview-examples/input-legacy-types.vue | 43 + ...th-icon.vue => input-legacy-with-icon.vue} | 0 .../src/preview-examples/input-legacy.vue | 20 + .../src/preview-examples/input-pattern.vue | 20 + .../src/preview-examples/input-readonly.vue | 18 +- .../src/preview-examples/input-types.vue | 44 +- .../src/preview-examples/input-validation.vue | 51 + .../src/preview-examples/input.vue | 12 +- .../preview-examples/layout-auto-custom.vue | 31 + .../src/preview-examples/layout-auto.css | 24 + .../src/preview-examples/layout-auto.vue | 25 + .../number-input-disabled.vue | 16 + .../preview-examples/number-input-label.vue | 19 + .../number-input-readonly.vue | 16 + .../number-input-stepper-button.vue | 19 + .../number-input-validation.vue | 46 + .../src/preview-examples/number-input.vue | 16 + .../src/preview-examples/radio-disabled.vue | 21 + .../src/preview-examples/radio-group.vue | 38 + .../src/preview-examples/radio-validation.vue | 98 + .../src/preview-examples/radio.vue | 16 + .../preview-examples/select-validation.vue | 64 + .../preview-examples/textarea-disabled.vue | 14 +- .../textarea-legacy-disabled.vue | 14 + .../textarea-legacy-readonly.vue | 14 + .../src/preview-examples/textarea-legacy.vue | 14 + .../preview-examples/textarea-readonly.vue | 13 +- .../preview-examples/textarea-rows-cols.vue | 28 + .../preview-examples/textarea-validation.vue | 59 + .../src/preview-examples/textarea.vue | 12 +- .../preview-examples/validation-select.vue | 58 + packages/vue/src/components.ts | 233 +- packages/vue/src/internal-components.ts | 2 + packages/vue/src/plugin.ts | 20 +- packages/vue/src/vue-component-lib/utils.ts | 16 +- .../@stencil__react-output-target@0.5.3.patch | 15 + .../@stencil__vue-output-target@0.8.8.patch | 14 + pnpm-lock.yaml | 630 +- turbo.json | 11 +- 677 files changed, 32373 insertions(+), 9845 deletions(-) create mode 100644 .changeset/modern-comics-grow.md create mode 100644 .changeset/olive-peaches-march.md create mode 100644 .changeset/polite-crews-camp.md create mode 100644 packages/angular-test-app/src/preview-examples/custom-field-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/custom-field-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/custom-field.html create mode 100644 packages/angular-test-app/src/preview-examples/custom-field.ts create mode 100644 packages/angular-test-app/src/preview-examples/date-input-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/date-input-disabled.ts create mode 100644 packages/angular-test-app/src/preview-examples/date-input-label.html create mode 100644 packages/angular-test-app/src/preview-examples/date-input-label.ts create mode 100644 packages/angular-test-app/src/preview-examples/date-input-readonly.html create mode 100644 packages/angular-test-app/src/preview-examples/date-input-readonly.ts create mode 100644 packages/angular-test-app/src/preview-examples/date-input-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/date-input-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/date-input.html create mode 100644 packages/angular-test-app/src/preview-examples/date-input.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-disabled.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.css create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.html create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-group.html create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-group.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox.html create mode 100644 packages/angular-test-app/src/preview-examples/form-checkbox.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-layout-auto.html create mode 100644 packages/angular-test-app/src/preview-examples/form-layout-auto.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-layout-grid.css create mode 100644 packages/angular-test-app/src/preview-examples/form-layout-grid.html create mode 100644 packages/angular-test-app/src/preview-examples/form-layout-grid.ts create mode 100644 packages/angular-test-app/src/preview-examples/form-validation.css create mode 100644 packages/angular-test-app/src/preview-examples/form-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/form-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/input-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/input-form-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/input-form-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/input-label.html create mode 100644 packages/angular-test-app/src/preview-examples/input-label.ts create mode 100644 packages/angular-test-app/src/preview-examples/input-legacy-disabled.ts rename packages/angular-test-app/src/preview-examples/{input-labels.ts => input-legacy-labels.ts} (94%) create mode 100644 packages/angular-test-app/src/preview-examples/input-legacy-readonly.ts rename packages/angular-test-app/src/preview-examples/{input-search.ts => input-legacy-search.ts} (90%) create mode 100644 packages/angular-test-app/src/preview-examples/input-legacy-types.ts rename packages/angular-test-app/src/preview-examples/{input-with-icon.ts => input-legacy-with-icon.ts} (92%) create mode 100644 packages/angular-test-app/src/preview-examples/input-legacy.ts create mode 100644 packages/angular-test-app/src/preview-examples/input-pattern.html create mode 100644 packages/angular-test-app/src/preview-examples/input-pattern.ts create mode 100644 packages/angular-test-app/src/preview-examples/input-readonly.html create mode 100644 packages/angular-test-app/src/preview-examples/input-types.html create mode 100644 packages/angular-test-app/src/preview-examples/input-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/input-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/input.html create mode 100644 packages/angular-test-app/src/preview-examples/layout-auto-custom.html create mode 100644 packages/angular-test-app/src/preview-examples/layout-auto-custom.ts create mode 100644 packages/angular-test-app/src/preview-examples/layout-auto.css create mode 100644 packages/angular-test-app/src/preview-examples/layout-auto.html create mode 100644 packages/angular-test-app/src/preview-examples/layout-auto.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input-disabled.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input-label.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input-label.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input-readonly.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input-readonly.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input-stepper-button.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input-stepper-button.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/number-input.html create mode 100644 packages/angular-test-app/src/preview-examples/number-input.ts create mode 100644 packages/angular-test-app/src/preview-examples/radio-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/radio-disabled.ts create mode 100644 packages/angular-test-app/src/preview-examples/radio-group.html create mode 100644 packages/angular-test-app/src/preview-examples/radio-group.ts create mode 100644 packages/angular-test-app/src/preview-examples/radio-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/radio-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/radio.html create mode 100644 packages/angular-test-app/src/preview-examples/radio.ts create mode 100644 packages/angular-test-app/src/preview-examples/select-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/select-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea-disabled.html create mode 100644 packages/angular-test-app/src/preview-examples/textarea-legacy-disabled.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea-legacy-readonly.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea-legacy.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea-readonly.html create mode 100644 packages/angular-test-app/src/preview-examples/textarea-rows-cols.html create mode 100644 packages/angular-test-app/src/preview-examples/textarea-rows-cols.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea-validation.html create mode 100644 packages/angular-test-app/src/preview-examples/textarea-validation.ts create mode 100644 packages/angular-test-app/src/preview-examples/textarea.html create mode 100644 packages/angular-test-app/src/preview-examples/validation-select.html create mode 100644 packages/angular-test-app/src/preview-examples/validation-select.ts delete mode 100644 packages/angular/src/boolean-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/boolean-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/date-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/index.ts create mode 100644 packages/angular/src/control-value-accessors/radio-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/select-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/text-value-accessor.ts create mode 100644 packages/angular/src/control-value-accessors/value-accessor.ts delete mode 100644 packages/angular/src/select-value-accessor.ts delete mode 100644 packages/angular/src/value-accessor.ts create mode 100644 packages/core/scss/mixins/_field.scss create mode 100644 packages/core/scss/mixins/validation/_form-component.scss create mode 100644 packages/core/src/components/checkbox-group/checkbox-group.scss create mode 100644 packages/core/src/components/checkbox-group/checkbox-group.tsx create mode 100644 packages/core/src/components/checkbox/checkbox.scss create mode 100644 packages/core/src/components/checkbox/checkbox.tsx create mode 100644 packages/core/src/components/checkbox/tests/checkbox.ct.ts rename packages/core/src/components/{form-field/form-field.scss => custom-field/custom-field.scss} (63%) create mode 100644 packages/core/src/components/custom-field/custom-field.tsx create mode 100644 packages/core/src/components/custom-field/tests/custom-field.ct.ts create mode 100644 packages/core/src/components/date-input/date-input.scss create mode 100644 packages/core/src/components/date-input/date-input.tsx create mode 100644 packages/core/src/components/date-input/tests/date-input.ct.ts create mode 100644 packages/core/src/components/field-label/field-label.scss create mode 100644 packages/core/src/components/field-label/field-label.tsx create mode 100644 packages/core/src/components/field-label/tests/field-label.ct.ts create mode 100644 packages/core/src/components/field-wrapper/field-wrapper.mixins.scss create mode 100644 packages/core/src/components/field-wrapper/field-wrapper.scss create mode 100644 packages/core/src/components/field-wrapper/field-wrapper.tsx create mode 100644 packages/core/src/components/field-wrapper/helper-text-util.tsx create mode 100644 packages/core/src/components/field-wrapper/tests/field-wrapper.ct.ts delete mode 100644 packages/core/src/components/form-field/form-field.tsx create mode 100644 packages/core/src/components/helper-text/helper-text.scss create mode 100644 packages/core/src/components/helper-text/helper-text.tsx create mode 100644 packages/core/src/components/input/input.animation.ts create mode 100644 packages/core/src/components/input/input.fc.tsx create mode 100644 packages/core/src/components/input/input.mixins.scss create mode 100644 packages/core/src/components/input/input.scss create mode 100644 packages/core/src/components/input/input.tsx create mode 100644 packages/core/src/components/input/input.util.ts create mode 100644 packages/core/src/components/input/number-input.scss create mode 100644 packages/core/src/components/input/number-input.tsx create mode 100644 packages/core/src/components/input/tests/form-ready.ct.ts create mode 100644 packages/core/src/components/input/textarea.scss create mode 100644 packages/core/src/components/input/textarea.tsx create mode 100644 packages/core/src/components/layout-auto/layout-auto.scss create mode 100644 packages/core/src/components/layout-auto/layout-auto.tsx rename packages/core/src/components/{grid => layout-grid}/layout-grid.scss (100%) rename packages/core/src/components/{grid => layout-grid}/layout-grid.tsx (100%) create mode 100644 packages/core/src/components/radio-group/radio-group.scss create mode 100644 packages/core/src/components/radio-group/radio-group.tsx create mode 100644 packages/core/src/components/radio-group/test/radio-group.ct.ts create mode 100644 packages/core/src/components/radio/radio.scss create mode 100644 packages/core/src/components/radio/radio.tsx create mode 100644 packages/core/src/components/radio/test/radio.ct.ts create mode 100644 packages/core/src/components/utils/attributes.ts create mode 100644 packages/core/src/components/utils/input/index.ts create mode 100644 packages/core/src/components/utils/input/validation.ts create mode 100644 packages/core/src/components/utils/type-helper.ts create mode 100644 packages/core/src/components/utils/uuid.ts create mode 100644 packages/core/src/tests/checkbox-group/basic/index.html create mode 100644 packages/core/src/tests/checkbox-group/checkbox-group.e2e.ts create mode 100644 packages/core/src/tests/checkbox-group/checkbox-group.e2e.ts-snapshots/checkbox-group-direction-column-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/checkbox-group/checkbox-group.e2e.ts-snapshots/checkbox-group-direction-column-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/checkbox-group/checkbox-group.e2e.ts-snapshots/checkbox-group-direction-row-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/checkbox-group/checkbox-group.e2e.ts-snapshots/checkbox-group-direction-row-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/drawer/drawer.e2e.ts-snapshots/drawer-full-height-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/drawer/drawer.e2e.ts-snapshots/drawer-full-height-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/drawer/full-height/index.html create mode 100644 packages/core/src/tests/form-fields/basic/index.html create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-basic-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-basic-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-disabled-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-disabled-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-readonly-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-readonly-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-readonly-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-readonly-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-disabled-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-disabled-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-readonly-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-readonly-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/input/input.e2e.ts-snapshots/input-tooltip-below-input-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/input/input.e2e.ts-snapshots/input-tooltip-below-input-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-slots-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-slots-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/input/tooltip/index.html create mode 100644 packages/core/src/tests/input/with-slots/index.html create mode 100644 packages/core/src/tests/number-input/basic/index.html create mode 100644 packages/core/src/tests/number-input/number-input.e2e.ts create mode 100644 packages/core/src/tests/number-input/number-input.e2e.ts-snapshots/number-input-basic-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/number-input/number-input.e2e.ts-snapshots/number-input-basic-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/radio-group/basic/index.html create mode 100644 packages/core/src/tests/radio-group/radio-group.e2e.ts create mode 100644 packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-light-linux.png create mode 100644 packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-row-1-chromium---theme-classic-dark-linux.png create mode 100644 packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-row-1-chromium---theme-classic-light-linux.png create mode 100644 packages/documentation/docs/controls/_custom-field_code.mdx create mode 100644 packages/documentation/docs/controls/_custom-field_styleguide.mdx create mode 100644 packages/documentation/docs/controls/_date-input_code.mdx create mode 100644 packages/documentation/docs/controls/_date-input_styleguide.mdx create mode 100644 packages/documentation/docs/controls/_forms-checkbox_code.mdx create mode 100644 packages/documentation/docs/controls/_forms-checkbox_styleguide.md create mode 100644 packages/documentation/docs/controls/_forms-toggle_styleguide.md create mode 100644 packages/documentation/docs/controls/_input_code.md create mode 100644 packages/documentation/docs/controls/_input_styleguide.md create mode 100644 packages/documentation/docs/controls/_number-input_code.mdx create mode 100644 packages/documentation/docs/controls/_number-input_styleguide.mdx create mode 100644 packages/documentation/docs/controls/_radio_code.mdx create mode 100644 packages/documentation/docs/controls/_radio_styleguide.mdx create mode 100644 packages/documentation/docs/controls/_select_code.mdx create mode 100644 packages/documentation/docs/controls/_select_styleguide.md create mode 100644 packages/documentation/docs/controls/_textarea-field_code.mdx create mode 100644 packages/documentation/docs/controls/_textarea-field_styleguide.mdx delete mode 100644 packages/documentation/docs/controls/checkbox.md create mode 100644 packages/documentation/docs/controls/checkbox.mdx create mode 100644 packages/documentation/docs/controls/custom-field.mdx create mode 100644 packages/documentation/docs/controls/forms/_category_.json create mode 100644 packages/documentation/docs/controls/forms/_forms-field_code.mdx create mode 100644 packages/documentation/docs/controls/forms/_forms-field_style.mdx create mode 100644 packages/documentation/docs/controls/forms/_forms-layout_code.mdx create mode 100644 packages/documentation/docs/controls/forms/_forms-layout_style.mdx create mode 100644 packages/documentation/docs/controls/forms/_forms-validation_code.mdx create mode 100644 packages/documentation/docs/controls/forms/_forms-validation_style.md create mode 100644 packages/documentation/docs/controls/forms/forms-behavior.md create mode 100644 packages/documentation/docs/controls/forms/forms-field.md create mode 100644 packages/documentation/docs/controls/forms/forms-layout.md create mode 100644 packages/documentation/docs/controls/forms/forms-validation.mdx create mode 100644 packages/documentation/docs/controls/input-date.mdx create mode 100644 packages/documentation/docs/controls/input-number.mdx delete mode 100644 packages/documentation/docs/controls/input.md create mode 100644 packages/documentation/docs/controls/input.mdx create mode 100644 packages/documentation/docs/controls/layout-auto.md create mode 100644 packages/documentation/docs/controls/radio.mdx delete mode 100644 packages/documentation/docs/controls/radiobutton.md delete mode 100644 packages/documentation/docs/controls/select.md create mode 100644 packages/documentation/docs/controls/select.mdx delete mode 100644 packages/documentation/docs/controls/textarea.md create mode 100644 packages/documentation/docs/controls/textarea.mdx rename packages/documentation/docs/controls/{toggle.md => toggle.mdx} (100%) create mode 100644 packages/documentation/docs/legacy/_category_.json create mode 100644 packages/documentation/docs/legacy/checkbox.mdx create mode 100644 packages/documentation/docs/legacy/input.mdx create mode 100644 packages/documentation/docs/legacy/radiobutton.mdx create mode 100644 packages/documentation/docs/legacy/textarea.mdx rename packages/documentation/docs/{controls/validation.md => legacy/validation.mdx} (71%) delete mode 100644 packages/documentation/src/components/DocsTabs/DocsTabs.scss delete mode 100644 packages/documentation/src/components/DocsTabs/index.tsx create mode 100644 packages/documentation/src/components/StackblitzEmbedded/index.tsx create mode 100644 packages/documentation/src/components/Tags/LegacyTag.css create mode 100644 packages/documentation/src/components/Tags/index.tsx create mode 100644 packages/html-test-app/src/preview-examples/custom-field-validation.html create mode 100644 packages/html-test-app/src/preview-examples/custom-field.html create mode 100644 packages/html-test-app/src/preview-examples/date-input-disabled.html create mode 100644 packages/html-test-app/src/preview-examples/date-input-label.html create mode 100644 packages/html-test-app/src/preview-examples/date-input-readonly.html create mode 100644 packages/html-test-app/src/preview-examples/date-input-validation.html create mode 100644 packages/html-test-app/src/preview-examples/date-input.html create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox-disabled.html create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.css create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.html create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox-group.html create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox-validation.html create mode 100644 packages/html-test-app/src/preview-examples/form-checkbox.html create mode 100644 packages/html-test-app/src/preview-examples/form-layout-auto.html create mode 100644 packages/html-test-app/src/preview-examples/form-layout-grid.css create mode 100644 packages/html-test-app/src/preview-examples/form-layout-grid.html create mode 100644 packages/html-test-app/src/preview-examples/form-validation.css create mode 100644 packages/html-test-app/src/preview-examples/input-label.html create mode 100644 packages/html-test-app/src/preview-examples/input-legacy-disabled.html rename packages/html-test-app/src/preview-examples/{input-labels.html => input-legacy-labels.html} (94%) create mode 100644 packages/html-test-app/src/preview-examples/input-legacy-readonly.html rename packages/html-test-app/src/preview-examples/{input-search.html => input-legacy-search.html} (96%) create mode 100644 packages/html-test-app/src/preview-examples/input-legacy-types.html rename packages/html-test-app/src/preview-examples/{input-with-icon.html => input-legacy-with-icon.html} (94%) create mode 100644 packages/html-test-app/src/preview-examples/input-legacy.html create mode 100644 packages/html-test-app/src/preview-examples/input-pattern.html create mode 100644 packages/html-test-app/src/preview-examples/input-validation.html create mode 100644 packages/html-test-app/src/preview-examples/layout-auto-custom.html create mode 100644 packages/html-test-app/src/preview-examples/layout-auto.css create mode 100644 packages/html-test-app/src/preview-examples/layout-auto.html create mode 100644 packages/html-test-app/src/preview-examples/number-input-disabled.html create mode 100644 packages/html-test-app/src/preview-examples/number-input-label.html create mode 100644 packages/html-test-app/src/preview-examples/number-input-readonly.html create mode 100644 packages/html-test-app/src/preview-examples/number-input-stepper-button.html create mode 100644 packages/html-test-app/src/preview-examples/number-input-validation.html create mode 100644 packages/html-test-app/src/preview-examples/number-input.html create mode 100644 packages/html-test-app/src/preview-examples/radio-disabled.html create mode 100644 packages/html-test-app/src/preview-examples/radio-group.html create mode 100644 packages/html-test-app/src/preview-examples/radio-validation.html create mode 100644 packages/html-test-app/src/preview-examples/radio.html create mode 100644 packages/html-test-app/src/preview-examples/select-validation.html create mode 100644 packages/html-test-app/src/preview-examples/textarea-legacy-disabled.html create mode 100644 packages/html-test-app/src/preview-examples/textarea-legacy-readonly.html create mode 100644 packages/html-test-app/src/preview-examples/textarea-legacy.html create mode 100644 packages/html-test-app/src/preview-examples/textarea-rows-cols.html create mode 100644 packages/html-test-app/src/preview-examples/textarea-validation.html create mode 100644 packages/html-test-app/src/preview-examples/validation-select.html delete mode 100644 packages/html-test-app/src/public/additional-theme/.gitkeep create mode 100644 packages/react-test-app/src/preview-examples/custom-field-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/custom-field.tsx create mode 100644 packages/react-test-app/src/preview-examples/date-input-disabled.tsx create mode 100644 packages/react-test-app/src/preview-examples/date-input-label.tsx create mode 100644 packages/react-test-app/src/preview-examples/date-input-readonly.tsx create mode 100644 packages/react-test-app/src/preview-examples/date-input-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/date-input.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox-disabled.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.css create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox-group.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-checkbox.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-layout-auto.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-layout-grid.css create mode 100644 packages/react-test-app/src/preview-examples/form-layout-grid.tsx create mode 100644 packages/react-test-app/src/preview-examples/form-validation.css create mode 100644 packages/react-test-app/src/preview-examples/form-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/input-label.tsx create mode 100644 packages/react-test-app/src/preview-examples/input-legacy-disabled.tsx rename packages/react-test-app/src/preview-examples/{input-labels.tsx => input-legacy-labels.tsx} (100%) create mode 100644 packages/react-test-app/src/preview-examples/input-legacy-readonly.tsx rename packages/react-test-app/src/preview-examples/{input-search.tsx => input-legacy-search.tsx} (100%) create mode 100644 packages/react-test-app/src/preview-examples/input-legacy-types.tsx rename packages/react-test-app/src/preview-examples/{input-with-icon.tsx => input-legacy-with-icon.tsx} (100%) create mode 100644 packages/react-test-app/src/preview-examples/input-legacy.tsx create mode 100644 packages/react-test-app/src/preview-examples/input-pattern.tsx create mode 100644 packages/react-test-app/src/preview-examples/input-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/layout-auto-custom.tsx create mode 100644 packages/react-test-app/src/preview-examples/layout-auto.css create mode 100644 packages/react-test-app/src/preview-examples/layout-auto.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input-disabled.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input-label.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input-readonly.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input-stepper-button.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/number-input.tsx create mode 100644 packages/react-test-app/src/preview-examples/radio-disabled.tsx create mode 100644 packages/react-test-app/src/preview-examples/radio-group.tsx create mode 100644 packages/react-test-app/src/preview-examples/radio-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/radio.tsx create mode 100644 packages/react-test-app/src/preview-examples/select-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/textarea-legacy-disabled.tsx create mode 100644 packages/react-test-app/src/preview-examples/textarea-legacy-readonly.tsx create mode 100644 packages/react-test-app/src/preview-examples/textarea-legacy.tsx create mode 100644 packages/react-test-app/src/preview-examples/textarea-rows-cols.tsx create mode 100644 packages/react-test-app/src/preview-examples/textarea-validation.tsx create mode 100644 packages/react-test-app/src/preview-examples/validation-select.tsx create mode 100644 packages/vue-test-app/src/preview-examples/custom-field-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/custom-field.vue create mode 100644 packages/vue-test-app/src/preview-examples/date-input-disabled.vue create mode 100644 packages/vue-test-app/src/preview-examples/date-input-label.vue create mode 100644 packages/vue-test-app/src/preview-examples/date-input-readonly.vue create mode 100644 packages/vue-test-app/src/preview-examples/date-input-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/date-input.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox-disabled.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.css create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox-group.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-checkbox.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-layout-auto.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-layout-grid.css create mode 100644 packages/vue-test-app/src/preview-examples/form-layout-grid.vue create mode 100644 packages/vue-test-app/src/preview-examples/form-validation.css create mode 100644 packages/vue-test-app/src/preview-examples/form-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/input-label.vue create mode 100644 packages/vue-test-app/src/preview-examples/input-legacy-disabled.vue rename packages/vue-test-app/src/preview-examples/{input-labels.vue => input-legacy-labels.vue} (88%) create mode 100644 packages/vue-test-app/src/preview-examples/input-legacy-readonly.vue rename packages/vue-test-app/src/preview-examples/{input-search.vue => input-legacy-search.vue} (100%) create mode 100644 packages/vue-test-app/src/preview-examples/input-legacy-types.vue rename packages/vue-test-app/src/preview-examples/{input-with-icon.vue => input-legacy-with-icon.vue} (100%) create mode 100644 packages/vue-test-app/src/preview-examples/input-legacy.vue create mode 100644 packages/vue-test-app/src/preview-examples/input-pattern.vue create mode 100644 packages/vue-test-app/src/preview-examples/input-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/layout-auto-custom.vue create mode 100644 packages/vue-test-app/src/preview-examples/layout-auto.css create mode 100644 packages/vue-test-app/src/preview-examples/layout-auto.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input-disabled.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input-label.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input-readonly.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input-stepper-button.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/number-input.vue create mode 100644 packages/vue-test-app/src/preview-examples/radio-disabled.vue create mode 100644 packages/vue-test-app/src/preview-examples/radio-group.vue create mode 100644 packages/vue-test-app/src/preview-examples/radio-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/radio.vue create mode 100644 packages/vue-test-app/src/preview-examples/select-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/textarea-legacy-disabled.vue create mode 100644 packages/vue-test-app/src/preview-examples/textarea-legacy-readonly.vue create mode 100644 packages/vue-test-app/src/preview-examples/textarea-legacy.vue create mode 100644 packages/vue-test-app/src/preview-examples/textarea-rows-cols.vue create mode 100644 packages/vue-test-app/src/preview-examples/textarea-validation.vue create mode 100644 packages/vue-test-app/src/preview-examples/validation-select.vue create mode 100644 patches/@stencil__react-output-target@0.5.3.patch create mode 100644 patches/@stencil__vue-output-target@0.8.8.patch diff --git a/.changeset/modern-comics-grow.md b/.changeset/modern-comics-grow.md new file mode 100644 index 00000000000..f96fff7b6ba --- /dev/null +++ b/.changeset/modern-comics-grow.md @@ -0,0 +1,27 @@ +--- +'@siemens/ix-angular': minor +'@siemens/ix-react': minor +'@siemens/ix': minor +'@siemens/ix-vue': minor +--- + +Introduce several new input components: + +- `ix-input` for text based inputs +- `ix-number-input` for number based inputs with optional stepper buttons +- `ix-date-input` which shows a date picker within a dropdown +- `ix-textarea` for larger text inputs +- `ix-radio` and `ix-radio-group` +- `ix-checkbox` +- `ix-custom-field` to wrap custom components + +Introduce a new layout component `ix-layout-auto` to make it easier to create a typical input forms. + +Enhanced the compatibility with Forms for the following components: + +- `ix-select` +- `ix-toggle` + +> _Deprecation:_ +> +> Native css stylings for `input` and `textarea` (e.g `input[type="checkbox"]` and `input[type="radio"]`) are deprecated and will be removed in upcoming major release. diff --git a/.changeset/olive-peaches-march.md b/.changeset/olive-peaches-march.md new file mode 100644 index 00000000000..4a883c13f17 --- /dev/null +++ b/.changeset/olive-peaches-march.md @@ -0,0 +1,5 @@ +--- +"@siemens/ix": patch +--- + +__ix-drawer__: the full-height property is now working diff --git a/.changeset/polite-crews-camp.md b/.changeset/polite-crews-camp.md new file mode 100644 index 00000000000..0109b1daf70 --- /dev/null +++ b/.changeset/polite-crews-camp.md @@ -0,0 +1,5 @@ +--- +"@siemens/ix": patch +--- + +Remove `border-radius` from `` if `readonly` or `disable` is set diff --git a/.gitignore b/.gitignore index a55b385f785..8025127b7e9 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ node_modules *.launch .settings/ *.sublime-workspace +.obsidian # IDE - VSCode .vscode/* diff --git a/SECURITY.md b/SECURITY.md index d93e1f47f54..b7b329113e4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,6 +7,27 @@ This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. --> -# Reporting Security Issues +# Security Policy -If you believe you have found a security vulnerability in iX, we encourage you to let us know right away. We will investigate all legitimate reports and do our best to quickly fix the problem. +Siemens takes the security of its code seriously. If you think you have found a security vulnerability, +please read the next sections and follow the instructions to report your finding. + +## Scope of this policy + +This is the default security policy for all repositories within the `siemens` organization on GitHub.com. + +It does not apply for reposities that have their own security policy. +It also does not apply for forks where you should follow the upstream policy instead. + +If you are unsure whether the policy applies feel free to reach out via the channels mentioned below and we'll be happy to help. + +## Reporting a Vulnerability + +Please DO NOT report any potential security vulnerability via a public channel (mailing list, GitHub issue, etc.). +Instead, [report the vulnerability privately via GitHub](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability) +(if enabled for the repository) or [contact us via email](mailto:opensource@siemens.com). + +Please provide a detailed description of the issue, the steps to reproduce it, the affected version(s) and, if already available, +a proposal for a fix. You should receive a response within 5 working days. If for some reason you do not, please follow up via email to ensure we received your original message. + +If we confirm the issue as a vulnerability, we will publish an advisory (e.g. on GitHub) and give credits for your report if desired. We follow the [coordinated vulnerability disclosure](https://vuls.cert.org/confluence/display/CVD) model and will define an appropriate disclosure timeline together with you. diff --git a/package.json b/package.json index b5865b8c8b2..f5f0d223457 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "start": "dotenv -- turbo run start", "turbo": "dotenv -- turbo", "lint": "dotenv -- turbo run lint", + "format": "prettier --write ./packages/**/src/**/*.{ts,tsx,js,jsx,css,scss,html,vue,json}", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", "visual-regression": "dotenv -- turbo run visual-regression", "test": "dotenv -- turbo run test", @@ -61,5 +62,11 @@ "commitizen": { "path": "./node_modules/cz-conventional-changelog" } + }, + "pnpm": { + "patchedDependencies": { + "@stencil/react-output-target@0.5.3": "patches/@stencil__react-output-target@0.5.3.patch", + "@stencil/vue-output-target@0.8.8": "patches/@stencil__vue-output-target@0.8.8.patch" + } } } diff --git a/packages/aggrid/scss/ix-aggrid.scss b/packages/aggrid/scss/ix-aggrid.scss index 338ba6b1fe4..248513ef5f7 100644 --- a/packages/aggrid/scss/ix-aggrid.scss +++ b/packages/aggrid/scss/ix-aggrid.scss @@ -157,5 +157,16 @@ .ag-radio-button .ag-input-wrapper { color: var(--theme-color-primary); } + + .ag-input-field-input { + &.focus, + &:focus { + &:not(.readonly, .read-only, .disabled, [readonly], [disabled], :read-only) { + outline: 1px solid var(--theme-color-focus-bdr) !important; + outline-offset: var(--theme-input--focus--outline-offset) !important; + border-color: var(--theme-input--border-color--focus) !important; + } + } + } } } diff --git a/packages/aggrid/tests/aggrid.e2e.ts b/packages/aggrid/tests/aggrid.e2e.ts index 5000a117049..861835858d8 100644 --- a/packages/aggrid/tests/aggrid.e2e.ts +++ b/packages/aggrid/tests/aggrid.e2e.ts @@ -27,6 +27,7 @@ regressionTest.describe('aggrid', () => { await expect(filterMenu).toBeVisible(); const inputHandle = filterMenu.getByPlaceholder('Filter...'); + await inputHandle.click(); await inputHandle.fill('Test'); expect(await page.screenshot({ fullPage: true })).toMatchSnapshot(); diff --git a/packages/aggrid/tests/aggrid.e2e.ts-snapshots/aggrid-filter-1-chromium---theme-classic-dark-linux.png b/packages/aggrid/tests/aggrid.e2e.ts-snapshots/aggrid-filter-1-chromium---theme-classic-dark-linux.png index 7b77f59f8fed460203a8e011d00fe86940cb8efb..0a2a5a9cfc64e0b1f461ead3ad9d4e8dea3ede2f 100644 GIT binary patch literal 25556 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 lnoZXH6Knq8Oqmu-*`NZ?XF31? literal 25175 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 literal 26443 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 i3Un8}$!!CMMr+$9?0w_`2j-Y0HKyBk;jb28GN& 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 - diff --git a/packages/angular-test-app/src/app/app.module.ts b/packages/angular-test-app/src/app/app.module.ts index 6356f4c1c7c..ee904b99f81 100644 --- a/packages/angular-test-app/src/app/app.module.ts +++ b/packages/angular-test-app/src/app/app.module.ts @@ -8,7 +8,6 @@ */ import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; @@ -18,6 +17,7 @@ import { IxModule } from '@siemens/ix-angular'; import { AgGridModule } from 'ag-grid-angular'; import { NgxEchartsModule } from 'ngx-echarts'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import AboutAndLegal from '../preview-examples/about-and-legal'; import ActionCard from '../preview-examples/action-card'; import AgGrid from '../preview-examples/aggrid'; @@ -56,8 +56,15 @@ import Chip from '../preview-examples/chip'; import ContentExample from '../preview-examples/content'; import ContentHeader from '../preview-examples/content-header'; import ContentHeaderNoBack from '../preview-examples/content-header-no-back'; +import CustomField from '../preview-examples/custom-field'; +import CustomFieldValidation from '../preview-examples/custom-field-validation'; import DateDropdown from '../preview-examples/date-dropdown'; import DateDropdownUserRange from '../preview-examples/date-dropdown-user-range'; +import DateInput from '../preview-examples/date-input'; +import DateInputDisabled from '../preview-examples/date-input-disabled'; +import DateInputLabel from '../preview-examples/date-input-label'; +import DateInputReadonly from '../preview-examples/date-input-readonly'; +import DateInputValidation from '../preview-examples/date-input-validation'; import Datepicker from '../preview-examples/datepicker'; import DatepickerLocale from '../preview-examples/datepicker-locale'; import DatepickerRange from '../preview-examples/datepicker-range'; @@ -72,9 +79,8 @@ import DropdownIcon from '../preview-examples/dropdown-icon'; import DropdownQuickActions from '../preview-examples/dropdown-quick-actions'; import DropdownSubmenu from '../preview-examples/dropdown-submenu'; import Echarts from '../preview-examples/echarts'; -import EchartsSpecial3d from 'src/preview-examples/echarts-special-3d'; -import EchartsBarSimple from '../preview-examples/echarts-bar-simple'; import EchartsBarHorizontalStacked from '../preview-examples/echarts-bar-horizontal-stacked'; +import EchartsBarSimple from '../preview-examples/echarts-bar-simple'; import EchartsCircle from '../preview-examples/echarts-circle'; import EchartsEmptyState from '../preview-examples/echarts-empty-state'; import EchartsGauge from '../preview-examples/echarts-gauge'; @@ -82,10 +88,11 @@ import EchartsLineAdvanced from '../preview-examples/echarts-line-advanced'; import EchartsLineMultipleYAxis from '../preview-examples/echarts-line-multiple-y-axis'; import EchartsLineSimple from '../preview-examples/echarts-line-simple'; import EchartsPie from '../preview-examples/echarts-pie'; -import EchartsSpecialToolbox from '../preview-examples/echarts-special-toolbox'; -import EchartsSpecialZoom from '../preview-examples/echarts-special-zoom'; import EchartsProgressArc from '../preview-examples/echarts-progress-arc'; import EchartsProgressCircle from '../preview-examples/echarts-progress-circle'; +import EchartsSpecial3d from '../preview-examples/echarts-special-3d'; +import EchartsSpecialToolbox from '../preview-examples/echarts-special-toolbox'; +import EchartsSpecialZoom from '../preview-examples/echarts-special-zoom'; import EmptyState from '../preview-examples/empty-state'; import EmptyStateCompact from '../preview-examples/empty-state-compact'; import EmptyStateCompactBreak from '../preview-examples/empty-state-compact-break'; @@ -95,6 +102,12 @@ import EventListCustomItemHeight from '../preview-examples/event-list-custom-ite import EventListSelected from '../preview-examples/event-list-selected'; import ExpandingSearch from '../preview-examples/expanding-search'; import FlipTile from '../preview-examples/flip-tile'; +import FormCheckbox from '../preview-examples/form-checkbox'; +import FormCheckboxDisabled from '../preview-examples/form-checkbox-disabled'; +import FormCheckboxGroup from '../preview-examples/form-checkbox-group'; +import FormCheckboxGroupIndeterminate from '../preview-examples/form-checkbox-group-indeterminate'; +import FormCheckboxValidation from '../preview-examples/form-checkbox-validation'; +import FormValidation from '../preview-examples/form-validation'; import Grid from '../preview-examples/grid'; import GridPadding from '../preview-examples/grid-padding'; import GridSize from '../preview-examples/grid-size'; @@ -109,11 +122,19 @@ import IconToggleButtonSecondaryGhost from '../preview-examples/icon-toggle-butt import IconToggleButtonSecondaryOutline from '../preview-examples/icon-toggle-button-secondary-outline'; import Input from '../preview-examples/input'; import InputDisabled from '../preview-examples/input-disabled'; -import InputLabels from '../preview-examples/input-labels'; +import InputFormValidation from '../preview-examples/input-form-validation'; +import InputLabel from '../preview-examples/input-label'; +import InputLegacy from '../preview-examples/input-legacy'; +import InputLegacyDisabled from '../preview-examples/input-legacy-disabled'; +import InputLegacyLabels from '../preview-examples/input-legacy-labels'; +import InputLegacyReadonly from '../preview-examples/input-legacy-readonly'; +import InputLegacySearch from '../preview-examples/input-legacy-search'; +import InputLegacyTypes from '../preview-examples/input-legacy-types'; +import InputLegacyWithIcon from '../preview-examples/input-legacy-with-icon'; +import InputPattern from '../preview-examples/input-pattern'; import InputReadonly from '../preview-examples/input-readonly'; -import InputSearch from '../preview-examples/input-search'; import InputTypes from '../preview-examples/input-types'; -import InputWithIcon from '../preview-examples/input-with-icon'; +import InputValidation from '../preview-examples/input-validation'; import KeyValue from '../preview-examples/key-value'; import KeyValueList from '../preview-examples/key-value-list'; import KeyValueListStriped from '../preview-examples/key-value-list-striped'; @@ -123,6 +144,8 @@ import KeyValueWithCustomValue from '../preview-examples/key-value-with-custom-v import KeyValueWithIcon from '../preview-examples/key-value-with-icon'; import KeyValueWithLabelLeft from '../preview-examples/key-value-with-label-left'; import Kpi from '../preview-examples/kpi'; +import LayoutAuto from '../preview-examples/layout-auto'; +import LayoutAutoCustom from '../preview-examples/layout-auto-custom'; import LinkButton from '../preview-examples/link-button'; import LinkButtonDisabled from '../preview-examples/link-button-disabled'; import Loading from '../preview-examples/loading'; @@ -136,6 +159,12 @@ import ModalByInstance from '../preview-examples/modal-by-instance'; import ModalByInstanceContent from '../preview-examples/modal-by-instance-content'; import ModalByTemplate from '../preview-examples/modal-by-template'; import ModalSizes from '../preview-examples/modal-sizes'; +import NumberInput from '../preview-examples/number-input'; +import NumberInputDisabled from '../preview-examples/number-input-disabled'; +import NumberInputLabel from '../preview-examples/number-input-label'; +import NumberInputReadonly from '../preview-examples/number-input-readonly'; +import NumberInputStepperButton from '../preview-examples/number-input-stepper-button'; +import NumberInputValidation from '../preview-examples/number-input-validation'; import Pagination from '../preview-examples/pagination'; import PaginationAdvanced from '../preview-examples/pagination-advanced'; import Pane from '../preview-examples/pane'; @@ -144,11 +173,16 @@ import Pill from '../preview-examples/pill'; import PillVariants from '../preview-examples/pill-variants'; import PopoverNews from '../preview-examples/popover-news'; import PushCard from '../preview-examples/push-card'; -import RadioButton from '../preview-examples/radio-button'; +import Radio from '../preview-examples/radio'; +import Radiobutton from '../preview-examples/radio-button'; +import RadioDisabled from '../preview-examples/radio-disabled'; +import RadioGroup from '../preview-examples/radio-group'; +import RadioValidation from '../preview-examples/radio-validation'; import Select from '../preview-examples/select'; import SelectEditable from '../preview-examples/select-editable'; import SelectMultiple from '../preview-examples/select-multiple'; import SelectNgModel from '../preview-examples/select-ng-model'; +import SelectValidation from '../preview-examples/select-validation'; import Settings from '../preview-examples/settings'; import Slider from '../preview-examples/slider'; import SliderError from '../preview-examples/slider-error'; @@ -162,7 +196,12 @@ import Tabs from '../preview-examples/tabs'; import TabsRounded from '../preview-examples/tabs-rounded'; import Textarea from '../preview-examples/textarea'; import TextareaDisabled from '../preview-examples/textarea-disabled'; +import TextareaLegacy from '../preview-examples/textarea-legacy'; +import TextareaLegacyDisabled from '../preview-examples/textarea-legacy-disabled'; +import TextareaLegacyReadonly from '../preview-examples/textarea-legacy-readonly'; import TextareaReadonly from '../preview-examples/textarea-readonly'; +import TextareaRowsCols from '../preview-examples/textarea-rows-cols'; +import TextareaValidation from '../preview-examples/textarea-validation'; import ThemeSwitcher from '../preview-examples/theme-switcher'; import Tile from '../preview-examples/tile'; import Timepicker from '../preview-examples/timepicker'; @@ -170,9 +209,9 @@ import Toast from '../preview-examples/toast'; import ToastCustom from '../preview-examples/toast-custom'; import ToastPosition from '../preview-examples/toast-position'; import Toggle from '../preview-examples/toggle'; +import ToggleButtonPrimary from '../preview-examples/toggle-button-primary'; import ToggleButtonPrimaryGhost from '../preview-examples/toggle-button-primary-ghost'; import ToggleButtonPrimaryOutline from '../preview-examples/toggle-button-primary-outline'; -import ToggleButtonPrimary from 'src/preview-examples/toggle-button-primary'; import ToggleButtonSecondary from '../preview-examples/toggle-button-secondary'; import ToggleButtonSecondaryGhost from '../preview-examples/toggle-button-secondary-ghost'; import ToggleButtonSecondaryOutline from '../preview-examples/toggle-button-secondary-outline'; @@ -186,13 +225,20 @@ import Tree from '../preview-examples/tree'; import TreeCustom from '../preview-examples/tree-custom'; import Upload from '../preview-examples/upload'; import Validation from '../preview-examples/validation'; +import ValidationSelect from '../preview-examples/validation-select'; import VerticalTabs from '../preview-examples/vertical-tabs'; import VerticalTabsWithAvatar from '../preview-examples/vertical-tabs-with-avatar'; import Workflow from '../preview-examples/workflow'; import WorkflowVertical from '../preview-examples/workflow-vertical'; +import FormLayoutAuto from 'src/preview-examples/form-layout-auto'; +import FormLayoutGrid from 'src/preview-examples/form-layout-grid'; @NgModule({ declarations: [ + FormLayoutGrid, + FormLayoutAuto, + FormValidation, + InputFormValidation, AppComponent, AboutAndLegal, ActionCard, @@ -229,6 +275,15 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; CheckboxIndeterminate, Checkbox, Chip, + CustomField, + CustomFieldValidation, + DateDropdown, + DateDropdownUserRange, + DateInput, + DateInputDisabled, + DateInputLabel, + DateInputReadonly, + DateInputValidation, ContentExample, DateDropdown, DateDropdownUserRange, @@ -271,6 +326,11 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; EventList, ExpandingSearch, FlipTile, + FormCheckbox, + FormCheckboxDisabled, + FormCheckboxValidation, + FormCheckboxGroup, + FormCheckboxGroupIndeterminate, GridPadding, GridSize, Grid, @@ -283,13 +343,13 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; IconToggleButtonSecondaryGhost, IconToggleButtonSecondaryOutline, IconToggleButtonSecondary, - InputDisabled, - InputLabels, - InputReadonly, - InputSearch, - InputTypes, - InputWithIcon, - Input, + InputLegacyDisabled, + InputLegacyLabels, + InputLegacyReadonly, + InputLegacySearch, + InputLegacyTypes, + InputLegacyWithIcon, + InputLegacy, KeyValueListStriped, KeyValueListWithCustomValue, KeyValueListWithIcon, @@ -319,11 +379,16 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; Pill, PillVariants, PopoverNews, + Radiobutton, + Radio, + RadioDisabled, + RadioGroup, + RadioValidation, PushCard, - RadioButton, SelectEditable, SelectMultiple, SelectNgModel, + SelectValidation, Select, Settings, SliderError, @@ -336,9 +401,21 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; SplitButton, TabsRounded, Tabs, + TextareaLegacyDisabled, + Textarea, TextareaDisabled, TextareaReadonly, - Textarea, + TextareaRowsCols, + TextareaValidation, + Input, + InputDisabled, + InputLabel, + InputReadonly, + InputTypes, + InputValidation, + InputPattern, + TextareaLegacyReadonly, + TextareaLegacy, ThemeSwitcher, Tile, Timepicker, @@ -365,6 +442,47 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; VerticalTabsWithAvatar, VerticalTabs, WorkflowVertical, + MapNavigation, + MapNavigationOverlay, + NumberInput, + NumberInputDisabled, + NumberInputLabel, + NumberInputReadonly, + NumberInputStepperButton, + NumberInputValidation, + TabsRounded, + DatepickerRange, + Tooltip, + PushCard, + ActionCard, + Card, + CardList, + EmptyState, + EmptyStateCompact, + EmptyStateCompactBreak, + KeyValue, + KeyValueWithCustomValue, + KeyValueWithIcon, + KeyValueWithLabelLeft, + KeyValueList, + KeyValueListWithCustomValue, + KeyValueListWithIcon, + KeyValueListStriped, + ContentHeader, + ContentHeaderNoBack, + MenuCategory, + Slider, + SliderTrace, + SliderMarker, + SliderError, + Grid, + GridSize, + GridPadding, + ModalSizes, + DatepickerLocale, + ValidationSelect, + LayoutAuto, + LayoutAutoCustom, Workflow, ], imports: [ @@ -373,6 +491,7 @@ import WorkflowVertical from '../preview-examples/workflow-vertical'; IxModule.forRoot(), AgGridModule, FormsModule, + ReactiveFormsModule, NgxEchartsModule.forRoot({ echarts: () => import('echarts'), }), diff --git a/packages/angular-test-app/src/preview-examples/custom-field-validation.html b/packages/angular-test-app/src/preview-examples/custom-field-validation.html new file mode 100644 index 00000000000..01351403065 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/custom-field-validation.html @@ -0,0 +1,51 @@ + + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
diff --git a/packages/angular-test-app/src/preview-examples/custom-field-validation.ts b/packages/angular-test-app/src/preview-examples/custom-field-validation.ts new file mode 100644 index 00000000000..6493e241170 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/custom-field-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './custom-field-validation.html', +}) +export default class CustomFieldValidation {} diff --git a/packages/angular-test-app/src/preview-examples/custom-field.html b/packages/angular-test-app/src/preview-examples/custom-field.html new file mode 100644 index 00000000000..daf9b4d21c6 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/custom-field.html @@ -0,0 +1,19 @@ + + + + + + + diff --git a/packages/angular-test-app/src/preview-examples/custom-field.ts b/packages/angular-test-app/src/preview-examples/custom-field.ts new file mode 100644 index 00000000000..2ceaa0baeb6 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/custom-field.ts @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component, ElementRef, ViewChild } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './custom-field.html', +}) +export default class CustomField { + @ViewChild('fileUpload') fileUpload!: ElementRef; + + openFileBrowser() { + this.fileUpload.nativeElement.click(); + this.fileUpload.nativeElement.oninput = (event: any) => { + console.log(event.target.files); + }; + } +} diff --git a/packages/angular-test-app/src/preview-examples/date-dropdown.html b/packages/angular-test-app/src/preview-examples/date-dropdown.html index 3304ba92960..f2c44c277cb 100644 --- a/packages/angular-test-app/src/preview-examples/date-dropdown.html +++ b/packages/angular-test-app/src/preview-examples/date-dropdown.html @@ -1 +1,10 @@ + + diff --git a/packages/angular-test-app/src/preview-examples/date-dropdown.ts b/packages/angular-test-app/src/preview-examples/date-dropdown.ts index 49f21ad3c34..de5d48fa5cd 100644 --- a/packages/angular-test-app/src/preview-examples/date-dropdown.ts +++ b/packages/angular-test-app/src/preview-examples/date-dropdown.ts @@ -13,4 +13,4 @@ import { Component } from '@angular/core'; selector: 'app-example', templateUrl: './date-dropdown.html', }) -export default class DateDropdownUserRange {} +export default class DateDropdown {} diff --git a/packages/angular-test-app/src/preview-examples/date-input-disabled.html b/packages/angular-test-app/src/preview-examples/date-input-disabled.html new file mode 100644 index 00000000000..8097344ed32 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-disabled.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/date-input-disabled.ts b/packages/angular-test-app/src/preview-examples/date-input-disabled.ts new file mode 100644 index 00000000000..f51142d384b --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-disabled.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './date-input-disabled.html', +}) +export default class DateInputDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/date-input-label.html b/packages/angular-test-app/src/preview-examples/date-input-label.html new file mode 100644 index 00000000000..60955666056 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-label.html @@ -0,0 +1,15 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/date-input-label.ts b/packages/angular-test-app/src/preview-examples/date-input-label.ts new file mode 100644 index 00000000000..788245c7d9e --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-label.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './date-input-label.html', +}) +export default class DateInputLabel {} diff --git a/packages/angular-test-app/src/preview-examples/date-input-readonly.html b/packages/angular-test-app/src/preview-examples/date-input-readonly.html new file mode 100644 index 00000000000..6b7921771e2 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-readonly.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/date-input-readonly.ts b/packages/angular-test-app/src/preview-examples/date-input-readonly.ts new file mode 100644 index 00000000000..337d8780280 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-readonly.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './date-input-readonly.html', +}) +export default class DateInputReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/date-input-validation.html b/packages/angular-test-app/src/preview-examples/date-input-validation.html new file mode 100644 index 00000000000..a11e4e72ff3 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-validation.html @@ -0,0 +1,41 @@ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ diff --git a/packages/angular-test-app/src/preview-examples/date-input-validation.ts b/packages/angular-test-app/src/preview-examples/date-input-validation.ts new file mode 100644 index 00000000000..e7a7650778d --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './date-input-validation.html', +}) +export default class DateInputValidation {} diff --git a/packages/angular-test-app/src/preview-examples/date-input.html b/packages/angular-test-app/src/preview-examples/date-input.html new file mode 100644 index 00000000000..bef4d77c56b --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/date-input.ts b/packages/angular-test-app/src/preview-examples/date-input.ts new file mode 100644 index 00000000000..eb3aad1e8ac --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/date-input.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './date-input.html', +}) +export default class DateInput {} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.html b/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.html new file mode 100644 index 00000000000..0f1c57b3b40 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.ts b/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.ts new file mode 100644 index 00000000000..24cd5ffd786 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-disabled.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: `./form-checkbox-disabled.html`, +}) +export default class FormCheckboxDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.css b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.css new file mode 100644 index 00000000000..d86ca7ea8ab --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.css @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.cb-padding { + padding-left: 1rem; +} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.html b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.html new file mode 100644 index 00000000000..1da8e473781 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.html @@ -0,0 +1,24 @@ + + + + + + diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.ts b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.ts new file mode 100644 index 00000000000..63454886150 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-group-indeterminate.ts @@ -0,0 +1,46 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './form-checkbox-group-indeterminate.html', + styleUrls: ['./form-checkbox-group-indeterminate.css'], +}) +export default class FormCheckboxGroupIndeterminate { + parentCheckbox = {indeterminate: true, checked: false, label: "Option group"}; + childCheckboxes = [ + {checked: true, label: "Sub option one"}, + {checked: true, label: "Another sub option"}, + {checked: false, label: "Another sub option"}, + ] + + parentCheckedChange() { + this.parentCheckbox.indeterminate = false; + this.childCheckboxes.forEach((cb) => { + cb.checked = this.parentCheckbox.checked; + }); + } + + checkedChange() { + if(this.childCheckboxes.every((cb) => cb.checked)){ + this.parentCheckbox.indeterminate = false; + this.parentCheckbox.checked = true; + } + else if(this.childCheckboxes.some((cb) => cb.checked)){ + this.parentCheckbox.indeterminate = true; + this.parentCheckbox.checked = false; + } + else { + this.parentCheckbox.indeterminate = false; + this.parentCheckbox.checked = false; + } + } +} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-group.html b/packages/angular-test-app/src/preview-examples/form-checkbox-group.html new file mode 100644 index 00000000000..97d352c21bb --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-group.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-group.ts b/packages/angular-test-app/src/preview-examples/form-checkbox-group.ts new file mode 100644 index 00000000000..06cc92ca6ef --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-group.ts @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: `./form-checkbox-group.html`, +}) +export default class FormCheckboxGroup { +} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-validation.html b/packages/angular-test-app/src/preview-examples/form-checkbox-validation.html new file mode 100644 index 00000000000..9ff2bb25baf --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-validation.html @@ -0,0 +1,51 @@ + + +
+ + + +
+ +
+ + + + +
+ +
+ + + + +
+ +
+ + + + +
diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox-validation.ts b/packages/angular-test-app/src/preview-examples/form-checkbox-validation.ts new file mode 100644 index 00000000000..1184cec96c1 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox-validation.ts @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: `./form-checkbox-validation.html`, +}) +export default class FormCheckboxValidation { +} diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox.html b/packages/angular-test-app/src/preview-examples/form-checkbox.html new file mode 100644 index 00000000000..5419275dca2 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/form-checkbox.ts b/packages/angular-test-app/src/preview-examples/form-checkbox.ts new file mode 100644 index 00000000000..9b7dd65af0d --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-checkbox.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: `./form-checkbox.html`, +}) +export default class FormCheckbox {} diff --git a/packages/angular-test-app/src/preview-examples/form-layout-auto.html b/packages/angular-test-app/src/preview-examples/form-layout-auto.html new file mode 100644 index 00000000000..5b8fb74ce29 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-layout-auto.html @@ -0,0 +1,7 @@ + + Example + + Example + + Submit + diff --git a/packages/angular-test-app/src/preview-examples/form-layout-auto.ts b/packages/angular-test-app/src/preview-examples/form-layout-auto.ts new file mode 100644 index 00000000000..dc8c9beee63 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-layout-auto.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './form-layout-auto.html', +}) +export default class FormLayoutAuto {} diff --git a/packages/angular-test-app/src/preview-examples/form-layout-grid.css b/packages/angular-test-app/src/preview-examples/form-layout-grid.css new file mode 100644 index 00000000000..d6390b71019 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-layout-grid.css @@ -0,0 +1,7 @@ +.layout-grid-example { + ix-select, + ix-input, + ix-button { + width: 100%; + } +} diff --git a/packages/angular-test-app/src/preview-examples/form-layout-grid.html b/packages/angular-test-app/src/preview-examples/form-layout-grid.html new file mode 100644 index 00000000000..bbdd5c8c5c9 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-layout-grid.html @@ -0,0 +1,23 @@ + + + + Example + + + + + + + + Example + + + + + + + + Submit + + + diff --git a/packages/angular-test-app/src/preview-examples/form-layout-grid.ts b/packages/angular-test-app/src/preview-examples/form-layout-grid.ts new file mode 100644 index 00000000000..7307c7888dc --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-layout-grid.ts @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './form-layout-grid.html', + styleUrls: ['./form-layout-grid.css'], +}) +export default class FormLayoutGrid {} diff --git a/packages/angular-test-app/src/preview-examples/form-validation.css b/packages/angular-test-app/src/preview-examples/form-validation.css new file mode 100644 index 00000000000..4f98e054d49 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-validation.css @@ -0,0 +1,22 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.form-validation-example { + display: flex; + flex-direction: column; + width: fit-content; +} + +.form-validation-example .padding-right { + padding-right: 0.5rem; +} diff --git a/packages/angular-test-app/src/preview-examples/form-validation.html b/packages/angular-test-app/src/preview-examples/form-validation.html new file mode 100644 index 00000000000..ea03e1330f1 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-validation.html @@ -0,0 +1,110 @@ + + +
+ + + + + + + + + + + + + + + + + m2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Submit + + +
diff --git a/packages/angular-test-app/src/preview-examples/form-validation.ts b/packages/angular-test-app/src/preview-examples/form-validation.ts new file mode 100644 index 00000000000..9c40f8cd995 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/form-validation.ts @@ -0,0 +1,174 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + Component, + ElementRef, + OnDestroy, + OnInit, + ViewChild, +} from '@angular/core'; +import { + AbstractControl, + FormControl, + FormGroup, + ValidationErrors, + ValidatorFn, + Validators, +} from '@angular/forms'; +import { Subscription } from 'rxjs'; + +export function forbiddenDateValidator(nameRe: RegExp): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + const forbidden = nameRe.test(control.value); + return forbidden + ? { + forbiddenDate: { + value: control.value, + message: 'Its not allowed to choose this date!', + }, + } + : null; + }; +} + +export function customRequiredValidator(): ValidatorFn { + return (control: AbstractControl) => { + if (!control.untouched) { + return Validators.required(control); + } + return null; + }; +} + +@Component({ + selector: 'app-example', + templateUrl: `./form-validation.html`, + styles: [ + ` + @import './form-validation.css'; + `, + ], +}) +export default class FormValidation implements OnInit, OnDestroy { + @ViewChild('upload') upload?: ElementRef; + + thresholdLimitAErrorText = ''; + beginErrorText = ''; + + statusSubscription?: Subscription; + valueSubscription?: Subscription; + + thresholdLimitBWarning = false; + + exampleForm = new FormGroup({ + name: new FormControl('', [customRequiredValidator()]), + 'last-name': new FormControl('Muster', [customRequiredValidator()]), + address: new FormControl('John Street 14', [Validators.required]), + thresholdLimitA: new FormControl(6, [ + Validators.required, + Validators.max(5), + ]), + thresholdLimitB: new FormControl(7, [Validators.required]), + begin: new FormControl('2024/05/05', [Validators.required]), + end: new FormControl('2024/05/05', [ + Validators.required, + forbiddenDateValidator(/2024\/05\/05/), + ]), + comment: new FormControl('Some info', [Validators.required]), + agreed: new FormControl(true, [Validators.requiredTrue]), + 'booking-option': new FormControl('2', [Validators.required]), + 'travel-option': new FormControl('3', [Validators.required]), + 'room-size': new FormControl(100, [Validators.required]), + email: new FormControl('', [Validators.required, Validators.email]), + pin: new FormControl('', [Validators.required]), + upload: new FormControl('', []), + uploadPath: new FormControl('', [Validators.required]), + }); + + private onValidationChange(value: typeof this.exampleForm.value) { + this.thresholdLimitBWarning = + !!value.thresholdLimitB && value.thresholdLimitB > 5; + } + + private onStatusChange() { + if (this.exampleForm.controls['thresholdLimitA'].errors) { + this.handleParentsValidationErrors( + this.exampleForm.controls['thresholdLimitA'].errors + ); + } + + if (this.exampleForm.controls['end'].errors) { + this.handleEndValidationErrors(this.exampleForm.controls['end'].errors); + } + } + + handleParentsValidationErrors(errors: ValidationErrors) { + if (errors['max']) { + this.thresholdLimitAErrorText = + 'The threshold must be equal or lesser than 5'; + } + } + + handleEndValidationErrors(errors: ValidationErrors) { + if (errors['forbiddenDate']) { + this.beginErrorText = errors['forbiddenDate'].message; + } + } + + ngOnInit(): void { + this.statusSubscription = this.exampleForm.statusChanges.subscribe( + (status) => { + if (status !== 'VALID') { + this.onStatusChange(); + } + } + ); + + this.onStatusChange(); + + this.valueSubscription = this.exampleForm.valueChanges.subscribe((value) => + this.onValidationChange(value) + ); + + this.onValidationChange(this.exampleForm.value); + } + + ngOnDestroy(): void { + if (this.statusSubscription) { + this.statusSubscription.unsubscribe(); + } + + if (this.valueSubscription) { + this.valueSubscription.unsubscribe(); + } + } + + openFileUpload() { + this.upload?.nativeElement.click(); + } + + onFileSelected(event: Event) { + const target = event.target as HTMLInputElement; + if (!target) { + return; + } + // Store the file somewhere to upload the asset after the form is submitted + const file = target.files?.[0]; + if (!file) { + return; + } + + this.exampleForm.controls['uploadPath'].setValue(file.name); + } + + submit() { + console.log(this.exampleForm.value); + } +} diff --git a/packages/angular-test-app/src/preview-examples/input-disabled.html b/packages/angular-test-app/src/preview-examples/input-disabled.html new file mode 100644 index 00000000000..dde147cc09a --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-disabled.html @@ -0,0 +1,13 @@ + + diff --git a/packages/angular-test-app/src/preview-examples/input-disabled.ts b/packages/angular-test-app/src/preview-examples/input-disabled.ts index 6bb94d15332..cba31fd22d7 100644 --- a/packages/angular-test-app/src/preview-examples/input-disabled.ts +++ b/packages/angular-test-app/src/preview-examples/input-disabled.ts @@ -11,15 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` -
- -
- `, + templateUrl: './input-disabled.html', }) export default class InputDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/input-form-validation.html b/packages/angular-test-app/src/preview-examples/input-form-validation.html new file mode 100644 index 00000000000..8e4002b66ac --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-form-validation.html @@ -0,0 +1,18 @@ + +
+ + + Submit +
diff --git a/packages/angular-test-app/src/preview-examples/input-form-validation.ts b/packages/angular-test-app/src/preview-examples/input-form-validation.ts new file mode 100644 index 00000000000..b35590f05de --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-form-validation.ts @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; + +@Component({ + selector: 'app-example', + templateUrl: `./input-form-validation.html`, +}) +export default class InputFormValidation { + exampleForm = new FormGroup({ + name: new FormControl('', [Validators.required]), + }); + + submit() { + console.log(this.exampleForm.value); + } +} diff --git a/packages/angular-test-app/src/preview-examples/input-label.html b/packages/angular-test-app/src/preview-examples/input-label.html new file mode 100644 index 00000000000..40f5af985b4 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-label.html @@ -0,0 +1,15 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/input-label.ts b/packages/angular-test-app/src/preview-examples/input-label.ts new file mode 100644 index 00000000000..446ac115b74 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-label.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './input-label.html' +}) +export default class InputLabel {} diff --git a/packages/angular-test-app/src/preview-examples/input-legacy-disabled.ts b/packages/angular-test-app/src/preview-examples/input-legacy-disabled.ts new file mode 100644 index 00000000000..846cfc37c51 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-legacy-disabled.ts @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` +
+ +
+ `, +}) +export default class InputLegacyDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/input-labels.ts b/packages/angular-test-app/src/preview-examples/input-legacy-labels.ts similarity index 94% rename from packages/angular-test-app/src/preview-examples/input-labels.ts rename to packages/angular-test-app/src/preview-examples/input-legacy-labels.ts index 32b357cd5c1..e546cb0d709 100644 --- a/packages/angular-test-app/src/preview-examples/input-labels.ts +++ b/packages/angular-test-app/src/preview-examples/input-legacy-labels.ts @@ -25,4 +25,4 @@ import { Component } from '@angular/core'; `, }) -export default class Input {} +export default class InputLegacyLabels {} diff --git a/packages/angular-test-app/src/preview-examples/input-legacy-readonly.ts b/packages/angular-test-app/src/preview-examples/input-legacy-readonly.ts new file mode 100644 index 00000000000..bf42c2befc9 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-legacy-readonly.ts @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` +
+ +
+ `, +}) +export default class InputLegacyReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/input-search.ts b/packages/angular-test-app/src/preview-examples/input-legacy-search.ts similarity index 90% rename from packages/angular-test-app/src/preview-examples/input-search.ts rename to packages/angular-test-app/src/preview-examples/input-legacy-search.ts index 902574a9176..dc7dfdfaef6 100644 --- a/packages/angular-test-app/src/preview-examples/input-search.ts +++ b/packages/angular-test-app/src/preview-examples/input-legacy-search.ts @@ -39,7 +39,7 @@ import { Component } from '@angular/core'; `, }) -export default class Input { +export default class InputLegacySearch { customSearch = ''; display = 'none'; @@ -55,8 +55,6 @@ export default class Input { } onKey(event: any) { - event.target.value === '' - ? (this.display = 'none') - : (this.display = 'block'); + this.display = event.target.value === '' ? 'none' : 'block'; } } diff --git a/packages/angular-test-app/src/preview-examples/input-legacy-types.ts b/packages/angular-test-app/src/preview-examples/input-legacy-types.ts new file mode 100644 index 00000000000..dd3225abdd2 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-legacy-types.ts @@ -0,0 +1,45 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` +
+ + Text: + + + + + Number: + + .00 + $ + + + + Password: + + + + + Email: + + + + + Telephone: + + +
+ `, +}) +export default class InputLegacyTypes {} diff --git a/packages/angular-test-app/src/preview-examples/input-with-icon.ts b/packages/angular-test-app/src/preview-examples/input-legacy-with-icon.ts similarity index 92% rename from packages/angular-test-app/src/preview-examples/input-with-icon.ts rename to packages/angular-test-app/src/preview-examples/input-legacy-with-icon.ts index 8443b8ab6be..c2552d3aa54 100644 --- a/packages/angular-test-app/src/preview-examples/input-with-icon.ts +++ b/packages/angular-test-app/src/preview-examples/input-legacy-with-icon.ts @@ -20,4 +20,4 @@ import { Component } from '@angular/core'; `, }) -export default class InputWithIcon {} +export default class InputLegacyWithIcon {} diff --git a/packages/angular-test-app/src/preview-examples/input-legacy.ts b/packages/angular-test-app/src/preview-examples/input-legacy.ts new file mode 100644 index 00000000000..fb46a43adc0 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-legacy.ts @@ -0,0 +1,24 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` +
+ +
+ `, +}) +export default class InputLegacy {} diff --git a/packages/angular-test-app/src/preview-examples/input-pattern.html b/packages/angular-test-app/src/preview-examples/input-pattern.html new file mode 100644 index 00000000000..aa790e30c66 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-pattern.html @@ -0,0 +1,13 @@ + + diff --git a/packages/angular-test-app/src/preview-examples/input-pattern.ts b/packages/angular-test-app/src/preview-examples/input-pattern.ts new file mode 100644 index 00000000000..a8f76bf5e19 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-pattern.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './input-pattern.html' +}) +export default class InputPattern {} diff --git a/packages/angular-test-app/src/preview-examples/input-readonly.html b/packages/angular-test-app/src/preview-examples/input-readonly.html new file mode 100644 index 00000000000..8638eb6e862 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-readonly.html @@ -0,0 +1,14 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/input-readonly.ts b/packages/angular-test-app/src/preview-examples/input-readonly.ts index 9fb89c732b4..0199d6a3858 100644 --- a/packages/angular-test-app/src/preview-examples/input-readonly.ts +++ b/packages/angular-test-app/src/preview-examples/input-readonly.ts @@ -11,15 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` -
- -
- `, + templateUrl: './input-readonly.html' }) export default class InputReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/input-types.html b/packages/angular-test-app/src/preview-examples/input-types.html new file mode 100644 index 00000000000..27b32339aa7 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-types.html @@ -0,0 +1,49 @@ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/packages/angular-test-app/src/preview-examples/input-types.ts b/packages/angular-test-app/src/preview-examples/input-types.ts index a522f0eefae..09a27985fd0 100644 --- a/packages/angular-test-app/src/preview-examples/input-types.ts +++ b/packages/angular-test-app/src/preview-examples/input-types.ts @@ -11,35 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` -
- - Text: - - - - - Number: - - .00 - $ - - - - Password: - - - - - Email: - - - - - Telephone: - - -
- `, + templateUrl: './input-types.html' }) -export default class Input {} +export default class InputTypes {} diff --git a/packages/angular-test-app/src/preview-examples/input-validation.html b/packages/angular-test-app/src/preview-examples/input-validation.html new file mode 100644 index 00000000000..ae17367d111 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-validation.html @@ -0,0 +1,35 @@ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/packages/angular-test-app/src/preview-examples/input-validation.ts b/packages/angular-test-app/src/preview-examples/input-validation.ts new file mode 100644 index 00000000000..3bda3950d59 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './input-validation.html', +}) +export default class InputValidation {} diff --git a/packages/angular-test-app/src/preview-examples/input.html b/packages/angular-test-app/src/preview-examples/input.html new file mode 100644 index 00000000000..905c6a2b069 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/input.html @@ -0,0 +1,12 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/input.ts b/packages/angular-test-app/src/preview-examples/input.ts index 5fa4e41246c..c14cfcd2d63 100644 --- a/packages/angular-test-app/src/preview-examples/input.ts +++ b/packages/angular-test-app/src/preview-examples/input.ts @@ -11,14 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` -
- -
- `, + templateUrl: './input.html' }) export default class Input {} diff --git a/packages/angular-test-app/src/preview-examples/layout-auto-custom.html b/packages/angular-test-app/src/preview-examples/layout-auto-custom.html new file mode 100644 index 00000000000..00a77812132 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/layout-auto-custom.html @@ -0,0 +1,16 @@ + + + 1 + 2 + 3 + 4 + 5 + 6 + diff --git a/packages/angular-test-app/src/preview-examples/layout-auto-custom.ts b/packages/angular-test-app/src/preview-examples/layout-auto-custom.ts new file mode 100644 index 00000000000..c3fa4d08083 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/layout-auto-custom.ts @@ -0,0 +1,23 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './layout-auto-custom.html', + styleUrls: ['./layout-auto.css'], +}) +export default class LayoutAutoCustom { + layout = [ + { minWidth: '0', columns: 1 }, + { minWidth: '35rem', columns: 2 }, + { minWidth: '50rem', columns: 4 }, + ]; +} diff --git a/packages/angular-test-app/src/preview-examples/layout-auto.css b/packages/angular-test-app/src/preview-examples/layout-auto.css new file mode 100644 index 00000000000..8d3766cbc84 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/layout-auto.css @@ -0,0 +1,24 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +ix-layout-auto ix-typography { + display: flex; + padding: 0.15rem; + flex-direction: column; + justify-content: center; + align-items: center; + align-self: stretch; + border: 0.0625rem solid var(--theme-color-soft-bdr); + background: var(--theme-color-ghost); + border-radius: 0.1875rem; +} diff --git a/packages/angular-test-app/src/preview-examples/layout-auto.html b/packages/angular-test-app/src/preview-examples/layout-auto.html new file mode 100644 index 00000000000..0d9ed063f71 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/layout-auto.html @@ -0,0 +1,16 @@ + + + 1 + 2 + 3 + 4 + 5 + 6 + diff --git a/packages/angular-test-app/src/preview-examples/layout-auto.ts b/packages/angular-test-app/src/preview-examples/layout-auto.ts new file mode 100644 index 00000000000..fd75c1cfa32 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/layout-auto.ts @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './layout-auto.html', + styleUrls: ['./layout-auto.css'], +}) +export default class LayoutAuto {} diff --git a/packages/angular-test-app/src/preview-examples/number-input-disabled.html b/packages/angular-test-app/src/preview-examples/number-input-disabled.html new file mode 100644 index 00000000000..228f35324a9 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-disabled.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/number-input-disabled.ts b/packages/angular-test-app/src/preview-examples/number-input-disabled.ts new file mode 100644 index 00000000000..b47b256917c --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-disabled.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input-disabled.html' +}) +export default class NumberInputDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/number-input-label.html b/packages/angular-test-app/src/preview-examples/number-input-label.html new file mode 100644 index 00000000000..5466fd1a91e --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-label.html @@ -0,0 +1,13 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/number-input-label.ts b/packages/angular-test-app/src/preview-examples/number-input-label.ts new file mode 100644 index 00000000000..d25863f3788 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-label.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input-label.html' +}) +export default class NumberInputLabel {} diff --git a/packages/angular-test-app/src/preview-examples/number-input-readonly.html b/packages/angular-test-app/src/preview-examples/number-input-readonly.html new file mode 100644 index 00000000000..f08f0af82e3 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-readonly.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/number-input-readonly.ts b/packages/angular-test-app/src/preview-examples/number-input-readonly.ts new file mode 100644 index 00000000000..597749a74d4 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-readonly.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input-readonly.html' +}) +export default class NumberInputReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/number-input-stepper-button.html b/packages/angular-test-app/src/preview-examples/number-input-stepper-button.html new file mode 100644 index 00000000000..78b0795e2f5 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-stepper-button.html @@ -0,0 +1,13 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/number-input-stepper-button.ts b/packages/angular-test-app/src/preview-examples/number-input-stepper-button.ts new file mode 100644 index 00000000000..22765110fbd --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-stepper-button.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input-stepper-button.html' +}) +export default class NumberInputStepperButton {} diff --git a/packages/angular-test-app/src/preview-examples/number-input-validation.html b/packages/angular-test-app/src/preview-examples/number-input-validation.html new file mode 100644 index 00000000000..7d0fd36e089 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-validation.html @@ -0,0 +1,41 @@ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ diff --git a/packages/angular-test-app/src/preview-examples/number-input-validation.ts b/packages/angular-test-app/src/preview-examples/number-input-validation.ts new file mode 100644 index 00000000000..aab83da6310 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input-validation.html' +}) +export default class NumberInputValidation {} diff --git a/packages/angular-test-app/src/preview-examples/number-input.html b/packages/angular-test-app/src/preview-examples/number-input.html new file mode 100644 index 00000000000..fc7592a3892 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input.html @@ -0,0 +1,10 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/number-input.ts b/packages/angular-test-app/src/preview-examples/number-input.ts new file mode 100644 index 00000000000..82b68a2c9dc --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/number-input.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './number-input.html' +}) +export default class NumberInput {} diff --git a/packages/angular-test-app/src/preview-examples/radio-disabled.html b/packages/angular-test-app/src/preview-examples/radio-disabled.html new file mode 100644 index 00000000000..05cb53d751c --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-disabled.html @@ -0,0 +1,16 @@ + + + + diff --git a/packages/angular-test-app/src/preview-examples/radio-disabled.ts b/packages/angular-test-app/src/preview-examples/radio-disabled.ts new file mode 100644 index 00000000000..5ea2804fbd3 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-disabled.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './radio-disabled.html', +}) +export default class RadioDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/radio-group.html b/packages/angular-test-app/src/preview-examples/radio-group.html new file mode 100644 index 00000000000..831d504273b --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-group.html @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/packages/angular-test-app/src/preview-examples/radio-group.ts b/packages/angular-test-app/src/preview-examples/radio-group.ts new file mode 100644 index 00000000000..7c7a7ac9220 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-group.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './radio-group.html', +}) +export default class RadioGroup {} diff --git a/packages/angular-test-app/src/preview-examples/radio-validation.html b/packages/angular-test-app/src/preview-examples/radio-validation.html new file mode 100644 index 00000000000..dd3d87560e1 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-validation.html @@ -0,0 +1,52 @@ + + +
+ + + + +
+ +
+ + + + +
diff --git a/packages/angular-test-app/src/preview-examples/radio-validation.ts b/packages/angular-test-app/src/preview-examples/radio-validation.ts new file mode 100644 index 00000000000..b37ab84c553 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './radio-validation.html', +}) +export default class RadioValidation {} diff --git a/packages/angular-test-app/src/preview-examples/radio.html b/packages/angular-test-app/src/preview-examples/radio.html new file mode 100644 index 00000000000..57e639ff920 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio.html @@ -0,0 +1,6 @@ + + diff --git a/packages/angular-test-app/src/preview-examples/radio.ts b/packages/angular-test-app/src/preview-examples/radio.ts new file mode 100644 index 00000000000..3cf1862fa75 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/radio.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './radio.html', +}) +export default class Radio {} diff --git a/packages/angular-test-app/src/preview-examples/select-validation.html b/packages/angular-test-app/src/preview-examples/select-validation.html new file mode 100644 index 00000000000..1f3a136a464 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/select-validation.html @@ -0,0 +1,58 @@ + + +
+ + + + + +
+
+ + + + +
+
+ + + + + +
+
+ + + + +
diff --git a/packages/angular-test-app/src/preview-examples/select-validation.ts b/packages/angular-test-app/src/preview-examples/select-validation.ts new file mode 100644 index 00000000000..a7133632728 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/select-validation.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './select-validation.html', +}) +export default class SelectValidation {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-disabled.html b/packages/angular-test-app/src/preview-examples/textarea-disabled.html new file mode 100644 index 00000000000..10241f2ae62 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-disabled.html @@ -0,0 +1,18 @@ + + +
+ +
diff --git a/packages/angular-test-app/src/preview-examples/textarea-disabled.ts b/packages/angular-test-app/src/preview-examples/textarea-disabled.ts index ea33a995591..3ebcb4a1ad3 100644 --- a/packages/angular-test-app/src/preview-examples/textarea-disabled.ts +++ b/packages/angular-test-app/src/preview-examples/textarea-disabled.ts @@ -11,10 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` - - `, + templateUrl: './textarea-disabled.html' }) export default class TextareaDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-legacy-disabled.ts b/packages/angular-test-app/src/preview-examples/textarea-legacy-disabled.ts new file mode 100644 index 00000000000..e2ed3ac73cd --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-legacy-disabled.ts @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` + + `, +}) +export default class TextareaLegacyDisabled {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-legacy-readonly.ts b/packages/angular-test-app/src/preview-examples/textarea-legacy-readonly.ts new file mode 100644 index 00000000000..33c0eafbe91 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-legacy-readonly.ts @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` + + `, +}) +export default class TextareaLegacyReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-legacy.ts b/packages/angular-test-app/src/preview-examples/textarea-legacy.ts new file mode 100644 index 00000000000..082c144f093 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-legacy.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + template: ` `, +}) +export default class TextareaLegacy {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-readonly.html b/packages/angular-test-app/src/preview-examples/textarea-readonly.html new file mode 100644 index 00000000000..24a4b580117 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-readonly.html @@ -0,0 +1,15 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/textarea-readonly.ts b/packages/angular-test-app/src/preview-examples/textarea-readonly.ts index 0655462ad0b..73728ac6d9f 100644 --- a/packages/angular-test-app/src/preview-examples/textarea-readonly.ts +++ b/packages/angular-test-app/src/preview-examples/textarea-readonly.ts @@ -11,10 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` - - `, + templateUrl: './textarea-readonly.html' }) export default class TextareaReadonly {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-rows-cols.html b/packages/angular-test-app/src/preview-examples/textarea-rows-cols.html new file mode 100644 index 00000000000..3deb65d16e6 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-rows-cols.html @@ -0,0 +1,18 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/textarea-rows-cols.ts b/packages/angular-test-app/src/preview-examples/textarea-rows-cols.ts new file mode 100644 index 00000000000..7202b2dac62 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-rows-cols.ts @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './textarea-rows-cols.html' +}) +export default class TextareaRowsCols {} diff --git a/packages/angular-test-app/src/preview-examples/textarea-validation.html b/packages/angular-test-app/src/preview-examples/textarea-validation.html new file mode 100644 index 00000000000..8f6b0429493 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-validation.html @@ -0,0 +1,58 @@ + + +
+ +
+ +
+ +
+
+ +
+
+ +
diff --git a/packages/angular-test-app/src/preview-examples/textarea-validation.ts b/packages/angular-test-app/src/preview-examples/textarea-validation.ts new file mode 100644 index 00000000000..7e68ee91325 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea-validation.ts @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-example', + templateUrl: './textarea-validation.html', +}) +export default class TextareaValidation { +} diff --git a/packages/angular-test-app/src/preview-examples/textarea.html b/packages/angular-test-app/src/preview-examples/textarea.html new file mode 100644 index 00000000000..4c63daf55e0 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/textarea.html @@ -0,0 +1,14 @@ + + + diff --git a/packages/angular-test-app/src/preview-examples/textarea.ts b/packages/angular-test-app/src/preview-examples/textarea.ts index f54028ceb1d..80a75e02a8f 100644 --- a/packages/angular-test-app/src/preview-examples/textarea.ts +++ b/packages/angular-test-app/src/preview-examples/textarea.ts @@ -11,6 +11,6 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-example', - template: ` `, + templateUrl: './textarea.html' }) export default class Textarea {} diff --git a/packages/angular-test-app/src/preview-examples/validation-select.html b/packages/angular-test-app/src/preview-examples/validation-select.html new file mode 100644 index 00000000000..be899dcb818 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/validation-select.html @@ -0,0 +1,21 @@ + +
+ + + + + Submit +
diff --git a/packages/angular-test-app/src/preview-examples/validation-select.ts b/packages/angular-test-app/src/preview-examples/validation-select.ts new file mode 100644 index 00000000000..abffeddf436 --- /dev/null +++ b/packages/angular-test-app/src/preview-examples/validation-select.ts @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; + +@Component({ + selector: 'app-example', + templateUrl: `./validation-select.html`, +}) +export default class ValidationSelect { + exampleForm = new FormGroup({ + car: new FormControl('', [Validators.required]), + }); + + submit() { + console.log(this.exampleForm.value); + } +} diff --git a/packages/angular/src/app-initialize.ts b/packages/angular/src/app-initialize.ts index 5c35442b0e2..4e848e8dce7 100644 --- a/packages/angular/src/app-initialize.ts +++ b/packages/angular/src/app-initialize.ts @@ -22,8 +22,8 @@ export const appInitialize = (doc: Document) => { didInitialize = true; - defineCustomElements(); await iconsDefineCustomElements(); + defineCustomElements(); } }; }; diff --git a/packages/angular/src/boolean-value-accessor.ts b/packages/angular/src/boolean-value-accessor.ts deleted file mode 100644 index 3c3ff4f0028..00000000000 --- a/packages/angular/src/boolean-value-accessor.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Directive, ElementRef } from '@angular/core'; -import { NG_VALUE_ACCESSOR } from '@angular/forms'; - -import { ValueAccessor } from './value-accessor'; - -@Directive({ - /* tslint:disable-next-line:directive-selector */ - selector: 'ix-toggle[ngModel],ix-toggle[formControlName],ix-toggle[formControl]', - host: { - '(checkedChange)': 'handleChangeEvent($event.target.checked)' - }, - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: BooleanValueAccessor, - multi: true - } - ] -}) -export class BooleanValueAccessor extends ValueAccessor { - constructor(el: ElementRef) { - super(el); - } - writeValue(value: any) { - this.el.nativeElement.checked = this.lastValue = value == null ? false : value; - } -} diff --git a/packages/angular/src/components.ts b/packages/angular/src/components.ts index 13560587b85..87b1d8dfe36 100644 --- a/packages/angular/src/components.ts +++ b/packages/angular/src/components.ts @@ -388,6 +388,60 @@ export declare interface IxCategoryFilter extends Components.IxCategoryFilter { } +@ProxyCmp({ + inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value'] +}) +@Component({ + selector: 'ix-checkbox', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value'], +}) +export class IxCheckbox { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['checkedChange', 'valueChange']); + } +} + + +export declare interface IxCheckbox extends Components.IxCheckbox { + /** + * Event emitted when the checked state of the checkbox changes + */ + checkedChange: EventEmitter>; + /** + * Event emitted when the value of the checkbox changes + */ + valueChange: EventEmitter>; +} + + +@ProxyCmp({ + inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText'] +}) +@Component({ + selector: 'ix-checkbox-group', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText'], +}) +export class IxCheckboxGroup { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + } +} + + +export declare interface IxCheckboxGroup extends Components.IxCheckboxGroup {} + + @ProxyCmp({ inputs: ['active', 'background', 'chipColor', 'closable', 'color', 'icon', 'outline', 'variant'] }) @@ -487,6 +541,28 @@ export declare interface IxContentHeader extends Components.IxContentHeader { } +@ProxyCmp({ + inputs: ['helperText', 'infoText', 'invalidText', 'label', 'required', 'showTextAsTooltip', 'validText', 'warningText'] +}) +@Component({ + selector: 'ix-custom-field', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['helperText', 'infoText', 'invalidText', 'label', 'required', 'showTextAsTooltip', 'validText', 'warningText'], +}) +export class IxCustomField { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + } +} + + +export declare interface IxCustomField extends Components.IxCustomField {} + + @ProxyCmp({ inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'disabled', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'locale', 'maxDate', 'minDate', 'range', 'to', 'weekStartIndex'], methods: ['getDateRange'] @@ -521,6 +597,41 @@ The event payload contains information about the selected date range. } +@ProxyCmp({ + inputs: ['disabled', 'format', 'helperText', 'i18nErrorDateUnparsable', 'infoText', 'invalidText', 'label', 'locale', 'name', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'validText', 'value', 'warningText'], + methods: ['getNativeInputElement', 'focusInput'] +}) +@Component({ + selector: 'ix-date-input', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['disabled', 'format', 'helperText', 'i18nErrorDateUnparsable', 'infoText', 'invalidText', 'label', 'locale', 'name', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'validText', 'value', 'warningText'], +}) +export class IxDateInput { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['valueChange', 'validityStateChange']); + } +} + + +import type { DateInputValidityState as IIxDateInputDateInputValidityState } from '@siemens/ix'; + +export declare interface IxDateInput extends Components.IxDateInput { + /** + * Input change event. + */ + valueChange: EventEmitter>; + /** + * Validation state change event. + */ + validityStateChange: EventEmitter>; +} + + @ProxyCmp({ inputs: ['corners', 'eventDelimiter', 'format', 'from', 'i18nDone', 'individual', 'locale', 'maxDate', 'minDate', 'range', 'textSelectDate', 'to', 'weekStartIndex'], methods: ['getCurrentDate'] @@ -888,6 +999,28 @@ export declare interface IxExpandingSearch extends Components.IxExpandingSearch } +@ProxyCmp({ + inputs: ['htmlFor', 'required'] +}) +@Component({ + selector: 'ix-field-label', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['htmlFor', 'required'], +}) +export class IxFieldLabel { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + } +} + + +export declare interface IxFieldLabel extends Components.IxFieldLabel {} + + @ProxyCmp({ inputs: ['disabled', 'readonly'] }) @@ -959,28 +1092,6 @@ export class IxFlipTileContent { export declare interface IxFlipTileContent extends Components.IxFlipTileContent {} -@ProxyCmp({ - inputs: ['label'] -}) -@Component({ - selector: 'ix-form-field', - changeDetection: ChangeDetectionStrategy.OnPush, - template: '', - // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['label'], -}) -export class IxFormField { - protected el: HTMLElement; - constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { - c.detach(); - this.el = r.nativeElement; - } -} - - -export declare interface IxFormField extends Components.IxFormField {} - - @ProxyCmp({ inputs: ['collapsed', 'expandOnHeaderClick', 'header', 'index', 'selected', 'subHeader', 'suppressHeaderSelection'] }) @@ -1066,6 +1177,28 @@ export declare interface IxGroupItem extends Components.IxGroupItem { } +@ProxyCmp({ + inputs: ['helperText', 'htmlFor', 'infoText', 'invalidText', 'validText', 'warningText'] +}) +@Component({ + selector: 'ix-helper-text', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['helperText', 'htmlFor', 'infoText', 'invalidText', 'validText', 'warningText'], +}) +export class IxHelperText { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + } +} + + +export declare interface IxHelperText extends Components.IxHelperText {} + + @ProxyCmp({ inputs: ['a11yLabel', 'color', 'disabled', 'ghost', 'icon', 'iconColor', 'loading', 'outline', 'oval', 'size', 'type', 'variant'] }) @@ -1116,6 +1249,43 @@ export declare interface IxIconToggleButton extends Components.IxIconToggleButto } +@ProxyCmp({ + inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'type', 'validText', 'value', 'warningText'], + methods: ['getNativeInputElement', 'focusInput'] +}) +@Component({ + selector: 'ix-input', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'type', 'validText', 'value', 'warningText'], +}) +export class IxInput { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['valueChange', 'validityStateChange', 'ixBlur']); + } +} + + +export declare interface IxInput extends Components.IxInput { + /** + * Event emitted when the value of the text field changes. + */ + valueChange: EventEmitter>; + /** + * Event emitted when the validity state of the text field changes. + */ + validityStateChange: EventEmitter>; + /** + * Event emitted when the text field loses focus. + */ + ixBlur: EventEmitter>; +} + + @ProxyCmp({ }) @Component({ @@ -1203,6 +1373,28 @@ export class IxKpi { export declare interface IxKpi extends Components.IxKpi {} +@ProxyCmp({ + inputs: ['layout'] +}) +@Component({ + selector: 'ix-layout-auto', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['layout'], +}) +export class IxLayoutAuto { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + } +} + + +export declare interface IxLayoutAuto extends Components.IxLayoutAuto {} + + @ProxyCmp({ inputs: ['columns', 'gap', 'noMargin'] }) @@ -1746,6 +1938,43 @@ Can be prevented, in which case only the event is triggered, and the modal remai } +@ProxyCmp({ + inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'max', 'min', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showStepperButtons', 'showTextAsTooltip', 'validText', 'value', 'warningText'], + methods: ['getNativeInputElement', 'focusInput'] +}) +@Component({ + selector: 'ix-number-input', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'max', 'min', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showStepperButtons', 'showTextAsTooltip', 'validText', 'value', 'warningText'], +}) +export class IxNumberInput { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['valueChange', 'validityStateChange', 'ixBlur']); + } +} + + +export declare interface IxNumberInput extends Components.IxNumberInput { + /** + * Event emitted when the value of the input field changes + */ + valueChange: EventEmitter>; + /** + * Event emitted when the validity state of the input field changes + */ + validityStateChange: EventEmitter>; + /** + * Event emitted when the input field loses focus + */ + ixBlur: EventEmitter>; +} + + @ProxyCmp({ inputs: ['advanced', 'count', 'i18nItems', 'i18nOf', 'i18nPage', 'itemCount', 'selectedPage', 'showItemCount'] }) @@ -1884,6 +2113,66 @@ export class IxPushCard { export declare interface IxPushCard extends Components.IxPushCard {} +@ProxyCmp({ + inputs: ['checked', 'disabled', 'label', 'name', 'value'] +}) +@Component({ + selector: 'ix-radio', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['checked', 'disabled', 'label', 'name', 'value'], +}) +export class IxRadio { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['checkedChange', 'valueChange']); + } +} + + +export declare interface IxRadio extends Components.IxRadio { + /** + * Event emitted when the checked state of the radio changes + */ + checkedChange: EventEmitter>; + /** + * Event emitted when the value of the radio changes + */ + valueChange: EventEmitter>; +} + + +@ProxyCmp({ + inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText'] +}) +@Component({ + selector: 'ix-radio-group', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText'], +}) +export class IxRadioGroup { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['valueChange']); + } +} + + +export declare interface IxRadioGroup extends Components.IxRadioGroup { + /** + * Event emitted when the value of the radiobutton group changes + */ + valueChange: EventEmitter>; +} + + @ProxyCmp({ }) @Component({ @@ -1906,21 +2195,22 @@ export declare interface IxRow extends Components.IxRow {} @ProxyCmp({ - inputs: ['allowClear', 'disabled', 'editable', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices', 'value'] + inputs: ['allowClear', 'disabled', 'editable', 'helperText', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'infoText', 'invalidText', 'label', 'mode', 'name', 'readonly', 'required', 'selectedIndices', 'showTextAsTooltip', 'validText', 'value', 'warningText'], + methods: ['getNativeInputElement', 'focusInput'] }) @Component({ selector: 'ix-select', changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['allowClear', 'disabled', 'editable', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices', 'value'], + inputs: ['allowClear', 'disabled', 'editable', 'helperText', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'infoText', 'invalidText', 'label', 'mode', 'name', 'readonly', 'required', 'selectedIndices', 'showTextAsTooltip', 'validText', 'value', 'warningText'], }) export class IxSelect { protected el: HTMLElement; constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { c.detach(); this.el = r.nativeElement; - proxyOutputs(this, this.el, ['valueChange', 'itemSelectionChange', 'inputChange', 'addItem']); + proxyOutputs(this, this.el, ['valueChange', 'itemSelectionChange', 'inputChange', 'addItem', 'ixBlur']); } } @@ -1942,6 +2232,10 @@ export declare interface IxSelect extends Components.IxSelect { * Item added to selection */ addItem: EventEmitter>; + /** + * Blur input + */ + ixBlur: EventEmitter>; } @@ -2135,6 +2429,43 @@ export declare interface IxTabs extends Components.IxTabs { } +@ProxyCmp({ + inputs: ['disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'resizeBehavior', 'showTextAsTooltip', 'textareaCols', 'textareaHeight', 'textareaRows', 'textareaWidth', 'validText', 'value', 'warningText'], + methods: ['getNativeInputElement', 'focusInput'] +}) +@Component({ + selector: 'ix-textarea', + changeDetection: ChangeDetectionStrategy.OnPush, + template: '', + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property + inputs: ['disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'resizeBehavior', 'showTextAsTooltip', 'textareaCols', 'textareaHeight', 'textareaRows', 'textareaWidth', 'validText', 'value', 'warningText'], +}) +export class IxTextarea { + protected el: HTMLElement; + constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) { + c.detach(); + this.el = r.nativeElement; + proxyOutputs(this, this.el, ['valueChange', 'validityStateChange', 'ixBlur']); + } +} + + +export declare interface IxTextarea extends Components.IxTextarea { + /** + * Event emitted when the value of the textarea field changes. + */ + valueChange: EventEmitter>; + /** + * Event emitted when the validity state of the textarea field changes. + */ + validityStateChange: EventEmitter>; + /** + * Event emitted when the textarea field loses focus. + */ + ixBlur: EventEmitter>; +} + + @ProxyCmp({ inputs: ['size'] }) @@ -2246,14 +2577,14 @@ export declare interface IxToastContainer extends Components.IxToastContainer {} @ProxyCmp({ - inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn'] + inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'name', 'required', 'textIndeterminate', 'textOff', 'textOn', 'value'] }) @Component({ selector: 'ix-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn'], + inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'name', 'required', 'textIndeterminate', 'textOff', 'textOn', 'value'], }) export class IxToggle { protected el: HTMLElement; diff --git a/packages/angular/src/control-value-accessors/boolean-value-accessor.ts b/packages/angular/src/control-value-accessors/boolean-value-accessor.ts new file mode 100644 index 00000000000..d8bf75e1be7 --- /dev/null +++ b/packages/angular/src/control-value-accessors/boolean-value-accessor.ts @@ -0,0 +1,37 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { Directive, HostListener, ElementRef, Injector } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ValueAccessor, mapNgToIxClassNames } from './value-accessor'; + +@Directive({ + selector: 'ix-checkbox,ix-toggle', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: BooleanValueAccessorDirective, + multi: true, + }, + ], +}) +export class BooleanValueAccessorDirective extends ValueAccessor { + constructor(injector: Injector, el: ElementRef) { + super(injector, el); + } + + override writeValue(value: boolean): void { + this.elementRef.nativeElement.checked = this.lastValue = value; + mapNgToIxClassNames(this.elementRef); + } + + @HostListener('checkedChange', ['$event.target']) + handleChangeEvent(el: any): void { + super.handleValueChange(el, el.checked); + } +} diff --git a/packages/angular/src/control-value-accessors/date-value-accessor.ts b/packages/angular/src/control-value-accessors/date-value-accessor.ts new file mode 100644 index 00000000000..5e8b961bb11 --- /dev/null +++ b/packages/angular/src/control-value-accessors/date-value-accessor.ts @@ -0,0 +1,32 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { ElementRef, Injector, Directive, HostListener } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ValueAccessor } from './value-accessor'; + +@Directive({ + selector: 'ix-date-input', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: DateValueAccessorDirective, + multi: true, + }, + ], +}) +export class DateValueAccessorDirective extends ValueAccessor { + constructor(injector: Injector, el: ElementRef) { + super(injector, el); + } + + @HostListener('valueChange', ['$event.target']) + handleInputEvent(el: any): void { + super.handleValueChange(el, el.value); + } +} diff --git a/packages/angular/src/control-value-accessors/index.ts b/packages/angular/src/control-value-accessors/index.ts new file mode 100644 index 00000000000..89f855c8961 --- /dev/null +++ b/packages/angular/src/control-value-accessors/index.ts @@ -0,0 +1,13 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +export * from './boolean-value-accessor'; +export * from './radio-value-accessor'; +export * from './select-value-accessor'; +export * from './text-value-accessor'; +export * from './date-value-accessor'; diff --git a/packages/angular/src/control-value-accessors/radio-value-accessor.ts b/packages/angular/src/control-value-accessors/radio-value-accessor.ts new file mode 100644 index 00000000000..2f3c296277b --- /dev/null +++ b/packages/angular/src/control-value-accessors/radio-value-accessor.ts @@ -0,0 +1,39 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { Directive, HostListener, ElementRef, Injector } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ValueAccessor, mapNgToIxClassNames } from './value-accessor'; + +@Directive({ + selector: 'ix-radio', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: RadioValueAccessorDirective, + multi: true, + }, + ], +}) +export class RadioValueAccessorDirective extends ValueAccessor { + constructor(injector: Injector, el: ElementRef) { + super(injector, el); + } + + override writeValue(value: string): void { + this.lastValue = value; + this.elementRef.nativeElement.checked = + this.elementRef.nativeElement.value === value; + mapNgToIxClassNames(this.elementRef); + } + + @HostListener('checkedChange', ['$event.target']) + handleChangeEvent(el: any): void { + super.handleValueChange(el, el.value); + } +} diff --git a/packages/angular/src/control-value-accessors/select-value-accessor.ts b/packages/angular/src/control-value-accessors/select-value-accessor.ts new file mode 100644 index 00000000000..0378eed4986 --- /dev/null +++ b/packages/angular/src/control-value-accessors/select-value-accessor.ts @@ -0,0 +1,32 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { ElementRef, Injector, Directive, HostListener } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ValueAccessor } from './value-accessor'; + +@Directive({ + selector: 'ix-select', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: SelectValueAccessorDirective, + multi: true, + }, + ], +}) +export class SelectValueAccessorDirective extends ValueAccessor { + constructor(injector: Injector, el: ElementRef) { + super(injector, el); + } + + @HostListener('valueChange', ['$event.target']) + handleChangeEvent(el: any): void { + super.handleValueChange(el, el.value); + } +} diff --git a/packages/angular/src/control-value-accessors/text-value-accessor.ts b/packages/angular/src/control-value-accessors/text-value-accessor.ts new file mode 100644 index 00000000000..b1310a03ff9 --- /dev/null +++ b/packages/angular/src/control-value-accessors/text-value-accessor.ts @@ -0,0 +1,33 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { ElementRef, Injector, Directive, HostListener } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ValueAccessor } from './value-accessor'; + +@Directive({ + selector: 'ix-input,ix-number-field,ix-textarea-field', + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: TextValueAccessorDirective, + multi: true, + }, + ], +}) +export class TextValueAccessorDirective extends ValueAccessor { + constructor(injector: Injector, el: ElementRef) { + super(injector, el); + } + + @HostListener('input', ['$event.target']) + @HostListener('valueChange', ['$event.target']) + handleInputEvent(el: any): void { + super.handleValueChange(el, el.value); + } +} diff --git a/packages/angular/src/control-value-accessors/value-accessor.ts b/packages/angular/src/control-value-accessors/value-accessor.ts new file mode 100644 index 00000000000..58a6e2402e5 --- /dev/null +++ b/packages/angular/src/control-value-accessors/value-accessor.ts @@ -0,0 +1,152 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { + AfterViewInit, + ElementRef, + Injector, + OnDestroy, + Directive, + HostListener, +} from '@angular/core'; +import { ControlValueAccessor, NgControl } from '@angular/forms'; +import { Subscription } from 'rxjs'; + +@Directive() +export class ValueAccessor + implements ControlValueAccessor, AfterViewInit, OnDestroy +{ + public static readonly ANGULAR_CLASS_PREFIX = 'ng-'; + + private onChange: (value: any) => void = () => { + /**/ + }; + private onTouched: () => void = () => { + /**/ + }; + protected lastValue: any; + private statusChanges?: Subscription; + + constructor(protected injector: Injector, protected elementRef: ElementRef) {} + + writeValue(value: any): void { + this.elementRef.nativeElement.value = this.lastValue = value; + mapNgToIxClassNames(this.elementRef); + } + + handleValueChange(el: HTMLElement, value: any): void { + if (el === this.elementRef.nativeElement) { + if (value !== this.lastValue) { + this.lastValue = value; + this.onChange(value); + } + mapNgToIxClassNames(this.elementRef); + } + } + + @HostListener('ixBlur', ['$event.target']) + _handleBlurEvent(el: any): void { + if (el === this.elementRef.nativeElement) { + this.onTouched(); + mapNgToIxClassNames(this.elementRef); + } + } + + registerOnChange(fn: (value: any) => void): void { + this.onChange = fn; + } + + registerOnTouched(fn: () => void): void { + this.onTouched = fn; + } + + setDisabledState(isDisabled: boolean): void { + this.elementRef.nativeElement.disabled = isDisabled; + } + + ngOnDestroy(): void { + if (this.statusChanges) { + this.statusChanges.unsubscribe(); + } + } + + ngAfterViewInit(): void { + let ngControl; + try { + ngControl = this.injector.get(NgControl); + } catch { + /* No FormControl or ngModel binding */ + } + + if (!ngControl) { + return; + } + + if (ngControl.statusChanges) { + this.statusChanges = ngControl.statusChanges.subscribe(() => { + mapNgToIxClassNames(this.elementRef); + }); + } + + detourFormControlMethods(ngControl, this.elementRef); + } +} + +const detourFormControlMethods = ( + ngControl: NgControl, + elementRef: ElementRef +) => { + const formControl = ngControl.control as any; + if (formControl) { + const methodsToPatch = [ + 'markAsTouched', + 'markAllAsTouched', + 'markAsUntouched', + 'markAsDirty', + 'markAsPristine', + ]; + methodsToPatch.forEach((method) => { + if (typeof formControl[method] !== 'undefined') { + const oldFn = formControl[method].bind(formControl); + formControl[method] = (...params: any[]) => { + oldFn(...params); + mapNgToIxClassNames(elementRef); + }; + } + }); + } +}; + +export const mapNgToIxClassNames = (element: ElementRef): void => { + setTimeout(() => { + const input = element.nativeElement as HTMLInputElement; + const classes = getClasses(input); + const classList = input.classList; + classList.remove( + 'ix-valid', + 'ix-invalid', + 'ix-touched', + 'ix-untouched', + 'ix-dirty', + 'ix-pristine' + ); + classList.add(...classes); + }); +}; + +const getClasses = (element: HTMLElement) => { + const classList = element.classList; + const classes: string[] = []; + for (let i = 0; i < classList.length; i++) { + const item = classList.item(i); + if (item?.startsWith(ValueAccessor.ANGULAR_CLASS_PREFIX)) { + classes.push(`ix-${item.substring(3)}`); + } + } + return classes; +}; diff --git a/packages/angular/src/declare-components.ts b/packages/angular/src/declare-components.ts index 7717051c6de..92e9f24163c 100644 --- a/packages/angular/src/declare-components.ts +++ b/packages/angular/src/declare-components.ts @@ -17,11 +17,15 @@ export const DIRECTIVES = [ d.IxCardList, d.IxCardTitle, d.IxCategoryFilter, + d.IxCheckbox, + d.IxCheckboxGroup, d.IxChip, d.IxCol, d.IxContent, d.IxContentHeader, + d.IxCustomField, d.IxDateDropdown, + d.IxDateInput, d.IxDatePicker, d.IxDatetimePicker, d.IxDivider, @@ -35,19 +39,22 @@ export const DIRECTIVES = [ d.IxEventList, d.IxEventListItem, d.IxExpandingSearch, + d.IxFieldLabel, d.IxFilterChip, d.IxFlipTile, d.IxFlipTileContent, - d.IxFormField, d.IxGroup, d.IxGroupContextMenu, d.IxGroupItem, + d.IxHelperText, d.IxIconButton, d.IxIconToggleButton, + d.IxInput, d.IxInputGroup, d.IxKeyValue, d.IxKeyValueList, d.IxKpi, + d.IxLayoutAuto, d.IxLayoutGrid, d.IxLinkButton, d.IxMapNavigation, @@ -68,11 +75,14 @@ export const DIRECTIVES = [ d.IxModalExample, d.IxModalFooter, d.IxModalHeader, + d.IxNumberInput, d.IxPagination, d.IxPane, d.IxPaneLayout, d.IxPill, d.IxPushCard, + d.IxRadio, + d.IxRadioGroup, d.IxRow, d.IxSelect, d.IxSelectItem, @@ -82,6 +92,7 @@ export const DIRECTIVES = [ d.IxSplitButtonItem, d.IxTabItem, d.IxTabs, + d.IxTextarea, d.IxTile, d.IxTimePicker, d.IxToast, diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index 7e9cd328249..9aadb25ec76 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -8,13 +8,12 @@ */ export * from '@siemens/ix'; -export * from './boolean-value-accessor'; export * from './components'; export * from './dropdown/trigger.directive'; export { IxIcon } from './ix-icon'; export * from './modal'; export * from './module'; -export * from './select-value-accessor'; export * from './theme'; export * from './toast'; export * from './tree'; +export * from './control-value-accessors'; diff --git a/packages/angular/src/module.ts b/packages/angular/src/module.ts index 9eee3979f98..bcd3a5a2868 100644 --- a/packages/angular/src/module.ts +++ b/packages/angular/src/module.ts @@ -6,7 +6,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ - +import { TextValueAccessorDirective } from './control-value-accessors/text-value-accessor'; import { DOCUMENT } from '@angular/common'; import { APP_INITIALIZER, @@ -19,18 +19,24 @@ import { DIRECTIVES } from './declare-components'; import { IxDropdownTriggerDirective } from './dropdown/trigger.directive'; import { IxIcon } from './ix-icon'; import { ModalService } from './modal'; -import { SelectValueAccessor } from './select-value-accessor'; -import { BooleanValueAccessor } from './boolean-value-accessor'; import { ThemeService } from './theme'; import { ToastService } from './toast'; import * as tree from './tree'; +import { SelectValueAccessorDirective } from './control-value-accessors/select-value-accessor'; +import { RadioValueAccessorDirective } from './control-value-accessors/radio-value-accessor'; +import { BooleanValueAccessorDirective } from './control-value-accessors/boolean-value-accessor'; +import { DateValueAccessorDirective } from './control-value-accessors'; const DECLARATIONS = [ ...DIRECTIVES, tree.IxTree, IxDropdownTriggerDirective, IxIcon, - SelectValueAccessor, - BooleanValueAccessor + + TextValueAccessorDirective, + SelectValueAccessorDirective, + RadioValueAccessorDirective, + BooleanValueAccessorDirective, + DateValueAccessorDirective, ]; @NgModule({ diff --git a/packages/angular/src/select-value-accessor.ts b/packages/angular/src/select-value-accessor.ts deleted file mode 100644 index 131a4185dae..00000000000 --- a/packages/angular/src/select-value-accessor.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Directive, ElementRef } from '@angular/core'; -import { NG_VALUE_ACCESSOR } from '@angular/forms'; - -import { ValueAccessor } from './value-accessor'; - -@Directive({ - /* tslint:disable-next-line:directive-selector */ - selector: 'ix-select[ngModel],ix-select[formControlName],ix-select[formControl]', - host: { - '(valueChange)': 'handleChangeEvent($event.target.value)' - }, - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: SelectValueAccessor, - multi: true - } - ] -}) -export class SelectValueAccessor extends ValueAccessor { - constructor(el: ElementRef) { - super(el); - } -} diff --git a/packages/angular/src/value-accessor.ts b/packages/angular/src/value-accessor.ts deleted file mode 100644 index 6bb76a6d3c8..00000000000 --- a/packages/angular/src/value-accessor.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Directive, ElementRef, HostListener } from '@angular/core'; -import { ControlValueAccessor } from '@angular/forms'; - -@Directive({}) -export class ValueAccessor implements ControlValueAccessor { - - private onChange: (value: any) => void = () => {/**/}; - private onTouched: () => void = () => {/**/}; - protected lastValue: any; - - constructor(protected el: ElementRef) {} - - writeValue(value: any) { - this.el.nativeElement.value = this.lastValue = value == null ? '' : value; - } - - handleChangeEvent(value: any) { - if (value !== this.lastValue) { - this.lastValue = value; - this.onChange(value); - } - } - - @HostListener('focusout') - _handleBlurEvent() { - this.onTouched(); - } - - registerOnChange(fn: (value: any) => void) { - this.onChange = fn; - } - registerOnTouched(fn: () => void) { - this.onTouched = fn; - } - - setDisabledState(isDisabled: boolean) { - this.el.nativeElement.disabled = isDisabled; - } -} diff --git a/packages/core/component-doc.json b/packages/core/component-doc.json index d9ea8c5a9cd..4cfc98ea7b8 100644 --- a/packages/core/component-doc.json +++ b/packages/core/component-doc.json @@ -325,10 +325,10 @@ }, { "name": "theme", - "type": "\"classic\" | \"classic-dark\" | \"classic-light\" | string & {}", + "type": "\"classic\" | \"classic-dark\" | \"classic-light\" | string & Record", "complexType": { "original": "IxTheme", - "resolved": "\"classic\" | \"classic-dark\" | \"classic-light\" | string & {}", + "resolved": "\"classic\" | \"classic-dark\" | \"classic-light\" | string & Record", "references": { "IxTheme": { "location": "import", @@ -356,7 +356,7 @@ "type": "string" }, { - "type": "string & {}" + "type": "string & Record" } ], "optional": false, @@ -2521,44 +2521,50 @@ "listeners": [] }, { - "dirPath": "src/components/chip", - "filePath": "src/components/chip/chip.tsx", - "fileName": "chip.tsx", - "readmePath": "src/components/chip/readme.md", - "usagesDir": "src/components/chip/usage", - "tag": "ix-chip", + "dirPath": "src/components/checkbox", + "filePath": "src/components/checkbox/checkbox.tsx", + "fileName": "checkbox.tsx", + "readmePath": "src/components/checkbox/readme.md", + "usagesDir": "src/components/checkbox/usage", + "tag": "ix-checkbox", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-icon-button" + "ix-typography" ], "dependencyGraph": { - "ix-chip": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" + "ix-checkbox": [ + "ix-typography" ] }, "props": [ { - "name": "active", + "name": "checked", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "active", - "reflectToAttr": false, - "docs": "Determines if the chip is interactive. If false no user input (e.g. mouse states, keyboard navigation)\nwill be possible and also the close button will not be present.", + "mutable": true, + "attr": "checked", + "reflectToAttr": true, + "docs": "Checked state of the checkbox component", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -2568,49 +2574,29 @@ "required": false }, { - "name": "background", - "type": "string", - "complexType": { - "original": "string | undefined", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "background", - "reflectToAttr": false, - "docs": "Custom background color.\nOnly has an effect on chips with `variant='custom'`", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "chipColor", - "type": "string", + "name": "disabled", + "type": "boolean", "complexType": { - "original": "string | undefined", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "chip-color", - "reflectToAttr": false, - "docs": "Custom font and icon color.\nOnly has an effect on chips with `variant='custom'`", + "attr": "disabled", + "reflectToAttr": true, + "docs": "Disabled state of the checkbox component", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "closable", + "name": "indeterminate", "type": "boolean", "complexType": { "original": "boolean", @@ -2618,9 +2604,9 @@ "references": {} }, "mutable": false, - "attr": "closable", - "reflectToAttr": false, - "docs": "Show close icon", + "attr": "indeterminate", + "reflectToAttr": true, + "docs": "Indeterminate state of the checkbox component", "docsTags": [], "default": "false", "values": [ @@ -2632,34 +2618,28 @@ "required": false }, { - "name": "color", + "name": "label", "type": "string", "complexType": { - "original": "string | undefined", + "original": "string", "resolved": "string", "references": {} }, "mutable": false, - "attr": "color", + "attr": "label", "reflectToAttr": false, - "docs": "Custom font and icon color.\nOnly has an effect on chips with `variant='custom'`", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.1.0 use `chip-color`" - } - ], - "deprecation": "since 2.1.0 use `chip-color`", + "docs": "Label for the checkbox component", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", + "name": "name", "type": "string", "complexType": { "original": "string", @@ -2667,20 +2647,20 @@ "references": {} }, "mutable": false, - "attr": "icon", - "reflectToAttr": false, - "docs": "Show icon", + "attr": "name", + "reflectToAttr": true, + "docs": "Name of the checkbox component", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "outline", + "name": "required", "type": "boolean", "complexType": { "original": "boolean", @@ -2688,9 +2668,9 @@ "references": {} }, "mutable": false, - "attr": "outline", - "reflectToAttr": false, - "docs": "Show chip with outline style", + "attr": "required", + "reflectToAttr": true, + "docs": "Required state of the checkbox component.\n\nIf true, checkbox needs to be checked to be valid", "docsTags": [], "default": "false", "values": [ @@ -2702,50 +2682,21 @@ "required": false }, { - "name": "variant", - "type": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", + "name": "value", + "type": "string", "complexType": { - "original": "| 'primary'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'custom'", - "resolved": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "variant", + "attr": "value", "reflectToAttr": true, - "docs": "Chip variant", + "docs": "Value of the checkbox component", "docsTags": [], - "default": "'primary'", + "default": "'on'", "values": [ { - "value": "alarm", - "type": "string" - }, - { - "value": "critical", - "type": "string" - }, - { - "value": "custom", - "type": "string" - }, - { - "value": "info", - "type": "string" - }, - { - "value": "neutral", - "type": "string" - }, - { - "value": "primary", - "type": "string" - }, - { - "value": "success", - "type": "string" - }, - { - "value": "warning", "type": "string" } ], @@ -2756,23 +2707,32 @@ "methods": [], "events": [ { - "event": "closeChip", - "detail": "any", + "event": "checkedChange", + "detail": "boolean", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", + "original": "boolean", + "resolved": "boolean", "references": {} }, "cancelable": true, "composed": true, - "docs": "Fire event if close button is clicked", - "docsTags": [ - { - "name": "since", - "text": "1.5.0" - } - ] + "docs": "Event emitted when the checked state of the checkbox changes", + "docsTags": [] + }, + { + "event": "valueChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the value of the checkbox changes", + "docsTags": [] } ], "styles": [], @@ -2781,106 +2741,110 @@ "listeners": [] }, { - "dirPath": "src/components/col", - "filePath": "src/components/col/col.tsx", - "fileName": "col.tsx", - "readmePath": "src/components/col/readme.md", - "usagesDir": "src/components/col/usage", - "tag": "ix-col", + "dirPath": "src/components/checkbox-group", + "filePath": "src/components/checkbox-group/checkbox-group.tsx", + "fileName": "checkbox-group.tsx", + "readmePath": "src/components/checkbox-group/readme.md", + "usagesDir": "src/components/checkbox-group/usage", + "tag": "ix-checkbox-group", "overview": "", "usage": {}, "docs": "", "docsTags": [ { "name": "since", - "text": "2.0.0" + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" } ], "encapsulation": "shadow", - "dependents": [ - "ix-date-dropdown", - "ix-datetime-picker" + "dependents": [], + "dependencies": [ + "ix-field-wrapper" ], - "dependencies": [], "dependencyGraph": { - "ix-date-dropdown": [ - "ix-col" + "ix-checkbox-group": [ + "ix-field-wrapper" ], - "ix-datetime-picker": [ - "ix-col" + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" ] }, "props": [ { - "name": "size", - "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "name": "direction", + "type": "\"column\" | \"row\"", "complexType": { - "original": "ColumnSize", - "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", - "references": { - "ColumnSize": { - "location": "local", - "path": "src/components/col/col.tsx", - "id": "src/components/col/col.tsx::ColumnSize" - } - } + "original": "'row' | 'column'", + "resolved": "\"column\" | \"row\"", + "references": {} }, "mutable": false, - "attr": "size", + "attr": "direction", "reflectToAttr": false, - "docs": "Size of the column", + "docs": "Alignment of the checkboxes in the group", "docsTags": [], + "default": "'column'", "values": [ { - "value": "1", + "value": "column", "type": "string" }, { - "value": "10", + "value": "row", "type": "string" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "helperText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "helper-text", + "reflectToAttr": false, + "docs": "Optional helper text displayed below the checkbox group", + "docsTags": [], + "values": [ { - "value": "11", "type": "string" - }, + } + ], + "optional": true, + "required": false + }, + { + "name": "infoText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "info-text", + "reflectToAttr": false, + "docs": "Info text for the checkbox group", + "docsTags": [], + "values": [ { - "value": "12", - "type": "string" - }, - { - "value": "2", - "type": "string" - }, - { - "value": "3", - "type": "string" - }, - { - "value": "4", - "type": "string" - }, - { - "value": "5", - "type": "string" - }, - { - "value": "6", - "type": "string" - }, - { - "value": "7", - "type": "string" - }, - { - "value": "8", - "type": "string" - }, - { - "value": "9", - "type": "string" - }, - { - "value": "auto", "type": "string" } ], @@ -2888,75 +2852,20 @@ "required": false }, { - "name": "sizeLg", - "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "name": "invalidText", + "type": "string", "complexType": { - "original": "ColumnSize", - "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", - "references": { - "ColumnSize": { - "location": "local", - "path": "src/components/col/col.tsx", - "id": "src/components/col/col.tsx::ColumnSize" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "size-lg", + "attr": "invalid-text", "reflectToAttr": false, - "docs": "Size of the column for lg screens", + "docs": "Error text for the checkbox group", "docsTags": [], "values": [ { - "value": "1", - "type": "string" - }, - { - "value": "10", - "type": "string" - }, - { - "value": "11", - "type": "string" - }, - { - "value": "12", - "type": "string" - }, - { - "value": "2", - "type": "string" - }, - { - "value": "3", - "type": "string" - }, - { - "value": "4", - "type": "string" - }, - { - "value": "5", - "type": "string" - }, - { - "value": "6", - "type": "string" - }, - { - "value": "7", - "type": "string" - }, - { - "value": "8", - "type": "string" - }, - { - "value": "9", - "type": "string" - }, - { - "value": "auto", "type": "string" } ], @@ -2964,75 +2873,20 @@ "required": false }, { - "name": "sizeMd", - "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "name": "label", + "type": "string", "complexType": { - "original": "ColumnSize", - "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", - "references": { - "ColumnSize": { - "location": "local", - "path": "src/components/col/col.tsx", - "id": "src/components/col/col.tsx::ColumnSize" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "size-md", + "attr": "label", "reflectToAttr": false, - "docs": "Size of the column for md screens", + "docs": "Label for the checkbox group", "docsTags": [], "values": [ { - "value": "1", - "type": "string" - }, - { - "value": "10", - "type": "string" - }, - { - "value": "11", - "type": "string" - }, - { - "value": "12", - "type": "string" - }, - { - "value": "2", - "type": "string" - }, - { - "value": "3", - "type": "string" - }, - { - "value": "4", - "type": "string" - }, - { - "value": "5", - "type": "string" - }, - { - "value": "6", - "type": "string" - }, - { - "value": "7", - "type": "string" - }, - { - "value": "8", - "type": "string" - }, - { - "value": "9", - "type": "string" - }, - { - "value": "auto", "type": "string" } ], @@ -3040,140 +2894,84 @@ "required": false }, { - "name": "sizeSm", - "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "name": "showTextAsTooltip", + "type": "boolean", "complexType": { - "original": "ColumnSize", - "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", - "references": { - "ColumnSize": { - "location": "local", - "path": "src/components/col/col.tsx", - "id": "src/components/col/col.tsx::ColumnSize" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, - "attr": "size-sm", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "Size of the column for sm screens", + "docs": "Show helper, info, warning, error and valid text as tooltip", "docsTags": [], + "default": "false", "values": [ { - "value": "1", - "type": "string" - }, - { - "value": "10", - "type": "string" - }, - { - "value": "11", - "type": "string" - }, - { - "value": "12", - "type": "string" - }, - { - "value": "2", - "type": "string" - }, - { - "value": "3", - "type": "string" - }, - { - "value": "4", - "type": "string" - }, - { - "value": "5", - "type": "string" - }, - { - "value": "6", - "type": "string" - }, - { - "value": "7", - "type": "string" - }, - { - "value": "8", - "type": "string" - }, - { - "value": "9", - "type": "string" - }, + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "validText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "valid-text", + "reflectToAttr": false, + "docs": "Valid text for the checkbox group", + "docsTags": [], + "values": [ { - "value": "auto", "type": "string" } ], "optional": true, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [ - { - "event": "resize", - "target": "window", - "capture": false, - "passive": true - } - ] - }, - { - "dirPath": "src/components/content", - "filePath": "src/components/content/content.tsx", - "fileName": "content.tsx", - "readmePath": "src/components/content/readme.md", - "usagesDir": "src/components/content/usage", - "tag": "ix-content", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" }, { - "name": "slot", - "text": "header - Display content at the top of the content page" + "name": "warningText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "Warning text for the checkbox group", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false } ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [], "methods": [], "events": [], "styles": [], - "slots": [ - { - "name": "header", - "docs": "Display content at the top of the content page" - } - ], + "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/content-header", - "filePath": "src/components/content-header/content-header.tsx", - "fileName": "content-header.tsx", - "readmePath": "src/components/content-header/readme.md", - "usagesDir": "src/components/content-header/usage", - "tag": "ix-content-header", + "dirPath": "src/components/chip", + "filePath": "src/components/chip/chip.tsx", + "fileName": "chip.tsx", + "readmePath": "src/components/chip/readme.md", + "usagesDir": "src/components/chip/usage", + "tag": "ix-chip", "overview": "", "usage": {}, "docs": "", @@ -3181,13 +2979,11 @@ "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-icon-button", - "ix-typography" + "ix-icon-button" ], "dependencyGraph": { - "ix-content-header": [ - "ix-icon-button", - "ix-typography" + "ix-chip": [ + "ix-icon-button" ], "ix-icon-button": [ "ix-spinner" @@ -3195,7 +2991,7 @@ }, "props": [ { - "name": "hasBackButton", + "name": "active", "type": "boolean", "complexType": { "original": "boolean", @@ -3203,11 +2999,11 @@ "references": {} }, "mutable": false, - "attr": "has-back-button", + "attr": "active", "reflectToAttr": false, - "docs": "Display a back button", + "docs": "Determines if the chip is interactive. If false no user input (e.g. mouse states, keyboard navigation)\nwill be possible and also the close button will not be present.", "docsTags": [], - "default": "false", + "default": "true", "values": [ { "type": "boolean" @@ -3217,7 +3013,7 @@ "required": false }, { - "name": "headerSubtitle", + "name": "background", "type": "string", "complexType": { "original": "string | undefined", @@ -3225,11 +3021,10 @@ "references": {} }, "mutable": false, - "attr": "header-subtitle", + "attr": "background", "reflectToAttr": false, - "docs": "Subtitle of Header", + "docs": "Custom background color.\nOnly has an effect on chips with `variant='custom'`", "docsTags": [], - "default": "undefined", "values": [ { "type": "string" @@ -3239,157 +3034,77 @@ "required": false }, { - "name": "headerTitle", + "name": "chipColor", "type": "string", "complexType": { - "original": "string", + "original": "string | undefined", "resolved": "string", "references": {} }, "mutable": false, - "attr": "header-title", + "attr": "chip-color", "reflectToAttr": false, - "docs": "Title of Header", + "docs": "Custom font and icon color.\nOnly has an effect on chips with `variant='custom'`", "docsTags": [], "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "variant", - "type": "\"primary\" | \"secondary\"", + "name": "closable", + "type": "boolean", "complexType": { - "original": "ContentHeaderVariant", - "resolved": "\"primary\" | \"secondary\"", - "references": { - "ContentHeaderVariant": { - "location": "local", - "path": "src/components/content-header/content-header.tsx", - "id": "src/components/content-header/content-header.tsx::ContentHeaderVariant" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, - "attr": "variant", + "attr": "closable", "reflectToAttr": false, - "docs": "Variant of content header", + "docs": "Show close icon", "docsTags": [], - "default": "'primary'", + "default": "false", "values": [ { - "value": "primary", - "type": "string" - }, - { - "value": "secondary", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "backButtonClick", - "detail": "void", - "bubbles": true, - "complexType": { - "original": "void", - "resolved": "void", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Triggered when back button is clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/date-dropdown", - "filePath": "src/components/date-dropdown/date-dropdown.tsx", - "fileName": "date-dropdown.tsx", - "readmePath": "src/components/date-dropdown/readme.md", - "usagesDir": "src/components/date-dropdown/usage", - "tag": "ix-date-dropdown", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-button", - "ix-dropdown", - "ix-layout-grid", - "ix-row", - "ix-col", - "ix-dropdown-item", - "ix-date-picker" - ], - "dependencyGraph": { - "ix-date-dropdown": [ - "ix-button", - "ix-dropdown", - "ix-layout-grid", - "ix-row", - "ix-col", - "ix-dropdown-item", - "ix-date-picker" - ], - "ix-button": [ - "ix-spinner" - ], - "ix-date-picker": [ - "ix-date-time-card", - "ix-icon-button", - "ix-button", - "ix-dropdown" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + }, { - "name": "customRangeAllowed", - "type": "boolean", + "name": "color", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string | undefined", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "custom-range-allowed", + "attr": "color", "reflectToAttr": false, - "docs": "Controls whether the user is allowed to pick custom date ranges in the component.\nWhen set to 'true', the user can select a custom date range using the date picker.\nWhen set to 'false', only predefined time date ranges are available for selection.", - "docsTags": [], - "default": "true", + "docs": "Custom font and icon color.\nOnly has an effect on chips with `variant='custom'`", + "docsTags": [ + { + "name": "deprecated", + "text": "since 2.1.0 use `chip-color`" + } + ], + "deprecation": "since 2.1.0 use `chip-color`", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "dateRangeId", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -3397,11 +3112,10 @@ "references": {} }, "mutable": false, - "attr": "date-range-id", + "attr": "icon", "reflectToAttr": false, - "docs": "Used to set the initial select date range as well as the button name,\nif not set or no according date range label is found, nothing will be selected", + "docs": "Show icon", "docsTags": [], - "default": "'custom'", "values": [ { "type": "string" @@ -3411,50 +3125,18 @@ "required": false }, { - "name": "dateRangeOptions", - "type": "DateDropdownOption[]", + "name": "outline", + "type": "boolean", "complexType": { - "original": "DateDropdownOption[]", - "resolved": "DateDropdownOption[]", - "references": { - "DateDropdownOption": { - "location": "local", - "path": "src/components/date-dropdown/date-dropdown.tsx", - "id": "src/components/date-dropdown/date-dropdown.tsx::DateDropdownOption" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, + "attr": "outline", "reflectToAttr": false, - "docs": "An array of predefined date range options for the date picker.\nEach option is an object with a label describing the range and a function\nthat returns the start and end dates of the range as a DateRangeOption object.\n\nExample format:\n {\n id: 'some unique id',\n label: 'Name of the range',\n from: undefined, to: '2023/03/29'\n },\n // ... other predefined date range options ...", + "docs": "Show chip with outline style", "docsTags": [], - "default": "[]", - "values": [ - { - "type": "DateDropdownOption[]" - } - ], - "optional": false, - "required": false - }, - { - "name": "disabled", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "disabled", - "reflectToAttr": false, - "docs": "Disable the button that opens the dropdown containing the date picker.", - "docsTags": [ - { - "name": "since", - "text": "2.3.0" - } - ], "default": "false", "values": [ { @@ -3465,140 +3147,261 @@ "required": false }, { - "name": "format", - "type": "string", + "name": "variant", + "type": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", "complexType": { - "original": "string", - "resolved": "string", + "original": "| 'primary'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'custom'", + "resolved": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", "references": {} }, "mutable": false, - "attr": "format", - "reflectToAttr": false, - "docs": "Date format string.\nSee", - "docsTags": [ - { - "name": "link", - "text": "https://moment.github.io/luxon/#/formatting?id=table-of-tokens for all available tokens." - } - ], - "default": "'yyyy/LL/dd'", + "attr": "variant", + "reflectToAttr": true, + "docs": "Chip variant", + "docsTags": [], + "default": "'primary'", "values": [ { + "value": "alarm", + "type": "string" + }, + { + "value": "critical", + "type": "string" + }, + { + "value": "custom", + "type": "string" + }, + { + "value": "info", + "type": "string" + }, + { + "value": "neutral", + "type": "string" + }, + { + "value": "primary", + "type": "string" + }, + { + "value": "success", + "type": "string" + }, + { + "value": "warning", "type": "string" } ], "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "from", - "type": "string", + "event": "closeChip", + "detail": "any", + "bubbles": true, "complexType": { - "original": "string", - "resolved": "string", + "original": "any", + "resolved": "any", "references": {} }, - "mutable": false, - "attr": "from", - "reflectToAttr": false, - "docs": "Picker date. If the picker is in range mode this property is the start date.\nIf set to `null` no default start date will be pre-selected.\n\nFormat is based on `format`", - "docsTags": [], - "default": "''", - "values": [ + "cancelable": true, + "composed": true, + "docs": "Fire event if close button is clicked", + "docsTags": [ { - "type": "string" + "name": "since", + "text": "1.5.0" } - ], - "optional": false, - "required": false - }, + ] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/col", + "filePath": "src/components/col/col.tsx", + "fileName": "col.tsx", + "readmePath": "src/components/col/readme.md", + "usagesDir": "src/components/col/usage", + "tag": "ix-col", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "name": "i18nCustomItem", - "type": "string", + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [ + "ix-date-dropdown", + "ix-datetime-picker" + ], + "dependencies": [], + "dependencyGraph": { + "ix-date-dropdown": [ + "ix-col" + ], + "ix-datetime-picker": [ + "ix-col" + ] + }, + "props": [ + { + "name": "size", + "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "ColumnSize", + "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "references": { + "ColumnSize": { + "location": "local", + "path": "src/components/col/col.tsx", + "id": "src/components/col/col.tsx::ColumnSize" + } + } }, "mutable": false, - "attr": "i18n-custom-item", + "attr": "size", "reflectToAttr": false, - "docs": "Text for custom dropdown item. Will be used for translation.", + "docs": "Size of the column", "docsTags": [], - "default": "'Custom...'", "values": [ { + "value": "1", + "type": "string" + }, + { + "value": "10", + "type": "string" + }, + { + "value": "11", + "type": "string" + }, + { + "value": "12", + "type": "string" + }, + { + "value": "2", + "type": "string" + }, + { + "value": "3", + "type": "string" + }, + { + "value": "4", + "type": "string" + }, + { + "value": "5", + "type": "string" + }, + { + "value": "6", + "type": "string" + }, + { + "value": "7", + "type": "string" + }, + { + "value": "8", + "type": "string" + }, + { + "value": "9", + "type": "string" + }, + { + "value": "auto", "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "i18nDone", - "type": "string", + "name": "sizeLg", + "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "ColumnSize", + "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "references": { + "ColumnSize": { + "location": "local", + "path": "src/components/col/col.tsx", + "id": "src/components/col/col.tsx::ColumnSize" + } + } }, "mutable": false, - "attr": "i18n-done", + "attr": "size-lg", "reflectToAttr": false, - "docs": "Text for the done button. Will be used for translation.", + "docs": "Size of the column for lg screens", "docsTags": [], - "default": "'Done'", "values": [ { + "value": "1", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "i18nNoRange", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "i18n-no-range", - "reflectToAttr": false, - "docs": "Text for the done button. Will be used for translation.", - "docsTags": [], - "default": "'No range set'", - "values": [ + }, { + "value": "10", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "locale", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "locale", - "reflectToAttr": false, - "docs": "Locale identifier (e.g. 'en' or 'de').", - "docsTags": [ + }, { - "name": "since", - "text": "2.6.0" - } - ], - "values": [ + "value": "11", + "type": "string" + }, + { + "value": "12", + "type": "string" + }, + { + "value": "2", + "type": "string" + }, + { + "value": "3", + "type": "string" + }, + { + "value": "4", + "type": "string" + }, + { + "value": "5", + "type": "string" + }, + { + "value": "6", + "type": "string" + }, + { + "value": "7", + "type": "string" + }, + { + "value": "8", + "type": "string" + }, + { + "value": "9", + "type": "string" + }, { + "value": "auto", "type": "string" } ], @@ -3606,285 +3409,272 @@ "required": false }, { - "name": "maxDate", - "type": "string", + "name": "sizeMd", + "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "ColumnSize", + "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "references": { + "ColumnSize": { + "location": "local", + "path": "src/components/col/col.tsx", + "id": "src/components/col/col.tsx::ColumnSize" + } + } }, "mutable": false, - "attr": "max-date", + "attr": "size-md", "reflectToAttr": false, - "docs": "The latest date that can be selected by the date picker.\nIf not set there will be no restriction.", + "docs": "Size of the column for md screens", "docsTags": [], - "default": "''", "values": [ { + "value": "1", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "minDate", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "min-date", - "reflectToAttr": false, - "docs": "The earliest date that can be selected by the date picker.\nIf not set there will be no restriction.", - "docsTags": [], - "default": "''", - "values": [ + }, { + "value": "10", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "range", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "range", - "reflectToAttr": false, - "docs": "If true a range of dates can be selected.", - "docsTags": [], - "default": "true", - "values": [ + }, { - "type": "boolean" + "value": "11", + "type": "string" + }, + { + "value": "12", + "type": "string" + }, + { + "value": "2", + "type": "string" + }, + { + "value": "3", + "type": "string" + }, + { + "value": "4", + "type": "string" + }, + { + "value": "5", + "type": "string" + }, + { + "value": "6", + "type": "string" + }, + { + "value": "7", + "type": "string" + }, + { + "value": "8", + "type": "string" + }, + { + "value": "9", + "type": "string" + }, + { + "value": "auto", + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "to", - "type": "string", + "name": "sizeSm", + "type": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "ColumnSize", + "resolved": "\"1\" | \"10\" | \"11\" | \"12\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | \"9\" | \"auto\"", + "references": { + "ColumnSize": { + "location": "local", + "path": "src/components/col/col.tsx", + "id": "src/components/col/col.tsx::ColumnSize" + } + } }, "mutable": false, - "attr": "to", + "attr": "size-sm", "reflectToAttr": false, - "docs": "Picker date. If the picker is in range mode this property is the end date.\nIf the picker is not in range mode leave this value `null`\n\nFormat is based on `format`", + "docs": "Size of the column for sm screens", "docsTags": [], - "default": "''", "values": [ { + "value": "1", + "type": "string" + }, + { + "value": "10", + "type": "string" + }, + { + "value": "11", + "type": "string" + }, + { + "value": "12", + "type": "string" + }, + { + "value": "2", + "type": "string" + }, + { + "value": "3", + "type": "string" + }, + { + "value": "4", + "type": "string" + }, + { + "value": "5", + "type": "string" + }, + { + "value": "6", + "type": "string" + }, + { + "value": "7", + "type": "string" + }, + { + "value": "8", + "type": "string" + }, + { + "value": "9", + "type": "string" + }, + { + "value": "auto", "type": "string" } ], - "optional": false, - "required": false - }, - { - "name": "weekStartIndex", - "type": "number", - "complexType": { - "original": "number", - "resolved": "number", - "references": {} - }, - "mutable": false, - "attr": "week-start-index", - "reflectToAttr": false, - "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", - "docsTags": [ - { - "name": "since", - "text": "2.6.0" - } - ], - "default": "0", - "values": [ - { - "type": "number" - } - ], - "optional": false, + "optional": true, "required": false } ], - "methods": [ + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [ { - "name": "getDateRange", - "returns": { - "type": "Promise", - "docs": "" - }, - "complexType": { - "signature": "() => Promise", - "parameters": [], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - }, - "DateRangeChangeEvent": { - "location": "local", - "path": "src/components/date-dropdown/date-dropdown.tsx", - "id": "src/components/date-dropdown/date-dropdown.tsx::DateRangeChangeEvent" - } - }, - "return": "Promise" - }, - "signature": "getDateRange() => Promise", - "parameters": [], - "docs": "Retrieves the currently selected date range from the component.\nThis method returns the selected date range as a `DateChangeEvent` object.", - "docsTags": [] + "event": "resize", + "target": "window", + "capture": false, + "passive": true } - ], - "events": [ + ] + }, + { + "dirPath": "src/components/content", + "filePath": "src/components/content/content.tsx", + "fileName": "content.tsx", + "readmePath": "src/components/content/readme.md", + "usagesDir": "src/components/content/usage", + "tag": "ix-content", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "event": "dateRangeChange", - "detail": "{ id: string; from: string; to: string; }", - "bubbles": true, - "complexType": { - "original": "DateRangeChangeEvent", - "resolved": "{ id: string; from: string; to: string; }", - "references": { - "DateRangeChangeEvent": { - "location": "local", - "path": "src/components/date-dropdown/date-dropdown.tsx", - "id": "src/components/date-dropdown/date-dropdown.tsx::DateRangeChangeEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "EventEmitter for date range change events.\n\nThis event is emitted when the date range changes within the component.\nThe event payload contains information about the selected date range.", - "docsTags": [] + "name": "since", + "text": "2.1.0" + }, + { + "name": "slot", + "text": "header - Display content at the top of the content page" } ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [], + "methods": [], + "events": [], "styles": [], - "slots": [], + "slots": [ + { + "name": "header", + "docs": "Display content at the top of the content page" + } + ], "parts": [], "listeners": [] }, { - "dirPath": "src/components/date-picker", - "filePath": "src/components/date-picker/date-picker.tsx", - "fileName": "date-picker.tsx", - "readmePath": "src/components/date-picker/readme.md", - "usagesDir": "src/components/date-picker/usage", - "tag": "ix-date-picker", + "dirPath": "src/components/content-header", + "filePath": "src/components/content-header/content-header.tsx", + "fileName": "content-header.tsx", + "readmePath": "src/components/content-header/readme.md", + "usagesDir": "src/components/content-header/usage", + "tag": "ix-content-header", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", - "dependents": [ - "ix-date-dropdown", - "ix-datetime-picker" - ], + "dependents": [], "dependencies": [ - "ix-date-time-card", "ix-icon-button", - "ix-button", - "ix-dropdown" + "ix-typography" ], "dependencyGraph": { - "ix-date-picker": [ - "ix-date-time-card", + "ix-content-header": [ "ix-icon-button", - "ix-button", - "ix-dropdown" + "ix-typography" ], "ix-icon-button": [ "ix-spinner" - ], - "ix-button": [ - "ix-spinner" - ], - "ix-date-dropdown": [ - "ix-date-picker" - ], - "ix-datetime-picker": [ - "ix-date-picker" ] }, "props": [ { - "name": "corners", - "type": "\"left\" | \"right\" | \"rounded\" | \"straight\"", + "name": "hasBackButton", + "type": "boolean", "complexType": { - "original": "DateTimeCardCorners", - "resolved": "\"left\" | \"right\" | \"rounded\" | \"straight\"", - "references": { - "DateTimeCardCorners": { - "location": "import", - "path": "../date-time-card/date-time-card", - "id": "src/components/date-time-card/date-time-card.tsx::DateTimeCardCorners" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, - "attr": "corners", + "attr": "has-back-button", "reflectToAttr": false, - "docs": "Corner style", + "docs": "Display a back button", "docsTags": [], - "default": "'rounded'", + "default": "false", "values": [ { - "value": "left", - "type": "string" - }, - { - "value": "right", - "type": "string" - }, - { - "value": "rounded", - "type": "string" - }, - { - "value": "straight", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "eventDelimiter", + "name": "headerSubtitle", "type": "string", "complexType": { - "original": "string", + "original": "string | undefined", "resolved": "string", "references": {} }, "mutable": false, - "attr": "event-delimiter", + "attr": "header-subtitle", "reflectToAttr": false, - "docs": "Default behavior of the done event is to join the two events (date and time) into one combined string output.\nThis combination can be configured over the delimiter", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - }, - { - "name": "deprecated", - "text": "Not used anymore see `this.dateChange`" - } - ], - "default": "' - '", - "deprecation": "Not used anymore see `this.dateChange`", + "docs": "Subtitle of Header", + "docsTags": [], + "default": "undefined", "values": [ { "type": "string" @@ -3894,7 +3684,7 @@ "required": false }, { - "name": "format", + "name": "headerTitle", "type": "string", "complexType": { "original": "string", @@ -3902,47 +3692,114 @@ "references": {} }, "mutable": false, - "attr": "format", + "attr": "header-title", "reflectToAttr": false, - "docs": "Date format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docs": "Title of Header", "docsTags": [], - "default": "'yyyy/LL/dd'", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "from", - "type": "string", + "name": "variant", + "type": "\"primary\" | \"secondary\"", "complexType": { - "original": "string | undefined", - "resolved": "string", - "references": {} + "original": "ContentHeaderVariant", + "resolved": "\"primary\" | \"secondary\"", + "references": { + "ContentHeaderVariant": { + "location": "local", + "path": "src/components/content-header/content-header.tsx", + "id": "src/components/content-header/content-header.tsx::ContentHeaderVariant" + } + } }, "mutable": false, - "attr": "from", + "attr": "variant", "reflectToAttr": false, - "docs": "The selected starting date. If the date-picker-rework is not in range mode this is the selected date.\nFormat has to match the `format` property.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docs": "Variant of content header", + "docsTags": [], + "default": "'primary'", "values": [ { + "value": "primary", + "type": "string" + }, + { + "value": "secondary", "type": "string" } ], "optional": false, "required": false - }, - { - "name": "i18nDone", + } + ], + "methods": [], + "events": [ + { + "event": "backButtonClick", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Triggered when back button is clicked", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/custom-field", + "filePath": "src/components/custom-field/custom-field.tsx", + "fileName": "custom-field.tsx", + "readmePath": "src/components/custom-field/readme.md", + "usagesDir": "src/components/custom-field/usage", + "tag": "ix-custom-field", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-field-wrapper" + ], + "dependencyGraph": { + "ix-custom-field": [ + "ix-field-wrapper" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "helperText", "type": "string", "complexType": { "original": "string", @@ -3950,54 +3807,41 @@ "references": {} }, "mutable": false, - "attr": "i18n-done", + "attr": "helper-text", "reflectToAttr": false, - "docs": "Text of date select button", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], - "default": "'Done'", + "docs": "Show text below the field component which show additional information", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "individual", - "type": "boolean", + "name": "infoText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "individual", + "attr": "info-text", "reflectToAttr": false, - "docs": "", - "docsTags": [ - { - "name": "deprecated", - "text": "Not supported since 2.0.0." - } - ], - "default": "true", - "deprecation": "Not supported since 2.0.0.", + "docs": "Info text for the field component", + "docsTags": [], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "locale", + "name": "invalidText", "type": "string", "complexType": { "original": "string", @@ -4005,15 +3849,10 @@ "references": {} }, "mutable": false, - "attr": "locale", + "attr": "invalid-text", "reflectToAttr": false, - "docs": "Locale identifier (e.g. 'en' or 'de').", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], + "docs": "Error text for the field component", + "docsTags": [], "values": [ { "type": "string" @@ -4023,7 +3862,7 @@ "required": false }, { - "name": "maxDate", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -4031,53 +3870,42 @@ "references": {} }, "mutable": false, - "attr": "max-date", + "attr": "label", "reflectToAttr": false, - "docs": "The latest date that can be selected by the date picker.\nIf not set there will be no restriction.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], - "default": "''", + "docs": "Label for the field component", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "minDate", - "type": "string", + "name": "required", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "min-date", + "attr": "required", "reflectToAttr": false, - "docs": "The earliest date that can be selected by the date picker.\nIf not set there will be no restriction.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], - "default": "''", + "docs": "A value is required or must be checked for the form to be submittable", + "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "range", + "name": "showTextAsTooltip", "type": "boolean", "complexType": { "original": "boolean", @@ -4085,21 +3913,20 @@ "references": {} }, "mutable": false, - "attr": "range", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "If true a date-range can be selected (from/to).", + "docs": "Show helper, info, warning, error and valid text as tooltip", "docsTags": [], - "default": "true", "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "textSelectDate", + "name": "validText", "type": "string", "complexType": { "original": "string", @@ -4107,261 +3934,198 @@ "references": {} }, "mutable": false, - "attr": "text-select-date", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Text of the button that confirms date selection.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - }, - { - "name": "deprecated", - "text": "since 2.1.0. Use `i18nDone`" - } - ], - "default": "''", - "deprecation": "since 2.1.0. Use `i18nDone`", + "docs": "Valid text for the field component", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "to", + "name": "warningText", "type": "string", "complexType": { - "original": "string | undefined", + "original": "string", "resolved": "string", "references": {} }, "mutable": false, - "attr": "to", + "attr": "warning-text", "reflectToAttr": false, - "docs": "The selected end date. If the the date-picker-rework is not in range mode this property has no impact.\nFormat has to match the `format` property.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docs": "Warning text for the field component", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false - }, + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/date-dropdown", + "filePath": "src/components/date-dropdown/date-dropdown.tsx", + "fileName": "date-dropdown.tsx", + "readmePath": "src/components/date-dropdown/readme.md", + "usagesDir": "src/components/date-dropdown/usage", + "tag": "ix-date-dropdown", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "name": "weekStartIndex", - "type": "number", + "name": "since", + "text": "2.1.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-button", + "ix-dropdown", + "ix-layout-grid", + "ix-row", + "ix-col", + "ix-dropdown-item", + "ix-date-picker" + ], + "dependencyGraph": { + "ix-date-dropdown": [ + "ix-button", + "ix-dropdown", + "ix-layout-grid", + "ix-row", + "ix-col", + "ix-dropdown-item", + "ix-date-picker" + ], + "ix-button": [ + "ix-spinner" + ], + "ix-date-picker": [ + "ix-date-time-card", + "ix-icon-button", + "ix-button", + "ix-dropdown" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "customRangeAllowed", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "week-start-index", + "attr": "custom-range-allowed", "reflectToAttr": false, - "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], - "default": "0", + "docs": "Controls whether the user is allowed to pick custom date ranges in the component.\nWhen set to 'true', the user can select a custom date range using the date picker.\nWhen set to 'false', only predefined time date ranges are available for selection.", + "docsTags": [], + "default": "true", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, "required": false - } - ], - "methods": [ + }, { - "name": "getCurrentDate", - "returns": { - "type": "Promise<{ from: string; to: string; }>", - "docs": "" - }, - "complexType": { - "signature": "() => Promise<{ from: string; to: string; }>", - "parameters": [], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - }, - "return": "Promise<{ from: string; to: string; }>" - }, - "signature": "getCurrentDate() => Promise<{ from: string; to: string; }>", - "parameters": [], - "docs": "Get the currently selected date-range.", - "docsTags": [] - } - ], - "events": [ - { - "event": "dateChange", - "detail": "{ from: string; to: string; }", - "bubbles": true, + "name": "dateRangeId", + "type": "string", "complexType": { - "original": "DateChangeEvent", - "resolved": "{ from: string; to: string; }", - "references": { - "DateChangeEvent": { - "location": "local", - "path": "src/components/date-picker/date-picker.tsx", - "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" - } - } + "original": "string", + "resolved": "string", + "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Triggers if the date selection changes.\nNote: Since 2.0.0 `dateChange` does not dispatch detail property as `string`", - "docsTags": [ + "mutable": false, + "attr": "date-range-id", + "reflectToAttr": false, + "docs": "Used to set the initial select date range as well as the button name,\nif not set or no according date range label is found, nothing will be selected", + "docsTags": [], + "default": "'custom'", + "values": [ { - "name": "since", - "text": "2.1.0" + "type": "string" } - ] + ], + "optional": false, + "required": false }, { - "event": "dateRangeChange", - "detail": "{ from: string; to: string; }", - "bubbles": true, + "name": "dateRangeOptions", + "type": "DateDropdownOption[]", "complexType": { - "original": "DateChangeEvent", - "resolved": "{ from: string; to: string; }", + "original": "DateDropdownOption[]", + "resolved": "DateDropdownOption[]", "references": { - "DateChangeEvent": { + "DateDropdownOption": { "location": "local", - "path": "src/components/date-picker/date-picker.tsx", - "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" + "path": "src/components/date-dropdown/date-dropdown.tsx", + "id": "src/components/date-dropdown/date-dropdown.tsx::DateDropdownOption" } } }, - "cancelable": true, - "composed": true, - "docs": "Triggers if the date selection changes.\nOnly triggered if date-picker-rework is in range mode.", - "docsTags": [ + "mutable": false, + "reflectToAttr": false, + "docs": "An array of predefined date range options for the date picker.\nEach option is an object with a label describing the range and a function\nthat returns the start and end dates of the range as a DateRangeOption object.\n\nExample format:\n {\n id: 'some unique id',\n label: 'Name of the range',\n from: undefined, to: '2023/03/29'\n },\n // ... other predefined date range options ...", + "docsTags": [], + "default": "[]", + "values": [ { - "name": "since", - "text": "2.1.0" + "type": "DateDropdownOption[]" } - ] + ], + "optional": false, + "required": false }, { - "event": "dateSelect", - "detail": "{ from: string; to: string; }", - "bubbles": true, + "name": "disabled", + "type": "boolean", "complexType": { - "original": "DateChangeEvent", - "resolved": "{ from: string; to: string; }", - "references": { - "DateChangeEvent": { - "location": "local", - "path": "src/components/date-picker/date-picker.tsx", - "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Date selection confirmed via button action", + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disable the button that opens the dropdown containing the date picker.", "docsTags": [ { "name": "since", - "text": "1.1.0" + "text": "2.3.0" } - ] - }, - { - "event": "done", - "detail": "string", - "bubbles": true, - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Date selection confirmed via button action", - "docsTags": [ + ], + "default": "false", + "values": [ { - "name": "deprecated", - "text": "NOT getting dispatched after 2.0.0. Use `dateSelect`." + "type": "boolean" } ], - "deprecation": "NOT getting dispatched after 2.0.0. Use `dateSelect`." - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/datetime-picker", - "filePath": "src/components/datetime-picker/datetime-picker.tsx", - "fileName": "datetime-picker.tsx", - "readmePath": "src/components/datetime-picker/readme.md", - "usagesDir": "src/components/datetime-picker/usage", - "tag": "ix-datetime-picker", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-layout-grid", - "ix-row", - "ix-col", - "ix-date-picker", - "ix-time-picker", - "ix-button" - ], - "dependencyGraph": { - "ix-datetime-picker": [ - "ix-layout-grid", - "ix-row", - "ix-col", - "ix-date-picker", - "ix-time-picker", - "ix-button" - ], - "ix-date-picker": [ - "ix-date-time-card", - "ix-icon-button", - "ix-button", - "ix-dropdown" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-button": [ - "ix-spinner" - ], - "ix-time-picker": [ - "ix-date-time-card", - "ix-typography", - "ix-icon-button", - "ix-button" - ] - }, - "props": [ + "optional": false, + "required": false + }, { - "name": "dateFormat", + "name": "format", "type": "string", "complexType": { "original": "string", @@ -4369,13 +4133,13 @@ "references": {} }, "mutable": false, - "attr": "date-format", + "attr": "format", "reflectToAttr": false, - "docs": "Date format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docs": "Date format string.\nSee", "docsTags": [ { - "name": "since", - "text": "1.1.0" + "name": "link", + "text": "https://moment.github.io/luxon/#/formatting?id=table-of-tokens for all available tokens." } ], "default": "'yyyy/LL/dd'", @@ -4388,7 +4152,7 @@ "required": false }, { - "name": "eventDelimiter", + "name": "from", "type": "string", "complexType": { "original": "string", @@ -4396,21 +4160,11 @@ "references": {} }, "mutable": false, - "attr": "event-delimiter", + "attr": "from", "reflectToAttr": false, - "docs": "Default behavior of the done event is to join the two events (date and time) into one combined string output.\nThis combination can be configured over the delimiter", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - }, - { - "name": "deprecated", - "text": "Not used anymore see `done` event" - } - ], - "default": "' - '", - "deprecation": "Not used anymore see `done` event", + "docs": "Picker date. If the picker is in range mode this property is the start date.\nIf set to `null` no default start date will be pre-selected.\n\nFormat is based on `format`", + "docsTags": [], + "default": "''", "values": [ { "type": "string" @@ -4420,7 +4174,7 @@ "required": false }, { - "name": "from", + "name": "i18nCustomItem", "type": "string", "complexType": { "original": "string", @@ -4428,21 +4182,17 @@ "references": {} }, "mutable": false, - "attr": "from", + "attr": "i18n-custom-item", "reflectToAttr": false, - "docs": "The selected starting date. If the picker is not in range mode this is the selected date.\nFormat has to match the `format` property.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docs": "Text for custom dropdown item. Will be used for translation.", + "docsTags": [], + "default": "'Custom...'", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { @@ -4456,13 +4206,8 @@ "mutable": false, "attr": "i18n-done", "reflectToAttr": false, - "docs": "Text of date select button", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], + "docs": "Text for the done button. Will be used for translation.", + "docsTags": [], "default": "'Done'", "values": [ { @@ -4473,7 +4218,7 @@ "required": false }, { - "name": "locale", + "name": "i18nNoRange", "type": "string", "complexType": { "original": "string", @@ -4481,13 +4226,35 @@ "references": {} }, "mutable": false, - "attr": "locale", + "attr": "i18n-no-range", "reflectToAttr": false, - "docs": "Format of time string\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docs": "Text for the done button. Will be used for translation.", + "docsTags": [], + "default": "'No range set'", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "locale", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "locale", + "reflectToAttr": false, + "docs": "Locale identifier (e.g. 'en' or 'de').", "docsTags": [ { "name": "since", - "text": "2.1.0" + "text": "2.6.0" } ], "values": [ @@ -4510,18 +4277,14 @@ "attr": "max-date", "reflectToAttr": false, "docs": "The latest date that can be selected by the date picker.\nIf not set there will be no restriction.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docsTags": [], + "default": "''", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { @@ -4536,18 +4299,14 @@ "attr": "min-date", "reflectToAttr": false, "docs": "The earliest date that can be selected by the date picker.\nIf not set there will be no restriction.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docsTags": [], + "default": "''", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { @@ -4561,7 +4320,7 @@ "mutable": false, "attr": "range", "reflectToAttr": false, - "docs": "If true a date-range can be selected (from/to).", + "docs": "If true a range of dates can be selected.", "docsTags": [], "default": "true", "values": [ @@ -4573,51 +4332,173 @@ "required": false }, { - "name": "showHour", - "type": "boolean", + "name": "to", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "show-hour", + "attr": "to", "reflectToAttr": false, - "docs": "Show hour input", + "docs": "Picker date. If the picker is in range mode this property is the end date.\nIf the picker is not in range mode leave this value `null`\n\nFormat is based on `format`", "docsTags": [], - "default": "true", + "default": "''", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "showMinutes", - "type": "boolean", + "name": "weekStartIndex", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "show-minutes", + "attr": "week-start-index", "reflectToAttr": false, - "docs": "Show minutes input", - "docsTags": [], - "default": "true", + "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], + "default": "0", "values": [ { - "type": "boolean" + "type": "number" } ], "optional": false, "required": false + } + ], + "methods": [ + { + "name": "getDateRange", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "DateRangeChangeEvent": { + "location": "local", + "path": "src/components/date-dropdown/date-dropdown.tsx", + "id": "src/components/date-dropdown/date-dropdown.tsx::DateRangeChangeEvent" + } + }, + "return": "Promise" + }, + "signature": "getDateRange() => Promise", + "parameters": [], + "docs": "Retrieves the currently selected date range from the component.\nThis method returns the selected date range as a `DateChangeEvent` object.", + "docsTags": [] + } + ], + "events": [ + { + "event": "dateRangeChange", + "detail": "{ id: string; from: string; to: string; }", + "bubbles": true, + "complexType": { + "original": "DateRangeChangeEvent", + "resolved": "{ id: string; from: string; to: string; }", + "references": { + "DateRangeChangeEvent": { + "location": "local", + "path": "src/components/date-dropdown/date-dropdown.tsx", + "id": "src/components/date-dropdown/date-dropdown.tsx::DateRangeChangeEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "EventEmitter for date range change events.\n\nThis event is emitted when the date range changes within the component.\nThe event payload contains information about the selected date range.", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/date-input", + "filePath": "src/components/date-input/date-input.tsx", + "fileName": "date-input.tsx", + "readmePath": "src/components/date-input/readme.md", + "usagesDir": "src/components/date-input/usage", + "tag": "ix-date-input", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" }, { - "name": "showSeconds", + "name": "form-ready", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-icon-button", + "ix-field-wrapper", + "ix-dropdown", + "ix-date-picker" + ], + "dependencyGraph": { + "ix-date-input": [ + "ix-icon-button", + "ix-field-wrapper", + "ix-dropdown", + "ix-date-picker" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ], + "ix-date-picker": [ + "ix-date-time-card", + "ix-icon-button", + "ix-button", + "ix-dropdown" + ], + "ix-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "disabled", "type": "boolean", "complexType": { "original": "boolean", @@ -4625,11 +4506,11 @@ "references": {} }, "mutable": false, - "attr": "show-seconds", + "attr": "disabled", "reflectToAttr": false, - "docs": "Show seconds input", + "docs": "disabled attribute", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -4639,38 +4520,29 @@ "required": false }, { - "name": "showTimeReference", - "type": "boolean", + "name": "format", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "show-time-reference", + "attr": "format", "reflectToAttr": false, - "docs": "Show time reference input\nTime reference is default aligned with", - "docsTags": [ - { - "name": "see", - "text": "{ this.timeFormat}" - }, - { - "name": "since", - "text": "1.1.0" - } - ], - "default": "false", + "docs": "Date format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docsTags": [], + "default": "'yyyy/LL/dd'", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "textSelectDate", + "name": "helperText", "type": "string", "complexType": { "original": "string", @@ -4678,20 +4550,10 @@ "references": {} }, "mutable": false, - "attr": "text-select-date", + "attr": "helper-text", "reflectToAttr": false, - "docs": "Text of date select button", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - }, - { - "name": "deprecated", - "text": "since 2.1.0. Use `i18nDone`" - } - ], - "deprecation": "since 2.1.0. Use `i18nDone`", + "docs": "helper text below the input field", + "docsTags": [], "values": [ { "type": "string" @@ -4701,7 +4563,7 @@ "required": false }, { - "name": "time", + "name": "i18nErrorDateUnparsable", "type": "string", "complexType": { "original": "string", @@ -4709,25 +4571,21 @@ "references": {} }, "mutable": false, - "attr": "time", + "attr": "i18n-error-date-unparsable", "reflectToAttr": false, - "docs": "Select time with format string", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docs": "i18n string for the error message when the date is not parsable", + "docsTags": [], + "default": "'Date is not valid'", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "timeFormat", + "name": "infoText", "type": "string", "complexType": { "original": "string", @@ -4735,44 +4593,33 @@ "references": {} }, "mutable": false, - "attr": "time-format", + "attr": "info-text", "reflectToAttr": false, - "docs": "Time format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], - "default": "'HH:mm:ss'", + "docs": "info text below the input field", + "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "timeReference", - "type": "\"AM\" | \"PM\"", + "name": "invalidText", + "type": "string", "complexType": { - "original": "'AM' | 'PM'", - "resolved": "\"AM\" | \"PM\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "time-reference", - "reflectToAttr": false, - "docs": "Set time reference", + "attr": "invalid-text", + "reflectToAttr": true, + "docs": "error text below the input field", "docsTags": [], "values": [ { - "value": "AM", - "type": "string" - }, - { - "value": "PM", "type": "string" } ], @@ -4780,7 +4627,7 @@ "required": false }, { - "name": "to", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -4788,15 +4635,10 @@ "references": {} }, "mutable": false, - "attr": "to", + "attr": "label", "reflectToAttr": false, - "docs": "The selected end date. If the the picker is not in range mode this property has no impact.\nFormat has to match the `format` property.", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ], + "docs": "label of the input field", + "docsTags": [], "values": [ { "type": "string" @@ -4806,195 +4648,75 @@ "required": false }, { - "name": "weekStartIndex", - "type": "number", + "name": "locale", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "week-start-index", + "attr": "locale", "reflectToAttr": false, - "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", + "docs": "Locale identifier (e.g. 'en' or 'de').", "docsTags": [ { "name": "since", - "text": "2.1.0" + "text": "2.6.0" } ], - "default": "0", "values": [ { - "type": "number" + "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "dateChange", - "detail": "string | { from: string; to: string; }", - "bubbles": true, - "complexType": { - "original": "DateTimeDateChangeEvent", - "resolved": "string | { from: string; to: string; }", - "references": { - "DateTimeDateChangeEvent": { - "location": "local", - "path": "src/components/datetime-picker/datetime-picker.tsx", - "id": "src/components/datetime-picker/datetime-picker.tsx::DateTimeDateChangeEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Date change", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ] - }, - { - "event": "dateSelect", - "detail": "{ from: string; to: string; time: string; }", - "bubbles": true, - "complexType": { - "original": "DateTimeSelectEvent", - "resolved": "{ from: string; to: string; time: string; }", - "references": { - "DateTimeSelectEvent": { - "location": "local", - "path": "src/components/datetime-picker/datetime-picker.tsx", - "id": "src/components/datetime-picker/datetime-picker.tsx::DateTimeSelectEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Datetime selection event is fired after confirm button is pressed", - "docsTags": [ - { - "name": "since", - "text": "1.1.0" - } - ] }, { - "event": "done", - "detail": "string", - "bubbles": true, + "name": "name", + "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Done event\n\nSet `doneEventDelimiter` to null or undefine to get the typed event", - "docsTags": [ + "mutable": false, + "attr": "name", + "reflectToAttr": true, + "docs": "name of the input element", + "docsTags": [], + "values": [ { - "name": "deprecated", - "text": "Use `this.dateChange`" + "type": "string" } ], - "deprecation": "Use `this.dateChange`" + "optional": true, + "required": false }, { - "event": "timeChange", - "detail": "string", - "bubbles": true, + "name": "placeholder", + "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Time change", - "docsTags": [ + "mutable": false, + "attr": "placeholder", + "reflectToAttr": true, + "docs": "placeholder of the input element", + "docsTags": [], + "values": [ { - "name": "since", - "text": "1.1.0" + "type": "string" } - ] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/divider", - "filePath": "src/components/divider/divider.tsx", - "fileName": "divider.tsx", - "readmePath": "src/components/divider/readme.md", - "usagesDir": "src/components/divider/usage", - "tag": "ix-divider", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "1.4.0" - } - ], - "encapsulation": "shadow", - "dependents": [ - "ix-avatar", - "ix-menu-category" - ], - "dependencies": [], - "dependencyGraph": { - "ix-avatar": [ - "ix-divider" - ], - "ix-menu-category": [ - "ix-divider" - ] - }, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/drawer", - "filePath": "src/components/drawer/drawer.tsx", - "fileName": "drawer.tsx", - "readmePath": "src/components/drawer/readme.md", - "usagesDir": "src/components/drawer/usage", - "tag": "ix-drawer", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-icon-button" - ], - "dependencyGraph": { - "ix-drawer": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + ], + "optional": true, + "required": false + }, { - "name": "closeOnClickOutside", + "name": "readonly", "type": "boolean", "complexType": { "original": "boolean", @@ -5002,11 +4724,11 @@ "references": {} }, "mutable": false, - "attr": "close-on-click-outside", + "attr": "readonly", "reflectToAttr": false, - "docs": "Fired in case of an outside click during drawer showed state", + "docs": "readonly attribute", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -5016,7 +4738,7 @@ "required": false }, { - "name": "fullHeight", + "name": "required", "type": "boolean", "complexType": { "original": "boolean", @@ -5024,128 +4746,114 @@ "references": {} }, "mutable": false, - "attr": "full-height", + "attr": "required", "reflectToAttr": false, - "docs": "Render the drawer with maximum height", + "docs": "required attribute", "docsTags": [], - "default": "false", "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "maxWidth", - "type": "number", + "name": "showTextAsTooltip", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "max-width", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "Max width interpreted as REM", + "docs": "show text as tooltip", "docsTags": [], - "default": "28", "values": [ { - "type": "number" + "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "minWidth", - "type": "number", + "name": "validText", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "min-width", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Min width interpreted as REM", + "docs": "valid text below the input field", "docsTags": [], - "default": "16", "values": [ { - "type": "number" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "show", - "type": "boolean", + "name": "value", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": true, - "attr": "show", - "reflectToAttr": false, - "docs": "Show or hide the drawer", + "attr": "value", + "reflectToAttr": true, + "docs": "value of the input element", "docsTags": [], - "default": "false", + "default": "''", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "width", - "type": "\"auto\" | number", + "name": "warningText", + "type": "string", "complexType": { - "original": "number | 'auto'", - "resolved": "\"auto\" | number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "width", + "attr": "warning-text", "reflectToAttr": false, - "docs": "Width interpreted as REM if not set to 'auto'", + "docs": "warning text below the input field", "docsTags": [], - "default": "this.minWidth", "values": [ { - "value": "auto", "type": "string" - }, - { - "type": "number" } ], - "optional": false, + "optional": true, "required": false } ], "methods": [ { - "name": "toggleDrawer", + "name": "focusInput", "returns": { "type": "Promise", "docs": "" }, "complexType": { - "signature": "(show?: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "Overwrite toggle state with boolean" - } - ], + "signature": "() => Promise", + "parameters": [], "references": { "Promise": { "location": "global", @@ -5154,50 +4862,71 @@ }, "return": "Promise" }, - "signature": "toggleDrawer(show?: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "Overwrite toggle state with boolean" - } - ], - "docs": "Toggle or define show state of drawer", - "docsTags": [ - { - "name": "param", - "text": "show Overwrite toggle state with boolean" - } - ] + "signature": "focusInput() => Promise", + "parameters": [], + "docs": "Focuses the input field", + "docsTags": [] + }, + { + "name": "getNativeInputElement", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLInputElement": { + "location": "global", + "id": "global::HTMLInputElement" + } + }, + "return": "Promise" + }, + "signature": "getNativeInputElement() => Promise", + "parameters": [], + "docs": "Get the native input element", + "docsTags": [] } ], "events": [ { - "event": "drawerClose", - "detail": "any", + "event": "validityStateChange", + "detail": "{ patternMismatch: boolean; invalidReason?: string; }", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", - "references": {} + "original": "DateInputValidityState", + "resolved": "{ patternMismatch: boolean; invalidReason?: string; }", + "references": { + "DateInputValidityState": { + "location": "local", + "path": "src/components/date-input/date-input.tsx", + "id": "src/components/date-input/date-input.tsx::DateInputValidityState" + } + } }, "cancelable": true, "composed": true, - "docs": "Fire event after drawer is close", + "docs": "Validation state change event.", "docsTags": [] }, { - "event": "open", - "detail": "any", + "event": "valueChange", + "detail": "string", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", + "original": "string", + "resolved": "string", "references": {} }, - "cancelable": true, + "cancelable": false, "composed": true, - "docs": "Fire event after drawer is open", + "docs": "Input change event.", "docsTags": [] } ], @@ -5207,142 +4936,127 @@ "listeners": [] }, { - "dirPath": "src/components/dropdown", - "filePath": "src/components/dropdown/dropdown.tsx", - "fileName": "dropdown.tsx", - "readmePath": "src/components/dropdown/readme.md", - "usagesDir": "src/components/dropdown/usage", - "tag": "ix-dropdown", + "dirPath": "src/components/date-picker", + "filePath": "src/components/date-picker/date-picker.tsx", + "fileName": "date-picker.tsx", + "readmePath": "src/components/date-picker/readme.md", + "usagesDir": "src/components/date-picker/usage", + "tag": "ix-date-picker", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", "dependents": [ - "ix-application-header", - "ix-avatar", - "ix-breadcrumb", - "ix-category-filter", "ix-date-dropdown", - "ix-date-picker", - "ix-dropdown-button", - "ix-menu-avatar", - "ix-menu-category", - "ix-select", - "ix-split-button" + "ix-date-input", + "ix-datetime-picker" + ], + "dependencies": [ + "ix-date-time-card", + "ix-icon-button", + "ix-button", + "ix-dropdown" ], - "dependencies": [], "dependencyGraph": { - "ix-application-header": [ - "ix-dropdown" - ], - "ix-avatar": [ - "ix-dropdown" - ], - "ix-breadcrumb": [ - "ix-dropdown" - ], - "ix-category-filter": [ - "ix-dropdown" - ], - "ix-date-dropdown": [ - "ix-dropdown" - ], "ix-date-picker": [ + "ix-date-time-card", + "ix-icon-button", + "ix-button", "ix-dropdown" ], - "ix-dropdown-button": [ - "ix-dropdown" + "ix-icon-button": [ + "ix-spinner" ], - "ix-menu-avatar": [ - "ix-dropdown" + "ix-button": [ + "ix-spinner" ], - "ix-menu-category": [ - "ix-dropdown" + "ix-date-dropdown": [ + "ix-date-picker" ], - "ix-select": [ - "ix-dropdown" + "ix-date-input": [ + "ix-date-picker" ], - "ix-split-button": [ - "ix-dropdown" + "ix-datetime-picker": [ + "ix-date-picker" ] }, "props": [ { - "name": "anchor", - "type": "HTMLElement | Promise | string", + "name": "corners", + "type": "\"left\" | \"right\" | \"rounded\" | \"straight\"", "complexType": { - "original": "ElementReference", - "resolved": "HTMLElement | Promise | string", + "original": "DateTimeCardCorners", + "resolved": "\"left\" | \"right\" | \"rounded\" | \"straight\"", "references": { - "ElementReference": { + "DateTimeCardCorners": { "location": "import", - "path": "src/components/utils/element-reference", - "id": "src/components/utils/element-reference.ts::ElementReference" + "path": "../date-time-card/date-time-card", + "id": "src/components/date-time-card/date-time-card.tsx::DateTimeCardCorners" } } }, "mutable": false, - "attr": "anchor", + "attr": "corners", "reflectToAttr": false, - "docs": "Define an anchor element", + "docs": "Corner style", "docsTags": [], + "default": "'rounded'", "values": [ { - "type": "HTMLElement" + "value": "left", + "type": "string" }, { - "type": "Promise" + "value": "right", + "type": "string" + }, + { + "value": "rounded", + "type": "string" }, { + "value": "straight", "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "closeBehavior", - "type": "\"both\" | \"inside\" | \"outside\" | boolean", + "name": "eventDelimiter", + "type": "string", "complexType": { - "original": "CloseBehavior", - "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", - "references": { - "CloseBehavior": { - "location": "import", - "path": "dropdown-controller", - "id": "src/components/dropdown/dropdown-controller.ts::CloseBehavior" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "close-behavior", + "attr": "event-delimiter", "reflectToAttr": false, - "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.\nIf the dropdown is a child of another one, it will be closed with the parent, regardless of its own close behavior.", - "docsTags": [], - "default": "'both'", - "values": [ + "docs": "Default behavior of the done event is to join the two events (date and time) into one combined string output.\nThis combination can be configured over the delimiter", + "docsTags": [ { - "value": "both", - "type": "string" + "name": "since", + "text": "1.1.0" }, { - "value": "inside", - "type": "string" - }, + "name": "deprecated", + "text": "Not used anymore see `this.dateChange`" + } + ], + "default": "' - '", + "deprecation": "Not used anymore see `this.dateChange`", + "values": [ { - "value": "outside", "type": "string" - }, - { - "type": "boolean" } ], "optional": false, "required": false }, { - "name": "header", + "name": "format", "type": "string", "complexType": { "original": "string", @@ -5350,69 +5064,147 @@ "references": {} }, "mutable": false, - "attr": "header", + "attr": "format", "reflectToAttr": false, - "docs": "An optional header shown at the top of the dropdown", + "docs": "Date format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", "docsTags": [], + "default": "'yyyy/LL/dd'", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "placement", - "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", + "name": "from", + "type": "string", "complexType": { - "original": "AlignedPlacement", - "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", - "references": { - "AlignedPlacement": { - "location": "import", - "path": "placement", - "id": "src/components/dropdown/placement.ts::AlignedPlacement" - } - } + "original": "string | undefined", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "placement", + "attr": "from", "reflectToAttr": false, - "docs": "Placement of the dropdown", - "docsTags": [], - "default": "'bottom-start'", + "docs": "The selected starting date. If the date-picker-rework is not in range mode this is the selected date.\nFormat has to match the `format` property.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], "values": [ { - "value": "bottom-end", "type": "string" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "i18nDone", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "i18n-done", + "reflectToAttr": false, + "docs": "Text of date select button", + "docsTags": [ { - "value": "bottom-start", - "type": "string" - }, + "name": "since", + "text": "2.1.0" + } + ], + "default": "'Done'", + "values": [ { - "value": "left-end", "type": "string" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "individual", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "individual", + "reflectToAttr": false, + "docs": "", + "docsTags": [ { - "value": "left-start", - "type": "string" - }, + "name": "deprecated", + "text": "Not supported since 2.0.0." + } + ], + "default": "true", + "deprecation": "Not supported since 2.0.0.", + "values": [ { - "value": "right-end", - "type": "string" - }, + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "locale", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "locale", + "reflectToAttr": false, + "docs": "Locale identifier (e.g. 'en' or 'de').", + "docsTags": [ { - "value": "right-start", - "type": "string" - }, + "name": "since", + "text": "2.1.0" + } + ], + "values": [ { - "value": "top-end", "type": "string" - }, + } + ], + "optional": true, + "required": false + }, + { + "name": "maxDate", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "max-date", + "reflectToAttr": false, + "docs": "The latest date that can be selected by the date picker.\nIf not set there will be no restriction.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], + "default": "''", + "values": [ { - "value": "top-start", "type": "string" } ], @@ -5420,26 +5212,26 @@ "required": false }, { - "name": "positioningStrategy", - "type": "\"absolute\" | \"fixed\"", + "name": "minDate", + "type": "string", "complexType": { - "original": "'absolute' | 'fixed'", - "resolved": "\"absolute\" | \"fixed\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "positioning-strategy", + "attr": "min-date", "reflectToAttr": false, - "docs": "Position strategy", - "docsTags": [], - "default": "'fixed'", - "values": [ + "docs": "The earliest date that can be selected by the date picker.\nIf not set there will be no restriction.", + "docsTags": [ { - "value": "absolute", - "type": "string" - }, + "name": "since", + "text": "1.1.0" + } + ], + "default": "''", + "values": [ { - "value": "fixed", "type": "string" } ], @@ -5447,19 +5239,19 @@ "required": false }, { - "name": "show", + "name": "range", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "show", - "reflectToAttr": true, - "docs": "Show dropdown", + "mutable": false, + "attr": "range", + "reflectToAttr": false, + "docs": "If true a date-range can be selected (from/to).", "docsTags": [], - "default": "false", + "default": "true", "values": [ { "type": "boolean" @@ -5469,240 +5261,354 @@ "required": false }, { - "name": "suppressAutomaticPlacement", - "type": "boolean", + "name": "textSelectDate", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "suppress-automatic-placement", + "attr": "text-select-date", "reflectToAttr": false, - "docs": "Suppress the automatic placement of the dropdown.", + "docs": "Text of the button that confirms date selection.", "docsTags": [ { "name": "since", - "text": "2.0.0" + "text": "1.1.0" + }, + { + "name": "deprecated", + "text": "since 2.1.0. Use `i18nDone`" } ], - "default": "false", + "default": "''", + "deprecation": "since 2.1.0. Use `i18nDone`", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "trigger", - "type": "HTMLElement | Promise | string", + "name": "to", + "type": "string", "complexType": { - "original": "ElementReference", - "resolved": "HTMLElement | Promise | string", - "references": { - "ElementReference": { - "location": "import", - "path": "src/components/utils/element-reference", - "id": "src/components/utils/element-reference.ts::ElementReference" - } - } + "original": "string | undefined", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "trigger", + "attr": "to", "reflectToAttr": false, - "docs": "Define an element that triggers the dropdown.\nA trigger can either be a string that will be interpreted as id attribute or a DOM element.", - "docsTags": [], - "values": [ - { - "type": "HTMLElement" - }, + "docs": "The selected end date. If the the date-picker-rework is not in range mode this property has no impact.\nFormat has to match the `format` property.", + "docsTags": [ { - "type": "Promise" - }, + "name": "since", + "text": "1.1.0" + } + ], + "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false - } - ], - "methods": [ + }, { - "name": "updatePosition", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "weekStartIndex", + "type": "number", "complexType": { - "signature": "() => Promise", - "parameters": [], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "week-start-index", + "reflectToAttr": false, + "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], + "default": "0", + "values": [ + { + "type": "number" + } + ], + "optional": false, + "required": false + } + ], + "methods": [ + { + "name": "getCurrentDate", + "returns": { + "type": "Promise<{ from: string; to: string; }>", + "docs": "" + }, + "complexType": { + "signature": "() => Promise<{ from: string; to: string; }>", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" } }, - "return": "Promise" + "return": "Promise<{ from: string; to: string; }>" }, - "signature": "updatePosition() => Promise", + "signature": "getCurrentDate() => Promise<{ from: string; to: string; }>", "parameters": [], - "docs": "Update position of dropdown", + "docs": "Get the currently selected date-range.", "docsTags": [] } ], "events": [ { - "event": "showChanged", - "detail": "boolean", + "event": "dateChange", + "detail": "{ from: string; to: string; }", "bubbles": true, "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "DateChangeEvent", + "resolved": "{ from: string; to: string; }", + "references": { + "DateChangeEvent": { + "location": "local", + "path": "src/components/date-picker/date-picker.tsx", + "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Triggers if the date selection changes.\nNote: Since 2.0.0 `dateChange` does not dispatch detail property as `string`", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ] + }, + { + "event": "dateRangeChange", + "detail": "{ from: string; to: string; }", + "bubbles": true, + "complexType": { + "original": "DateChangeEvent", + "resolved": "{ from: string; to: string; }", + "references": { + "DateChangeEvent": { + "location": "local", + "path": "src/components/date-picker/date-picker.tsx", + "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Triggers if the date selection changes.\nOnly triggered if date-picker-rework is in range mode.", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ] + }, + { + "event": "dateSelect", + "detail": "{ from: string; to: string; }", + "bubbles": true, + "complexType": { + "original": "DateChangeEvent", + "resolved": "{ from: string; to: string; }", + "references": { + "DateChangeEvent": { + "location": "local", + "path": "src/components/date-picker/date-picker.tsx", + "id": "src/components/date-picker/date-picker.tsx::DateChangeEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Date selection confirmed via button action", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ] + }, + { + "event": "done", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", "references": {} }, "cancelable": true, "composed": true, - "docs": "Fire event after visibility of dropdown has changed", - "docsTags": [] + "docs": "Date selection confirmed via button action", + "docsTags": [ + { + "name": "deprecated", + "text": "NOT getting dispatched after 2.0.0. Use `dateSelect`." + } + ], + "deprecation": "NOT getting dispatched after 2.0.0. Use `dateSelect`." } ], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "ix-assign-sub-menu", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { - "dirPath": "src/components/dropdown-button", - "filePath": "src/components/dropdown-button/dropdown-button.tsx", - "fileName": "dropdown-button.tsx", - "readmePath": "src/components/dropdown-button/readme.md", - "usagesDir": "src/components/dropdown-button/usage", - "tag": "ix-dropdown-button", - "readme": "# ix-dropdown-button\n\n\n", + "dirPath": "src/components/datetime-picker", + "filePath": "src/components/datetime-picker/datetime-picker.tsx", + "fileName": "datetime-picker.tsx", + "readmePath": "src/components/datetime-picker/readme.md", + "usagesDir": "src/components/datetime-picker/usage", + "tag": "ix-datetime-picker", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "1.3.0" - } - ], + "docsTags": [], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-button", - "ix-icon-button", - "ix-dropdown" + "ix-layout-grid", + "ix-row", + "ix-col", + "ix-date-picker", + "ix-time-picker", + "ix-button" ], "dependencyGraph": { - "ix-dropdown-button": [ - "ix-button", + "ix-datetime-picker": [ + "ix-layout-grid", + "ix-row", + "ix-col", + "ix-date-picker", + "ix-time-picker", + "ix-button" + ], + "ix-date-picker": [ + "ix-date-time-card", "ix-icon-button", + "ix-button", "ix-dropdown" ], - "ix-button": [ + "ix-icon-button": [ "ix-spinner" ], - "ix-icon-button": [ + "ix-button": [ "ix-spinner" + ], + "ix-time-picker": [ + "ix-date-time-card", + "ix-typography", + "ix-icon-button", + "ix-button" ] }, "props": [ { - "name": "closeBehavior", - "type": "\"both\" | \"inside\" | \"outside\" | boolean", + "name": "dateFormat", + "type": "string", "complexType": { - "original": "'inside' | 'outside' | 'both' | boolean", - "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "close-behavior", + "attr": "date-format", "reflectToAttr": false, - "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.", + "docs": "Date format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", "docsTags": [ { "name": "since", - "text": "2.1.0" + "text": "1.1.0" } ], - "default": "'both'", + "default": "'yyyy/LL/dd'", "values": [ { - "value": "both", - "type": "string" - }, - { - "value": "inside", - "type": "string" - }, - { - "value": "outside", "type": "string" - }, - { - "type": "boolean" } ], "optional": false, "required": false }, { - "name": "disabled", - "type": "boolean", + "name": "eventDelimiter", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "event-delimiter", "reflectToAttr": false, - "docs": "Disable button", - "docsTags": [], - "default": "false", + "docs": "Default behavior of the done event is to join the two events (date and time) into one combined string output.\nThis combination can be configured over the delimiter", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + }, + { + "name": "deprecated", + "text": "Not used anymore see `done` event" + } + ], + "default": "' - '", + "deprecation": "Not used anymore see `done` event", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "ghost", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", + "name": "from", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "ghost", + "attr": "from", "reflectToAttr": false, - "docs": "Button with no background or outline", - "docsTags": [], - "default": "false", + "docs": "The selected starting date. If the picker is not in range mode this is the selected date.\nFormat has to match the `format` property.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", + "name": "i18nDone", "type": "string", "complexType": { "original": "string", @@ -5710,20 +5616,26 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "i18n-done", "reflectToAttr": false, - "docs": "Button icon", - "docsTags": [], + "docs": "Text of date select button", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], + "default": "'Done'", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "label", + "name": "locale", "type": "string", "complexType": { "original": "string", @@ -5731,10 +5643,15 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "locale", "reflectToAttr": false, - "docs": "Set label", - "docsTags": [], + "docs": "Format of time string\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], "values": [ { "type": "string" @@ -5744,82 +5661,51 @@ "required": false }, { - "name": "outline", - "type": "boolean", + "name": "maxDate", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "outline", + "attr": "max-date", "reflectToAttr": false, - "docs": "Outline button", - "docsTags": [], - "default": "false", + "docs": "The latest date that can be selected by the date picker.\nIf not set there will be no restriction.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "placement", - "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", + "name": "minDate", + "type": "string", "complexType": { - "original": "AlignedPlacement", - "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", - "references": { - "AlignedPlacement": { - "location": "import", - "path": "../dropdown/placement", - "id": "src/components/dropdown/placement.ts::AlignedPlacement" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "placement", + "attr": "min-date", "reflectToAttr": false, - "docs": "Placement of the dropdown", + "docs": "The earliest date that can be selected by the date picker.\nIf not set there will be no restriction.", "docsTags": [ { "name": "since", - "text": "2.0.0" + "text": "1.1.0" } ], "values": [ { - "value": "bottom-end", - "type": "string" - }, - { - "value": "bottom-start", - "type": "string" - }, - { - "value": "left-end", - "type": "string" - }, - { - "value": "left-start", - "type": "string" - }, - { - "value": "right-end", - "type": "string" - }, - { - "value": "right-start", - "type": "string" - }, - { - "value": "top-end", - "type": "string" - }, - { - "value": "top-start", "type": "string" } ], @@ -5827,154 +5713,95 @@ "required": false }, { - "name": "variant", - "type": "\"danger\" | \"primary\" | \"secondary\"", + "name": "range", + "type": "boolean", "complexType": { - "original": "DropdownButtonVariant", - "resolved": "\"danger\" | \"primary\" | \"secondary\"", - "references": { - "DropdownButtonVariant": { - "location": "local", - "path": "src/components/dropdown-button/dropdown-button.tsx", - "id": "src/components/dropdown-button/dropdown-button.tsx::DropdownButtonVariant" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, - "attr": "variant", + "attr": "range", "reflectToAttr": false, - "docs": "Button variant", + "docs": "If true a date-range can be selected (from/to).", "docsTags": [], - "default": "'primary'", + "default": "true", "values": [ { - "value": "danger", - "type": "string" - }, - { - "value": "primary", - "type": "string" - }, + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "showHour", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "show-hour", + "reflectToAttr": false, + "docs": "Show hour input", + "docsTags": [], + "default": "true", + "values": [ { - "value": "secondary", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/dropdown-header", - "filePath": "src/components/dropdown-header/dropdown-header.tsx", - "fileName": "dropdown-header.tsx", - "readmePath": "src/components/dropdown-header/readme.md", - "usagesDir": "src/components/dropdown-header/usage", - "tag": "ix-dropdown-header", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ + }, { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-typography" - ], - "dependencyGraph": { - "ix-dropdown-header": [ - "ix-typography" - ] - }, - "props": [ + "name": "showMinutes", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "show-minutes", + "reflectToAttr": false, + "docs": "Show minutes input", + "docsTags": [], + "default": "true", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, { - "name": "label", - "type": "string", + "name": "showSeconds", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "label", + "attr": "show-seconds", "reflectToAttr": false, - "docs": "Display name of the header", + "docs": "Show seconds input", "docsTags": [], + "default": "true", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/dropdown-item", - "filePath": "src/components/dropdown-item/dropdown-item.tsx", - "fileName": "dropdown-item.tsx", - "readmePath": "src/components/dropdown-item/readme.md", - "usagesDir": "src/components/dropdown-item/usage", - "tag": "ix-dropdown-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-breadcrumb", - "ix-date-dropdown", - "ix-menu-avatar-item", - "ix-menu-category", - "ix-select", - "ix-select-item", - "ix-split-button-item" - ], - "dependencies": [], - "dependencyGraph": { - "ix-breadcrumb": [ - "ix-dropdown-item" - ], - "ix-date-dropdown": [ - "ix-dropdown-item" - ], - "ix-menu-avatar-item": [ - "ix-dropdown-item" - ], - "ix-menu-category": [ - "ix-dropdown-item" - ], - "ix-select": [ - "ix-dropdown-item" - ], - "ix-select-item": [ - "ix-dropdown-item" - ], - "ix-split-button-item": [ - "ix-dropdown-item" - ] - }, - "props": [ + }, { - "name": "checked", + "name": "showTimeReference", "type": "boolean", "complexType": { "original": "boolean", @@ -5982,10 +5809,19 @@ "references": {} }, "mutable": false, - "attr": "checked", + "attr": "show-time-reference", "reflectToAttr": false, - "docs": "Whether the item is checked or not. If true a checkmark will mark the item as checked.", - "docsTags": [], + "docs": "Show time reference input\nTime reference is default aligned with", + "docsTags": [ + { + "name": "see", + "text": "{ this.timeFormat}" + }, + { + "name": "since", + "text": "1.1.0" + } + ], "default": "false", "values": [ { @@ -5996,51 +5832,64 @@ "required": false }, { - "name": "disabled", - "type": "boolean", + "name": "textSelectDate", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "text-select-date", "reflectToAttr": false, - "docs": "Disable item and remove event listeners", - "docsTags": [], - "default": "false", + "docs": "Text of date select button", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + }, + { + "name": "deprecated", + "text": "since 2.1.0. Use `i18nDone`" + } + ], + "deprecation": "since 2.1.0. Use `i18nDone`", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "hover", - "type": "boolean", + "name": "time", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "hover", + "attr": "time", "reflectToAttr": false, - "docs": "Display hover state", - "docsTags": [], - "default": "false", + "docs": "Select time with format string", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", + "name": "timeFormat", "type": "string", "complexType": { "original": "string", @@ -6048,12 +5897,44 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "time-format", "reflectToAttr": false, - "docs": "Icon of dropdown item", + "docs": "Time format string.\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], + "default": "'HH:mm:ss'", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "timeReference", + "type": "\"AM\" | \"PM\"", + "complexType": { + "original": "'AM' | 'PM'", + "resolved": "\"AM\" | \"PM\"", + "references": {} + }, + "mutable": false, + "attr": "time-reference", + "reflectToAttr": false, + "docs": "Set time reference", "docsTags": [], "values": [ { + "value": "AM", + "type": "string" + }, + { + "value": "PM", "type": "string" } ], @@ -6061,7 +5942,7 @@ "required": false }, { - "name": "label", + "name": "to", "type": "string", "complexType": { "original": "string", @@ -6069,10 +5950,15 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "to", "reflectToAttr": false, - "docs": "Label of dropdown item", - "docsTags": [], + "docs": "The selected end date. If the the picker is not in range mode this property has no impact.\nFormat has to match the `format` property.", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ], "values": [ { "type": "string" @@ -6080,45 +5966,139 @@ ], "optional": true, "required": false + }, + { + "name": "weekStartIndex", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "week-start-index", + "reflectToAttr": false, + "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], + "default": "0", + "values": [ + { + "type": "number" + } + ], + "optional": false, + "required": false } ], - "methods": [ + "methods": [], + "events": [ { - "name": "emitItemClick", - "returns": { - "type": "Promise", - "docs": "" + "event": "dateChange", + "detail": "string | { from: string; to: string; }", + "bubbles": true, + "complexType": { + "original": "DateTimeDateChangeEvent", + "resolved": "string | { from: string; to: string; }", + "references": { + "DateTimeDateChangeEvent": { + "location": "local", + "path": "src/components/datetime-picker/datetime-picker.tsx", + "id": "src/components/datetime-picker/datetime-picker.tsx::DateTimeDateChangeEvent" + } + } }, + "cancelable": true, + "composed": true, + "docs": "Date change", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ] + }, + { + "event": "dateSelect", + "detail": "{ from: string; to: string; time: string; }", + "bubbles": true, "complexType": { - "signature": "() => Promise", - "parameters": [], + "original": "DateTimeSelectEvent", + "resolved": "{ from: string; to: string; time: string; }", "references": { - "Promise": { - "location": "global", - "id": "global::Promise" + "DateTimeSelectEvent": { + "location": "local", + "path": "src/components/datetime-picker/datetime-picker.tsx", + "id": "src/components/datetime-picker/datetime-picker.tsx::DateTimeSelectEvent" } - }, - "return": "Promise" + } }, - "signature": "emitItemClick() => Promise", - "parameters": [], - "docs": "Internal usage only", - "docsTags": [] - } - ], - "events": [], - "styles": [], + "cancelable": true, + "composed": true, + "docs": "Datetime selection event is fired after confirm button is pressed", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ] + }, + { + "event": "done", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Done event\n\nSet `doneEventDelimiter` to null or undefine to get the typed event", + "docsTags": [ + { + "name": "deprecated", + "text": "Use `this.dateChange`" + } + ], + "deprecation": "Use `this.dateChange`" + }, + { + "event": "timeChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Time change", + "docsTags": [ + { + "name": "since", + "text": "1.1.0" + } + ] + } + ], + "styles": [], "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/dropdown-quick-actions", - "filePath": "src/components/dropdown-quick-actions/dropdown-quick-actions.tsx", - "fileName": "dropdown-quick-actions.tsx", - "readmePath": "src/components/dropdown-quick-actions/readme.md", - "usagesDir": "src/components/dropdown-quick-actions/usage", - "tag": "ix-dropdown-quick-actions", + "dirPath": "src/components/divider", + "filePath": "src/components/divider/divider.tsx", + "fileName": "divider.tsx", + "readmePath": "src/components/divider/readme.md", + "usagesDir": "src/components/divider/usage", + "tag": "ix-divider", "overview": "", "usage": {}, "docs": "", @@ -6129,9 +6109,19 @@ } ], "encapsulation": "shadow", - "dependents": [], + "dependents": [ + "ix-avatar", + "ix-menu-category" + ], "dependencies": [], - "dependencyGraph": {}, + "dependencyGraph": { + "ix-avatar": [ + "ix-divider" + ], + "ix-menu-category": [ + "ix-divider" + ] + }, "props": [], "methods": [], "events": [], @@ -6141,174 +6131,236 @@ "listeners": [] }, { - "dirPath": "src/components/empty-state", - "filePath": "src/components/empty-state/empty-state.tsx", - "fileName": "empty-state.tsx", - "readmePath": "src/components/empty-state/readme.md", - "usagesDir": "src/components/empty-state/usage", - "tag": "ix-empty-state", + "dirPath": "src/components/drawer", + "filePath": "src/components/drawer/drawer.tsx", + "fileName": "drawer.tsx", + "readmePath": "src/components/drawer/readme.md", + "usagesDir": "src/components/drawer/usage", + "tag": "ix-drawer", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "1.6.0" - } - ], + "docsTags": [], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-typography", - "ix-button" + "ix-icon-button" ], "dependencyGraph": { - "ix-empty-state": [ - "ix-typography", - "ix-button" + "ix-drawer": [ + "ix-icon-button" ], - "ix-button": [ + "ix-icon-button": [ "ix-spinner" ] }, "props": [ { - "name": "action", - "type": "string", + "name": "closeOnClickOutside", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "action", + "attr": "close-on-click-outside", "reflectToAttr": false, - "docs": "Optional empty state action", + "docs": "Fired in case of an outside click during drawer showed state", "docsTags": [], + "default": "true", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "header", - "type": "string", + "name": "fullHeight", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "header", + "attr": "full-height", "reflectToAttr": false, - "docs": "Empty state header", + "docs": "Render the drawer with maximum height", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, - "required": true + "required": false }, { - "name": "icon", - "type": "string", + "name": "maxWidth", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "max-width", "reflectToAttr": false, - "docs": "Optional empty state icon", + "docs": "Max width interpreted as REM", "docsTags": [], + "default": "28", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "layout", - "type": "\"compact\" | \"compactBreak\" | \"large\"", + "name": "minWidth", + "type": "number", "complexType": { - "original": "EmptyStateLayout", - "resolved": "\"compact\" | \"compactBreak\" | \"large\"", - "references": { - "EmptyStateLayout": { - "location": "local", - "path": "src/components/empty-state/empty-state.tsx", - "id": "src/components/empty-state/empty-state.tsx::EmptyStateLayout" - } - } + "original": "number", + "resolved": "number", + "references": {} }, "mutable": false, - "attr": "layout", + "attr": "min-width", "reflectToAttr": false, - "docs": "Optional empty state layout - one of 'large', 'compact' or 'compactBreak'", + "docs": "Min width interpreted as REM", "docsTags": [], - "default": "'large'", + "default": "16", "values": [ { - "value": "compact", - "type": "string" - }, - { - "value": "compactBreak", - "type": "string" - }, + "type": "number" + } + ], + "optional": false, + "required": false + }, + { + "name": "show", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": true, + "attr": "show", + "reflectToAttr": false, + "docs": "Show or hide the drawer", + "docsTags": [], + "default": "false", + "values": [ { - "value": "large", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "subHeader", - "type": "string", + "name": "width", + "type": "\"auto\" | number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number | 'auto'", + "resolved": "\"auto\" | number", "references": {} }, "mutable": false, - "attr": "sub-header", + "attr": "width", "reflectToAttr": false, - "docs": "Optional empty state sub header", + "docs": "Width interpreted as REM if not set to 'auto'", "docsTags": [], + "default": "this.minWidth", "values": [ { + "value": "auto", "type": "string" + }, + { + "type": "number" } ], "optional": false, "required": false } ], - "methods": [], - "events": [ + "methods": [ { - "event": "actionClick", - "detail": "void", - "bubbles": true, + "name": "toggleDrawer", + "returns": { + "type": "Promise", + "docs": "" + }, "complexType": { - "original": "void", - "resolved": "void", - "references": {} + "signature": "(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "Overwrite toggle state with boolean" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" }, - "cancelable": true, - "composed": true, - "docs": "Empty state action click event", - "docsTags": [] + "signature": "toggleDrawer(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "Overwrite toggle state with boolean" + } + ], + "docs": "Toggle or define show state of drawer", + "docsTags": [ + { + "name": "param", + "text": "show Overwrite toggle state with boolean" + } + ] + } + ], + "events": [ + { + "event": "drawerClose", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Fire event after drawer is close", + "docsTags": [] + }, + { + "event": "open", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Fire event after drawer is open", + "docsTags": [] } ], "styles": [], @@ -6317,58 +6369,137 @@ "listeners": [] }, { - "dirPath": "src/components/event-list", - "filePath": "src/components/event-list/event-list.tsx", - "fileName": "event-list.tsx", - "readmePath": "src/components/event-list/readme.md", - "usagesDir": "src/components/event-list/usage", - "tag": "ix-event-list", + "dirPath": "src/components/dropdown", + "filePath": "src/components/dropdown/dropdown.tsx", + "fileName": "dropdown.tsx", + "readmePath": "src/components/dropdown/readme.md", + "usagesDir": "src/components/dropdown/usage", + "tag": "ix-dropdown", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", - "dependents": [], + "dependents": [ + "ix-application-header", + "ix-avatar", + "ix-breadcrumb", + "ix-category-filter", + "ix-date-dropdown", + "ix-date-input", + "ix-date-picker", + "ix-dropdown-button", + "ix-menu-avatar", + "ix-menu-category", + "ix-select", + "ix-split-button" + ], "dependencies": [], - "dependencyGraph": {}, + "dependencyGraph": { + "ix-application-header": [ + "ix-dropdown" + ], + "ix-avatar": [ + "ix-dropdown" + ], + "ix-breadcrumb": [ + "ix-dropdown" + ], + "ix-category-filter": [ + "ix-dropdown" + ], + "ix-date-dropdown": [ + "ix-dropdown" + ], + "ix-date-input": [ + "ix-dropdown" + ], + "ix-date-picker": [ + "ix-dropdown" + ], + "ix-dropdown-button": [ + "ix-dropdown" + ], + "ix-menu-avatar": [ + "ix-dropdown" + ], + "ix-menu-category": [ + "ix-dropdown" + ], + "ix-select": [ + "ix-dropdown" + ], + "ix-split-button": [ + "ix-dropdown" + ] + }, "props": [ { - "name": "animated", - "type": "boolean", + "name": "anchor", + "type": "HTMLElement | Promise | string", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "ElementReference", + "resolved": "HTMLElement | Promise | string", + "references": { + "ElementReference": { + "location": "import", + "path": "src/components/utils/element-reference", + "id": "src/components/utils/element-reference.ts::ElementReference" + } + } }, "mutable": false, - "attr": "animated", + "attr": "anchor", "reflectToAttr": false, - "docs": "Animate state change transitions. Defaults to 'true'.", + "docs": "Define an anchor element", "docsTags": [], - "default": "true", "values": [ { - "type": "boolean" + "type": "HTMLElement" + }, + { + "type": "Promise" + }, + { + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "chevron", - "type": "boolean", + "name": "closeBehavior", + "type": "\"both\" | \"inside\" | \"outside\" | boolean", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "CloseBehavior", + "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", + "references": { + "CloseBehavior": { + "location": "import", + "path": "dropdown-controller", + "id": "src/components/dropdown/dropdown-controller.ts::CloseBehavior" + } + } }, "mutable": false, - "attr": "chevron", + "attr": "close-behavior", "reflectToAttr": false, - "docs": "Display a chevron icon in list items. Defaults to 'false'", + "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.\nIf the dropdown is a child of another one, it will be closed with the parent, regardless of its own close behavior.", "docsTags": [], - "default": "false", + "default": "'both'", "values": [ + { + "value": "both", + "type": "string" + }, + { + "value": "inside", + "type": "string" + }, + { + "value": "outside", + "type": "string" + }, { "type": "boolean" } @@ -6377,146 +6508,122 @@ "required": false }, { - "name": "compact", - "type": "boolean", + "name": "header", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "compact", + "attr": "header", "reflectToAttr": false, - "docs": "Make event-list items more compact", + "docs": "An optional header shown at the top of the dropdown", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "itemHeight", - "type": "\"L\" | \"S\" | number", + "name": "placement", + "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", "complexType": { - "original": "'S' | 'L' | number", - "resolved": "\"L\" | \"S\" | number", - "references": {} + "original": "AlignedPlacement", + "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", + "references": { + "AlignedPlacement": { + "location": "import", + "path": "placement", + "id": "src/components/dropdown/placement.ts::AlignedPlacement" + } + } }, "mutable": false, - "attr": "item-height", + "attr": "placement", "reflectToAttr": false, - "docs": "Determines the height of list items.\nThis can either be one of two predefined sizes ('S' or 'L') or an absolute pixel value.\nIn case a number is supplied it will get converted to rem internally.\nDefaults to 'S'.", + "docs": "Placement of the dropdown", "docsTags": [], - "default": "'S'", + "default": "'bottom-start'", "values": [ { - "value": "L", + "value": "bottom-end", "type": "string" }, { - "value": "S", + "value": "bottom-start", "type": "string" }, { - "type": "number" + "value": "left-end", + "type": "string" + }, + { + "value": "left-start", + "type": "string" + }, + { + "value": "right-end", + "type": "string" + }, + { + "value": "right-start", + "type": "string" + }, + { + "value": "top-end", + "type": "string" + }, + { + "value": "top-start", + "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/event-list-item", - "filePath": "src/components/event-list-item/event-list-item.tsx", - "fileName": "event-list-item.tsx", - "readmePath": "src/components/event-list-item/readme.md", - "usagesDir": "src/components/event-list-item/usage", - "tag": "ix-event-list-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [ + }, { - "name": "chevron", - "type": "boolean", + "name": "positioningStrategy", + "type": "\"absolute\" | \"fixed\"", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "'absolute' | 'fixed'", + "resolved": "\"absolute\" | \"fixed\"", "references": {} }, "mutable": false, - "attr": "chevron", + "attr": "positioning-strategy", "reflectToAttr": false, - "docs": "Show chevron on right side of the event list item", + "docs": "Position strategy", "docsTags": [], - "default": "false", + "default": "'fixed'", "values": [ { - "type": "boolean" - } - ], - "optional": false, - "required": false - }, - { - "name": "color", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "color", - "reflectToAttr": false, - "docs": "Color of the status indicator.\nYou can find a list of all available colors in our documentation.\nExample values are `--theme-color-alarm` or `color-alarm`", - "docsTags": [ - { - "name": "link", - "text": "https://ix.siemens.io/docs/theming/colors/" + "value": "absolute", + "type": "string" }, { - "name": "deprecated", - "text": "since 2.1.0 use `item-color`" - } - ], - "deprecation": "since 2.1.0 use `item-color`", - "values": [ - { + "value": "fixed", "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "disabled", + "name": "show", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "disabled", - "reflectToAttr": false, - "docs": "Disable event list item", + "mutable": true, + "attr": "show", + "reflectToAttr": true, + "docs": "Show dropdown", "docsTags": [], "default": "false", "values": [ @@ -6528,68 +6635,103 @@ "required": false }, { - "name": "itemColor", - "type": "string", + "name": "suppressAutomaticPlacement", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "item-color", + "attr": "suppress-automatic-placement", "reflectToAttr": false, - "docs": "Color of the status indicator.\nYou can find a list of all available colors in our documentation.\nExample values are `--theme-color-alarm` or `color-alarm`", + "docs": "Suppress the automatic placement of the dropdown.", "docsTags": [ { - "name": "link", - "text": "https://ix.siemens.io/docs/theming/colors/" + "name": "since", + "text": "2.0.0" } ], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "selected", - "type": "boolean", + "name": "trigger", + "type": "HTMLElement | Promise | string", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "ElementReference", + "resolved": "HTMLElement | Promise | string", + "references": { + "ElementReference": { + "location": "import", + "path": "src/components/utils/element-reference", + "id": "src/components/utils/element-reference.ts::ElementReference" + } + } }, "mutable": false, - "attr": "selected", + "attr": "trigger", "reflectToAttr": false, - "docs": "Show event list item as selected", + "docs": "Define an element that triggers the dropdown.\nA trigger can either be a string that will be interpreted as id attribute or a DOM element.", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "HTMLElement" + }, + { + "type": "Promise" + }, + { + "type": "string" } ], - "optional": false, + "optional": true, "required": false } ], - "methods": [], + "methods": [ + { + "name": "updatePosition", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "updatePosition() => Promise", + "parameters": [], + "docs": "Update position of dropdown", + "docsTags": [] + } + ], "events": [ { - "event": "itemClick", - "detail": "any", + "event": "showChanged", + "detail": "boolean", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", + "original": "boolean", + "resolved": "boolean", "references": {} }, "cancelable": true, "composed": true, - "docs": "Event list item click", + "docs": "Fire event after visibility of dropdown has changed", "docsTags": [] } ], @@ -6598,31 +6740,44 @@ "parts": [], "listeners": [ { - "event": "click", + "event": "ix-assign-sub-menu", "capture": false, - "passive": true + "passive": false } ] }, { - "dirPath": "src/components/expanding-search", - "filePath": "src/components/expanding-search/expanding-search.tsx", - "fileName": "expanding-search.tsx", - "readmePath": "src/components/expanding-search/readme.md", - "usagesDir": "src/components/expanding-search/usage", - "tag": "ix-expanding-search", + "dirPath": "src/components/dropdown-button", + "filePath": "src/components/dropdown-button/dropdown-button.tsx", + "fileName": "dropdown-button.tsx", + "readmePath": "src/components/dropdown-button/readme.md", + "usagesDir": "src/components/dropdown-button/usage", + "tag": "ix-dropdown-button", + "readme": "# ix-dropdown-button\n\n\n", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "1.3.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-icon-button" + "ix-button", + "ix-icon-button", + "ix-dropdown" ], "dependencyGraph": { - "ix-expanding-search": [ - "ix-icon-button" + "ix-dropdown-button": [ + "ix-button", + "ix-icon-button", + "ix-dropdown" + ], + "ix-button": [ + "ix-spinner" ], "ix-icon-button": [ "ix-spinner" @@ -6630,25 +6785,37 @@ }, "props": [ { - "name": "fullWidth", - "type": "boolean", + "name": "closeBehavior", + "type": "\"both\" | \"inside\" | \"outside\" | boolean", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "'inside' | 'outside' | 'both' | boolean", + "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", "references": {} }, "mutable": false, - "attr": "full-width", + "attr": "close-behavior", "reflectToAttr": false, - "docs": "If true the search field will fill all available horizontal space of it's parent container when expanded.", + "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.", "docsTags": [ { "name": "since", - "text": "1.6.0" + "text": "2.1.0" } ], - "default": "false", + "default": "'both'", "values": [ + { + "value": "both", + "type": "string" + }, + { + "value": "inside", + "type": "string" + }, + { + "value": "outside", + "type": "string" + }, { "type": "boolean" } @@ -6657,152 +6824,93 @@ "required": false }, { - "name": "icon", - "type": "string", + "name": "disabled", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "disabled", "reflectToAttr": false, - "docs": "Search icon", + "docs": "Disable button", "docsTags": [], - "default": "'search'", + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "placeholder", - "type": "string", + "name": "ghost", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "placeholder", + "attr": "ghost", "reflectToAttr": false, - "docs": "Placeholder text", + "docs": "Button with no background or outline", "docsTags": [], - "default": "'Enter text here'", + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "value", + "name": "icon", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": true, - "attr": "value", + "mutable": false, + "attr": "icon", "reflectToAttr": false, - "docs": "Default value", + "docs": "Button icon", "docsTags": [], - "default": "''", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "valueChange", - "detail": "string", - "bubbles": true, + "name": "label", + "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Value changed", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/filter-chip", - "filePath": "src/components/filter-chip/filter-chip.tsx", - "fileName": "filter-chip.tsx", - "readmePath": "src/components/filter-chip/readme.md", - "usagesDir": "src/components/filter-chip/usage", - "tag": "ix-filter-chip", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-category-filter", - "ix-select" - ], - "dependencies": [ - "ix-icon-button" - ], - "dependencyGraph": { - "ix-filter-chip": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-category-filter": [ - "ix-filter-chip" - ], - "ix-select": [ - "ix-filter-chip" - ] - }, - "props": [ - { - "name": "disabled", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, "mutable": false, - "attr": "disabled", + "attr": "label", "reflectToAttr": false, - "docs": "If true the filter chip will be in disabled state", + "docs": "Set label", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "readonly", + "name": "outline", "type": "boolean", "complexType": { "original": "boolean", @@ -6810,15 +6918,10 @@ "references": {} }, "mutable": false, - "attr": "readonly", + "attr": "outline", "reflectToAttr": false, - "docs": "If true the filter chip will be in readonly mode", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], + "docs": "Outline button", + "docsTags": [], "default": "false", "values": [ { @@ -6827,151 +6930,100 @@ ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "closeClick", - "detail": "void", - "bubbles": true, - "complexType": { - "original": "void", - "resolved": "void", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Close clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/flip-tile", - "filePath": "src/components/flip-tile/flip-tile.tsx", - "fileName": "flip-tile.tsx", - "readmePath": "src/components/flip-tile/readme.md", - "usagesDir": "src/components/flip-tile/usage", - "tag": "ix-flip-tile", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-icon-button" - ], - "dependencyGraph": { - "ix-flip-tile": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + }, { - "name": "height", - "type": "\"auto\" | number", + "name": "placement", + "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", "complexType": { - "original": "number | 'auto'", - "resolved": "\"auto\" | number", - "references": {} + "original": "AlignedPlacement", + "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", + "references": { + "AlignedPlacement": { + "location": "import", + "path": "../dropdown/placement", + "id": "src/components/dropdown/placement.ts::AlignedPlacement" + } + } }, "mutable": false, - "attr": "height", + "attr": "placement", "reflectToAttr": false, - "docs": "Height interpreted as REM", + "docs": "Placement of the dropdown", "docsTags": [ { "name": "since", - "text": "1.5.0" + "text": "2.0.0" } ], - "default": "15.125", "values": [ { - "value": "auto", + "value": "bottom-end", "type": "string" }, { - "type": "number" - } - ], - "optional": false, - "required": false - }, - { - "name": "state", - "type": "FlipTileState.Alarm | FlipTileState.Info | FlipTileState.None | FlipTileState.Primary | FlipTileState.Warning", - "complexType": { - "original": "FlipTileState", - "resolved": "FlipTileState.Alarm | FlipTileState.Info | FlipTileState.None | FlipTileState.Primary | FlipTileState.Warning", - "references": { - "FlipTileState": { - "location": "import", - "path": "flip-tile-state", - "id": "src/components/flip-tile/flip-tile-state.ts::FlipTileState" - } - } - }, - "mutable": false, - "attr": "state", - "reflectToAttr": false, - "docs": "Variation of the Flip", - "docsTags": [], - "values": [ + "value": "bottom-start", + "type": "string" + }, { - "type": "FlipTileState.Alarm" + "value": "left-end", + "type": "string" }, { - "type": "FlipTileState.Info" + "value": "left-start", + "type": "string" }, { - "type": "FlipTileState.None" + "value": "right-end", + "type": "string" }, { - "type": "FlipTileState.Primary" + "value": "right-start", + "type": "string" }, { - "type": "FlipTileState.Warning" + "value": "top-end", + "type": "string" + }, + { + "value": "top-start", + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "width", - "type": "\"auto\" | number", + "name": "variant", + "type": "\"danger\" | \"primary\" | \"secondary\"", "complexType": { - "original": "number | 'auto'", - "resolved": "\"auto\" | number", - "references": {} + "original": "DropdownButtonVariant", + "resolved": "\"danger\" | \"primary\" | \"secondary\"", + "references": { + "DropdownButtonVariant": { + "location": "local", + "path": "src/components/dropdown-button/dropdown-button.tsx", + "id": "src/components/dropdown-button/dropdown-button.tsx::DropdownButtonVariant" + } + } }, "mutable": false, - "attr": "width", + "attr": "variant", "reflectToAttr": false, - "docs": "Width interpreted as REM", - "docsTags": [ - { - "name": "since", - "text": "1.5.0" - } - ], - "default": "16", + "docs": "Button variant", + "docsTags": [], + "default": "'primary'", "values": [ { - "value": "auto", + "value": "danger", "type": "string" }, { - "type": "number" + "value": "primary", + "type": "string" + }, + { + "value": "secondary", + "type": "string" } ], "optional": false, @@ -6986,43 +7038,31 @@ "listeners": [] }, { - "dirPath": "src/components/flip-tile-content", - "filePath": "src/components/flip-tile-content/flip-tile-content.tsx", - "fileName": "flip-tile-content.tsx", - "readmePath": "src/components/flip-tile-content/readme.md", - "usagesDir": "src/components/flip-tile-content/usage", - "tag": "ix-flip-tile-content", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/form-field", - "filePath": "src/components/form-field/form-field.tsx", - "fileName": "form-field.tsx", - "readmePath": "src/components/form-field/readme.md", - "usagesDir": "src/components/form-field/usage", - "tag": "ix-form-field", + "dirPath": "src/components/dropdown-header", + "filePath": "src/components/dropdown-header/dropdown-header.tsx", + "fileName": "dropdown-header.tsx", + "readmePath": "src/components/dropdown-header/readme.md", + "usagesDir": "src/components/dropdown-header/usage", + "tag": "ix-dropdown-header", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], "encapsulation": "shadow", "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependencies": [ + "ix-typography" + ], + "dependencyGraph": { + "ix-dropdown-header": [ + "ix-typography" + ] + }, "props": [ { "name": "label", @@ -7035,7 +7075,7 @@ "mutable": false, "attr": "label", "reflectToAttr": false, - "docs": "Label", + "docs": "Display name of the header", "docsTags": [], "values": [ { @@ -7054,49 +7094,65 @@ "listeners": [] }, { - "dirPath": "src/components/group", - "filePath": "src/components/group/group.tsx", - "fileName": "group.tsx", - "readmePath": "src/components/group/readme.md", - "usagesDir": "src/components/group/usage", - "tag": "ix-group", + "dirPath": "src/components/dropdown-item", + "filePath": "src/components/dropdown-item/dropdown-item.tsx", + "fileName": "dropdown-item.tsx", + "readmePath": "src/components/dropdown-item/readme.md", + "usagesDir": "src/components/dropdown-item/usage", + "tag": "ix-dropdown-item", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-group-context-menu", - "ix-group-item" + "dependents": [ + "ix-breadcrumb", + "ix-date-dropdown", + "ix-menu-avatar-item", + "ix-menu-category", + "ix-select", + "ix-select-item", + "ix-split-button-item" ], + "dependencies": [], "dependencyGraph": { - "ix-group": [ - "ix-group-context-menu", - "ix-group-item" + "ix-breadcrumb": [ + "ix-dropdown-item" ], - "ix-group-context-menu": [ - "ix-icon-button" + "ix-date-dropdown": [ + "ix-dropdown-item" ], - "ix-icon-button": [ - "ix-spinner" + "ix-menu-avatar-item": [ + "ix-dropdown-item" + ], + "ix-menu-category": [ + "ix-dropdown-item" + ], + "ix-select": [ + "ix-dropdown-item" + ], + "ix-select-item": [ + "ix-dropdown-item" + ], + "ix-split-button-item": [ + "ix-dropdown-item" ] }, "props": [ { - "name": "collapsed", + "name": "checked", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "collapsed", - "reflectToAttr": true, - "docs": "Whether the group is collapsed or expanded. Defaults to true.", + "mutable": false, + "attr": "checked", + "reflectToAttr": false, + "docs": "Whether the item is checked or not. If true a checkmark will mark the item as checked.", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -7106,7 +7162,7 @@ "required": false }, { - "name": "expandOnHeaderClick", + "name": "disabled", "type": "boolean", "complexType": { "original": "boolean", @@ -7114,9 +7170,9 @@ "references": {} }, "mutable": false, - "attr": "expand-on-header-click", + "attr": "disabled", "reflectToAttr": false, - "docs": "Expand the group if the header is clicked", + "docs": "Disable item and remove event listeners", "docsTags": [], "default": "false", "values": [ @@ -7128,59 +7184,17 @@ "required": false }, { - "name": "header", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "header", - "reflectToAttr": false, - "docs": "Group header", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": true, - "required": false - }, - { - "name": "index", - "type": "number", - "complexType": { - "original": "number", - "resolved": "number", - "references": {} - }, - "mutable": true, - "attr": "index", - "reflectToAttr": true, - "docs": "The index of the selected group entry.\nIf undefined no group item is selected.", - "docsTags": [], - "values": [ - { - "type": "number" - } - ], - "optional": true, - "required": false - }, - { - "name": "selected", + "name": "hover", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "selected", - "reflectToAttr": true, - "docs": "Whether the group is selected.", + "mutable": false, + "attr": "hover", + "reflectToAttr": false, + "docs": "Display hover state", "docsTags": [], "default": "false", "values": [ @@ -7192,7 +7206,7 @@ "required": false }, { - "name": "subHeader", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -7200,9 +7214,9 @@ "references": {} }, "mutable": false, - "attr": "sub-header", + "attr": "icon", "reflectToAttr": false, - "docs": "Group header subtitle", + "docs": "Icon of dropdown item", "docsTags": [], "values": [ { @@ -7213,113 +7227,77 @@ "required": false }, { - "name": "suppressHeaderSelection", - "type": "boolean", + "name": "label", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "suppress-header-selection", + "attr": "label", "reflectToAttr": false, - "docs": "Prevent header from being selectable", + "docs": "Label of dropdown item", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false } ], - "methods": [], - "events": [ - { - "event": "collapsedChanged", - "detail": "boolean", - "bubbles": true, - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Group collapsed", - "docsTags": [] - }, + "methods": [ { - "event": "selectGroup", - "detail": "boolean", - "bubbles": true, - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "name": "emitItemClick", + "returns": { + "type": "Promise", + "docs": "" }, - "cancelable": true, - "composed": true, - "docs": "Emits when whole group gets selected.", - "docsTags": [] - }, - { - "event": "selectItem", - "detail": "number", - "bubbles": true, "complexType": { - "original": "number", - "resolved": "number", - "references": {} + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" }, - "cancelable": true, - "composed": true, - "docs": "Emits when group item gets selected.", + "signature": "emitItemClick() => Promise", + "parameters": [], + "docs": "Internal usage only", "docsTags": [] } ], + "events": [], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "selectedChanged", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { - "dirPath": "src/components/group", - "filePath": "src/components/group/group-context-menu.tsx", - "fileName": "group-context-menu.tsx", - "readmePath": "src/components/group/readme.md", - "usagesDir": "src/components/group/usage", - "tag": "ix-group-context-menu", + "dirPath": "src/components/dropdown-quick-actions", + "filePath": "src/components/dropdown-quick-actions/dropdown-quick-actions.tsx", + "fileName": "dropdown-quick-actions.tsx", + "readmePath": "src/components/dropdown-quick-actions/readme.md", + "usagesDir": "src/components/dropdown-quick-actions/usage", + "tag": "ix-dropdown-quick-actions", "overview": "", "usage": {}, "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-group" - ], - "dependencies": [ - "ix-icon-button" + "docsTags": [ + { + "name": "since", + "text": "1.4.0" + } ], - "dependencyGraph": { - "ix-group-context-menu": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-group": [ - "ix-group-context-menu" - ] - }, + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, "props": [], "methods": [], "events": [], @@ -7329,49 +7307,79 @@ "listeners": [] }, { - "dirPath": "src/components/group-item", - "filePath": "src/components/group-item/group-item.tsx", - "fileName": "group-item.tsx", - "readmePath": "src/components/group-item/readme.md", - "usagesDir": "src/components/group-item/usage", - "tag": "ix-group-item", + "dirPath": "src/components/empty-state", + "filePath": "src/components/empty-state/empty-state.tsx", + "fileName": "empty-state.tsx", + "readmePath": "src/components/empty-state/readme.md", + "usagesDir": "src/components/empty-state/usage", + "tag": "ix-empty-state", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "1.6.0" + } + ], "encapsulation": "shadow", - "dependents": [ - "ix-group" + "dependents": [], + "dependencies": [ + "ix-typography", + "ix-button" ], - "dependencies": [], "dependencyGraph": { - "ix-group": [ - "ix-group-item" + "ix-empty-state": [ + "ix-typography", + "ix-button" + ], + "ix-button": [ + "ix-spinner" ] }, "props": [ { - "name": "focusable", - "type": "boolean", + "name": "action", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "focusable", + "attr": "action", "reflectToAttr": false, - "docs": "The elements tabindex attribute will get set accordingly.\nIf true tabindex will be 0, -1 otherwise.", + "docs": "Optional empty state action", "docsTags": [], - "default": "true", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, + { + "name": "header", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "header", + "reflectToAttr": false, + "docs": "Empty state header", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": true + }, { "name": "icon", "type": "string", @@ -7383,39 +7391,55 @@ "mutable": false, "attr": "icon", "reflectToAttr": false, - "docs": "Group item icon", + "docs": "Optional empty state icon", "docsTags": [], "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "index", - "type": "number", + "name": "layout", + "type": "\"compact\" | \"compactBreak\" | \"large\"", "complexType": { - "original": "number", - "resolved": "number", - "references": {} + "original": "EmptyStateLayout", + "resolved": "\"compact\" | \"compactBreak\" | \"large\"", + "references": { + "EmptyStateLayout": { + "location": "local", + "path": "src/components/empty-state/empty-state.tsx", + "id": "src/components/empty-state/empty-state.tsx::EmptyStateLayout" + } + } }, "mutable": false, - "attr": "index", + "attr": "layout", "reflectToAttr": false, - "docs": "Index", + "docs": "Optional empty state layout - one of 'large', 'compact' or 'compactBreak'", "docsTags": [], + "default": "'large'", "values": [ { - "type": "number" + "value": "compact", + "type": "string" + }, + { + "value": "compactBreak", + "type": "string" + }, + { + "value": "large", + "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "secondaryText", + "name": "subHeader", "type": "string", "complexType": { "original": "string", @@ -7423,20 +7447,81 @@ "references": {} }, "mutable": false, - "attr": "secondary-text", + "attr": "sub-header", "reflectToAttr": false, - "docs": "Group item secondary text", + "docs": "Optional empty state sub header", "docsTags": [], "values": [ { "type": "string" } ], - "optional": true, + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "actionClick", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Empty state action click event", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/event-list", + "filePath": "src/components/event-list/event-list.tsx", + "fileName": "event-list.tsx", + "readmePath": "src/components/event-list/readme.md", + "usagesDir": "src/components/event-list/usage", + "tag": "ix-event-list", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "animated", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "animated", + "reflectToAttr": false, + "docs": "Animate state change transitions. Defaults to 'true'.", + "docsTags": [], + "default": "true", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, "required": false }, { - "name": "selected", + "name": "chevron", "type": "boolean", "complexType": { "original": "boolean", @@ -7444,9 +7529,9 @@ "references": {} }, "mutable": false, - "attr": "selected", + "attr": "chevron", "reflectToAttr": false, - "docs": "Show selected state", + "docs": "Display a chevron icon in list items. Defaults to 'false'", "docsTags": [], "default": "false", "values": [ @@ -7458,7 +7543,7 @@ "required": false }, { - "name": "suppressSelection", + "name": "compact", "type": "boolean", "complexType": { "original": "boolean", @@ -7466,9 +7551,9 @@ "references": {} }, "mutable": false, - "attr": "suppress-selection", + "attr": "compact", "reflectToAttr": false, - "docs": "Supress the selection of the group", + "docs": "Make event-list items more compact", "docsTags": [], "default": "false", "values": [ @@ -7480,46 +7565,197 @@ "required": false }, { - "name": "text", - "type": "string", + "name": "itemHeight", + "type": "\"L\" | \"S\" | number", "complexType": { - "original": "string", - "resolved": "string", + "original": "'S' | 'L' | number", + "resolved": "\"L\" | \"S\" | number", "references": {} }, "mutable": false, - "attr": "text", + "attr": "item-height", "reflectToAttr": false, - "docs": "Group item text", + "docs": "Determines the height of list items.\nThis can either be one of two predefined sizes ('S' or 'L') or an absolute pixel value.\nIn case a number is supplied it will get converted to rem internally.\nDefaults to 'S'.", "docsTags": [], + "default": "'S'", "values": [ { + "value": "L", + "type": "string" + }, + { + "value": "S", "type": "string" + }, + { + "type": "number" } ], - "optional": true, + "optional": false, "required": false } ], "methods": [], - "events": [ - { - "event": "selectedChanged", - "detail": "HTMLIxGroupItemElement", - "bubbles": true, - "complexType": { - "original": "HTMLIxGroupItemElement", - "resolved": "HTMLIxGroupItemElement", - "references": { - "HTMLIxGroupItemElement": { - "location": "global", - "id": "global::HTMLIxGroupItemElement" - } + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/event-list-item", + "filePath": "src/components/event-list-item/event-list-item.tsx", + "fileName": "event-list-item.tsx", + "readmePath": "src/components/event-list-item/readme.md", + "usagesDir": "src/components/event-list-item/usage", + "tag": "ix-event-list-item", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "chevron", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "chevron", + "reflectToAttr": false, + "docs": "Show chevron on right side of the event list item", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "color", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "color", + "reflectToAttr": false, + "docs": "Color of the status indicator.\nYou can find a list of all available colors in our documentation.\nExample values are `--theme-color-alarm` or `color-alarm`", + "docsTags": [ + { + "name": "link", + "text": "https://ix.siemens.io/docs/theming/colors/" + }, + { + "name": "deprecated", + "text": "since 2.1.0 use `item-color`" + } + ], + "deprecation": "since 2.1.0 use `item-color`", + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disable event list item", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "itemColor", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "item-color", + "reflectToAttr": false, + "docs": "Color of the status indicator.\nYou can find a list of all available colors in our documentation.\nExample values are `--theme-color-alarm` or `color-alarm`", + "docsTags": [ + { + "name": "link", + "text": "https://ix.siemens.io/docs/theming/colors/" + } + ], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "selected", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "selected", + "reflectToAttr": false, + "docs": "Show event list item as selected", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "itemClick", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} }, "cancelable": true, "composed": true, - "docs": "Selection changed", + "docs": "Event list item click", "docsTags": [] } ], @@ -7535,142 +7771,3365 @@ ] }, { - "dirPath": "src/components/icon-button", - "filePath": "src/components/icon-button/icon-button.tsx", - "fileName": "icon-button.tsx", - "readmePath": "src/components/icon-button/readme.md", - "usagesDir": "src/components/icon-button/usage", - "tag": "ix-icon-button", + "dirPath": "src/components/expanding-search", + "filePath": "src/components/expanding-search/expanding-search.tsx", + "fileName": "expanding-search.tsx", + "readmePath": "src/components/expanding-search/readme.md", + "usagesDir": "src/components/expanding-search/usage", + "tag": "ix-expanding-search", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", - "dependents": [ - "ix-application-header", - "ix-card-list", - "ix-category-filter", - "ix-chip", - "ix-content-header", - "ix-date-picker", - "ix-drawer", - "ix-dropdown-button", - "ix-expanding-search", - "ix-filter-chip", - "ix-flip-tile", - "ix-group-context-menu", - "ix-map-navigation", - "ix-map-navigation-overlay", - "ix-menu", - "ix-menu-about", - "ix-menu-about-news", - "ix-menu-expand-icon", - "ix-menu-settings", - "ix-message-bar", - "ix-modal-example", - "ix-modal-header", - "ix-pagination", - "ix-pane", - "ix-select", - "ix-split-button", - "ix-time-picker", - "ix-toast" - ], + "dependents": [], "dependencies": [ - "ix-spinner" + "ix-icon-button" ], "dependencyGraph": { - "ix-icon-button": [ - "ix-spinner" - ], - "ix-application-header": [ - "ix-icon-button" - ], - "ix-card-list": [ - "ix-icon-button" - ], - "ix-category-filter": [ - "ix-icon-button" - ], - "ix-chip": [ - "ix-icon-button" - ], - "ix-content-header": [ - "ix-icon-button" - ], - "ix-date-picker": [ - "ix-icon-button" - ], - "ix-drawer": [ - "ix-icon-button" - ], - "ix-dropdown-button": [ - "ix-icon-button" - ], "ix-expanding-search": [ "ix-icon-button" ], - "ix-filter-chip": [ - "ix-icon-button" - ], - "ix-flip-tile": [ - "ix-icon-button" - ], - "ix-group-context-menu": [ - "ix-icon-button" - ], - "ix-map-navigation": [ - "ix-icon-button" - ], - "ix-map-navigation-overlay": [ - "ix-icon-button" - ], - "ix-menu": [ - "ix-icon-button" - ], - "ix-menu-about": [ - "ix-icon-button" - ], - "ix-menu-about-news": [ - "ix-icon-button" - ], - "ix-menu-expand-icon": [ - "ix-icon-button" - ], - "ix-menu-settings": [ - "ix-icon-button" - ], - "ix-message-bar": [ - "ix-icon-button" - ], - "ix-modal-example": [ - "ix-icon-button" + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "fullWidth", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "full-width", + "reflectToAttr": false, + "docs": "If true the search field will fill all available horizontal space of it's parent container when expanded.", + "docsTags": [ + { + "name": "since", + "text": "1.6.0" + } + ], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "icon", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Search icon", + "docsTags": [], + "default": "'search'", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "placeholder", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "placeholder", + "reflectToAttr": false, + "docs": "Placeholder text", + "docsTags": [], + "default": "'Enter text here'", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "value", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": true, + "attr": "value", + "reflectToAttr": false, + "docs": "Default value", + "docsTags": [], + "default": "''", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "valueChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Value changed", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/field-label", + "filePath": "src/components/field-label/field-label.tsx", + "fileName": "field-label.tsx", + "readmePath": "src/components/field-label/readme.md", + "usagesDir": "src/components/field-label/usage", + "tag": "ix-field-label", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-field-wrapper" + ], + "dependencies": [ + "ix-typography" + ], + "dependencyGraph": { + "ix-field-label": [ + "ix-typography" ], - "ix-modal-header": [ + "ix-field-wrapper": [ + "ix-field-label" + ] + }, + "props": [ + { + "name": "htmlFor", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "html-for", + "reflectToAttr": true, + "docs": "The id of the form element that the label is associated with", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "required", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": true, + "attr": "required", + "reflectToAttr": true, + "docs": "A value is required or must be checked for the form to be submittable", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": true, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/filter-chip", + "filePath": "src/components/filter-chip/filter-chip.tsx", + "fileName": "filter-chip.tsx", + "readmePath": "src/components/filter-chip/readme.md", + "usagesDir": "src/components/filter-chip/usage", + "tag": "ix-filter-chip", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-category-filter", + "ix-select" + ], + "dependencies": [ + "ix-icon-button" + ], + "dependencyGraph": { + "ix-filter-chip": [ "ix-icon-button" ], - "ix-pagination": [ - "ix-icon-button" + "ix-icon-button": [ + "ix-spinner" ], - "ix-pane": [ - "ix-icon-button" + "ix-category-filter": [ + "ix-filter-chip" ], "ix-select": [ + "ix-filter-chip" + ] + }, + "props": [ + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "If true the filter chip will be in disabled state", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "readonly", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "readonly", + "reflectToAttr": false, + "docs": "If true the filter chip will be in readonly mode", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "closeClick", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Close clicked", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/flip-tile", + "filePath": "src/components/flip-tile/flip-tile.tsx", + "fileName": "flip-tile.tsx", + "readmePath": "src/components/flip-tile/readme.md", + "usagesDir": "src/components/flip-tile/usage", + "tag": "ix-flip-tile", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-icon-button" + ], + "dependencyGraph": { + "ix-flip-tile": [ + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "height", + "type": "\"auto\" | number", + "complexType": { + "original": "number | 'auto'", + "resolved": "\"auto\" | number", + "references": {} + }, + "mutable": false, + "attr": "height", + "reflectToAttr": false, + "docs": "Height interpreted as REM", + "docsTags": [ + { + "name": "since", + "text": "1.5.0" + } + ], + "default": "15.125", + "values": [ + { + "value": "auto", + "type": "string" + }, + { + "type": "number" + } + ], + "optional": false, + "required": false + }, + { + "name": "state", + "type": "FlipTileState.Alarm | FlipTileState.Info | FlipTileState.None | FlipTileState.Primary | FlipTileState.Warning", + "complexType": { + "original": "FlipTileState", + "resolved": "FlipTileState.Alarm | FlipTileState.Info | FlipTileState.None | FlipTileState.Primary | FlipTileState.Warning", + "references": { + "FlipTileState": { + "location": "import", + "path": "flip-tile-state", + "id": "src/components/flip-tile/flip-tile-state.ts::FlipTileState" + } + } + }, + "mutable": false, + "attr": "state", + "reflectToAttr": false, + "docs": "Variation of the Flip", + "docsTags": [], + "values": [ + { + "type": "FlipTileState.Alarm" + }, + { + "type": "FlipTileState.Info" + }, + { + "type": "FlipTileState.None" + }, + { + "type": "FlipTileState.Primary" + }, + { + "type": "FlipTileState.Warning" + } + ], + "optional": false, + "required": false + }, + { + "name": "width", + "type": "\"auto\" | number", + "complexType": { + "original": "number | 'auto'", + "resolved": "\"auto\" | number", + "references": {} + }, + "mutable": false, + "attr": "width", + "reflectToAttr": false, + "docs": "Width interpreted as REM", + "docsTags": [ + { + "name": "since", + "text": "1.5.0" + } + ], + "default": "16", + "values": [ + { + "value": "auto", + "type": "string" + }, + { + "type": "number" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/flip-tile-content", + "filePath": "src/components/flip-tile-content/flip-tile-content.tsx", + "fileName": "flip-tile-content.tsx", + "readmePath": "src/components/flip-tile-content/readme.md", + "usagesDir": "src/components/flip-tile-content/usage", + "tag": "ix-flip-tile-content", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/group", + "filePath": "src/components/group/group.tsx", + "fileName": "group.tsx", + "readmePath": "src/components/group/readme.md", + "usagesDir": "src/components/group/usage", + "tag": "ix-group", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-group-context-menu", + "ix-group-item" + ], + "dependencyGraph": { + "ix-group": [ + "ix-group-context-menu", + "ix-group-item" + ], + "ix-group-context-menu": [ + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "collapsed", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": true, + "attr": "collapsed", + "reflectToAttr": true, + "docs": "Whether the group is collapsed or expanded. Defaults to true.", + "docsTags": [], + "default": "true", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "expandOnHeaderClick", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "expand-on-header-click", + "reflectToAttr": false, + "docs": "Expand the group if the header is clicked", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "header", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "header", + "reflectToAttr": false, + "docs": "Group header", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "index", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": true, + "attr": "index", + "reflectToAttr": true, + "docs": "The index of the selected group entry.\nIf undefined no group item is selected.", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, + "required": false + }, + { + "name": "selected", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": true, + "attr": "selected", + "reflectToAttr": true, + "docs": "Whether the group is selected.", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "subHeader", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "sub-header", + "reflectToAttr": false, + "docs": "Group header subtitle", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "suppressHeaderSelection", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "suppress-header-selection", + "reflectToAttr": false, + "docs": "Prevent header from being selectable", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "collapsedChanged", + "detail": "boolean", + "bubbles": true, + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Group collapsed", + "docsTags": [] + }, + { + "event": "selectGroup", + "detail": "boolean", + "bubbles": true, + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Emits when whole group gets selected.", + "docsTags": [] + }, + { + "event": "selectItem", + "detail": "number", + "bubbles": true, + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Emits when group item gets selected.", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [ + { + "event": "selectedChanged", + "capture": false, + "passive": false + } + ] + }, + { + "dirPath": "src/components/group", + "filePath": "src/components/group/group-context-menu.tsx", + "fileName": "group-context-menu.tsx", + "readmePath": "src/components/group/readme.md", + "usagesDir": "src/components/group/usage", + "tag": "ix-group-context-menu", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-group" + ], + "dependencies": [ + "ix-icon-button" + ], + "dependencyGraph": { + "ix-group-context-menu": [ + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-group": [ + "ix-group-context-menu" + ] + }, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/group-item", + "filePath": "src/components/group-item/group-item.tsx", + "fileName": "group-item.tsx", + "readmePath": "src/components/group-item/readme.md", + "usagesDir": "src/components/group-item/usage", + "tag": "ix-group-item", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-group" + ], + "dependencies": [], + "dependencyGraph": { + "ix-group": [ + "ix-group-item" + ] + }, + "props": [ + { + "name": "focusable", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "focusable", + "reflectToAttr": false, + "docs": "The elements tabindex attribute will get set accordingly.\nIf true tabindex will be 0, -1 otherwise.", + "docsTags": [], + "default": "true", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "icon", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Group item icon", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "index", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "index", + "reflectToAttr": false, + "docs": "Index", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, + "required": false + }, + { + "name": "secondaryText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "secondary-text", + "reflectToAttr": false, + "docs": "Group item secondary text", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "selected", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "selected", + "reflectToAttr": false, + "docs": "Show selected state", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "suppressSelection", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "suppress-selection", + "reflectToAttr": false, + "docs": "Supress the selection of the group", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "text", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "text", + "reflectToAttr": false, + "docs": "Group item text", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "selectedChanged", + "detail": "HTMLIxGroupItemElement", + "bubbles": true, + "complexType": { + "original": "HTMLIxGroupItemElement", + "resolved": "HTMLIxGroupItemElement", + "references": { + "HTMLIxGroupItemElement": { + "location": "global", + "id": "global::HTMLIxGroupItemElement" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Selection changed", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [ + { + "event": "click", + "capture": false, + "passive": true + } + ] + }, + { + "dirPath": "src/components/helper-text", + "filePath": "src/components/helper-text/helper-text.tsx", + "fileName": "helper-text.tsx", + "readmePath": "src/components/helper-text/readme.md", + "usagesDir": "src/components/helper-text/usage", + "tag": "ix-helper-text", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-typography" + ], + "dependencyGraph": { + "ix-helper-text": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "helperText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "helper-text", + "reflectToAttr": false, + "docs": "Show text below the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "htmlFor", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "html-for", + "reflectToAttr": false, + "docs": "The id of the form element that the label is associated with", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "infoText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "info-text", + "reflectToAttr": false, + "docs": "Info text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "invalidText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "invalid-text", + "reflectToAttr": false, + "docs": "Error text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "validText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "valid-text", + "reflectToAttr": false, + "docs": "Valid text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "warningText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "Warning text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/icon-button", + "filePath": "src/components/icon-button/icon-button.tsx", + "fileName": "icon-button.tsx", + "readmePath": "src/components/icon-button/readme.md", + "usagesDir": "src/components/icon-button/usage", + "tag": "ix-icon-button", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-application-header", + "ix-card-list", + "ix-category-filter", + "ix-chip", + "ix-content-header", + "ix-date-input", + "ix-date-picker", + "ix-drawer", + "ix-dropdown-button", + "ix-expanding-search", + "ix-filter-chip", + "ix-flip-tile", + "ix-group-context-menu", + "ix-input", + "ix-map-navigation", + "ix-map-navigation-overlay", + "ix-menu", + "ix-menu-about", + "ix-menu-about-news", + "ix-menu-expand-icon", + "ix-menu-settings", + "ix-message-bar", + "ix-modal-example", + "ix-modal-header", + "ix-number-input", + "ix-pagination", + "ix-pane", + "ix-select", + "ix-split-button", + "ix-time-picker", + "ix-toast" + ], + "dependencies": [ + "ix-spinner" + ], + "dependencyGraph": { + "ix-icon-button": [ + "ix-spinner" + ], + "ix-application-header": [ + "ix-icon-button" + ], + "ix-card-list": [ + "ix-icon-button" + ], + "ix-category-filter": [ + "ix-icon-button" + ], + "ix-chip": [ + "ix-icon-button" + ], + "ix-content-header": [ + "ix-icon-button" + ], + "ix-date-input": [ + "ix-icon-button" + ], + "ix-date-picker": [ + "ix-icon-button" + ], + "ix-drawer": [ + "ix-icon-button" + ], + "ix-dropdown-button": [ + "ix-icon-button" + ], + "ix-expanding-search": [ + "ix-icon-button" + ], + "ix-filter-chip": [ + "ix-icon-button" + ], + "ix-flip-tile": [ + "ix-icon-button" + ], + "ix-group-context-menu": [ + "ix-icon-button" + ], + "ix-input": [ + "ix-icon-button" + ], + "ix-map-navigation": [ + "ix-icon-button" + ], + "ix-map-navigation-overlay": [ + "ix-icon-button" + ], + "ix-menu": [ + "ix-icon-button" + ], + "ix-menu-about": [ + "ix-icon-button" + ], + "ix-menu-about-news": [ + "ix-icon-button" + ], + "ix-menu-expand-icon": [ + "ix-icon-button" + ], + "ix-menu-settings": [ + "ix-icon-button" + ], + "ix-message-bar": [ + "ix-icon-button" + ], + "ix-modal-example": [ + "ix-icon-button" + ], + "ix-modal-header": [ + "ix-icon-button" + ], + "ix-number-input": [ + "ix-icon-button" + ], + "ix-pagination": [ + "ix-icon-button" + ], + "ix-pane": [ + "ix-icon-button" + ], + "ix-select": [ + "ix-icon-button" + ], + "ix-split-button": [ + "ix-icon-button" + ], + "ix-time-picker": [ + "ix-icon-button" + ], + "ix-toast": [ + "ix-icon-button" + ] + }, + "props": [ + { + "name": "a11yLabel", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "a11y-label", + "reflectToAttr": false, + "docs": "Accessibility label for the icon button\nWill be set as aria-label on the nested HTML button element", + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "color", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "color", + "reflectToAttr": false, + "docs": "Color of icon in button", + "docsTags": [ + { + "name": "deprecated", + "text": "since 2.1.0 use `icon-color`" + } + ], + "deprecation": "since 2.1.0 use `icon-color`", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disabled", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "ghost", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "ghost", + "reflectToAttr": false, + "docs": "Button invisible", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "icon", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Icon name", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "iconColor", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon-color", + "reflectToAttr": false, + "docs": "Color of icon in button", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "loading", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "loading", + "reflectToAttr": false, + "docs": "Loading button", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "outline", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "outline", + "reflectToAttr": false, + "docs": "Button outline", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "oval", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "oval", + "reflectToAttr": false, + "docs": "Button in oval shape", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "size", + "type": "\"12\" | \"16\" | \"24\" | \"32\"", + "complexType": { + "original": "'32' | '24' | '16' | '12'", + "resolved": "\"12\" | \"16\" | \"24\" | \"32\"", + "references": {} + }, + "mutable": false, + "attr": "size", + "reflectToAttr": false, + "docs": "Size of icon in button", + "docsTags": [ + { + "name": "deprecated", + "text": "Only size 32 will be removed in 3.0.0" + } + ], + "default": "'24'", + "deprecation": "Only size 32 will be removed in 3.0.0", + "values": [ + { + "value": "12", + "type": "string" + }, + { + "value": "16", + "type": "string" + }, + { + "value": "24", + "type": "string" + }, + { + "value": "32", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "type", + "type": "\"button\" | \"submit\"", + "complexType": { + "original": "'button' | 'submit'", + "resolved": "\"button\" | \"submit\"", + "references": {} + }, + "mutable": false, + "attr": "type", + "reflectToAttr": false, + "docs": "Type of the button", + "docsTags": [], + "default": "'button'", + "values": [ + { + "value": "button", + "type": "string" + }, + { + "value": "submit", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "variant", + "type": "\"danger\" | \"primary\" | \"secondary\"", + "complexType": { + "original": "IconButtonVariant", + "resolved": "\"danger\" | \"primary\" | \"secondary\"", + "references": { + "IconButtonVariant": { + "location": "local", + "path": "src/components/icon-button/icon-button.tsx", + "id": "src/components/icon-button/icon-button.tsx::IconButtonVariant" + } + } + }, + "mutable": false, + "attr": "variant", + "reflectToAttr": false, + "docs": "Variant of button", + "docsTags": [ + { + "name": "since", + "text": "2.3.0 - variant danger" + } + ], + "default": "'secondary'", + "values": [ + { + "value": "danger", + "type": "string" + }, + { + "value": "primary", + "type": "string" + }, + { + "value": "secondary", + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/icon-toggle-button", + "filePath": "src/components/icon-toggle-button/icon-toggle-button.tsx", + "fileName": "icon-toggle-button.tsx", + "readmePath": "src/components/icon-toggle-button/readme.md", + "usagesDir": "src/components/icon-toggle-button/usage", + "tag": "ix-icon-toggle-button", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-spinner" + ], + "dependencyGraph": { + "ix-icon-toggle-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": true, + "docs": "Disable the button", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "ghost", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "ghost", + "reflectToAttr": false, + "docs": "Button with no background or outline", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "icon", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Icon name", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "loading", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "loading", + "reflectToAttr": false, + "docs": "Loading button", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "outline", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "outline", + "reflectToAttr": false, + "docs": "Outline button", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "pressed", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "pressed", + "reflectToAttr": false, + "docs": "Show button as pressed", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "size", + "type": "\"12\" | \"16\" | \"24\"", + "complexType": { + "original": "'24' | '16' | '12'", + "resolved": "\"12\" | \"16\" | \"24\"", + "references": {} + }, + "mutable": false, + "attr": "size", + "reflectToAttr": false, + "docs": "Size of icon in button", + "docsTags": [], + "default": "'24'", + "values": [ + { + "value": "12", + "type": "string" + }, + { + "value": "16", + "type": "string" + }, + { + "value": "24", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "variant", + "type": "\"danger\" | \"primary\" | \"secondary\"", + "complexType": { + "original": "ButtonVariant", + "resolved": "\"danger\" | \"primary\" | \"secondary\"", + "references": { + "ButtonVariant": { + "location": "import", + "path": "../button/button", + "id": "src/components/button/button.tsx::ButtonVariant" + } + } + }, + "mutable": false, + "attr": "variant", + "reflectToAttr": false, + "docs": "Button variant.\nImportant: Variant 'primary' can only be combined with either outline or ghost.", + "docsTags": [], + "default": "'secondary'", + "values": [ + { + "value": "danger", + "type": "string" + }, + { + "value": "primary", + "type": "string" + }, + { + "value": "secondary", + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "pressedChange", + "detail": "boolean", + "bubbles": true, + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Pressed change event", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/input", + "filePath": "src/components/input/input.tsx", + "fileName": "input.tsx", + "readmePath": "src/components/input/readme.md", + "usagesDir": "src/components/input/usage", + "tag": "ix-input", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-field-wrapper", + "ix-icon-button", + "ix-typography" + ], + "dependencyGraph": { + "ix-input": [ + "ix-field-wrapper", + "ix-icon-button", + "ix-typography" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "allowedCharactersPattern", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "allowed-characters-pattern", + "reflectToAttr": false, + "docs": "The allowed characters pattern for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": true, + "docs": "Specifies whether the text field is disabled.", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "helperText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "helper-text", + "reflectToAttr": false, + "docs": "The helper text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "infoText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "info-text", + "reflectToAttr": false, + "docs": "The info text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "invalidText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "invalid-text", + "reflectToAttr": false, + "docs": "The error text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "label", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "label", + "reflectToAttr": true, + "docs": "The label for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "maxLength", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "max-length", + "reflectToAttr": false, + "docs": "The maximum length of the text field.", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, + "required": false + }, + { + "name": "minLength", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "min-length", + "reflectToAttr": false, + "docs": "The minimum length of the text field.", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, + "required": false + }, + { + "name": "name", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "name", + "reflectToAttr": true, + "docs": "The name of the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "pattern", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "pattern", + "reflectToAttr": false, + "docs": "The pattern for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "placeholder", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "placeholder", + "reflectToAttr": true, + "docs": "The placeholder text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "readonly", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "readonly", + "reflectToAttr": true, + "docs": "Specifies whether the text field is readonly.", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "required", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "required", + "reflectToAttr": true, + "docs": "Specifies whether the text field is required.", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "showTextAsTooltip", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "show-text-as-tooltip", + "reflectToAttr": false, + "docs": "Specifies whether to show the text as a tooltip.", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": true, + "required": false + }, + { + "name": "type", + "type": "\"email\" | \"password\" | \"tel\" | \"text\" | \"url\"", + "complexType": { + "original": "'text' | 'email' | 'password' | 'tel' | 'url'", + "resolved": "\"email\" | \"password\" | \"tel\" | \"text\" | \"url\"", + "references": {} + }, + "mutable": false, + "attr": "type", + "reflectToAttr": false, + "docs": "The type of the text field. Possible values are 'text', 'email', or 'password'.", + "docsTags": [], + "default": "'text'", + "values": [ + { + "value": "email", + "type": "string" + }, + { + "value": "password", + "type": "string" + }, + { + "value": "tel", + "type": "string" + }, + { + "value": "text", + "type": "string" + }, + { + "value": "url", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "validText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "valid-text", + "reflectToAttr": false, + "docs": "The valid text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "value", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": true, + "attr": "value", + "reflectToAttr": true, + "docs": "The value of the text field.", + "docsTags": [], + "default": "''", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "warningText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "The warning text for the text field.", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + } + ], + "methods": [ + { + "name": "focusInput", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "focusInput() => Promise", + "parameters": [], + "docs": "Focuses the input field", + "docsTags": [] + }, + { + "name": "getNativeInputElement", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLInputElement": { + "location": "global", + "id": "global::HTMLInputElement" + } + }, + "return": "Promise" + }, + "signature": "getNativeInputElement() => Promise", + "parameters": [], + "docs": "Returns the native input element used in the text field.", + "docsTags": [] + } + ], + "events": [ + { + "event": "ixBlur", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the text field loses focus.", + "docsTags": [] + }, + { + "event": "validityStateChange", + "detail": "ValidityState", + "bubbles": true, + "complexType": { + "original": "ValidityState", + "resolved": "ValidityState", + "references": { + "ValidityState": { + "location": "global", + "id": "global::ValidityState" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the validity state of the text field changes.", + "docsTags": [] + }, + { + "event": "valueChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the value of the text field changes.", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/input-group", + "filePath": "src/components/input-group/input-group.tsx", + "fileName": "input-group.tsx", + "readmePath": "src/components/input-group/readme.md", + "usagesDir": "src/components/input-group/usage", + "tag": "ix-input-group", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/key-value", + "filePath": "src/components/key-value/key-value.tsx", + "fileName": "key-value.tsx", + "readmePath": "src/components/key-value/readme.md", + "usagesDir": "src/components/key-value/usage", + "tag": "ix-key-value", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "slot", + "text": "custom-value - Optional custom value at key value instead of text value" + }, + { + "name": "since", + "text": "1.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "icon", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Optional key value icon", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "label", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Key value label", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": true + }, + { + "name": "labelPosition", + "type": "\"left\" | \"top\"", + "complexType": { + "original": "KeyValueLabelPosition", + "resolved": "\"left\" | \"top\"", + "references": { + "KeyValueLabelPosition": { + "location": "local", + "path": "src/components/key-value/key-value.tsx", + "id": "src/components/key-value/key-value.tsx::KeyValueLabelPosition" + } + } + }, + "mutable": false, + "attr": "label-position", + "reflectToAttr": false, + "docs": "Optional key value label position - 'top' or 'left'", + "docsTags": [], + "default": "'top'", + "values": [ + { + "value": "left", + "type": "string" + }, + { + "value": "top", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "value", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "value", + "reflectToAttr": false, + "docs": "Optional key value text value", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [ + { + "name": "custom-value", + "docs": "Optional custom value at key value instead of text value" + } + ], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/key-value-list", + "filePath": "src/components/key-value-list/key-value-list.tsx", + "fileName": "key-value-list.tsx", + "readmePath": "src/components/key-value-list/readme.md", + "usagesDir": "src/components/key-value-list/usage", + "tag": "ix-key-value-list", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "1.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "striped", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "striped", + "reflectToAttr": false, + "docs": "Optional striped key value list style", + "docsTags": [], + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/kpi", + "filePath": "src/components/kpi/kpi.tsx", + "fileName": "kpi.tsx", + "readmePath": "src/components/kpi/readme.md", + "usagesDir": "src/components/kpi/usage", + "tag": "ix-kpi", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "label", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "orientation", + "type": "\"horizontal\" | \"vertical\"", + "complexType": { + "original": "'horizontal' | 'vertical'", + "resolved": "\"horizontal\" | \"vertical\"", + "references": {} + }, + "mutable": false, + "attr": "orientation", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "default": "'horizontal'", + "values": [ + { + "value": "horizontal", + "type": "string" + }, + { + "value": "vertical", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "state", + "type": "\"alarm\" | \"neutral\" | \"warning\"", + "complexType": { + "original": "'neutral' | 'warning' | 'alarm'", + "resolved": "\"alarm\" | \"neutral\" | \"warning\"", + "references": {} + }, + "mutable": false, + "attr": "state", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "default": "'neutral'", + "values": [ + { + "value": "alarm", + "type": "string" + }, + { + "value": "neutral", + "type": "string" + }, + { + "value": "warning", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "unit", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "unit", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "value", + "type": "number | string", + "complexType": { + "original": "string | number", + "resolved": "number | string", + "references": {} + }, + "mutable": false, + "attr": "value", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "values": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/layout-auto", + "filePath": "src/components/layout-auto/layout-auto.tsx", + "fileName": "layout-auto.tsx", + "readmePath": "src/components/layout-auto/readme.md", + "usagesDir": "src/components/layout-auto/usage", + "tag": "ix-layout-auto", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "layout", + "type": "{ minWidth: string; columns: number; }[]", + "complexType": { + "original": "{\n minWidth: string;\n columns: number;\n }[]", + "resolved": "{ minWidth: string; columns: number; }[]", + "references": {} + }, + "mutable": false, + "reflectToAttr": false, + "docs": "Defines the layout of the form.", + "docsTags": [], + "default": "[\n { minWidth: '0', columns: 1 },\n { minWidth: '48em', columns: 2 },\n ]", + "values": [ + { + "type": "{ minWidth: string; columns: number; }[]" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/layout-grid", + "filePath": "src/components/layout-grid/layout-grid.tsx", + "fileName": "layout-grid.tsx", + "readmePath": "src/components/layout-grid/readme.md", + "usagesDir": "src/components/layout-grid/usage", + "tag": "ix-layout-grid", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [ + "ix-date-dropdown", + "ix-datetime-picker" + ], + "dependencies": [], + "dependencyGraph": { + "ix-date-dropdown": [ + "ix-layout-grid" + ], + "ix-datetime-picker": [ + "ix-layout-grid" + ] + }, + "props": [ + { + "name": "columns", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "columns", + "reflectToAttr": false, + "docs": "Overwrite the default number of columns. Choose between 2 and 12 columns.", + "docsTags": [], + "default": "12", + "values": [ + { + "type": "number" + } + ], + "optional": false, + "required": false + }, + { + "name": "gap", + "type": "\"12\" | \"16\" | \"24\" | \"8\"", + "complexType": { + "original": "'8' | '12' | '16' | '24'", + "resolved": "\"12\" | \"16\" | \"24\" | \"8\"", + "references": {} + }, + "mutable": false, + "attr": "gap", + "reflectToAttr": false, + "docs": "Grid gap", + "docsTags": [], + "default": "'24'", + "values": [ + { + "value": "12", + "type": "string" + }, + { + "value": "16", + "type": "string" + }, + { + "value": "24", + "type": "string" + }, + { + "value": "8", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "noMargin", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "no-margin", + "reflectToAttr": false, + "docs": "The grid will not have any horizontal padding", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/link-button", + "filePath": "src/components/link-button/link-button.tsx", + "fileName": "link-button.tsx", + "readmePath": "src/components/link-button/readme.md", + "usagesDir": "src/components/link-button/usage", + "tag": "ix-link-button", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disable the link button", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "target", + "type": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"", + "complexType": { + "original": "'_self' | '_blank' | '_parent' | '_top'", + "resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"", + "references": {} + }, + "mutable": false, + "attr": "target", + "reflectToAttr": false, + "docs": "Specifies where to open the link\n\nhttps://www.w3schools.com/html/html_links.asp", + "docsTags": [], + "default": "'_self'", + "values": [ + { + "value": "_blank", + "type": "string" + }, + { + "value": "_parent", + "type": "string" + }, + { + "value": "_self", + "type": "string" + }, + { + "value": "_top", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "url", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "url", + "reflectToAttr": false, + "docs": "Url for the link button", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/map-navigation", + "filePath": "src/components/map-navigation/map-navigation.tsx", + "fileName": "map-navigation.tsx", + "readmePath": "src/components/map-navigation/readme.md", + "usagesDir": "src/components/map-navigation/usage", + "tag": "ix-map-navigation", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-map-navigation-overlay", + "ix-application-header", + "ix-icon-button" + ], + "dependencyGraph": { + "ix-map-navigation": [ + "ix-map-navigation-overlay", + "ix-application-header", + "ix-icon-button" + ], + "ix-map-navigation-overlay": [ + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-application-header": [ + "ix-menu-expand-icon", + "ix-icon-button", + "ix-typography", + "ix-dropdown" + ], + "ix-menu-expand-icon": [ + "ix-icon-button", + "ix-spinner" + ] + }, + "props": [ + { + "name": "applicationName", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "application-name", + "reflectToAttr": false, + "docs": "Application name", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "hideContextMenu", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "hide-context-menu", + "reflectToAttr": false, + "docs": "Hide the sidebar context menu button when set to true", + "docsTags": [], + "default": "true", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "navigationTitle", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "navigation-title", + "reflectToAttr": false, + "docs": "Navigation title", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [ + { + "name": "closeOverlay", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "closeOverlay() => Promise", + "parameters": [], + "docs": "Close current shown overlay", + "docsTags": [ + { + "name": "deprecated", + "text": "Will be removed in 2.0.0. Use slot based approach" + } + ], + "deprecation": "Will be removed in 2.0.0. Use slot based approach" + }, + { + "name": "openOverlay", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(name: string, component: HTMLElement, icon?: string, color?: string) => Promise", + "parameters": [ + { + "name": "name", + "type": "string", + "docs": "" + }, + { + "name": "component", + "type": "HTMLElement", + "docs": "" + }, + { + "name": "icon", + "type": "string", + "docs": "" + }, + { + "name": "color", + "type": "string", + "docs": "" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLElement": { + "location": "global", + "id": "global::HTMLElement" + } + }, + "return": "Promise" + }, + "signature": "openOverlay(name: string, component: HTMLElement, icon?: string, color?: string) => Promise", + "parameters": [ + { + "name": "name", + "type": "string", + "docs": "" + }, + { + "name": "component", + "type": "HTMLElement", + "docs": "" + }, + { + "name": "icon", + "type": "string", + "docs": "" + }, + { + "name": "color", + "type": "string", + "docs": "" + } + ], + "docs": "Open a overlay inside content area", + "docsTags": [ + { + "name": "deprecated", + "text": "Will be removed in 2.0.0. Use slot based approach" + }, + { + "name": "param", + "text": "name" + }, + { + "name": "param", + "text": "component" + }, + { + "name": "param", + "text": "icon" + }, + { + "name": "param", + "text": "color" + } + ], + "deprecation": "Will be removed in 2.0.0. Use slot based approach" + }, + { + "name": "toggleSidebar", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "new visibility state" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "toggleSidebar(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "new visibility state" + } + ], + "docs": "Change the visibility of the sidebar", + "docsTags": [ + { + "name": "param", + "text": "show new visibility state" + }, + { + "name": "since", + "text": "1.6.0" + } + ] + } + ], + "events": [ + { + "event": "contextMenuClick", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Context menu clicked", + "docsTags": [] + }, + { + "event": "navigationToggled", + "detail": "boolean", + "bubbles": true, + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Navigation toggled", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/map-navigation-overlay", + "filePath": "src/components/map-navigation-overlay/map-navigation-overlay.tsx", + "fileName": "map-navigation-overlay.tsx", + "readmePath": "src/components/map-navigation-overlay/readme.md", + "usagesDir": "src/components/map-navigation-overlay/usage", + "tag": "ix-map-navigation-overlay", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-map-navigation" + ], + "dependencies": [ + "ix-icon-button" + ], + "dependencyGraph": { + "ix-map-navigation-overlay": [ "ix-icon-button" ], - "ix-split-button": [ - "ix-icon-button" - ], - "ix-time-picker": [ - "ix-icon-button" + "ix-icon-button": [ + "ix-spinner" ], - "ix-toast": [ - "ix-icon-button" + "ix-map-navigation": [ + "ix-map-navigation-overlay" ] }, "props": [ { - "name": "a11yLabel", + "name": "color", "type": "string", "complexType": { "original": "string", @@ -7678,15 +11137,16 @@ "references": {} }, "mutable": false, - "attr": "a11y-label", + "attr": "color", "reflectToAttr": false, - "docs": "Accessibility label for the icon button\nWill be set as aria-label on the nested HTML button element", + "docs": "Color of icon", "docsTags": [ { - "name": "since", - "text": "2.1.0" + "name": "deprecated", + "text": "since 2.1.0. Use `icon-color`" } ], + "deprecation": "since 2.1.0. Use `icon-color`", "values": [ { "type": "string" @@ -7696,7 +11156,7 @@ "required": false }, { - "name": "color", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -7704,16 +11164,10 @@ "references": {} }, "mutable": false, - "attr": "color", + "attr": "icon", "reflectToAttr": false, - "docs": "Color of icon in button", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.1.0 use `icon-color`" - } - ], - "deprecation": "since 2.1.0 use `icon-color`", + "docs": "Icon of overlay", + "docsTags": [], "values": [ { "type": "string" @@ -7723,50 +11177,111 @@ "required": false }, { - "name": "disabled", - "type": "boolean", + "name": "iconColor", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "icon-color", "reflectToAttr": false, - "docs": "Disabled", + "docs": "Color of icon", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "ghost", - "type": "boolean", + "name": "name", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "ghost", + "attr": "name", "reflectToAttr": false, - "docs": "Button invisible", + "docs": "Title of overlay", "docsTags": [], "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "icon", + "event": "closeClick", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event closed", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/menu", + "filePath": "src/components/menu/menu.tsx", + "fileName": "menu.tsx", + "readmePath": "src/components/menu/readme.md", + "usagesDir": "src/components/menu/usage", + "tag": "ix-menu", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-menu-expand-icon", + "ix-icon-button", + "ix-menu-item" + ], + "dependencyGraph": { + "ix-menu": [ + "ix-menu-expand-icon", + "ix-icon-button", + "ix-menu-item" + ], + "ix-menu-expand-icon": [ + "ix-icon-button", + "ix-spinner" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-menu-item": [ + "ix-tooltip" + ], + "ix-tooltip": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "applicationDescription", "type": "string", "complexType": { "original": "string", @@ -7774,10 +11289,11 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "application-description", "reflectToAttr": false, - "docs": "Icon name", + "docs": "Should only be set if you use ix-menu standalone", "docsTags": [], + "default": "''", "values": [ { "type": "string" @@ -7787,7 +11303,7 @@ "required": false }, { - "name": "iconColor", + "name": "applicationName", "type": "string", "complexType": { "original": "string", @@ -7795,20 +11311,20 @@ "references": {} }, "mutable": false, - "attr": "icon-color", + "attr": "application-name", "reflectToAttr": false, - "docs": "Color of icon in button", + "docs": "Should only be set if you use ix-menu standalone", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "loading", + "name": "enableMapExpand", "type": "boolean", "complexType": { "original": "boolean", @@ -7816,15 +11332,10 @@ "references": {} }, "mutable": false, - "attr": "loading", + "attr": "enable-map-expand", "reflectToAttr": false, - "docs": "Loading button", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], + "docs": "Internal", + "docsTags": [], "default": "false", "values": [ { @@ -7835,7 +11346,7 @@ "required": false }, { - "name": "outline", + "name": "enableSettings", "type": "boolean", "complexType": { "original": "boolean", @@ -7843,10 +11354,11 @@ "references": {} }, "mutable": false, - "attr": "outline", + "attr": "enable-settings", "reflectToAttr": false, - "docs": "Button outline", + "docs": "Is settings tab is visible", "docsTags": [], + "default": "true", "values": [ { "type": "boolean" @@ -7856,7 +11368,7 @@ "required": false }, { - "name": "oval", + "name": "enableToggleTheme", "type": "boolean", "complexType": { "original": "boolean", @@ -7864,10 +11376,11 @@ "references": {} }, "mutable": false, - "attr": "oval", + "attr": "enable-toggle-theme", "reflectToAttr": false, - "docs": "Button in oval shape", + "docs": "Show toggle between light and dark variant. Only if the provided theme have implemented both!", "docsTags": [], + "default": "false", "values": [ { "type": "boolean" @@ -7877,40 +11390,65 @@ "required": false }, { - "name": "size", - "type": "\"12\" | \"16\" | \"24\" | \"32\"", + "name": "expand", + "type": "boolean", "complexType": { - "original": "'32' | '24' | '16' | '12'", - "resolved": "\"12\" | \"16\" | \"24\" | \"32\"", + "original": "boolean", + "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "size", - "reflectToAttr": false, - "docs": "Size of icon in button", - "docsTags": [ + "mutable": true, + "attr": "expand", + "reflectToAttr": true, + "docs": "Toggle the expand state of the menu", + "docsTags": [], + "default": "false", + "values": [ { - "name": "deprecated", - "text": "Only size 32 will be removed in 3.0.0" + "type": "boolean" } ], - "default": "'24'", - "deprecation": "Only size 32 will be removed in 3.0.0", + "optional": false, + "required": false + }, + { + "name": "i18nCollapse", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "i-1-8n-collapse", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "default": "'Collapse'", "values": [ { - "value": "12", - "type": "string" - }, - { - "value": "16", - "type": "string" - }, - { - "value": "24", "type": "string" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "i18nExpand", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "i-1-8n-expand", + "reflectToAttr": false, + "docs": "", + "docsTags": [], + "default": "' Expand'", + "values": [ { - "value": "32", "type": "string" } ], @@ -7918,26 +11456,21 @@ "required": false }, { - "name": "type", - "type": "\"button\" | \"submit\"", + "name": "i18nExpandSidebar", + "type": "string", "complexType": { - "original": "'button' | 'submit'", - "resolved": "\"button\" | \"submit\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "type", + "attr": "i-1-8n-expand-sidebar", "reflectToAttr": false, - "docs": "Type of the button", + "docs": "Accessibility i18n label for the burger menu of the sidebar", "docsTags": [], - "default": "'button'", + "default": "'Expand sidebar'", "values": [ { - "value": "button", - "type": "string" - }, - { - "value": "submit", "type": "string" } ], @@ -7945,149 +11478,101 @@ "required": false }, { - "name": "variant", - "type": "\"danger\" | \"primary\" | \"secondary\"", + "name": "i18nLegal", + "type": "string", "complexType": { - "original": "IconButtonVariant", - "resolved": "\"danger\" | \"primary\" | \"secondary\"", - "references": { - "IconButtonVariant": { - "location": "local", - "path": "src/components/icon-button/icon-button.tsx", - "id": "src/components/icon-button/icon-button.tsx::IconButtonVariant" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "mutable": false, - "attr": "variant", + "attr": "i-1-8n-legal", "reflectToAttr": false, - "docs": "Variant of button", - "docsTags": [ - { - "name": "since", - "text": "2.3.0 - variant danger" - } - ], - "default": "'secondary'", + "docs": "", + "docsTags": [], + "default": "'About & legal information'", "values": [ { - "value": "danger", - "type": "string" - }, - { - "value": "primary", - "type": "string" - }, - { - "value": "secondary", "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/icon-toggle-button", - "filePath": "src/components/icon-toggle-button/icon-toggle-button.tsx", - "fileName": "icon-toggle-button.tsx", - "readmePath": "src/components/icon-toggle-button/readme.md", - "usagesDir": "src/components/icon-toggle-button/usage", - "tag": "ix-icon-toggle-button", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-spinner" - ], - "dependencyGraph": { - "ix-icon-toggle-button": [ - "ix-spinner" - ] - }, - "props": [ + }, { - "name": "disabled", - "type": "boolean", + "name": "i18nSettings", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "disabled", - "reflectToAttr": true, - "docs": "Disable the button", + "attr": "i-1-8n-settings", + "reflectToAttr": false, + "docs": "", "docsTags": [], - "default": "false", + "default": "'Settings'", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "ghost", - "type": "boolean", + "name": "i18nToggleTheme", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "ghost", + "attr": "i-1-8n-toggle-theme", "reflectToAttr": false, - "docs": "Button with no background or outline", + "docs": "", "docsTags": [], - "default": "false", + "default": "'Toggle theme'", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "icon", - "type": "string", + "name": "maxVisibleMenuItems", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "max-visible-menu-items", "reflectToAttr": false, - "docs": "Icon name", - "docsTags": [], + "docs": "Maximum number of menu items to show in case enough vertical space is available.\nExtra menu items will be collapsed to 'show more' menu item.", + "docsTags": [ + { + "name": "deprecated", + "text": "- Has no effect on component. Will get removed with next major release (v3)" + } + ], + "default": "9", + "deprecation": "- Has no effect on component. Will get removed with next major release (v3)", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "loading", + "name": "pinned", "type": "boolean", "complexType": { "original": "boolean", @@ -8095,9 +11580,9 @@ "references": {} }, "mutable": false, - "attr": "loading", + "attr": "pinned", "reflectToAttr": false, - "docs": "Loading button", + "docs": "Menu stays pinned to the left", "docsTags": [], "default": "false", "values": [ @@ -8109,17 +11594,17 @@ "required": false }, { - "name": "outline", + "name": "showAbout", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "outline", + "mutable": true, + "attr": "show-about", "reflectToAttr": false, - "docs": "Outline button", + "docs": "Is about tab visible", "docsTags": [], "default": "false", "values": [ @@ -8131,17 +11616,17 @@ "required": false }, { - "name": "pressed", + "name": "showSettings", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "pressed", + "mutable": true, + "attr": "show-settings", "reflectToAttr": false, - "docs": "Show button as pressed", + "docs": "Is settings tab visible", "docsTags": [], "default": "false", "values": [ @@ -8153,78 +11638,194 @@ "required": false }, { - "name": "size", - "type": "\"12\" | \"16\" | \"24\"", + "name": "startExpanded", + "type": "boolean", "complexType": { - "original": "'24' | '16' | '12'", - "resolved": "\"12\" | \"16\" | \"24\"", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "size", + "attr": "start-expanded", "reflectToAttr": false, - "docs": "Size of icon in button", - "docsTags": [], - "default": "'24'", + "docs": "If set the menu will be expanded initially. This will only take effect at the breakpoint 'lg'.", + "docsTags": [ + { + "name": "since", + "text": "2.2.0" + } + ], + "default": "false", "values": [ { - "value": "12", - "type": "string" + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [ + { + "name": "toggleAbout", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(show: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } }, + "return": "Promise" + }, + "signature": "toggleAbout(show: boolean) => Promise", + "parameters": [ { - "value": "16", - "type": "string" + "name": "show", + "type": "boolean", + "docs": "" + } + ], + "docs": "Toggle About tabs", + "docsTags": [ + { + "name": "param", + "text": "show" + } + ] + }, + { + "name": "toggleMapExpand", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } }, + "return": "Promise" + }, + "signature": "toggleMapExpand(show?: boolean) => Promise", + "parameters": [ { - "value": "24", - "type": "string" + "name": "show", + "type": "boolean", + "docs": "" } ], - "optional": false, - "required": false + "docs": "Toggle map sidebar expand", + "docsTags": [ + { + "name": "param", + "text": "show" + } + ] }, { - "name": "variant", - "type": "\"danger\" | \"primary\" | \"secondary\"", + "name": "toggleMenu", + "returns": { + "type": "Promise", + "docs": "" + }, "complexType": { - "original": "ButtonVariant", - "resolved": "\"danger\" | \"primary\" | \"secondary\"", + "signature": "(show?: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "" + } + ], "references": { - "ButtonVariant": { - "location": "import", - "path": "../button/button", - "id": "src/components/button/button.tsx::ButtonVariant" + "Promise": { + "location": "global", + "id": "global::Promise" } - } + }, + "return": "Promise" }, - "mutable": false, - "attr": "variant", - "reflectToAttr": false, - "docs": "Button variant.\nImportant: Variant 'primary' can only be combined with either outline or ghost.", - "docsTags": [], - "default": "'secondary'", - "values": [ + "signature": "toggleMenu(show?: boolean) => Promise", + "parameters": [ { - "value": "danger", - "type": "string" - }, + "name": "show", + "type": "boolean", + "docs": "" + } + ], + "docs": "Toggle menu", + "docsTags": [ { - "value": "primary", - "type": "string" + "name": "param", + "text": "show" + } + ] + }, + { + "name": "toggleSettings", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(show: boolean) => Promise", + "parameters": [ + { + "name": "show", + "type": "boolean", + "docs": "" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } }, + "return": "Promise" + }, + "signature": "toggleSettings(show: boolean) => Promise", + "parameters": [ { - "value": "secondary", - "type": "string" + "name": "show", + "type": "boolean", + "docs": "" } ], - "optional": false, - "required": false + "docs": "Toggle Settings tabs", + "docsTags": [ + { + "name": "param", + "text": "show" + } + ] } ], - "methods": [], "events": [ { - "event": "pressedChange", + "event": "expandChange", "detail": "boolean", "bubbles": true, "complexType": { @@ -8234,75 +11835,82 @@ }, "cancelable": true, "composed": true, - "docs": "Pressed change event", + "docs": "Menu expanded", + "docsTags": [] + }, + { + "event": "mapExpandChange", + "detail": "boolean", + "bubbles": true, + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Map Sidebar expanded", "docsTags": [] } ], "styles": [], "slots": [], "parts": [], - "listeners": [] + "listeners": [ + { + "event": "resize", + "target": "window", + "capture": false, + "passive": true + }, + { + "event": "close", + "capture": false, + "passive": false + } + ] }, { - "dirPath": "src/components/input-group", - "filePath": "src/components/input-group/input-group.tsx", - "fileName": "input-group.tsx", - "readmePath": "src/components/input-group/readme.md", - "usagesDir": "src/components/input-group/usage", - "tag": "ix-input-group", + "dirPath": "src/components/menu-about", + "filePath": "src/components/menu-about/menu-about.tsx", + "fileName": "menu-about.tsx", + "readmePath": "src/components/menu-about/readme.md", + "usagesDir": "src/components/menu-about/usage", + "tag": "ix-menu-about", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/key-value", - "filePath": "src/components/key-value/key-value.tsx", - "fileName": "key-value.tsx", - "readmePath": "src/components/key-value/readme.md", - "usagesDir": "src/components/key-value/usage", - "tag": "ix-key-value", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "slot", - "text": "custom-value - Optional custom value at key value instead of text value" - }, - { - "name": "since", - "text": "1.6.0" - } + "dependencies": [ + "ix-tab-item", + "ix-icon-button", + "ix-tabs" ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependencyGraph": { + "ix-menu-about": [ + "ix-tab-item", + "ix-icon-button", + "ix-tabs" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, "props": [ { - "name": "icon", + "name": "activeTabLabel", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": false, - "attr": "icon", + "mutable": true, + "attr": "active-tab-label", "reflectToAttr": false, - "docs": "Optional key value icon", + "docs": "Active tab", "docsTags": [], "values": [ { @@ -8323,65 +11931,34 @@ "mutable": false, "attr": "label", "reflectToAttr": false, - "docs": "Key value label", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": true - }, - { - "name": "labelPosition", - "type": "\"left\" | \"top\"", - "complexType": { - "original": "KeyValueLabelPosition", - "resolved": "\"left\" | \"top\"", - "references": { - "KeyValueLabelPosition": { - "location": "local", - "path": "src/components/key-value/key-value.tsx", - "id": "src/components/key-value/key-value.tsx::KeyValueLabelPosition" - } - } - }, - "mutable": false, - "attr": "label-position", - "reflectToAttr": false, - "docs": "Optional key value label position - 'top' or 'left'", + "docs": "Content of the header", "docsTags": [], - "default": "'top'", + "default": "'About & legal information'", "values": [ { - "value": "left", - "type": "string" - }, - { - "value": "top", "type": "string" } ], "optional": false, "required": false }, - { - "name": "value", - "type": "string", + { + "name": "show", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "value", + "attr": "show", "reflectToAttr": false, - "docs": "Optional key value text value", + "docs": "Internal", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, @@ -8389,54 +11966,65 @@ } ], "methods": [], - "events": [], - "styles": [], - "slots": [ + "events": [ { - "name": "custom-value", - "docs": "Optional custom value at key value instead of text value" + "event": "close", + "detail": "CustomCloseEvent", + "bubbles": true, + "complexType": { + "original": "CustomCloseEvent", + "resolved": "CustomCloseEvent", + "references": { + "CustomCloseEvent": { + "location": "import", + "path": "../utils/menu-tabs/menu-tabs-utils", + "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomCloseEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "About and Legal closed", + "docsTags": [] } ], + "styles": [], + "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/key-value-list", - "filePath": "src/components/key-value-list/key-value-list.tsx", - "fileName": "key-value-list.tsx", - "readmePath": "src/components/key-value-list/readme.md", - "usagesDir": "src/components/key-value-list/usage", - "tag": "ix-key-value-list", + "dirPath": "src/components/menu-about-item", + "filePath": "src/components/menu-about-item/menu-about-item.tsx", + "fileName": "menu-about-item.tsx", + "readmePath": "src/components/menu-about-item/readme.md", + "usagesDir": "src/components/menu-about-item/usage", + "tag": "ix-menu-about-item", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "1.6.0" - } - ], + "docsTags": [], "encapsulation": "shadow", "dependents": [], "dependencies": [], "dependencyGraph": {}, "props": [ { - "name": "striped", - "type": "boolean", + "name": "label", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "striped", - "reflectToAttr": false, - "docs": "Optional striped key value list style", + "attr": "label", + "reflectToAttr": true, + "docs": "About Item label", "docsTags": [], "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, @@ -8444,30 +12032,67 @@ } ], "methods": [], - "events": [], + "events": [ + { + "event": "labelChange", + "detail": "CustomLabelChangeEvent", + "bubbles": true, + "complexType": { + "original": "CustomLabelChangeEvent", + "resolved": "CustomLabelChangeEvent", + "references": { + "CustomLabelChangeEvent": { + "location": "import", + "path": "../utils/menu-tabs/menu-tabs-utils", + "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomLabelChangeEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Label changed", + "docsTags": [] + } + ], "styles": [], "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/kpi", - "filePath": "src/components/kpi/kpi.tsx", - "fileName": "kpi.tsx", - "readmePath": "src/components/kpi/readme.md", - "usagesDir": "src/components/kpi/usage", - "tag": "ix-kpi", + "dirPath": "src/components/menu-about-news", + "filePath": "src/components/menu-about-news/menu-about-news.tsx", + "fileName": "menu-about-news.tsx", + "readmePath": "src/components/menu-about-news/readme.md", + "usagesDir": "src/components/menu-about-news/usage", + "tag": "ix-menu-about-news", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependencies": [ + "ix-typography", + "ix-icon-button", + "ix-button" + ], + "dependencyGraph": { + "ix-menu-about-news": [ + "ix-typography", + "ix-icon-button", + "ix-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-button": [ + "ix-spinner" + ] + }, "props": [ { - "name": "label", + "name": "aboutItemLabel", "type": "string", "complexType": { "original": "string", @@ -8475,9 +12100,9 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "about-item-label", "reflectToAttr": false, - "docs": "", + "docs": "Subtitle of the about news", "docsTags": [], "values": [ { @@ -8488,57 +12113,43 @@ "required": false }, { - "name": "orientation", - "type": "\"horizontal\" | \"vertical\"", + "name": "expanded", + "type": "boolean", "complexType": { - "original": "'horizontal' | 'vertical'", - "resolved": "\"horizontal\" | \"vertical\"", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "orientation", + "attr": "expanded", "reflectToAttr": false, - "docs": "", + "docs": "Internal", "docsTags": [], - "default": "'horizontal'", + "default": "false", "values": [ { - "value": "horizontal", - "type": "string" - }, - { - "value": "vertical", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "state", - "type": "\"alarm\" | \"neutral\" | \"warning\"", + "name": "i18nShowMore", + "type": "string", "complexType": { - "original": "'neutral' | 'warning' | 'alarm'", - "resolved": "\"alarm\" | \"neutral\" | \"warning\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "state", + "attr": "i-1-8n-show-more", "reflectToAttr": false, "docs": "", "docsTags": [], - "default": "'neutral'", + "default": "'Show more'", "values": [ { - "value": "alarm", - "type": "string" - }, - { - "value": "neutral", - "type": "string" - }, - { - "value": "warning", "type": "string" } ], @@ -8546,7 +12157,7 @@ "required": false }, { - "name": "unit", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -8554,9 +12165,9 @@ "references": {} }, "mutable": false, - "attr": "unit", + "attr": "label", "reflectToAttr": false, - "docs": "", + "docs": "Title of the about news", "docsTags": [], "values": [ { @@ -8567,119 +12178,163 @@ "required": false }, { - "name": "value", - "type": "number | string", + "name": "offsetBottom", + "type": "number", "complexType": { - "original": "string | number", - "resolved": "number | string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "value", + "attr": "offset-bottom", "reflectToAttr": false, - "docs": "", + "docs": "Bottom offset", "docsTags": [], + "default": "0", "values": [ { "type": "number" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "show", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": true, + "attr": "show", + "reflectToAttr": true, + "docs": "Show about news", + "docsTags": [], + "default": "false", + "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false } ], - "methods": [], - "events": [], + "methods": [], + "events": [ + { + "event": "closePopover", + "detail": "void", + "bubbles": true, + "complexType": { + "original": "void", + "resolved": "void", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Popover closed", + "docsTags": [] + }, + { + "event": "showMore", + "detail": "MouseEvent", + "bubbles": true, + "complexType": { + "original": "MouseEvent", + "resolved": "MouseEvent", + "references": { + "MouseEvent": { + "location": "global", + "id": "global::MouseEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "Show More button is pressed", + "docsTags": [] + } + ], "styles": [], "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/grid", - "filePath": "src/components/grid/layout-grid.tsx", - "fileName": "layout-grid.tsx", - "readmePath": "src/components/grid/readme.md", - "usagesDir": "src/components/grid/usage", - "tag": "ix-layout-grid", + "dirPath": "src/components/menu-avatar", + "filePath": "src/components/menu-avatar/menu-avatar.tsx", + "fileName": "menu-avatar.tsx", + "readmePath": "src/components/menu-avatar/readme.md", + "usagesDir": "src/components/menu-avatar/usage", + "tag": "ix-menu-avatar", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], + "docsTags": [], "encapsulation": "shadow", - "dependents": [ - "ix-date-dropdown", - "ix-datetime-picker" + "dependents": [], + "dependencies": [ + "ix-avatar", + "ix-dropdown", + "ix-menu-avatar-item" ], - "dependencies": [], "dependencyGraph": { - "ix-date-dropdown": [ - "ix-layout-grid" + "ix-menu-avatar": [ + "ix-avatar", + "ix-dropdown", + "ix-menu-avatar-item" ], - "ix-datetime-picker": [ - "ix-layout-grid" + "ix-avatar": [ + "ix-dropdown", + "ix-divider", + "ix-typography", + "ix-spinner" + ], + "ix-menu-avatar-item": [ + "ix-dropdown-item" ] }, "props": [ { - "name": "columns", - "type": "number", + "name": "bottom", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "columns", + "attr": "bottom", "reflectToAttr": false, - "docs": "Overwrite the default number of columns. Choose between 2 and 12 columns.", + "docs": "Second line of text", "docsTags": [], - "default": "12", "values": [ { - "type": "number" + "type": "string" } ], "optional": false, "required": false }, { - "name": "gap", - "type": "\"12\" | \"16\" | \"24\" | \"8\"", + "name": "i18nLogout", + "type": "string", "complexType": { - "original": "'8' | '12' | '16' | '24'", - "resolved": "\"12\" | \"16\" | \"24\" | \"8\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "gap", + "attr": "i-1-8n-logout", "reflectToAttr": false, - "docs": "Grid gap", + "docs": "Use for translation", "docsTags": [], - "default": "'24'", + "default": "'Logout'", "values": [ { - "value": "12", - "type": "string" - }, - { - "value": "16", - "type": "string" - }, - { - "value": "24", - "type": "string" - }, - { - "value": "8", "type": "string" } ], @@ -8687,115 +12342,86 @@ "required": false }, { - "name": "noMargin", - "type": "boolean", + "name": "image", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "no-margin", + "attr": "image", "reflectToAttr": false, - "docs": "The grid will not have any horizontal padding", - "docsTags": [], - "default": "false", + "docs": "Display a avatar image", + "docsTags": [ + { + "name": "since", + "text": "1.4.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/link-button", - "filePath": "src/components/link-button/link-button.tsx", - "fileName": "link-button.tsx", - "readmePath": "src/components/link-button/readme.md", - "usagesDir": "src/components/link-button/usage", - "tag": "ix-link-button", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [ + }, { - "name": "disabled", - "type": "boolean", + "name": "initials", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "initials", "reflectToAttr": false, - "docs": "Disable the link button", - "docsTags": [], - "default": "false", + "docs": "Display the initials of the user. Will be overwritten by image", + "docsTags": [ + { + "name": "since", + "text": "1.4.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "target", - "type": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"", + "name": "showLogoutButton", + "type": "boolean", "complexType": { - "original": "'_self' | '_blank' | '_parent' | '_top'", - "resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "target", + "attr": "show-logout-button", "reflectToAttr": false, - "docs": "Specifies where to open the link\n\nhttps://www.w3schools.com/html/html_links.asp", - "docsTags": [], - "default": "'_self'", - "values": [ - { - "value": "_blank", - "type": "string" - }, - { - "value": "_parent", - "type": "string" - }, + "docs": "Control the visibility of the logout button", + "docsTags": [ { - "value": "_self", - "type": "string" - }, + "name": "since", + "text": "2.1.0" + } + ], + "default": "true", + "values": [ { - "value": "_top", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "url", + "name": "top", "type": "string", "complexType": { "original": "string", @@ -8803,9 +12429,9 @@ "references": {} }, "mutable": false, - "attr": "url", + "attr": "top", "reflectToAttr": false, - "docs": "Url for the link button", + "docs": "First line of text", "docsTags": [], "values": [ { @@ -8817,56 +12443,56 @@ } ], "methods": [], - "events": [], + "events": [ + { + "event": "logoutClick", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Logout click", + "docsTags": [] + } + ], "styles": [], "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/map-navigation", - "filePath": "src/components/map-navigation/map-navigation.tsx", - "fileName": "map-navigation.tsx", - "readmePath": "src/components/map-navigation/readme.md", - "usagesDir": "src/components/map-navigation/usage", - "tag": "ix-map-navigation", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-map-navigation-overlay", - "ix-application-header", - "ix-icon-button" - ], - "dependencyGraph": { - "ix-map-navigation": [ - "ix-map-navigation-overlay", - "ix-application-header", - "ix-icon-button" - ], - "ix-map-navigation-overlay": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-application-header": [ - "ix-menu-expand-icon", - "ix-icon-button", - "ix-typography", - "ix-dropdown" + "dirPath": "src/components/menu-avatar-item", + "filePath": "src/components/menu-avatar-item/menu-avatar-item.tsx", + "fileName": "menu-avatar-item.tsx", + "readmePath": "src/components/menu-avatar-item/readme.md", + "usagesDir": "src/components/menu-avatar-item/usage", + "tag": "ix-menu-avatar-item", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-menu-avatar" + ], + "dependencies": [ + "ix-dropdown-item" + ], + "dependencyGraph": { + "ix-menu-avatar-item": [ + "ix-dropdown-item" ], - "ix-menu-expand-icon": [ - "ix-icon-button", - "ix-spinner" + "ix-menu-avatar": [ + "ix-menu-avatar-item" ] }, "props": [ { - "name": "applicationName", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -8874,9 +12500,9 @@ "references": {} }, "mutable": false, - "attr": "application-name", + "attr": "icon", "reflectToAttr": false, - "docs": "Application name", + "docs": "Avatar dropdown icon", "docsTags": [], "values": [ { @@ -8887,29 +12513,7 @@ "required": false }, { - "name": "hideContextMenu", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "hide-context-menu", - "reflectToAttr": false, - "docs": "Hide the sidebar context menu button when set to true", - "docsTags": [], - "default": "true", - "values": [ - { - "type": "boolean" - } - ], - "optional": false, - "required": false - }, - { - "name": "navigationTitle", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -8917,9 +12521,9 @@ "references": {} }, "mutable": false, - "attr": "navigation-title", + "attr": "label", "reflectToAttr": false, - "docs": "Navigation title", + "docs": "Avatar dropdown label", "docsTags": [], "values": [ { @@ -8930,256 +12534,274 @@ "required": false } ], - "methods": [ + "methods": [], + "events": [ { - "name": "closeOverlay", - "returns": { - "type": "Promise", - "docs": "" - }, + "event": "itemClick", + "detail": "MouseEvent", + "bubbles": true, "complexType": { - "signature": "() => Promise", - "parameters": [], + "original": "MouseEvent", + "resolved": "MouseEvent", "references": { - "Promise": { + "MouseEvent": { "location": "global", - "id": "global::Promise" + "id": "global::MouseEvent" } - }, - "return": "Promise" - }, - "signature": "closeOverlay() => Promise", - "parameters": [], - "docs": "Close current shown overlay", - "docsTags": [ - { - "name": "deprecated", - "text": "Will be removed in 2.0.0. Use slot based approach" } - ], - "deprecation": "Will be removed in 2.0.0. Use slot based approach" - }, - { - "name": "openOverlay", - "returns": { - "type": "Promise", - "docs": "" - }, - "complexType": { - "signature": "(name: string, component: HTMLElement, icon?: string, color?: string) => Promise", - "parameters": [ - { - "name": "name", - "type": "string", - "docs": "" - }, - { - "name": "component", - "type": "HTMLElement", - "docs": "" - }, - { - "name": "icon", - "type": "string", - "docs": "" - }, - { - "name": "color", - "type": "string", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - }, - "HTMLElement": { - "location": "global", - "id": "global::HTMLElement" - } - }, - "return": "Promise" }, - "signature": "openOverlay(name: string, component: HTMLElement, icon?: string, color?: string) => Promise", - "parameters": [ - { - "name": "name", - "type": "string", - "docs": "" - }, - { - "name": "component", - "type": "HTMLElement", - "docs": "" - }, - { - "name": "icon", - "type": "string", - "docs": "" - }, - { - "name": "color", - "type": "string", - "docs": "" - } - ], - "docs": "Open a overlay inside content area", - "docsTags": [ - { - "name": "deprecated", - "text": "Will be removed in 2.0.0. Use slot based approach" - }, - { - "name": "param", - "text": "name" - }, - { - "name": "param", - "text": "component" - }, - { - "name": "param", - "text": "icon" - }, - { - "name": "param", - "text": "color" - } - ], - "deprecation": "Will be removed in 2.0.0. Use slot based approach" - }, + "cancelable": true, + "composed": true, + "docs": "Avatar dropdown item clicked", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/menu-category", + "filePath": "src/components/menu-category/menu-category.tsx", + "fileName": "menu-category.tsx", + "readmePath": "src/components/menu-category/readme.md", + "usagesDir": "src/components/menu-category/usage", + "tag": "ix-menu-category", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "name": "toggleSidebar", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-menu-item", + "ix-dropdown", + "ix-dropdown-item", + "ix-typography", + "ix-divider" + ], + "dependencyGraph": { + "ix-menu-category": [ + "ix-menu-item", + "ix-dropdown", + "ix-dropdown-item", + "ix-typography", + "ix-divider" + ], + "ix-menu-item": [ + "ix-tooltip" + ], + "ix-tooltip": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "icon", + "type": "string", "complexType": { - "signature": "(show?: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "new visibility state" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - }, - "return": "Promise" + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "toggleSidebar(show?: boolean) => Promise", - "parameters": [ + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Icon of the category", + "docsTags": [], + "values": [ { - "name": "show", - "type": "boolean", - "docs": "new visibility state" + "type": "string" } ], - "docs": "Change the visibility of the sidebar", - "docsTags": [ - { - "name": "param", - "text": "show new visibility state" - }, - { - "name": "since", - "text": "1.6.0" - } - ] - } - ], - "events": [ + "optional": false, + "required": false + }, { - "event": "contextMenuClick", - "detail": "void", - "bubbles": true, + "name": "label", + "type": "string", "complexType": { - "original": "void", - "resolved": "void", + "original": "string", + "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Context menu clicked", - "docsTags": [] + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Display name of the category", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false }, { - "event": "navigationToggled", - "detail": "boolean", - "bubbles": true, + "name": "notifications", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Navigation toggled", - "docsTags": [] + "mutable": false, + "attr": "notifications", + "reflectToAttr": false, + "docs": "Show notification count on the category", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": false, + "required": false } ], + "methods": [], + "events": [], "styles": [], "slots": [], "parts": [], - "listeners": [] + "listeners": [ + { + "event": "closeOtherCategories", + "target": "window", + "capture": false, + "passive": false + } + ] }, { - "dirPath": "src/components/map-navigation-overlay", - "filePath": "src/components/map-navigation-overlay/map-navigation-overlay.tsx", - "fileName": "map-navigation-overlay.tsx", - "readmePath": "src/components/map-navigation-overlay/readme.md", - "usagesDir": "src/components/map-navigation-overlay/usage", - "tag": "ix-map-navigation-overlay", + "dirPath": "src/components/menu-item", + "filePath": "src/components/menu-item/menu-item.tsx", + "fileName": "menu-item.tsx", + "readmePath": "src/components/menu-item/readme.md", + "usagesDir": "src/components/menu-item/usage", + "tag": "ix-menu-item", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "slot", + "text": "menu-item-label Custom label" + } + ], "encapsulation": "shadow", "dependents": [ - "ix-map-navigation" + "ix-menu", + "ix-menu-category" ], "dependencies": [ - "ix-icon-button" + "ix-tooltip" ], "dependencyGraph": { - "ix-map-navigation-overlay": [ - "ix-icon-button" + "ix-menu-item": [ + "ix-tooltip" ], - "ix-icon-button": [ - "ix-spinner" + "ix-tooltip": [ + "ix-typography" ], - "ix-map-navigation": [ - "ix-map-navigation-overlay" + "ix-menu": [ + "ix-menu-item" + ], + "ix-menu-category": [ + "ix-menu-item" ] }, "props": [ { - "name": "color", - "type": "string", + "name": "active", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "color", + "attr": "active", "reflectToAttr": false, - "docs": "Color of icon", - "docsTags": [ + "docs": "State to display active", + "docsTags": [], + "default": "false", + "values": [ { - "name": "deprecated", - "text": "since 2.1.0. Use `icon-color`" + "type": "boolean" } ], - "deprecation": "since 2.1.0. Use `icon-color`", + "optional": false, + "required": false + }, + { + "name": "bottom", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "bottom", + "reflectToAttr": false, + "docs": "Caution: this is no longer working. Please use slot=\"bottom\" instead.\n\nPlace tab on bottom", + "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disable tab and remove event handlers", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "home", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "home", + "reflectToAttr": false, + "docs": "Move the Tab to a top position.", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" } ], "optional": false, @@ -9193,21 +12815,26 @@ "resolved": "string", "references": {} }, - "mutable": false, + "mutable": true, "attr": "icon", "reflectToAttr": false, - "docs": "Icon of overlay", - "docsTags": [], + "docs": "Name of the icon you want to display. Icon names can be resolved from the documentation", + "docsTags": [ + { + "name": "link", + "text": "https://ix.siemens.io/docs/icon-library/icons" + } + ], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "iconColor", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -9215,69 +12842,95 @@ "references": {} }, "mutable": false, - "attr": "icon-color", + "attr": "label", "reflectToAttr": false, - "docs": "Color of icon", - "docsTags": [], + "docs": "Label of the menu item. Will also be used as tooltip text", + "docsTags": [ + { + "name": "since", + "text": "2.2.0" + } + ], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, + "required": false + }, + { + "name": "notifications", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "notifications", + "reflectToAttr": false, + "docs": "Show notification count on tab", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, "required": false }, { - "name": "name", + "name": "tabIcon", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": false, - "attr": "name", + "mutable": true, + "attr": "tab-icon", "reflectToAttr": false, - "docs": "Title of overlay", - "docsTags": [], + "docs": "Name of the icon you want to display. Icon names can be resolved from the documentation", + "docsTags": [ + { + "name": "link", + "text": "https://ix.siemens.io/docs/icon-library/icons" + }, + { + "name": "deprecated", + "text": "since 2.0.0 use `icon` property. Will be removed in 3.0.0" + } + ], + "deprecation": "since 2.0.0 use `icon` property. Will be removed in 3.0.0", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false } ], "methods": [], - "events": [ + "events": [], + "styles": [], + "slots": [ { - "event": "closeClick", - "detail": "any", - "bubbles": true, - "complexType": { - "original": "any", - "resolved": "any", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Event closed", - "docsTags": [] + "name": "menu-item-label Custom label", + "docs": "" } ], - "styles": [], - "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/menu", - "filePath": "src/components/menu/menu.tsx", - "fileName": "menu.tsx", - "readmePath": "src/components/menu/readme.md", - "usagesDir": "src/components/menu/usage", - "tag": "ix-menu", + "dirPath": "src/components/menu-settings", + "filePath": "src/components/menu-settings/menu-settings.tsx", + "fileName": "menu-settings.tsx", + "readmePath": "src/components/menu-settings/readme.md", + "usagesDir": "src/components/menu-settings/usage", + "tag": "ix-menu-settings", "overview": "", "usage": {}, "docs": "", @@ -9285,45 +12938,34 @@ "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-menu-expand-icon", + "ix-tab-item", "ix-icon-button", - "ix-menu-item" + "ix-tabs" ], "dependencyGraph": { - "ix-menu": [ - "ix-menu-expand-icon", - "ix-icon-button", - "ix-menu-item" - ], - "ix-menu-expand-icon": [ + "ix-menu-settings": [ + "ix-tab-item", "ix-icon-button", - "ix-spinner" + "ix-tabs" ], "ix-icon-button": [ "ix-spinner" - ], - "ix-menu-item": [ - "ix-tooltip" - ], - "ix-tooltip": [ - "ix-typography" ] }, "props": [ { - "name": "applicationDescription", + "name": "activeTabLabel", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": false, - "attr": "application-description", + "mutable": true, + "attr": "active-tab-label", "reflectToAttr": false, - "docs": "Should only be set if you use ix-menu standalone", + "docs": "Active tab", "docsTags": [], - "default": "''", "values": [ { "type": "string" @@ -9333,7 +12975,7 @@ "required": false }, { - "name": "applicationName", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -9341,20 +12983,21 @@ "references": {} }, "mutable": false, - "attr": "application-name", + "attr": "label", "reflectToAttr": false, - "docs": "Should only be set if you use ix-menu standalone", + "docs": "Label of first tab", "docsTags": [], + "default": "'Settings'", "values": [ { "type": "string" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "enableMapExpand", + "name": "show", "type": "boolean", "complexType": { "original": "boolean", @@ -9362,7 +13005,7 @@ "references": {} }, "mutable": false, - "attr": "enable-map-expand", + "attr": "show", "reflectToAttr": false, "docs": "Internal", "docsTags": [], @@ -9374,235 +13017,315 @@ ], "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "enableSettings", - "type": "boolean", + "event": "close", + "detail": "CustomCloseEvent", + "bubbles": true, "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "enable-settings", - "reflectToAttr": false, - "docs": "Is settings tab is visible", - "docsTags": [], - "default": "true", - "values": [ - { - "type": "boolean" + "original": "CustomCloseEvent", + "resolved": "CustomCloseEvent", + "references": { + "CustomCloseEvent": { + "location": "import", + "path": "../utils/menu-tabs/menu-tabs-utils", + "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomCloseEvent" + } } - ], - "optional": false, - "required": false - }, + }, + "cancelable": true, + "composed": true, + "docs": "Popover closed", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/menu-settings-item", + "filePath": "src/components/menu-settings-item/menu-settings-item.tsx", + "fileName": "menu-settings-item.tsx", + "readmePath": "src/components/menu-settings-item/readme.md", + "usagesDir": "src/components/menu-settings-item/usage", + "tag": "ix-menu-settings-item", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ { - "name": "enableToggleTheme", - "type": "boolean", + "name": "label", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "enable-toggle-theme", - "reflectToAttr": false, - "docs": "Show toggle between light and dark variant. Only if the provided theme have implemented both!", + "attr": "label", + "reflectToAttr": true, + "docs": "Settings Item label", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "expand", - "type": "boolean", + "event": "labelChange", + "detail": "CustomLabelChangeEvent", + "bubbles": true, "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": true, - "attr": "expand", - "reflectToAttr": true, - "docs": "Toggle the expand state of the menu", - "docsTags": [], - "default": "false", - "values": [ - { - "type": "boolean" + "original": "CustomLabelChangeEvent", + "resolved": "CustomLabelChangeEvent", + "references": { + "CustomLabelChangeEvent": { + "location": "import", + "path": "../utils/menu-tabs/menu-tabs-utils", + "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomLabelChangeEvent" + } } - ], - "optional": false, - "required": false - }, + }, + "cancelable": true, + "composed": true, + "docs": "Label changed", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/message-bar", + "filePath": "src/components/message-bar/message-bar.tsx", + "fileName": "message-bar.tsx", + "readmePath": "src/components/message-bar/readme.md", + "usagesDir": "src/components/message-bar/usage", + "tag": "ix-message-bar", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-icon-button" + ], + "dependencyGraph": { + "ix-message-bar": [ + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ] + }, + "props": [ { - "name": "i18nCollapse", - "type": "string", + "name": "dismissible", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "i-1-8n-collapse", + "attr": "dismissible", "reflectToAttr": false, - "docs": "", + "docs": "If true, close button is enabled and alert can be dismissed by the user", "docsTags": [], - "default": "'Collapse'", + "default": "true", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "i18nExpand", - "type": "string", + "name": "type", + "type": "\"danger\" | \"info\" | \"warning\"", "complexType": { - "original": "string", - "resolved": "string", + "original": "'danger' | 'warning' | 'info'", + "resolved": "\"danger\" | \"info\" | \"warning\"", "references": {} }, "mutable": false, - "attr": "i-1-8n-expand", + "attr": "type", "reflectToAttr": false, - "docs": "", + "docs": "Specifies the type of the alert.", "docsTags": [], - "default": "' Expand'", + "default": "'info'", "values": [ { + "value": "danger", + "type": "string" + }, + { + "value": "info", + "type": "string" + }, + { + "value": "warning", "type": "string" } ], "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "i18nExpandSidebar", - "type": "string", + "event": "closedChange", + "detail": "any", + "bubbles": true, "complexType": { - "original": "string", - "resolved": "string", + "original": "any", + "resolved": "any", "references": {} }, - "mutable": false, - "attr": "i-1-8n-expand-sidebar", - "reflectToAttr": false, - "docs": "Accessibility i18n label for the burger menu of the sidebar", - "docsTags": [], - "default": "'Expand sidebar'", - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": false - }, + "cancelable": true, + "composed": true, + "docs": "An event emitted when the close button is clicked", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/modal", + "filePath": "src/components/modal/modal.tsx", + "fileName": "modal.tsx", + "readmePath": "src/components/modal/readme.md", + "usagesDir": "src/components/modal/usage", + "tag": "ix-modal", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [ { - "name": "i18nLegal", - "type": "string", + "name": "animation", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "i-1-8n-legal", + "attr": "animation", "reflectToAttr": false, - "docs": "", + "docs": "Should the modal be animated", "docsTags": [], - "default": "'About & legal information'", + "default": "true", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "i18nSettings", - "type": "string", + "name": "backdrop", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "i-1-8n-settings", + "attr": "backdrop", "reflectToAttr": false, - "docs": "", + "docs": "Show a backdrop behind the modal dialog", "docsTags": [], - "default": "'Settings'", + "default": "true", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "i18nToggleTheme", - "type": "string", + "name": "beforeDismiss", + "type": "(reason?: any) => boolean | Promise", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "(reason?: any) => boolean | Promise", + "resolved": "(reason?: any) => boolean | Promise", + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + } }, "mutable": false, - "attr": "i-1-8n-toggle-theme", "reflectToAttr": false, - "docs": "", + "docs": "Is called before the modal is dismissed.\n\n- Return `true` to proceed in dismissing the modal\n- Return `false` to abort in dismissing the modal", "docsTags": [], - "default": "'Toggle theme'", "values": [ { - "type": "string" + "type": "(reason?: any) => boolean" + }, + { + "type": "Promise" } ], "optional": false, "required": false }, { - "name": "maxVisibleMenuItems", - "type": "number", + "name": "centered", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "max-visible-menu-items", + "attr": "centered", "reflectToAttr": false, - "docs": "Maximum number of menu items to show in case enough vertical space is available.\nExtra menu items will be collapsed to 'show more' menu item.", - "docsTags": [ - { - "name": "deprecated", - "text": "- Has no effect on component. Will get removed with next major release (v3)" - } - ], - "default": "9", - "deprecation": "- Has no effect on component. Will get removed with next major release (v3)", + "docs": "Centered modal", + "docsTags": [], + "default": "false", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "pinned", + "name": "closeOnBackdropClick", "type": "boolean", "complexType": { "original": "boolean", @@ -9610,10 +13333,15 @@ "references": {} }, "mutable": false, - "attr": "pinned", + "attr": "close-on-backdrop-click", "reflectToAttr": false, - "docs": "Menu stays pinned to the left", - "docsTags": [], + "docs": "Dismiss modal on backdrop click", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], "default": "false", "values": [ { @@ -9624,19 +13352,19 @@ "required": false }, { - "name": "showAbout", + "name": "closeOnEscape", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "show-about", + "mutable": false, + "attr": "close-on-escape", "reflectToAttr": false, - "docs": "Is about tab visible", + "docs": "If set to true the modal can be closed by pressing the Escape key", "docsTags": [], - "default": "false", + "default": "true", "values": [ { "type": "boolean" @@ -9646,19 +13374,25 @@ "required": false }, { - "name": "showSettings", + "name": "keyboard", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "show-settings", + "mutable": false, + "attr": "keyboard", "reflectToAttr": false, - "docs": "Is settings tab visible", - "docsTags": [], - "default": "false", + "docs": "Use ESC to dismiss the modal", + "docsTags": [ + { + "name": "deprecated", + "text": "- Use closeOnEscape instead" + } + ], + "default": "true", + "deprecation": "- Use closeOnEscape instead", "values": [ { "type": "boolean" @@ -9668,27 +13402,58 @@ "required": false }, { - "name": "startExpanded", - "type": "boolean", + "name": "size", + "type": "\"360\" | \"480\" | \"600\" | \"720\" | \"840\" | \"full-screen\" | \"full-width\"", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "IxModalSize", + "resolved": "\"360\" | \"480\" | \"600\" | \"720\" | \"840\" | \"full-screen\" | \"full-width\"", + "references": { + "IxModalSize": { + "location": "local", + "path": "src/components/modal/modal.tsx", + "id": "src/components/modal/modal.tsx::IxModalSize" + } + } }, "mutable": false, - "attr": "start-expanded", + "attr": "size", "reflectToAttr": false, - "docs": "If set the menu will be expanded initially. This will only take effect at the breakpoint 'lg'.", + "docs": "Modal size", "docsTags": [ { "name": "since", - "text": "2.2.0" + "text": "2.0.0" } ], - "default": "false", + "default": "'360'", "values": [ { - "type": "boolean" + "value": "360", + "type": "string" + }, + { + "value": "480", + "type": "string" + }, + { + "value": "600", + "type": "string" + }, + { + "value": "720", + "type": "string" + }, + { + "value": "840", + "type": "string" + }, + { + "value": "full-screen", + "type": "string" + }, + { + "value": "full-width", + "type": "string" } ], "optional": false, @@ -9697,17 +13462,17 @@ ], "methods": [ { - "name": "toggleAbout", + "name": "closeModal", "returns": { "type": "Promise", "docs": "" }, "complexType": { - "signature": "(show: boolean) => Promise", + "signature": "(reason: T) => Promise", "parameters": [ { - "name": "show", - "type": "boolean", + "name": "reason", + "type": "T", "docs": "" } ], @@ -9715,214 +13480,394 @@ "Promise": { "location": "global", "id": "global::Promise" + }, + "T": { + "location": "global", + "id": "global::T" } }, "return": "Promise" }, - "signature": "toggleAbout(show: boolean) => Promise", + "signature": "closeModal(reason: T) => Promise", "parameters": [ { - "name": "show", - "type": "boolean", + "name": "reason", + "type": "T", "docs": "" } ], - "docs": "Toggle About tabs", - "docsTags": [ + "docs": "Close the dialog", + "docsTags": [] + }, + { + "name": "dismissModal", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "(reason?: T) => Promise", + "parameters": [ + { + "name": "reason", + "type": "T", + "docs": "" + } + ], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "T": { + "location": "global", + "id": "global::T" + } + }, + "return": "Promise" + }, + "signature": "dismissModal(reason?: T) => Promise", + "parameters": [ { - "name": "param", - "text": "show" + "name": "reason", + "type": "T", + "docs": "" } - ] + ], + "docs": "Dismiss the dialog", + "docsTags": [] }, { - "name": "toggleMapExpand", + "name": "showModal", "returns": { "type": "Promise", "docs": "" }, "complexType": { - "signature": "(show?: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - }, - "return": "Promise" + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLDialogElement": { + "location": "global", + "id": "global::HTMLDialogElement" + } + }, + "return": "Promise" + }, + "signature": "showModal() => Promise", + "parameters": [], + "docs": "Show the dialog", + "docsTags": [] + } + ], + "events": [ + { + "event": "dialogClose", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Dialog close", + "docsTags": [] + }, + { + "event": "dialogDismiss", + "detail": "any", + "bubbles": true, + "complexType": { + "original": "any", + "resolved": "any", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Dialog cancel", + "docsTags": [] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/modal-content", + "filePath": "src/components/modal-content/modal-content.tsx", + "fileName": "modal-content.tsx", + "readmePath": "src/components/modal-content/readme.md", + "usagesDir": "src/components/modal-content/usage", + "tag": "ix-modal-content", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [ + "ix-application-switch-modal" + ], + "dependencies": [], + "dependencyGraph": { + "ix-application-switch-modal": [ + "ix-modal-content" + ] + }, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/playground", + "filePath": "src/components/playground/example-modal.tsx", + "fileName": "example-modal.tsx", + "readmePath": "src/components/playground/readme.md", + "usagesDir": "src/components/playground/usage", + "tag": "ix-modal-example", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "none", + "dependents": [], + "dependencies": [ + "ix-icon-button", + "ix-button" + ], + "dependencyGraph": { + "ix-modal-example": [ + "ix-icon-button", + "ix-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-button": [ + "ix-spinner" + ] + }, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/modal-footer", + "filePath": "src/components/modal-footer/modal-footer.tsx", + "fileName": "modal-footer.tsx", + "readmePath": "src/components/modal-footer/readme.md", + "usagesDir": "src/components/modal-footer/usage", + "tag": "ix-modal-footer", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [], + "dependencyGraph": {}, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/modal-header", + "filePath": "src/components/modal-header/modal-header.tsx", + "fileName": "modal-header.tsx", + "readmePath": "src/components/modal-header/readme.md", + "usagesDir": "src/components/modal-header/usage", + "tag": "ix-modal-header", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ], + "encapsulation": "shadow", + "dependents": [ + "ix-application-switch-modal" + ], + "dependencies": [ + "ix-typography", + "ix-icon-button" + ], + "dependencyGraph": { + "ix-modal-header": [ + "ix-typography", + "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-application-switch-modal": [ + "ix-modal-header" + ] + }, + "props": [ + { + "name": "hideClose", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} }, - "signature": "toggleMapExpand(show?: boolean) => Promise", - "parameters": [ + "mutable": false, + "attr": "hide-close", + "reflectToAttr": false, + "docs": "Hide the close button", + "docsTags": [], + "default": "false", + "values": [ { - "name": "show", - "type": "boolean", - "docs": "" + "type": "boolean" } ], - "docs": "Toggle map sidebar expand", - "docsTags": [ - { - "name": "param", - "text": "show" - } - ] + "optional": false, + "required": false }, { - "name": "toggleMenu", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "icon", + "type": "string", "complexType": { - "signature": "(show?: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - }, - "return": "Promise" + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "toggleMenu(show?: boolean) => Promise", - "parameters": [ + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Icon of the Header", + "docsTags": [], + "values": [ { - "name": "show", - "type": "boolean", - "docs": "" + "type": "string" } ], - "docs": "Toggle menu", - "docsTags": [ - { - "name": "param", - "text": "show" - } - ] + "optional": true, + "required": false }, { - "name": "toggleSettings", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "iconColor", + "type": "string", "complexType": { - "signature": "(show: boolean) => Promise", - "parameters": [ - { - "name": "show", - "type": "boolean", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - }, - "return": "Promise" + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "toggleSettings(show: boolean) => Promise", - "parameters": [ + "mutable": false, + "attr": "icon-color", + "reflectToAttr": false, + "docs": "Icon color", + "docsTags": [], + "values": [ { - "name": "show", - "type": "boolean", - "docs": "" + "type": "string" } ], - "docs": "Toggle Settings tabs", - "docsTags": [ - { - "name": "param", - "text": "show" - } - ] + "optional": true, + "required": false } ], + "methods": [], "events": [ { - "event": "expandChange", - "detail": "boolean", - "bubbles": true, - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Menu expanded", - "docsTags": [] - }, - { - "event": "mapExpandChange", - "detail": "boolean", + "event": "closeClick", + "detail": "MouseEvent", "bubbles": true, "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "MouseEvent", + "resolved": "MouseEvent", + "references": { + "MouseEvent": { + "location": "global", + "id": "global::MouseEvent" + } + } }, "cancelable": true, "composed": true, - "docs": "Map Sidebar expanded", + "docs": "Emits when close icon is clicked and closes the modal\nCan be prevented, in which case only the event is triggered, and the modal remains open", "docsTags": [] } ], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "resize", - "target": "window", - "capture": false, - "passive": true - }, - { - "event": "close", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { - "dirPath": "src/components/menu-about", - "filePath": "src/components/menu-about/menu-about.tsx", - "fileName": "menu-about.tsx", - "readmePath": "src/components/menu-about/readme.md", - "usagesDir": "src/components/menu-about/usage", - "tag": "ix-menu-about", + "dirPath": "src/components/input", + "filePath": "src/components/input/number-input.tsx", + "fileName": "number-input.tsx", + "readmePath": "src/components/input/readme.md", + "usagesDir": "src/components/input/usage", + "tag": "ix-number-input", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-tab-item", - "ix-icon-button", - "ix-tabs" + "ix-field-wrapper", + "ix-icon-button" ], "dependencyGraph": { - "ix-menu-about": [ - "ix-tab-item", - "ix-icon-button", - "ix-tabs" + "ix-number-input": [ + "ix-field-wrapper", + "ix-icon-button" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" ], "ix-icon-button": [ "ix-spinner" @@ -9930,24 +13875,109 @@ }, "props": [ { - "name": "activeTabLabel", + "name": "allowedCharactersPattern", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "allowed-characters-pattern", + "reflectToAttr": false, + "docs": "The allowed characters pattern for the input field", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disables the input field", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "helperText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "helper-text", + "reflectToAttr": false, + "docs": "The helper text for the input field", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "infoText", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": true, - "attr": "active-tab-label", + "mutable": false, + "attr": "info-text", "reflectToAttr": false, - "docs": "Active tab", + "docs": "The info text for the input field", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, + "required": false + }, + { + "name": "invalidText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "invalid-text", + "reflectToAttr": false, + "docs": "The error text for the input field", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, "required": false }, { @@ -9960,87 +13990,67 @@ }, "mutable": false, "attr": "label", - "reflectToAttr": false, - "docs": "Content of the header", + "reflectToAttr": true, + "docs": "The label for the input field", "docsTags": [], - "default": "'About & legal information'", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "show", - "type": "boolean", + "name": "max", + "type": "number | string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string | number", + "resolved": "number | string", "references": {} }, "mutable": false, - "attr": "show", + "attr": "max", "reflectToAttr": false, - "docs": "Internal", + "docs": "The maximum value for the input field", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "number" + }, + { + "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "close", - "detail": "CustomCloseEvent", - "bubbles": true, + "name": "min", + "type": "number | string", "complexType": { - "original": "CustomCloseEvent", - "resolved": "CustomCloseEvent", - "references": { - "CustomCloseEvent": { - "location": "import", - "path": "../utils/menu-tabs/menu-tabs-utils", - "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomCloseEvent" - } - } + "original": "string | number", + "resolved": "number | string", + "references": {} }, - "cancelable": true, - "composed": true, - "docs": "About and Legal closed", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/menu-about-item", - "filePath": "src/components/menu-about-item/menu-about-item.tsx", - "fileName": "menu-about-item.tsx", - "readmePath": "src/components/menu-about-item/readme.md", - "usagesDir": "src/components/menu-about-item/usage", - "tag": "ix-menu-about-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [ + "mutable": false, + "attr": "min", + "reflectToAttr": false, + "docs": "The minimum value for the input field", + "docsTags": [], + "values": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "optional": true, + "required": false + }, { - "name": "label", + "name": "name", "type": "string", "complexType": { "original": "string", @@ -10048,81 +14058,41 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "name", "reflectToAttr": true, - "docs": "About Item label", + "docs": "name of the input element", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "labelChange", - "detail": "CustomLabelChangeEvent", - "bubbles": true, + "name": "pattern", + "type": "string", "complexType": { - "original": "CustomLabelChangeEvent", - "resolved": "CustomLabelChangeEvent", - "references": { - "CustomLabelChangeEvent": { - "location": "import", - "path": "../utils/menu-tabs/menu-tabs-utils", - "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomLabelChangeEvent" - } - } + "original": "string", + "resolved": "string", + "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Label changed", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/menu-about-news", - "filePath": "src/components/menu-about-news/menu-about-news.tsx", - "fileName": "menu-about-news.tsx", - "readmePath": "src/components/menu-about-news/readme.md", - "usagesDir": "src/components/menu-about-news/usage", - "tag": "ix-menu-about-news", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-typography", - "ix-icon-button", - "ix-button" - ], - "dependencyGraph": { - "ix-menu-about-news": [ - "ix-typography", - "ix-icon-button", - "ix-button" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-button": [ - "ix-spinner" - ] - }, - "props": [ + "mutable": false, + "attr": "pattern", + "reflectToAttr": false, + "docs": "The pattern for the input field", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, { - "name": "aboutItemLabel", + "name": "placeholder", "type": "string", "complexType": { "original": "string", @@ -10130,20 +14100,64 @@ "references": {} }, "mutable": false, - "attr": "about-item-label", + "attr": "placeholder", + "reflectToAttr": true, + "docs": "placeholder of the input element", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "readonly", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "readonly", "reflectToAttr": false, - "docs": "Subtitle of the about news", + "docs": "Indicates if the field is read-only", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "required", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "required", + "reflectToAttr": true, + "docs": "Indicates if the field is required", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "expanded", + "name": "showStepperButtons", "type": "boolean", "complexType": { "original": "boolean", @@ -10151,43 +14165,41 @@ "references": {} }, "mutable": false, - "attr": "expanded", + "attr": "show-stepper-buttons", "reflectToAttr": false, - "docs": "Internal", + "docs": "Indicates if the stepper buttons should be shown", "docsTags": [], - "default": "false", "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "i18nShowMore", - "type": "string", + "name": "showTextAsTooltip", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "i-1-8n-show-more", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "", + "docs": "Indicates if the text should be shown as a tooltip", "docsTags": [], - "default": "'Show more'", "values": [ { - "type": "string" + "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "label", + "name": "validText", "type": "string", "complexType": { "original": "string", @@ -10195,30 +14207,30 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Title of the about news", + "docs": "The valid text for the input field", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "offsetBottom", + "name": "value", "type": "number", "complexType": { "original": "number", "resolved": "number", "references": {} }, - "mutable": false, - "attr": "offset-bottom", - "reflectToAttr": false, - "docs": "Bottom offset", + "mutable": true, + "attr": "value", + "reflectToAttr": true, + "docs": "The value of the input field", "docsTags": [], "default": "0", "values": [ @@ -10230,32 +14242,80 @@ "required": false }, { - "name": "show", - "type": "boolean", + "name": "warningText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, - "mutable": true, - "attr": "show", - "reflectToAttr": true, - "docs": "Show about news", + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "The warning text for the input field", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false } ], - "methods": [], + "methods": [ + { + "name": "focusInput", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "focusInput() => Promise", + "parameters": [], + "docs": "Focuses the input field", + "docsTags": [] + }, + { + "name": "getNativeInputElement", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLInputElement": { + "location": "global", + "id": "global::HTMLInputElement" + } + }, + "return": "Promise" + }, + "signature": "getNativeInputElement() => Promise", + "parameters": [], + "docs": "Returns the native input element used under the hood", + "docsTags": [] + } + ], "events": [ { - "event": "closePopover", + "event": "ixBlur", "detail": "void", "bubbles": true, "complexType": { @@ -10265,26 +14325,40 @@ }, "cancelable": true, "composed": true, - "docs": "Popover closed", + "docs": "Event emitted when the input field loses focus", "docsTags": [] }, { - "event": "showMore", - "detail": "MouseEvent", + "event": "validityStateChange", + "detail": "ValidityState", "bubbles": true, "complexType": { - "original": "MouseEvent", - "resolved": "MouseEvent", + "original": "ValidityState", + "resolved": "ValidityState", "references": { - "MouseEvent": { + "ValidityState": { "location": "global", - "id": "global::MouseEvent" + "id": "global::ValidityState" } } }, "cancelable": true, "composed": true, - "docs": "Show More button is pressed", + "docs": "Event emitted when the validity state of the input field changes", + "docsTags": [] + }, + { + "event": "valueChange", + "detail": "number", + "bubbles": true, + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the value of the input field changes", "docsTags": [] } ], @@ -10294,164 +14368,113 @@ "listeners": [] }, { - "dirPath": "src/components/menu-avatar", - "filePath": "src/components/menu-avatar/menu-avatar.tsx", - "fileName": "menu-avatar.tsx", - "readmePath": "src/components/menu-avatar/readme.md", - "usagesDir": "src/components/menu-avatar/usage", - "tag": "ix-menu-avatar", + "dirPath": "src/components/pagination", + "filePath": "src/components/pagination/pagination.tsx", + "fileName": "pagination.tsx", + "readmePath": "src/components/pagination/readme.md", + "usagesDir": "src/components/pagination/usage", + "tag": "ix-pagination", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "1.5.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [ - "ix-avatar", - "ix-dropdown", - "ix-menu-avatar-item" + "ix-icon-button", + "ix-typography", + "ix-select", + "ix-select-item", + "ix-spinner" ], "dependencyGraph": { - "ix-menu-avatar": [ - "ix-avatar", - "ix-dropdown", - "ix-menu-avatar-item" - ], - "ix-avatar": [ - "ix-dropdown", - "ix-divider", + "ix-pagination": [ + "ix-icon-button", "ix-typography", + "ix-select", + "ix-select-item", "ix-spinner" ], - "ix-menu-avatar-item": [ + "ix-icon-button": [ + "ix-spinner" + ], + "ix-select": [ + "ix-select-item", + "ix-field-wrapper", + "ix-filter-chip", + "ix-icon-button", + "ix-dropdown", + "ix-dropdown-item" + ], + "ix-select-item": [ "ix-dropdown-item" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ], + "ix-filter-chip": [ + "ix-icon-button" ] }, "props": [ { - "name": "bottom", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "bottom", - "reflectToAttr": false, - "docs": "Second line of text", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "i18nLogout", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "i-1-8n-logout", - "reflectToAttr": false, - "docs": "Use for translation", - "docsTags": [], - "default": "'Logout'", - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "image", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "image", - "reflectToAttr": false, - "docs": "Display a avatar image", - "docsTags": [ - { - "name": "since", - "text": "1.4.0" - } - ], - "values": [ - { - "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "initials", - "type": "string", + "name": "advanced", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "initials", + "attr": "advanced", "reflectToAttr": false, - "docs": "Display the initials of the user. Will be overwritten by image", - "docsTags": [ - { - "name": "since", - "text": "1.4.0" - } - ], + "docs": "Advanced mode", + "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "showLogoutButton", - "type": "boolean", + "name": "count", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "show-logout-button", + "attr": "count", "reflectToAttr": false, - "docs": "Control the visibility of the logout button", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], - "default": "true", + "docs": "Total number of pages", + "docsTags": [], "values": [ { - "type": "boolean" + "type": "number" } ], "optional": false, "required": false }, { - "name": "top", + "name": "i18nItems", "type": "string", "complexType": { "original": "string", @@ -10459,10 +14482,11 @@ "references": {} }, "mutable": false, - "attr": "top", + "attr": "i-1-8n-items", "reflectToAttr": false, - "docs": "First line of text", + "docs": "/**\n i18n", "docsTags": [], + "default": "'Items'", "values": [ { "type": "string" @@ -10470,59 +14494,9 @@ ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "logoutClick", - "detail": "any", - "bubbles": true, - "complexType": { - "original": "any", - "resolved": "any", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Logout click", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/menu-avatar-item", - "filePath": "src/components/menu-avatar-item/menu-avatar-item.tsx", - "fileName": "menu-avatar-item.tsx", - "readmePath": "src/components/menu-avatar-item/readme.md", - "usagesDir": "src/components/menu-avatar-item/usage", - "tag": "ix-menu-avatar-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-menu-avatar" - ], - "dependencies": [ - "ix-dropdown-item" - ], - "dependencyGraph": { - "ix-menu-avatar-item": [ - "ix-dropdown-item" - ], - "ix-menu-avatar": [ - "ix-menu-avatar-item" - ] - }, - "props": [ + }, { - "name": "icon", + "name": "i18nOf", "type": "string", "complexType": { "original": "string", @@ -10530,10 +14504,11 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "i-1-8n-of", "reflectToAttr": false, - "docs": "Avatar dropdown icon", + "docs": "i18n", "docsTags": [], + "default": "'of'", "values": [ { "type": "string" @@ -10543,7 +14518,7 @@ "required": false }, { - "name": "label", + "name": "i18nPage", "type": "string", "complexType": { "original": "string", @@ -10551,10 +14526,11 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "i-1-8n-page", "reflectToAttr": false, - "docs": "Avatar dropdown label", + "docs": "i18n", "docsTags": [], + "default": "'Page'", "values": [ { "type": "string" @@ -10562,195 +14538,144 @@ ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "itemClick", - "detail": "MouseEvent", - "bubbles": true, - "complexType": { - "original": "MouseEvent", - "resolved": "MouseEvent", - "references": { - "MouseEvent": { - "location": "global", - "id": "global::MouseEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Avatar dropdown item clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/menu-category", - "filePath": "src/components/menu-category/menu-category.tsx", - "fileName": "menu-category.tsx", - "readmePath": "src/components/menu-category/readme.md", - "usagesDir": "src/components/menu-category/usage", - "tag": "ix-menu-category", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-menu-item", - "ix-dropdown", - "ix-dropdown-item", - "ix-typography", - "ix-divider" - ], - "dependencyGraph": { - "ix-menu-category": [ - "ix-menu-item", - "ix-dropdown", - "ix-dropdown-item", - "ix-typography", - "ix-divider" - ], - "ix-menu-item": [ - "ix-tooltip" - ], - "ix-tooltip": [ - "ix-typography" - ] - }, - "props": [ + }, { - "name": "icon", - "type": "string", + "name": "itemCount", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "item-count", "reflectToAttr": false, - "docs": "Icon of the category", + "docs": "Number of items shown at once.\nCan only be changed in advaced mode.", "docsTags": [], + "default": "15", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "label", - "type": "string", + "name": "selectedPage", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, - "mutable": false, - "attr": "label", + "mutable": true, + "attr": "selected-page", "reflectToAttr": false, - "docs": "Display name of the category", + "docs": "Zero based index of currently selected page", "docsTags": [], + "default": "0", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "notifications", - "type": "number", + "name": "showItemCount", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "notifications", + "attr": "show-item-count", "reflectToAttr": false, - "docs": "Show notification count on the category", + "docs": "Show item count in advanced mode", "docsTags": [], + "default": "true", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, "required": false } ], - "methods": [], - "events": [], + "methods": [], + "events": [ + { + "event": "itemCountChanged", + "detail": "number", + "bubbles": true, + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Item count change event", + "docsTags": [] + }, + { + "event": "pageSelected", + "detail": "number", + "bubbles": true, + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Page selection event", + "docsTags": [] + } + ], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "closeOtherCategories", - "target": "window", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { - "dirPath": "src/components/menu-item", - "filePath": "src/components/menu-item/menu-item.tsx", - "fileName": "menu-item.tsx", - "readmePath": "src/components/menu-item/readme.md", - "usagesDir": "src/components/menu-item/usage", - "tag": "ix-menu-item", + "dirPath": "src/components/pane", + "filePath": "src/components/pane/pane.tsx", + "fileName": "pane.tsx", + "readmePath": "src/components/pane/readme.md", + "usagesDir": "src/components/pane/usage", + "tag": "ix-pane", "overview": "", "usage": {}, "docs": "", "docsTags": [ { - "name": "slot", - "text": "menu-item-label Custom label" + "name": "since", + "text": "2.1.0" } ], "encapsulation": "shadow", - "dependents": [ - "ix-menu", - "ix-menu-category" - ], + "dependents": [], "dependencies": [ - "ix-tooltip" + "ix-icon-button", + "ix-typography" ], "dependencyGraph": { - "ix-menu-item": [ - "ix-tooltip" - ], - "ix-tooltip": [ + "ix-pane": [ + "ix-icon-button", "ix-typography" ], - "ix-menu": [ - "ix-menu-item" - ], - "ix-menu-category": [ - "ix-menu-item" + "ix-icon-button": [ + "ix-spinner" ] }, "props": [ { - "name": "active", + "name": "borderless", "type": "boolean", "complexType": { "original": "boolean", @@ -10758,9 +14683,9 @@ "references": {} }, "mutable": false, - "attr": "active", + "attr": "borderless", "reflectToAttr": false, - "docs": "State to display active", + "docs": "Toggle the border of the pane.\nDefaults to the borderless attribute of the pane layout. If used standalone it defaults to false.", "docsTags": [], "default": "false", "values": [ @@ -10772,61 +14697,58 @@ "required": false }, { - "name": "bottom", - "type": "boolean", + "name": "composition", + "type": "\"bottom\" | \"left\" | \"right\" | \"top\"", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "bottom", - "reflectToAttr": false, - "docs": "Caution: this is no longer working. Please use slot=\"bottom\" instead.\n\nPlace tab on bottom", - "docsTags": [], - "default": "false", - "values": [ - { - "type": "boolean" + "original": "Composition", + "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"", + "references": { + "Composition": { + "location": "local", + "path": "src/components/pane/pane.tsx", + "id": "src/components/pane/pane.tsx::Composition" + } } - ], - "optional": false, - "required": false - }, - { - "name": "disabled", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} }, - "mutable": false, - "attr": "disabled", + "mutable": true, + "attr": "composition", "reflectToAttr": false, - "docs": "Disable tab and remove event handlers", + "docs": "Defines the position of the pane inside it's container.\nInside a pane layout this property will automatically be set to the name of slot the pane is assigned to.", "docsTags": [], - "default": "false", + "default": "'top'", "values": [ { - "type": "boolean" + "value": "bottom", + "type": "string" + }, + { + "value": "left", + "type": "string" + }, + { + "value": "right", + "type": "string" + }, + { + "value": "top", + "type": "string" } ], "optional": false, "required": false }, { - "name": "home", + "name": "expanded", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "home", + "mutable": true, + "attr": "expanded", "reflectToAttr": false, - "docs": "Move the Tab to a top position.", + "docs": "State of the pane", "docsTags": [], "default": "false", "values": [ @@ -10838,33 +14760,7 @@ "required": false }, { - "name": "icon", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": true, - "attr": "icon", - "reflectToAttr": false, - "docs": "Name of the icon you want to display. Icon names can be resolved from the documentation", - "docsTags": [ - { - "name": "link", - "text": "https://ix.siemens.io/docs/icon-library/icons" - } - ], - "values": [ - { - "type": "string" - } - ], - "optional": true, - "required": false - }, - { - "name": "label", + "name": "heading", "type": "string", "complexType": { "original": "string", @@ -10872,15 +14768,10 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "heading", "reflectToAttr": false, - "docs": "Label of the menu item. Will also be used as tooltip text", - "docsTags": [ - { - "name": "since", - "text": "2.2.0" - } - ], + "docs": "Title of the side panel", + "docsTags": [], "values": [ { "type": "string" @@ -10890,136 +14781,89 @@ "required": false }, { - "name": "notifications", - "type": "number", + "name": "hideOnCollapse", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "notifications", + "attr": "hide-on-collapse", "reflectToAttr": false, - "docs": "Show notification count on tab", + "docs": "Define if the pane should have a collapsed state", "docsTags": [], - "values": [ - { - "type": "number" - } - ], - "optional": true, - "required": false - }, - { - "name": "tabIcon", - "type": "string", - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "mutable": true, - "attr": "tab-icon", - "reflectToAttr": false, - "docs": "Name of the icon you want to display. Icon names can be resolved from the documentation", - "docsTags": [ - { - "name": "link", - "text": "https://ix.siemens.io/docs/icon-library/icons" - }, - { - "name": "deprecated", - "text": "since 2.0.0 use `icon` property. Will be removed in 3.0.0" - } - ], - "deprecation": "since 2.0.0 use `icon` property. Will be removed in 3.0.0", - "values": [ - { - "type": "string" - } - ], - "optional": true, - "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [ - { - "name": "menu-item-label Custom label", - "docs": "" - } - ], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/menu-settings", - "filePath": "src/components/menu-settings/menu-settings.tsx", - "fileName": "menu-settings.tsx", - "readmePath": "src/components/menu-settings/readme.md", - "usagesDir": "src/components/menu-settings/usage", - "tag": "ix-menu-settings", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-tab-item", - "ix-icon-button", - "ix-tabs" - ], - "dependencyGraph": { - "ix-menu-settings": [ - "ix-tab-item", - "ix-icon-button", - "ix-tabs" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, { - "name": "activeTabLabel", + "name": "icon", "type": "string", "complexType": { "original": "string", "resolved": "string", "references": {} }, - "mutable": true, - "attr": "active-tab-label", + "mutable": false, + "attr": "icon", "reflectToAttr": false, - "docs": "Active tab", + "docs": "Name of the icon", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "label", - "type": "string", + "name": "size", + "type": "\"240px\" | \"320px\" | \"33%\" | \"360px\" | \"480px\" | \"50%\" | \"600px\"", "complexType": { - "original": "string", - "resolved": "string", + "original": "| '240px'\n | '320px'\n | '360px'\n | '480px'\n | '600px'\n | '33%'\n | '50%'", + "resolved": "\"240px\" | \"320px\" | \"33%\" | \"360px\" | \"480px\" | \"50%\" | \"600px\"", "references": {} }, "mutable": false, - "attr": "label", + "attr": "size", "reflectToAttr": false, - "docs": "Label of first tab", + "docs": "The maximum size of the sidebar, when it is expanded", "docsTags": [], - "default": "'Settings'", + "default": "'240px'", "values": [ { + "value": "240px", + "type": "string" + }, + { + "value": "320px", + "type": "string" + }, + { + "value": "33%", + "type": "string" + }, + { + "value": "360px", + "type": "string" + }, + { + "value": "480px", + "type": "string" + }, + { + "value": "50%", + "type": "string" + }, + { + "value": "600px", "type": "string" } ], @@ -11027,22 +14871,27 @@ "required": false }, { - "name": "show", - "type": "boolean", + "name": "variant", + "type": "\"floating\" | \"inline\"", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "'floating' | 'inline'", + "resolved": "\"floating\" | \"inline\"", "references": {} }, "mutable": false, - "attr": "show", + "attr": "variant", "reflectToAttr": false, - "docs": "Internal", + "docs": "Variant of the side pane.\nDefaults to the variant attribute of the pane layout. If used standalone it defaults to inline.", "docsTags": [], - "default": "false", + "default": "'inline'", "values": [ { - "type": "boolean" + "value": "floating", + "type": "string" + }, + { + "value": "inline", + "type": "string" } ], "optional": false, @@ -11052,23 +14901,63 @@ "methods": [], "events": [ { - "event": "close", - "detail": "CustomCloseEvent", + "event": "borderlessChanged", + "detail": "{ slot: string; borderless: boolean; }", "bubbles": true, "complexType": { - "original": "CustomCloseEvent", - "resolved": "CustomCloseEvent", + "original": "BorderlessChangedEvent", + "resolved": "{ slot: string; borderless: boolean; }", "references": { - "CustomCloseEvent": { - "location": "import", - "path": "../utils/menu-tabs/menu-tabs-utils", - "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomCloseEvent" + "BorderlessChangedEvent": { + "location": "local", + "path": "src/components/pane/pane.tsx", + "id": "src/components/pane/pane.tsx::BorderlessChangedEvent" } } }, "cancelable": true, "composed": true, - "docs": "Popover closed", + "docs": "This event is triggered when the variant of the pane is changed", + "docsTags": [] + }, + { + "event": "expandedChanged", + "detail": "{ slot: string; expanded: boolean; }", + "bubbles": true, + "complexType": { + "original": "ExpandedChangedEvent", + "resolved": "{ slot: string; expanded: boolean; }", + "references": { + "ExpandedChangedEvent": { + "location": "local", + "path": "src/components/pane/pane.tsx", + "id": "src/components/pane/pane.tsx::ExpandedChangedEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "This event is triggered when the pane either expands or contracts", + "docsTags": [] + }, + { + "event": "variantChanged", + "detail": "{ slot: string; variant: \"floating\" | \"inline\"; }", + "bubbles": true, + "complexType": { + "original": "VariantChangedEvent", + "resolved": "{ slot: string; variant: \"floating\" | \"inline\"; }", + "references": { + "VariantChangedEvent": { + "location": "local", + "path": "src/components/pane/pane.tsx", + "id": "src/components/pane/pane.tsx::VariantChangedEvent" + } + } + }, + "cancelable": true, + "composed": true, + "docs": "This event is triggered when the variant of the pane is changed", "docsTags": [] } ], @@ -11078,98 +14967,144 @@ "listeners": [] }, { - "dirPath": "src/components/menu-settings-item", - "filePath": "src/components/menu-settings-item/menu-settings-item.tsx", - "fileName": "menu-settings-item.tsx", - "readmePath": "src/components/menu-settings-item/readme.md", - "usagesDir": "src/components/menu-settings-item/usage", - "tag": "ix-menu-settings-item", + "dirPath": "src/components/pane-layout", + "filePath": "src/components/pane-layout/pane-layout.tsx", + "fileName": "pane-layout.tsx", + "readmePath": "src/components/pane-layout/readme.md", + "usagesDir": "src/components/pane-layout/usage", + "tag": "ix-pane-layout", "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "since", + "text": "2.1.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [], "dependencyGraph": {}, "props": [ { - "name": "label", - "type": "string", + "name": "borderless", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "label", - "reflectToAttr": true, - "docs": "Settings Item label", + "attr": "borderless", + "reflectToAttr": false, + "docs": "Set the default border state for all panes in the layout", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "labelChange", - "detail": "CustomLabelChangeEvent", - "bubbles": true, + "name": "layout", + "type": "\"full-horizontal\" | \"full-vertical\"", "complexType": { - "original": "CustomLabelChangeEvent", - "resolved": "CustomLabelChangeEvent", - "references": { - "CustomLabelChangeEvent": { - "location": "import", - "path": "../utils/menu-tabs/menu-tabs-utils", - "id": "src/components/utils/menu-tabs/menu-tabs-utils.ts::CustomLabelChangeEvent" - } + "original": "'full-vertical' | 'full-horizontal'", + "resolved": "\"full-horizontal\" | \"full-vertical\"", + "references": {} + }, + "mutable": false, + "attr": "layout", + "reflectToAttr": false, + "docs": "Choose the layout of the panes.\nWhen set to 'full-vertical' the vertical panes (left, right) will get the full height.\nWhen set to 'full-horizontal' the horizontal panes (top, bottom) will get the full width.", + "docsTags": [], + "default": "'full-vertical'", + "values": [ + { + "value": "full-horizontal", + "type": "string" + }, + { + "value": "full-vertical", + "type": "string" } + ], + "optional": false, + "required": false + }, + { + "name": "variant", + "type": "\"floating\" | \"inline\"", + "complexType": { + "original": "'floating' | 'inline'", + "resolved": "\"floating\" | \"inline\"", + "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Label changed", - "docsTags": [] + "mutable": false, + "attr": "variant", + "reflectToAttr": false, + "docs": "Set the default variant for all panes in the layout", + "docsTags": [], + "default": "'inline'", + "values": [ + { + "value": "floating", + "type": "string" + }, + { + "value": "inline", + "type": "string" + } + ], + "optional": false, + "required": false } ], + "methods": [], + "events": [], "styles": [], "slots": [], "parts": [], - "listeners": [] + "listeners": [ + { + "event": "slotChanged", + "capture": false, + "passive": false + }, + { + "event": "hideOnCollapseChanged", + "capture": false, + "passive": false + }, + { + "event": "variantChanged", + "capture": false, + "passive": false + } + ] }, { - "dirPath": "src/components/message-bar", - "filePath": "src/components/message-bar/message-bar.tsx", - "fileName": "message-bar.tsx", - "readmePath": "src/components/message-bar/readme.md", - "usagesDir": "src/components/message-bar/usage", - "tag": "ix-message-bar", + "dirPath": "src/components/pill", + "filePath": "src/components/pill/pill.tsx", + "fileName": "pill.tsx", + "readmePath": "src/components/pill/readme.md", + "usagesDir": "src/components/pill/usage", + "tag": "ix-pill", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", "dependents": [], - "dependencies": [ - "ix-icon-button" - ], - "dependencyGraph": { - "ix-message-bar": [ - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, + "dependencies": [], + "dependencyGraph": {}, "props": [ { - "name": "dismissible", + "name": "alignLeft", "type": "boolean", "complexType": { "original": "boolean", @@ -11177,11 +15112,11 @@ "references": {} }, "mutable": false, - "attr": "dismissible", + "attr": "align-left", "reflectToAttr": false, - "docs": "If true, close button is enabled and alert can be dismissed by the user", + "docs": "Align pill content left", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -11191,77 +15126,76 @@ "required": false }, { - "name": "type", - "type": "\"danger\" | \"info\" | \"warning\"", + "name": "background", + "type": "string", "complexType": { - "original": "'danger' | 'warning' | 'info'", - "resolved": "\"danger\" | \"info\" | \"warning\"", + "original": "string | undefined", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "type", + "attr": "background", "reflectToAttr": false, - "docs": "Specifies the type of the alert.", + "docs": "Custom color for pill. Only working for `variant='custom'`", "docsTags": [], - "default": "'info'", "values": [ { - "value": "danger", "type": "string" - }, + } + ], + "optional": false, + "required": false + }, + { + "name": "color", + "type": "string", + "complexType": { + "original": "string | undefined", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "color", + "reflectToAttr": false, + "docs": "Custom font color for pill. Only working for `variant='custom'`", + "docsTags": [ { - "value": "info", - "type": "string" - }, + "name": "deprecated", + "text": "since 2.1.0 use `pill-color`" + } + ], + "deprecation": "since 2.1.0 use `pill-color`", + "values": [ { - "value": "warning", "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "closedChange", - "detail": "any", - "bubbles": true, + "name": "icon", + "type": "string", "complexType": { - "original": "any", - "resolved": "any", + "original": "string | undefined", + "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "An event emitted when the close button is clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/modal", - "filePath": "src/components/modal/modal.tsx", - "fileName": "modal.tsx", - "readmePath": "src/components/modal/readme.md", - "usagesDir": "src/components/modal/usage", - "tag": "ix-modal", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [ + "mutable": false, + "attr": "icon", + "reflectToAttr": false, + "docs": "Show icon", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false + }, { - "name": "animation", + "name": "outline", "type": "boolean", "complexType": { "original": "boolean", @@ -11269,11 +15203,11 @@ "references": {} }, "mutable": false, - "attr": "animation", + "attr": "outline", "reflectToAttr": false, - "docs": "Should the modal be animated", + "docs": "Show pill as outline", "docsTags": [], - "default": "true", + "default": "false", "values": [ { "type": "boolean" @@ -11283,206 +15217,301 @@ "required": false }, { - "name": "backdrop", - "type": "boolean", + "name": "pillColor", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string | undefined", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "backdrop", + "attr": "pill-color", "reflectToAttr": false, - "docs": "Show a backdrop behind the modal dialog", + "docs": "Custom font color for pill. Only working for `variant='custom'`", "docsTags": [], - "default": "true", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "beforeDismiss", - "type": "(reason?: any) => boolean | Promise", + "name": "variant", + "type": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", + "complexType": { + "original": "| 'primary'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'custom'", + "resolved": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", + "references": {} + }, + "mutable": false, + "attr": "variant", + "reflectToAttr": true, + "docs": "Pill variant", + "docsTags": [], + "default": "'primary'", + "values": [ + { + "value": "alarm", + "type": "string" + }, + { + "value": "critical", + "type": "string" + }, + { + "value": "custom", + "type": "string" + }, + { + "value": "info", + "type": "string" + }, + { + "value": "neutral", + "type": "string" + }, + { + "value": "primary", + "type": "string" + }, + { + "value": "success", + "type": "string" + }, + { + "value": "warning", + "type": "string" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/push-card", + "filePath": "src/components/push-card/push-card.tsx", + "fileName": "push-card.tsx", + "readmePath": "src/components/push-card/readme.md", + "usagesDir": "src/components/push-card/usage", + "tag": "ix-push-card", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "1.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-card", + "ix-card-content", + "ix-card-title", + "ix-typography", + "ix-card-accordion" + ], + "dependencyGraph": { + "ix-push-card": [ + "ix-card", + "ix-card-content", + "ix-card-title", + "ix-typography", + "ix-card-accordion" + ] + }, + "props": [ + { + "name": "collapse", + "type": "boolean", "complexType": { - "original": "(reason?: any) => boolean | Promise", - "resolved": "(reason?: any) => boolean | Promise", - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, + "attr": "collapse", "reflectToAttr": false, - "docs": "Is called before the modal is dismissed.\n\n- Return `true` to proceed in dismissing the modal\n- Return `false` to abort in dismissing the modal", - "docsTags": [], - "values": [ + "docs": "Collapse the card", + "docsTags": [ { - "type": "(reason?: any) => boolean" - }, + "name": "since", + "text": "2.1.0" + } + ], + "default": "true", + "values": [ { - "type": "Promise" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "centered", - "type": "boolean", + "name": "heading", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "centered", + "attr": "heading", "reflectToAttr": false, - "docs": "Centered modal", + "docs": "Card heading", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "closeOnBackdropClick", - "type": "boolean", + "name": "icon", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string | undefined", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "close-on-backdrop-click", + "attr": "icon", "reflectToAttr": false, - "docs": "Dismiss modal on backdrop click", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], - "default": "false", + "docs": "Card icon", + "docsTags": [], + "default": "undefined", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "closeOnEscape", - "type": "boolean", + "name": "notification", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "close-on-escape", + "attr": "notification", "reflectToAttr": false, - "docs": "If set to true the modal can be closed by pressing the Escape key", + "docs": "Card KPI value", "docsTags": [], - "default": "true", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "keyboard", - "type": "boolean", + "name": "subheading", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "keyboard", + "attr": "subheading", "reflectToAttr": false, - "docs": "Use ESC to dismiss the modal", - "docsTags": [ - { - "name": "deprecated", - "text": "- Use closeOnEscape instead" - } - ], - "default": "true", - "deprecation": "- Use closeOnEscape instead", + "docs": "Card subheading", + "docsTags": [], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "size", - "type": "\"360\" | \"480\" | \"600\" | \"720\" | \"840\" | \"full-screen\" | \"full-width\"", + "name": "variant", + "type": "\"alarm\" | \"critical\" | \"filled\" | \"info\" | \"insight\" | \"neutral\" | \"notification\" | \"outline\" | \"primary\" | \"success\" | \"warning\"", "complexType": { - "original": "IxModalSize", - "resolved": "\"360\" | \"480\" | \"600\" | \"720\" | \"840\" | \"full-screen\" | \"full-width\"", + "original": "PushCardVariant", + "resolved": "\"alarm\" | \"critical\" | \"filled\" | \"info\" | \"insight\" | \"neutral\" | \"notification\" | \"outline\" | \"primary\" | \"success\" | \"warning\"", "references": { - "IxModalSize": { + "PushCardVariant": { "location": "local", - "path": "src/components/modal/modal.tsx", - "id": "src/components/modal/modal.tsx::IxModalSize" + "path": "src/components/push-card/push-card.tsx", + "id": "src/components/push-card/push-card.tsx::PushCardVariant" } } }, "mutable": false, - "attr": "size", + "attr": "variant", "reflectToAttr": false, - "docs": "Modal size", + "docs": "Card variant", "docsTags": [ { - "name": "since", - "text": "2.0.0" + "name": "deprecated", + "text": "variant \"insight\" and \"notification\" will be removed in 3.0. Use \"outline\" or \"filled\" instead." } ], - "default": "'360'", + "default": "'insight'", + "deprecation": "variant \"insight\" and \"notification\" will be removed in 3.0. Use \"outline\" or \"filled\" instead.", "values": [ { - "value": "360", + "value": "alarm", "type": "string" }, { - "value": "480", + "value": "critical", "type": "string" }, { - "value": "600", + "value": "filled", "type": "string" }, { - "value": "720", + "value": "info", "type": "string" }, { - "value": "840", + "value": "insight", "type": "string" }, { - "value": "full-screen", + "value": "neutral", "type": "string" }, { - "value": "full-width", + "value": "notification", + "type": "string" + }, + { + "value": "outline", + "type": "string" + }, + { + "value": "primary", + "type": "string" + }, + { + "value": "success", + "type": "string" + }, + { + "value": "warning", "type": "string" } ], @@ -11490,137 +15519,180 @@ "required": false } ], - "methods": [ + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/radio", + "filePath": "src/components/radio/radio.tsx", + "fileName": "radio.tsx", + "readmePath": "src/components/radio/readme.md", + "usagesDir": "src/components/radio/usage", + "tag": "ix-radio", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "name": "closeModal", - "returns": { - "type": "Promise", - "docs": "" + "name": "since", + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-typography" + ], + "dependencyGraph": { + "ix-radio": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "checked", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} }, + "mutable": true, + "attr": "checked", + "reflectToAttr": true, + "docs": "Checked state of the radio component", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "disabled", + "type": "boolean", "complexType": { - "signature": "(reason: T) => Promise", - "parameters": [ - { - "name": "reason", - "type": "T", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - }, - "T": { - "location": "global", - "id": "global::T" - } - }, - "return": "Promise" + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "Disabled state of the radio component", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "label", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "closeModal(reason: T) => Promise", - "parameters": [ + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Label for the radio component", + "docsTags": [], + "values": [ { - "name": "reason", - "type": "T", - "docs": "" + "type": "string" } ], - "docs": "Close the dialog", - "docsTags": [] + "optional": true, + "required": false }, { - "name": "dismissModal", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "name", + "type": "string", "complexType": { - "signature": "(reason?: T) => Promise", - "parameters": [ - { - "name": "reason", - "type": "T", - "docs": "" - } - ], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - }, - "T": { - "location": "global", - "id": "global::T" - } - }, - "return": "Promise" + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "dismissModal(reason?: T) => Promise", - "parameters": [ + "mutable": false, + "attr": "name", + "reflectToAttr": true, + "docs": "Name of the radio component", + "docsTags": [], + "values": [ { - "name": "reason", - "type": "T", - "docs": "" + "type": "string" } ], - "docs": "Dismiss the dialog", - "docsTags": [] + "optional": true, + "required": false }, { - "name": "showModal", - "returns": { - "type": "Promise", - "docs": "" - }, + "name": "value", + "type": "string", "complexType": { - "signature": "() => Promise", - "parameters": [], - "references": { - "Promise": { - "location": "global", - "id": "global::Promise" - }, - "HTMLDialogElement": { - "location": "global", - "id": "global::HTMLDialogElement" - } - }, - "return": "Promise" + "original": "string", + "resolved": "string", + "references": {} }, - "signature": "showModal() => Promise", - "parameters": [], - "docs": "Show the dialog", - "docsTags": [] + "mutable": false, + "attr": "value", + "reflectToAttr": true, + "docs": "Value of the radio component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false } ], + "methods": [], "events": [ { - "event": "dialogClose", - "detail": "any", + "event": "checkedChange", + "detail": "boolean", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", + "original": "boolean", + "resolved": "boolean", "references": {} }, "cancelable": true, "composed": true, - "docs": "Dialog close", + "docs": "Event emitted when the checked state of the radio changes", "docsTags": [] }, { - "event": "dialogDismiss", - "detail": "any", + "event": "valueChange", + "detail": "string", "bubbles": true, "complexType": { - "original": "any", - "resolved": "any", + "original": "string", + "resolved": "string", "references": {} }, "cancelable": true, "composed": true, - "docs": "Dialog cancel", + "docs": "Event emitted when the value of the radio changes", "docsTags": [] } ], @@ -11630,143 +15702,160 @@ "listeners": [] }, { - "dirPath": "src/components/modal-content", - "filePath": "src/components/modal-content/modal-content.tsx", - "fileName": "modal-content.tsx", - "readmePath": "src/components/modal-content/readme.md", - "usagesDir": "src/components/modal-content/usage", - "tag": "ix-modal-content", + "dirPath": "src/components/radio-group", + "filePath": "src/components/radio-group/radio-group.tsx", + "fileName": "radio-group.tsx", + "readmePath": "src/components/radio-group/readme.md", + "usagesDir": "src/components/radio-group/usage", + "tag": "ix-radio-group", "overview": "", "usage": {}, "docs": "", "docsTags": [ { "name": "since", - "text": "2.0.0" + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" } ], "encapsulation": "shadow", - "dependents": [ - "ix-application-switch-modal" - ], - "dependencies": [], - "dependencyGraph": { - "ix-application-switch-modal": [ - "ix-modal-content" - ] - }, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/playground", - "filePath": "src/components/playground/example-modal.tsx", - "fileName": "example-modal.tsx", - "readmePath": "src/components/playground/readme.md", - "usagesDir": "src/components/playground/usage", - "tag": "ix-modal-example", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "none", "dependents": [], "dependencies": [ - "ix-icon-button", - "ix-button" + "ix-field-wrapper" ], "dependencyGraph": { - "ix-modal-example": [ - "ix-icon-button", - "ix-button" + "ix-radio-group": [ + "ix-field-wrapper" ], - "ix-icon-button": [ - "ix-spinner" + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" ], - "ix-button": [ - "ix-spinner" + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" ] }, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/modal-footer", - "filePath": "src/components/modal-footer/modal-footer.tsx", - "fileName": "modal-footer.tsx", - "readmePath": "src/components/modal-footer/readme.md", - "usagesDir": "src/components/modal-footer/usage", - "tag": "ix-modal-footer", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ + "props": [ { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, - "props": [], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/modal-header", - "filePath": "src/components/modal-header/modal-header.tsx", - "fileName": "modal-header.tsx", - "readmePath": "src/components/modal-header/readme.md", - "usagesDir": "src/components/modal-header/usage", - "tag": "ix-modal-header", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ + "name": "direction", + "type": "\"column\" | \"row\"", + "complexType": { + "original": "'column' | 'row'", + "resolved": "\"column\" | \"row\"", + "references": {} + }, + "mutable": false, + "attr": "direction", + "reflectToAttr": false, + "docs": "Alignment of the radio buttons in the group", + "docsTags": [], + "default": "'column'", + "values": [ + { + "value": "column", + "type": "string" + }, + { + "value": "row", + "type": "string" + } + ], + "optional": false, + "required": false + }, + { + "name": "helperText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "helper-text", + "reflectToAttr": false, + "docs": "Show text below the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, { - "name": "since", - "text": "2.0.0" - } - ], - "encapsulation": "shadow", - "dependents": [ - "ix-application-switch-modal" - ], - "dependencies": [ - "ix-typography", - "ix-icon-button" - ], - "dependencyGraph": { - "ix-modal-header": [ - "ix-typography", - "ix-icon-button" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-application-switch-modal": [ - "ix-modal-header" - ] - }, - "props": [ + "name": "infoText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "info-text", + "reflectToAttr": false, + "docs": "Info text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, { - "name": "hideClose", + "name": "invalidText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "invalid-text", + "reflectToAttr": false, + "docs": "Error text for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "label", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Label for the field component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "showTextAsTooltip", "type": "boolean", "complexType": { "original": "boolean", @@ -11774,21 +15863,20 @@ "references": {} }, "mutable": false, - "attr": "hide-close", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "Hide the close button", + "docs": "Show helper, info, warning, error and valid text as tooltip", "docsTags": [], - "default": "false", "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", + "name": "validText", "type": "string", "complexType": { "original": "string", @@ -11796,9 +15884,9 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Icon of the Header", + "docs": "Valid text for the field component", "docsTags": [], "values": [ { @@ -11809,7 +15897,7 @@ "required": false }, { - "name": "iconColor", + "name": "value", "type": "string", "complexType": { "original": "string", @@ -11817,9 +15905,30 @@ "references": {} }, "mutable": false, - "attr": "icon-color", + "attr": "value", "reflectToAttr": false, - "docs": "Icon color", + "docs": "Value of the radiobutton group component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "warningText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "Warning text for the field component", "docsTags": [], "values": [ { @@ -11833,68 +15942,101 @@ "methods": [], "events": [ { - "event": "closeClick", - "detail": "MouseEvent", + "event": "valueChange", + "detail": "string", "bubbles": true, "complexType": { - "original": "MouseEvent", - "resolved": "MouseEvent", - "references": { - "MouseEvent": { - "location": "global", - "id": "global::MouseEvent" - } - } + "original": "string", + "resolved": "string", + "references": {} }, "cancelable": true, "composed": true, - "docs": "Emits when close icon is clicked and closes the modal\nCan be prevented, in which case only the event is triggered, and the modal remains open", + "docs": "Event emitted when the value of the radiobutton group changes", "docsTags": [] } ], "styles": [], "slots": [], "parts": [], - "listeners": [] + "listeners": [ + { + "event": "checkedChange", + "capture": false, + "passive": false + } + ] }, { - "dirPath": "src/components/pagination", - "filePath": "src/components/pagination/pagination.tsx", - "fileName": "pagination.tsx", - "readmePath": "src/components/pagination/readme.md", - "usagesDir": "src/components/pagination/usage", - "tag": "ix-pagination", + "dirPath": "src/components/row", + "filePath": "src/components/row/row.tsx", + "fileName": "row.tsx", + "readmePath": "src/components/row/readme.md", + "usagesDir": "src/components/row/usage", + "tag": "ix-row", "overview": "", "usage": {}, "docs": "", "docsTags": [ { "name": "since", - "text": "1.5.0" + "text": "2.0.0" } ], "encapsulation": "shadow", - "dependents": [], + "dependents": [ + "ix-date-dropdown", + "ix-datetime-picker" + ], + "dependencies": [], + "dependencyGraph": { + "ix-date-dropdown": [ + "ix-row" + ], + "ix-datetime-picker": [ + "ix-row" + ] + }, + "props": [], + "methods": [], + "events": [], + "styles": [], + "slots": [], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/select", + "filePath": "src/components/select/select.tsx", + "fileName": "select.tsx", + "readmePath": "src/components/select/readme.md", + "usagesDir": "src/components/select/usage", + "tag": "ix-select", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "form-ready", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [ + "ix-pagination" + ], "dependencies": [ - "ix-icon-button", - "ix-typography", - "ix-select", "ix-select-item", - "ix-spinner" + "ix-field-wrapper", + "ix-filter-chip", + "ix-icon-button", + "ix-dropdown", + "ix-dropdown-item" ], "dependencyGraph": { - "ix-pagination": [ - "ix-icon-button", - "ix-typography", - "ix-select", - "ix-select-item", - "ix-spinner" - ], - "ix-icon-button": [ - "ix-spinner" - ], "ix-select": [ "ix-select-item", + "ix-field-wrapper", "ix-filter-chip", "ix-icon-button", "ix-dropdown", @@ -11903,13 +16045,74 @@ "ix-select-item": [ "ix-dropdown-item" ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ], "ix-filter-chip": [ "ix-icon-button" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-pagination": [ + "ix-select" ] }, "props": [ { - "name": "advanced", + "name": "allowClear", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "allow-clear", + "reflectToAttr": false, + "docs": "Show clear button", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "disabled", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "disabled", + "reflectToAttr": false, + "docs": "If true the select will be in disabled state", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, + { + "name": "editable", "type": "boolean", "complexType": { "original": "boolean", @@ -11917,9 +16120,9 @@ "references": {} }, "mutable": false, - "attr": "advanced", + "attr": "editable", "reflectToAttr": false, - "docs": "Advanced mode", + "docs": "Select is extendable", "docsTags": [], "default": "false", "values": [ @@ -11931,28 +16134,60 @@ "required": false }, { - "name": "count", - "type": "number", + "name": "helperText", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "count", + "attr": "helper-text", "reflectToAttr": false, - "docs": "Total number of pages", - "docsTags": [], + "docs": "Helper text for the select component", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { - "type": "number" + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "hideListHeader", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "hide-list-header", + "reflectToAttr": false, + "docs": "Hide list header", + "docsTags": [ + { + "name": "since", + "text": "1.5.0" + } + ], + "default": "false", + "values": [ + { + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "i18nItems", + "name": "i18nNoMatches", "type": "string", "complexType": { "original": "string", @@ -11960,11 +16195,16 @@ "references": {} }, "mutable": false, - "attr": "i-1-8n-items", + "attr": "i-1-8n-no-matches", "reflectToAttr": false, - "docs": "/**\n i18n", - "docsTags": [], - "default": "'Items'", + "docs": "Information inside of dropdown if no items where found with current filter text", + "docsTags": [ + { + "name": "since", + "text": "1.5.0" + } + ], + "default": "'No matches'", "values": [ { "type": "string" @@ -11974,7 +16214,7 @@ "required": false }, { - "name": "i18nOf", + "name": "i18nPlaceholder", "type": "string", "complexType": { "original": "string", @@ -11982,11 +16222,11 @@ "references": {} }, "mutable": false, - "attr": "i-1-8n-of", + "attr": "i-1-8n-placeholder", "reflectToAttr": false, - "docs": "i18n", + "docs": "Input field placeholder", "docsTags": [], - "default": "'of'", + "default": "'Select an option'", "values": [ { "type": "string" @@ -11996,7 +16236,7 @@ "required": false }, { - "name": "i18nPage", + "name": "i18nPlaceholderEditable", "type": "string", "complexType": { "original": "string", @@ -12004,11 +16244,11 @@ "references": {} }, "mutable": false, - "attr": "i-1-8n-page", + "attr": "i-1-8n-placeholder-editable", "reflectToAttr": false, - "docs": "i18n", + "docs": "Input field placeholder for editable select", "docsTags": [], - "default": "'Page'", + "default": "'Type of select option'", "values": [ { "type": "string" @@ -12018,216 +16258,198 @@ "required": false }, { - "name": "itemCount", - "type": "number", + "name": "i18nSelectListHeader", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "item-count", + "attr": "i-1-8n-select-list-header", "reflectToAttr": false, - "docs": "Number of items shown at once.\nCan only be changed in advaced mode.", + "docs": "Select list header", "docsTags": [], - "default": "15", + "default": "'Select an option'", "values": [ { - "type": "number" + "type": "string" } ], "optional": false, "required": false }, { - "name": "selectedPage", - "type": "number", + "name": "infoText", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, - "mutable": true, - "attr": "selected-page", + "mutable": false, + "attr": "info-text", "reflectToAttr": false, - "docs": "Zero based index of currently selected page", - "docsTags": [], - "default": "0", + "docs": "Info text for the select component", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { - "type": "number" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "showItemCount", - "type": "boolean", + "name": "invalidText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "show-item-count", + "attr": "invalid-text", "reflectToAttr": false, - "docs": "Show item count in advanced mode", - "docsTags": [], - "default": "true", + "docs": "Error text for the select component", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ + }, { - "event": "itemCountChanged", - "detail": "number", - "bubbles": true, + "name": "label", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Item count change event", - "docsTags": [] + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Label for the select component", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false }, { - "event": "pageSelected", - "detail": "number", - "bubbles": true, + "name": "mode", + "type": "\"multiple\" | \"single\"", "complexType": { - "original": "number", - "resolved": "number", + "original": "'single' | 'multiple'", + "resolved": "\"multiple\" | \"single\"", "references": {} }, - "cancelable": true, - "composed": true, - "docs": "Page selection event", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/pane", - "filePath": "src/components/pane/pane.tsx", - "fileName": "pane.tsx", - "readmePath": "src/components/pane/readme.md", - "usagesDir": "src/components/pane/usage", - "tag": "ix-pane", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-icon-button", - "ix-typography" - ], - "dependencyGraph": { - "ix-pane": [ - "ix-icon-button", - "ix-typography" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + "mutable": false, + "attr": "mode", + "reflectToAttr": false, + "docs": "Selection mode", + "docsTags": [], + "default": "'single'", + "values": [ + { + "value": "multiple", + "type": "string" + }, + { + "value": "single", + "type": "string" + } + ], + "optional": false, + "required": false + }, { - "name": "borderless", - "type": "boolean", + "name": "name", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "borderless", - "reflectToAttr": false, - "docs": "Toggle the border of the pane.\nDefaults to the borderless attribute of the pane layout. If used standalone it defaults to false.", - "docsTags": [], - "default": "false", + "attr": "name", + "reflectToAttr": true, + "docs": "A string that represents the element's name attribute,\ncontaining a name that identifies the element when submitting the form.", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "composition", - "type": "\"bottom\" | \"left\" | \"right\" | \"top\"", + "name": "readonly", + "type": "boolean", "complexType": { - "original": "Composition", - "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"", - "references": { - "Composition": { - "location": "local", - "path": "src/components/pane/pane.tsx", - "id": "src/components/pane/pane.tsx::Composition" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, - "mutable": true, - "attr": "composition", + "mutable": false, + "attr": "readonly", "reflectToAttr": false, - "docs": "Defines the position of the pane inside it's container.\nInside a pane layout this property will automatically be set to the name of slot the pane is assigned to.", + "docs": "If true the select will be in readonly mode", "docsTags": [], - "default": "'top'", + "default": "false", "values": [ { - "value": "bottom", - "type": "string" - }, - { - "value": "left", - "type": "string" - }, - { - "value": "right", - "type": "string" - }, - { - "value": "top", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "expanded", + "name": "required", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": true, - "attr": "expanded", - "reflectToAttr": false, - "docs": "State of the pane", - "docsTags": [], + "mutable": false, + "attr": "required", + "reflectToAttr": true, + "docs": "A Boolean attribute indicating that an option with a non-empty string value must be selected", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "default": "false", "values": [ { @@ -12238,28 +16460,37 @@ "required": false }, { - "name": "heading", - "type": "string", + "name": "selectedIndices", + "type": "string | string[]", "complexType": { - "original": "string", - "resolved": "string", + "original": "string | string[]", + "resolved": "string | string[]", "references": {} }, - "mutable": false, - "attr": "heading", + "mutable": true, + "attr": "selected-indices", "reflectToAttr": false, - "docs": "Title of the side panel", - "docsTags": [], + "docs": "Indices of selected items.\nThis corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list.", + "docsTags": [ + { + "name": "deprecated", + "text": "since 2.0.0. Use the `value` property instead." + } + ], + "deprecation": "since 2.0.0. Use the `value` property instead.", "values": [ { "type": "string" + }, + { + "type": "string[]" } ], "optional": true, "required": false }, { - "name": "hideOnCollapse", + "name": "showTextAsTooltip", "type": "boolean", "complexType": { "original": "boolean", @@ -12267,21 +16498,25 @@ "references": {} }, "mutable": false, - "attr": "hide-on-collapse", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "Define if the pane should have a collapsed state", - "docsTags": [], - "default": "false", + "docs": "Show helper, error, info, warning text as tooltip", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", + "name": "validText", "type": "string", "complexType": { "original": "string", @@ -12289,10 +16524,15 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Name of the icon", - "docsTags": [], + "docs": "Valid text for the select component", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + } + ], "values": [ { "type": "string" @@ -12302,287 +16542,387 @@ "required": false }, { - "name": "size", - "type": "\"240px\" | \"320px\" | \"33%\" | \"360px\" | \"480px\" | \"50%\" | \"600px\"", + "name": "value", + "type": "string | string[]", "complexType": { - "original": "| '240px'\n | '320px'\n | '360px'\n | '480px'\n | '600px'\n | '33%'\n | '50%'", - "resolved": "\"240px\" | \"320px\" | \"33%\" | \"360px\" | \"480px\" | \"50%\" | \"600px\"", + "original": "string | string[]", + "resolved": "string | string[]", "references": {} }, - "mutable": false, - "attr": "size", + "mutable": true, + "attr": "value", "reflectToAttr": false, - "docs": "The maximum size of the sidebar, when it is expanded", - "docsTags": [], - "default": "'240px'", - "values": [ - { - "value": "240px", - "type": "string" - }, - { - "value": "320px", - "type": "string" - }, + "docs": "Current selected value.\nThis corresponds to the value property of ix-select-items", + "docsTags": [ { - "value": "33%", - "type": "string" - }, + "name": "since", + "text": "2.0.0" + } + ], + "default": "[]", + "values": [ { - "value": "360px", "type": "string" }, { - "value": "480px", - "type": "string" - }, + "type": "string[]" + } + ], + "optional": false, + "required": false + }, + { + "name": "warningText", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "warning-text", + "reflectToAttr": false, + "docs": "Warning text for the select component", + "docsTags": [ { - "value": "50%", - "type": "string" - }, + "name": "since", + "text": "2.6.0" + } + ], + "values": [ { - "value": "600px", "type": "string" } ], - "optional": false, + "optional": true, "required": false + } + ], + "methods": [ + { + "name": "focusInput", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "focusInput() => Promise", + "parameters": [], + "docs": "Focuses the input field", + "docsTags": [] }, { - "name": "variant", - "type": "\"floating\" | \"inline\"", + "name": "getNativeInputElement", + "returns": { + "type": "Promise", + "docs": "" + }, "complexType": { - "original": "'floating' | 'inline'", - "resolved": "\"floating\" | \"inline\"", + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLInputElement": { + "location": "global", + "id": "global::HTMLInputElement" + } + }, + "return": "Promise" + }, + "signature": "getNativeInputElement() => Promise", + "parameters": [], + "docs": "Returns the native input element used in the component.", + "docsTags": [] + } + ], + "events": [ + { + "event": "addItem", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Item added to selection", + "docsTags": [] + }, + { + "event": "inputChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", "references": {} }, - "mutable": false, - "attr": "variant", - "reflectToAttr": false, - "docs": "Variant of the side pane.\nDefaults to the variant attribute of the pane layout. If used standalone it defaults to inline.", - "docsTags": [], - "default": "'inline'", - "values": [ - { - "value": "floating", - "type": "string" - }, + "cancelable": true, + "composed": true, + "docs": "Event dispatched whenever the text input changes.", + "docsTags": [ { - "value": "inline", - "type": "string" + "name": "since", + "text": "2.0.0" } - ], - "optional": false, - "required": false - } - ], - "methods": [], - "events": [ + ] + }, { - "event": "borderlessChanged", - "detail": "{ slot: string; borderless: boolean; }", + "event": "itemSelectionChange", + "detail": "string[]", "bubbles": true, "complexType": { - "original": "BorderlessChangedEvent", - "resolved": "{ slot: string; borderless: boolean; }", - "references": { - "BorderlessChangedEvent": { - "location": "local", - "path": "src/components/pane/pane.tsx", - "id": "src/components/pane/pane.tsx::BorderlessChangedEvent" - } - } + "original": "string[]", + "resolved": "string[]", + "references": {} }, "cancelable": true, "composed": true, - "docs": "This event is triggered when the variant of the pane is changed", - "docsTags": [] + "docs": "Item selection changed", + "docsTags": [ + { + "name": "deprecated", + "text": "since 2.0.0. Use `valueChange` instead." + } + ], + "deprecation": "since 2.0.0. Use `valueChange` instead." }, { - "event": "expandedChanged", - "detail": "{ slot: string; expanded: boolean; }", + "event": "ixBlur", + "detail": "void", "bubbles": true, "complexType": { - "original": "ExpandedChangedEvent", - "resolved": "{ slot: string; expanded: boolean; }", - "references": { - "ExpandedChangedEvent": { - "location": "local", - "path": "src/components/pane/pane.tsx", - "id": "src/components/pane/pane.tsx::ExpandedChangedEvent" - } - } + "original": "void", + "resolved": "void", + "references": {} }, "cancelable": true, "composed": true, - "docs": "This event is triggered when the pane either expands or contracts", + "docs": "Blur input", "docsTags": [] }, { - "event": "variantChanged", - "detail": "{ slot: string; variant: \"floating\" | \"inline\"; }", + "event": "valueChange", + "detail": "string | string[]", "bubbles": true, "complexType": { - "original": "VariantChangedEvent", - "resolved": "{ slot: string; variant: \"floating\" | \"inline\"; }", - "references": { - "VariantChangedEvent": { - "location": "local", - "path": "src/components/pane/pane.tsx", - "id": "src/components/pane/pane.tsx::VariantChangedEvent" - } - } + "original": "string | string[]", + "resolved": "string | string[]", + "references": {} }, "cancelable": true, "composed": true, - "docs": "This event is triggered when the variant of the pane is changed", - "docsTags": [] + "docs": "Value changed", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ] } ], "styles": [], "slots": [], "parts": [], - "listeners": [] + "listeners": [ + { + "event": "itemClick", + "capture": false, + "passive": false + }, + { + "event": "ix-select-item:valueChange", + "capture": false, + "passive": false + }, + { + "event": "ix-select-item:labelChange", + "capture": false, + "passive": false + } + ] }, { - "dirPath": "src/components/pane-layout", - "filePath": "src/components/pane-layout/pane-layout.tsx", - "fileName": "pane-layout.tsx", - "readmePath": "src/components/pane-layout/readme.md", - "usagesDir": "src/components/pane-layout/usage", - "tag": "ix-pane-layout", + "dirPath": "src/components/select-item", + "filePath": "src/components/select-item/select-item.tsx", + "fileName": "select-item.tsx", + "readmePath": "src/components/select-item/readme.md", + "usagesDir": "src/components/select-item/usage", + "tag": "ix-select-item", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.1.0" - } - ], + "docsTags": [], "encapsulation": "shadow", - "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependents": [ + "ix-pagination", + "ix-select" + ], + "dependencies": [ + "ix-dropdown-item" + ], + "dependencyGraph": { + "ix-select-item": [ + "ix-dropdown-item" + ], + "ix-pagination": [ + "ix-select-item" + ], + "ix-select": [ + "ix-select-item" + ] + }, "props": [ { - "name": "borderless", - "type": "boolean", + "name": "label", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "borderless", - "reflectToAttr": false, - "docs": "Set the default border state for all panes in the layout", + "attr": "label", + "reflectToAttr": true, + "docs": "Displayed name of the item", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "layout", - "type": "\"full-horizontal\" | \"full-vertical\"", + "name": "selected", + "type": "boolean", "complexType": { - "original": "'full-vertical' | 'full-horizontal'", - "resolved": "\"full-horizontal\" | \"full-vertical\"", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "layout", + "attr": "selected", "reflectToAttr": false, - "docs": "Choose the layout of the panes.\nWhen set to 'full-vertical' the vertical panes (left, right) will get the full height.\nWhen set to 'full-horizontal' the horizontal panes (top, bottom) will get the full width.", + "docs": "Flag indicating whether the item is selected", "docsTags": [], - "default": "'full-vertical'", + "default": "false", "values": [ { - "value": "full-horizontal", - "type": "string" - }, - { - "value": "full-vertical", - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "variant", - "type": "\"floating\" | \"inline\"", + "name": "value", + "type": "any", "complexType": { - "original": "'floating' | 'inline'", - "resolved": "\"floating\" | \"inline\"", + "original": "any", + "resolved": "any", "references": {} }, "mutable": false, - "attr": "variant", - "reflectToAttr": false, - "docs": "Set the default variant for all panes in the layout", - "docsTags": [], - "default": "'inline'", - "values": [ + "attr": "value", + "reflectToAttr": true, + "docs": "The value of the item.\nImportant: The select component uses string values to handle selection and will call toString() on this value.\nTherefor a string should be passed to value to prevent unexpected behavior.", + "docsTags": [ { - "value": "floating", - "type": "string" - }, + "name": "deprecated", + "text": "will be changed to type string with next major release (3.0.0)" + } + ], + "deprecation": "will be changed to type string with next major release (3.0.0)", + "values": [ { - "value": "inline", - "type": "string" + "type": "any" } ], "optional": false, - "required": false + "required": true } ], "methods": [], - "events": [], + "events": [ + { + "event": "itemClick", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Item clicked", + "docsTags": [] + } + ], "styles": [], "slots": [], "parts": [], - "listeners": [ + "listeners": [] + }, + { + "dirPath": "src/components/slider", + "filePath": "src/components/slider/slider.tsx", + "fileName": "slider.tsx", + "readmePath": "src/components/slider/readme.md", + "usagesDir": "src/components/slider/usage", + "tag": "ix-slider", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ { - "event": "slotChanged", - "capture": false, - "passive": false + "name": "since", + "text": "2.0.0" }, { - "event": "hideOnCollapseChanged", - "capture": false, - "passive": false + "name": "slot", + "text": "label-start - Element will be displayed at the start of the slider" }, { - "event": "variantChanged", - "capture": false, - "passive": false + "name": "slot", + "text": "label-end - Element will be displayed at the end of the slider" } - ] - }, - { - "dirPath": "src/components/pill", - "filePath": "src/components/pill/pill.tsx", - "fileName": "pill.tsx", - "readmePath": "src/components/pill/readme.md", - "usagesDir": "src/components/pill/usage", - "tag": "ix-pill", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], + ], "encapsulation": "shadow", "dependents": [], - "dependencies": [], - "dependencyGraph": {}, + "dependencies": [ + "ix-tooltip", + "ix-typography" + ], + "dependencyGraph": { + "ix-slider": [ + "ix-tooltip", + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ] + }, "props": [ { - "name": "alignLeft", + "name": "disabled", "type": "boolean", "complexType": { "original": "boolean", @@ -12590,9 +16930,9 @@ "references": {} }, "mutable": false, - "attr": "align-left", + "attr": "disabled", "reflectToAttr": false, - "docs": "Align pill content left", + "docs": "Show control as disabled", "docsTags": [], "default": "false", "values": [ @@ -12604,437 +16944,357 @@ "required": false }, { - "name": "background", - "type": "string", + "name": "error", + "type": "boolean | string", "complexType": { - "original": "string | undefined", - "resolved": "string", + "original": "boolean | string", + "resolved": "boolean | string", "references": {} }, "mutable": false, - "attr": "background", + "attr": "error", "reflectToAttr": false, - "docs": "Custom color for pill. Only working for `variant='custom'`", + "docs": "Show error state and message", "docsTags": [], "values": [ { - "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "color", - "type": "string", - "complexType": { - "original": "string | undefined", - "resolved": "string", - "references": {} - }, - "mutable": false, - "attr": "color", - "reflectToAttr": false, - "docs": "Custom font color for pill. Only working for `variant='custom'`", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.1.0 use `pill-color`" - } - ], - "deprecation": "since 2.1.0 use `pill-color`", - "values": [ + "type": "boolean" + }, { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "icon", - "type": "string", + "name": "marker", + "type": "number[]", "complexType": { - "original": "string | undefined", - "resolved": "string", - "references": {} + "original": "SliderMarker", + "resolved": "number[]", + "references": { + "SliderMarker": { + "location": "local", + "path": "src/components/slider/slider.tsx", + "id": "src/components/slider/slider.tsx::SliderMarker" + } + } }, "mutable": false, - "attr": "icon", "reflectToAttr": false, - "docs": "Show icon", + "docs": "Define tick marker on the slider. Marker has to be within slider min/max", "docsTags": [], "values": [ { - "type": "string" + "type": "number[]" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "outline", - "type": "boolean", + "name": "max", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "outline", + "attr": "max", "reflectToAttr": false, - "docs": "Show pill as outline", + "docs": "Maximum slider value", "docsTags": [], - "default": "false", + "default": "100", "values": [ { - "type": "boolean" + "type": "number" } ], "optional": false, "required": false }, { - "name": "pillColor", - "type": "string", + "name": "min", + "type": "number", "complexType": { - "original": "string | undefined", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "pill-color", + "attr": "min", "reflectToAttr": false, - "docs": "Custom font color for pill. Only working for `variant='custom'`", + "docs": "Minimum slider value", "docsTags": [], + "default": "0", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "variant", - "type": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", - "complexType": { - "original": "| 'primary'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'custom'", - "resolved": "\"alarm\" | \"critical\" | \"custom\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"", - "references": {} - }, - "mutable": false, - "attr": "variant", - "reflectToAttr": true, - "docs": "Pill variant", - "docsTags": [], - "default": "'primary'", - "values": [ - { - "value": "alarm", - "type": "string" - }, - { - "value": "critical", - "type": "string" - }, - { - "value": "custom", - "type": "string" - }, - { - "value": "info", - "type": "string" - }, - { - "value": "neutral", - "type": "string" - }, - { - "value": "primary", - "type": "string" - }, - { - "value": "success", - "type": "string" - }, - { - "value": "warning", - "type": "string" - } - ], - "optional": false, - "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/push-card", - "filePath": "src/components/push-card/push-card.tsx", - "fileName": "push-card.tsx", - "readmePath": "src/components/push-card/readme.md", - "usagesDir": "src/components/push-card/usage", - "tag": "ix-push-card", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "since", - "text": "1.6.0" - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-card", - "ix-card-content", - "ix-card-title", - "ix-typography", - "ix-card-accordion" - ], - "dependencyGraph": { - "ix-push-card": [ - "ix-card", - "ix-card-content", - "ix-card-title", - "ix-typography", - "ix-card-accordion" - ] - }, - "props": [ - { - "name": "collapse", - "type": "boolean", + "name": "step", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "collapse", + "attr": "step", "reflectToAttr": false, - "docs": "Collapse the card", + "docs": "Legal number intervals", "docsTags": [ { - "name": "since", - "text": "2.1.0" + "name": "link", + "text": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#step" } ], - "default": "true", + "default": "1", "values": [ { - "type": "boolean" + "type": "number" } ], "optional": false, "required": false }, { - "name": "heading", - "type": "string", + "name": "trace", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "heading", + "attr": "trace", "reflectToAttr": false, - "docs": "Card heading", + "docs": "Show a trace line", "docsTags": [], + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "icon", - "type": "string", + "name": "traceReference", + "type": "number", "complexType": { - "original": "string | undefined", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "trace-reference", "reflectToAttr": false, - "docs": "Card icon", + "docs": "Define the start point of the trace line", "docsTags": [], - "default": "undefined", + "default": "0", "values": [ { - "type": "string" + "type": "number" } ], "optional": false, "required": false }, { - "name": "notification", - "type": "string", + "name": "value", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "notification", + "attr": "value", "reflectToAttr": false, - "docs": "Card KPI value", + "docs": "Current value of the slider", "docsTags": [], + "default": "0", "values": [ { - "type": "string" + "type": "number" } ], - "optional": true, + "optional": false, "required": false - }, + } + ], + "methods": [], + "events": [ { - "name": "subheading", - "type": "string", + "event": "valueChange", + "detail": "number", + "bubbles": true, "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, - "mutable": false, - "attr": "subheading", - "reflectToAttr": false, - "docs": "Card subheading", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": true, - "required": false + "cancelable": true, + "composed": true, + "docs": "", + "docsTags": [] + } + ], + "styles": [], + "slots": [ + { + "name": "label-end", + "docs": "Element will be displayed at the end of the slider" }, { - "name": "variant", - "type": "\"alarm\" | \"critical\" | \"filled\" | \"info\" | \"insight\" | \"neutral\" | \"notification\" | \"outline\" | \"primary\" | \"success\" | \"warning\"", + "name": "label-start", + "docs": "Element will be displayed at the start of the slider" + } + ], + "parts": [], + "listeners": [] + }, + { + "dirPath": "src/components/spinner", + "filePath": "src/components/spinner/spinner.tsx", + "fileName": "spinner.tsx", + "readmePath": "src/components/spinner/readme.md", + "usagesDir": "src/components/spinner/usage", + "tag": "ix-spinner", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [], + "encapsulation": "shadow", + "dependents": [ + "ix-application-switch-modal", + "ix-avatar", + "ix-breadcrumb-item", + "ix-button", + "ix-category-filter", + "ix-icon-button", + "ix-icon-toggle-button", + "ix-menu-expand-icon", + "ix-modal-loading", + "ix-pagination", + "ix-toggle-button", + "ix-upload" + ], + "dependencies": [], + "dependencyGraph": { + "ix-application-switch-modal": [ + "ix-spinner" + ], + "ix-avatar": [ + "ix-spinner" + ], + "ix-breadcrumb-item": [ + "ix-spinner" + ], + "ix-button": [ + "ix-spinner" + ], + "ix-category-filter": [ + "ix-spinner" + ], + "ix-icon-button": [ + "ix-spinner" + ], + "ix-icon-toggle-button": [ + "ix-spinner" + ], + "ix-menu-expand-icon": [ + "ix-spinner" + ], + "ix-modal-loading": [ + "ix-spinner" + ], + "ix-pagination": [ + "ix-spinner" + ], + "ix-toggle-button": [ + "ix-spinner" + ], + "ix-upload": [ + "ix-spinner" + ] + }, + "props": [ + { + "name": "size", + "type": "\"large\" | \"medium\" | \"small\" | \"x-small\" | \"xx-small\"", "complexType": { - "original": "PushCardVariant", - "resolved": "\"alarm\" | \"critical\" | \"filled\" | \"info\" | \"insight\" | \"neutral\" | \"notification\" | \"outline\" | \"primary\" | \"success\" | \"warning\"", - "references": { - "PushCardVariant": { - "location": "local", - "path": "src/components/push-card/push-card.tsx", - "id": "src/components/push-card/push-card.tsx::PushCardVariant" - } - } + "original": "'xx-small' | 'x-small' | 'small' | 'medium' | 'large'", + "resolved": "\"large\" | \"medium\" | \"small\" | \"x-small\" | \"xx-small\"", + "references": {} }, "mutable": false, - "attr": "variant", + "attr": "size", "reflectToAttr": false, - "docs": "Card variant", - "docsTags": [ - { - "name": "deprecated", - "text": "variant \"insight\" and \"notification\" will be removed in 3.0. Use \"outline\" or \"filled\" instead." - } - ], - "default": "'insight'", - "deprecation": "variant \"insight\" and \"notification\" will be removed in 3.0. Use \"outline\" or \"filled\" instead.", + "docs": "Size of spinner", + "docsTags": [], + "default": "'medium'", "values": [ { - "value": "alarm", - "type": "string" - }, - { - "value": "critical", - "type": "string" - }, - { - "value": "filled", - "type": "string" - }, - { - "value": "info", - "type": "string" - }, - { - "value": "insight", - "type": "string" - }, - { - "value": "neutral", - "type": "string" - }, - { - "value": "notification", + "value": "large", "type": "string" }, { - "value": "outline", + "value": "medium", "type": "string" }, { - "value": "primary", + "value": "small", "type": "string" }, { - "value": "success", + "value": "x-small", "type": "string" }, { - "value": "warning", + "value": "xx-small", "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/row", - "filePath": "src/components/row/row.tsx", - "fileName": "row.tsx", - "readmePath": "src/components/row/readme.md", - "usagesDir": "src/components/row/usage", - "tag": "ix-row", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ + }, { - "name": "since", - "text": "2.0.0" + "name": "variant", + "type": "\"primary\" | \"secondary\"", + "complexType": { + "original": "'primary' | 'secondary'", + "resolved": "\"primary\" | \"secondary\"", + "references": {} + }, + "mutable": false, + "attr": "variant", + "reflectToAttr": false, + "docs": "Variant of spinner", + "docsTags": [], + "default": "'secondary'", + "values": [ + { + "value": "primary", + "type": "string" + }, + { + "value": "secondary", + "type": "string" + } + ], + "optional": false, + "required": false } ], - "encapsulation": "shadow", - "dependents": [ - "ix-date-dropdown", - "ix-datetime-picker" - ], - "dependencies": [], - "dependencyGraph": { - "ix-date-dropdown": [ - "ix-row" - ], - "ix-datetime-picker": [ - "ix-row" - ] - }, - "props": [], "methods": [], "events": [], "styles": [], @@ -13043,86 +17303,75 @@ "listeners": [] }, { - "dirPath": "src/components/select", - "filePath": "src/components/select/select.tsx", - "fileName": "select.tsx", - "readmePath": "src/components/select/readme.md", - "usagesDir": "src/components/select/usage", - "tag": "ix-select", + "dirPath": "src/components/split-button", + "filePath": "src/components/split-button/split-button.tsx", + "fileName": "split-button.tsx", + "readmePath": "src/components/split-button/readme.md", + "usagesDir": "src/components/split-button/usage", + "tag": "ix-split-button", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", - "dependents": [ - "ix-pagination" - ], + "dependents": [], "dependencies": [ - "ix-select-item", - "ix-filter-chip", + "ix-button", "ix-icon-button", - "ix-dropdown", - "ix-dropdown-item" + "ix-dropdown" ], "dependencyGraph": { - "ix-select": [ - "ix-select-item", - "ix-filter-chip", + "ix-split-button": [ + "ix-button", "ix-icon-button", - "ix-dropdown", - "ix-dropdown-item" - ], - "ix-select-item": [ - "ix-dropdown-item" + "ix-dropdown" ], - "ix-filter-chip": [ - "ix-icon-button" + "ix-button": [ + "ix-spinner" ], "ix-icon-button": [ "ix-spinner" - ], - "ix-pagination": [ - "ix-select" ] }, "props": [ { - "name": "allowClear", - "type": "boolean", + "name": "closeBehavior", + "type": "\"both\" | \"inside\" | \"outside\" | boolean", "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} + "original": "CloseBehavior", + "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", + "references": { + "CloseBehavior": { + "location": "import", + "path": "../dropdown/dropdown-controller", + "id": "src/components/dropdown/dropdown-controller.ts::CloseBehavior" + } + } }, "mutable": false, - "attr": "allow-clear", + "attr": "close-behavior", "reflectToAttr": false, - "docs": "Show clear button", - "docsTags": [], - "default": "false", - "values": [ + "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.", + "docsTags": [ { - "type": "boolean" + "name": "since", + "text": "2.3.0" } ], - "optional": false, - "required": false - }, - { - "name": "disabled", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "disabled", - "reflectToAttr": false, - "docs": "If true the select will be in disabled state", - "docsTags": [], - "default": "false", + "default": "'both'", "values": [ + { + "value": "both", + "type": "string" + }, + { + "value": "inside", + "type": "string" + }, + { + "value": "outside", + "type": "string" + }, { "type": "boolean" } @@ -13131,7 +17380,7 @@ "required": false }, { - "name": "editable", + "name": "disabled", "type": "boolean", "complexType": { "original": "boolean", @@ -13139,9 +17388,9 @@ "references": {} }, "mutable": false, - "attr": "editable", + "attr": "disabled", "reflectToAttr": false, - "docs": "Select is extendable", + "docs": "Disabled", "docsTags": [], "default": "false", "values": [ @@ -13153,7 +17402,7 @@ "required": false }, { - "name": "hideListHeader", + "name": "ghost", "type": "boolean", "complexType": { "original": "boolean", @@ -13161,15 +17410,10 @@ "references": {} }, "mutable": false, - "attr": "hide-list-header", + "attr": "ghost", "reflectToAttr": false, - "docs": "Hide list header", - "docsTags": [ - { - "name": "since", - "text": "1.5.0" - } - ], + "docs": "Button invisible", + "docsTags": [], "default": "false", "values": [ { @@ -13180,7 +17424,7 @@ "required": false }, { - "name": "i18nNoMatches", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -13188,16 +17432,11 @@ "references": {} }, "mutable": false, - "attr": "i-1-8n-no-matches", + "attr": "icon", "reflectToAttr": false, - "docs": "Hint inside of dropdown if no items where found with current filter text", - "docsTags": [ - { - "name": "since", - "text": "1.5.0" - } - ], - "default": "'No matches'", + "docs": "Button icon", + "docsTags": [], + "default": "''", "values": [ { "type": "string" @@ -13207,7 +17446,7 @@ "required": false }, { - "name": "i18nPlaceholder", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -13215,11 +17454,10 @@ "references": {} }, "mutable": false, - "attr": "i-1-8n-placeholder", + "attr": "label", "reflectToAttr": false, - "docs": "Input field placeholder", + "docs": "Button label", "docsTags": [], - "default": "'Select an option'", "values": [ { "type": "string" @@ -13229,70 +17467,78 @@ "required": false }, { - "name": "i18nPlaceholderEditable", - "type": "string", + "name": "outline", + "type": "boolean", "complexType": { - "original": "string", - "resolved": "string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "i-1-8n-placeholder-editable", + "attr": "outline", "reflectToAttr": false, - "docs": "Input field placeholder for editable select", + "docs": "Button outline variant", "docsTags": [], - "default": "'Type of select option'", + "default": "false", "values": [ { - "type": "string" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "i18nSelectListHeader", - "type": "string", + "name": "placement", + "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "AlignedPlacement", + "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", + "references": { + "AlignedPlacement": { + "location": "import", + "path": "../dropdown/placement", + "id": "src/components/dropdown/placement.ts::AlignedPlacement" + } + } }, "mutable": false, - "attr": "i-1-8n-select-list-header", + "attr": "placement", "reflectToAttr": false, - "docs": "Select list header", + "docs": "Placement of the dropdown", "docsTags": [], - "default": "'Please select an option'", + "default": "'bottom-start'", "values": [ { + "value": "bottom-end", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "mode", - "type": "\"multiple\" | \"single\"", - "complexType": { - "original": "'single' | 'multiple'", - "resolved": "\"multiple\" | \"single\"", - "references": {} - }, - "mutable": false, - "attr": "mode", - "reflectToAttr": false, - "docs": "Selection mode", - "docsTags": [], - "default": "'single'", - "values": [ + }, { - "value": "multiple", + "value": "bottom-start", "type": "string" }, { - "value": "single", + "value": "left-end", + "type": "string" + }, + { + "value": "left-start", + "type": "string" + }, + { + "value": "right-end", + "type": "string" + }, + { + "value": "right-start", + "type": "string" + }, + { + "value": "top-end", + "type": "string" + }, + { + "value": "top-start", "type": "string" } ], @@ -13300,216 +17546,122 @@ "required": false }, { - "name": "readonly", - "type": "boolean", + "name": "splitIcon", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "readonly", + "attr": "split-icon", "reflectToAttr": false, - "docs": "If true the select will be in readonly mode", + "docs": "Icon of the button on the right", "docsTags": [], - "default": "false", + "default": "'context-menu'", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "selectedIndices", - "type": "string | string[]", + "name": "variant", + "type": "\"danger\" | \"primary\" | \"secondary\"", "complexType": { - "original": "string | string[]", - "resolved": "string | string[]", - "references": {} + "original": "SplitButtonVariant", + "resolved": "\"danger\" | \"primary\" | \"secondary\"", + "references": { + "SplitButtonVariant": { + "location": "local", + "path": "src/components/split-button/split-button.tsx", + "id": "src/components/split-button/split-button.tsx::SplitButtonVariant" + } + } }, - "mutable": true, - "attr": "selected-indices", + "mutable": false, + "attr": "variant", "reflectToAttr": false, - "docs": "Indices of selected items.\nThis corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list.", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.0.0. Use the `value` property instead." - } - ], - "deprecation": "since 2.0.0. Use the `value` property instead.", + "docs": "Color variant of button", + "docsTags": [], + "default": "'primary'", "values": [ { + "value": "danger", "type": "string" }, { - "type": "string[]" - } - ], - "optional": true, - "required": false - }, - { - "name": "value", - "type": "string | string[]", - "complexType": { - "original": "string | string[]", - "resolved": "string | string[]", - "references": {} - }, - "mutable": true, - "attr": "value", - "reflectToAttr": false, - "docs": "Current selected value.\nThis corresponds to the value property of ix-select-items", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ], - "values": [ - { + "value": "primary", "type": "string" }, { - "type": "string[]" + "value": "secondary", + "type": "string" } ], - "optional": true, + "optional": false, "required": false } ], "methods": [], "events": [ { - "event": "addItem", - "detail": "string", - "bubbles": true, - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Item added to selection", - "docsTags": [] - }, - { - "event": "inputChange", - "detail": "string", - "bubbles": true, - "complexType": { - "original": "string", - "resolved": "string", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Event dispatched whenever the text input changes.", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ] - }, - { - "event": "itemSelectionChange", - "detail": "string[]", + "event": "buttonClick", + "detail": "MouseEvent", "bubbles": true, "complexType": { - "original": "string[]", - "resolved": "string[]", - "references": {} - }, - "cancelable": true, - "composed": true, - "docs": "Item selection changed", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.0.0. Use `valueChange` instead." + "original": "MouseEvent", + "resolved": "MouseEvent", + "references": { + "MouseEvent": { + "location": "global", + "id": "global::MouseEvent" + } } - ], - "deprecation": "since 2.0.0. Use `valueChange` instead." - }, - { - "event": "valueChange", - "detail": "string | string[]", - "bubbles": true, - "complexType": { - "original": "string | string[]", - "resolved": "string | string[]", - "references": {} }, "cancelable": true, "composed": true, - "docs": "Value changed", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ] + "docs": "Button clicked", + "docsTags": [] } ], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "itemClick", - "capture": false, - "passive": false - }, - { - "event": "ix-select-item:valueChange", - "capture": false, - "passive": false - }, - { - "event": "ix-select-item:labelChange", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { - "dirPath": "src/components/select-item", - "filePath": "src/components/select-item/select-item.tsx", - "fileName": "select-item.tsx", - "readmePath": "src/components/select-item/readme.md", - "usagesDir": "src/components/select-item/usage", - "tag": "ix-select-item", + "dirPath": "src/components/split-button-item", + "filePath": "src/components/split-button-item/split-button-item.tsx", + "fileName": "split-button-item.tsx", + "readmePath": "src/components/split-button-item/readme.md", + "usagesDir": "src/components/split-button-item/usage", + "tag": "ix-split-button-item", "overview": "", "usage": {}, "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-pagination", - "ix-select" + "docsTags": [ + { + "name": "deprecated", + "text": "since 2.0.0. Use the `ix-dropdown-item` component instead." + } ], + "encapsulation": "shadow", + "dependents": [], "dependencies": [ "ix-dropdown-item" ], "dependencyGraph": { - "ix-select-item": [ + "ix-split-button-item": [ "ix-dropdown-item" - ], - "ix-pagination": [ - "ix-select-item" - ], - "ix-select": [ - "ix-select-item" ] }, + "deprecation": "since 2.0.0. Use the `ix-dropdown-item` component instead.", "props": [ { - "name": "label", + "name": "icon", "type": "string", "complexType": { "original": "string", @@ -13517,82 +17669,59 @@ "references": {} }, "mutable": false, - "attr": "label", - "reflectToAttr": true, - "docs": "Displayed name of the item", - "docsTags": [], - "values": [ - { - "type": "string" - } - ], - "optional": true, - "required": false - }, - { - "name": "selected", - "type": "boolean", - "complexType": { - "original": "boolean", - "resolved": "boolean", - "references": {} - }, - "mutable": false, - "attr": "selected", + "attr": "icon", "reflectToAttr": false, - "docs": "Flag indicating whether the item is selected", + "docs": "Dropdown icon", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], "optional": false, "required": false }, { - "name": "value", - "type": "any", + "name": "label", + "type": "string", "complexType": { - "original": "any", - "resolved": "any", - "references": {} - }, - "mutable": false, - "attr": "value", - "reflectToAttr": true, - "docs": "The value of the item.\nImportant: The select component uses string values to handle selection and will call toString() on this value.\nTherefor a string should be passed to value to prevent unexpected behavior.", - "docsTags": [ - { - "name": "deprecated", - "text": "will be changed to type string with next major release (3.0.0)" - } - ], - "deprecation": "will be changed to type string with next major release (3.0.0)", + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "label", + "reflectToAttr": false, + "docs": "Dropdown label", + "docsTags": [], "values": [ { - "type": "any" + "type": "string" } ], "optional": false, - "required": true + "required": false } ], "methods": [], "events": [ { "event": "itemClick", - "detail": "string", + "detail": "MouseEvent", "bubbles": true, "complexType": { - "original": "string", - "resolved": "string", - "references": {} + "original": "MouseEvent", + "resolved": "MouseEvent", + "references": { + "MouseEvent": { + "location": "global", + "id": "global::MouseEvent" + } + } }, "cancelable": true, "composed": true, - "docs": "Item clicked", + "docs": "Dropdown item clicked", "docsTags": [] } ], @@ -13602,190 +17731,152 @@ "listeners": [] }, { - "dirPath": "src/components/slider", - "filePath": "src/components/slider/slider.tsx", - "fileName": "slider.tsx", - "readmePath": "src/components/slider/readme.md", - "usagesDir": "src/components/slider/usage", - "tag": "ix-slider", + "dirPath": "src/components/tab-item", + "filePath": "src/components/tab-item/tab-item.tsx", + "fileName": "tab-item.tsx", + "readmePath": "src/components/tab-item/readme.md", + "usagesDir": "src/components/tab-item/usage", + "tag": "ix-tab-item", "overview": "", "usage": {}, "docs": "", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - }, - { - "name": "slot", - "text": "label-start - Element will be displayed at the start of the slider" - }, - { - "name": "slot", - "text": "label-end - Element will be displayed at the end of the slider" - } - ], + "docsTags": [], "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-tooltip", - "ix-typography" + "dependents": [ + "ix-menu-about", + "ix-menu-settings" ], + "dependencies": [], "dependencyGraph": { - "ix-slider": [ - "ix-tooltip", - "ix-typography" + "ix-menu-about": [ + "ix-tab-item" ], - "ix-tooltip": [ - "ix-typography" + "ix-menu-settings": [ + "ix-tab-item" ] }, "props": [ { - "name": "disabled", - "type": "boolean", + "name": "counter", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "counter", "reflectToAttr": false, - "docs": "Show control as disabled", + "docs": "Set counter value", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "number" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "error", - "type": "boolean | string", + "name": "disabled", + "type": "boolean", "complexType": { - "original": "boolean | string", - "resolved": "boolean | string", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "error", + "attr": "disabled", "reflectToAttr": false, - "docs": "Show error state and message", + "docs": "Set disabled tab", "docsTags": [], + "default": "false", "values": [ { "type": "boolean" - }, - { - "type": "string" - } - ], - "optional": true, - "required": false - }, - { - "name": "marker", - "type": "number[]", - "complexType": { - "original": "SliderMarker", - "resolved": "number[]", - "references": { - "SliderMarker": { - "location": "local", - "path": "src/components/slider/slider.tsx", - "id": "src/components/slider/slider.tsx::SliderMarker" - } - } - }, - "mutable": false, - "reflectToAttr": false, - "docs": "Define tick marker on the slider. Marker has to be within slider min/max", - "docsTags": [], - "values": [ - { - "type": "number[]" } ], - "optional": true, + "optional": false, "required": false }, { - "name": "max", - "type": "number", + "name": "icon", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "max", + "attr": "icon", "reflectToAttr": false, - "docs": "Maximum slider value", + "docs": "Set icon only tab", "docsTags": [], - "default": "100", + "default": "false", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "min", - "type": "number", + "name": "layout", + "type": "\"auto\" | \"stretched\"", "complexType": { - "original": "number", - "resolved": "number", + "original": "'auto' | 'stretched'", + "resolved": "\"auto\" | \"stretched\"", "references": {} }, "mutable": false, - "attr": "min", + "attr": "layout", "reflectToAttr": false, - "docs": "Minimum slider value", + "docs": "Set layout width style", "docsTags": [], - "default": "0", + "default": "'auto'", "values": [ { - "type": "number" + "value": "auto", + "type": "string" + }, + { + "value": "stretched", + "type": "string" } ], "optional": false, "required": false }, { - "name": "step", - "type": "number", + "name": "placement", + "type": "\"bottom\" | \"top\"", "complexType": { - "original": "number", - "resolved": "number", + "original": "'bottom' | 'top'", + "resolved": "\"bottom\" | \"top\"", "references": {} }, "mutable": false, - "attr": "step", + "attr": "placement", "reflectToAttr": false, - "docs": "Legal number intervals", - "docsTags": [ - { - "name": "link", - "text": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#step" - } - ], - "default": "1", + "docs": "Set selected placement", + "docsTags": [], + "default": "'bottom'", "values": [ { - "type": "number" + "value": "bottom", + "type": "string" + }, + { + "value": "top", + "type": "string" } ], "optional": false, "required": false }, { - "name": "trace", + "name": "rounded", "type": "boolean", "complexType": { "original": "boolean", @@ -13793,9 +17884,9 @@ "references": {} }, "mutable": false, - "attr": "trace", + "attr": "rounded", "reflectToAttr": false, - "docs": "Show a trace line", + "docs": "Set rounded tab", "docsTags": [], "default": "false", "values": [ @@ -13807,44 +17898,44 @@ "required": false }, { - "name": "traceReference", - "type": "number", + "name": "selected", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "trace-reference", + "attr": "selected", "reflectToAttr": false, - "docs": "Define the start point of the trace line", + "docs": "Set selected tab", "docsTags": [], - "default": "0", + "default": "false", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, "required": false }, { - "name": "value", - "type": "number", + "name": "small", + "type": "boolean", "complexType": { - "original": "number", - "resolved": "number", + "original": "boolean", + "resolved": "boolean", "references": {} }, "mutable": false, - "attr": "value", + "attr": "small", "reflectToAttr": false, - "docs": "Current value of the slider", + "docs": "Set small size tab", "docsTags": [], - "default": "0", + "default": "false", "values": [ { - "type": "number" + "type": "boolean" } ], "optional": false, @@ -13854,133 +17945,83 @@ "methods": [], "events": [ { - "event": "valueChange", - "detail": "number", + "event": "tabClick", + "detail": "{ nativeEvent: MouseEvent; }", "bubbles": true, "complexType": { - "original": "number", - "resolved": "number", - "references": {} + "original": "TabClickDetail", + "resolved": "{ nativeEvent: MouseEvent; }", + "references": { + "TabClickDetail": { + "location": "local", + "path": "src/components/tab-item/tab-item.tsx", + "id": "src/components/tab-item/tab-item.tsx::TabClickDetail" + } + } }, "cancelable": true, "composed": true, - "docs": "", - "docsTags": [] + "docs": "Emitted when the tab is clicked.", + "docsTags": [ + { + "name": "since", + "text": "2.0.0" + } + ] } ], "styles": [], - "slots": [ - { - "name": "label-end", - "docs": "Element will be displayed at the end of the slider" - }, - { - "name": "label-start", - "docs": "Element will be displayed at the start of the slider" - } - ], + "slots": [], "parts": [], "listeners": [] }, { - "dirPath": "src/components/spinner", - "filePath": "src/components/spinner/spinner.tsx", - "fileName": "spinner.tsx", - "readmePath": "src/components/spinner/readme.md", - "usagesDir": "src/components/spinner/usage", - "tag": "ix-spinner", + "dirPath": "src/components/tabs", + "filePath": "src/components/tabs/tabs.tsx", + "fileName": "tabs.tsx", + "readmePath": "src/components/tabs/readme.md", + "usagesDir": "src/components/tabs/usage", + "tag": "ix-tabs", "overview": "", "usage": {}, "docs": "", "docsTags": [], "encapsulation": "shadow", "dependents": [ - "ix-application-switch-modal", - "ix-avatar", - "ix-breadcrumb-item", - "ix-button", - "ix-category-filter", - "ix-icon-button", - "ix-icon-toggle-button", - "ix-menu-expand-icon", - "ix-modal-loading", - "ix-pagination", - "ix-toggle-button", - "ix-upload" + "ix-menu-about", + "ix-menu-settings" ], "dependencies": [], "dependencyGraph": { - "ix-application-switch-modal": [ - "ix-spinner" - ], - "ix-avatar": [ - "ix-spinner" - ], - "ix-breadcrumb-item": [ - "ix-spinner" - ], - "ix-button": [ - "ix-spinner" - ], - "ix-category-filter": [ - "ix-spinner" - ], - "ix-icon-button": [ - "ix-spinner" - ], - "ix-icon-toggle-button": [ - "ix-spinner" - ], - "ix-menu-expand-icon": [ - "ix-spinner" - ], - "ix-modal-loading": [ - "ix-spinner" - ], - "ix-pagination": [ - "ix-spinner" - ], - "ix-toggle-button": [ - "ix-spinner" + "ix-menu-about": [ + "ix-tabs" ], - "ix-upload": [ - "ix-spinner" + "ix-menu-settings": [ + "ix-tabs" ] }, "props": [ { - "name": "size", - "type": "\"large\" | \"medium\" | \"small\" | \"x-small\" | \"xx-small\"", + "name": "layout", + "type": "\"auto\" | \"stretched\"", "complexType": { - "original": "'xx-small' | 'x-small' | 'small' | 'medium' | 'large'", - "resolved": "\"large\" | \"medium\" | \"small\" | \"x-small\" | \"xx-small\"", + "original": "'auto' | 'stretched'", + "resolved": "\"auto\" | \"stretched\"", "references": {} }, "mutable": false, - "attr": "size", + "attr": "layout", "reflectToAttr": false, - "docs": "Size of spinner", + "docs": "Set layout width style", "docsTags": [], - "default": "'medium'", + "default": "'auto'", "values": [ { - "value": "large", - "type": "string" - }, - { - "value": "medium", - "type": "string" - }, - { - "value": "small", - "type": "string" - }, - { - "value": "x-small", + "value": "auto", "type": "string" }, { - "value": "xx-small", + "value": "stretched", "type": "string" } ], @@ -13988,141 +18029,184 @@ "required": false }, { - "name": "variant", - "type": "\"primary\" | \"secondary\"", + "name": "placement", + "type": "\"bottom\" | \"top\"", "complexType": { - "original": "'primary' | 'secondary'", - "resolved": "\"primary\" | \"secondary\"", + "original": "'bottom' | 'top'", + "resolved": "\"bottom\" | \"top\"", "references": {} }, "mutable": false, - "attr": "variant", + "attr": "placement", "reflectToAttr": false, - "docs": "Variant of spinner", + "docs": "Set placement style", "docsTags": [], - "default": "'secondary'", + "default": "'bottom'", "values": [ { - "value": "primary", + "value": "bottom", "type": "string" }, { - "value": "secondary", + "value": "top", "type": "string" } ], "optional": false, "required": false - } - ], - "methods": [], - "events": [], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/split-button", - "filePath": "src/components/split-button/split-button.tsx", - "fileName": "split-button.tsx", - "readmePath": "src/components/split-button/readme.md", - "usagesDir": "src/components/split-button/usage", - "tag": "ix-split-button", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-button", - "ix-icon-button", - "ix-dropdown" - ], - "dependencyGraph": { - "ix-split-button": [ - "ix-button", - "ix-icon-button", - "ix-dropdown" - ], - "ix-button": [ - "ix-spinner" - ], - "ix-icon-button": [ - "ix-spinner" - ] - }, - "props": [ + }, { - "name": "closeBehavior", - "type": "\"both\" | \"inside\" | \"outside\" | boolean", + "name": "rounded", + "type": "boolean", "complexType": { - "original": "CloseBehavior", - "resolved": "\"both\" | \"inside\" | \"outside\" | boolean", - "references": { - "CloseBehavior": { - "location": "import", - "path": "../dropdown/dropdown-controller", - "id": "src/components/dropdown/dropdown-controller.ts::CloseBehavior" - } - } + "original": "boolean", + "resolved": "boolean", + "references": {} }, "mutable": false, - "attr": "close-behavior", + "attr": "rounded", "reflectToAttr": false, - "docs": "Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown.", - "docsTags": [ + "docs": "Set rounded tabs", + "docsTags": [], + "default": "false", + "values": [ { - "name": "since", - "text": "2.3.0" + "type": "boolean" } ], - "default": "'both'", + "optional": false, + "required": false + }, + { + "name": "selected", + "type": "number", + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": true, + "attr": "selected", + "reflectToAttr": false, + "docs": "Set default selected tab by index", + "docsTags": [], + "default": "0", "values": [ { - "value": "both", - "type": "string" - }, - { - "value": "inside", - "type": "string" - }, - { - "value": "outside", - "type": "string" - }, - { - "type": "boolean" + "type": "number" } ], "optional": false, "required": false }, { - "name": "disabled", + "name": "small", "type": "boolean", "complexType": { "original": "boolean", "resolved": "boolean", "references": {} }, - "mutable": false, - "attr": "disabled", - "reflectToAttr": false, - "docs": "Disabled", - "docsTags": [], - "default": "false", - "values": [ + "mutable": false, + "attr": "small", + "reflectToAttr": false, + "docs": "Set tab items to small size", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + } + ], + "methods": [], + "events": [ + { + "event": "selectedChange", + "detail": "number", + "bubbles": true, + "complexType": { + "original": "number", + "resolved": "number", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "`selected` property changed", + "docsTags": [ { - "type": "boolean" + "name": "since", + "text": "2.0.0" } - ], - "optional": false, - "required": false + ] + } + ], + "styles": [], + "slots": [], + "parts": [], + "listeners": [ + { + "event": "resize", + "target": "window", + "capture": false, + "passive": true }, { - "name": "ghost", + "event": "tabClick", + "capture": false, + "passive": false + } + ] + }, + { + "dirPath": "src/components/input", + "filePath": "src/components/input/textarea.tsx", + "fileName": "textarea.tsx", + "readmePath": "src/components/input/readme.md", + "usagesDir": "src/components/input/usage", + "tag": "ix-textarea", + "overview": "", + "usage": {}, + "docs": "", + "docsTags": [ + { + "name": "since", + "text": "2.6.0" + }, + { + "name": "form-ready", + "text": "2.6.0" + } + ], + "encapsulation": "shadow", + "dependents": [], + "dependencies": [ + "ix-field-wrapper", + "ix-typography" + ], + "dependencyGraph": { + "ix-textarea": [ + "ix-field-wrapper", + "ix-typography" + ], + "ix-field-wrapper": [ + "ix-field-label", + "ix-tooltip", + "ix-typography" + ], + "ix-field-label": [ + "ix-typography" + ], + "ix-tooltip": [ + "ix-typography" + ] + }, + "props": [ + { + "name": "disabled", "type": "boolean", "complexType": { "original": "boolean", @@ -14130,9 +18214,9 @@ "references": {} }, "mutable": false, - "attr": "ghost", + "attr": "disabled", "reflectToAttr": false, - "docs": "Button invisible", + "docs": "Determines if the textarea field is disabled.", "docsTags": [], "default": "false", "values": [ @@ -14144,7 +18228,7 @@ "required": false }, { - "name": "icon", + "name": "helperText", "type": "string", "complexType": { "original": "string", @@ -14152,21 +18236,20 @@ "references": {} }, "mutable": false, - "attr": "icon", + "attr": "helper-text", "reflectToAttr": false, - "docs": "Button icon", + "docs": "The helper text for the textarea field.", "docsTags": [], - "default": "''", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "label", + "name": "infoText", "type": "string", "complexType": { "original": "string", @@ -14174,99 +18257,41 @@ "references": {} }, "mutable": false, - "attr": "label", + "attr": "info-text", "reflectToAttr": false, - "docs": "Button label", + "docs": "The info text for the textarea field.", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "outline", - "type": "boolean", + "name": "invalidText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "outline", - "reflectToAttr": false, - "docs": "Button outline variant", - "docsTags": [], - "default": "false", - "values": [ - { - "type": "boolean" - } - ], - "optional": false, - "required": false - }, - { - "name": "placement", - "type": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", - "complexType": { - "original": "AlignedPlacement", - "resolved": "\"bottom-end\" | \"bottom-start\" | \"left-end\" | \"left-start\" | \"right-end\" | \"right-start\" | \"top-end\" | \"top-start\"", - "references": { - "AlignedPlacement": { - "location": "import", - "path": "../dropdown/placement", - "id": "src/components/dropdown/placement.ts::AlignedPlacement" - } - } - }, - "mutable": false, - "attr": "placement", + "attr": "invalid-text", "reflectToAttr": false, - "docs": "Placement of the dropdown", + "docs": "The error text for the textarea field.", "docsTags": [], - "default": "'bottom-start'", "values": [ { - "value": "bottom-end", - "type": "string" - }, - { - "value": "bottom-start", - "type": "string" - }, - { - "value": "left-end", - "type": "string" - }, - { - "value": "left-start", - "type": "string" - }, - { - "value": "right-end", - "type": "string" - }, - { - "value": "right-start", - "type": "string" - }, - { - "value": "top-end", - "type": "string" - }, - { - "value": "top-start", "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "splitIcon", + "name": "label", "type": "string", "complexType": { "original": "string", @@ -14274,135 +18299,62 @@ "references": {} }, "mutable": false, - "attr": "split-icon", - "reflectToAttr": false, - "docs": "Icon of the button on the right", + "attr": "label", + "reflectToAttr": true, + "docs": "The label for the textarea field.", "docsTags": [], - "default": "'context-menu'", "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "variant", - "type": "\"danger\" | \"primary\" | \"secondary\"", - "complexType": { - "original": "SplitButtonVariant", - "resolved": "\"danger\" | \"primary\" | \"secondary\"", - "references": { - "SplitButtonVariant": { - "location": "local", - "path": "src/components/split-button/split-button.tsx", - "id": "src/components/split-button/split-button.tsx::SplitButtonVariant" - } - } - }, - "mutable": false, - "attr": "variant", - "reflectToAttr": false, - "docs": "Color variant of button", - "docsTags": [], - "default": "'primary'", - "values": [ - { - "value": "danger", - "type": "string" - }, - { - "value": "primary", - "type": "string" - }, - { - "value": "secondary", - "type": "string" - } - ], - "optional": false, - "required": false - } - ], - "methods": [], - "events": [ - { - "event": "buttonClick", - "detail": "MouseEvent", - "bubbles": true, + "name": "maxLength", + "type": "number", "complexType": { - "original": "MouseEvent", - "resolved": "MouseEvent", - "references": { - "MouseEvent": { - "location": "global", - "id": "global::MouseEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Button clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/split-button-item", - "filePath": "src/components/split-button-item/split-button-item.tsx", - "fileName": "split-button-item.tsx", - "readmePath": "src/components/split-button-item/readme.md", - "usagesDir": "src/components/split-button-item/usage", - "tag": "ix-split-button-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [ - { - "name": "deprecated", - "text": "since 2.0.0. Use the `ix-dropdown-item` component instead." - } - ], - "encapsulation": "shadow", - "dependents": [], - "dependencies": [ - "ix-dropdown-item" - ], - "dependencyGraph": { - "ix-split-button-item": [ - "ix-dropdown-item" - ] - }, - "deprecation": "since 2.0.0. Use the `ix-dropdown-item` component instead.", - "props": [ + "original": "number", + "resolved": "number", + "references": {} + }, + "mutable": false, + "attr": "max-length", + "reflectToAttr": false, + "docs": "The maximum length of the textarea field.", + "docsTags": [], + "values": [ + { + "type": "number" + } + ], + "optional": true, + "required": false + }, { - "name": "icon", - "type": "string", + "name": "minLength", + "type": "number", "complexType": { - "original": "string", - "resolved": "string", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "icon", + "attr": "min-length", "reflectToAttr": false, - "docs": "Dropdown icon", + "docs": "The minimum length of the textarea field.", "docsTags": [], "values": [ { - "type": "string" + "type": "number" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "label", + "name": "name", "type": "string", "complexType": { "original": "string", @@ -14410,95 +18362,41 @@ "references": {} }, "mutable": false, - "attr": "label", - "reflectToAttr": false, - "docs": "Dropdown label", + "attr": "name", + "reflectToAttr": true, + "docs": "The name of the textarea field.", "docsTags": [], "values": [ { "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "itemClick", - "detail": "MouseEvent", - "bubbles": true, - "complexType": { - "original": "MouseEvent", - "resolved": "MouseEvent", - "references": { - "MouseEvent": { - "location": "global", - "id": "global::MouseEvent" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Dropdown item clicked", - "docsTags": [] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/tab-item", - "filePath": "src/components/tab-item/tab-item.tsx", - "fileName": "tab-item.tsx", - "readmePath": "src/components/tab-item/readme.md", - "usagesDir": "src/components/tab-item/usage", - "tag": "ix-tab-item", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-menu-about", - "ix-menu-settings" - ], - "dependencies": [], - "dependencyGraph": { - "ix-menu-about": [ - "ix-tab-item" - ], - "ix-menu-settings": [ - "ix-tab-item" - ] - }, - "props": [ + }, { - "name": "counter", - "type": "number", + "name": "placeholder", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "counter", - "reflectToAttr": false, - "docs": "Set counter value", + "attr": "placeholder", + "reflectToAttr": true, + "docs": "The placeholder text for the textarea field.", "docsTags": [], "values": [ { - "type": "number" + "type": "string" } ], "optional": true, "required": false }, { - "name": "disabled", + "name": "readonly", "type": "boolean", "complexType": { "original": "boolean", @@ -14506,9 +18404,9 @@ "references": {} }, "mutable": false, - "attr": "disabled", + "attr": "readonly", "reflectToAttr": false, - "docs": "Set disabled tab", + "docs": "Determines if the textarea field is readonly.", "docsTags": [], "default": "false", "values": [ @@ -14520,7 +18418,7 @@ "required": false }, { - "name": "icon", + "name": "required", "type": "boolean", "complexType": { "original": "boolean", @@ -14528,9 +18426,9 @@ "references": {} }, "mutable": false, - "attr": "icon", - "reflectToAttr": false, - "docs": "Set icon only tab", + "attr": "required", + "reflectToAttr": true, + "docs": "Determines if the textarea field is required.", "docsTags": [], "default": "false", "values": [ @@ -14542,53 +18440,40 @@ "required": false }, { - "name": "layout", - "type": "\"auto\" | \"stretched\"", + "name": "resizeBehavior", + "type": "\"both\" | \"horizontal\" | \"none\" | \"vertical\"", "complexType": { - "original": "'auto' | 'stretched'", - "resolved": "\"auto\" | \"stretched\"", - "references": {} + "original": "TextareaResizeBehavior", + "resolved": "\"both\" | \"horizontal\" | \"none\" | \"vertical\"", + "references": { + "TextareaResizeBehavior": { + "location": "local", + "path": "src/components/input/textarea.tsx", + "id": "src/components/input/textarea.tsx::TextareaResizeBehavior" + } + } }, "mutable": false, - "attr": "layout", + "attr": "resize-behavior", "reflectToAttr": false, - "docs": "Set layout width style", + "docs": "Determines the resize behavior of the textarea field.\nResizing can be enabled in one direction, both directions or completely disabled.", "docsTags": [], - "default": "'auto'", + "default": "'both'", "values": [ { - "value": "auto", + "value": "both", "type": "string" }, { - "value": "stretched", + "value": "horizontal", "type": "string" - } - ], - "optional": false, - "required": false - }, - { - "name": "placement", - "type": "\"bottom\" | \"top\"", - "complexType": { - "original": "'bottom' | 'top'", - "resolved": "\"bottom\" | \"top\"", - "references": {} - }, - "mutable": false, - "attr": "placement", - "reflectToAttr": false, - "docs": "Set selected placement", - "docsTags": [], - "default": "'bottom'", - "values": [ + }, { - "value": "bottom", + "value": "none", "type": "string" }, { - "value": "top", + "value": "vertical", "type": "string" } ], @@ -14596,7 +18481,7 @@ "required": false }, { - "name": "rounded", + "name": "showTextAsTooltip", "type": "boolean", "complexType": { "original": "boolean", @@ -14604,282 +18489,270 @@ "references": {} }, "mutable": false, - "attr": "rounded", + "attr": "show-text-as-tooltip", "reflectToAttr": false, - "docs": "Set rounded tab", + "docs": "Determines if the text should be displayed as a tooltip.", "docsTags": [], - "default": "false", "values": [ { "type": "boolean" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "selected", - "type": "boolean", + "name": "textareaCols", + "type": "number", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "selected", + "attr": "textarea-cols", "reflectToAttr": false, - "docs": "Set selected tab", + "docs": "The width of the textarea specified by number of characters.", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "number" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "small", - "type": "boolean", + "name": "textareaHeight", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "small", + "attr": "textarea-height", "reflectToAttr": false, - "docs": "Set small size tab", + "docs": "The height of the textarea field (e.g. \"52px\").", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false - } - ], - "methods": [], - "events": [ - { - "event": "tabClick", - "detail": "{ nativeEvent: MouseEvent; }", - "bubbles": true, - "complexType": { - "original": "TabClickDetail", - "resolved": "{ nativeEvent: MouseEvent; }", - "references": { - "TabClickDetail": { - "location": "local", - "path": "src/components/tab-item/tab-item.tsx", - "id": "src/components/tab-item/tab-item.tsx::TabClickDetail" - } - } - }, - "cancelable": true, - "composed": true, - "docs": "Emitted when the tab is clicked.", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" - } - ] - } - ], - "styles": [], - "slots": [], - "parts": [], - "listeners": [] - }, - { - "dirPath": "src/components/tabs", - "filePath": "src/components/tabs/tabs.tsx", - "fileName": "tabs.tsx", - "readmePath": "src/components/tabs/readme.md", - "usagesDir": "src/components/tabs/usage", - "tag": "ix-tabs", - "overview": "", - "usage": {}, - "docs": "", - "docsTags": [], - "encapsulation": "shadow", - "dependents": [ - "ix-menu-about", - "ix-menu-settings" - ], - "dependencies": [], - "dependencyGraph": { - "ix-menu-about": [ - "ix-tabs" - ], - "ix-menu-settings": [ - "ix-tabs" - ] - }, - "props": [ + }, { - "name": "layout", - "type": "\"auto\" | \"stretched\"", + "name": "textareaRows", + "type": "number", "complexType": { - "original": "'auto' | 'stretched'", - "resolved": "\"auto\" | \"stretched\"", + "original": "number", + "resolved": "number", "references": {} }, "mutable": false, - "attr": "layout", + "attr": "textarea-rows", "reflectToAttr": false, - "docs": "Set layout width style", + "docs": "The height of the textarea specified by number of rows.", "docsTags": [], - "default": "'auto'", "values": [ { - "value": "auto", - "type": "string" - }, - { - "value": "stretched", - "type": "string" + "type": "number" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "placement", - "type": "\"bottom\" | \"top\"", + "name": "textareaWidth", + "type": "string", "complexType": { - "original": "'bottom' | 'top'", - "resolved": "\"bottom\" | \"top\"", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "placement", + "attr": "textarea-width", "reflectToAttr": false, - "docs": "Set placement style", + "docs": "The width of the textarea field (e.g. \"200px\").", "docsTags": [], - "default": "'bottom'", "values": [ { - "value": "bottom", - "type": "string" - }, - { - "value": "top", "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "rounded", - "type": "boolean", + "name": "validText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "rounded", + "attr": "valid-text", "reflectToAttr": false, - "docs": "Set rounded tabs", + "docs": "The valid text for the textarea field.", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false }, { - "name": "selected", - "type": "number", + "name": "value", + "type": "string", "complexType": { - "original": "number", - "resolved": "number", + "original": "string", + "resolved": "string", "references": {} }, "mutable": true, - "attr": "selected", - "reflectToAttr": false, - "docs": "Set default selected tab by index", + "attr": "value", + "reflectToAttr": true, + "docs": "The value of the textarea field.", "docsTags": [], - "default": "0", + "default": "''", "values": [ { - "type": "number" + "type": "string" } ], "optional": false, "required": false }, { - "name": "small", - "type": "boolean", + "name": "warningText", + "type": "string", "complexType": { - "original": "boolean", - "resolved": "boolean", + "original": "string", + "resolved": "string", "references": {} }, "mutable": false, - "attr": "small", + "attr": "warning-text", "reflectToAttr": false, - "docs": "Set tab items to small size", + "docs": "The warning text for the textarea field.", "docsTags": [], - "default": "false", "values": [ { - "type": "boolean" + "type": "string" } ], - "optional": false, + "optional": true, "required": false } ], - "methods": [], + "methods": [ + { + "name": "focusInput", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + } + }, + "return": "Promise" + }, + "signature": "focusInput() => Promise", + "parameters": [], + "docs": "Focuses the input field", + "docsTags": [] + }, + { + "name": "getNativeInputElement", + "returns": { + "type": "Promise", + "docs": "" + }, + "complexType": { + "signature": "() => Promise", + "parameters": [], + "references": { + "Promise": { + "location": "global", + "id": "global::Promise" + }, + "HTMLTextAreaElement": { + "location": "global", + "id": "global::HTMLTextAreaElement" + } + }, + "return": "Promise" + }, + "signature": "getNativeInputElement() => Promise", + "parameters": [], + "docs": "Get the native textarea element.", + "docsTags": [] + } + ], "events": [ { - "event": "selectedChange", - "detail": "number", + "event": "ixBlur", + "detail": "void", "bubbles": true, "complexType": { - "original": "number", - "resolved": "number", + "original": "void", + "resolved": "void", "references": {} }, "cancelable": true, "composed": true, - "docs": "`selected` property changed", - "docsTags": [ - { - "name": "since", - "text": "2.0.0" + "docs": "Event emitted when the textarea field loses focus.", + "docsTags": [] + }, + { + "event": "validityStateChange", + "detail": "ValidityState", + "bubbles": true, + "complexType": { + "original": "ValidityState", + "resolved": "ValidityState", + "references": { + "ValidityState": { + "location": "global", + "id": "global::ValidityState" + } } - ] + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the validity state of the textarea field changes.", + "docsTags": [] + }, + { + "event": "valueChange", + "detail": "string", + "bubbles": true, + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "cancelable": true, + "composed": true, + "docs": "Event emitted when the value of the textarea field changes.", + "docsTags": [] } ], "styles": [], "slots": [], "parts": [], - "listeners": [ - { - "event": "resize", - "target": "window", - "capture": false, - "passive": true - }, - { - "event": "tabClick", - "capture": false, - "passive": false - } - ] + "listeners": [] }, { "dirPath": "src/components/tile", @@ -15750,7 +19623,12 @@ "overview": "", "usage": {}, "docs": "", - "docsTags": [], + "docsTags": [ + { + "name": "form-ready", + "text": "2.6.0" + } + ], "encapsulation": "shadow", "dependents": [], "dependencies": [], @@ -15844,6 +19722,49 @@ "optional": false, "required": false }, + { + "name": "name", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "name", + "reflectToAttr": true, + "docs": "Name of the checkbox component", + "docsTags": [], + "values": [ + { + "type": "string" + } + ], + "optional": true, + "required": false + }, + { + "name": "required", + "type": "boolean", + "complexType": { + "original": "boolean", + "resolved": "boolean", + "references": {} + }, + "mutable": false, + "attr": "required", + "reflectToAttr": true, + "docs": "Required state of the checkbox component.\n\nIf true, checkbox needs to be checked to be valid", + "docsTags": [], + "default": "false", + "values": [ + { + "type": "boolean" + } + ], + "optional": false, + "required": false + }, { "name": "textIndeterminate", "type": "string", @@ -15909,6 +19830,28 @@ ], "optional": false, "required": false + }, + { + "name": "value", + "type": "string", + "complexType": { + "original": "string", + "resolved": "string", + "references": {} + }, + "mutable": false, + "attr": "value", + "reflectToAttr": true, + "docs": "Value of the checkbox component", + "docsTags": [], + "default": "'on'", + "values": [ + { + "type": "string" + } + ], + "optional": false, + "required": false } ], "methods": [], @@ -16177,6 +20120,7 @@ ], "encapsulation": "shadow", "dependents": [ + "ix-field-wrapper", "ix-menu-item", "ix-slider" ], @@ -16187,6 +20131,9 @@ "ix-tooltip": [ "ix-typography" ], + "ix-field-wrapper": [ + "ix-tooltip" + ], "ix-menu-item": [ "ix-tooltip" ], @@ -16701,16 +20648,23 @@ "ix-avatar", "ix-blind", "ix-card-list", + "ix-checkbox", "ix-content-header", "ix-dropdown-header", "ix-empty-state", + "ix-field-label", + "ix-field-wrapper", + "ix-helper-text", + "ix-input", "ix-menu-about-news", "ix-menu-category", "ix-modal-header", "ix-pagination", "ix-pane", "ix-push-card", + "ix-radio", "ix-slider", + "ix-textarea", "ix-time-picker", "ix-tooltip" ], @@ -16734,6 +20688,9 @@ "ix-card-list": [ "ix-typography" ], + "ix-checkbox": [ + "ix-typography" + ], "ix-content-header": [ "ix-typography" ], @@ -16743,6 +20700,18 @@ "ix-empty-state": [ "ix-typography" ], + "ix-field-label": [ + "ix-typography" + ], + "ix-field-wrapper": [ + "ix-typography" + ], + "ix-helper-text": [ + "ix-typography" + ], + "ix-input": [ + "ix-typography" + ], "ix-menu-about-news": [ "ix-typography" ], @@ -16761,9 +20730,15 @@ "ix-push-card": [ "ix-typography" ], + "ix-radio": [ + "ix-typography" + ], "ix-slider": [ "ix-typography" ], + "ix-textarea": [ + "ix-typography" + ], "ix-time-picker": [ "ix-typography" ], @@ -17816,6 +21791,11 @@ "docstring": "", "path": "src/components/date-dropdown/date-dropdown.tsx" }, + "src/components/date-input/date-input.tsx::DateInputValidityState": { + "declaration": "{\n patternMismatch: boolean;\n invalidReason?: string;\n}", + "docstring": "", + "path": "src/components/date-input/date-input.tsx" + }, "src/components/date-picker/date-picker.tsx::DateChangeEvent": { "declaration": "{\n from: string;\n to: string;\n}", "docstring": "", @@ -17921,6 +21901,11 @@ "docstring": "", "path": "src/components/tab-item/tab-item.tsx" }, + "src/components/input/textarea.tsx::TextareaResizeBehavior": { + "declaration": "export type TextareaResizeBehavior =\n | 'both'\n | 'horizontal'\n | 'vertical'\n | 'none';", + "docstring": "", + "path": "src/components/input/textarea.tsx" + }, "src/components/time-picker/time-picker.tsx::TimePickerCorners": { "declaration": "export type DateTimeCardCorners = 'rounded' | 'left' | 'right' | 'straight';", "docstring": "", @@ -17937,7 +21922,7 @@ "path": "src/components/toast/toast-utils.ts" }, "src/components/utils/theme-switcher.ts::IxTheme": { - "declaration": "export type IxTheme =\n | 'classic'\n | 'classic-dark'\n | 'classic-light'\n | (string & {});", + "declaration": "export type IxTheme = LiteralStringUnion<\n 'classic' | 'classic-dark' | 'classic-light'\n>;", "docstring": "", "path": "src/components/utils/theme-switcher.ts" }, @@ -17971,6 +21956,11 @@ "docstring": "", "path": "src/components/utils/element-reference.ts" }, + "src/components/utils/make-ref.ts::MakeRef": { + "declaration": "{\n (ref: T | undefined): void;\n current: T | null;\n waitForCurrent(): Promise;\n}", + "docstring": "", + "path": "src/components/utils/make-ref.ts" + }, "src/components/flip-tile/flip-tile-state.ts::FlipTileState": { "declaration": "export enum FlipTileState {\n None = 'none',\n Info = 'info',\n Warning = 'warning',\n Alarm = 'alarm',\n Primary = 'primary',\n}", "docstring": "", diff --git a/packages/core/package.json b/packages/core/package.json index 6207cbc4017..ad7bdfb67af 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -57,9 +57,9 @@ "@stencil-community/eslint-plugin": "^0.7.2", "@stencil-community/postcss": "^2.2.0", "@stencil/angular-output-target": "^0.8.3", - "@stencil/react-output-target": "^0.5.3", + "@stencil/react-output-target": "0.5.3", "@stencil/sass": "^3.0.8", - "@stencil/vue-output-target": "^0.8.7", + "@stencil/vue-output-target": "0.8.8", "@testing-library/dom": "^8.11.0", "@testing-library/jest-dom": "^5.16.5", "@types/animejs": "^3.1.4", diff --git a/packages/core/scss/components/form/_input.scss b/packages/core/scss/components/form/_input.scss index 6ad86fbac69..696fd61d5bf 100644 --- a/packages/core/scss/components/form/_input.scss +++ b/packages/core/scss/components/form/_input.scss @@ -8,6 +8,7 @@ */ @import 'common-variables'; @import 'mixins/fonts'; +@import 'mixins/validation/form-component'; @mixin element-input($feature-read-only: true) { & { @@ -17,9 +18,10 @@ padding: 0.25rem 0.5rem; background-color: var(--theme-input--background); color: var(--theme-input--color); - -moz-appearance: textfield; + appearance: textfield; text-overflow: ellipsis; - border: var(--theme-input--border-thickness, 1px) solid var(--theme-input--border-color); + border: var(--theme-input--border-thickness, 1px) solid + var(--theme-input--border-color); border-radius: var(--theme-input--border-radius); box-shadow: var(--theme-input--box-shadow); } @@ -29,7 +31,8 @@ -webkit-box-shadow: 0 0 0 1000px var(--theme-color-component-info) inset !important; -webkit-text-fill-color: var(--theme-input--color--autofill) !important; background-color: var(--theme-input--background--autofill) !important; - border: var(--theme-input--border-thickness, 1px) solid var(--theme-input--border-color--autofill) !important; + border: var(--theme-input--border-thickness, 1px) solid + var(--theme-input--border-color--autofill) !important; color: var(--theme-input--color--autofill) !important; } @@ -37,15 +40,31 @@ color: var(--theme-input-hint--color); } - &.hover, &:hover { - &:not(.read-only, .disabled, [readonly], [disabled]) { + &.hover, + &:hover { + &:not( + .readonly, + .read-only, + .disabled, + [readonly], + [disabled], + :read-only + ) { border-color: var(--theme-input--border-color--hover) !important; background-color: var(--theme-input--background--hover); } } - &.focus, &:focus { - &:not(.read-only, .disabled, [readonly], [disabled]) { + &.focus, + &:focus { + &:not( + .readonly, + .read-only, + .disabled, + [readonly], + [disabled], + :read-only + ) { outline: 1px solid var(--theme-color-focus-bdr); outline-offset: var(--theme-input--focus--outline-offset); border-color: var(--theme-input--border-color--focus) !important; @@ -59,7 +78,10 @@ background-color: transparent; outline: none; border: none; - border-bottom: var(--theme-input--border-thickness, 1px) solid var(--theme-input--border-color-bottom--readonly); + border-radius: 0; + border-bottom: var(--theme-input--border-thickness, 1px) + solid + var(--theme-input--border-color-bottom--readonly); } &.read-only, @@ -70,22 +92,25 @@ } } - &:disabled, &.disabled { + &:disabled, + &.disabled { box-shadow: none; background-color: transparent; outline: none; border: none; + border-radius: 0; color: var(--theme-input--color--disabled); - border-bottom: var(--theme-input--border-thickness, 1px) solid var(--theme-input--border-color-bottom--disabled); + border-bottom: var(--theme-input--border-thickness, 1px) solid + var(--theme-input--border-color-bottom--disabled); } - &:disabled::placeholder, &.disabled::placeholder { + &:disabled::placeholder, + &.disabled::placeholder { color: transparent; } } @mixin element-textarea { - height: 3.25rem; padding: 0.375rem 1.25rem 0.375rem 0.5rem; } @@ -174,6 +199,59 @@ display: none !important; } } + + @include input-valid; + + @include input-info { + & { + border-color: var(--theme-input--border-color--info); + } + + &:hover { + border-color: var(--theme-input--border-color--info--hover) !important; + } + + &:active { + border-color: var(--theme-input--border-color--info--active) !important; + } + } + + @include input-warning { + & { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + + &:hover { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + + &:active { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + } + + @include input-invalid { + & { + background-color: var(--theme-input--background--invalid); + border-color: var(--theme-input--border-color--invalid) !important; + } + + &:hover { + border-color: var(--theme-input--border-color--invalid--hover) !important; + } + + &:active { + border-color: var( + --theme-input--border-color--invalid--active + ) !important; + } + } } @include form; diff --git a/packages/core/scss/mixins/_field.scss b/packages/core/scss/mixins/_field.scss new file mode 100644 index 00000000000..62dd4be5344 --- /dev/null +++ b/packages/core/scss/mixins/_field.scss @@ -0,0 +1,18 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + @mixin input-invalid { + background-color: var(--theme-input-error--background); + border-color: var(--theme-input-error--border-color); + background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='512px' height='512px' viewBox='0 0 512 512' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3C!-- Generator: sketchtool 62 (101010) - https://sketch.com --%3E%3Ctitle%3Eerror%3C/title%3E%3Cdesc%3ECreated with sketchtool.%3C/desc%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0.75'%3E%3Cg id='error' fill='%23ff2640'%3E%3Cg id='error/error'%3E%3Cpath d='M256,42.6666667 C373.626371,42.6666667 469.333333,138.373627 469.333333,256 C469.333333,373.626371 373.626371,469.333333 256,469.333333 C138.373627,469.333333 42.6666667,373.626371 42.6666667,256 C42.6666667,138.373627 138.373627,42.6666667 256,42.6666667 Z M256,85.3333333 C161.559631,85.3333333 85.3333333,161.559631 85.3333333,256 C85.3333333,350.44037 161.559631,426.666667 256,426.666667 C350.44037,426.666667 426.666667,350.44037 426.666667,256 C426.666667,161.559631 350.44037,85.3333333 256,85.3333333 Z M326.248389,155.581722 L356.418278,185.751611 L286.168667,255.999667 L356.418278,326.248389 L326.248389,356.418278 L255.999667,286.168667 L185.751611,356.418278 L155.581722,326.248389 L225.829667,255.999667 L155.581722,185.751611 L185.751611,155.581722 L255.999667,225.829667 L326.248389,155.581722 Z' id='Combined-Shape'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E") !important; + background-position: left calc(0.375em + 0.1875rem) center; + padding-right: 0.75rem; + padding-left: calc(1.5em + 0.75rem); + background-size: 18px; + background-repeat: no-repeat; +} diff --git a/packages/core/scss/mixins/validation/_form-component.scss b/packages/core/scss/mixins/validation/_form-component.scss new file mode 100644 index 00000000000..161178a1610 --- /dev/null +++ b/packages/core/scss/mixins/validation/_form-component.scss @@ -0,0 +1,64 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +$notDisabled: ':not(.disabled):not(:disabled):not([disabled])'; + +@mixin host-valid { + :host(.ix-valid#{$notDisabled}:not(.ix-suppress-valid):not(.ix-invalid--required)) { + @content; + } +} + +@mixin host-info { + :host(.ix-info#{$notDisabled}) { + @content; + } +} + +@mixin host-warning { + :host(.ix-warning#{$notDisabled}) { + @content; + } +} + +@mixin host-invalid { + :host([class*='ix-invalid']#{$notDisabled}), + :host(.ix-invalid--required#{$notDisabled}) { + @content; + } +} + +@mixin input-valid { + textarea, + input { + &.ix-valid#{$notDisabled}:not(.ix-suppress-valid):not(.ix-invalid--required) { + @content; + } + } +} + +@mixin input-info { + textarea.ix-info#{$notDisabled}, + input.ix-info#{$notDisabled} { + @content; + } +} + +@mixin input-warning { + textarea.ix-warning#{$notDisabled}, + input.ix-warning#{$notDisabled} { + @content; + } +} + +@mixin input-invalid { + textarea[class*='ix-invalid']#{$notDisabled}, + input[class*='ix-invalid']#{$notDisabled} { + @content; + } +} diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts index 9672e2acb79..667d90e9f48 100644 --- a/packages/core/src/components.d.ts +++ b/packages/core/src/components.d.ts @@ -20,6 +20,7 @@ import { ColumnSize } from "./components/col/col"; import { ContentHeaderVariant } from "./components/content-header/content-header"; import { CssGridTemplateType } from "./components/css-grid/css-grid"; import { DateDropdownOption, DateRangeChangeEvent } from "./components/date-dropdown/date-dropdown"; +import { DateInputValidityState } from "./components/date-input/date-input"; import { DateTimeCardCorners } from "./components/date-time-card/date-time-card"; import { DateChangeEvent } from "./components/date-picker/date-picker"; import { DateTimeCardCorners as DateTimeCardCorners1 } from "./components/date-time-card/date-time-card"; @@ -29,6 +30,7 @@ import { CloseBehavior } from "./components/dropdown/dropdown-controller"; import { AlignedPlacement, Side } from "./components/dropdown/placement"; import { DropdownButtonVariant } from "./components/dropdown-button/dropdown-button"; import { EmptyStateLayout } from "./components/empty-state/empty-state"; +import { MakeRef } from "./components/utils/make-ref"; import { FlipTileState } from "./components/flip-tile/flip-tile-state"; import { IconButtonVariant } from "./components/icon-button/icon-button"; import { ButtonVariant as ButtonVariant1 } from "./components/button/button"; @@ -40,6 +42,7 @@ import { PushCardVariant } from "./components/push-card/push-card"; import { SliderMarker } from "./components/slider/slider"; import { SplitButtonVariant } from "./components/split-button/split-button"; import { TabClickDetail } from "./components/tab-item/tab-item"; +import { TextareaResizeBehavior } from "./components/input/textarea"; import { TimePickerCorners } from "./components/time-picker/time-picker"; import { ToastConfig, ToastType } from "./components/toast/toast-utils"; import { ShowToastResult } from "./components/toast/toast-container"; @@ -63,6 +66,7 @@ export { ColumnSize } from "./components/col/col"; export { ContentHeaderVariant } from "./components/content-header/content-header"; export { CssGridTemplateType } from "./components/css-grid/css-grid"; export { DateDropdownOption, DateRangeChangeEvent } from "./components/date-dropdown/date-dropdown"; +export { DateInputValidityState } from "./components/date-input/date-input"; export { DateTimeCardCorners } from "./components/date-time-card/date-time-card"; export { DateChangeEvent } from "./components/date-picker/date-picker"; export { DateTimeCardCorners as DateTimeCardCorners1 } from "./components/date-time-card/date-time-card"; @@ -72,6 +76,7 @@ export { CloseBehavior } from "./components/dropdown/dropdown-controller"; export { AlignedPlacement, Side } from "./components/dropdown/placement"; export { DropdownButtonVariant } from "./components/dropdown-button/dropdown-button"; export { EmptyStateLayout } from "./components/empty-state/empty-state"; +export { MakeRef } from "./components/utils/make-ref"; export { FlipTileState } from "./components/flip-tile/flip-tile-state"; export { IconButtonVariant } from "./components/icon-button/icon-button"; export { ButtonVariant as ButtonVariant1 } from "./components/button/button"; @@ -83,6 +88,7 @@ export { PushCardVariant } from "./components/push-card/push-card"; export { SliderMarker } from "./components/slider/slider"; export { SplitButtonVariant } from "./components/split-button/split-button"; export { TabClickDetail } from "./components/tab-item/tab-item"; +export { TextareaResizeBehavior } from "./components/input/textarea"; export { TimePickerCorners } from "./components/time-picker/time-picker"; export { ToastConfig, ToastType } from "./components/toast/toast-utils"; export { ShowToastResult } from "./components/toast/toast-container"; @@ -432,6 +438,80 @@ export namespace Components { "suggestions"?: string[]; "tmpDisableScrollIntoView": boolean; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxCheckbox { + /** + * Checked state of the checkbox component + */ + "checked": boolean; + /** + * Disabled state of the checkbox component + */ + "disabled": boolean; + "getAssociatedFormElement": () => Promise; + "hasValidValue": () => Promise; + /** + * Indeterminate state of the checkbox component + */ + "indeterminate": boolean; + /** + * Label for the checkbox component + */ + "label"?: string; + /** + * Name of the checkbox component + */ + "name"?: string; + /** + * Required state of the checkbox component. If true, checkbox needs to be checked to be valid + */ + "required": boolean; + /** + * Value of the checkbox component + */ + "value": string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxCheckboxGroup { + /** + * Alignment of the checkboxes in the group + */ + "direction": 'row' | 'column'; + /** + * Optional helper text displayed below the checkbox group + */ + "helperText"?: string; + /** + * Info text for the checkbox group + */ + "infoText"?: string; + /** + * Error text for the checkbox group + */ + "invalidText"?: string; + /** + * Label for the checkbox group + */ + "label"?: string; + /** + * Show helper, info, warning, error and valid text as tooltip + */ + "showTextAsTooltip": boolean; + /** + * Valid text for the checkbox group + */ + "validText"?: string; + /** + * Warning text for the checkbox group + */ + "warningText"?: string; + } interface IxChip { /** * Determines if the chip is interactive. If false no user input (e.g. mouse states, keyboard navigation) will be possible and also the close button will not be present. @@ -530,6 +610,43 @@ export namespace Components { */ "itemName": string; } + /** + * @since 2.6.0 + */ + interface IxCustomField { + /** + * Show text below the field component which show additional information + */ + "helperText"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Label for the field component + */ + "label"?: string; + /** + * A value is required or must be checked for the form to be submittable + */ + "required": boolean; + /** + * Show helper, info, warning, error and valid text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } /** * @since 2.1.0 */ @@ -604,6 +721,88 @@ export namespace Components { */ "weekStartIndex": number; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxDateInput { + /** + * disabled attribute + */ + "disabled": boolean; + /** + * Focuses the input field + */ + "focusInput": () => Promise; + /** + * Date format string. See {@link "https://moment.github.io/luxon/#/formatting?id=table-of-tokens"} for all available tokens. + */ + "format": string; + "getAssociatedFormElement": () => Promise; + /** + * Get the native input element + */ + "getNativeInputElement": () => Promise; + "getValidityState": () => Promise; + "hasValidValue": () => Promise; + /** + * helper text below the input field + */ + "helperText"?: string; + /** + * i18n string for the error message when the date is not parsable + */ + "i18nErrorDateUnparsable": string; + /** + * info text below the input field + */ + "infoText"?: string; + /** + * error text below the input field + */ + "invalidText"?: string; + /** + * label of the input field + */ + "label"?: string; + /** + * Locale identifier (e.g. 'en' or 'de'). + * @since 2.6.0 + */ + "locale"?: string; + /** + * name of the input element + */ + "name"?: string; + /** + * placeholder of the input element + */ + "placeholder"?: string; + /** + * readonly attribute + */ + "readonly": boolean; + /** + * required attribute + */ + "required"?: boolean; + /** + * show text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * valid text below the input field + */ + "validText"?: string; + /** + * value of the input element + */ + "value": string; + /** + * warning text below the input field + */ + "warningText"?: string; + } interface IxDatePicker { /** * Corner style @@ -684,7 +883,7 @@ export namespace Components { * set styles */ "individual": boolean; - "standaloneAppearance": any; + "standaloneAppearance"?: boolean; } interface IxDatetimePicker { /** @@ -857,6 +1056,7 @@ export namespace Components { * @since 2.0.0 */ "suppressAutomaticPlacement": boolean; + "suppressOverflowBehavior": boolean; /** * Define an element that triggers the dropdown. A trigger can either be a string that will be interpreted as id attribute or a DOM element. */ @@ -1035,6 +1235,76 @@ export namespace Components { */ "value": string; } + interface IxFieldLabel { + "controlRef"?: MakeRef; + /** + * The id of the form element that the label is associated with + */ + "htmlFor"?: string; + "isInvalid": boolean; + /** + * A value is required or must be checked for the form to be submittable + */ + "required"?: boolean; + } + interface IxFieldWrapper { + /** + * The control element that the label is associated with + */ + "controlRef"?: MakeRef; + /** + * Show text below the field component + */ + "helperText"?: string; + /** + * The id of the form element that the label is associated with + */ + "htmlForLabel"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Is the field component info + */ + "isInfo": boolean; + /** + * Is the field component invalid + */ + "isInvalid": boolean; + /** + * Is the field component valid + */ + "isValid": boolean; + /** + * Is the field component warning + */ + "isWarning": boolean; + /** + * Label for the field component + */ + "label"?: string; + /** + * Show label as required + */ + "required": boolean; + /** + * Show helper, error, info, warning text as tooltip + */ + "showTextAsTooltip": boolean; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } interface IxFilterChip { /** * If true the filter chip will be in disabled state @@ -1068,12 +1338,6 @@ export namespace Components { */ "contentVisible": boolean; } - interface IxFormField { - /** - * Label - */ - "label": string; - } interface IxGroup { /** * Whether the group is collapsed or expanded. Defaults to true. @@ -1136,6 +1400,32 @@ export namespace Components { */ "text"?: string; } + interface IxHelperText { + /** + * Show text below the field component + */ + "helperText"?: string; + /** + * The id of the form element that the label is associated with + */ + "htmlFor"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } interface IxIconButton { /** * Accessibility label for the icon button Will be set as aria-label on the nested HTML button element @@ -1228,6 +1518,94 @@ export namespace Components { */ "variant": ButtonVariant1; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxInput { + /** + * The allowed characters pattern for the text field. + */ + "allowedCharactersPattern"?: string; + /** + * Specifies whether the text field is disabled. + */ + "disabled": boolean; + /** + * Focuses the input field + */ + "focusInput": () => Promise; + "getAssociatedFormElement": () => Promise; + /** + * Returns the native input element used in the text field. + */ + "getNativeInputElement": () => Promise; + "hasValidValue": () => Promise; + /** + * The helper text for the text field. + */ + "helperText"?: string; + /** + * The info text for the text field. + */ + "infoText"?: string; + /** + * The error text for the text field. + */ + "invalidText"?: string; + /** + * The label for the text field. + */ + "label"?: string; + /** + * The maximum length of the text field. + */ + "maxLength"?: number; + /** + * The minimum length of the text field. + */ + "minLength"?: number; + /** + * The name of the text field. + */ + "name"?: string; + /** + * The pattern for the text field. + */ + "pattern"?: string; + /** + * The placeholder text for the text field. + */ + "placeholder"?: string; + /** + * Specifies whether the text field is readonly. + */ + "readonly": boolean; + /** + * Specifies whether the text field is required. + */ + "required": boolean; + /** + * Specifies whether to show the text as a tooltip. + */ + "showTextAsTooltip"?: boolean; + /** + * The type of the text field. Possible values are 'text', 'email', or 'password'. + */ + "type": 'text' | 'email' | 'password' | 'tel' | 'url'; + /** + * The valid text for the text field. + */ + "validText"?: string; + /** + * The value of the text field. + */ + "value": string; + /** + * The warning text for the text field. + */ + "warningText"?: string; + } interface IxInputGroup { } /** @@ -1267,6 +1645,18 @@ export namespace Components { "unit": string; "value": string | number; } + /** + * @since 2.6.0 + */ + interface IxLayoutAuto { + /** + * Defines the layout of the form. + */ + "layout": { + minWidth: string; + columns: number; + }[]; + } /** * @since 2.0.0 */ @@ -1698,6 +2088,94 @@ export namespace Components { } interface IxModalLoading { } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxNumberInput { + /** + * The allowed characters pattern for the input field + */ + "allowedCharactersPattern"?: string; + /** + * Disables the input field + */ + "disabled": boolean; + /** + * Focuses the input field + */ + "focusInput": () => Promise; + "getAssociatedFormElement": () => Promise; + /** + * Returns the native input element used under the hood + */ + "getNativeInputElement": () => Promise; + "hasValidValue": () => Promise; + /** + * The helper text for the input field + */ + "helperText"?: string; + /** + * The info text for the input field + */ + "infoText"?: string; + /** + * The error text for the input field + */ + "invalidText"?: string; + /** + * The label for the input field + */ + "label"?: string; + /** + * The maximum value for the input field + */ + "max"?: string | number; + /** + * The minimum value for the input field + */ + "min"?: string | number; + /** + * name of the input element + */ + "name"?: string; + /** + * The pattern for the input field + */ + "pattern"?: string; + /** + * placeholder of the input element + */ + "placeholder"?: string; + /** + * Indicates if the field is read-only + */ + "readonly": boolean; + /** + * Indicates if the field is required + */ + "required": boolean; + /** + * Indicates if the stepper buttons should be shown + */ + "showStepperButtons"?: boolean; + /** + * Indicates if the text should be shown as a tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * The valid text for the input field + */ + "validText"?: string; + /** + * The value of the input field + */ + "value": number; + /** + * The warning text for the input field + */ + "warningText"?: string; + } /** * @since 1.5.0 */ @@ -1820,59 +2298,132 @@ export namespace Components { */ "outline": boolean; /** - * Custom font color for pill. Only working for `variant='custom'` + * Custom font color for pill. Only working for `variant='custom'` + */ + "pillColor": string | undefined; + /** + * Pill variant + */ + "variant": | 'primary' + | 'alarm' + | 'critical' + | 'warning' + | 'info' + | 'neutral' + | 'success' + | 'custom'; + } + interface IxPlaygroundInternal { + } + /** + * @since 1.6.0 + */ + interface IxPushCard { + /** + * Collapse the card + * @since 2.1.0 + */ + "collapse": boolean; + /** + * Card heading + */ + "heading"?: string; + /** + * Card icon + */ + "icon": string | undefined; + /** + * Card KPI value + */ + "notification"?: string; + /** + * Card subheading + */ + "subheading"?: string; + /** + * Card variant + * @deprecated variant "insight" and "notification" will be removed in 3.0. Use "outline" or "filled" instead. + */ + "variant": PushCardVariant; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxRadio { + /** + * Checked state of the radio component + */ + "checked": boolean; + /** + * Disabled state of the radio component + */ + "disabled": boolean; + "getAssociatedFormElement": () => Promise; + "hasValidValue": () => Promise; + /** + * Label for the radio component + */ + "label"?: string; + /** + * Name of the radio component + */ + "name"?: string; + /** + * Value of the radio component + */ + "value"?: string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxRadioGroup { + /** + * Alignment of the radio buttons in the group + */ + "direction": 'column' | 'row'; + /** + * Show text below the field component */ - "pillColor": string | undefined; + "helperText"?: string; /** - * Pill variant + * Info text for the field component */ - "variant": | 'primary' - | 'alarm' - | 'critical' - | 'warning' - | 'info' - | 'neutral' - | 'success' - | 'custom'; - } - interface IxPlaygroundInternal { - } - /** - * @since 1.6.0 - */ - interface IxPushCard { + "infoText"?: string; /** - * Collapse the card - * @since 2.1.0 + * Error text for the field component */ - "collapse": boolean; + "invalidText"?: string; /** - * Card heading + * Label for the field component */ - "heading"?: string; + "label"?: string; /** - * Card icon + * Show helper, info, warning, error and valid text as tooltip */ - "icon": string | undefined; + "showTextAsTooltip"?: boolean; /** - * Card KPI value + * Valid text for the field component */ - "notification"?: string; + "validText"?: string; /** - * Card subheading + * Value of the radiobutton group component */ - "subheading"?: string; + "value"?: string; /** - * Card variant - * @deprecated variant "insight" and "notification" will be removed in 3.0. Use "outline" or "filled" instead. + * Warning text for the field component */ - "variant": PushCardVariant; + "warningText"?: string; } /** * @since 2.0.0 */ interface IxRow { } + /** + * @form-ready 2.6.0 + */ interface IxSelect { /** * Show clear button @@ -1886,13 +2437,28 @@ export namespace Components { * Select is extendable */ "editable": boolean; + /** + * Focuses the input field + */ + "focusInput": () => Promise; + "getAssociatedFormElement": () => Promise; + /** + * Returns the native input element used in the component. + */ + "getNativeInputElement": () => Promise; + "hasValidValue": () => Promise; + /** + * Helper text for the select component + * @since 2.6.0 + */ + "helperText"?: string; /** * Hide list header * @since 1.5.0 */ "hideListHeader": boolean; /** - * Hint inside of dropdown if no items where found with current filter text + * Information inside of dropdown if no items where found with current filter text * @since 1.5.0 */ "i18nNoMatches": string; @@ -1908,24 +2474,64 @@ export namespace Components { * Select list header */ "i18nSelectListHeader": string; + /** + * Info text for the select component + * @since 2.6.0 + */ + "infoText"?: string; + /** + * Error text for the select component + * @since 2.6.0 + */ + "invalidText"?: string; + /** + * Label for the select component + * @since 2.6.0 + */ + "label"?: string; /** * Selection mode */ "mode": 'single' | 'multiple'; + /** + * A string that represents the element's name attribute, containing a name that identifies the element when submitting the form. + * @since 2.6.0 + */ + "name"?: string; /** * If true the select will be in readonly mode */ "readonly": boolean; + /** + * A Boolean attribute indicating that an option with a non-empty string value must be selected + * @since 2.6.0 + */ + "required": boolean; /** * Indices of selected items. This corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list. * @deprecated since 2.0.0. Use the `value` property instead. */ "selectedIndices"?: string | string[]; + /** + * Show helper, error, info, warning text as tooltip + * @since 2.6.0 + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the select component + * @since 2.6.0 + */ + "validText"?: string; /** * Current selected value. This corresponds to the value property of ix-select-items * @since 2.0.0 */ - "value"?: string | string[]; + "value": string | string[]; + /** + * Warning text for the select component + * @since 2.6.0 + */ + "warningText"?: string; } interface IxSelectItem { "getDropdownItemElement": () => Promise; @@ -2110,6 +2716,102 @@ export namespace Components { */ "small": boolean; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxTextarea { + /** + * Determines if the textarea field is disabled. + */ + "disabled": boolean; + /** + * Focuses the input field + */ + "focusInput": () => Promise; + "getAssociatedFormElement": () => Promise; + /** + * Get the native textarea element. + */ + "getNativeInputElement": () => Promise; + "hasValidValue": () => Promise; + /** + * The helper text for the textarea field. + */ + "helperText"?: string; + /** + * The info text for the textarea field. + */ + "infoText"?: string; + /** + * The error text for the textarea field. + */ + "invalidText"?: string; + /** + * The label for the textarea field. + */ + "label"?: string; + /** + * The maximum length of the textarea field. + */ + "maxLength"?: number; + /** + * The minimum length of the textarea field. + */ + "minLength"?: number; + /** + * The name of the textarea field. + */ + "name"?: string; + /** + * The placeholder text for the textarea field. + */ + "placeholder"?: string; + /** + * Determines if the textarea field is readonly. + */ + "readonly": boolean; + /** + * Determines if the textarea field is required. + */ + "required": boolean; + /** + * Determines the resize behavior of the textarea field. Resizing can be enabled in one direction, both directions or completely disabled. + */ + "resizeBehavior": TextareaResizeBehavior; + /** + * Determines if the text should be displayed as a tooltip. + */ + "showTextAsTooltip"?: boolean; + /** + * The width of the textarea specified by number of characters. + */ + "textareaCols"?: number; + /** + * The height of the textarea field (e.g. "52px"). + */ + "textareaHeight"?: string; + /** + * The height of the textarea specified by number of rows. + */ + "textareaRows"?: number; + /** + * The width of the textarea field (e.g. "200px"). + */ + "textareaWidth"?: string; + /** + * The valid text for the textarea field. + */ + "validText"?: string; + /** + * The value of the textarea field. + */ + "value": string; + /** + * The warning text for the textarea field. + */ + "warningText"?: string; + } interface IxTile { /** * Size of the tile - one of 'small', 'medium' or 'large' @@ -2212,6 +2914,9 @@ export namespace Components { */ "showToast": (config: ToastConfig) => Promise; } + /** + * @form-ready 2.6.0 + */ interface IxToggle { /** * Whether the slide-toggle element is checked or not. @@ -2221,6 +2926,8 @@ export namespace Components { * Whether the slide-toggle element is disabled or not. */ "disabled": boolean; + "getAssociatedFormElement": () => Promise; + "hasValidValue": () => Promise; /** * Hide `on` and `off` text */ @@ -2229,6 +2936,14 @@ export namespace Components { * If true the control is in indeterminate state */ "indeterminate": boolean; + /** + * Name of the checkbox component + */ + "name"?: string; + /** + * Required state of the checkbox component. If true, checkbox needs to be checked to be valid + */ + "required": boolean; /** * Text for indeterminate state */ @@ -2241,6 +2956,10 @@ export namespace Components { * Text for on state */ "textOn": string; + /** + * Value of the checkbox component + */ + "value": string; } /** * @since 2.0.0 @@ -2501,6 +3220,10 @@ export interface IxCategoryFilterCustomEvent extends CustomEvent { detail: T; target: HTMLIxCategoryFilterElement; } +export interface IxCheckboxCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxCheckboxElement; +} export interface IxChipCustomEvent extends CustomEvent { detail: T; target: HTMLIxChipElement; @@ -2513,6 +3236,10 @@ export interface IxDateDropdownCustomEvent extends CustomEvent { detail: T; target: HTMLIxDateDropdownElement; } +export interface IxDateInputCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxDateInputElement; +} export interface IxDatePickerCustomEvent extends CustomEvent { detail: T; target: HTMLIxDatePickerElement; @@ -2561,6 +3288,10 @@ export interface IxIconToggleButtonCustomEvent extends CustomEvent { detail: T; target: HTMLIxIconToggleButtonElement; } +export interface IxInputCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxInputElement; +} export interface IxMapNavigationCustomEvent extends CustomEvent { detail: T; target: HTMLIxMapNavigationElement; @@ -2617,6 +3348,10 @@ export interface IxModalHeaderCustomEvent extends CustomEvent { detail: T; target: HTMLIxModalHeaderElement; } +export interface IxNumberInputCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxNumberInputElement; +} export interface IxPaginationCustomEvent extends CustomEvent { detail: T; target: HTMLIxPaginationElement; @@ -2625,6 +3360,14 @@ export interface IxPaneCustomEvent extends CustomEvent { detail: T; target: HTMLIxPaneElement; } +export interface IxRadioCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxRadioElement; +} +export interface IxRadioGroupCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxRadioGroupElement; +} export interface IxSelectCustomEvent extends CustomEvent { detail: T; target: HTMLIxSelectElement; @@ -2653,6 +3396,10 @@ export interface IxTabsCustomEvent extends CustomEvent { detail: T; target: HTMLIxTabsElement; } +export interface IxTextareaCustomEvent extends CustomEvent { + detail: T; + target: HTMLIxTextareaElement; +} export interface IxTimePickerCustomEvent extends CustomEvent { detail: T; target: HTMLIxTimePickerElement; @@ -2902,6 +3649,38 @@ declare global { prototype: HTMLIxCategoryFilterElement; new (): HTMLIxCategoryFilterElement; }; + interface HTMLIxCheckboxElementEventMap { + "checkedChange": boolean; + "valueChange": string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxCheckboxElement extends Components.IxCheckbox, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxCheckboxElement, ev: IxCheckboxCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxCheckboxElement, ev: IxCheckboxCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxCheckboxElement: { + prototype: HTMLIxCheckboxElement; + new (): HTMLIxCheckboxElement; + }; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxCheckboxGroupElement extends Components.IxCheckboxGroup, HTMLStencilElement { + } + var HTMLIxCheckboxGroupElement: { + prototype: HTMLIxCheckboxGroupElement; + new (): HTMLIxCheckboxGroupElement; + }; interface HTMLIxChipElementEventMap { "closeChip": any; } @@ -2966,6 +3745,15 @@ declare global { prototype: HTMLIxCssGridItemElement; new (): HTMLIxCssGridItemElement; }; + /** + * @since 2.6.0 + */ + interface HTMLIxCustomFieldElement extends Components.IxCustomField, HTMLStencilElement { + } + var HTMLIxCustomFieldElement: { + prototype: HTMLIxCustomFieldElement; + new (): HTMLIxCustomFieldElement; + }; interface HTMLIxDateDropdownElementEventMap { "dateRangeChange": DateRangeChangeEvent; } @@ -2986,6 +3774,30 @@ declare global { prototype: HTMLIxDateDropdownElement; new (): HTMLIxDateDropdownElement; }; + interface HTMLIxDateInputElementEventMap { + "valueChange": string; + "validityStateChange": DateInputValidityState; + "ixFocus": void; + "ixBlur": void; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxDateInputElement extends Components.IxDateInput, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxDateInputElement, ev: IxDateInputCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxDateInputElement, ev: IxDateInputCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxDateInputElement: { + prototype: HTMLIxDateInputElement; + new (): HTMLIxDateInputElement; + }; interface HTMLIxDatePickerElementEventMap { "dateChange": DateChangeEvent; "dateRangeChange": DateChangeEvent; @@ -3180,6 +3992,18 @@ declare global { prototype: HTMLIxExpandingSearchElement; new (): HTMLIxExpandingSearchElement; }; + interface HTMLIxFieldLabelElement extends Components.IxFieldLabel, HTMLStencilElement { + } + var HTMLIxFieldLabelElement: { + prototype: HTMLIxFieldLabelElement; + new (): HTMLIxFieldLabelElement; + }; + interface HTMLIxFieldWrapperElement extends Components.IxFieldWrapper, HTMLStencilElement { + } + var HTMLIxFieldWrapperElement: { + prototype: HTMLIxFieldWrapperElement; + new (): HTMLIxFieldWrapperElement; + }; interface HTMLIxFilterChipElementEventMap { "closeClick": void; } @@ -3209,12 +4033,6 @@ declare global { prototype: HTMLIxFlipTileContentElement; new (): HTMLIxFlipTileContentElement; }; - interface HTMLIxFormFieldElement extends Components.IxFormField, HTMLStencilElement { - } - var HTMLIxFormFieldElement: { - prototype: HTMLIxFormFieldElement; - new (): HTMLIxFormFieldElement; - }; interface HTMLIxGroupElementEventMap { "selectGroup": boolean; "selectItem": number; @@ -3257,6 +4075,12 @@ declare global { prototype: HTMLIxGroupItemElement; new (): HTMLIxGroupItemElement; }; + interface HTMLIxHelperTextElement extends Components.IxHelperText, HTMLStencilElement { + } + var HTMLIxHelperTextElement: { + prototype: HTMLIxHelperTextElement; + new (): HTMLIxHelperTextElement; + }; interface HTMLIxIconButtonElement extends Components.IxIconButton, HTMLStencilElement { } var HTMLIxIconButtonElement: { @@ -3283,6 +4107,29 @@ declare global { prototype: HTMLIxIconToggleButtonElement; new (): HTMLIxIconToggleButtonElement; }; + interface HTMLIxInputElementEventMap { + "valueChange": string; + "validityStateChange": ValidityState; + "ixBlur": void; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxInputElement extends Components.IxInput, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxInputElement, ev: IxInputCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxInputElement, ev: IxInputCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxInputElement: { + prototype: HTMLIxInputElement; + new (): HTMLIxInputElement; + }; interface HTMLIxInputGroupElement extends Components.IxInputGroup, HTMLStencilElement { } var HTMLIxInputGroupElement: { @@ -3313,6 +4160,15 @@ declare global { prototype: HTMLIxKpiElement; new (): HTMLIxKpiElement; }; + /** + * @since 2.6.0 + */ + interface HTMLIxLayoutAutoElement extends Components.IxLayoutAuto, HTMLStencilElement { + } + var HTMLIxLayoutAutoElement: { + prototype: HTMLIxLayoutAutoElement; + new (): HTMLIxLayoutAutoElement; + }; /** * @since 2.0.0 */ @@ -3621,6 +4477,29 @@ declare global { prototype: HTMLIxModalLoadingElement; new (): HTMLIxModalLoadingElement; }; + interface HTMLIxNumberInputElementEventMap { + "valueChange": number; + "validityStateChange": ValidityState; + "ixBlur": void; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxNumberInputElement extends Components.IxNumberInput, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxNumberInputElement, ev: IxNumberInputCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxNumberInputElement, ev: IxNumberInputCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxNumberInputElement: { + prototype: HTMLIxNumberInputElement; + new (): HTMLIxNumberInputElement; + }; interface HTMLIxPaginationElementEventMap { "pageSelected": number; "itemCountChanged": number; @@ -3696,6 +4575,49 @@ declare global { prototype: HTMLIxPushCardElement; new (): HTMLIxPushCardElement; }; + interface HTMLIxRadioElementEventMap { + "checkedChange": boolean; + "valueChange": string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxRadioElement extends Components.IxRadio, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxRadioElement, ev: IxRadioCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxRadioElement, ev: IxRadioCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxRadioElement: { + prototype: HTMLIxRadioElement; + new (): HTMLIxRadioElement; + }; + interface HTMLIxRadioGroupElementEventMap { + "valueChange": string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxRadioGroupElement extends Components.IxRadioGroup, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxRadioGroupElement, ev: IxRadioGroupCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxRadioGroupElement, ev: IxRadioGroupCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxRadioGroupElement: { + prototype: HTMLIxRadioGroupElement; + new (): HTMLIxRadioGroupElement; + }; /** * @since 2.0.0 */ @@ -3710,7 +4632,11 @@ declare global { "itemSelectionChange": string[]; "inputChange": string; "addItem": string; + "ixBlur": void; } + /** + * @form-ready 2.6.0 + */ interface HTMLIxSelectElement extends Components.IxSelect, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLIxSelectElement, ev: IxSelectCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -3830,14 +4756,37 @@ declare global { addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: HTMLIxTabsElement, ev: IxTabsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxTabsElement, ev: IxTabsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLIxTabsElement: { + prototype: HTMLIxTabsElement; + new (): HTMLIxTabsElement; + }; + interface HTMLIxTextareaElementEventMap { + "valueChange": string; + "validityStateChange": ValidityState; + "ixBlur": void; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface HTMLIxTextareaElement extends Components.IxTextarea, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLIxTextareaElement, ev: IxTextareaCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLIxTextareaElement, ev: IxTextareaCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } - var HTMLIxTabsElement: { - prototype: HTMLIxTabsElement; - new (): HTMLIxTabsElement; + var HTMLIxTextareaElement: { + prototype: HTMLIxTextareaElement; + new (): HTMLIxTextareaElement; }; interface HTMLIxTileElement extends Components.IxTile, HTMLStencilElement { } @@ -3889,7 +4838,11 @@ declare global { }; interface HTMLIxToggleElementEventMap { "checkedChange": boolean; + "valueChange": string; } + /** + * @form-ready 2.6.0 + */ interface HTMLIxToggleElement extends Components.IxToggle, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLIxToggleElement, ev: IxToggleCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -4055,13 +5008,17 @@ declare global { "ix-card-list": HTMLIxCardListElement; "ix-card-title": HTMLIxCardTitleElement; "ix-category-filter": HTMLIxCategoryFilterElement; + "ix-checkbox": HTMLIxCheckboxElement; + "ix-checkbox-group": HTMLIxCheckboxGroupElement; "ix-chip": HTMLIxChipElement; "ix-col": HTMLIxColElement; "ix-content": HTMLIxContentElement; "ix-content-header": HTMLIxContentHeaderElement; "ix-css-grid": HTMLIxCssGridElement; "ix-css-grid-item": HTMLIxCssGridItemElement; + "ix-custom-field": HTMLIxCustomFieldElement; "ix-date-dropdown": HTMLIxDateDropdownElement; + "ix-date-input": HTMLIxDateInputElement; "ix-date-picker": HTMLIxDatePickerElement; "ix-date-time-card": HTMLIxDateTimeCardElement; "ix-datetime-picker": HTMLIxDatetimePickerElement; @@ -4076,19 +5033,23 @@ declare global { "ix-event-list": HTMLIxEventListElement; "ix-event-list-item": HTMLIxEventListItemElement; "ix-expanding-search": HTMLIxExpandingSearchElement; + "ix-field-label": HTMLIxFieldLabelElement; + "ix-field-wrapper": HTMLIxFieldWrapperElement; "ix-filter-chip": HTMLIxFilterChipElement; "ix-flip-tile": HTMLIxFlipTileElement; "ix-flip-tile-content": HTMLIxFlipTileContentElement; - "ix-form-field": HTMLIxFormFieldElement; "ix-group": HTMLIxGroupElement; "ix-group-context-menu": HTMLIxGroupContextMenuElement; "ix-group-item": HTMLIxGroupItemElement; + "ix-helper-text": HTMLIxHelperTextElement; "ix-icon-button": HTMLIxIconButtonElement; "ix-icon-toggle-button": HTMLIxIconToggleButtonElement; + "ix-input": HTMLIxInputElement; "ix-input-group": HTMLIxInputGroupElement; "ix-key-value": HTMLIxKeyValueElement; "ix-key-value-list": HTMLIxKeyValueListElement; "ix-kpi": HTMLIxKpiElement; + "ix-layout-auto": HTMLIxLayoutAutoElement; "ix-layout-grid": HTMLIxLayoutGridElement; "ix-link-button": HTMLIxLinkButtonElement; "ix-map-navigation": HTMLIxMapNavigationElement; @@ -4111,12 +5072,15 @@ declare global { "ix-modal-footer": HTMLIxModalFooterElement; "ix-modal-header": HTMLIxModalHeaderElement; "ix-modal-loading": HTMLIxModalLoadingElement; + "ix-number-input": HTMLIxNumberInputElement; "ix-pagination": HTMLIxPaginationElement; "ix-pane": HTMLIxPaneElement; "ix-pane-layout": HTMLIxPaneLayoutElement; "ix-pill": HTMLIxPillElement; "ix-playground-internal": HTMLIxPlaygroundInternalElement; "ix-push-card": HTMLIxPushCardElement; + "ix-radio": HTMLIxRadioElement; + "ix-radio-group": HTMLIxRadioGroupElement; "ix-row": HTMLIxRowElement; "ix-select": HTMLIxSelectElement; "ix-select-item": HTMLIxSelectItemElement; @@ -4126,6 +5090,7 @@ declare global { "ix-split-button-item": HTMLIxSplitButtonItemElement; "ix-tab-item": HTMLIxTabItemElement; "ix-tabs": HTMLIxTabsElement; + "ix-textarea": HTMLIxTextareaElement; "ix-tile": HTMLIxTileElement; "ix-time-picker": HTMLIxTimePickerElement; "ix-toast": HTMLIxToastElement; @@ -4530,6 +5495,86 @@ declare namespace LocalJSX { "suggestions"?: string[]; "tmpDisableScrollIntoView"?: boolean; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxCheckbox { + /** + * Checked state of the checkbox component + */ + "checked"?: boolean; + /** + * Disabled state of the checkbox component + */ + "disabled"?: boolean; + /** + * Indeterminate state of the checkbox component + */ + "indeterminate"?: boolean; + /** + * Label for the checkbox component + */ + "label"?: string; + /** + * Name of the checkbox component + */ + "name"?: string; + /** + * Event emitted when the checked state of the checkbox changes + */ + "onCheckedChange"?: (event: IxCheckboxCustomEvent) => void; + /** + * Event emitted when the value of the checkbox changes + */ + "onValueChange"?: (event: IxCheckboxCustomEvent) => void; + /** + * Required state of the checkbox component. If true, checkbox needs to be checked to be valid + */ + "required"?: boolean; + /** + * Value of the checkbox component + */ + "value"?: string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxCheckboxGroup { + /** + * Alignment of the checkboxes in the group + */ + "direction"?: 'row' | 'column'; + /** + * Optional helper text displayed below the checkbox group + */ + "helperText"?: string; + /** + * Info text for the checkbox group + */ + "infoText"?: string; + /** + * Error text for the checkbox group + */ + "invalidText"?: string; + /** + * Label for the checkbox group + */ + "label"?: string; + /** + * Show helper, info, warning, error and valid text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the checkbox group + */ + "validText"?: string; + /** + * Warning text for the checkbox group + */ + "warningText"?: string; + } interface IxChip { /** * Determines if the chip is interactive. If false no user input (e.g. mouse states, keyboard navigation) will be possible and also the close button will not be present. @@ -4637,6 +5682,43 @@ declare namespace LocalJSX { */ "itemName"?: string; } + /** + * @since 2.6.0 + */ + interface IxCustomField { + /** + * Show text below the field component which show additional information + */ + "helperText"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Label for the field component + */ + "label"?: string; + /** + * A value is required or must be checked for the form to be submittable + */ + "required"?: boolean; + /** + * Show helper, info, warning, error and valid text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } /** * @since 2.1.0 */ @@ -4711,6 +5793,87 @@ declare namespace LocalJSX { */ "weekStartIndex"?: number; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxDateInput { + /** + * disabled attribute + */ + "disabled"?: boolean; + /** + * Date format string. See {@link "https://moment.github.io/luxon/#/formatting?id=table-of-tokens"} for all available tokens. + */ + "format"?: string; + /** + * helper text below the input field + */ + "helperText"?: string; + /** + * i18n string for the error message when the date is not parsable + */ + "i18nErrorDateUnparsable"?: string; + /** + * info text below the input field + */ + "infoText"?: string; + /** + * error text below the input field + */ + "invalidText"?: string; + /** + * label of the input field + */ + "label"?: string; + /** + * Locale identifier (e.g. 'en' or 'de'). + * @since 2.6.0 + */ + "locale"?: string; + /** + * name of the input element + */ + "name"?: string; + "onIxBlur"?: (event: IxDateInputCustomEvent) => void; + "onIxFocus"?: (event: IxDateInputCustomEvent) => void; + /** + * Validation state change event. + */ + "onValidityStateChange"?: (event: IxDateInputCustomEvent) => void; + /** + * Input change event. + */ + "onValueChange"?: (event: IxDateInputCustomEvent) => void; + /** + * placeholder of the input element + */ + "placeholder"?: string; + /** + * readonly attribute + */ + "readonly"?: boolean; + /** + * required attribute + */ + "required"?: boolean; + /** + * show text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * valid text below the input field + */ + "validText"?: string; + /** + * value of the input element + */ + "value"?: string; + /** + * warning text below the input field + */ + "warningText"?: string; + } interface IxDatePicker { /** * Corner style @@ -4807,7 +5970,7 @@ declare namespace LocalJSX { * set styles */ "individual"?: boolean; - "standaloneAppearance"?: any; + "standaloneAppearance"?: boolean; } interface IxDatetimePicker { /** @@ -5006,6 +6169,7 @@ declare namespace LocalJSX { * @since 2.0.0 */ "suppressAutomaticPlacement"?: boolean; + "suppressOverflowBehavior"?: boolean; /** * Define an element that triggers the dropdown. A trigger can either be a string that will be interpreted as id attribute or a DOM element. */ @@ -5188,6 +6352,76 @@ declare namespace LocalJSX { */ "value"?: string; } + interface IxFieldLabel { + "controlRef"?: MakeRef; + /** + * The id of the form element that the label is associated with + */ + "htmlFor"?: string; + "isInvalid"?: boolean; + /** + * A value is required or must be checked for the form to be submittable + */ + "required"?: boolean; + } + interface IxFieldWrapper { + /** + * The control element that the label is associated with + */ + "controlRef"?: MakeRef; + /** + * Show text below the field component + */ + "helperText"?: string; + /** + * The id of the form element that the label is associated with + */ + "htmlForLabel"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Is the field component info + */ + "isInfo"?: boolean; + /** + * Is the field component invalid + */ + "isInvalid"?: boolean; + /** + * Is the field component valid + */ + "isValid"?: boolean; + /** + * Is the field component warning + */ + "isWarning"?: boolean; + /** + * Label for the field component + */ + "label"?: string; + /** + * Show label as required + */ + "required"?: boolean; + /** + * Show helper, error, info, warning text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } interface IxFilterChip { /** * If true the filter chip will be in disabled state @@ -5225,12 +6459,6 @@ declare namespace LocalJSX { */ "contentVisible"?: boolean; } - interface IxFormField { - /** - * Label - */ - "label"?: string; - } interface IxGroup { /** * Whether the group is collapsed or expanded. Defaults to true. @@ -5309,6 +6537,32 @@ declare namespace LocalJSX { */ "text"?: string; } + interface IxHelperText { + /** + * Show text below the field component + */ + "helperText"?: string; + /** + * The id of the form element that the label is associated with + */ + "htmlFor"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } interface IxIconButton { /** * Accessibility label for the icon button Will be set as aria-label on the nested HTML button element @@ -5355,55 +6609,145 @@ declare namespace LocalJSX { */ "size"?: '32' | '24' | '16' | '12'; /** - * Type of the button + * Type of the button + */ + "type"?: 'button' | 'submit'; + /** + * Variant of button + * @since 2.3.0 - variant danger + */ + "variant"?: IconButtonVariant; + } + /** + * @since 2.0.0 + */ + interface IxIconToggleButton { + /** + * Disable the button + */ + "disabled"?: boolean; + /** + * Button with no background or outline + */ + "ghost"?: boolean; + /** + * Icon name + */ + "icon"?: string; + /** + * Loading button + */ + "loading"?: boolean; + /** + * Pressed change event + */ + "onPressedChange"?: (event: IxIconToggleButtonCustomEvent) => void; + /** + * Outline button + */ + "outline"?: boolean; + /** + * Show button as pressed + */ + "pressed"?: boolean; + /** + * Size of icon in button + */ + "size"?: '24' | '16' | '12'; + /** + * Button variant. Important: Variant 'primary' can only be combined with either outline or ghost. + */ + "variant"?: ButtonVariant1; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxInput { + /** + * The allowed characters pattern for the text field. + */ + "allowedCharactersPattern"?: string; + /** + * Specifies whether the text field is disabled. + */ + "disabled"?: boolean; + /** + * The helper text for the text field. + */ + "helperText"?: string; + /** + * The info text for the text field. + */ + "infoText"?: string; + /** + * The error text for the text field. + */ + "invalidText"?: string; + /** + * The label for the text field. + */ + "label"?: string; + /** + * The maximum length of the text field. + */ + "maxLength"?: number; + /** + * The minimum length of the text field. + */ + "minLength"?: number; + /** + * The name of the text field. + */ + "name"?: string; + /** + * Event emitted when the text field loses focus. + */ + "onIxBlur"?: (event: IxInputCustomEvent) => void; + /** + * Event emitted when the validity state of the text field changes. */ - "type"?: 'button' | 'submit'; + "onValidityStateChange"?: (event: IxInputCustomEvent) => void; /** - * Variant of button - * @since 2.3.0 - variant danger + * Event emitted when the value of the text field changes. */ - "variant"?: IconButtonVariant; - } - /** - * @since 2.0.0 - */ - interface IxIconToggleButton { + "onValueChange"?: (event: IxInputCustomEvent) => void; /** - * Disable the button + * The pattern for the text field. */ - "disabled"?: boolean; + "pattern"?: string; /** - * Button with no background or outline + * The placeholder text for the text field. */ - "ghost"?: boolean; + "placeholder"?: string; /** - * Icon name + * Specifies whether the text field is readonly. */ - "icon"?: string; + "readonly"?: boolean; /** - * Loading button + * Specifies whether the text field is required. */ - "loading"?: boolean; + "required"?: boolean; /** - * Pressed change event + * Specifies whether to show the text as a tooltip. */ - "onPressedChange"?: (event: IxIconToggleButtonCustomEvent) => void; + "showTextAsTooltip"?: boolean; /** - * Outline button + * The type of the text field. Possible values are 'text', 'email', or 'password'. */ - "outline"?: boolean; + "type"?: 'text' | 'email' | 'password' | 'tel' | 'url'; /** - * Show button as pressed + * The valid text for the text field. */ - "pressed"?: boolean; + "validText"?: string; /** - * Size of icon in button + * The value of the text field. */ - "size"?: '24' | '16' | '12'; + "value"?: string; /** - * Button variant. Important: Variant 'primary' can only be combined with either outline or ghost. + * The warning text for the text field. */ - "variant"?: ButtonVariant1; + "warningText"?: string; } interface IxInputGroup { } @@ -5444,6 +6788,18 @@ declare namespace LocalJSX { "unit"?: string; "value"?: string | number; } + /** + * @since 2.6.0 + */ + interface IxLayoutAuto { + /** + * Defines the layout of the form. + */ + "layout"?: { + minWidth: string; + columns: number; + }[]; + } /** * @since 2.0.0 */ @@ -5891,6 +7247,96 @@ declare namespace LocalJSX { } interface IxModalLoading { } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxNumberInput { + /** + * The allowed characters pattern for the input field + */ + "allowedCharactersPattern"?: string; + /** + * Disables the input field + */ + "disabled"?: boolean; + /** + * The helper text for the input field + */ + "helperText"?: string; + /** + * The info text for the input field + */ + "infoText"?: string; + /** + * The error text for the input field + */ + "invalidText"?: string; + /** + * The label for the input field + */ + "label"?: string; + /** + * The maximum value for the input field + */ + "max"?: string | number; + /** + * The minimum value for the input field + */ + "min"?: string | number; + /** + * name of the input element + */ + "name"?: string; + /** + * Event emitted when the input field loses focus + */ + "onIxBlur"?: (event: IxNumberInputCustomEvent) => void; + /** + * Event emitted when the validity state of the input field changes + */ + "onValidityStateChange"?: (event: IxNumberInputCustomEvent) => void; + /** + * Event emitted when the value of the input field changes + */ + "onValueChange"?: (event: IxNumberInputCustomEvent) => void; + /** + * The pattern for the input field + */ + "pattern"?: string; + /** + * placeholder of the input element + */ + "placeholder"?: string; + /** + * Indicates if the field is read-only + */ + "readonly"?: boolean; + /** + * Indicates if the field is required + */ + "required"?: boolean; + /** + * Indicates if the stepper buttons should be shown + */ + "showStepperButtons"?: boolean; + /** + * Indicates if the text should be shown as a tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * The valid text for the input field + */ + "validText"?: string; + /** + * The value of the input field + */ + "value"?: number; + /** + * The warning text for the input field + */ + "warningText"?: string; + } /** * @since 1.5.0 */ @@ -6083,11 +7529,94 @@ declare namespace LocalJSX { */ "variant"?: PushCardVariant; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxRadio { + /** + * Checked state of the radio component + */ + "checked"?: boolean; + /** + * Disabled state of the radio component + */ + "disabled"?: boolean; + /** + * Label for the radio component + */ + "label"?: string; + /** + * Name of the radio component + */ + "name"?: string; + /** + * Event emitted when the checked state of the radio changes + */ + "onCheckedChange"?: (event: IxRadioCustomEvent) => void; + /** + * Event emitted when the value of the radio changes + */ + "onValueChange"?: (event: IxRadioCustomEvent) => void; + /** + * Value of the radio component + */ + "value"?: string; + } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxRadioGroup { + /** + * Alignment of the radio buttons in the group + */ + "direction"?: 'column' | 'row'; + /** + * Show text below the field component + */ + "helperText"?: string; + /** + * Info text for the field component + */ + "infoText"?: string; + /** + * Error text for the field component + */ + "invalidText"?: string; + /** + * Label for the field component + */ + "label"?: string; + /** + * Event emitted when the value of the radiobutton group changes + */ + "onValueChange"?: (event: IxRadioGroupCustomEvent) => void; + /** + * Show helper, info, warning, error and valid text as tooltip + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the field component + */ + "validText"?: string; + /** + * Value of the radiobutton group component + */ + "value"?: string; + /** + * Warning text for the field component + */ + "warningText"?: string; + } /** * @since 2.0.0 */ interface IxRow { } + /** + * @form-ready 2.6.0 + */ interface IxSelect { /** * Show clear button @@ -6101,13 +7630,18 @@ declare namespace LocalJSX { * Select is extendable */ "editable"?: boolean; + /** + * Helper text for the select component + * @since 2.6.0 + */ + "helperText"?: string; /** * Hide list header * @since 1.5.0 */ "hideListHeader"?: boolean; /** - * Hint inside of dropdown if no items where found with current filter text + * Information inside of dropdown if no items where found with current filter text * @since 1.5.0 */ "i18nNoMatches"?: string; @@ -6123,10 +7657,30 @@ declare namespace LocalJSX { * Select list header */ "i18nSelectListHeader"?: string; + /** + * Info text for the select component + * @since 2.6.0 + */ + "infoText"?: string; + /** + * Error text for the select component + * @since 2.6.0 + */ + "invalidText"?: string; + /** + * Label for the select component + * @since 2.6.0 + */ + "label"?: string; /** * Selection mode */ "mode"?: 'single' | 'multiple'; + /** + * A string that represents the element's name attribute, containing a name that identifies the element when submitting the form. + * @since 2.6.0 + */ + "name"?: string; /** * Item added to selection */ @@ -6141,6 +7695,10 @@ declare namespace LocalJSX { * @deprecated since 2.0.0. Use `valueChange` instead. */ "onItemSelectionChange"?: (event: IxSelectCustomEvent) => void; + /** + * Blur input + */ + "onIxBlur"?: (event: IxSelectCustomEvent) => void; /** * Value changed * @since 2.0.0 @@ -6150,16 +7708,36 @@ declare namespace LocalJSX { * If true the select will be in readonly mode */ "readonly"?: boolean; + /** + * A Boolean attribute indicating that an option with a non-empty string value must be selected + * @since 2.6.0 + */ + "required"?: boolean; /** * Indices of selected items. This corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list. * @deprecated since 2.0.0. Use the `value` property instead. */ "selectedIndices"?: string | string[]; + /** + * Show helper, error, info, warning text as tooltip + * @since 2.6.0 + */ + "showTextAsTooltip"?: boolean; + /** + * Valid text for the select component + * @since 2.6.0 + */ + "validText"?: string; /** * Current selected value. This corresponds to the value property of ix-select-items * @since 2.0.0 */ "value"?: string | string[]; + /** + * Warning text for the select component + * @since 2.6.0 + */ + "warningText"?: string; } interface IxSelectItem { "hover"?: boolean; @@ -6361,6 +7939,104 @@ declare namespace LocalJSX { */ "small"?: boolean; } + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + interface IxTextarea { + /** + * Determines if the textarea field is disabled. + */ + "disabled"?: boolean; + /** + * The helper text for the textarea field. + */ + "helperText"?: string; + /** + * The info text for the textarea field. + */ + "infoText"?: string; + /** + * The error text for the textarea field. + */ + "invalidText"?: string; + /** + * The label for the textarea field. + */ + "label"?: string; + /** + * The maximum length of the textarea field. + */ + "maxLength"?: number; + /** + * The minimum length of the textarea field. + */ + "minLength"?: number; + /** + * The name of the textarea field. + */ + "name"?: string; + /** + * Event emitted when the textarea field loses focus. + */ + "onIxBlur"?: (event: IxTextareaCustomEvent) => void; + /** + * Event emitted when the validity state of the textarea field changes. + */ + "onValidityStateChange"?: (event: IxTextareaCustomEvent) => void; + /** + * Event emitted when the value of the textarea field changes. + */ + "onValueChange"?: (event: IxTextareaCustomEvent) => void; + /** + * The placeholder text for the textarea field. + */ + "placeholder"?: string; + /** + * Determines if the textarea field is readonly. + */ + "readonly"?: boolean; + /** + * Determines if the textarea field is required. + */ + "required"?: boolean; + /** + * Determines the resize behavior of the textarea field. Resizing can be enabled in one direction, both directions or completely disabled. + */ + "resizeBehavior"?: TextareaResizeBehavior; + /** + * Determines if the text should be displayed as a tooltip. + */ + "showTextAsTooltip"?: boolean; + /** + * The width of the textarea specified by number of characters. + */ + "textareaCols"?: number; + /** + * The height of the textarea field (e.g. "52px"). + */ + "textareaHeight"?: string; + /** + * The height of the textarea specified by number of rows. + */ + "textareaRows"?: number; + /** + * The width of the textarea field (e.g. "200px"). + */ + "textareaWidth"?: string; + /** + * The valid text for the textarea field. + */ + "validText"?: string; + /** + * The value of the textarea field. + */ + "value"?: string; + /** + * The warning text for the textarea field. + */ + "warningText"?: string; + } interface IxTile { /** * Size of the tile - one of 'small', 'medium' or 'large' @@ -6471,6 +8147,9 @@ declare namespace LocalJSX { "containerId"?: string; "position"?: 'bottom-right' | 'top-right'; } + /** + * @form-ready 2.6.0 + */ interface IxToggle { /** * Whether the slide-toggle element is checked or not. @@ -6488,10 +8167,19 @@ declare namespace LocalJSX { * If true the control is in indeterminate state */ "indeterminate"?: boolean; + /** + * Name of the checkbox component + */ + "name"?: string; /** * An event will be dispatched each time the slide-toggle changes its value. */ "onCheckedChange"?: (event: IxToggleCustomEvent) => void; + "onValueChange"?: (event: IxToggleCustomEvent) => void; + /** + * Required state of the checkbox component. If true, checkbox needs to be checked to be valid + */ + "required"?: boolean; /** * Text for indeterminate state */ @@ -6504,6 +8192,10 @@ declare namespace LocalJSX { * Text for on state */ "textOn"?: string; + /** + * Value of the checkbox component + */ + "value"?: string; } /** * @since 2.0.0 @@ -6785,13 +8477,17 @@ declare namespace LocalJSX { "ix-card-list": IxCardList; "ix-card-title": IxCardTitle; "ix-category-filter": IxCategoryFilter; + "ix-checkbox": IxCheckbox; + "ix-checkbox-group": IxCheckboxGroup; "ix-chip": IxChip; "ix-col": IxCol; "ix-content": IxContent; "ix-content-header": IxContentHeader; "ix-css-grid": IxCssGrid; "ix-css-grid-item": IxCssGridItem; + "ix-custom-field": IxCustomField; "ix-date-dropdown": IxDateDropdown; + "ix-date-input": IxDateInput; "ix-date-picker": IxDatePicker; "ix-date-time-card": IxDateTimeCard; "ix-datetime-picker": IxDatetimePicker; @@ -6806,19 +8502,23 @@ declare namespace LocalJSX { "ix-event-list": IxEventList; "ix-event-list-item": IxEventListItem; "ix-expanding-search": IxExpandingSearch; + "ix-field-label": IxFieldLabel; + "ix-field-wrapper": IxFieldWrapper; "ix-filter-chip": IxFilterChip; "ix-flip-tile": IxFlipTile; "ix-flip-tile-content": IxFlipTileContent; - "ix-form-field": IxFormField; "ix-group": IxGroup; "ix-group-context-menu": IxGroupContextMenu; "ix-group-item": IxGroupItem; + "ix-helper-text": IxHelperText; "ix-icon-button": IxIconButton; "ix-icon-toggle-button": IxIconToggleButton; + "ix-input": IxInput; "ix-input-group": IxInputGroup; "ix-key-value": IxKeyValue; "ix-key-value-list": IxKeyValueList; "ix-kpi": IxKpi; + "ix-layout-auto": IxLayoutAuto; "ix-layout-grid": IxLayoutGrid; "ix-link-button": IxLinkButton; "ix-map-navigation": IxMapNavigation; @@ -6841,12 +8541,15 @@ declare namespace LocalJSX { "ix-modal-footer": IxModalFooter; "ix-modal-header": IxModalHeader; "ix-modal-loading": IxModalLoading; + "ix-number-input": IxNumberInput; "ix-pagination": IxPagination; "ix-pane": IxPane; "ix-pane-layout": IxPaneLayout; "ix-pill": IxPill; "ix-playground-internal": IxPlaygroundInternal; "ix-push-card": IxPushCard; + "ix-radio": IxRadio; + "ix-radio-group": IxRadioGroup; "ix-row": IxRow; "ix-select": IxSelect; "ix-select-item": IxSelectItem; @@ -6856,6 +8559,7 @@ declare namespace LocalJSX { "ix-split-button-item": IxSplitButtonItem; "ix-tab-item": IxTabItem; "ix-tabs": IxTabs; + "ix-textarea": IxTextarea; "ix-tile": IxTile; "ix-time-picker": IxTimePicker; "ix-toast": IxToast; @@ -6917,6 +8621,16 @@ declare module "@stencil/core" { */ "ix-card-title": LocalJSX.IxCardTitle & JSXBase.HTMLAttributes; "ix-category-filter": LocalJSX.IxCategoryFilter & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-checkbox": LocalJSX.IxCheckbox & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-checkbox-group": LocalJSX.IxCheckboxGroup & JSXBase.HTMLAttributes; "ix-chip": LocalJSX.IxChip & JSXBase.HTMLAttributes; /** * @since 2.0.0 @@ -6929,10 +8643,19 @@ declare module "@stencil/core" { "ix-content-header": LocalJSX.IxContentHeader & JSXBase.HTMLAttributes; "ix-css-grid": LocalJSX.IxCssGrid & JSXBase.HTMLAttributes; "ix-css-grid-item": LocalJSX.IxCssGridItem & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + */ + "ix-custom-field": LocalJSX.IxCustomField & JSXBase.HTMLAttributes; /** * @since 2.1.0 */ "ix-date-dropdown": LocalJSX.IxDateDropdown & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-date-input": LocalJSX.IxDateInput & JSXBase.HTMLAttributes; "ix-date-picker": LocalJSX.IxDatePicker & JSXBase.HTMLAttributes; "ix-date-time-card": LocalJSX.IxDateTimeCard & JSXBase.HTMLAttributes; "ix-datetime-picker": LocalJSX.IxDatetimePicker & JSXBase.HTMLAttributes; @@ -6962,18 +8685,25 @@ declare module "@stencil/core" { "ix-event-list": LocalJSX.IxEventList & JSXBase.HTMLAttributes; "ix-event-list-item": LocalJSX.IxEventListItem & JSXBase.HTMLAttributes; "ix-expanding-search": LocalJSX.IxExpandingSearch & JSXBase.HTMLAttributes; + "ix-field-label": LocalJSX.IxFieldLabel & JSXBase.HTMLAttributes; + "ix-field-wrapper": LocalJSX.IxFieldWrapper & JSXBase.HTMLAttributes; "ix-filter-chip": LocalJSX.IxFilterChip & JSXBase.HTMLAttributes; "ix-flip-tile": LocalJSX.IxFlipTile & JSXBase.HTMLAttributes; "ix-flip-tile-content": LocalJSX.IxFlipTileContent & JSXBase.HTMLAttributes; - "ix-form-field": LocalJSX.IxFormField & JSXBase.HTMLAttributes; "ix-group": LocalJSX.IxGroup & JSXBase.HTMLAttributes; "ix-group-context-menu": LocalJSX.IxGroupContextMenu & JSXBase.HTMLAttributes; "ix-group-item": LocalJSX.IxGroupItem & JSXBase.HTMLAttributes; + "ix-helper-text": LocalJSX.IxHelperText & JSXBase.HTMLAttributes; "ix-icon-button": LocalJSX.IxIconButton & JSXBase.HTMLAttributes; /** * @since 2.0.0 */ "ix-icon-toggle-button": LocalJSX.IxIconToggleButton & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-input": LocalJSX.IxInput & JSXBase.HTMLAttributes; "ix-input-group": LocalJSX.IxInputGroup & JSXBase.HTMLAttributes; /** * @since 1.6.0 @@ -6984,6 +8714,10 @@ declare module "@stencil/core" { */ "ix-key-value-list": LocalJSX.IxKeyValueList & JSXBase.HTMLAttributes; "ix-kpi": LocalJSX.IxKpi & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + */ + "ix-layout-auto": LocalJSX.IxLayoutAuto & JSXBase.HTMLAttributes; /** * @since 2.0.0 */ @@ -7024,6 +8758,11 @@ declare module "@stencil/core" { */ "ix-modal-header": LocalJSX.IxModalHeader & JSXBase.HTMLAttributes; "ix-modal-loading": LocalJSX.IxModalLoading & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-number-input": LocalJSX.IxNumberInput & JSXBase.HTMLAttributes; /** * @since 1.5.0 */ @@ -7042,10 +8781,23 @@ declare module "@stencil/core" { * @since 1.6.0 */ "ix-push-card": LocalJSX.IxPushCard & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-radio": LocalJSX.IxRadio & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-radio-group": LocalJSX.IxRadioGroup & JSXBase.HTMLAttributes; /** * @since 2.0.0 */ "ix-row": LocalJSX.IxRow & JSXBase.HTMLAttributes; + /** + * @form-ready 2.6.0 + */ "ix-select": LocalJSX.IxSelect & JSXBase.HTMLAttributes; "ix-select-item": LocalJSX.IxSelectItem & JSXBase.HTMLAttributes; /** @@ -7060,10 +8812,18 @@ declare module "@stencil/core" { "ix-split-button-item": LocalJSX.IxSplitButtonItem & JSXBase.HTMLAttributes; "ix-tab-item": LocalJSX.IxTabItem & JSXBase.HTMLAttributes; "ix-tabs": LocalJSX.IxTabs & JSXBase.HTMLAttributes; + /** + * @since 2.6.0 + * @form-ready 2.6.0 + */ + "ix-textarea": LocalJSX.IxTextarea & JSXBase.HTMLAttributes; "ix-tile": LocalJSX.IxTile & JSXBase.HTMLAttributes; "ix-time-picker": LocalJSX.IxTimePicker & JSXBase.HTMLAttributes; "ix-toast": LocalJSX.IxToast & JSXBase.HTMLAttributes; "ix-toast-container": LocalJSX.IxToastContainer & JSXBase.HTMLAttributes; + /** + * @form-ready 2.6.0 + */ "ix-toggle": LocalJSX.IxToggle & JSXBase.HTMLAttributes; /** * @since 2.0.0 diff --git a/packages/core/src/components/category-filter/category-filter.scss b/packages/core/src/components/category-filter/category-filter.scss index 7cecadf8d92..db5a8f5b8d3 100644 --- a/packages/core/src/components/category-filter/category-filter.scss +++ b/packages/core/src/components/category-filter/category-filter.scss @@ -25,11 +25,6 @@ position: relative; height: auto; - @include host-focus-visible { - border-color: var(--theme-color-primary); - box-shadow: 0 0 $tiny-space 0 var(--theme-color-primary) !important; - } - .reset-button { position: absolute; top: $tiny-space; @@ -45,6 +40,17 @@ @include element-input('false'); } + &:not(.readonly):not(.disabled):hover { + border-color: var(--theme-input--border-color--hover) !important; + background-color: var(--theme-input--background--hover); + } + + &:not(.readonly):not(.disabled).focus { + outline: 1px solid var(--theme-color-focus-bdr); + outline-offset: var(--theme-input--focus--outline-offset); + border-color: var(--theme-input--border-color--focus) !important; + } + &.disabled { color: var(--theme-input--color--disabled); border-bottom: var(--theme-input--border-thickness, 1px) solid @@ -82,9 +88,10 @@ &, &:hover, + &:focus &:focus-visible { - border: none; - outline: none; + border: none !important; + outline: none !important; } &.hide-placeholder::placeholder { diff --git a/packages/core/src/components/checkbox-group/checkbox-group.scss b/packages/core/src/components/checkbox-group/checkbox-group.scss new file mode 100644 index 00000000000..ea9cd126452 --- /dev/null +++ b/packages/core/src/components/checkbox-group/checkbox-group.scss @@ -0,0 +1,26 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import 'mixins/shadow-dom/component'; + +:host { + display: inline-block; + position: relative; + + .checkbox-container { + display: flex; + flex-direction: column; + gap: 1rem; + margin: 0.375rem 0; + flex-wrap: wrap; + + &.row-layout { + flex-direction: row; + } + } +} diff --git a/packages/core/src/components/checkbox-group/checkbox-group.tsx b/packages/core/src/components/checkbox-group/checkbox-group.tsx new file mode 100644 index 00000000000..1a0621da771 --- /dev/null +++ b/packages/core/src/components/checkbox-group/checkbox-group.tsx @@ -0,0 +1,110 @@ +import { Component, Element, Host, Prop, State, h } from '@stencil/core'; +import { + FieldWrapperInterface, + HookValidationLifecycle, + IxFormValidationState, + ValidationResults, +} from '../utils/input'; +import { IxComponent } from '../utils/internal'; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-checkbox-group', + styleUrl: 'checkbox-group.scss', + shadow: true, +}) +export class CheckboxGroup + implements FieldWrapperInterface, IxFormValidationState, IxComponent +{ + @Element() hostElement!: HTMLIxCheckboxGroupElement; + /** + * Optional helper text displayed below the checkbox group + */ + @Prop() helperText?: string; + + /** + * Label for the checkbox group + */ + @Prop() label?: string; + + /** + * Alignment of the checkboxes in the group + */ + @Prop() direction: 'row' | 'column' = 'column'; + + /** + * Error text for the checkbox group + */ + @Prop() invalidText?: string; + + /** + * Info text for the checkbox group + */ + @Prop() infoText?: string; + /** + * Valid text for the checkbox group + */ + @Prop() validText?: string; + /** + * Warning text for the checkbox group + */ + @Prop() warningText?: string; + + /** + * Show helper, info, warning, error and valid text as tooltip + */ + @Prop() showTextAsTooltip = false; + + @State() isInvalid = false; + @State() isInfo = false; + @State() isValid = false; + @State() isWarning = false; + + @HookValidationLifecycle({ + includeChildren: true, + }) + onClassFieldUpdate({ + isInvalid, + isInvalidByRequired, + isInfo, + isValid, + isWarning, + }: ValidationResults) { + this.isInvalid = isInvalid || isInvalidByRequired; + this.isInfo = isInfo; + this.isValid = isValid; + this.isWarning = isWarning; + } + + render() { + return ( + + +
+ +
+
+
+ ); + } +} diff --git a/packages/core/src/components/checkbox/checkbox.scss b/packages/core/src/components/checkbox/checkbox.scss new file mode 100644 index 00000000000..229be179e8c --- /dev/null +++ b/packages/core/src/components/checkbox/checkbox.scss @@ -0,0 +1,264 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + @import 'mixins/shadow-dom/component'; + +:host { + --ix-checkbox-check-color: var(--theme-color-primary--contrast); + + @include ix-component; + display: inline-block; + position: relative; + + button { + all: unset; + display: inline-flex; + position: relative; + + align-items: center; + justify-content: center; + + width: 1.125rem; + min-width: 1.125rem; + max-width: 1.125rem; + height: 1.125rem; + min-height: 1.125rem; + max-height: 1.125rem; + margin-right: 0.5rem; + } + + button:disabled { + background-color: var(--theme-checkbox-unchecked--background--disabled); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--disabled); + } + + button:focus-visible { + outline: 0.0625rem solid var(--theme-color-focus-bdr); + outline-offset: var(--theme-checkbox--focus--outline-offset); + } + + input[type="checkbox"] { + display: none; + } + + label { + display: flex; + + justify-content: flex-start; + align-items: flex-start; + + width: 100%; + height: 100%; + } + + ix-typography { + margin-top: 0.125rem; + } +} + +@mixin checkbox-base() { + :host { + button { + background-color: var(--theme-checkbox-unchecked--background); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color); + } + } + + :host(:hover) { + button { + background-color: var(--theme-checkbox-unchecked--background--hover); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--hover); + } + } + + :host(:active) { + button { + background-color: var(--theme-checkbox-unchecked--background--active); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--active); + } + } + + :host(.checked), + :host(.indeterminate) { + button { + background-color: var(--theme-checkbox-checked--background); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color); + } + } + + :host(.checked:hover), + :host(.indeterminate:hover) { + button { + background-color: var(--theme-checkbox-checked--background--hover); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--hover); + } + } + + :host(.checked:active), + :host(.indeterminate:active) { + button { + background-color: var(--theme-checkbox-checked--background--active); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--active); + } + } + + :host(:disabled), + :host(.disabled) { + button { + background-color: var(--theme-checkbox-unchecked--background--disabled); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--disabled); + } + } + + :host(.checked:disabled), + :host(.checked.disabled), + :host(.indeterminate:disabled), + :host(.indeterminate.disabled) { + button { + background-color: var(--theme-checkbox-checked--background--disabled); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--disabled); + } + } +} + +@mixin checkbox-variant($selector) { + :host(#{$selector}) { + button { + @content; + background-color: var(--theme-checkbox-unchecked--background); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color); + } + } + + :host(#{$selector}:hover) { + button { + background-color: var(--theme-checkbox-unchecked--background--hover); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--hover); + } + } + + :host(#{$selector}:active) { + button { + background-color: var(--theme-checkbox-unchecked--background--active); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--active); + } + } + + :host(#{$selector}.checked), + :host(#{$selector}.indeterminate) { + button { + background-color: var(--theme-checkbox-checked--background); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color); + } + } + + :host(#{$selector}.checked:hover), + :host(#{$selector}.indeterminate:hover) { + button { + background-color: var(--theme-checkbox-checked--background--hover); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--hover); + } + } + + :host(#{$selector}.checked:active), + :host(#{$selector}.indeterminate:active) { + button { + background-color: var(--theme-checkbox-checked--background--active); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--active); + } + } + + :host(#{$selector}:disabled), + :host(#{$selector}.disabled) { + button { + background-color: var(--theme-checkbox-unchecked--background--disabled); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-unchecked--border-color--disabled); + } + } + + :host(#{$selector}.checked:disabled), + :host(#{$selector}.checked.disabled), + :host(#{$selector}.indeterminate:disabled), + :host(#{$selector}.indeterminate.disabled) { + button { + background-color: var(--theme-checkbox-checked--background--disabled); + border: var(--theme-checkbox--border-thickness) solid + var(--theme-checkbox-checked--border-color--disabled); + } + } +} + +@mixin define-checkbox-vars($state, $type) { + --theme-checkbox-#{$state}--background: var(--theme-checkbox-#{$state}--background--#{$type}); + --theme-checkbox-#{$state}--background--hover: var(--theme-checkbox-#{$state}--background--#{$type}--hover); + --theme-checkbox-#{$state}--background--active: var(--theme-checkbox-#{$state}--background--#{$type}--active); + + --theme-checkbox-#{$state}--border-color: var(--theme-checkbox-#{$state}--border-color--#{$type}); + --theme-checkbox-#{$state}--border-color--hover: var(--theme-checkbox-#{$state}--border-color--#{$type}--hover); + --theme-checkbox-#{$state}--border-color--active: var(--theme-checkbox-#{$state}--border-color--#{$type}--active); +} + +@include checkbox-base(); +@include checkbox-variant( + $selector: '.ix-info', +) { + @include define-checkbox-vars('unchecked', 'info'); + @include define-checkbox-vars('checked', 'info'); + @include define-checkbox-vars('mixed', 'info'); +} + +@include checkbox-variant( + $selector: '.ix-warning', +) { + @include define-checkbox-vars('unchecked', 'warning'); + @include define-checkbox-vars('checked', 'warning'); + @include define-checkbox-vars('mixed', 'warning'); +} + +@include checkbox-variant( + $selector: '.ix-invalid--required', +) { + @include define-checkbox-vars('unchecked', 'invalid'); + @include define-checkbox-vars('checked', 'invalid'); + @include define-checkbox-vars('mixed', 'invalid'); +} + +@include checkbox-variant( + $selector: '.ix-invalid', +) { + @include define-checkbox-vars('unchecked', 'invalid'); + @include define-checkbox-vars('checked', 'invalid'); + @include define-checkbox-vars('mixed', 'invalid'); +} + +:host(:disabled), +:host(.disabled) { + pointer-events: none; + + button, + label, + input { + pointer-events: none; + } +} diff --git a/packages/core/src/components/checkbox/checkbox.tsx b/packages/core/src/components/checkbox/checkbox.tsx new file mode 100644 index 00000000000..c80d8ea347a --- /dev/null +++ b/packages/core/src/components/checkbox/checkbox.tsx @@ -0,0 +1,217 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + AttachInternals, + Component, + Event, + EventEmitter, + Host, + Prop, + Watch, + h, + Element, + Method, +} from '@stencil/core'; +import { HookValidationLifecycle, IxFormComponent } from '../utils/input'; +import { makeRef } from '../utils/make-ref'; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-checkbox', + styleUrl: 'checkbox.scss', + shadow: true, + formAssociated: true, +}) +export class Checkbox implements IxFormComponent { + @Element() hostElement!: HTMLIxCheckboxElement; + + @AttachInternals() formInternals!: ElementInternals; + + /** + * Name of the checkbox component + */ + @Prop({ reflect: true }) name?: string; + + /** + * Value of the checkbox component + */ + @Prop({ reflect: true }) value: string = 'on'; + + /** + * Label for the checkbox component + */ + @Prop() label?: string; + + /** + * Checked state of the checkbox component + */ + @Prop({ reflect: true, mutable: true }) checked: boolean = false; + + /** + * Disabled state of the checkbox component + */ + @Prop({ reflect: true }) disabled: boolean = false; + + /** + * Indeterminate state of the checkbox component + */ + @Prop({ reflect: true }) indeterminate: boolean = false; + + /** + * Required state of the checkbox component. + * + * If true, checkbox needs to be checked to be valid + */ + @Prop({ reflect: true }) required = false; + + /** + * Event emitted when the checked state of the checkbox changes + */ + @Event() checkedChange!: EventEmitter; + + /** + * Event emitted when the value of the checkbox changes + */ + @Event() valueChange!: EventEmitter; + + private readonly inputRef = makeRef((checkboxRef) => { + checkboxRef.checked = this.checked; + }); + + private setCheckedState(newChecked: boolean) { + this.checked = newChecked; + this.checkedChange.emit(this.checked); + } + + @Watch('checked') + onCheckedChange() { + this.updateFormInternalValue(); + } + + @Watch('value') + onValueChange() { + this.valueChange.emit(this.value); + } + + componentWillLoad() { + this.updateFormInternalValue(); + } + + updateFormInternalValue() { + if (this.checked) { + this.formInternals.setFormValue(this.value ?? 'on'); + } else { + this.formInternals.setFormValue(null); + } + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(this.checked); + } + + /** @internal */ + @Method() + getAssociatedFormElement(): Promise { + return Promise.resolve(this.formInternals.form); + } + + @HookValidationLifecycle() + updateClassMappings() { + /** This function is intentionally empty */ + } + + private renderCheckmark() { + if (this.checked) { + return ( + + + + ); + } + + if (this.indeterminate) { + return ( + + + + + ); + } + } + + render() { + return ( + + + + ); + } +} diff --git a/packages/core/src/components/checkbox/tests/checkbox.ct.ts b/packages/core/src/components/checkbox/tests/checkbox.ct.ts new file mode 100644 index 00000000000..d10f66167d1 --- /dev/null +++ b/packages/core/src/components/checkbox/tests/checkbox.ct.ts @@ -0,0 +1,57 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { getFormValue, preventFormSubmission, test } from '@utils/test'; +import { expect } from '@playwright/test'; + +test(`form-ready`, async ({ mount, page }) => { + await mount(`
`); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + await page.locator('ix-checkbox').click(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('on'); +}); + +test(`form-ready with value`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + await page.locator('ix-checkbox').click(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('custom-value'); +}); + +test(`form-ready default active`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('on'); +}); + +test(`disabled`, async ({ mount, page }) => { + await mount(``); + const checkboxElement = page.locator('ix-checkbox'); + await expect(checkboxElement).toBeDisabled(); +}); + +test('label', async ({ mount, page }) => { + await mount(``); + const checkboxElement = page.locator('ix-checkbox').locator('label'); + await expect(checkboxElement).toHaveText('some label'); +}); diff --git a/packages/core/src/components/form-field/form-field.scss b/packages/core/src/components/custom-field/custom-field.scss similarity index 63% rename from packages/core/src/components/form-field/form-field.scss rename to packages/core/src/components/custom-field/custom-field.scss index 53c73831ad2..853dcbbbefb 100644 --- a/packages/core/src/components/form-field/form-field.scss +++ b/packages/core/src/components/custom-field/custom-field.scss @@ -1,13 +1,14 @@ /* - * SPDX-FileCopyrightText: 2023 Siemens AG + * SPDX-FileCopyrightText: 2024 Siemens AG * * SPDX-License-Identifier: MIT * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -@import 'components/form/input'; :host { - display: contents; + display: block; + width: fit-content; + height: fit-content; } diff --git a/packages/core/src/components/custom-field/custom-field.tsx b/packages/core/src/components/custom-field/custom-field.tsx new file mode 100644 index 00000000000..9ce79d1d666 --- /dev/null +++ b/packages/core/src/components/custom-field/custom-field.tsx @@ -0,0 +1,113 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component, Host, Prop, State, h, Element } from '@stencil/core'; +import { + FieldWrapperInterface, + HookValidationLifecycle, + IxFormValidationState, + ValidationResults, +} from '../utils/input'; +import { IxComponent } from '../utils/internal'; + +/** + * @since 2.6.0 + */ +@Component({ + tag: 'ix-custom-field', + styleUrl: 'custom-field.scss', + shadow: true, +}) +export class CustomField + implements FieldWrapperInterface, IxFormValidationState, IxComponent +{ + @Element() hostElement!: HTMLIxCustomFieldElement; + /** + * A value is required or must be checked for the form to be submittable + */ + @Prop() required: boolean = false; + + /** + * Label for the field component + */ + @Prop() label?: string; + + /** + * Show text below the field component which show additional information + */ + @Prop() helperText?: string; + + /** + * Info text for the field component + */ + @Prop() infoText?: string; + + /** + * Warning text for the field component + */ + @Prop() warningText?: string; + + /** + * Error text for the field component + */ + @Prop() invalidText?: string; + + /** + * Valid text for the field component + */ + @Prop() validText?: string; + + /** + * Show helper, info, warning, error and valid text as tooltip + */ + @Prop() showTextAsTooltip?: boolean; + + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + + @HookValidationLifecycle({ + includeChildren: true, + }) + updateValidationState({ + isInvalid, + isValid, + isInfo, + isWarning, + }: ValidationResults) { + this.isInvalid = isInvalid; + this.isValid = isValid; + this.isInfo = isInfo; + this.isWarning = isWarning; + } + + render() { + return ( + + + + + + ); + } +} diff --git a/packages/core/src/components/custom-field/tests/custom-field.ct.ts b/packages/core/src/components/custom-field/tests/custom-field.ct.ts new file mode 100644 index 00000000000..5ab710e4969 --- /dev/null +++ b/packages/core/src/components/custom-field/tests/custom-field.ct.ts @@ -0,0 +1,90 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { expect } from '@playwright/test'; +import { test } from '@utils/test'; + +test('renders', async ({ mount, page }) => { + await mount(``); + const customFieldElement = page.locator('ix-custom-field'); + await expect(customFieldElement).toHaveClass(/hydrated/); +}); + +test('renders with label', async ({ mount, page }) => { + await mount(``); + const customFieldElement = page.locator('ix-custom-field'); + const fieldLabel = customFieldElement.locator('ix-field-label'); + const typography = fieldLabel.locator('label').locator('ix-typography'); + await expect(customFieldElement).toHaveClass(/hydrated/); + await expect(fieldLabel).toHaveClass(/hydrated/); + await expect(typography).toHaveClass(/typography-label/); + await expect(fieldLabel.filter({ hasText: 'Label' })).toHaveText('Label'); +}); + +test('renders with helper-text', async ({ mount, page }) => { + await mount( + `` + ); + const customFieldElement = page.locator('ix-custom-field'); + const fieldWrapper = customFieldElement.locator('ix-field-wrapper'); + await expect(customFieldElement).toHaveClass(/hydrated/); + await expect(fieldWrapper).toHaveClass(/hydrated/); + await expect(fieldWrapper.filter({ hasText: 'Some helper text' })).toHaveText( + 'Some helper text' + ); +}); + +test('renders with invalid-text', async ({ mount, page }) => { + await mount( + ` + + ` + ); + const customFieldElement = page.locator('ix-custom-field'); + const fieldWrapper = customFieldElement.locator('ix-field-wrapper'); + await expect(customFieldElement).toHaveClass(/hydrated/); + await expect(fieldWrapper).toHaveClass(/hydrated/); + await expect(fieldWrapper.filter({ hasText: 'Error' })).toHaveText('Error'); +}); + +test('renders with invalid-text if on child is invalid', async ({ + mount, + page, +}) => { + await mount( + ` + +
Some custom
+
` + ); + const customFieldElement = page.locator('ix-custom-field'); + const fieldWrapper = customFieldElement.locator('ix-field-wrapper'); + await expect(customFieldElement).toHaveClass(/hydrated/); + await expect(fieldWrapper).toHaveClass(/hydrated/); + await expect(fieldWrapper.filter({ hasText: 'Some helper text' })).toHaveText( + 'Some helper text' + ); + + const custom = customFieldElement.getByTestId('custom'); + custom.evaluate((node) => node.classList.add('ix-invalid')); + + await expect(fieldWrapper.filter({ hasText: 'Error' })).toHaveText('Error'); +}); + +test('renders with required label', async ({ mount, page }) => { + await mount( + `` + ); + const customFieldElement = page.locator('ix-custom-field'); + const fieldLabel = customFieldElement.locator('ix-field-label'); + const typography = fieldLabel.locator('label').locator('ix-typography'); + await expect(customFieldElement).toHaveClass(/hydrated/); + await expect(fieldLabel).toHaveClass(/hydrated/); + await expect(typography).toHaveClass(/typography-label/); + await expect(fieldLabel.filter({ hasText: 'Label *' })).toHaveText('Label *'); +}); diff --git a/packages/core/src/components/date-dropdown/date-dropdown.tsx b/packages/core/src/components/date-dropdown/date-dropdown.tsx index 78def47fefb..3a8ea884d2a 100644 --- a/packages/core/src/components/date-dropdown/date-dropdown.tsx +++ b/packages/core/src/components/date-dropdown/date-dropdown.tsx @@ -21,6 +21,7 @@ import { Watch, } from '@stencil/core'; import { DateTime } from 'luxon'; +import { type LiteralStringUnion } from '../utils/type-helper'; import { IxDatePickerComponent } from '../date-picker/date-picker-component'; import { makeRef } from '../utils/make-ref'; @@ -187,7 +188,7 @@ export class DateDropdown implements Omit { @Event() private readonly dateRangeChange!: EventEmitter; - @State() private selectedDateRangeId: string = 'custom'; + @State() private selectedDateRangeId: LiteralStringUnion<'custom'>; @State() private currentRangeValue?: { from: string; to: string; diff --git a/packages/core/src/components/date-input/date-input.scss b/packages/core/src/components/date-input/date-input.scss new file mode 100644 index 00000000000..3a6589eed50 --- /dev/null +++ b/packages/core/src/components/date-input/date-input.scss @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import 'mixins/shadow-dom/component'; +@import 'components/form/input'; +@import './../input/input.mixins.scss'; + +@include input-field; + +:host { + @include ix-component; + + display: inline-block; + position: relative; + + input { + width: 100%; + height: 100%; + } + + .calendar-hidden { + display: none; + } +} + +:host(.readonly) { + input { + pointer-events: none; + } +} diff --git a/packages/core/src/components/date-input/date-input.tsx b/packages/core/src/components/date-input/date-input.tsx new file mode 100644 index 00000000000..92de60cfc32 --- /dev/null +++ b/packages/core/src/components/date-input/date-input.tsx @@ -0,0 +1,468 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + AttachInternals, + Component, + Element, + Event, + EventEmitter, + Host, + Method, + Prop, + State, + Watch, + h, +} from '@stencil/core'; +import { DateTime } from 'luxon'; +import { dropdownController } from '../dropdown/dropdown-controller'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { + ClassMutationObserver, + HookValidationLifecycle, + IxInputFieldComponent, + ValidationResults, + createClassMutationObserver, +} from '../utils/input'; +import { SlotEnd, SlotStart } from '../input/input.fc'; +import { adjustPaddingForStartAndEnd } from '../input/input.util'; +import { iconCalendar } from '@siemens/ix-icons/icons'; + +export type DateInputValidityState = { + patternMismatch: boolean; + invalidReason?: string; +}; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-date-input', + styleUrl: 'date-input.scss', + shadow: true, + formAssociated: true, +}) +export class DateInput implements IxInputFieldComponent { + @Element() hostElement!: HTMLIxDateInputElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * name of the input element + */ + @Prop({ reflect: true }) name?: string; + + /** + * placeholder of the input element + */ + @Prop({ reflect: true }) placeholder?: string; + + /** + * value of the input element + */ + @Prop({ reflect: true, mutable: true }) value: string = ''; + + /** + * Locale identifier (e.g. 'en' or 'de'). + * + * @since 2.6.0 + */ + @Prop() locale?: string; + + /** + * Date format string. + * See {@link "https://moment.github.io/luxon/#/formatting?id=table-of-tokens"} for all available tokens. + */ + @Prop() format: string = 'yyyy/LL/dd'; + + /** + * required attribute + */ + @Prop() required?: boolean; + + /** + * helper text below the input field + */ + @Prop() helperText?: string; + + /** + * label of the input field + */ + @Prop() label?: string; + + /** + * error text below the input field + */ + @Prop({ reflect: true }) invalidText?: string; + + /** + * readonly attribute + */ + @Prop() readonly: boolean = false; + + /** + * disabled attribute + */ + @Prop() disabled: boolean = false; + + /** + * info text below the input field + */ + @Prop() infoText?: string; + + /** + * warning text below the input field + */ + @Prop() warningText?: string; + + /** + * valid text below the input field + */ + @Prop() validText?: string; + + /** + * show text as tooltip + */ + @Prop() showTextAsTooltip?: boolean; + + /** + * i18n string for the error message when the date is not parsable + */ + @Prop({ attribute: 'i18n-error-date-unparsable' }) i18nErrorDateUnparsable = + 'Date is not valid'; + + /** + * Input change event. + */ + @Event({ cancelable: false }) valueChange!: EventEmitter; + + /** + * Validation state change event. + */ + @Event() validityStateChange!: EventEmitter; + + /** @internal */ + @Event() ixFocus!: EventEmitter; + + /** @internal */ + @Event() ixBlur!: EventEmitter; + + @State() show = false; + @State() from: string | null = null; + @State() isInputInvalid = false; + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + @State() focus = false; + + private readonly slotStartRef = makeRef(); + private readonly slotEndRef = makeRef(); + + private readonly datepickerRef = makeRef(); + + private readonly inputElementRef = makeRef(); + private readonly dropdownElementRef = makeRef(); + private classObserver?: ClassMutationObserver; + private invalidReason?: string; + + updateFormInternalValue(value: string): void { + this.formInternals.setFormValue(value); + this.value = value; + } + + connectedCallback(): void { + this.classObserver = createClassMutationObserver(this.hostElement, () => + this.checkClassList() + ); + } + + componentWillLoad(): void { + this.onInput(this.value); + if (this.isInputInvalid) { + this.from = null; + } else { + this.watchValue(); + } + + this.checkClassList(); + this.updateFormInternalValue(this.value); + } + + componentDidRender(): void { + this.updatePaddings(); + } + + private updatePaddings() { + adjustPaddingForStartAndEnd( + this.slotStartRef.current, + this.slotEndRef.current, + this.inputElementRef.current + ); + } + + disconnectedCallback(): void { + if (this.classObserver) { + this.classObserver.destroy(); + } + } + + @Watch('value') + watchValue() { + this.from = this.value; + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(!!this.value); + } + + /** @internal */ + @Method() + getAssociatedFormElement(): Promise { + return Promise.resolve(this.formInternals.form); + } + + async onInput(value: string) { + this.value = value; + if (!value) { + this.valueChange.emit(value); + return; + } + + if (!this.format) { + return; + } + + const date = DateTime.fromFormat(value, this.format); + if (date.isValid) { + this.isInputInvalid = false; + + this.updateFormInternalValue(value); + this.closeDropdown(); + } else { + this.isInputInvalid = true; + this.invalidReason = date.invalidReason; + } + + this.valueChange.emit(value); + } + + onCalenderClick(event: Event) { + if (!this.show) { + event.stopPropagation(); + event.preventDefault(); + this.openDropdown(); + } + + if (this.inputElementRef.current) { + this.inputElementRef.current.focus(); + } + } + + async openDropdown() { + const dropdownElement = await this.dropdownElementRef.waitForCurrent(); + const id = dropdownElement.getAttribute('data-ix-dropdown'); + + dropdownController.dismissAll(); + if (!id) { + return; + } + + const dropdown = dropdownController.getDropdownById(id); + if (!dropdown) { + return; + } + dropdownController.present(dropdown); + } + + async closeDropdown() { + const dropdownElement = await this.dropdownElementRef.waitForCurrent(); + const id = dropdownElement.getAttribute('data-ix-dropdown'); + + if (!id) { + return; + } + + const dropdown = dropdownController.getDropdownById(id); + if (!dropdown) { + return; + } + dropdownController.dismiss(dropdown); + } + + private checkClassList() { + this.isInvalid = this.hostElement.classList.contains('ix-invalid'); + } + + private renderInput() { + return ( +
+ this.updatePaddings()} + > + { + const target = event.target as HTMLInputElement; + this.onInput(target.value); + }} + onClick={(event) => { + if (this.show) { + event.stopPropagation(); + event.preventDefault(); + } + }} + onFocus={async () => { + this.openDropdown(); + this.ixFocus.emit(); + }} + onBlur={() => this.ixBlur.emit()} + > + this.updatePaddings()} + > + this.onCalenderClick(event)} + > + +
+ ); + } + + @HookValidationLifecycle() + hookValidationLifecycle({ + isInfo, + isInvalid, + isInvalidByRequired, + isValid, + isWarning, + }: ValidationResults) { + this.isInvalid = isInvalid || isInvalidByRequired || this.isInputInvalid; + this.isInfo = isInfo; + this.isValid = isValid; + this.isWarning = isWarning; + } + + @Watch('isInputInvalid') + async onInputValidationChange() { + const state = await this.getValidityState(); + this.validityStateChange.emit({ + patternMismatch: state.patternMismatch, + invalidReason: this.invalidReason, + }); + } + + /** @internal */ + @Method() + getValidityState(): Promise { + return Promise.resolve({ + badInput: false, + customError: false, + patternMismatch: this.isInputInvalid, + rangeOverflow: false, + rangeUnderflow: false, + stepMismatch: false, + tooLong: false, + tooShort: false, + typeMismatch: false, + valid: !this.isInputInvalid, + valueMissing: !!this.required && !this.value, + }); + } + + /** + * Get the native input element + */ + @Method() + getNativeInputElement(): Promise { + return this.inputElementRef.waitForCurrent(); + } + + /** + * Focuses the input field + */ + @Method() + async focusInput(): Promise { + return (await this.getNativeInputElement()).focus(); + } + + render() { + const invalidText = this.isInputInvalid + ? this.i18nErrorDateUnparsable + : this.invalidText; + + return ( + + } + > + {this.renderInput()} + + { + this.show = event.detail; + }} + > + { + const { from } = event.detail; + this.onInput(from); + }} + > + + + ); + } +} diff --git a/packages/core/src/components/date-input/tests/date-input.ct.ts b/packages/core/src/components/date-input/tests/date-input.ct.ts new file mode 100644 index 00000000000..e6654c51bd2 --- /dev/null +++ b/packages/core/src/components/date-input/tests/date-input.ct.ts @@ -0,0 +1,164 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { Locator, expect } from '@playwright/test'; +import { getFormValue, preventFormSubmission, test } from '@utils/test'; + +const createDateInputAccessor = async (dateInput: Locator) => { + const handle = { + openByCalender: async () => { + const trigger = dateInput.getByTestId('open-calendar'); + await trigger.click(); + }, + selectDay: async (day: number) => { + const dayButton = dateInput + .locator('ix-dropdown') + .filter({ hasText: day.toString() }) + .getByText(day.toString()); + await dayButton.click(); + }, + }; + + return handle; +}; + +test('renders', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); +}); + +test('select date by open calendar trigger', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); + + const dateInput = await createDateInputAccessor(dateInputElement); + await dateInput.openByCalender(); + + await dateInput.selectDay(10); + await expect(dateInputElement).toHaveAttribute('value', '2024/05/10'); +}); + +test('select date by focus', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); + + const dateInput = await createDateInputAccessor(dateInputElement); + await dateInputElement.locator('input').focus(); + + await dateInput.selectDay(10); + await expect(dateInputElement).toHaveAttribute('value', '2024/05/10'); + await expect(dateInputElement.getByTestId('date-dropdown')).not.toHaveClass( + /show/ + ); +}); + +test('select date by input', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); + + const dateInput = await createDateInputAccessor(dateInputElement); + await dateInputElement.locator('input').focus(); + await expect(dateInputElement.getByTestId('date-dropdown')).toHaveClass( + /show/ + ); + await dateInputElement.locator('input').fill('2025/10/10'); + + await expect(dateInputElement.getByTestId('date-dropdown')).not.toHaveClass( + /show/ + ); + await expect(dateInputElement).toHaveAttribute('value', '2025/10/10'); + + await dateInput.openByCalender(); + + await expect(dateInputElement.locator('.calendar-item.selected')).toHaveText( + '10' + ); +}); + +test('select date by input with invalid date', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); + + const dateInput = await createDateInputAccessor(dateInputElement); + await dateInputElement.locator('input').fill('2025/10/10/10'); + await dateInput.openByCalender(); + await expect(dateInputElement).toHaveAttribute('value', '2025/10/10/10'); + + await expect( + dateInputElement + .locator('ix-field-wrapper') + .locator('ix-typography') + .filter({ hasText: 'Date is not valid' }) + ).toHaveText('Date is not valid'); +}); + +test('select date by input with invalid date - i18n', async ({ + mount, + page, +}) => { + await mount( + `` + ); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveClass(/hydrated/); + + const dateInput = await createDateInputAccessor(dateInputElement); + await dateInputElement.locator('input').fill('2025/10/10/10'); + await dateInput.openByCalender(); + await expect(dateInputElement).toHaveAttribute('value', '2025/10/10/10'); + + await expect( + dateInputElement + .locator('ix-field-wrapper') + .locator('ix-typography') + .filter({ hasText: 'Datum nicht korrekt!' }) + ).toHaveText('Datum nicht korrekt!'); +}); + +test('required', async ({ mount, page }) => { + await mount(``); + const dateInputElement = page.locator('ix-date-input'); + await expect(dateInputElement).toHaveAttribute('required'); + + await expect(dateInputElement.locator('ix-field-label')).toHaveText( + 'MyLabel *' + ); + + await expect(dateInputElement).toHaveClass(/ix-invalid--required/); +}); + +test(`form-ready - ix-date-input`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const input = page.locator('ix-date-input').locator('input'); + await input.fill('2024/05/05'); + await input.blur(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('2024/05/05'); +}); + +test(`form-ready - ix-date-input initial value`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('2024/12/12'); +}); diff --git a/packages/core/src/components/date-time-card/date-time-card.tsx b/packages/core/src/components/date-time-card/date-time-card.tsx index 8eefaf1ef91..cb4e63f977a 100644 --- a/packages/core/src/components/date-time-card/date-time-card.tsx +++ b/packages/core/src/components/date-time-card/date-time-card.tsx @@ -21,7 +21,7 @@ export type DateTimeCardCorners = 'rounded' | 'left' | 'right' | 'straight'; }) export class DateTimeCard { /** @internal */ - @Prop() standaloneAppearance = undefined; + @Prop() standaloneAppearance?: boolean; /** * set styles @@ -36,10 +36,7 @@ export class DateTimeCard { private cardClasses() { return { card: true, - standaloneAppearance: - this.standaloneAppearance !== undefined - ? this.standaloneAppearance - : this.individual, + standaloneAppearance: this.standaloneAppearance ?? this.individual, rounded: this.corners === 'rounded', left: this.corners === 'left', right: this.corners === 'right', diff --git a/packages/core/src/components/drawer/drawer.scss b/packages/core/src/components/drawer/drawer.scss index f0d2eff2cb4..84cae23a5b3 100644 --- a/packages/core/src/components/drawer/drawer.scss +++ b/packages/core/src/components/drawer/drawer.scss @@ -37,10 +37,6 @@ visibility: visible; } - .drawer-container.full-height { - min-height: 100%; - } - .header { display: flex; position: relative; diff --git a/packages/core/src/components/drawer/drawer.tsx b/packages/core/src/components/drawer/drawer.tsx index d5941bd4a6a..df960d04944 100644 --- a/packages/core/src/components/drawer/drawer.tsx +++ b/packages/core/src/components/drawer/drawer.tsx @@ -58,12 +58,12 @@ export class Drawer { /** * Fire event after drawer is open */ - @Event() open: EventEmitter; + @Event() open!: EventEmitter; /** * Fire event after drawer is close */ - @Event() drawerClose: EventEmitter; + @Event() drawerClose!: EventEmitter; private static duration = 300; private callback = this.clickedOutside.bind(this); @@ -120,30 +120,34 @@ export class Drawer { } } - private slideOutRight(el: HTMLElement) { - anime({ - targets: el, - duration: Drawer.duration, - translateX: [0, '16rem'], - opacity: [1, 0], - easing: 'easeInSine', - complete: () => { - el.classList.add('d-none'); - }, - }); + private slideOutRight(el?: HTMLElement) { + if (el) { + anime({ + targets: el, + duration: Drawer.duration, + translateX: [0, '16rem'], + opacity: [1, 0], + easing: 'easeInSine', + complete: () => { + el.classList.add('d-none'); + }, + }); + } } - private slideInRight(el: HTMLElement) { - anime({ - targets: el, - duration: Drawer.duration, - translateX: ['16rem', 0], - opacity: [0, 1], - easing: 'easeOutSine', - begin: () => { - el.classList.remove('d-none'); - }, - }); + private slideInRight(el?: HTMLElement) { + if (el) { + anime({ + targets: el, + duration: Drawer.duration, + translateX: ['16rem', 0], + opacity: [0, 1], + easing: 'easeOutSine', + begin: () => { + el.classList.remove('d-none'); + }, + }); + } } componentDidLoad() { @@ -156,13 +160,13 @@ export class Drawer { class={{ 'drawer-container': true, toggle: this.show, - 'full-height': this.fullHeight, 'd-none': true, }} style={{ width: this.width === 'auto' ? this.width : `${this.width}rem`, 'min-width': `${this.minWidth}rem`, 'max-width': `${this.maxWidth}rem`, + height: this.fullHeight ? '100%' : 'auto', }} ref={(el) => (this.divElement = el as HTMLElement)} data-testid="container" diff --git a/packages/core/src/components/drawer/test/drawer.spec.tsx b/packages/core/src/components/drawer/test/drawer.spec.tsx index 6ad72aa9948..fbff71b059a 100644 --- a/packages/core/src/components/drawer/test/drawer.spec.tsx +++ b/packages/core/src/components/drawer/test/drawer.spec.tsx @@ -22,8 +22,8 @@ describe('ix-drawer', () => { html: 'Example Content', }); - drawer = document.querySelector('ix-drawer'); - container = document.querySelector('[data-testid="container"]'); + drawer = document.querySelector('ix-drawer')!; + container = document.querySelector('[data-testid="container"]')!; }); it('opens the drawer', async () => { @@ -40,10 +40,11 @@ describe('ix-drawer', () => { drawer.show = true; await page.waitForChanges(); - const closeButton = drawer.shadowRoot.querySelector( + const closeButton = drawer.shadowRoot!.querySelector( '[data-testid="close-button"]' - ); + )!; fireEvent.click(closeButton); + await page.waitForChanges(); expect(drawer.show).toBeFalsy(); expect(drawer.innerHTML).not.toContain('toggle'); @@ -56,7 +57,7 @@ describe('ix-drawer', () => { drawer.fullHeight = true; await page.waitForChanges(); - expect(container.classList.contains('full-height')).toBeTruthy(); + expect(container.style.height.includes('100%')).toBeTruthy(); }); it('drawer is NOT displayed at full height, if fullHeight is set to false', async () => { @@ -66,7 +67,7 @@ describe('ix-drawer', () => { drawer.fullHeight = false; await page.waitForChanges(); - expect(container.classList.contains('full-height')).toBeFalsy(); + expect(container.style.height.includes('auto')).toBeTruthy(); }); it('emits an event, when show changed', async () => { @@ -76,9 +77,9 @@ describe('ix-drawer', () => { drawer.toggleDrawer(); await page.waitForChanges(); - const closeButton = drawer.shadowRoot.querySelector( + const closeButton = drawer.shadowRoot!.querySelector( '[data-testid="close-button"]' - ); + )!; fireEvent.click(closeButton); window.removeEventListener('open', mockCallback); diff --git a/packages/core/src/components/dropdown/dropdown-controller.ts b/packages/core/src/components/dropdown/dropdown-controller.ts index d0382e83b5b..9372d0c7228 100644 --- a/packages/core/src/components/dropdown/dropdown-controller.ts +++ b/packages/core/src/components/dropdown/dropdown-controller.ts @@ -45,7 +45,7 @@ export interface DropdownItemWrapper { type SubmenuIds = Record; class DropdownController { - private dropdowns: Map = new Map< + private readonly dropdowns: Map = new Map< string, DropdownInterface >(); @@ -84,6 +84,10 @@ class DropdownController { delete this.submenuIds[id]; } + getDropdownById(id: string) { + return this.dropdowns.get(id); + } + discoverSubmenus() { this.dropdowns.forEach((dropdown) => { dropdown.discoverSubmenu(); diff --git a/packages/core/src/components/dropdown/dropdown.tsx b/packages/core/src/components/dropdown/dropdown.tsx index 6b16d3794cf..6333721f0e0 100644 --- a/packages/core/src/components/dropdown/dropdown.tsx +++ b/packages/core/src/components/dropdown/dropdown.tsx @@ -118,7 +118,7 @@ export class Dropdown implements ComponentInterface, DropdownInterface { /** * @internal - * If initialisation of this dropdown is expected to be defered submenu discovery will have to be re-run globally by the controller. + * If initialization of this dropdown is expected to be deferred submenu discovery will have to be re-run globally by the controller. * This property indicates the need for that to the controller. */ @Prop() discoverAllSubmenus = false; @@ -126,6 +126,9 @@ export class Dropdown implements ComponentInterface, DropdownInterface { /** @internal */ @Prop() ignoreRelatedSubmenu = false; + /** @internal */ + @Prop() suppressOverflowBehavior = false; + /** * Fire event after visibility of dropdown has changed */ @@ -135,12 +138,11 @@ export class Dropdown implements ComponentInterface, DropdownInterface { private triggerElement?: Element; private anchorElement?: Element; + private arrowFocusController?: ArrowFocusController; private localUId = `dropdown-${sequenceId++}`; private assignedSubmenu: string[] = []; - private arrowFocusController?: ArrowFocusController; - private itemObserver? = new MutationObserver(() => { if (this.arrowFocusController) { this.arrowFocusController.items = this.dropdownItems; @@ -582,7 +584,7 @@ export class Dropdown implements ComponentInterface, DropdownInterface { class={{ 'dropdown-menu': true, show: this.show, - overflow: true, + overflow: !this.suppressOverflowBehavior, }} style={{ margin: '0', diff --git a/packages/core/src/components/field-label/field-label.scss b/packages/core/src/components/field-label/field-label.scss new file mode 100644 index 00000000000..e17ad3e8493 --- /dev/null +++ b/packages/core/src/components/field-label/field-label.scss @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +:host { + display: inline-block; + position: relative; + + margin-top: 0.5rem; + margin-bottom: 0.25rem; +} diff --git a/packages/core/src/components/field-label/field-label.tsx b/packages/core/src/components/field-label/field-label.tsx new file mode 100644 index 00000000000..e8480725b4d --- /dev/null +++ b/packages/core/src/components/field-label/field-label.tsx @@ -0,0 +1,196 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { Component, Host, Prop, h, Element, Watch } from '@stencil/core'; +import { IxComponent } from '../utils/internal'; +import { + ClassMutationObserver, + createClassMutationObserver, + HTMLIxFormComponentElement, + isIxInputFieldComponent, +} from '../utils/input'; +import { A11yAttributes, a11yHostAttributes } from '../utils/a11y'; +import { MakeRef, makeRef } from '../utils/make-ref'; + +@Component({ + tag: 'ix-field-label', + styleUrl: 'field-label.scss', + shadow: true, +}) +export class FormFieldLabel implements IxComponent { + @Element() hostElement!: HTMLIxFieldLabelElement; + + /** + * A value is required or must be checked for the form to be submittable + */ + @Prop({ reflect: true, mutable: true }) required?: boolean; + + /** + * The id of the form element that the label is associated with + */ + @Prop({ reflect: true }) htmlFor?: string; + + /** @internal */ + @Prop() controlRef?: MakeRef; + + /** @internal */ + @Prop({ mutable: true }) isInvalid: boolean = false; + + private readonly htmlForObserver = new MutationObserver(() => + this.checkForInternalState() + ); + private htmlForClassObserver?: ClassMutationObserver; + private controlRefClassObserver?: ClassMutationObserver; + private a11yAttributes: A11yAttributes = {}; + private readonly labelRef = makeRef(); + + connectedCallback() { + this.registerHtmlForObserver(); + this.registerControlRefObserver(); + } + + disconnectedCallback(): void { + if (this.htmlForObserver) { + this.htmlForObserver.disconnect(); + } + if (this.htmlForClassObserver) { + this.htmlForClassObserver.destroy(); + } + if (this.controlRefClassObserver) { + this.controlRefClassObserver.destroy(); + } + } + + componentWillRender() { + this.checkForInternalState(); + } + + componentWillLoad(): void | Promise { + this.a11yAttributes = a11yHostAttributes(this.hostElement); + } + + @Watch('htmlFor') + private registerHtmlForObserver() { + if (typeof window === 'undefined') { + return; + } + + if (this.htmlForObserver) { + this.htmlForObserver.disconnect(); + } + + if (this.htmlFor) { + this.htmlForObserver.observe(window.document, { + childList: true, + subtree: true, + }); + } + } + + @Watch('controlRef') + private async registerControlRefObserver() { + if (typeof window === 'undefined') { + return; + } + + if (this.controlRefClassObserver) { + this.controlRefClassObserver.destroy(); + } + + if (this.controlRef) { + const input = await this.controlRef.waitForCurrent(); + + this.controlRefClassObserver = createClassMutationObserver(input, () => + this.checkForInvalidState(input) + ); + } + } + + private registerHtmlForClassObserver( + forElement: HTMLIxFormComponentElement + ) { + if (this.htmlForClassObserver) { + this.htmlForClassObserver.destroy(); + } + + this.htmlForClassObserver = createClassMutationObserver(forElement, () => + this.checkForInvalidState(forElement) + ); + } + + private checkForInvalidState(elementToCheck: HTMLElement) { + this.isInvalid = + elementToCheck.classList.contains('is-invalid') || + elementToCheck.classList.contains('ix-invalid'); + } + + private async checkForInternalState() { + if (this.htmlFor) { + const forElement = document.getElementById( + this.htmlFor + ) as HTMLIxFormComponentElement; + if (forElement) { + if (typeof forElement.required === 'boolean') { + this.required = forElement.required; + } + + this.registerHtmlForClassObserver(forElement); + this.checkForInvalidState(forElement); + } + } + + if (this.controlRef) { + const input = await this.controlRef.waitForCurrent(); + this.required = ( + input as HTMLInputElement | HTMLTextAreaElement + ).required; + } + } + + private async focusOnClick() { + if (this.htmlFor) { + const target = document.getElementById(this.htmlFor); + if (target) { + let input: HTMLElement | null = null; + if (isIxInputFieldComponent(target)) { + input = await target.getNativeInputElement(); + } else { + input = target; + } + if (typeof input.focus === 'function') { + input.focus(); + } + } + } + + if (this.controlRef) { + (await this.controlRef.waitForCurrent()).focus(); + } + } + + render() { + return ( + this.focusOnClick()}> + + + ); + } +} diff --git a/packages/core/src/components/field-label/tests/field-label.ct.ts b/packages/core/src/components/field-label/tests/field-label.ct.ts new file mode 100644 index 00000000000..8cc0e00e0ab --- /dev/null +++ b/packages/core/src/components/field-label/tests/field-label.ct.ts @@ -0,0 +1,178 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { expect } from '@playwright/test'; +import { test } from '@utils/test'; + +test('renders', async ({ mount, page }) => { + await mount(`My Label`); + const fieldLabelElement = page.locator('ix-field-label'); + await expect(fieldLabelElement).toHaveClass(/hydrated/); + await expect( + fieldLabelElement.locator('label').locator('ix-typography') + ).toHaveClass(/typography-label/); + await expect(fieldLabelElement.filter({ hasText: 'My Label' })).toHaveText( + 'My Label' + ); +}); + +test('required', async ({ mount, page }) => { + await mount(`MyLabel`); + const labelElement = page.locator('ix-field-label'); + await expect(labelElement).toHaveText('MyLabel *'); +}); + +test('focus native input by label click', async ({ mount, page }) => { + await mount(` + MyLabel + + `); + const labelElement = page.locator('ix-field-label'); + await labelElement.click(); + + const inputElement = page.getByTestId('input'); + await expect(inputElement).toBeFocused(); +}); + +test.describe('click label', () => { + ['ix-input', 'ix-number-input', 'ix-date-input', 'ix-textarea'].forEach( + (selector) => { + test(`focus ${selector} by external label click`, async ({ + mount, + page, + }) => { + await mount(` + MyLabel + <${selector} id="input"> + `); + const labelElement = page.locator('ix-field-label'); + await labelElement.click(); + + const component = page.locator(selector); + const focusElement = + selector !== 'ix-textarea' + ? component.locator('input') + : component.locator('textarea'); + await expect(focusElement).toBeFocused(); + }); + + test(`focus ${selector} by embedded label click`, async ({ + mount, + page, + }) => { + await mount(` + <${selector} label="MyLabel"> + `); + + const component = page.locator(selector); + await expect(component).toHaveClass(/hydrated/); + + const labelElement = component + .locator('ix-field-wrapper') + .locator('ix-field-label'); + + await labelElement.click(); + + const focusElement = + selector !== 'ix-textarea' + ? component.locator('input') + : component.locator('textarea'); + + await expect(focusElement).toBeFocused(); + }); + } + ); +}); + +test('valid color', async ({ mount, page }) => { + await mount(`LabelValid`); + + const labelElement = page.locator('ix-field-label'); + + await expect(labelElement).not.toHaveAttribute('is-invalid'); + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-soft-text);' + ); +}); + +test('invalid color', async ({ mount, page }) => { + await mount(`LabelInvalid`); + + const labelElement = page.locator('ix-field-label'); + + await expect(labelElement).toHaveAttribute('is-invalid'); + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-alarm-text);' + ); +}); + +test('valid color with valid text field', async ({ mount, page }) => { + await mount(` + valid field + `); + + const fieldElement = page.locator('ix-input'); + const labelElement = page.locator('ix-field-label'); + + await expect(fieldElement).not.toHaveClass(/ix-invalid--required/); + + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-soft-text);' + ); +}); + +test('invalid color with invalid text field', async ({ mount, page }) => { + await mount(` + invalid field + `); + + const fieldElement = page.locator('ix-input'); + const labelElement = page.locator('ix-field-label'); + + await expect(fieldElement).toHaveClass(/ix-invalid--required/); + + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-alarm-text);' + ); +}); + +test('valid color with valid textarea field', async ({ mount, page }) => { + await mount(` + valid field + `); + + const fieldElement = page.locator('ix-textarea'); + const labelElement = page.locator('ix-field-label'); + + await expect(fieldElement).not.toHaveClass(/ix-invalid--required/); + + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-soft-text);' + ); +}); + +test('invalid color with invalid textarea field', async ({ mount, page }) => { + await mount(` + valid field + `); + + const fieldElement = page.locator('ix-textarea'); + const labelElement = page.locator('ix-field-label'); + + await expect(fieldElement).not.toHaveClass(/ix-invalid--required/); + + await expect(labelElement.locator('ix-typography')).toHaveAttribute( + 'style', + 'color: var(--theme-color-alarm-text);' + ); +}); diff --git a/packages/core/src/components/field-wrapper/field-wrapper.mixins.scss b/packages/core/src/components/field-wrapper/field-wrapper.mixins.scss new file mode 100644 index 00000000000..78b1f6acb3b --- /dev/null +++ b/packages/core/src/components/field-wrapper/field-wrapper.mixins.scss @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +@mixin helper-text { + .bottom-text { + display: flex; + position: relative; + align-items: flex-start; + justify-content: flex-start; + gap: 0.25rem; + + margin-right: 0.25rem; + } + + .text-icon { + margin: 0.125rem; + } + + .text-icon.invalid { + color: var(--theme-helper-icon--color--invalid); + } + + .text-icon.info { + color: var(--theme-helper-icon--color--info); + } + + .text-icon.warning { + color: var(--theme-helper-icon--color--warning); + } + + .text-icon.valid { + color: var(--theme-helper-icon--color--valid); + } +} diff --git a/packages/core/src/components/field-wrapper/field-wrapper.scss b/packages/core/src/components/field-wrapper/field-wrapper.scss new file mode 100644 index 00000000000..4653923ada8 --- /dev/null +++ b/packages/core/src/components/field-wrapper/field-wrapper.scss @@ -0,0 +1,38 @@ +@import "./field-wrapper.mixins.scss"; + +:host { + display: flex; + position: relative; + flex-direction: column; + + .slot-wrapper { + display: flex; + position: relative; + align-items: center; + justify-content: flex-start; + gap: 0.25rem; + } + + .field-bottom, + .field-top { + display: flex; + flex-direction: row; + position: relative; + justify-content: space-between; + gap: 1rem; + width: min-content; + min-width: 100%; + } + + .field-bottom .bottom-right { + margin-left: auto; + margin-right: 0px; + } + + @include helper-text; + + .bottom-text { + margin-top: 0.25rem; + margin-bottom: 0.25rem; + } +} diff --git a/packages/core/src/components/field-wrapper/field-wrapper.tsx b/packages/core/src/components/field-wrapper/field-wrapper.tsx new file mode 100644 index 00000000000..dca0bec7c6e --- /dev/null +++ b/packages/core/src/components/field-wrapper/field-wrapper.tsx @@ -0,0 +1,148 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { Component, Element, Host, Prop, h } from '@stencil/core'; +import { FieldWrapperInterface } from '../utils/input'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { hasAnyText, renderHelperText } from './helper-text-util'; + +/** @internal */ +@Component({ + tag: 'ix-field-wrapper', + styleUrl: 'field-wrapper.scss', + shadow: true, +}) +export class FieldWrapper implements FieldWrapperInterface { + @Element() hostElement!: HTMLIxFieldWrapperElement; + + /** + * Show text below the field component + */ + @Prop() helperText?: string; + + /** + * Label for the field component + */ + @Prop() label?: string; + + /** + * Error text for the field component + */ + @Prop() invalidText?: string; + + /** + * Valid text for the field component + */ + @Prop() validText?: string; + + /** + * Info text for the field component + */ + @Prop() infoText?: string; + + /** + * Warning text for the field component + */ + @Prop() warningText?: string; + + /** + * Is the field component invalid + */ + @Prop() isInvalid: boolean = false; + + /** + * Is the field component valid + */ + @Prop() isValid: boolean = false; + + /** + * Is the field component info + */ + @Prop() isInfo: boolean = false; + + /** + * Is the field component warning + */ + @Prop() isWarning: boolean = false; + + /** + * Show helper, error, info, warning text as tooltip + */ + @Prop() showTextAsTooltip: boolean = false; + + /** + * Show label as required + */ + @Prop() required: boolean = false; + + /** + * The id of the form element that the label is associated with + */ + @Prop() htmlForLabel?: string; + + /** + * The control element that the label is associated with + */ + @Prop() controlRef?: MakeRef; + + private readonly slotRef = makeRef(); + + render() { + const textOptions = { + invalidText: this.invalidText, + isInvalid: this.isInvalid, + isValid: this.isValid, + validText: this.validText, + isWarning: this.isWarning, + warningText: this.warningText, + isInfo: this.isInfo, + infoText: this.infoText, + helperText: this.helperText, + }; + return ( + + {this.label && ( +
+ + {this.label} + +
+ )} +
+ +
+
+ {!this.showTextAsTooltip && renderHelperText(textOptions)} +
+ +
+
+ + {this.showTextAsTooltip === true && hasAnyText(textOptions) && ( + + {renderHelperText(textOptions)} + + )} +
+ ); + } +} diff --git a/packages/core/src/components/field-wrapper/helper-text-util.tsx b/packages/core/src/components/field-wrapper/helper-text-util.tsx new file mode 100644 index 00000000000..c07118cf097 --- /dev/null +++ b/packages/core/src/components/field-wrapper/helper-text-util.tsx @@ -0,0 +1,102 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { h } from '@stencil/core'; +import { + iconError, + iconInfo, + iconSuccess, + iconWarning, +} from '@siemens/ix-icons/icons'; + +export function hasAnyText({ + invalidText, + warningText, + infoText, + validText, + helperText, +}: { + invalidText?: string; + warningText?: string; + infoText?: string; + validText?: string; + helperText?: string; +}) { + return invalidText || warningText || infoText || validText || helperText; +} + +export function renderHelperText({ + isInvalid, + invalidText, + isWarning, + warningText, + isInfo, + infoText, + isValid, + validText, + helperText, +}: { + isInvalid: boolean; + invalidText?: string; + isWarning: boolean; + warningText?: string; + isInfo: boolean; + infoText?: string; + isValid: boolean; + validText?: string; + helperText?: string; +}) { + if (isInvalid && invalidText !== undefined) { + return ( + + + + {invalidText} + + ); + } + + if (isWarning && warningText !== undefined) { + return ( + + + {warningText} + + ); + } + + if (isInfo && infoText !== undefined) { + return ( + + + {infoText} + + ); + } + + if (isValid && validText !== undefined) { + return ( + + + {validText} + + ); + } + + return ( + helperText && ( + + {helperText} + + ) + ); +} diff --git a/packages/core/src/components/field-wrapper/tests/field-wrapper.ct.ts b/packages/core/src/components/field-wrapper/tests/field-wrapper.ct.ts new file mode 100644 index 00000000000..abf40605517 --- /dev/null +++ b/packages/core/src/components/field-wrapper/tests/field-wrapper.ct.ts @@ -0,0 +1,82 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { expect } from '@playwright/test'; +import { test } from '@utils/test'; + +test('renders', async ({ mount, page }) => { + await mount( + ` + +
Content
+
+ ` + ); + const fieldWrapperElement = page.locator('ix-field-wrapper'); + await expect(fieldWrapperElement).toHaveClass(/hydrated/); + await expect( + fieldWrapperElement + .locator('.field-bottom') + .locator('ix-typography.bottom-text') + .filter({ hasText: 'Helper text' }) + ).toHaveText('Helper text'); +}); + +test('show text dependent on provided state', async ({ mount, page }) => { + await mount( + ` + +
Content
+
+ ` + ); + const fieldWrapperElement = page.locator('ix-field-wrapper'); + await expect(fieldWrapperElement).toHaveClass(/hydrated/); + await expect( + fieldWrapperElement + .locator('.field-bottom') + .locator('ix-typography.bottom-text') + .filter({ hasText: 'invalid text' }) + ).toHaveText('invalid text'); +}); + +test('show text by tooltip', async ({ mount, page }) => { + await mount( + ` + +
Content
+
+ ` + ); + const fieldWrapperElement = page.locator('ix-field-wrapper'); + await expect(fieldWrapperElement).toHaveClass(/hydrated/); + + await page.mouse.move(10, 10); + + const tooltip = fieldWrapperElement.locator('ix-tooltip'); + await expect(tooltip).toBeVisible(); + await expect(tooltip).toContainText('Helper text'); +}); + +test('show text by tooltip invalid', async ({ mount, page }) => { + await mount( + ` + +
Content
+
+ ` + ); + const fieldWrapperElement = page.locator('ix-field-wrapper'); + await expect(fieldWrapperElement).toHaveClass(/hydrated/); + + await page.mouse.move(10, 10); + + const tooltip = fieldWrapperElement.locator('ix-tooltip'); + await expect(tooltip).toBeVisible(); + await expect(tooltip).toContainText('invalid text'); +}); diff --git a/packages/core/src/components/form-field/form-field.tsx b/packages/core/src/components/form-field/form-field.tsx deleted file mode 100644 index e5d5b2c57c6..00000000000 --- a/packages/core/src/components/form-field/form-field.tsx +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2023 Siemens AG - * - * SPDX-License-Identifier: MIT - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -import { Component, Element, h, Host, Prop } from '@stencil/core'; - -@Component({ - tag: 'ix-form-field', - styleUrl: 'form-field.scss', - shadow: true, -}) -export class FormField { - @Element() hostElement!: HTMLIxFormFieldElement; - - /** - * Label - */ - @Prop() label: string; - - private get inputElement() { - return this.hostElement.querySelector('input'); - } - - componentWillLoad() {} - - render() { - return ( - - {this.label ? ( - - ) : null} - - - ); - } -} diff --git a/packages/core/src/components/helper-text/helper-text.scss b/packages/core/src/components/helper-text/helper-text.scss new file mode 100644 index 00000000000..b159cd89af9 --- /dev/null +++ b/packages/core/src/components/helper-text/helper-text.scss @@ -0,0 +1,7 @@ +@import "./../field-wrapper/field-wrapper.mixins.scss"; + +:host { + display: block; + + @include helper-text; +} diff --git a/packages/core/src/components/helper-text/helper-text.tsx b/packages/core/src/components/helper-text/helper-text.tsx new file mode 100644 index 00000000000..acfa0fd2904 --- /dev/null +++ b/packages/core/src/components/helper-text/helper-text.tsx @@ -0,0 +1,113 @@ +import { Component, Host, Prop, State, h, Element } from '@stencil/core'; +import { + ClassMutationObserver, + HTMLIxFormComponentElement, + ValidationResults, + checkFieldClasses, + createClassMutationObserver, +} from '../utils/input'; +import { renderHelperText } from '../field-wrapper/helper-text-util'; +import { IxComponent } from '../utils/internal'; + +@Component({ + tag: 'ix-helper-text', + styleUrl: 'helper-text.scss', + shadow: true, +}) +export class HelperText implements IxComponent { + @Element() hostElement!: HTMLIxHelperTextElement; + /** + * The id of the form element that the label is associated with + */ + @Prop() htmlFor?: string; + + /** + * Show text below the field component + */ + @Prop() helperText?: string; + + /** + * Error text for the field component + */ + @Prop() invalidText?: string; + + /** + * Valid text for the field component + */ + @Prop() validText?: string; + + /** + * Info text for the field component + */ + @Prop() infoText?: string; + + /** + * Warning text for the field component + */ + @Prop() warningText?: string; + + @State() validationResults: ValidationResults = { + isInfo: false, + isInvalid: false, + isValid: false, + isWarning: false, + isInvalidByRequired: false, + }; + + private readonly observer = new MutationObserver(() => + this.checkForRequired() + ); + private classObserver?: ClassMutationObserver; + + connectedCallback() { + this.observer.observe(window.document, { + childList: true, + subtree: true, + }); + } + + disconnectedCallback(): void { + if (this.observer) { + this.observer.disconnect(); + } + } + + componentWillRender() { + this.checkForRequired(); + } + + private async checkForRequired() { + if (!this.htmlFor) { + return; + } + const forElement = document.getElementById( + this.htmlFor + ) as HTMLIxFormComponentElement; + if (!forElement) { + return; + } + + if (this.classObserver) { + this.classObserver.destroy(); + } + this.classObserver = createClassMutationObserver(forElement, () => { + this.validationResults = checkFieldClasses(forElement); + }); + this.validationResults = checkFieldClasses(forElement); + } + + render() { + return ( + + {renderHelperText({ + helperText: this.helperText, + invalidText: this.invalidText, + validText: this.validText, + infoText: this.infoText, + warningText: this.warningText, + ...this.validationResults, + })} + + ); + } +} diff --git a/packages/core/src/components/input/input.animation.ts b/packages/core/src/components/input/input.animation.ts new file mode 100644 index 00000000000..d2c0e5f8ebb --- /dev/null +++ b/packages/core/src/components/input/input.animation.ts @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import anime from 'animejs'; + +export function shakeInput(input: HTMLInputElement) { + const xMax = 5; + anime({ + targets: input, + duration: 200, + easing: 'easeInOutSine', + loop: 2, + translateX: [ + { + value: xMax * -1, + }, + { + value: xMax, + }, + { + value: xMax / -2, + }, + { + value: xMax / 2, + }, + { + value: 0, + }, + ], + }); +} diff --git a/packages/core/src/components/input/input.fc.tsx b/packages/core/src/components/input/input.fc.tsx new file mode 100644 index 00000000000..3b79e2e57a9 --- /dev/null +++ b/packages/core/src/components/input/input.fc.tsx @@ -0,0 +1,143 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { h, FunctionalComponent } from '@stencil/core'; +import { MakeRef } from '../utils/make-ref'; +import { A11yAttributes } from '../utils/a11y'; + +export function TextareaElement(props: { + resizeBehavior: 'both' | 'horizontal' | 'vertical' | 'none'; + textareaHeight?: string; + textareaWidth?: string; + textareaRows?: number; + textareaCols?: number; + disabled: boolean; + readonly: boolean; + maxLength?: number; + minLength?: number; + isInvalid: boolean; + required: boolean; + value: string; + placeholder?: string; + textAreaRef: (el: HTMLTextAreaElement | undefined) => void; + valueChange: (value: string) => void; + updateFormInternalValue: (value: string) => void; + onBlur: () => void; + ariaAttributes?: A11yAttributes; +}) { + return ( + + ); +} + +export function InputElement(props: { + id: string; + disabled: boolean; + readonly: boolean; + maxLength?: string | number; + minLength?: string | number; + max?: string | number; + min?: string | number; + pattern?: string; + type: string; + isInvalid: boolean; + required: boolean; + value: string | number; + placeholder?: string; + inputRef: (el: HTMLInputElement | undefined) => void; + onKeyPress: (event: KeyboardEvent) => void; + valueChange: (value: string) => void; + updateFormInternalValue: (value: string) => void; + onBlur: () => void; + ariaAttributes?: A11yAttributes; +}) { + return ( + props.onKeyPress(event)} + onChange={(changeEvent) => { + const target = changeEvent.target as HTMLInputElement; + props.valueChange(target.value); + }} + onInput={(inputEvent) => { + const target = inputEvent.target as HTMLInputElement; + props.updateFormInternalValue(target.value); + }} + onBlur={() => props.onBlur()} + {...props.ariaAttributes} + > + ); +} + +export const SlotEnd: FunctionalComponent<{ + slotEndRef: MakeRef; + onSlotChange?: (e: Event) => void; +}> = (props, children) => { + return ( +
+ + {children} +
+ ); +}; + +export const SlotStart: FunctionalComponent<{ + slotStartRef: MakeRef; + onSlotChange?: (e: Event) => void; +}> = (props) => { + return ( +
+ +
+ ); +}; diff --git a/packages/core/src/components/input/input.mixins.scss b/packages/core/src/components/input/input.mixins.scss new file mode 100644 index 00000000000..38e43af2970 --- /dev/null +++ b/packages/core/src/components/input/input.mixins.scss @@ -0,0 +1,154 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import 'components/form/input'; +@import 'mixins/shadow-dom/component'; +@import 'mixins/validation/form-component'; + +@mixin applySpacingToStartSlot { + .start-container ::slotted(*) { + margin-left: 0.5rem; + } + + .start-container ::slotted(ix-icon.size-24), + .start-container ::slotted(ix-icon-button.btn-icon-16) { + margin-left: 0.25rem; + } + + //TODO: Refactor naming when the class: 'btn-icon-32' was renamed. + .start-container ::slotted(ix-icon-button.btn-icon-32) { + margin-left: 0; + } +} + +@mixin applySpacingToEndSlot { + .end-container ::slotted(*) { + margin-right: 0.5rem; + } + + .end-container ::slotted(ix-icon.size-24), + .end-container ::slotted(ix-icon-button.btn-icon-16) { + margin-right: 0.25rem; + } + + //TODO: Refactor naming when the class: 'btn-icon-32' was renamed. + .end-container ::slotted(ix-icon-button.btn-icon-32) { + margin-right: 0; + } +} + +@mixin input-field { + :host { + @include ix-component; + + display: inline-block; + position: relative; + + width: auto; + + .input-wrapper { + display: flex; + position: relative; + align-items: center; + width: 100%; + height: 100%; + } + + input { + width: 100%; + height: 100%; + } + + .start-container, + .end-container { + display: flex; + position: absolute; + align-items: center; + justify-content: center; + z-index: 1; + } + + .start-container { + left: 0; + } + + .end-container { + right: 0; + } + + @include applySpacingToStartSlot; + @include applySpacingToEndSlot; + + .bottom-text { + margin-top: 0.25rem; + margin-bottom: 0.25rem; + } + } + + :host(.disabled) { + pointer-events: none; + + input, + textarea { + pointer-events: none; + } + } + + @include host-valid; + + @include host-info { + input { + border-color: var(--theme-input--border-color--info); + } + + input:hover { + border-color: var(--theme-input--border-color--info--hover) !important; + } + + input:active { + border-color: var(--theme-input--border-color--info--active) !important; + } + } + + @include host-warning { + input { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + + input:hover { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + + input:active { + border-color: var( + --theme-input--border-color--warning--active + ) !important; + } + } + + @include host-invalid { + input { + background-color: var(--theme-input--background--invalid); + border-color: var(--theme-input--border-color--invalid) !important; + } + + input:hover { + border-color: var(--theme-input--border-color--invalid--hover) !important; + } + + input:active { + border-color: var( + --theme-input--border-color--invalid--active + ) !important; + } + } +} diff --git a/packages/core/src/components/input/input.scss b/packages/core/src/components/input/input.scss new file mode 100644 index 00000000000..3dcecaddb6a --- /dev/null +++ b/packages/core/src/components/input/input.scss @@ -0,0 +1,25 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import 'components/form/input'; +@import 'mixins/shadow-dom/component'; +@import 'mixins/validation/form-component'; +@import './input.mixins.scss'; + +@include input-field; + +:host { + .password-eye { + margin-left: 0.125rem; + color: red; + + &.eye-hidden { + display: none; + } + } +} diff --git a/packages/core/src/components/input/input.tsx b/packages/core/src/components/input/input.tsx new file mode 100644 index 00000000000..ad79a0b50a8 --- /dev/null +++ b/packages/core/src/components/input/input.tsx @@ -0,0 +1,320 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { iconEye, iconEyeCancelled } from '@siemens/ix-icons/icons'; +import { + AttachInternals, + Component, + Element, + Event, + EventEmitter, + Host, + Method, + Prop, + State, + Watch, + h, +} from '@stencil/core'; +import { A11yAttributes } from '../utils/a11y'; +import { + HookValidationLifecycle, + IxInputFieldComponent, + ValidationResults, +} from '../utils/input'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { InputElement, SlotEnd, SlotStart } from './input.fc'; +import { + adjustPaddingForStartAndEnd, + checkAllowedKeys, + getAriaAttributesForInput, + mapValidationResult, + onInputBlur, +} from './input.util'; + +let inputIds = 0; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-input', + styleUrl: 'input.scss', + shadow: true, + formAssociated: true, +}) +export class Input implements IxInputFieldComponent { + @Element() hostElement!: HTMLIxInputElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * The type of the text field. Possible values are 'text', 'email', or 'password'. + */ + @Prop() type: 'text' | 'email' | 'password' | 'tel' | 'url' = 'text'; + + /** + * The name of the text field. + */ + @Prop({ reflect: true }) name?: string; + + /** + * The placeholder text for the text field. + */ + @Prop({ reflect: true }) placeholder?: string; + + /** + * The value of the text field. + */ + @Prop({ reflect: true, mutable: true }) value: string = ''; + + /** + * Specifies whether the text field is required. + */ + @Prop({ reflect: true }) required: boolean = false; + + /** + * Specifies whether the text field is disabled. + */ + @Prop({ reflect: true }) disabled: boolean = false; + + /** + * Specifies whether the text field is readonly. + */ + @Prop({ reflect: true }) readonly: boolean = false; + + /** + * The helper text for the text field. + */ + @Prop() helperText?: string; + + /** + * The info text for the text field. + */ + @Prop() infoText?: string; + + /** + * Specifies whether to show the text as a tooltip. + */ + @Prop() showTextAsTooltip?: boolean; + + /** + * The valid text for the text field. + */ + @Prop() validText?: string; + + /** + * The warning text for the text field. + */ + @Prop() warningText?: string; + + /** + * The label for the text field. + */ + @Prop({ reflect: true }) label?: string; + + /** + * The error text for the text field. + */ + @Prop() invalidText?: string; + + /** + * The pattern for the text field. + */ + @Prop() pattern?: string; + + /** + * The maximum length of the text field. + */ + @Prop() maxLength?: number; + + /** + * The minimum length of the text field. + */ + @Prop() minLength?: number; + + /** + * The allowed characters pattern for the text field. + */ + @Prop() allowedCharactersPattern?: string; + + /** + * Event emitted when the value of the text field changes. + */ + @Event() valueChange!: EventEmitter; + + /** + * Event emitted when the validity state of the text field changes. + */ + @Event() validityStateChange!: EventEmitter; + + /** + * Event emitted when the text field loses focus. + */ + @Event() ixBlur!: EventEmitter; + + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + @State() isInvalidByRequired = false; + + @State() inputType = 'text'; + + private readonly inputRef = makeRef(); + private readonly slotEndRef = makeRef(); + private readonly slotStartRef = makeRef(); + + private readonly inputId = `input-${inputIds++}`; + + @HookValidationLifecycle() + updateClassMappings(result: ValidationResults) { + mapValidationResult(this, result); + } + + @Watch('type') + updateInputType() { + this.inputType = this.type; + } + + componentWillLoad() { + this.updateFormInternalValue(this.value); + this.inputType = this.type; + } + + componentDidRender() { + this.updatePaddings(); + } + + private updatePaddings() { + adjustPaddingForStartAndEnd( + this.slotStartRef.current, + this.slotEndRef.current, + this.inputRef.current + ); + } + + updateFormInternalValue(value: string) { + this.formInternals.setFormValue(value); + this.value = value; + } + + /** @internal */ + @Method() + async getAssociatedFormElement(): Promise { + return this.formInternals.form; + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(!!this.value); + } + + /** + * Returns the native input element used in the text field. + */ + @Method() + getNativeInputElement() { + return this.inputRef.waitForCurrent(); + } + + /** + * Focuses the input field + */ + @Method() + async focusInput(): Promise { + return (await this.getNativeInputElement()).focus(); + } + + render() { + const inputAria: A11yAttributes = getAriaAttributesForInput(this); + return ( + + } + > +
+ this.updatePaddings()} + > + checkAllowedKeys(this, event)} + valueChange={(value) => this.valueChange.emit(value)} + updateFormInternalValue={(value) => + this.updateFormInternalValue(value) + } + onBlur={() => onInputBlur(this, this.inputRef.current)} + ariaAttributes={inputAria} + > + this.updatePaddings()} + > + { + if (this.inputType === 'password') { + this.inputType = 'text'; + return; + } + + this.inputType = 'password'; + }} + > + +
+ {!!this.maxLength && this.maxLength > 0 && ( + + {this.value?.length}/{this.maxLength} + + )} +
+
+ ); + } +} diff --git a/packages/core/src/components/input/input.util.ts b/packages/core/src/components/input/input.util.ts new file mode 100644 index 00000000000..4e777089858 --- /dev/null +++ b/packages/core/src/components/input/input.util.ts @@ -0,0 +1,154 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { A11yAttributes, a11yBoolean } from '../utils/a11y'; +import { + IxFormComponent, + IxInputFieldComponent, + ValidationResults, + shouldSuppressInternalValidation, +} from '../utils/input'; +import { convertToRemString } from '../utils/rwd.util'; +import { generateUUID } from '../utils/uuid'; +import { shakeInput } from './input.animation'; + +export function createIdIfNotExists( + element: IxFormComponent, + idPrefix: string = 'input' +) { + return element.hasAttribute('id') + ? element.getAttribute('id') + : `${idPrefix}-${generateUUID()}`; +} + +export function mapValidationResult( + ref: IxInputFieldComponent, + result: ValidationResults +) { + ref.isInvalid = result.isInvalid || result.isInvalidByRequired; + ref.isValid = result.isValid; + ref.isInfo = result.isInfo; + ref.isWarning = result.isWarning; +} + +export function checkAllowedKeys( + comp: IxInputFieldComponent, + event: KeyboardEvent +) { + if (comp.allowedCharactersPattern) { + const regex = new RegExp(comp.allowedCharactersPattern); + if (!regex.test(event.key)) { + event.preventDefault(); + shakeInput(comp.inputRef.current); + } + } +} + +export async function checkInternalValidity( + comp: IxFormComponent, + input: HTMLInputElement | HTMLTextAreaElement +) { + const validityState = input.validity; + + const eventResult = comp.validityStateChange.emit(validityState); + + if (eventResult.defaultPrevented) { + return; + } + + if (!comp.value) { + return; + } + + const skipValidation = await shouldSuppressInternalValidation(comp); + if (skipValidation) { + return; + } + + const { valid } = validityState; + comp.hostElement.classList.toggle('ix-invalid', !valid); +} + +export function onInputBlur( + comp: IxInputFieldComponent, + input?: HTMLInputElement | HTMLTextAreaElement | null +) { + comp.ixBlur.emit(); + + if (!input) { + throw new Error('Input element is not available'); + } + checkInternalValidity(comp, input); +} + +export function applyPaddingEnd( + inputElement: HTMLElement | null, + width: number, + options: { + slotEnd: boolean; + additionalPaddingRight?: string; + } +) { + if (!inputElement) { + return; + } + + const remInPixels = 16; + const padding = convertToRemString(width + remInPixels / 2); + + if (options.slotEnd) { + inputElement.style.paddingRight = `calc(${padding} + ${ + options.additionalPaddingRight ?? '0rem' + })`; + } else { + inputElement.style.paddingLeft = padding; + } +} + +export function adjustPaddingForStartAndEnd( + startElement: HTMLElement | null, + endElement: HTMLElement | null, + inputElement: HTMLElement | null +) { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + if (startElement) { + const startBoundingRect = startElement.getBoundingClientRect(); + if (startBoundingRect) { + applyPaddingEnd(inputElement, startBoundingRect.width, { + slotEnd: false, + }); + } + } + + if (endElement) { + const endBoundingRect = endElement.getBoundingClientRect(); + if (endBoundingRect) { + applyPaddingEnd(inputElement, endBoundingRect.width, { + slotEnd: true, + }); + } + } + }); + }); +} + +export function getAriaAttributesForInput( + component: IxInputFieldComponent +): A11yAttributes { + const inputAria: A11yAttributes = { + 'aria-invalid': `${a11yBoolean(component.isInvalid)}`, + 'aria-required': `${a11yBoolean(component.required)}`, + }; + + if (component.isInvalid && component.invalidText) { + inputAria['aria-errormessage'] = component.invalidText; + } + return inputAria; +} diff --git a/packages/core/src/components/input/number-input.scss b/packages/core/src/components/input/number-input.scss new file mode 100644 index 00000000000..687dbf8ce01 --- /dev/null +++ b/packages/core/src/components/input/number-input.scss @@ -0,0 +1,31 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import './input.mixins.scss'; + +@include input-field; + +:host { + .input-wrapper.show-stepper-buttons { + input[type='number'] { + min-width: 6rem; + } + } + + .number-stepper-container { + display: flex; + position: relative; + flex-direction: row; + flex-wrap: nowrap; + margin-right: 0.25rem; + + &.container-hidden { + display: none; + } + } +} diff --git a/packages/core/src/components/input/number-input.tsx b/packages/core/src/components/input/number-input.tsx new file mode 100644 index 00000000000..38bffde13fd --- /dev/null +++ b/packages/core/src/components/input/number-input.tsx @@ -0,0 +1,332 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { iconMinus, iconPlus } from '@siemens/ix-icons/icons'; +import { + AttachInternals, + Component, + Element, + Event, + EventEmitter, + Host, + Method, + Prop, + State, + h, +} from '@stencil/core'; +import { + HookValidationLifecycle, + IxInputFieldComponent, + ValidationResults, +} from '../utils/input'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { InputElement, SlotEnd, SlotStart } from './input.fc'; +import { + adjustPaddingForStartAndEnd, + checkAllowedKeys, + checkInternalValidity, + mapValidationResult, + onInputBlur, +} from './input.util'; + +let numberInputIds = 0; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-number-input', + styleUrl: 'number-input.scss', + shadow: true, + formAssociated: true, +}) +export class NumberInput implements IxInputFieldComponent { + @Element() hostElement!: HTMLIxNumberInputElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * name of the input element + */ + @Prop({ reflect: true }) name?: string; + + /** + * placeholder of the input element + */ + @Prop({ reflect: true }) placeholder?: string; + + /** + * The value of the input field + */ + @Prop({ reflect: true, mutable: true }) value: number = 0; + + /** + * Indicates if the field is required + */ + @Prop({ reflect: true }) required: boolean = false; + + /** + * Disables the input field + */ + @Prop() disabled: boolean = false; + + /** + * Indicates if the field is read-only + */ + @Prop() readonly: boolean = false; + + /** + * The helper text for the input field + */ + @Prop() helperText?: string; + + /** + * The info text for the input field + */ + @Prop() infoText?: string; + + /** + * Indicates if the text should be shown as a tooltip + */ + @Prop() showTextAsTooltip?: boolean; + + /** + * The valid text for the input field + */ + @Prop() validText?: string; + + /** + * The warning text for the input field + */ + @Prop() warningText?: string; + + /** + * The label for the input field + */ + @Prop({ reflect: true }) label?: string; + + /** + * The error text for the input field + */ + @Prop() invalidText?: string; + + /** + * The pattern for the input field + */ + @Prop() pattern?: string; + + /** + * The minimum value for the input field + */ + @Prop() min?: string | number; + + /** + * The maximum value for the input field + */ + @Prop() max?: string | number; + + /** + * The allowed characters pattern for the input field + */ + @Prop() allowedCharactersPattern?: string; + + /** + * Indicates if the stepper buttons should be shown + */ + @Prop() showStepperButtons?: boolean; + + /** + * Event emitted when the value of the input field changes + */ + @Event() valueChange!: EventEmitter; + + /** + * Event emitted when the validity state of the input field changes + */ + @Event() validityStateChange!: EventEmitter; + + /** + * Event emitted when the input field loses focus + */ + @Event() ixBlur!: EventEmitter; + + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + @State() isInvalidByRequired = false; + + private readonly inputRef = makeRef(); + private readonly slotEndRef = makeRef(); + private readonly slotStartRef = makeRef(); + private readonly numberInputId = `number-input-${numberInputIds++}`; + + @HookValidationLifecycle() + updateClassMappings(result: ValidationResults) { + mapValidationResult(this, result); + } + + componentWillLoad() { + this.updateFormInternalValue(this.value); + } + + componentDidRender() { + this.updatePaddings(); + } + + private updatePaddings() { + adjustPaddingForStartAndEnd( + this.slotStartRef.current, + this.slotEndRef.current, + this.inputRef.current + ); + } + + updateFormInternalValue(value: number) { + this.formInternals.setFormValue(value.toString()); + this.value = value; + } + + /** @internal */ + @Method() + async getAssociatedFormElement(): Promise { + return this.formInternals.form; + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(!!this.value); + } + + /** + * Returns the native input element used under the hood + */ + @Method() + getNativeInputElement(): Promise { + return this.inputRef.waitForCurrent(); + } + + /** + * Focuses the input field + */ + @Method() + async focusInput(): Promise { + return (await this.getNativeInputElement()).focus(); + } + + render() { + const showStepperButtons = + this.showStepperButtons && (this.disabled || this.readonly) === false; + + return ( + + } + > +
+ this.updatePaddings()} + > + checkAllowedKeys(this, event)} + valueChange={(value) => this.valueChange.emit(Number(value))} + updateFormInternalValue={(value) => + this.updateFormInternalValue(Number(value)) + } + onBlur={() => onInputBlur(this, this.inputRef.current)} + > + this.updatePaddings()} + > +
+ { + if (!this.inputRef.current) { + return; + } + this.inputRef.current.stepDown(); + checkInternalValidity(this, this.inputRef.current); + this.updateFormInternalValue( + Number(this.inputRef.current.value) + ); + this.valueChange.emit(this.value); + }} + > + { + if (!this.inputRef.current) { + return; + } + this.inputRef.current.stepUp(); + checkInternalValidity(this, this.inputRef.current); + this.updateFormInternalValue( + Number(this.inputRef.current.value) + ); + this.valueChange.emit(this.value); + }} + > +
+
+
+
+
+ ); + } +} diff --git a/packages/core/src/components/input/tests/form-ready.ct.ts b/packages/core/src/components/input/tests/form-ready.ct.ts new file mode 100644 index 00000000000..699828a4434 --- /dev/null +++ b/packages/core/src/components/input/tests/form-ready.ct.ts @@ -0,0 +1,88 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { getFormValue, preventFormSubmission, test } from '@utils/test'; +import { expect } from '@playwright/test'; + +test(`form-ready - ix-input`, async ({ mount, page }) => { + await mount(`
`); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const input = page.locator('ix-input').locator('input'); + await input.fill('my example'); + await input.blur(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('my example'); +}); + +test(`form-ready - ix-number-input`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const input = page.locator('ix-number-input').locator('input'); + await input.fill('123'); + await input.blur(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('123'); +}); + +test(`form-ready - ix-textarea`, async ({ mount, page }) => { + await mount(`
`); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const input = page.locator('ix-textarea').locator('textarea'); + await input.fill('Some longer text'); + await input.blur(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('Some longer text'); +}); + +// +test(`form-ready - ix-input with initial value`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('initial value'); +}); + +test(`form-ready - ix-number-input with initial value`, async ({ + mount, + page, +}) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('1337'); +}); + +test(`form-ready - ix-textarea with initial value`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('initial value'); +}); diff --git a/packages/core/src/components/input/textarea.scss b/packages/core/src/components/input/textarea.scss new file mode 100644 index 00000000000..d58f42377ef --- /dev/null +++ b/packages/core/src/components/input/textarea.scss @@ -0,0 +1,56 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import './input.mixins.scss'; + +@include input-field; + +@include host-valid; + +@include host-info { + textarea { + border-color: var(--theme-input--border-color--info); + } + + textarea:hover { + border-color: var(--theme-input--border-color--info--hover) !important; + } + + textarea:active { + border-color: var(--theme-input--border-color--info--active) !important; + } +} + +@include host-warning { + textarea { + border-color: var(--theme-input--border-color--warning--active) !important; + } + + textarea:hover { + border-color: var(--theme-input--border-color--warning--active) !important; + } + + textarea:active { + border-color: var(--theme-input--border-color--warning--active) !important; + } +} + +@include host-invalid { + textarea { + background-color: var(--theme-input--background--invalid); + border-color: var(--theme-input--border-color--invalid) !important; + } + + textarea:hover { + border-color: var(--theme-input--border-color--invalid--hover) !important; + } + + textarea:active { + border-color: var(--theme-input--border-color--invalid--active) !important; + } +} diff --git a/packages/core/src/components/input/textarea.tsx b/packages/core/src/components/input/textarea.tsx new file mode 100644 index 00000000000..29141c73a11 --- /dev/null +++ b/packages/core/src/components/input/textarea.tsx @@ -0,0 +1,272 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + AttachInternals, + Component, + Element, + Event, + EventEmitter, + Host, + Method, + Prop, + State, + h, +} from '@stencil/core'; +import { + HookValidationLifecycle, + IxInputFieldComponent, + ValidationResults, +} from '../utils/input'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { TextareaElement } from './input.fc'; +import { mapValidationResult, onInputBlur } from './input.util'; + +export type TextareaResizeBehavior = + | 'both' + | 'horizontal' + | 'vertical' + | 'none'; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-textarea', + styleUrl: 'textarea.scss', + shadow: true, + formAssociated: true, +}) +export class Textarea implements IxInputFieldComponent { + @Element() hostElement!: HTMLIxTextareaElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * The name of the textarea field. + */ + @Prop({ reflect: true }) name?: string; + + /** + * The placeholder text for the textarea field. + */ + @Prop({ reflect: true }) placeholder?: string; + + /** + * The value of the textarea field. + */ + @Prop({ reflect: true, mutable: true }) value: string = ''; + + /** + * Determines if the textarea field is required. + */ + @Prop({ reflect: true }) required: boolean = false; + + /** + * Determines if the textarea field is disabled. + */ + @Prop() disabled: boolean = false; + + /** + * Determines if the textarea field is readonly. + */ + @Prop() readonly: boolean = false; + + /** + * The helper text for the textarea field. + */ + @Prop() helperText?: string; + + /** + * The info text for the textarea field. + */ + @Prop() infoText?: string; + + /** + * Determines if the text should be displayed as a tooltip. + */ + @Prop() showTextAsTooltip?: boolean; + + /** + * The valid text for the textarea field. + */ + @Prop() validText?: string; + + /** + * The warning text for the textarea field. + */ + @Prop() warningText?: string; + + /** + * The label for the textarea field. + */ + @Prop({ reflect: true }) label?: string; + + /** + * The error text for the textarea field. + */ + @Prop() invalidText?: string; + + /** + * The height of the textarea field (e.g. "52px"). + */ + @Prop() textareaHeight?: string; + + /** + * The width of the textarea field (e.g. "200px"). + */ + @Prop() textareaWidth?: string; + + /** + * The height of the textarea specified by number of rows. + */ + @Prop() textareaRows?: number; + + /** + * The width of the textarea specified by number of characters. + */ + @Prop() textareaCols?: number; + + /** + * Determines the resize behavior of the textarea field. + * Resizing can be enabled in one direction, both directions or completely disabled. + */ + @Prop() resizeBehavior: TextareaResizeBehavior = 'both'; + + /** + * The maximum length of the textarea field. + */ + @Prop() maxLength?: number; + + /** + * The minimum length of the textarea field. + */ + @Prop() minLength?: number; + + /** + * Event emitted when the value of the textarea field changes. + */ + @Event() valueChange!: EventEmitter; + + /** + * Event emitted when the validity state of the textarea field changes. + */ + @Event() validityStateChange!: EventEmitter; + + /** + * Event emitted when the textarea field loses focus. + */ + @Event() ixBlur!: EventEmitter; + + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + @State() isInvalidByRequired = false; + + private readonly textAreaRef = makeRef(); + + @HookValidationLifecycle() + updateClassMappings(result: ValidationResults) { + mapValidationResult(this, result); + } + + componentWillLoad() { + this.updateFormInternalValue(this.value); + } + + updateFormInternalValue(value: string) { + this.formInternals.setFormValue(value); + this.value = value; + } + + /** @internal */ + @Method() + async getAssociatedFormElement(): Promise { + return this.formInternals.form; + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(!!this.value); + } + + /** + * Get the native textarea element. + */ + @Method() + getNativeInputElement(): Promise { + return this.textAreaRef.waitForCurrent(); + } + + /** + * Focuses the input field + */ + @Method() + async focusInput(): Promise { + return (await this.getNativeInputElement()).focus(); + } + + render() { + return ( + + } + > + {!!this.maxLength && this.maxLength > 0 && ( + + {this.value.length}/{this.maxLength} + + )} +
+ this.valueChange.emit(value)} + updateFormInternalValue={(value) => + this.updateFormInternalValue(value) + } + onBlur={() => onInputBlur(this, this.textAreaRef.current)} + > +
+
+
+ ); + } +} diff --git a/packages/core/src/components/layout-auto/layout-auto.scss b/packages/core/src/components/layout-auto/layout-auto.scss new file mode 100644 index 00000000000..daef5809fe1 --- /dev/null +++ b/packages/core/src/components/layout-auto/layout-auto.scss @@ -0,0 +1,19 @@ +:host { + display: block; + position: relative; + margin: 0 0.75rem; + + --ix-layout-grid-gap: 1.5rem; + + .container { + display: flex; + align-items: stretch; + flex-wrap: wrap; + gap: var(--ix-layout-grid-gap); + } + + ::slotted(*) { + flex-grow: 0; + flex-shrink: 0; + } +} diff --git a/packages/core/src/components/layout-auto/layout-auto.tsx b/packages/core/src/components/layout-auto/layout-auto.tsx new file mode 100644 index 00000000000..429f0e4d2b8 --- /dev/null +++ b/packages/core/src/components/layout-auto/layout-auto.tsx @@ -0,0 +1,134 @@ +import { Component, Element, Host, Prop, Watch, h } from '@stencil/core'; +import { IxComponent } from '../utils/internal'; + +/** + * @since 2.6.0 + */ +@Component({ + tag: 'ix-layout-auto', + styleUrl: 'layout-auto.scss', + shadow: true, +}) +export class LayoutForm implements IxComponent { + @Element() hostElement!: HTMLIxLayoutAutoElement; + + /** + * Defines the layout of the form. + */ + @Prop() layout: { + minWidth: string; + columns: number; + }[] = [ + { minWidth: '0', columns: 1 }, + { minWidth: '48em', columns: 2 }, + ]; + + private mediaQueryList: { + mediaQuery: MediaQueryList; + layout: { + minWidth: string; + columns: number; + }; + }[] = []; + + private readonly observer = new MutationObserver(() => + this.calculateGridTemplateColumns() + ); + + private readonly resizeObserver = new ResizeObserver(() => { + this.calculateGridTemplateColumns(); + }); + + connectedCallback(): void { + this.observer.observe(this.hostElement, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['data-colspan'], + }); + this.resizeObserver.observe(this.hostElement); + + this.calculateGridTemplateColumns(); + } + + componentWillLoad(): void | Promise { + this.calculateGridTemplateColumns(); + } + + disconnectedCallback(): void { + if (this.observer) { + this.observer.disconnect(); + } + + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + } + } + + @Watch('layout') + updateMediaQueryList() { + this.mediaQueryList = []; + this.layout.forEach((layout) => { + const mediaQuery = window.matchMedia(`(min-width: ${layout.minWidth})`); + this.mediaQueryList.push({ + mediaQuery, + layout, + }); + }); + } + + private parseNumber(number: string | null) { + if (!number) { + return 1; + } + + const result = parseInt(number); + if (isNaN(result)) { + return 1; + } + + return result; + } + + private calculateGridTemplateColumns() { + this.updateMediaQueryList(); + + let layoutColumns = 1; + let columnSpacing = 'var(--ix-layout-grid-gap)'; + + this.mediaQueryList.forEach((mediaQuery) => { + if (mediaQuery.mediaQuery.matches) { + layoutColumns = mediaQuery.layout.columns; + } + }); + + let column = 0; + Array.from( + this.hostElement.children as HTMLCollectionOf + ).forEach((child) => { + let colspan = this.parseNumber(child.getAttribute('data-colspan')); + colspan = Math.min(colspan, layoutColumns); + const childRatio = colspan / layoutColumns; + + child.style.width = `calc(${childRatio * 99.9}% - ${ + 1 - childRatio + } * ${columnSpacing})`; + + if (column + colspan > layoutColumns) { + column = 0; + } + + column = (column + colspan) % layoutColumns; + }); + } + + render() { + return ( + +
+ +
+
+ ); + } +} diff --git a/packages/core/src/components/grid/layout-grid.scss b/packages/core/src/components/layout-grid/layout-grid.scss similarity index 100% rename from packages/core/src/components/grid/layout-grid.scss rename to packages/core/src/components/layout-grid/layout-grid.scss diff --git a/packages/core/src/components/grid/layout-grid.tsx b/packages/core/src/components/layout-grid/layout-grid.tsx similarity index 100% rename from packages/core/src/components/grid/layout-grid.tsx rename to packages/core/src/components/layout-grid/layout-grid.tsx diff --git a/packages/core/src/components/playground/playground.tsx b/packages/core/src/components/playground/playground.tsx index 7610a440b71..b55c1dfbaa3 100644 --- a/packages/core/src/components/playground/playground.tsx +++ b/packages/core/src/components/playground/playground.tsx @@ -4,10 +4,10 @@ * SPDX-License-Identifier: MIT * * This source code is licensed under the MIT license found in the - * LICENxSE file in the root directory of this source tree. + * LICENSE file in the root directory of this source tree. */ -import { Component, h, Host } from '@stencil/core'; +import { Component, Host, h } from '@stencil/core'; /** @internal */ @Component({ diff --git a/packages/core/src/components/radio-group/radio-group.scss b/packages/core/src/components/radio-group/radio-group.scss new file mode 100644 index 00000000000..ea9cd126452 --- /dev/null +++ b/packages/core/src/components/radio-group/radio-group.scss @@ -0,0 +1,26 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +@import 'mixins/shadow-dom/component'; + +:host { + display: inline-block; + position: relative; + + .checkbox-container { + display: flex; + flex-direction: column; + gap: 1rem; + margin: 0.375rem 0; + flex-wrap: wrap; + + &.row-layout { + flex-direction: row; + } + } +} diff --git a/packages/core/src/components/radio-group/radio-group.tsx b/packages/core/src/components/radio-group/radio-group.tsx new file mode 100644 index 00000000000..22c092ab6d6 --- /dev/null +++ b/packages/core/src/components/radio-group/radio-group.tsx @@ -0,0 +1,202 @@ +/* + * SPDX-FileCopyrightText: 2023 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { + Component, + Element, + EventEmitter, + Host, + Event, + Listen, + Prop, + State, + h, + Watch, +} from '@stencil/core'; +import { + ValidationResults, + HookValidationLifecycle, + FieldWrapperInterface, + IxFormValidationState, +} from '../utils/input'; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-radio-group', + styleUrl: 'radio-group.scss', + shadow: true, +}) +export class RadiobuttonGroup + implements FieldWrapperInterface, IxFormValidationState +{ + @Element() hostElement!: HTMLIxRadioGroupElement; + /** + * Show text below the field component + */ + @Prop() helperText?: string; + + /** + * Label for the field component + */ + @Prop() label?: string; + + /** + * Value of the radiobutton group component + */ + @Prop() value?: string; + + /** + * Error text for the field component + */ + @Prop() invalidText?: string; + + /** + * Info text for the field component + */ + @Prop() infoText?: string; + + /** + * Warning text for the field component + */ + @Prop() warningText?: string; + + /** + * Valid text for the field component + */ + @Prop() validText?: string; + + /** + * Show helper, info, warning, error and valid text as tooltip + */ + @Prop() showTextAsTooltip?: boolean; + + /** + * Alignment of the radio buttons in the group + */ + @Prop() direction: 'column' | 'row' = 'column'; + + /** + * Event emitted when the value of the radiobutton group changes + */ + @Event() valueChange!: EventEmitter; + + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + + private readonly observer = new MutationObserver(() => { + this.ensureOnlyLastRadioChecked(); + }); + + private get radiobuttonElements() { + return Array.from(this.hostElement.querySelectorAll('ix-radio')); + } + + connectedCallback(): void { + this.observer.observe(this.hostElement, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['checked'], + }); + } + + componentWillLoad(): void | Promise { + this.selectInitialValue(); + this.ensureOnlyLastRadioChecked(); + } + + disconnectedCallback(): void { + if (this.observer) { + this.observer.disconnect(); + } + } + + private selectInitialValue() { + if (!this.value) { + return; + } + this.radiobuttonElements.forEach((radiobutton) => { + radiobutton.checked = radiobutton.value === this.value; + }); + } + + private ensureOnlyLastRadioChecked() { + const checkedRadios = this.radiobuttonElements.filter( + (radio) => radio.checked + ); + checkedRadios.forEach((radio, index) => { + if (index === checkedRadios.length - 1) { + return; + } + radio.checked = false; + }); + } + + @Watch('value') + onValueChangeHandler(newValue: string) { + this.radiobuttonElements.forEach((radiobutton) => { + radiobutton.checked = radiobutton.value === newValue; + }); + } + + @Listen('checkedChange') + onCheckedChangeHandler(event: CustomEvent) { + this.radiobuttonElements.forEach((radiobutton) => { + if (radiobutton !== event.target) { + radiobutton.checked = false; + return; + } + radiobutton.checked = true; + this.valueChange.emit(radiobutton.value); + }); + } + + @HookValidationLifecycle({ + includeChildren: true, + }) + onClassField({ isInvalid, isInfo, isValid, isWarning }: ValidationResults) { + this.isInvalid = isInvalid; + this.isInfo = isInfo; + this.isValid = isValid; + this.isWarning = isWarning; + } + + render() { + return ( + + +
+ +
+
+
+ ); + } +} diff --git a/packages/core/src/components/radio-group/test/radio-group.ct.ts b/packages/core/src/components/radio-group/test/radio-group.ct.ts new file mode 100644 index 00000000000..e5dbbffcf25 --- /dev/null +++ b/packages/core/src/components/radio-group/test/radio-group.ct.ts @@ -0,0 +1,123 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { expect } from '@playwright/test'; +import { test } from '@utils/test'; + +test('renders', async ({ mount, page }) => { + await mount( + ` + + + + + + ` + ); + const radioGroupElement = page.locator('ix-radio-group'); + const radioOption1 = page.locator('ix-radio').nth(0); + const radioOption2 = page.locator('ix-radio').nth(1); + const radioOption3 = page.locator('ix-radio').nth(2); + await expect(radioGroupElement).toHaveClass(/hydrated/); + await expect(radioOption1).toHaveClass(/hydrated/); + await expect(radioOption2).toHaveClass(/hydrated/); + await expect(radioOption3).toHaveClass(/hydrated/); +}); + +test('initial checked', async ({ mount, page }) => { + await mount( + ` + + + + + + ` + ); + const radioGroupElement = page.locator('ix-radio-group'); + const radioOption1 = page.locator('ix-radio').nth(0); + const radioOption2 = page.locator('ix-radio').nth(1); + const radioOption3 = page.locator('ix-radio').nth(2); + await expect(radioGroupElement).toHaveClass(/hydrated/); + await expect(radioOption1).toHaveClass(/hydrated/); + await expect(radioOption2).toHaveClass(/hydrated/); + await expect(radioOption3).toHaveClass(/hydrated/); + + await expect(radioOption2.locator('.checkmark')).toBeAttached(); +}); + +test('change checked', async ({ mount, page }) => { + await mount( + ` + + + + + + ` + ); + const radioGroupElement = page.locator('ix-radio-group'); + const radioOption1 = page.locator('ix-radio').nth(0); + const radioOption2 = page.locator('ix-radio').nth(1); + const radioOption3 = page.locator('ix-radio').nth(2); + await expect(radioGroupElement).toHaveClass(/hydrated/); + await expect(radioOption1).toHaveClass(/hydrated/); + await expect(radioOption2).toHaveClass(/hydrated/); + await expect(radioOption2.locator('.checkmark')).toBeAttached(); + await expect(radioOption3).toHaveClass(/hydrated/); + + await radioOption3.click(); + + await expect(radioOption2).not.toHaveAttribute('checked'); + await expect(radioOption2.locator('.checkmark')).not.toBeAttached(); + await expect(radioOption3.locator('.checkmark')).toBeAttached(); + await expect(radioOption3).toHaveAttribute('checked'); +}); + +test('emit group changed change', async ({ mount, page }) => { + await mount( + ` + + + + + + ` + ); + const radioGroupElement = page.locator('ix-radio-group'); + const radioOption3 = page.locator('ix-radio').nth(2); + + const onValueChange = radioGroupElement.evaluate( + (el) => + new Promise((resolve) => { + el.addEventListener('valueChange', (event) => { + const customEvent = event as CustomEvent; + resolve(customEvent.detail); + }); + }) + ); + + await radioOption3.click(); + + expect(await onValueChange).toEqual('option3'); +}); + +test('disabled', async ({ mount, page }) => { + await mount( + ` + + + + + + ` + ); + const radioOption3 = page.locator('ix-radio').nth(2); + await expect(radioOption3).not.toBeEnabled(); + await expect(radioOption3.locator('.checkmark')).not.toBeAttached(); +}); diff --git a/packages/core/src/components/radio/radio.scss b/packages/core/src/components/radio/radio.scss new file mode 100644 index 00000000000..9fc94db3ab2 --- /dev/null +++ b/packages/core/src/components/radio/radio.scss @@ -0,0 +1,264 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + @import 'mixins/shadow-dom/component'; + +:host { + @include ix-component; + display: inline-block; + position: relative; + + button { + all: unset; + + display: inline-flex; + position: relative; + + align-items: center; + justify-content: center; + + width: 1.125rem; + min-width: 1.125rem; + max-width: 1.125rem; + height: 1.125rem; + min-height: 1.125rem; + max-height: 1.125rem; + + border: 1px solid white; + border-radius: 100px; + + margin-right: 0.5rem; + } + + button:focus-visible { + outline: 0.0625rem solid var(--theme-color-focus-bdr); + outline-offset: var(--theme-radiobtn--focus--outline-offset); + } + + input[type="radio"] { + display: none; + } + + label { + display: flex; + + justify-content: flex-start; + align-items: flex-start; + + width: 100%; + height: 100%; + } + + .checkmark { + border-radius: 100px; + background-color: var(--theme-color-primary--contrast); + width: 0.5rem; + height: 0.5rem; + } +} + +@mixin radio-base() { + :host { + button { + background-color: var(--theme-radiobtn-unchecked--background); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color); + } + } + + :host(:hover) { + button { + background-color: var(--theme-radiobtn-unchecked--background--hover); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--hover); + } + } + + :host(:active) { + button { + background-color: var(--theme-radiobtn-unchecked--background--active); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--active); + } + } + + :host(.checked), + :host([indeterminate]) { + button { + background-color: var(--theme-radiobtn-checked--background); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color); + } + } + + :host(.checked:hover), + :host([indeterminate]:hover) { + button { + background-color: var(--theme-radiobtn-checked--background--hover); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--hover); + } + } + + :host(.checked:active), + :host([indeterminate]:active) { + button { + background-color: var(--theme-radiobtn-checked--background--active); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--active); + } + } + + :host(:disabled), + :host(.disabled) { + pointer-events: none; + + button { + background-color: var(--theme-radiobtn-unchecked--background--disabled); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--disabled); + } + } + + :host(.checked:disabled), + :host(.checked.disabled), + :host([indeterminate]:disabled), + :host([indeterminate].disabled) { + button { + background-color: var(--theme-radiobtn-checked--background--disabled); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--disabled); + } + } + + ix-typography { + margin-top: 0.125rem; + } +} + +@mixin radio-variant($selector) { + :host(#{$selector}:not(.disabled)) { + button { + @content; + } + } + + :host(#{$selector}) { + button { + background-color: var(--theme-radiobtn-unchecked--background); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color); + } + } + + :host(#{$selector}:hover) { + button { + background-color: var(--theme-radiobtn-unchecked--background--hover); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--hover); + } + } + + :host(#{$selector}:active) { + button { + background-color: var(--theme-radiobtn-unchecked--background--active); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--active); + } + } + + :host(#{$selector}.checked), + :host(#{$selector}[indeterminate]) { + button { + background-color: var(--theme-radiobtn-checked--background); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color); + } + } + + :host(#{$selector}.checked:hover), + :host(#{$selector}[indeterminate]:hover) { + button { + background-color: var(--theme-radiobtn-checked--background--hover); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--hover); + } + } + + :host(#{$selector}.checked:active), + :host(#{$selector}[indeterminate]:active) { + button { + background-color: var(--theme-radiobtn-checked--background--active); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--active); + } + } + + :host(#{$selector}:disabled), + :host(#{$selector}.disabled) { + button { + background-color: var(--theme-radiobtn-unchecked--background--disabled); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-unchecked--border-color--disabled); + } + } + + :host(#{$selector}.checked:disabled), + :host(#{$selector}.checked.disabled), + :host(#{$selector}[indeterminate]:disabled), + :host(#{$selector}[indeterminate].disabled) { + button { + background-color: var(--theme-radiobtn-checked--background--disabled); + border: var(--theme-radiobtn--border-thickness) solid + var(--theme-radiobtn-checked--border-color--disabled); + } + } +} + +@mixin define-radio-vars($state, $type) { + --theme-radiobtn-#{$state}--background: var(--theme-radiobtn-#{$state}--background--#{$type}); + --theme-radiobtn-#{$state}--background--hover: var(--theme-radiobtn-#{$state}--background--#{$type}--hover); + --theme-radiobtn-#{$state}--background--active: var(--theme-radiobtn-#{$state}--background--#{$type}--active); + + --theme-radiobtn-#{$state}--border-color: var(--theme-radiobtn-#{$state}--border-color--#{$type}); + --theme-radiobtn-#{$state}--border-color--hover: var(--theme-radiobtn-#{$state}--border-color--#{$type}--hover); + --theme-radiobtn-#{$state}--border-color--active: var(--theme-radiobtn-#{$state}--border-color--#{$type}--active); +} + +@include radio-base(); +@include radio-variant( + $selector: '.ix-info', +) { + @include define-radio-vars('unchecked', 'info'); + @include define-radio-vars('checked', 'info'); + @include define-radio-vars('mixed', 'info'); +} + +@include radio-variant( + $selector: '.ix-warning', +) { + @include define-radio-vars('unchecked', 'warning'); + @include define-radio-vars('checked', 'warning'); + @include define-radio-vars('mixed', 'warning'); +} + +@include radio-variant( + $selector: '.ix-invalid--required', +) { + @include define-radio-vars('unchecked', 'invalid'); + @include define-radio-vars('checked', 'invalid'); + @include define-radio-vars('mixed', 'invalid'); +} + +@include radio-variant( + $selector: '.ix-invalid', +) { + @include define-radio-vars('unchecked', 'invalid'); + @include define-radio-vars('checked', 'invalid'); + @include define-radio-vars('mixed', 'invalid'); +} diff --git a/packages/core/src/components/radio/radio.tsx b/packages/core/src/components/radio/radio.tsx new file mode 100644 index 00000000000..994358f8e35 --- /dev/null +++ b/packages/core/src/components/radio/radio.tsx @@ -0,0 +1,177 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + AttachInternals, + Component, + Event, + EventEmitter, + Host, + Prop, + Watch, + h, + Method, + Element, +} from '@stencil/core'; +import { makeRef } from '../utils/make-ref'; +import { IxFormComponent } from '../utils/input'; + +/** + * @since 2.6.0 + * @form-ready 2.6.0 + */ +@Component({ + tag: 'ix-radio', + styleUrl: 'radio.scss', + shadow: true, + formAssociated: true, +}) +export class Radio implements IxFormComponent { + @Element() hostElement!: HTMLIxRadioElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * Name of the radio component + */ + @Prop({ reflect: true }) name?: string; + + /** + * Value of the radio component + */ + @Prop({ reflect: true }) value?: string; + + /** + * Label for the radio component + */ + @Prop() label?: string; + + /** + * Disabled state of the radio component + */ + @Prop() disabled: boolean = false; + + /** + * Checked state of the radio component + */ + @Prop({ reflect: true, mutable: true }) checked: boolean = false; + + /** + * Event emitted when the checked state of the radio changes + */ + @Event() checkedChange!: EventEmitter; + + /** + * Event emitted when the value of the radio changes + */ + @Event() valueChange!: EventEmitter; + + /** + * Single radio cannot be required + * */ + required = false; + + private readonly inputRef = makeRef((radiobuttonRef) => { + radiobuttonRef.checked = this.checked; + }); + + private setCheckedState(newChecked: boolean) { + if (this.checked) { + return; + } + const result = this.checkedChange.emit(newChecked); + if (result.defaultPrevented) { + return; + } + + this.checked = newChecked; + } + + @Watch('checked') + async onCheckedChange() { + const radiobuttonRef = await this.inputRef.waitForCurrent(); + radiobuttonRef.checked = this.checked; + + this.updateFormInternalValue(); + } + + @Watch('value') + onValueChange() { + this.valueChange.emit(this.value); + } + + componentWillLoad() { + this.updateFormInternalValue(); + } + + updateFormInternalValue() { + if (this.checked) { + this.formInternals.setFormValue(this.value ?? 'on'); + } else { + this.formInternals.setFormValue(null); + } + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(this.checked); + } + + /** @internal */ + @Method() + getAssociatedFormElement(): Promise { + return Promise.resolve(this.formInternals.form); + } + + render() { + return ( + + + + ); + } +} diff --git a/packages/core/src/components/radio/test/radio.ct.ts b/packages/core/src/components/radio/test/radio.ct.ts new file mode 100644 index 00000000000..c7909d650f5 --- /dev/null +++ b/packages/core/src/components/radio/test/radio.ct.ts @@ -0,0 +1,47 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { expect } from '@playwright/test'; +import { getFormValue, preventFormSubmission, test } from '@utils/test'; + +test('form-ready', async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const radio = page.locator('ix-radio'); + await radio.click(); + + const formData = await getFormValue(formElement, 'my-radio', page); + expect(formData).toBe('Test'); +}); + +test('form-ready with default value', async ({ mount, page }) => { + await mount(`
`); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const radio = page.locator('ix-radio'); + await radio.click(); + + const formData = await getFormValue(formElement, 'my-radio', page); + expect(formData).toBe('on'); +}); + +test(`form-ready default active`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('on'); +}); diff --git a/packages/core/src/components/select/select.scss b/packages/core/src/components/select/select.scss index d3037af5920..fa67416fd4e 100644 --- a/packages/core/src/components/select/select.scss +++ b/packages/core/src/components/select/select.scss @@ -12,6 +12,8 @@ @import 'mixins/hover'; @import 'mixins/text-truncation'; @import 'mixins/shadow-dom/component'; +@import 'mixins/field'; +@import 'mixins/validation/form-component'; :host { @include ix-component; @@ -30,6 +32,7 @@ position: relative; display: flex; align-items: center; + width: 100%; background-color: var(--theme-input--background); border: var(--theme-input--border-thickness) solid var(--theme-input--border-color); @@ -178,3 +181,51 @@ margin: 0 $small-space 0 1rem; } } + + + +@include host-valid; + +@include host-info { + .select { + border-color: var(--theme-input--border-color--info); + } + + .select:hover { + border-color: var(--theme-input--border-color--info--hover) !important; + } + + .select:active { + border-color: var(--theme-input--border-color--info--active) !important; + } +} + +@include host-warning { + .select { + border-color: var(--theme-input--border-color--warning); + } + + .select:hover { + border-color: var(--theme-input--border-color--warning--hover) !important; + } + + .select:active { + border-color: var(--theme-input--border-color--warning--active) !important; + } +} + +@include host-invalid { + .select { + border-color: var(--theme-input--border-color--invalid); + background-color: var(--theme-input--background--invalid); + box-shadow: none; + } + + .select:hover { + border-color: var(--theme-input--border-color--invalid--hover) !important; + } + + .select:active { + border-color: var(--theme-input--border-color--invalid--active) !important; + } +} diff --git a/packages/core/src/components/select/select.tsx b/packages/core/src/components/select/select.tsx index 9d0271d9622..fd61095df9a 100644 --- a/packages/core/src/components/select/select.tsx +++ b/packages/core/src/components/select/select.tsx @@ -8,6 +8,7 @@ */ import { + AttachInternals, Component, Element, Event, @@ -15,6 +16,7 @@ import { h, Host, Listen, + Method, Prop, State, Watch, @@ -24,15 +26,90 @@ import { ArrowFocusController } from '../utils/focus'; import { OnListener } from '../utils/listener'; import { createMutationObserver } from '../utils/mutation-observer'; import { DropdownItemWrapper } from '../dropdown/dropdown-controller'; -import { makeRef } from '../utils/make-ref'; - +import { + HookValidationLifecycle, + ValidationResults, + IxInputFieldComponent, +} from '../utils/input'; +import { MakeRef, makeRef } from '../utils/make-ref'; +import { a11yBoolean } from '../utils/a11y'; + +/** + * @form-ready 2.6.0 + */ @Component({ tag: 'ix-select', styleUrl: 'select.scss', shadow: true, + formAssociated: true, }) -export class Select { +export class Select implements IxInputFieldComponent { @Element() hostElement!: HTMLIxSelectElement; + @AttachInternals() formInternals!: ElementInternals; + + /** + * A string that represents the element's name attribute, + * containing a name that identifies the element when submitting the form. + * + * @since 2.6.0 + */ + @Prop({ reflect: true }) name?: string; + + /** + * A Boolean attribute indicating that an option with a non-empty string value must be selected + * + * @since 2.6.0 + */ + @Prop({ reflect: true }) required: boolean = false; + + /** + * Label for the select component + * + * @since 2.6.0 + */ + @Prop() label?: string; + + /** + * Warning text for the select component + * + * @since 2.6.0 + **/ + @Prop() warningText?: string; + + /** + * Info text for the select component + * + * @since 2.6.0 + **/ + @Prop() infoText?: string; + + /** + * Error text for the select component + * + * @since 2.6.0 + **/ + @Prop() invalidText?: string; + + /** + * Valid text for the select component + * + * @since 2.6.0 + **/ + @Prop() validText?: string; + + /** + * Helper text for the select component + * + * @since 2.6.0 + **/ + @Prop() helperText?: string; + + /** + * Show helper, error, info, warning text as tooltip + * + * @since 2.6.0 + */ + @Prop() showTextAsTooltip?: boolean; /** * Indices of selected items. @@ -46,7 +123,7 @@ export class Select { * This corresponds to the value property of ix-select-items * @since 2.0.0 */ - @Prop({ mutable: true }) value?: string | string[]; + @Prop({ mutable: true }) value: string | string[] = []; /** * Show clear button @@ -86,10 +163,10 @@ export class Select { /** * Select list header */ - @Prop() i18nSelectListHeader = 'Please select an option'; + @Prop() i18nSelectListHeader = 'Select an option'; /** - * Hint inside of dropdown if no items where found with current filter text + * Information inside of dropdown if no items where found with current filter text * * @since 1.5.0 */ @@ -126,6 +203,11 @@ export class Select { */ @Event() addItem!: EventEmitter; + /** + * Blur input + */ + @Event() ixBlur!: EventEmitter; + @State() dropdownShow = false; @State() selectedLabels: string[] = []; @State() isDropdownEmpty = false; @@ -133,13 +215,18 @@ export class Select { @State() inputFilterText = ''; @State() inputValue = ''; + @State() isInvalid = false; + @State() isValid = false; + @State() isInfo = false; + @State() isWarning = false; + private readonly dropdownWrapperRef = makeRef(); private readonly dropdownAnchor = makeRef(); + private inputRef?: HTMLInputElement; private dropdownRef?: HTMLIxDropdownElement; private customItemsContainerRef?: HTMLDivElement; private addItemRef?: HTMLIxDropdownItemElement; - private arrowFocusController?: ArrowFocusController; private readonly itemObserver = createMutationObserver(() => { @@ -148,6 +235,8 @@ export class Select { } this.arrowFocusController.items = this.visibleNonShadowItems; }); + private readonly focusControllerCallbackBind = + this.focusDropdownItem.bind(this); get nonShadowItems() { return Array.from(this.hostElement.querySelectorAll('ix-select-item')); @@ -213,11 +302,11 @@ export class Select { @Watch('dropdownShow') watchDropdownShow(show: boolean) { - if (show && this.dropdownRef) { + if (show) { this.arrowFocusController = new ArrowFocusController( this.visibleNonShadowItems, this.dropdownRef, - (index) => this.focusDropdownItem(index) + this.focusControllerCallbackBind ); this.arrowFocusController.wrap = !this.editable; @@ -243,8 +332,31 @@ export class Select { this.itemClick(newId); } + async updateFormInternalValue(value: string | string[]) { + if (Array.isArray(value)) { + this.formInternals.setFormValue(value.join(',')); + return; + } + + this.formInternals.setFormValue(value); + } + + /** @internal */ + @Method() + async hasValidValue(): Promise { + return this.required && !!this.hasValue(); + } + + private hasValue() { + if (Array.isArray(this.value)) { + return !!this.value.length; + } + + return !!this.value; + } + private focusDropdownItem(index: number) { - this.navigationItem = undefined; + this.navigationItem = null; if (index < this.visibleNonShadowItems.length) { const nestedDropdownItem = @@ -252,6 +364,10 @@ export class Select { 'ix-dropdown-item' ); + if (!nestedDropdownItem) { + return; + } + requestAnimationFrame(() => { nestedDropdownItem?.shadowRoot?.querySelector('button')?.focus(); }); @@ -286,7 +402,7 @@ export class Select { newItem.value = value; newItem.label = value; - this.customItemsContainerRef?.appendChild(newItem); + this.customItemsContainerRef.appendChild(newItem); this.clearInput(); this.itemClick(value); @@ -325,7 +441,7 @@ export class Select { this.items.forEach((item) => { item.selected = ids.some((i) => { - if (item.value !== undefined && typeof i !== typeof item.value) { + if (typeof i !== typeof item.value) { return i.toString() === item.value.toString(); } else { return i === item.value; @@ -340,6 +456,7 @@ export class Select { } else { this.inputValue = ''; } + this.inputRef && (this.inputRef.value = this.inputValue); } @@ -351,11 +468,12 @@ export class Select { } if (!value) { - this.itemSelectionChange.emit(undefined); + this.itemSelectionChange.emit(null); } else { this.itemSelectionChange.emit(Array.isArray(value) ? value : [value]); } + this.updateFormInternalValue(value); return false; } @@ -372,6 +490,7 @@ export class Select { } this.updateSelection(); + this.updateFormInternalValue(this.value); } @Listen('ix-select-item:valueChange') @@ -400,7 +519,7 @@ export class Select { this.removeHiddenFromItems(); this.isDropdownEmpty = this.isEveryDropdownItemHidden; } else { - this.navigationItem = undefined; + this.navigationItem = null; this.updateSelection(); this.inputFilterText = ''; } @@ -471,9 +590,11 @@ export class Select { } const moveUp = key === 'ArrowUp'; - const indexNonShadow = this.visibleNonShadowItems.indexOf( - document.activeElement as any - ); + const indexNonShadow = document.activeElement + ? this.visibleNonShadowItems.indexOf( + document.activeElement as HTMLIxSelectItemElement + ) + : -1; // Slotted select items if (indexNonShadow === 0) { @@ -495,10 +616,14 @@ export class Select { return; } + if (!this.navigationItem) { + return; + } + if ( this.isAddItemVisible() && - this.addItemRef?.contains( - (await this.navigationItem?.getDropdownItemElement()) || null + this.addItemRef.contains( + await this.navigationItem.getDropdownItemElement() ) ) { if (moveUp) { @@ -513,7 +638,7 @@ export class Select { // Custom select items const indexShadow = this.visibleShadowItems.indexOf( - this.navigationItem as any + this.navigationItem as HTMLIxSelectItemElement ); if (moveUp) { @@ -605,11 +730,13 @@ export class Select { this.clearInput(); this.selectedLabels = []; this.value = []; - this.valueChange.emit(undefined); + this.emitValueChange([]); this.dropdownShow = false; } - private onInputBlur() { + private onInputBlur(event: Event) { + this.ixBlur.emit(); + if (this.editable) { return; } @@ -618,11 +745,11 @@ export class Select { return; } - if (this.dropdownShow) { - return; - } + const target = event.target as HTMLInputElement; - this.value = this.selectedLabels; + if (!this.dropdownShow && this.mode !== 'multiple') { + target.value = this.selectedLabels.toString(); + } } private placeholderValue() { @@ -649,90 +776,148 @@ export class Select { ); } + @HookValidationLifecycle() + onValidationChange({ + isInvalid, + isInvalidByRequired, + isValid, + isInfo, + isWarning, + }: ValidationResults) { + this.isInvalid = isInvalid || isInvalidByRequired; + this.isValid = isValid; + this.isWarning = isWarning; + this.isInfo = isInfo; + } + + /** @internal */ + @Method() + async getAssociatedFormElement(): Promise { + return this.formInternals.form; + } + + /** + * Returns the native input element used in the component. + */ + @Method() + getNativeInputElement(): Promise { + return Promise.resolve(this.inputRef); + } + + /** + * Focuses the input field + */ + @Method() + async focusInput(): Promise { + return (await this.getNativeInputElement()).focus(); + } + render() { return ( - -
{ - this.dropdownAnchor(ref); - if (!this.editable) this.dropdownWrapperRef(ref); - }} + + } > -
-
- {this.isMultipleMode - ? this.selectedItems?.map((item) => ( - { +
{ + this.dropdownAnchor(ref); + if (!this.editable) this.dropdownWrapperRef(ref); + }} + > +
+
+ {this.isMultipleMode + ? this.selectedItems?.map((item) => ( + { + e.preventDefault(); + e.stopPropagation(); + this.itemClick(item.value); + }} + > + {item.label} + + )) + : ''} +
+ (this.inputRef = ref)} + onBlur={(e) => this.onInputBlur(e)} + onFocus={() => { + this.navigationItem = null; + }} + onInput={() => this.filterItemsWithTypeahead()} + onKeyDown={(e) => this.onKeyDown(e)} + /> + {this.allowClear && + (this.selectedLabels?.length || this.inputFilterText) ? ( + { e.preventDefault(); e.stopPropagation(); - this.itemClick(item.value); + this.clear(); }} - > - {item.label} - - )) - : ''} -
- (this.inputRef = ref)} - onBlur={() => this.onInputBlur()} - onFocus={() => { - this.navigationItem = undefined; - }} - onInput={() => this.filterItemsWithTypeahead()} - onKeyDown={(e) => this.onKeyDown(e)} - /> - {this.allowClear && - (this.selectedLabels?.length || this.inputFilterText) ? ( - { - e.preventDefault(); - e.stopPropagation(); - this.clear(); - }} - /> - ) : null} - {this.disabled || this.readonly ? null : ( - { - if (this.editable) this.dropdownWrapperRef(ref); - }} - > - )} + /> + ) : null} + {this.disabled || this.readonly ? null : ( + { + if (this.editable) this.dropdownWrapperRef(ref); + }} + > + )} +
-
+ (this.dropdownRef = ref)} + ref={(ref) => (this.dropdownRef = ref!)} show={this.dropdownShow} closeBehavior={this.isMultipleMode ? 'outside' : 'both'} class={{ @@ -743,8 +928,12 @@ export class Select { onShowChanged={(e) => this.dropdownVisibilityChanged(e)} placement="bottom-start" overwriteDropdownStyle={async () => { + const minWidth = this.hostElement.shadowRoot + ?.querySelector('.select') + ?.getBoundingClientRect().width; + return { - minWidth: `${this.hostElement.clientWidth}px`, + minWidth: `${minWidth}px`, }; }} > @@ -764,7 +953,7 @@ export class Select { }} >
(this.customItemsContainerRef = ref)} + ref={(ref) => (this.customItemsContainerRef = ref!)} class="d-contents" >
{this.isAddItemVisible() ? ( @@ -782,7 +971,7 @@ export class Select { }} onFocus={() => (this.navigationItem = this.addItemRef)} ref={(ref) => { - this.addItemRef = ref; + this.addItemRef = ref!; }} > ) : null} diff --git a/packages/core/src/components/select/test/select.ct.ts b/packages/core/src/components/select/test/select.ct.ts index de59b481d7f..05db3bb7564 100644 --- a/packages/core/src/components/select/test/select.ct.ts +++ b/packages/core/src/components/select/test/select.ct.ts @@ -7,7 +7,7 @@ * LICENSE file in the root directory of this source tree. */ import { expect } from '@playwright/test'; -import { test } from '@utils/test'; +import { getFormValue, preventFormSubmission, test } from '@utils/test'; test('renders', async ({ mount, page }) => { await mount(` @@ -156,14 +156,13 @@ test('open filtered dropdown on input', async ({ mount, page }) => { Test `); - const element = page.locator('ix-select'); - await element.evaluate((select: HTMLIxSelectElement) => (select.value = [])); + const select = page.locator('ix-select'); + const input = select.locator('input'); + await select.evaluate((select: HTMLIxSelectElement) => (select.value = [])); - const input = await page.locator('[data-testid="input"]'); await input.focus(); - - page.keyboard.down('Escape'); - const dropdown = element.locator('ix-dropdown'); + await page.keyboard.press('Escape'); + const dropdown = select.locator('ix-dropdown'); await expect(dropdown).not.toBeVisible(); await input.fill('1'); @@ -398,7 +397,7 @@ test.describe('arrow key navigation', () => { await page.waitForSelector('.checkmark'); await page.keyboard.down('ArrowDown'); - const addItem = await page.locator('ix-dropdown-item'); + const addItem = page.locator('ix-dropdown-item'); await expect(addItem).toBeFocused(); }); @@ -492,7 +491,7 @@ test.describe('arrow key navigation', () => { await input.focus(); await input.fill('Item 2'); await page.keyboard.press('Enter'); - await page.locator('input').clear(); + await input.clear(); await page.keyboard.down('ArrowDown'); await page.waitForTimeout(100); @@ -727,6 +726,46 @@ test.describe('arrow key navigation', () => { }); }); +test('form-ready', async ({ mount, page }) => { + await mount(` +
+ + Test + Test + +
+ `); + + const select = page.locator('ix-select'); + const formElement = page.locator('form'); + await preventFormSubmission(formElement); + await page.locator('[data-select-dropdown]').click(); + await page.locator('ix-select-item').nth(1).click(); + + const inputValue = await select.locator('input').inputValue(); + expect(inputValue).toEqual('Item 2'); + + const formData = await getFormValue(formElement, 'my-custom-entry', page); + expect(formData).toEqual('2'); +}); + +test('form-ready - with initial value', async ({ mount, page }) => { + await mount(` +
+ + Test + Test + Test + +
+ `); + + const formElement = page.locator('form'); + await preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-custom-entry', page); + expect(formData).toEqual('some other'); +}); + test.describe('Events', () => { test('value change', async ({ mount, page }) => { await mount(` diff --git a/packages/core/src/components/toggle/test/toggle.ct.ts b/packages/core/src/components/toggle/test/toggle.ct.ts index fef1e2c3d9b..266e099b710 100644 --- a/packages/core/src/components/toggle/test/toggle.ct.ts +++ b/packages/core/src/components/toggle/test/toggle.ct.ts @@ -15,7 +15,7 @@ * LICENSE file in the root directory of this source tree. */ import { expect } from '@playwright/test'; -import { test } from '@utils/test'; +import { getFormValue, preventFormSubmission, test } from '@utils/test'; test('renders', async ({ mount, page }) => { await mount(``); @@ -57,3 +57,38 @@ test('should be toggled ON after indeterminate', async ({ mount, page }) => { await expect(input).toBeChecked(); }); + +test(`form-ready`, async ({ mount, page }) => { + await mount(`
`); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + await page.locator('ix-toggle').click(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('on'); +}); + +test(`form-ready with value`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + await page.locator('ix-toggle').click(); + + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('custom-value'); +}); + +test(`form-ready default active`, async ({ mount, page }) => { + await mount( + `
` + ); + + const formElement = page.locator('form'); + preventFormSubmission(formElement); + const formData = await getFormValue(formElement, 'my-field-name', page); + expect(formData).toBe('on'); +}); diff --git a/packages/core/src/components/toggle/toggle.scss b/packages/core/src/components/toggle/toggle.scss index aa5d623778b..1618ef8d036 100644 --- a/packages/core/src/components/toggle/toggle.scss +++ b/packages/core/src/components/toggle/toggle.scss @@ -47,6 +47,7 @@ background-color: var(--theme-switch-off--background); transition: var(--theme-default-time); border-radius: 1.5rem; + border: 1px solid transparent; } .slider:before { @@ -55,7 +56,7 @@ height: 1.125rem; width: 1.125rem; left: 4px; - bottom: 3px; + bottom: 2px; background-color: var(--theme-switch-thumb-off--background); transition: var(--theme-default-time); border-radius: 50%; @@ -77,18 +78,19 @@ outline-offset: 1px; } - input:checked + .switch > .slider { - background-color: var(--theme-switch-on--background); - } - input:checked + .switch > .slider::before { background-color: var(--theme-switch-thumb-on--background); transform: translateX(1.35rem); } // Toggle NOT checked + input + .switch > .slider { + border-color: var(--theme-switch-off--border-color); + } + input + .switch:hover > .slider { background-color: var(--theme-switch-off--background--hover); + border-color: var(--theme-switch-off--border-color--hover); } input + .switch:hover > .slider:before { @@ -97,6 +99,7 @@ input + .switch:active > .slider { background-color: var(--theme-switch-off--background--active); + border-color: var(--theme-switch-off--border-color--active); } input + .switch:active > .slider:before { @@ -104,8 +107,14 @@ } // Toggle checked + input:checked + .switch > .slider { + background-color: var(--theme-switch-on--background); + border-color: var(--theme-switch-on--border-color); + } + input:checked + .switch:hover > .slider { background-color: var(--theme-switch-on--background--hover); + border-color: var(--theme-switch-on--border-color--hover); } input:checked + .switch:hover > .slider:before { @@ -114,6 +123,7 @@ input:checked + .switch:active > .slider { background-color: var(--theme-switch-on--background--active); + border-color: var(--theme-switch-on--border-color--active); } input:checked + .switch:active > .slider:before { @@ -158,3 +168,57 @@ color: var(--theme-color-weak-text); } } + +@mixin toggle-variant($selector) { + :host(#{$selector}:not(.disabled)) { + .slider { + @content; + } + } +} + +@mixin define-toggle-vars($state, $type) { + --theme-switch-#{$state}--background: var(--theme-switch-#{$state}--background--#{$type}); + --theme-switch-#{$state}--background--hover: var(--theme-switch-#{$state}--background--#{$type}--hover); + --theme-switch-#{$state}--background--active: var(--theme-switch-#{$state}--background--#{$type}--active); + + --theme-switch-thumb-#{$state}--background: var(--theme-switch-thumb-#{$state}--background--#{$type}); + --theme-switch-thumb-#{$state}--background--hover: var(--theme-switch-thumb-#{$state}--background--#{$type}--hover); + --theme-switch-thumb-#{$state}--background--active: var(--theme-switch-thumb-#{$state}--background--#{$type}--active); + + --theme-switch-#{$state}--border-color: var(--theme-switch-#{$state}--border-color--#{$type}); + --theme-switch-#{$state}--border-color--hover: var(--theme-switch-#{$state}--border-color--#{$type}--hover); + --theme-switch-#{$state}--border-color--active: var(--theme-switch-#{$state}--border-color--#{$type}--active); +} + +@include toggle-variant( + $selector: '.ix-info', +) { + @include define-toggle-vars('off', 'info'); + @include define-toggle-vars('on', 'info'); + @include define-toggle-vars('mixed', 'info'); +} + +@include toggle-variant( + $selector: '.ix-warning', +) { + @include define-toggle-vars('off', 'warning'); + @include define-toggle-vars('on', 'warning'); + @include define-toggle-vars('mixed', 'warning'); +} + +@include toggle-variant( + $selector: '.ix-invalid--required', +) { + @include define-toggle-vars('off', 'invalid'); + @include define-toggle-vars('on', 'invalid'); + @include define-toggle-vars('mixed', 'invalid'); +} + +@include toggle-variant( + $selector: '.ix-invalid', +) { + @include define-toggle-vars('off', 'invalid'); + @include define-toggle-vars('on', 'invalid'); + @include define-toggle-vars('mixed', 'invalid'); +} diff --git a/packages/core/src/components/toggle/toggle.tsx b/packages/core/src/components/toggle/toggle.tsx index 161ece2045a..04cb8035c60 100644 --- a/packages/core/src/components/toggle/toggle.tsx +++ b/packages/core/src/components/toggle/toggle.tsx @@ -8,6 +8,7 @@ */ import { + AttachInternals, Component, Element, Event, @@ -15,18 +16,37 @@ import { Fragment, h, Host, + Method, Prop, + Watch, } from '@stencil/core'; import { a11yBoolean } from '../utils/a11y'; +import { IxFormComponent } from '../utils/input'; +/** + * @form-ready 2.6.0 + * */ @Component({ tag: 'ix-toggle', styleUrl: 'toggle.scss', shadow: true, + formAssociated: true, }) -export class Toggle { +export class Toggle implements IxFormComponent { + @AttachInternals() formInternals!: ElementInternals; + @Element() hostElement!: HTMLIxToggleElement; + /** + * Name of the checkbox component + */ + @Prop({ reflect: true }) name?: string; + + /** + * Value of the checkbox component + */ + @Prop({ reflect: true }) value: string = 'on'; + /** * Whether the slide-toggle element is checked or not. */ @@ -62,10 +82,20 @@ export class Toggle { */ @Prop() hideText = false; + /** + * Required state of the checkbox component. + * + * If true, checkbox needs to be checked to be valid + */ + @Prop({ reflect: true }) required = false; + /** * An event will be dispatched each time the slide-toggle changes its value. */ - @Event() checkedChange: EventEmitter; + @Event() checkedChange!: EventEmitter; + + /** @internal */ + @Event() valueChange!: EventEmitter; onCheckedChange(newChecked: boolean) { if (this.indeterminate) { @@ -75,6 +105,35 @@ export class Toggle { this.checkedChange.emit(this.checked); } + componentWillLoad() { + this.updateFormInternalValue(); + } + + updateFormInternalValue(): void { + if (this.checked) { + this.formInternals.setFormValue(this.value); + } else { + this.formInternals.setFormValue(null); + } + } + + @Watch('checked') + watchCheckedChange() { + this.updateFormInternalValue(); + } + + /** @internal */ + @Method() + hasValidValue(): Promise { + return Promise.resolve(this.checked); + } + + /** @internal */ + @Method() + getAssociatedFormElement(): Promise { + return Promise.resolve(this.formInternals.form); + } + render() { return ( - this.onCheckedChange((event.target as any).checked) + this.onCheckedChange((event.target as HTMLInputElement).checked) } >
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%0Dnw~Or5;K8$>Ut{Gj-h=|mIXq6`;_j>hjoiri zc(#F<+rfrKkIr~iqgwZ%2LgqtyNd8yd{E88dDgV{S;M@@d|!fdrH82c!$i_V$Op#z z0d2Omx07E($~UL}=@wSZc9V&8ya$YRNC)pJF>0tiXiE?Ob(YEFhWnVAITU6;^^dqS zzHX2ay-Mwb2>|4UfIcZo_xl3Dw=)ItvtohCew3sj|^CM-OU zZr&BLJ0O>Qa3kS#$)I3VTvqbePR5y4y*|67!%^+-j7;R7rv%&kIl?{RPE(un4;wQ#RiZH+qQYwB)shxB=Y85 z<24j8$m(&oTwXT&pz;&zF(t=9HSvcgdG+Pf-WjN83EjvhmnoFW+I@ zA%6Ht%2#&+)J^{1fDD;&8mS)exnS^z{fPIW3O6?(b5dm7WiBHE!xNP+8Z#}#bWG&v z>F81(Ba;3`X8G(eSK=h_>&Od&v+`cZvR|)hiqR@pp?{G6=EhD&nWNz0s+86$J!f1% zpkVWiUc>gz4)tT&SGW_$Xd~4|>_XMm*d(mrBPsGs_wnUsbq$N*$W0V5FqVSXfR->` zuD|iY*SCMSb8bB~HPz+xXl8j?ZNWH8W!lSfw6wa<*Fn_n;p*`3Cp?s2{ab&nj-yzr zp3+ac?fsCcIN;&s#d|=~1sK4Wh7KIAWv*W%Bm2nd9s+a&8cQz}9i(8FJp6sxN){Lu zg$u@NP%A^ir*d(yg(Ql{?o48T62rdR z{k)Dl*JB<$D4LQ}R2+9LcSWL?AFjw`a#?Nd>=<|M6POO?5!?@4sGMdcj}q?7Q24E$ z7nI>${-A{2V$#Ui@M>*C4c9Cadxu^3F^rRS$ZD{vBc}j*0flftXbv+qA)#n!MIz{= zgpl%TT3w7HJj5UkpE#TmE;JvH1bgUMF%dS8dD^Q?p|`=WTSMhgyXxw^gygh@RM2cp z;N7}LN7A+U$XH23hvSnO>hO#)$Np0sqE{EXBF@eqHQD10#6lGx{G}j|QpuVQnfAEA zBuJM=f~!heVc}N;u@Dv*lAuOIg?sf#o|+7S7xStZsppECll63audv@0;?LXjFJ2@= zw8}!*BB6QPJJ-^(a=YpGmshQ2P-!`yZ}5ICuc>LKt}kKBs&jUTkd9Zs(EV~$s;bPa zBYRo*o*6Pyq-lY3MeO7&J(G}h$4@uK!GouTFJ!&OxgD&#bF#Io zYxd7uG=@a(;lxdke`P)!Q+Xtyv7a_=#}8cm#wJo^Tn_^E=Qh9Syq!8^!X*68MrZRG z9+zDzopJ1O%iPoL9X3@`eQn_$m+LBb@85m1OX9o(f!z^OAgrbH`VVc~ThIV&7#$UP z;X!=qbxCqM*0uz4AfLRex9J+hg7r?iO6HblCG=k70qSdaa#+VscY5k!sKI7-0)Q5` z(#J1?qDr^{kms>8TLZ@u9irP8t8{y4+-2uD3Q8Ki!JX8?%@NGxUjIRLFRLO)B>G1A zX3q5+exDt7uInT$XOi135P1mKbK>dz8<@is069A}-*9ZI&&c5j&33RCNqM&```-|z zu*|ss1$eFC^Pg!IarFOpgYExIO!#huwa>q15Uqm@`9>CJ@88|TzV+lW50Ou2AqQKZ zLYt%<&BotZ`iU1Ue>i^Jr~~{b`V9gi;!n39#h7IPD)&p`m(Bp>wn}*b&U4rYY)2nI zjAuJg{QLf7b5Vz535$hN(eMYpI}>2*>uZ&kLwo#~HoA63SD?ys>tI`Nq25)MA(DP# zE;GC&hZ)T;l#=6juj_6qCC&C~e$)KIyk=S?@BM_H5Sc5`dfD&#IF3|}93h5i!Cgu2 ztD8Ch!)e`wu$%eu=Uybu6&&P#;0*|^B8D7L5=Ld+?$QupGd;Q))ZM+`$1HMn zi6%8~JI_wockJygx{{*88xpNFi1>^d0G2VoG*}(_44fVRavKr>-nRP`s^HiX{~ted zKkq5-AC~_)K5Kck`q1Y*=Yi(1IKuKf){FNPI0uCA{Vsr@$sh9 zW%RvSVo=_4B?& zdc;;$IK7hBtU**l#Vt!L_s!MtZosy!QZaY1>G#^in~++FLcO|mu-~95Fa1K382a~l zHa4UWUUqP;Z*A>823&9zzw_s?$Xf$b)ATD7RWz>wQ+--t)02VtD#%}qcIVDr5m1lW z-rm3JR~Y!=;(M?C6x=)(az_D#XIpzK0I0A1$38j%u5Qj#%fIqs`XibQ+i0 zWm=~?sgCjR%=bak1;(mTw9v988>{usZ3Z2l(22n4`{VG~CjasfhyBe>0FwdgN66jTI$b!*8gNW#McxM>g}}~OBtSb-EKCEA)Okkd zIe-AXnVI@^>KtQix7goYV$d9$`Ih{#>AK~&2xG>1&f{lIwS=PD7ewZQk;SVdbX zPK#ZQrSI1L2JX~B#N2fkLfmGgwy7FQIRJa3P7rtt7($7HcEV@~kh8&Yb^-@PfLGt! z;Pzo9pk{a4QPfAjUDwc1Ft+nC^nsX&V&QoaTo*z5wBhCm06F(ac%tD4?I%+*9M%UP zrDG9o(39J7+BtFA&esY#S&wQ8fK9uHjvz!ksc z=K93{W(WcJ7y#j(kHsd$NXRNvcac-jr*ek|kuT3uVzbAgJBmpXax*cFZhmT7Q?-s0?J8*o1&xV(P`WKd}23lx5;7h1N}c~(Fy07sG}Xl~-) zA^HI6E{ahxn=+G{h_dKOYIX43H;8PbB^ERgYC98-1zpQ{9ahFjbPzhq%vzmiNnVr` zj1gYKA4d=KMlCr)Kk1(?$}l7xVnM$Jo0u>D!;xwvb8OG{hyh^xikkU2J+)R83_FIP z7c*2YI(8f{Dg7A19OciR)TEMGe&+9x_wI$Tg~yE8#O(XCt>v2IL;9YbO_jt2Ke;8-W`_R)`fb9Yr*NpVu%NHKM1*;@>7r%bJ8*axJKv9j^DN&kCkX*64Agn^$|#b0Q{q__ssehGhQ{d@{(n+K&s;(PawbdJbN z+JO(ZEtIe2+HGHxl#~=CgUx=L}d?};cQF_cMMrU5B$k_=fKgt0u5`Dnw$VT1qoE2#%`|Pcqs%EAZO5w zLHmp#zWnyhEk;)RbClS#S1c`|S|^Gw@U~#jE%8d6R#sM&t-pVy%#q#qMvZ6n=?TW4 z0vm6Es;ai`PTlde+Xw3qaRG9D14>4?IlNAPAB*8Ck-f_NyA~=AjD)r1iB&0a)BU;{ z1B^q~&59iQR4OXcrKkrwEKVnkA|+WTYIpF*{0r?POG>YTgu}Aeq9+$$SXg9pc9sS$ zgXPHKXj4}(8W3z8$nkuV{c!FKmUF(XtBa~UnA+U-IKaaGrZ7x;baHG^q|W2HLs?O5 z)1<6y+|z$&(;ga=8r<0>%x(DY^DI_l&W$ZSIb%gVIii4bMGYb27wurRx~kIQZqkx1 zhuwJ;*kxRBY3^}=_a_~Hj@f)g4R}G?LPEba^FKo~wNn{-ZR>h7fAH2u^3`f40{mZ9 zAG|C{tm3KkCNnY_ng^@Q9pjPcJa`z8KpAbu?AJVeF}HoRWA@>@-qnPKgZv$+^tu0m znX>=TI{(bFl90>@B>ezeC)5m0FClze_e470OCfdd6Ja5FjWb@@>!YKSJfj9a6qrJ> zM156kH(+{NH{6rcUOl+)%#G`;Ub0#nYb5n6icHy>(bt4@Uuc9$y za_I{)I{E^Ajv>B0i4^VY=)Sq$huu<4G!ROP6Uqk?^KkeaSKqcZMHuZa=@mruf~Pnv zm!^-LnQN}lMKSL9SoHPl*FVW}*n$Qp1;(TJrU8r=2}HsNmWJ#x4W2+N|25%uv< z@hI}&65;0kC0SXnpL>goGBaKOnEF^-xUxs$p6GKvUfwHQg{)|@u%LLFENX4#1TkA* zzv=x4ZEpoDwhy+O5RX4In%tLlINbW?xs(m+o_Z`k;dPiRJU!LqAfXD`BawGQuu^fE zyUX8?av~R76M_=~4;*f1WIR<8y>svGe1U%NHQ1Y`(-~M`1uwK&SS_XZlyPAoV8`z* zJnN+6*MEsnpufHMfW@B#22L)<^DZscliOQcd^%xH_i6-xE7MER;E(QMX#G^l_Ug47 z>&utX7|POqP4!phwPTbF=l)^$q#K^|-c7JaJa~Mn2D}JJ3qHFV7tW^M!ns|PbE!gs zHgGt=e2mPEjKC<4Vvg5Ye{bFW%kHC@u8-yu)VjL;odPU7WJ9WkwJ?o z7*K=fc$%vr<cG&FCvA&^FI#Z7r%( zkTTp*(hb+_>tph&r!Q@jIi7$1LEgUci99al&W?#=J2f)dU`UQYOq(4f zi^~lBkl}wPEUZ@M^1VMQ`aqMPlsa5N8y7dc|Mo2==W4$p%$AOpxZ4&gQEKT1%~Qul zY)%y<&Y@B(Y%#e}yPGdwy`ha8ZsBdGGt2Zt3NQK=>j;%T-LY6JD+6@X?E31`U6exA z->JqqpTtKyjj?1jiW_?ncd*f+=O^iz_cg|Kc2OGe`yog#tV~AD_R{amgS0)3>A#3g z2vt9UI9&{W*48v?UStRAdM#E-=hv<=YsiBBd%uhzQ?;77vNAOc z1fv;^EqST>&$NKQ!THd8U&9_RY^+;9&(3{qa&4^K_d{~`w6?FWpS@JUeFiO-=`dx* zqYlysO5DP8mXd5&HQMsO+{Anw5St2E|;0vTNqp5=w0nWyFpkJHFDgVa&Kmc-WvMjm%gxW4E zw%F3wTlX=TvQu7up(G3puGdma}rv|Szk>EzYH7X7@w-RcXJ5dKF8 zE6xZFZYzeEJm=nv_hu#vWy_J&vPRco%ou665a$rhc)#;LyGhUVpN2$>2IG!8=Etph zYd;N}zbkQ{f4&9Q%YShpKfQAnxmrlvuX5jD11Xr4U0b648DZ^5J>BC1aJTmR<9 zT<3DQW&9z+zjpTHEegUc3T!vl z)XvV(ev;V}Xdt;Y9bGvk%D6iq*P1`dOXe^ey+uffmM-_zk|`<9A{iJwm)~>&SnEhm zj){#^XUd_^5gEd4Y+`ihuBM%Sd1<*k^I|>8+y4G;J1$P&#Vng9$a<3F9x;wjwPz)4 zln!})@*gl2P2N89v%*5zAf@iSk7d0<Z7S6>k6q2CkjS@Pu;$+o(=Rfi@rlqDwOpw)SwzJ$Z(ZG|5{wC_-BysB-cN)ulq zy7ZRolT^#MXoeD}olTGHkFRQpZ!@pbsVZm)@PX)=E)f`cwUCp41pHD7g$xp{=Awj# zmh$VsykU#w3!jG5!~T?)Sn$rdZf-*V{!xNJuC)`Z06l zp{RKdd%EmvMa5P@&(m4LJFSW9EyVwrRocZjj<|xH}aa78BZku@ug+Y3(%32i*~!A9X1UH)o!^~fPKUytdps_ zy$Fdai9$LD4u(U419|#rOpJ?;U6cZDc$-|t)myu*4cVerp#QW>z397Cju142l-`oj*5+|J$!$a$ml(OISkhX=7x(3bsml>(l)?Va zoZ^d7_EDy#IV<^Z^97}X+)8s+rasewg@O-C9-r*db!)yv)CHd+s zGdx{%*(lA#qArL@y*v#_^u)*orTd56W*?hYB*sP+=a57C1rZ*s1b6WzVOekQ96af< zUOLL7xN2a*)`~5$4jk3j^L!vhXYg=xZI7ytIfRt26@Z3xJapYb&~ouKWr6wJu%fJS zGjH{!)35%iqA2@R+mK(wKGclrS3HIo1)7m+R|4n8M6#tDO5ELflbcT+39xC8>pjNP zf>l`Qy0Z^g%akg{e-ifRDxNT(oAoX#ldle45nw@t$8K@&>4tw*+`!knTsHp5sS8}i zHlB*o(m!z5eynoVLUIl+;5cieO)z0eR$W#FSBiB|8T|n!@qm`!QX!V z^iSzeFRf6qIZ)b4GxWr`ZQN9UY-p6C!@Fyv2`Chz#|#2Hze1+VZ3X=fBc^_d#xL)m zjeq|yX&CVvhDOGp6C*`0#V(#n%9F<|*N~zF_-BjN_+8e1^4*mXaNOZ5+G%!PoX51Y z%g4kDtu2b@rp_B*2g!x6g5$-CwyWm2Rf*n@3a_jFYdA1ZSNbq`VzPjH^uYr|Bcm^| z@gnASZ89{l*fDS3s$W^~9b9SZJGOsH*T>eDIlH{xMdIvSF=tuZPZL^T*Lw{XT(&}o zIbl_z1^0g#33B2vvhao=AH80>G~)HmRD z-7)kXM}QnRG^pu3CQ<=}gDbQ(!x=>ZQ6k365i>V!Bk=2=GT>t_d|&lFiv*`?Y?e2c z>I^s3s8D$n{$`=fCyv&R9@!d_Mhh!ml3{L~aRqc-$Y<=kySm$-9ocp#@T<%kbQ!bf zRG-kO;$Yb+BNNjE$>nZRi=G-J$>5ANbEYgORb zyfs-ejbCF+0e?-mHJR#sizP-iR~PlYH)7;ktjP*TgPGd5SG=(L^_))o@A;99{{9oRmNCm7 zAo0G?u5oWT@aV|J?O;tUyK=aEEiZp+({vPR6UVv2w8JL*+1|rf!EG*oNnG>doq~Gv z#pvCI@vWfhiWiO`*7+w(gPY58_RdpK8vuz+CO`UGHyR+jmKkN7Q%dXx@&@x1xtzI!Q*8SC- zvMf*ck2oal6z?(mOKfzYP7EUE{e(cAV_%?NeE9frXT%_Mx4D&DwaSh2@*#JKp!?yU zVk-@}^A7itpK^csRf<0Gvtycmch}Efu^Mhmgo;$vN4^Ew`s=u(>QVWfMmwF53;-k`G+04SiOKojZ z3>@OpU#YYaj!b9yl%g>DJkC0zIyxMV`WQv;U8KXzq<)|ZU$aR1)$?xV4$_5^w!wKn zK_jsYhnh&a+2IwlrN$oucHt$+MWvkjeM(BoT>Y04pSM9!k}{oA0ai2HF392~$qB_Y z0%I<3X>kYc43q&famrcQs&boCRihQo%)5(S$#9Il2YC<>z2{XnvK+}xe2GQ4Gl#{z zv(v#0+Qx`n$JL=*hho+qgPym2EGlpm7v0a>&ls4UwYY(}39Ft=cNMg!Ay`w=&r`++4W8Y&o%_6Y1^1NG2o zYo?Att&#{Oe6;fs#kB5dpONLKP?Pp39iRi_)V{|RXa!neuBv33fxEl=?rsmFzrxuj zO*-bqs&W<)!dhUnQj633XX;`(>Cy{JO9t>vovS|GFc>Q|W6-IN4+R$eeVNrtDjH;)5^To;@zVvk^(iD_TtvH#t-acS3daZK_FX>#K5CTLiwY_R$=WrTa#n1No@0}Yc>|ebAdM$tZ z(Oh6#5UF5!XAc>_{R!D`#>{kO;7S_AMp-JHG5!VNFyCx+kTHen$M9=tK8|vOhlAlKTFyZ zTtSY{AqjkWMytxzNBV4lXnMeI@@8#>HPK^7;v1!DzQr)pVs}Ev=O@Cgo$YhSgo#TL zDmq!O$QGKNwYq)JuDyHz4z$08fQFu8(vvulqmu;0^t_X$L4ot7^tO(UWRM8&jOAR7 z?Y;pepU}mTK?oV5ds3_X4_wB(_wQZL_lHr5PKPuK%_d{V`5o(ZS+>S3a<;cy!g(D2 z>Sj=}!a+WmT355PhU!AW?0#Lc>Ypd9er$%Zb<QS~`9;G=*2>E%cO$R+ zgkiBwuuZGdHqfM#SkdCT&}%>5e#C@u^sYr&?2KsuH|VyW9+TO6U(4yd1SV&lW88G0 zavknhg-V1AQ9tEH^i`u3w{o<0EnKY8*5BBAE?(T5M$A96V)X51qp^7m`;RSWU<-j%7o zIC*5;9bNbH^$GU2hJzpi!K_i;nO8GizQ4M)zfbk}@i)b4 zW_HFYD3?bI2t=PX&CB<^6!}nKYtYto4l!@({Wj8dY0{b3aYgZlJ9$wr+;q#bGDAZ{ z9@3?Sg$Q0@wCr_F|4%{nU8aVh*Poh*g^4)}mK2?*%QPG7lW{8AUcPV9Fti7S4d8UM0cK`7aTr>-RQiRUIqI#sxm-q6}8_9L#K_3`4cu!trd9hXFySPmsj z+x^uqTRJ4oQOO|{3n89`KYqN+-ovsMKy$RIqJwwmPOabN1-Dcb6A~#w)}Nz;sBdU+ zh5W+S(bi~64$%w8x7X1u1{~qn(b4BtSFb{mtE;Qhm|TX?@b0et+{@v&I@$_GH}*gk zLqbC4$@v7Y*w`$E*c)5cJNWpLFY5DjvS{eoz8sWHHitKS3eqJxYg^RmpG^38B_~RG@~zor6eo3wMiR zNko>aP}cl?V?;v$=@!9jPw$z%IfQ}SsI1o*YRm3o?!gDA1d+FlzVk^sIXed)EEj0n z?&q9oGD#qggmEQu(V83@>1tmDD*t(0Od&Sa7qOTG)H}z7NxPlwJzG0c%-e7{ggb2z zLoNVskDz$`*k`uEkNqq{g_xVsV=1BJ0jK%hOqCqt!IeRQgCit^MsW~LqRTrOBM(&i zqK4qT;|H}3$ae0N)}rwT5MHGd`1bQ%$?F^P7RIh_jwuIU@iBf_Y}ZqiXjenj=Ooj$ z_>SDXn1nqXY;Q7FSslq{j<&DsGsTwUzN+!^oI@gWTrADa>C{F?CkB3oDWI?j2u!eg zmP2@l<1SbX9e1(j@|+pbbtyq;mf^Vc;>C+=LQ_+K9JW0%X=Mi_t}_oGUVkF8Zbm&LY<0O$YXrot1u{M{Gq9 zxhSWjXm>~CQQqugH%z88Ejh_hxvtZG!m?ChumLO0iN5*z>UZEHK_8J0Ic>=F<@u&J zzhIO>$86ECHoeMt;HOVSd;`ZtmDZDd=o8-F8I>6s8L8EZTBUEEU=cDo2y9GMxtFa( zJkpS+fUHYBTtepw`QQ)D_SEb<` z%VpILo-FO1NfsrbSo0RpuQ4$((s4q;2*m!~3a5?vqiv+Xn@co-(+PWrbvy3k8#jWy z>^VS)#0KnES|IK`5Om`>KiQ{XX2x~5X6o(j1z6LUhzO>j?tm}c(!iiO~Jqr^hEgME3lV=lFb$jjT+&28!dNy1ja?TC`5y3izumS#MlMR zD|E1&{QV1JU8;Vz=8M%XpNB*Wwiki#=geOH_xQ|yR0UIh>F12JOoie0mYAdIL!YB6 ztIFeO<;~3JICbHvtRZrf2ot>%^K7boOVVlN5a%ZMnbgHYvi44oq^4JaMeghY0i8j; z(7&{lN4?Or4zB9BL+7F%&R*C3K^1?El919;N5hoRSy+>Z`%IdhkTgkp-p>hA3nZ6! zm9%>Hxzvv5?gHN6A%?)UI5aASIPaKh8ypKc!%Np;tCfqnroewrZqGxlp=`AVvWp`O zIG>v#Ot*JlLiyNN?dg7>N!6#<)Uf_TKx0!Day3Iit-^^>(0zZtjm9r5BB4t`PVl9u zC?C6VH_FUvP7O71JkpcgZqb&#ZqrFRrQfVM)Q&h*Fi#wFVyc9Mue9ueTD~DB79m5e zCEHapfyM&1R@I>Jg@H?YeI~19`iFaowZqCtubD(A1ujB<;ruRMS?@sM>Qz1p6(Jg| zf&?R}DE!wnXZanZb;swjuwSooc@QNr(b6PVNS8IT(v0uVZ}AQx37oX1X^Cv$->mF{ z5*hR6Oc z%=i!QH-pOa(ME;Y+GI^sm`xA^`(^6pzDkyQ6QmbJoOYCtxGm?qxToi{N~ZK-qrvA7 z8yTr^g=dI5QshoJ-E;hw)j)EC#bbF17cWEYs(G1Ozr(aK^`SAOA=9hJBC(v=j-vm+ zx)T1aHc{EA?lWAyKq#mxAAj0>Uf1aFhS?Y^{?9#@}2Qi3m^Xh!rdzEboNbR^_WAJUftthLO)w4uT} z{$O9BVafk*8aiA=*g<57L@+jj!?Ok&I@X%Z7we7>xysAR#qblBJt_-P*HMwjt;?aFIlPe|`C%&s{D65 z09jq_$?LXf>N`GNW^V#2LfI=LQnw#+_=EiVmn&yLqqdw~+?(@7+$~=vlPoHa=VdP(Bt57`+JAI`t&1A zFHt~3hF$m1C@v&0ru`Hcc-+!DOv_aL*}9|bj;=L~4)B3?ia?MRG}ZU_2+Gy>Cg0WZ zsCCtc4Bs z?0;3}{L?v9l92+q_?Vjj9^S6)%F**( z@ed9*>izL@!g<GnDr2YAA*3Z_F$YyjaOQT5ttaQ6__h1~<20ySbBSY1oY6K-KlfA#a(VfO9QxJ)S z&bEYGwxJzl+@B`HVS1+l_URk;hiXOU_n?ud>w7|b&xA_@a{72FDT?z6-z2!LVu{gl z)^mT3YjfKS^}%$$^XOoetz*?i%;bJ|l30CSa!OjtRs%F?2D7A0RY^dl!}L!7=h6OZ z3SQm-f|k&Nt@N_O&4K0eJ*BG-a>}oN`s7hY!R3LKK?L)}I22O7zGL**l@1N(Su19*`3?;Vr9`w@>h-L5; zG=W~<6WrSuXgO8KxY{oJoYpn$_utpewDxbMi4srL;QAC6n2eS`t?tYR<|Yg`7LW3< z3ZB8RMM6gA2^(Lmf2%3fNntTDvo1oje^~_ttF~}&{`^7ukFJs?;;MJtYE%|`mYcpt z8?iCG^Ylzza6Ml2tC;nU(?sQpQYopkvop0^BDPPLvBBxVItLWcot5XO`%B?+)V4s! zhostLuh-Az)TKX7DU*JvAKD#1Rz-JnY>};khzd(E1l(KsKi6wzPGIo?;oKJFSgNBr z-X^Iqr4M_0F26Y?fi3KgTq1i`-%Fvw&;fYv&*9-P%nOeQ9_%Lw9DE@gvO5(4zy=i6 z--!{uBv)ctVdkkZx% z^Gf%Qad-gOAMp3(0}@bLIz`sy=-z5TP*5Y3Kpp=sffgGB!vD7tNdBs~b^!@%u`9ti zm(G#5q<}pLwmcqlE>8ee@ZPKE!*4eqdtkspg#D`7>+Mn!!?9n70Q1$xwL^P-C8N(o zk61?;`Z*%M{Bf?&S(K3pT|w7ApCD4DG%??L?A2?K7*gppC>j4h)d3O<;*tWwry*3Q zJ53V<{y-y&S}k4s{bkfcIg_T0D~@8aza#MXZ-!e~x3>58?D(4dGv{p=j}86_fYyfU zSDJ-U5s+0|58YvS9ksD)!gFc=Rz=!IQ`*arBvHp`T|!o(*|?xLS1*X7%RCS2AxM|& z?}f_oMEZo5aDV^)J%poRG$^U22DwcjhfPI6@jgo1EoN9WsJ5jg-H!js!WAY9=35<4 z8Gp-?$SWwk{em)6hj!Yoqzoy?^74{@wzHmE8A!`O#|dC2_1hnk0kJoSTv~Fe)~-S~ zOfh-0u{J9CH~4CdtxuU zr}IuSmeO^`3dTXl1CRLbhc?T_9A*JINy%HQLpjXsHPCJWt1#f;kHX>3@3f}d=#O{x z#tX}Bk8CRIN)M$@v*}}hJ*!An)(eWt~Pyl(!gw`vwv$Jmjo-I^O^;{rxkbq1F(YbV)GnB2~Bv|E6 zpj1K%y5IslrYxX9Nb!_4?CZSY0jLbUe~%8}0TDw7t&QbLKh8|$ucKW5Eb&Ld|2nwv zRdD=%2>dv?@DbCs|7K|R21+`VPQCSjHALt&jazMC1hBAvtb2w52bPane|mxCvOM|9 z2X<%zGFK2z>^)#VTDA9HI6s_1n`w&DZk+52P7Ne10B2HQFEitk;nadL*pc;^GsrF8 z@hO?|3WTm*Zw8R{Ncfw_N_n94wSbrvMz^_SGYP`eF`Vlf%RtNA4@NXjp>8$2O}Y0b!R!9j)F$(6RBY6DBp8M>O|U=y;<3UVbt{?Rpkiz2S%;ugthW0C=UlEM4l^JVM!4(mTsK?qp6m0 z3q5IuW!;*QoV=#JX)+E9E0@8|fb%ufTb55zN?kwBZYV_ASEPNZbh_JgqnQ3Hs|Tu^%^*r(J96d;VM0Fo*qON9v6@t(Mz_FmxSR z)jADR(hKZQx$ZMZ%gH)9ITml1=c_VI3|3)u#g;S<_u$5LHD`p=sFpcko*t}aZ!G@j zZz=lYJ!UIsk`p{t!4DzTTecPIu@5 z6}))K;|CxdJ+?T&&)pMFI$>A1+@%`lviY@P{2#TzuW@*~wY7dcZu2ZjGDm;5MZlhn zc%&o>mKzNq5E|LjQMYihQ^2YN4~RFC^7xktXUD!v*RK6NtbO)lWvF3rFv3cMYqz0u z8TL2opHc~hE0*!AH!J}r-CM}D7@%y{C?-RO93z(G@3= zL=Vo3PYw^(<>0xf#l)a7Z@R58TSBhQz-{Xaw$YmyH#pupcMdRf zA<%N)yZ+5Jb7-RfR4C0`FoOGIP3xB%mj-_}FU1WNIRet<3P51*1i^FDCyh}Z|Ni~% z%1x69UZO5Y(bju1dNj+0Cs(!(08yD6F3uQMhqI05 zGnse2bv#7J$H(kjHaF;oy+uISpTuUf^S9YFtJA9TpihkgS>YV9B;Zu|n$G@%3`?kcq9{zy;0lB8myks%huT&^f_nB%NEPphtJHOGnJdNQz zA7?}JfD#F0aCpOA$|v5JfY;0ye1f)uakKsnt}pmKxz=6g5Sw{`Wc~0|@BK_dw*ZET%L+Af%*@rD8wva)WmXoWB=n%xT}t%-w0Gv=P`7O#9}(4EskGR2 zi!3qrVJJ$QJ-2Oy5H)UOhNiJ^rJ`&_w#HI7C6uKhvNWQxWTX(;MTqQ^UFJEbC+dFR z<2jD^c>j2g=Xj5I{`nc^H-5`?UBBx(&(HUJ#_8h1mS^W9U5RD4P>ThW+a${!hxN3z z-P4vh*rPn#(Vp>eg`O1_$dtU0PqS832S?d+SS+M0jmP`H&v%&10_1r;ZRAF~YbTH0 z@<%=~VaH%F)lnD(lAv&_^os9O!c!jf@`I<&lI%e*UE8k5*JGhpTS&;wzs{4MUFh05 z;fd7HpqQ*&xzgykM}b#BS*1!t_Ezb#FW`evUIF^tqf7Lgp@2#LE+w2OO+u+QR#Vh= zv$B_#mMt{dBnO2S8(x|!x|1ppSA0puN@in4aS=CCxpS@84fI6;ss>BlCKv+@>fBf$ zOKr_NrK)e4Uu1U#&@gjpGw_AycN`xdk2thqWE8b=>lUKw;G2>X(3NgJ454i(i?*JC zt%m{d2lj+UQ z?vm*UenRRW_VjUpo%kK0ixGfNGLpGFhQTt7qc%#vk1#x`HvQYQ09o|@xeN8!P~(;I z^1am)&`@E)9mjKL*FRg!_U#ffdji{Ca(e6hg!Pr?_MW5-*mFrc@% zbZqB26Q|Fo8@p$YXA-eAH!%SEc-q|+X%CNyBZjV834TlyrlH10&y|?%`8b~gAf#-* z5pvHjy~C?-nBscyV|;2^TzmdmR^aS9Tk^PI;R25PZkE*s5q!aEBBJoz3}0FxdB1WW zhGGtvjd_%n9W_n5yqU}$9ZY6Q`aZ0YJ5~|fdtu~XUMlnW-2KH`aPgavTmmgo%_H^+ z2?b^`n$z?ohnzESFgE@M3=YA*899cChDHhy<@A|5GAvpeaaBWH8g}rQD=NfmKtGlp zAfKvvO_MTx6NXQpo(@s|+`M1_wQXu?HNAimm#R+dcY-)I&*eZ?tn_-OAr}}}&>_12 zad_bPMI+&qQ_CUnWOXy{uTpgBzT$C$At1id2xqmYIw*28wr@TlCR4cq=TI>}_dLte zqj+ZYS_(yDVPQceSskpj4un|JLEyChe8lk+i|7@#1p;_f)cdgt?ggO~7?Y7e&(UTftiz?M1lEsBRyH0MN zE!Z*cId3nOQdR}GcHV2?<_K=>ncpmo#JpMSN5abBIlb2Do#do{O71hLimYq3($aSS zQqk<+_eMc|mPU`U=#As5!Z>*qT&r4Ge5t;&EAEM75IgRx^Pm11nGRLQ^RsIbQHxAyp z+<2iL9h~V{s@somzMYAE9HCP(J5u@XCu)D(HVN1mSA%My@i9>ii~z+Yk-}47C7$8CkNI0$6P3p@o15Kc zr|7AUbuIH8Y=(x0TGI(lqaTWSd~i6T@@g%+>{LD+yRGT;ZyWYL>p1k`;>FAo2?WUZ z!w;4u<%WoBjvO=bAV}&5zsZA8Zl2xLI;Np#PL77OMd6ci?0ZRgo^}fQC%HK#36vwZqm%ro-d&xYr%NuPPblvreo=lD z^&+MN8O69hs%EB`9iGZ@T%W)vy~E#{T@^Xa#6cDu(&Fq>p~TWZSZ>+5Hp_a_S-t1qU6zG0Ae=C!Fu zV?t9}if&ev|Cvmf5niq2sPjciizd7e9b}y>NuC4g3ubr*)2h-zAe?582cO@ z5`AVT_S=wxJN|};jto+=FM#|4^bUdE;k-@x#1hF2%EK@+NSe0r^;E!)2TDSfG>MU9 z@L%-fP}iI5_S07Li4`Czo0?))kMMftZQa1sk(PbM{(dm@A()aE>Wro_SzaM=8Vc0d zqby}f(oD?M4KvJRwEL8dmO*Cwbp?Pf^2UFR}(5Eh=al1Jje_JG@^5jN38^iDWX_e36pE)Dxt6=~{Go^I4)E zQ>s?I;cLRvs@5aEph7-Av;^q%^#GVyt#if9`6Nz*V}Gn_cJ8B)ioc@1GJ*Bm)-U#& z5FK3!T;A%Fvh?(T`ihBk)@?g2f@coIBHorw1VQM_)GWX>f=nVU?fMcKlBpYta%tl( zyq>0zp7ZcG<*OrtLjXEMF`rtRR&}z2*fVENcbAUAd^XF~!K9G4kWB^jl%EtF_+Rb- zwMcTex`7uc^O6Js&ANa_e;^Qm@iyWIal&5Dr0yZEd0>(cJyDhLv z+M;P@*~rGy9R+9kYIelZaiBHd&0UGtk?8E>j_)}EM$G#|+olNnvK;$;QA)eW@1u9S zw4W`on3|n>a5}36l!?&}g_vRUAIGm%Z{(sIh{rYFA(0e`I+hH&q1aX`FM!@}8&D?BHJUBH}l`zl$$;-Jk)G4dV`dMSz5gW$3F2E-F<8w zKv8^0?FxR2basYoSMg%QpcH|HL7{!siYQcV}Cvo5Z z+oIH&;(VQvHLiR?S{5chyKEAB?WV)KFMcxG{be0^WNX+)qk?VYsFbIwt~V{_ncJAWQ52QUV|eo z+9!+g^!xKDzvd|wjc?m(-RvhF6%opm>$@_cxY1LeRwQ6)6_945URnQJyb@tQK!{L< z4|r_O@;eg7+-mMph#>YYcHO03ukf8Uqitkh%T6Vn*8oaovw-RyAOOhcrtAK5 zfs`M>YtU&3O91V<7{J{uK+kb_PzH;0&^A zIelJ77$q=Uk4;v35?APSjed6o2~(Dp>A4uj1G5YS6S0P5SRJkPUjcvU$RepXG z_Kj(g+BybRxI%@q6>RHR*8zYn0Ab!RUZtDBBQzE`W0=(LxZlr`EI78RP@$c>2G4$- zl#Z$GVhqZ2B9Zx*bu(Pp>O>_ZYNtxNaMhna{(*f_6QUK1bbG-C2taTKm!LmY6_89h zFHhNp(Ao#dp&=U_`cG&<3;yq%+v=jgi0})VRcmNvBKZTvG%)u!-35^f8+20+MA=}p z>+Fmw*)uoR8u@K$&ISc`UTgp*7QZY07`)mwnvn)gb3e(#fr9@+7Pgo7S966pa`)dc zgTx{;)BQIl$$S1d8R#k(-8o#B=ebE+@2(DbY`2>jRQ|j}h;)SQk*e+TTkH2h_bQ5K zL>w{dw;c5_>zUZ@uui+thU>tAci#{25r#`nyV%_4VOCK3%$ycTG_9z$GjY z#@yioOwP_$fmXp~QE_Ft*|<3i!wDwl_k!8w2!m1wpO`^pi~HN)pX&3yJ)<3kk-$64 zLzcdJRC5ixF>@4JJF-ljj4jLmljOq|t5Q$7Xi7Y-1WM$zD>=_s3Ngxa&sM6q_8v}H z2w0wCbd>lsizCE0rDAxFvMI%AY_=Bh%=Dl6N}9yB_7uwi9|q*v9im)>;Y;D?&Q z!Af6Jg92~(Mb}BC5*hbsk?2~Hx&isf6R9E^LNON(b-!*J8#C_VVpdi+sC-`F{6#Ec zD#_+~)R(!Gf$6buDfNJwcOTP5YOm>jIeoe$MrNWqK|kfw{O3s;2Rn18m2Nz1ugo5N zcil*M$>}n0vFe^Zr)k~iSEh)uLKi zGB<{L2sYRR+O6Bme7lqD`^WFaBQ`MKQrQkOH{$yd>tJ(O?*DiFKY5w*glN1&f4QMK R4Viaa`?$feY)#uM{{WH)_=5ld literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-disabled-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-disabled-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc970b1757b580db5a6547f6f57f6f49e13dcc8 GIT binary patch literal 64245 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 evvz`5~+^4%1UsqRU3(asqgkxoE-4Z2! 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-readonly-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-info-with-readonly-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ea0033d72ea4b47101b749f0a7cd38790957dd70 GIT binary patch literal 64669 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℘}?&g!VG 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..a4795b99c6f97a07cfe757c653c590cd3fff79cf GIT binary patch literal 73766 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°A}c4oCnT-+7Pr|)9xA!95gPFhcO6O3?H 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..bef85cb0c95f5ff4762227ce376eae871cc877ef GIT binary patch literal 68010 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�j{OXA8c}Oe{SBU2A3rg{qimz}c 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 Bgcbk* literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-disabled-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb8eb53876a2e674908b79de7b4d9d5e438e376 GIT binary patch literal 67316 zcmeFZcTiJN8#f3ls32Hq0s@L4O+cyAZIn=@gx(bCy@r~gh$sk1myWbh6MBaTiU>## zHH6+FbOUd3U#TlnQ7}=EkdRP;lwN9) zkdOgiFZ5m^2R?cNu)4qpsk@fqa}q@Non;b|yCk5O&vd*~*02z79q?(}R?pjhzvs^{ zT>Wt4?(W1*vS*jbYx6LP+m4OM zKR>>jaz|_o@67qQ^~m5;+yxguN=-^EvIb$DswsiT0!N^VTYWFp`F9eR^&2FY&c7Sq zCVhJT?MLv<|NE2Q>N(~Y7V=H-r=9|Hb*{rpsl!C9d3fCodI8hi)Ovh}`Bzo~hQLrK zaX#SFAQx0GRgJzhejDZ?{TQSmE`A~K{7){7s-*E1ww+=u8me`@UFRoBn2dAolW?I< zQd*dThw{GWs75cPKQ;icOFE4*|u#x(s6(!s>uqGk5+S_L#l&peg&rL+I2rEM- zUBkw)8tHD4q%UIKga-3f3%hc2U0FCmQ8&XY&ATBhkIg?l)Gg#_ziZn$mJ|Akdy*AY z=P)8F>3#6Y;&@e1ZfL4gARov1PX$cBBz!JsL{?YNLXxqF_wS!KZf*>V?i`Os?9%XX z?P1p>3@g1-7rN5&fBYc9dbBkfqHM$NM~*rSLCP0wx}2Fsh;7b;OGP(7Lz|k^F}BN$ zzEe>!yTLI}^<_UiORoyDF~7A_*X}nl;Gv)(k||xq+xy$cYfU zBHxWCvT54Yn^Bu33U#~DP*KD`)3LExoMQ>JzB~f`b{wX?xuMF#rM)-NmcCjHk#nOs zO0IO7J7;DP-SdqjMnP0=I4f94{a5<`-aoa|nT zL=l=kUSrAwhe7+x%wRfjYFx^GPufm-Q;OJ&pC7MD-q-MhOS?l8%@C~DuV07bf>q+} z|Ngl-*60&HRIHzYTaC9rpi7XNKXenIO zV84xFD&f3GbB*G3!$P`Sj)u#GYE$>IgqUP5IXSa{lXd0@>5az20`0WFe;+DNt<(NA zxR1|F7VC>`7vy{N=xH?V?b{jn34idjXYV4Ut;!8l^oj~JlQkYQh1WT)iALa}`}^IR zn`UO-6q{7{m13*Z_&lZgdas^OCdGO2?WL*F-{Gu0lfo0j!*$@4H%anR^R>XO>i4(C zDk9t;QoD7uqbqnr3aG>Xbn zLMy&Fes5~@eNvTx(C057_5Z!UtQibw|93=P!I0-aho&m-2M7Mg>AMX*tJ&|}YaU#X zkQ(6v0q&`evA%rF+hI|SDJ>4lb zX8ia;u>)>vYg4pP2zPN1G%hn1OIA~fPft5tU7gJ;MBFiiZ`CUfUQffq&#}1!PPEJ;gWzQej`_-72-;OR()TS^VSzc?dPT)EoKQZh4b?B561K~Wfv7W zD5e2{hKlLQkL4%M&VqD_su4K0h3)}08f0-r8Z&|!Zf$lN$zl7uy8JCcX6bg{6XT1Q zckTaZUpSxlN=`q?6paSzRpEOmVT;*w8C^O-RS=nmty`KEZ0d)UFXn+e^;u-Sj1vqY@D~t~6g$HvjEliqOzqOux^3?rsE|urg9Ljolse`ThYH zXckdh_l#cnT(~4mp(^r)tgyLfo~!*JV1Tg_AN$&=$)%|K9+Ox|tkn8Y@`ERi7)}-y zB^?C?tKhv4Kxpsy9@Lo=$@X*C?0nM3#=I<~2a0pc%lT|ghsx<1sfbZ`=uqG6XE%s= zfn)Meoo!2H9rR?0BC;NE95)DLSTUWDPR%0Ao7I>1d;0atP-VHav^1~uLQ-Lf{dxmg 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-readonly-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-invalid-with-readonly-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a3fe9206b8ab53770e7947f4db92d6053dd803 GIT binary patch literal 68984 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..fad62f51b7302146e7c626dd3e90f6f624ca8610 GIT binary patch literal 73143 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¨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%0Dfjl&L0Bkg1u79mg`AjvP~0J1i<?&6 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≪Shpkrqn46eyWqpo~Z3(5)6KSlE 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

^KK!~t*=Q6I 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6486843c97dfb3307a10a4d042e94635acf721e8 GIT binary patch literal 73152 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-disabled-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-disabled-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c76d2e5caa0d318e5eecaa1f9f8b25606817e2 GIT binary patch literal 67458 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Öt!5heK(O$i(s%diO%fI(>TAG^cb!lwya$QfisV&;#5zhT=nU_&BO;5)o zagN*98L+djS{=O{S3Y)5?DCsWR?LT1r7wK^_?grFB!l#W*}_DVOK8_{6|^i@e@Cfh zN6*7U7(i@-(Krq6K<*|l+&Jfp4)~rM$(>maKkeRp{5aQuKX($PxZ@IV=fWe2 zb;i%`bgjAS+C%kcTf7%XVeArRW2Svs7j=f6u=?hsqdJWxa^|Z$VsDq!QDM3`X2DBO z8gQFCzr9^T6_u4~g<(}29*>a+=gyj96G%623oq7|`3)qQv)%bR_ajI>!;c{-n`w&l zW2P8a>6rqti1m#0^oC!9x2c%Gskq(6wGUn61Z`W4RZpX-nQcf##Q_z+u$s@%o*uie z;f)q>zl#`pDc_n2M9#p;Z^Lxx`j{&uq#GgGTJfUr@Spgnk5fe!s`9zM9>aO=^pgee z=}%WPayj37Mf-GCy8W}L{pMqE@0Xrjc{PUfW_XiUd8@NaZ>ByeWpTBiHr;Z#z}c-i zJui)oI>?w}++*ztnXHvyc~R46(I6Ea9i3&5DQ(2o==V<*^e#+_JocN+yBrXc*+_=h zZtL$@Er%D6<%|usDlbF4b|2kP)GKeP{X*7%Q(B5C$jPd+i7$sxzu|WhtT^t`(A<{R zX`T_P;9f-rsh@b>@xb!81|;rO=^26jDGR$6%>U~K~++l&HkQa z+-y&ym|pHTTt9WHdfi5Es+?GhE^Bg_tfUA0H1)Nh?2Kg}9&20M>H7RGYZcVGIKzM) z_1;NdE62lU&xYC#wq^@`PhgctT5~7&xVR{~cpM6G^+{@IKBGGFc&Q~Wobz$4P3YsM zNxnyGs#}NuB>a=)0e$p+pWFR}6*GUcvhgC$+%cuRl5OzW^5#WxUCU0u(cI;gB+*7< zzLZhlxG`NnW4?KNIi$BB<2yfs#?p^K$#~YN#fdA@WTv0`LKUcC6;zCp&7GA&TLZ_s z6<91O7llAv?d!_HI;G3|2U`I)1rO|kd#lTPb8W8Qmh`x0cRKb_N}H!Kd^+~~$%)9# zhmO}00%U)H6IBPc$JU)OLJvXQRz*0r4XCiEw1c}-8GtIU$Q zY9C5~eR&rbcx)K=aZ35q+3DCce9D@izfLNzA+E}eFg;@OEA_b<*yi)=_2!x4A&Fu^ zot>T6R`$IaWJ2@fO|4Dt;QaHrJ5B9hv3n9k@(%6pCrDEGAssN^;^TuWgCg(q@ogBl zBroTP8B^T*dVyih{zp>MT>?q1+E)w)t#0=5q_Fz`OuUAz*H%DT5f8xRs-ACZG5xZlpMQ)7{PAW#;`yFpP7n~36g zQu5i~--G$_U#xFupY(KJx?HG3*`k#2)kaxPt|@va zYWm?XN+4a|6tSV}%wy=C=%)cxrtGW1Ahp?A(Q}V@c^MmJK1&Nw(7PR`GMzcIQR9Al zoiSya_R2?RW4|CID*ob+%v2P*-qhOG^j+D$Vd45lUjOO!44(j1W2H!5%r=TrUBFJl zYxkz*a7b%UPe6pBww4q}=CUu(jl?tD8>L^u!_}8@I0y9GXZN18W&M(;AH@tv&QCN#&?yT*Uj5b7NL9?UzU`4bf8c z%7ddlkN1(0tQr~`)9!PR#Hx4SKPQvb8TF7E8Nj9)Q8)#L1V2B46&16;q!$Up>onfK zw>6$fZ(?T4ds68(&v`F7kh9EoF!N1>0xhT?&#fo3&q=N=aeLZ>)og}BGV2B~z@Pfi zb^V@>_^y9ew9t9)&tY1e>l3w1YvS&*T3R&z$rx>J`?zWM1Dz~X(Dl9mwpd8+Km7ECH{3D!E1x11Zx+{?^ z*;4y3hUSdKUH^PXp3jHN^lsJ|8qbp&=ik$g20OKT!&c0w$f&4*hu2Y0aJ)(vwr~wp z1FYsP>xi^{o;BYFn^29&<|Cf1JHl5WchqQ1i?J+=wu23<7>k>xcpg?!o^SiqcczU> zm|ohI^NQq$OUn)pqZ|9KXMBx|dkg*$j`=~(at4UH*`B@F0^7rT6MH)i@v+*yMbC>} z%opb7p32F|r7Pa!5VtvC1@T3J?X2%8fb&b)X>mvFfAZP7w!FOj@iVMJSDHMRf1Tv< zUi_&fAtP~Xv+w$CsRD|-B-*Bv`IH}gC22qlv3YYjq&b+*Y%dY~$pKXEDQVJYzGlVO}jfwq8VIP233B>+!;s{x&NhThWnVD&F_}hDA7wyzLly{DS!C`k} zEl}LEWme0?+V#FQ@3;!J9lMKh#*Is4{(9NN_If4`c`?$9znnT9x zQbU4v&je6rnvyF89$L+)*-w>G0F~&b6zrdgt)cPirW?+I&nfa$_?`=3GpimlPj*J`Jd_&*IWW^qr(;AEf52-Zjkh0&J| z?iG&iTx0b-y*N;f{IUe!Zy-svWJ`hvk<2%PBS=3%9(6t#k&AnTxExF`^cY{J1qrMh zP>Nqo>j39MFTjs#a$iFr_od%m6W~sehLp- z6Uu4Xdg5B%G`1A@^chr|fv~&_bA6)7EK|jNu3jn)?`ISpM52{a(B?S`k6IUTvLs(A z(;C6LpA|?~ZkS~=y--L0meMcx4CL3ZX0tZFoU1o{sLq``*V@s+rMhll0L0gA3UU=x z!l#n1l26BJ_@4XsKsvr~UEMW$zlycFzlZc_|1EmPT&G};Hcq01?B3T*ubXNrH8ih~ z??naDQxtl9!JnCFju2o;lzj@q4UU;(Qt`%7l%FCBybd`HYJEwSE;BeUE?&Gze=9j9 zo)R+cq4L0&0P600*~hxNw{G2ve(h4gCt&IJlH1MQ?umke`k3Wd>Q!E&N=|g)2ia%8 zV>T3z_p_^Jg%D6f2;n7sRlN23|H0i`hgG?D@1he?LK+m16jV^UBqS9C1QbvS=|<`9 z5~QR>qy!|TBt^O<6a?w+?(RBcuC;LO@0|VH*V)&(_Nn>DT8eWr-}il{}T;Y;V)3i~!_#r+n@btqC?Wcu_YWcn; zJ5A>9W+IAq+yXu&(nCvqSpmBA?bihbQ2~vJI_qjrH`WR4FWKjqvRzvC5biUtgN8H{ z-9M;~@FAtkZfrVR|D&$oOGJjeeEm1Buj7gb#=c=*>a7|5hB|w; z%}KFrI??}w>aMK~o7OzWww>+kSK*EL0X_KFb}qoy`Q6dMBJVFr9r+Ui$A?{G60Urg zUcFj?AAg8G#YJdH1naK7u9uX0;!{w-0U|2~+e2p)HG!Lae59KP{e(-jw8_6a+R%c? zxNG_}gKMMwpXHA?QOo7#Jh~I+m!8@D9HFSVAcVlCp7cTW4N1()!*|A`@I;!TEMre7 zIKZanqw+zs9k*U3^)z?X-D#hZb!>H2kUE=vycH+4*Yn-Nc0nV_W~_bg<5yV?4JrT+ zX@~JkySV!x$78l3@CYg-NXA#ScjvT%cP zmr}rUA~*AlN)WdJu9DrwkNkow>qOfxMk~R0Z{R={{IXWZQwSpyU$zjFlo9dYIVDhH zbIGFIzKg@w_3*U#9T_=!Vxg{tfWtm1>e0@JZy|>+yx2I4pT4*%VQ*64?4h`_YcG@Z z7wGbw4wlS(*;qE^*E(HZ+nDl9eW^QkHH6AHQIoZ=__U)))li~4T^_YJxDDfSmG7#0 z9NSWPMijd}LClN6$?}1%{FiMq5K`4#O)%!QKBb*)Kczxwz0&rfSv}cU2`t6Gh_ZTe zR5N#o({FD*b2kaWux0PF$bF)oorZ?sbsx_9?y5Ea>2;^u1cChT-@ik%$RhoOn4;f( zGy8R<+taW%LFq*J<@R?*&^_EL)!EHA+Dj~3sC`2c>guT75pvso z^CTVYq@0~ZDk>_7x2KuvR9^Rr60=j@G^aH%acLhdB-QAbUepYBYVB0q35lrD*ozXm475@GW#~p$2^ju3)1bDC7;?hVd zR;5yegSoEWOAn~x)iW@7@T@T1^Cs7Fw3;r;sL)DBf3uv5>!#D-R6&F>()P(5WFF7m zem9w(k>e|W}W;Wtj$i9eSp&J16ep z;HQ^IHthX(wY|9cu7f_x_SR+9fcA+ zGO+?EiQ2OH5aLkm9a5`snZMmN{gS8kgH`#YMHW9G;PjAScbPAS`xQ104o+zsimSkt z1C`sSC(LUq{e@@O!Di%{PEjKvrf_LZNLw&Ohtc0h5hm|0vU+V>GBOU_7b{@ca?{ow z!QEMm(P|uiXt6p9dH`F*mB-F95aEMAVPoh1e)xDOj5+K&i%?>#1La_`cUc)}*4ePf z9ipZQvu0Pd%_@cyU0KV9HIk3JlAFH?`s$2$Sogg(#pSwf--sQFDx{!&POH@F%FAlq z>hu$`i*Uq4WR7j`wfo{V=2qu=MR;E$<4zAzcgEE^$h=!Jya8cYp*_K;WFxZvQD~_dL6@a+_gu^Vs(mz%Va?DrSX`8@>i48(8x&oE5yW?PtY8H z26A#NdjC$bb)G2LQ%L;uNd$~MY2y6=?z)&F^3er~-%ZJoj^4SG!O_=Hu7;KB>ON-2 z{Jo(8>&xIE)*P!wn3?t%K!?@QBf7M$6zje@_P(1KNiq~=WK4Hs8O}^>j~t@I(iIlLr8>B+6&mc_v$%YbW#( zzz6@j7w?EK_~hjDBW{qBJgB}O|3F(i(c*OSYGP@`m*1J{5;XMmb8&4b1oF0u(R+yd z_-_bws|m@9Oc-xMr@$eQ#(CGqCtre`uQt({bz<1NrS5Fk2^0Cyp)QB1^+m~ZQbFyv z*D-Fbp)T>55)Ile({UBeUvG^nl-xJ#bOVimxEy%|{i)etwcv6`BBr z+HX*ai1oaP#{3(3M8c1UC3lo|5a;-%U-~B7e~YsI4XhqI>`OS@U|S?xl|UCsVS0d7 z&prP;4=a0dP+{ly-yfZ4Rz`kqMk@TKZe}ETRsX=XA@iIEQg#;zIdt<@W~Cg=3Y(U7 zZ-hm}ZrpFQT3mLFdcluCJbl&$`D3teNc{Uj`@VQo0Kc~GH$MCeKz*+M7vQTe_494h zr^hSfN6QpxcIrOXni5(8bNVJ56@i7}b?hCMLQi~_edfLeH@7}!OJC#=RU;QVHrE0$l?O9fxO^?!mLs}lLJkxBV`5TPIMnb#t(P@sQqWBjn zsO<61v7OI3nXfT}w=677*mOE+^XI$YaOl4J@4_!$(^RpNHy=pwlLI`{>@Je4XK1Lq znluBJ*?G=1U<(VQu1ygA)Ry9}Z%q1Gg9OSeBV_yUToiNC%~`rfy2N$6NLC~Tk8G*9 z#$HfyQmmQfO{4GoYhC}7V8NZ5{~lNX43w6^iXVhv$^*6$iffLVI}dYT*Z=OWLo;0| z*BKd8ML`hyU!*KAn_Oe&PhnR)%g2pVKb)-7H+SJSpk4JDmUxCmE`aH(GQ06NK<@ey z`P4d8|4)E?GK|vJQAK9{t{M`6oBofIU~eRRYcLGVZD901PMN*s1HWoKw~1eOs2TgR zA3k_Mt0CT`wc^99oNt2yzp^ewSjNlyh4GuwN^gV5vG4hw{Jkc4LC7QGl=b`(VQb)* z)Rv!g!tkVbtJETe|R>QcUPAllASqOl?R#WCjcg5PI$_`sd8Io2sd)b!O@*Iz?0 zZbnEkx4uccH}ewO?h+2*WnAV4ZwaVG^X7WCF7pozB^763xg8!TF{y20p_T85`hwss zSoZG&qwx1}&8+Gc(@Bwr2E_lsK&KTPB&gZq+Tm*)f%Z{e?39L*M_E}$NpiQDcyd(F zgp}c&_8~s zx{3~xu&PwhJ^A2(PmY1WzY~xL`LE60MJ?pz<(&|Re2_1wf1{Qq8U2$FBm+#nlG zeAvE|m6{XsD?XB~bW1jB)YV&NtPl_P`dxm^5moF^#&1n>_8>s%8Q=L{V?jf4XB5q@u=e}64k^yr(M5{WLLGLS)Gj>Wo_OrPv7RO{rEA+9eESVN>(Tj@>> z@74M>7}VU>Ca%|wfg3O;TDn~OPASF>w~b%hk&1gfRIQ|r_%lVRqQb%bl1nItu`;Vp5*(&Qi_aI zVpA{EnJ&FF^qLSI{%s$MP7!zXNgPMvxXgvU?glNp)o@C2V`pdQ_t|Q<`T?v+E$yi{ zJ?=S8k-Fkinp{uS!W)Cer?onvxjx^)`L5HMTh3e(}|)5Ay`g9qsdz-6#P| zrpYOyJd1_POz}KO052vcCQA6onMtke0zk*}y#oYyjk-OGk~tySsO;i{uoYgJCQ=ZF zCaV(^iVQrmFO>7ey}lKd+}+E@*I6{(gmB(EW$mgJUH5 z`ah`9|M<**$xM0>#+t>lmcJi%DbxgF+)Byoc`B?(3e=1yW6*EZLc6 zIz|0?fL25(H4p_RLhWAEW{<^mPg(33Bp*l zUdo|QiMz6>M}~&_38Ldp3~XUsxpL)`t12V5g5Mc0WWD3R{ z!^6y;4zbaAZgsKNqS6!!0#M8K$_3y0rYAJ?Jm`v0s75+T7vv1=42z@YLn|qU#qM5T z>*BV&!u-aTc~Yi>1Eu5j6}|3UB@#s5VTkSTzOH)1di2QtHUF+Tz)tc2u|bkcraY#d zq&{e9&A)zKLLkGH#XVu2H%<5slzhQLISIhF(t`;>%e~QrPehJx%FK-PR;R8)-T)2R zt?(fpJ;4_YnfVWy!W##AmZ(k>}y& z>C}5Dl_H?J<}K@F!ze%VIVUGLmp<^m*WpfzX{2k8_M0ZT;|d2Bqs960_55%IMCa>s zKEKkRsZvXmocc9v8PMLkdlgis7vE;*|jBV&Q$BJy!9b6;RaCR^BVOgOhtldw3p?BOM52QmuvvAe8`9CNvI zJC)y?f~BT~);Kw64dZp^T7Z>5`U0uskD(y&0+f)c4^5qdzqY>_AMlx%W4)K5O(wzv zs8YY6p!yoON+dV;^3|(E2p53T5C^>c*bF@}$DhE2|Eq6V*}XDe+q%5_sPb}h*Ms7s zqx}JE6km&Hd8zw~#M7l^u+FRz61Ox@&p?;*ziC z#@>MHUte!iM|fmO+rzG@pNnC|r4aIgNa#b%I3p92*i);wUt{E{?6_C7^-U> z1KJ#>qMelsRa%E)-V-YmI4hWpNOz$Y^^UCdn}Y*AGgMFbi)Y+FCjAw+U)Z{B<- zY}$%}r$a+%(d@ z^R@b-a#wq>gy6|XA*H0taEo@qX?&C+wBdGduiW!HRzQe z(uT=AeM%b!k&|?qyPBHkwl#1Sot<5Ys#ylnN4L)JgduJ!cfCs6if%uHmjSyIkTP6U#sl!<2} zF5jd6UYks>1%Ru+uEc#+)hscJ_C&8di-F5(yH#j_|AMY7S-$=-s?g$^m6i4H-k%qs zK`0vHYf*uSi5dmB>5%t!AT}u(sn*Z$mPoSW2#<>9_C6JH+Z`tsZID_cGY_Dg@E~7O z(79I#SzgtV0pXK`a=)q1ZM5v{m~g2806tKHorxtR#s62#T>@8~5BIe;F5jJ*;iZwl zTmPdLfOB)>pip!?p!_)I=U*lV=t|5lEhK#!PcXzqu3CP$;RY`k_MnPN6x%Eo!1AIw z?vm#lE2;A~roLcQh)@(v%&4m!B?emW`HtMV=aPJV`+oqN{D;Ua|NrU0O{_^aA@{dO zrSoq3Z-=*@a|iX~j^|pocegGuu>6qk_(77iSG&gfPqf(~{2zDlAJL{z*~M`v8nIZd zo7o#3U0P>sV z{3E~(!VdLLEq$S|TqOgAyd}%llmKVyv`Wg}W>iuSe$J$b#9+l37}hr`y}P@=+7DKh z#m{YTW2;qLV!>et!cY9f$yVFk80YTYqD-nm=Zu^=KG+_BmERDeApqSBWTD!IT~xqS zD+qG^v#f_6LS>h0eqJFV2@#c$eeg^)In(z7;-&E`+_1NofleCZJ5Y*?6S7BvGJyH9 zxo0J1HWCkXXmiHavlg}Qya&hx$-{#Dz+!0(9Wu+XcQJ3X`pgy219-oA)U0=xYc>Ti zaYW_T1yep7im0no5*vKcGV7H}3t4+CEZ{_VSs{#}Ri#*jTpA1U&_9H{_?Up;-~u2n zXtqYlg}U@Fjg2G9$A&8ewry5@Dvn*?BPw^A=yIVhNK{jn1gO&zN}J-RyYg4(_`s3@ zzc>E7Ls7-wK)aU=<+VM-3~82ECT}~axWJp^Vr})xJ$-rs@%3fzmD;@r40G52i6+tq zGwrT=0HRy6?25zPyTZ0vs69W~o$-=P*TwT|d%!%PSLwR@T0FdV1zwsW_(>WS7ZE@V zhfKc*an96Rf_PDFJv~37&+QNJ-&pOb=jLE;@9Z$F^uO)u>tZfa2k|JhIY31Wm!Dw_ z5I*u=E6;2zgvdk9$tEJ&Cnh2S82y#Y!i|fc;O9O*XiUtlDL<-Vi3MBm`<;vxd%$u>hrrPFRR6C1gk;;9&KPh0v{eomgrnAK49%ixp zwU_KyeIP{7dMotZC^56$+Q^9PbhH4~d6!zu)K##5Kv}6b@gEte{9T2WGz3x$@M!)S zT)&stJ5=!LU}UG~=A@61qNc*2Zy$)ES}_cyuE(AiU?1g(4MRmBaMFs0`!iP|2nNRH zcVitkzDIgw2g1W3El55q4HsIUSkjklrWq^FI=ZRq>sliH+r&E_2%!|R++*K9@0oi6 zftuOL(RF4)O2GTpOJ}hF$vHc%`NvqzC(Ex8dLWf@apg2fYmcN;5a=Nkkqb8nGv4<< zNuhoBt$c3{Rgf=SPT>|e3ste#YLcs}^w)eQCub8Qr+ZM3dI5n^M(zn{oYauJemtD- zVXHlAvfV3v=KG1NBuGwoQ^ z1rPDNu@ifja!~ZqBTRYLWN_S?8Amxkwl0AdtQz7sAg>D|=SCpD8VyhsdwGVvd-oP%G2mHB#8dRxz!`?*G_=BL zL0nOh8v-AFShlYuthyF+tF8!IR@T(dbo_(l+cB9$`Vb?!o3BIQ2q zC@*cRFw$0dKWy#8dq#^@6KS)U;oLK%@*mS3if;%;@?N@0b2#@|o zr5>j>T6RlEM;55mV=gP}qZ1f*L4hr^v2*L)JoUz;at6LLZ!h_S#ZTZ{5{_bywQ6lYx2Z4T|C(knNys)dCPvXr7$MMZ zE*~~_-!0)ElORd(yxb6R8u=sk_z!yUj^w|DIOr}+I}1^EGszh{sU_^&L@BF;f%C^au~C%8@+Bqcf?Mqh&{48JS-MBqV3| z8$qW2_v`scgd~Dazd`qRn%%mq9qzMomip4%8+i>|97s|5z@v$%d0uLIQM-C;RSCV> zw8(O=`&7wnJLLnZIpq!m=sU5hG~6stR#9@*$`If-XI9VBup%o6cDDzdO;v|`F2IGj!sN5uui;-K!74RvW z+RrF#Zf#}CH%sW#-ku-421te#UjNTJ3P4h<_T0N-s<|f@3fK1rcOOHsY*hJ6KCr5% zwoHG5y`MM35!;yj-X4&)&-1;BUTZkz6eA^b!-}xwPkYjx8NG!~ zND|oY7B+fGglPX^Z5rA}j#>oV{#-w}GX%CErs#^31>4FCqq)abE$mjlM5|51;^x+} z>HgglM0N$Ol<656wO`z+mj~P>(@p?T`Q6ti+Si5~RqVhA>GOp3DlcdzeSLiH8ML2e z4A-{DoDo4U!EyH;0XuVbO&x0UdwIs3UyF+JCiWusU1y$(iHU1>zqy0dM~8U2}!o$|SYQB7+*SD*Z!YW45B`KBnGySDTbfO znwX_w*0lUnO3Is!WQk_Vg!65hehq*q*`|`$GSvn zSJYDkF7S#DYN{&`c|XuD<$pEWdZici62M9s$Rv0+$=2b!@LVK6RlbDq^ABoxr>S@Y zav^x+z|5oH$Nw34jXJ>tf`#r}Ls}%)BDsp{PDOxH?I8jux8-Z!UG@)dRDf4j;8NFn z-l`s-P87uV7i*};KQ{;p#vE5YK;1HV-{d+1sM|V&cIn?e>0You*y?swWvoNR8T3kE)=9)x~Spx{@Dj$8X9@dgkI_u`5v67mhksR&Rx9b6=1LGrk2f;A13q_|N^}^3 z0JO`2fYJ+eHi@aJmk=eCSJcb|{uL;7e#_%YBaQrQnT+PJKJPE13L?Xsg#I=MA-3+x zX~DR?Ij7fzS(H6NHB>tFCrwsB2UWR`)35R2PRf8MuKwR!c@gJgK7-`>uNX{%{MSyH zCF)WPL`&^b0IUQlPDAI_Y8vq5EP`bh5J>n{`7uuMF=`mxd-&(}i8M_F^a_DkL*77u zpWOJk$P$Z?kdT0iz#rNaeBeXNSCPM^>Ewhqe6)8TO165lNBn@2789@ZXqv}VF4x9F zT<2Q814;wWRIIt0QfCq*?siGq?atd9il}n$En0v6e7Cg!2O!M!wA%1-%vnlgcv|mA z8I0kNc{~60|Bh?bK>yy$q@%6(<%~2E^U@bXcLO^^tzQ0iTvL}b= z5a$#dM5^qLlgePkp^XP%x%gjSj$T3JyZYRtRoVz8mAbF&P4()0u=HL5Nn&t-Im1l`E&zb3BfEp3c(J z9z?_-Tz;`0b9g4@+_*VNok@EaS=A8hqpodWazfMer-V#wEu;0kLJhvuby!LO_3zp# zzeL6h3ymJk#wG=H}s=PvM+cp-R2xb5|2r;mTUGv8m@ zi@*PxQX}@H%@zM}JNoNH-%J48cUO^&I6()_8=?{7c5YPjJdCcMfq%kNzBQ`Gxnkw#JFT zL3H{&xGy5NK0-)&GMc_^44Tz#YdCyR3-o@T+ChT5F*d@-+!<>fC>~@%*@tg&@^Z?z zP0tScgi~DYSNP->U*EoSHIy}W=Q8O)d;E*P=0_=>L7Vy; z`b6zDuByJ(i(}yf=H|r{sk{9469qEWtc|j6#;s6!KjlkJ@~Kc-ldCZAJ`tyJzwLtm zLgDO$Mzhx*8U6W!Dd6ZM=9Nvz@-**sIgOcEFO5kUsBbXTKtI7Z65@{{ceZUhGWECI zg$FqR=cDCVyyR4l(=-^Qx()##2t-2PzYpx1V@c|(nSioh6-Ay*#&PwPsH z`5`cH3%QZY3&=b&4|CokaDv2i4(`l z&QeUxXd@Z$0c>39&lbM{xt%7HaEr5z2U%YhOFes?pTB(AvZA+GNj7?BE3!g*#U5m0 z(K8x?>YqSkjexN7`p2Z{S=0uV{qvbwnLdUt$*=CnRLpTrN%E>E!;2y=j{J~K=cWmYQ zg5gzt{iq_N*W4e@WJZ`zU25QVW?WA-L(JkPikumR_DE^FgaAZ#SQ&lmRbHF~4W?7g zmY`&b+zlm)%Z*+OoPL9l8Dga$59L@V3ERJ{SWP$6;F+-yBY{RP!HW0 zPAb}${A4zBgHri&Gvc@>!I(u8?+e;hYdHf% zj|kDg)iqU=jY=D$C=333_rBcMQs zVar8ye8rrPC8+cTV-&a9O?9_J0Sc&4{ILy%DG||RCVDTgbEXag={n}l`RI_-e%1!I zu~Z+PqgHiD(8p=s*fUJoAcgL8}G zMBQ0XU66)S{bIrpgr|t#iLR>Ar@2QM4H~pMdM^=ObU}<3&8g2Wuvre@j^>8;G2184 z?a0j4T@D>W{WO36%niuGXY{UjPVx)$KMah*j*Om3nVz;M z(|lO!bduI;1yIzj!z*Vzd!>y$ch3!!g8kV|#EL$V$7ycbiGjZU#3?yzi9_7Q0xokL z+kEB0(|aiUP$k;g$(gbew>%SjdgKlx?gTO!&ZhRA-$ieaUQZ-?uy*mm8s)_lKa5^= z+Z{vIj;mNnb(zb9z3NJRZ!f=ndNt)nr}Nq^%(!h0dd}!E>gFgK8cg-Z_9aJ$_+jgI z!MWjy(dp5(k5)x>^;u6Vzb8?WJkKRw%~O|?vv@IsTmI!(yC&85>>e(EmE4?RR~qML z&e1Efk!UjcUn^M~z2+UGH0GB6Jt5{-vU+~{hkvH%ythj+pJ!wtruU4jXcd}uK(`j2 zg6Q){Z*?h<#O)=?2pLZ}rnNl5x+-1`W%(}ewuSMYG2-{HUqR3#IB%hEB9~&W> z9`-|=ec2knv^7fXI=-x+)IbkBc{R0VHfpNpZYZHy(A1i-&BogYd(j*Z0i6bq3+x0% z(RK_+e13sz9oSMIR>dFBuNIoaKMr`C-Esn@j0I+<(5&>%?c3vR&eUaQrq!SH@b`4| zzx+O)_u89USin@f_i}M<&EAxZ{`?{J1&MZNTQ}|QBD6Mgtq&s9eoxgMyX%|I&CC&z zxDRXBh7R5}mSe87#8~|Tt)Nk4T<6AiSFQ@@8Z>`8WqMK7Ni)_^?~X@xukHh3g70Tv zbnEIkap)Q-xMJde)ic+7nXo=r`kw3T@~x1Kt*r(GZY82=nElwNb>#M+ONf;I5fm_o zGMsN5B8pcNK=RtpY=kh9u(Ao-Og=dF507M8Q&cEde5~@Gbns|vu}GPT_(NnAULHKn z?hN&oiIRGW5Iz$gBjqugeRPX`Ki&8in2a%-7Z)1!rYLaKjl}0=WJ6C+MAG@J+L}RLG#1b29AAG5LyJjDN}d9> z-nPEVrJ&zkGSl?Swv@f7M2+TFl|QQZ1c*fYuA>w8lV` zm6q~tZw@Ky+z)}~WQ!6HKQMgKlgraHzwZ&uZkn4ePqn&=JJh0h`ryfv0Z~=+_cUII z&#claiqCd5kJ@2cI`*~h>TY(DTqzfr*$!pdD?`-BYn&g>D#((vvILo752mC{N0Xz> zoofN4iWzx%{T4}Z3f-LQ#Co%bL?C&9Q6tkiM`uqbTwM2pE4#FvPdy*v-mhO?rl6}3 z@Mbk^o&MtPS~I5M6p_8WELHsMJaRO{jSL`Sxog5xX4}F+5>Qg2G=2#ui59am-Cji> zjt=kpU1c=^(|bE<(g{NjTPyDB^3h6+v=y167GI|)sgdKKx73nVi*It>?5{G-SGmSv zM1d!`%XQ)tIJtJ_5J}cU>u~5VvFvD4)0~gD9@*3su9OtKIn1|c=eyGV)n>I~k0wUU zeilx`&C`8MIw78_VU8Fsv*v_VO5?F_#3WnmQ&S6rbKE|GWD>D$mCDe)*7Xe34GT72 ziVnp81Uq4jO7{@`Rm+I+hOIMoiwwkg&qd#Rwtk7D53%I*=BDwjV7cC%efit#l4zM-fu_mH1Iv!5 zZ{ITTQ0#}HuYI;{nT;G4);H8t?F@eS z_-KWPq32J^TUsi0384z*61gF=8G(_Pw-o{~KC3wNJY9&(rA0P0juxD<7RN0QTF+Fl z;Ecw=!Ax^4f2lM0VI-Jbd)=d|q>R^14>l9_a^F#B6ZUe`vU$}f=g23}GiP#jRvfyH z!ysX2WsWm`AgjezRPG*(k7S5F>}~j^N6S`|;8y88zPf7n!%7-@_2}&ewmZ)Lknn$- z9pGEeUwi+x%}V#{g#_1Tq7WfTkLv1rc1Op9)Sv8RK@}T=V#ICnwNdi*8PBrlpbc+H zX(<7LMno;@A;;8K$UZ!+iG_t18Q;z$wdP;?dC>GGb_C-*6eTDXlG;IB`SaJgM8v0a z1jUc&8A9%SH-7iOgZN``Ccj_#_cN9{ml1EzKf}v@32}Z1#Xd$|@Hn?ov`=JEME-mY zecJ!8zQ%6kf(JCkn_0jl%2nDZ4*X$W^((VyiJ=wx;5XHWgv_-LSnIFKN=eO5z$uG} zaQzbd=UF~!#bA5&^EqIi4m+uH>zkVeYXV^J&Rq6{kLN}*A{b28s!-o}d&}Ko3Usnv z+5|_WxrLU%>-e_s?11VliUZT#z1mpgw88B~VSF2Mpb%510M?n02cp(d&>i z&z*X;bP4zPB*&fq&*J>l2{F1#GPJKfq0>0bKKT|)wZi4riSu5HlrpK1&}jEohVx@G z$HJ&z22}}1sFXTME!c<)aPVY4vQ<4V3kl&t6dCoFirdX~ZFCvsp(tzu0m+_6O(04yPKVS{&B90+S&L-;Ihoq5n1Xnezc;+MAxu zcoh#k`ozji12j_vHEg1&3|BGUwTm@bxo6=J8}KiYP1JMr0}G>W(!25;$uO7Z9A#&sJn?uUNlqk4-HV`D8`9#~dcbHGR$?#A1Pn|Wp52izFNg&be8zM5eYW71eQfBPSjkSLr~$cD|#%xr&upUpu; z6Jp5M4LTX!kD#ab?}`^hh`KDr+OhVKH{Wj_ox-T@LFa*nucoLq(8-cPVYf&pU%9`; zkNDzujLRCjKN5!9=r(#36*C~VO(4$h7nZQVbVTnJ%u$nZ(8PFB60rR4%m zG0FS86vYB&bVTjKN6$01Kh+?7O~Zd&toe>Pm7&3$^!ya6L5|uo$) zGY3>YFr*t!HXyXx?W)Skl6H1&SL5VfynFX_SvdBWK|w(wCiZ%h-aYCwrfX`_(z$9P zTNk`)MZ~~&pTR&0icM&bI61M}1~XMCI-kKD+K7d@xqyJ$aeOsqzLXc|2Q#JMCpN;z z+q)B%kC;itNEQqCGA$2Jh&84^D1q~!iFvC5Cya{R6`)J@Pno^~BhsWJu91?8fG^*7 zTgBrtQ>KP?fC!_W?E5P*ccb{6sen2Mb-~ukp7p_WKyJ>!qg7#tsQoGWJY^;()dMW? zWJVlvv5A=(Z?L2i!HpL{8@QUM{KFfe{XplbcYx1x@xC_7{Z~J%04mE@`I4c9XWn8gBvk;beX&GWlCb%49M0Ko`3w4yt*J4u(kXK&Kp zT|727^TS-n#&)KvyeahKyPxjDrxYI02#ynmCke%ISGIB_s}@Zwn+TW=eYKKwUq3B} zFGj}L8csVntq&g_A5@j+HXNY*F4e_`aC|DGy7D^={c@OY-y3RQ$>A5zJD%&Q5IA^T zb>N08SZ-TuBq*#`0`3Hw!5J>{pBePT*eZ<#LzLZ>=LQaL4K?1)j8^sA%DBG-HB%2H zV^x;+I)$}Z;c4qIL9Gi~bB`Zi_`CEAxx*v$^VC;U?2Dtoy*{49W#69fJuu+;;+xz zN0!Ca{J{PEnxy zh4uP+*pkM7^A^PnDvu*P3LWUoI6X5rHM8(&D=p|%X9*3cviY*dN|0UPU~W~0%B{dB zl!Fr!6SV*$AT2C&%-xysi5t_?)17(uuk>U+%!5fp1%=jdO^He&IVB|@LmsXUxrd_q z28V{n280yzz-YNtry{?nrqBXXCRQjstlsR#?c1TH!b~X|Blm9Jyah^}$MW(7D?>$z zW^sdX3fFsh#=4S?>7gZt3=|SUh_b!ffkRDg4vE>oSABlnHHufP?gu|L*LQc56n~L1 zX?!D${pFLD#aQo)O?$oOOvUx|kDcsO@E(~1bh`hmEx#!G4n1UTz%~&xtKN6$VYqnd zQi0w<`x~D(Y_q`=kSi-@tJE(Rkx+)&^*S$4Zk5uR9^4XC$%eCkL%ws$AXc(d2h&>VwF{ELYVo7!;NkBt-nVIOflFR36ZgxjW~D7g%9r zdJ@xfTbt!&WjgsE@rVI( zv))y^05hp=UwVD^l}LTkI5dCySO`|)O7M)iOv z0s+_Wd&zwCPvRz<^OfyZ2U?(WON$`v%#vY_7L&jZ$)>1pT&A7rNe1eQrTRq+y=q6u z4tjsRrZ=DSUW9i>frR+Nh2vKp*>@ngd=vSZzDf4u_x8R>SW=*cmk&5O3N6@4*Ecq* zmK*mE4njY~PlSF550}2xdne<4Yc|tS`vCOk;2ksm-P3c`IKPL+-0n%+-HbmO|Fl6S z8^U3JUEb~Z)tzhCq9MS8@eMy(+MD|Nd|@;#eE&d!DLQe0H+WiPm=QNvv|R7TDlz4Q z!%Ixk4$W6@v#`+7u=@{ex!zI-s0gQDI92xuRQX{$bI`muMR>c2wtF4 z3x(HpmMQwh!0uF__>F^uOK{Hm=eYk^nbNDsI|s!uEEIC5U%rgBvAdb{B3!&XM}f!# zrYq*VO&J)pehm7dmt+uR^!=-;^~0cy7s>Zl2EXd896kmK()iMpXj7Ek8>KH+4``qLW>tLz0eEfg{q2PT9FLkB1oSfg3AOeX_V&ptV!UCtMnk^Xed!uO0P$`8+Oxg} z4TBW2-l&J~{#jTxbF`r%GR-4?1Mb*pZdbZwGwKIgS~b7Sg3sU5jPneR#h;9`)b>Bz z!709|#~;sen%<52zber+2o$zlG$_75otFMAtMQlF-<6h7o@ZF8F zR^`z)Q~JKVt!*dVk3+#74U%3A%&%0l_?a_{s^wSCfo+1YEI9+bnru&-_!v&lqtEtJ zS-;jo!xA1ynO)E{bBndqv>R`@v=?UBR!V~dz4B;j3-0*hQeXPCH%{Pk+QXwi8zk)J z>DQbFwgy@Qoh4E(SR5c}8Q$AsHO`Q)zT^*tg4z0zdBsnUs!E2q>XeAAUOkE80@&`;>-Ct6>FRoKiiOU`d$%d1J*hGIHM&An! zwSD^|fI1`3Gv7W~55_lxG5;{Qck=N7oJkOawswS>1@sBV%vDM4Jdk!etC#f)5Vm~S z^x=I%LVHX2=cmt~+w|!FxkoiwT$Gxk{D1*BBOF$|eLsup7=5a|lWvv8i#+24qvl&( zr`IT?M>WkZL6;;La2a zqIi%;#t5Dz%L=uix;xfYRq7An(#DE`nCV4O!W2zWK$ji0=9d@^27mMHv&>{6 z-q}MfEd=;As9f?g+g$z$0K*#->^+Yci zVVUao{N`RT<*(L(IWIqOy)teGj&xPKXbJ9osF3^CyO$Mr&YWk+e#ca#(q<*(g3T<= zh?=J++OyyA_O*6ehDRq+gogI%@a*H86ZoIx&FyhHJ~Ls=$$NJw9|n1H?Vh!pRvo9T z)$~gy=iSx0sj~`H5zxTro^1(2TWH@Nqtx_tjM!g_X3;R-M>$*3=y^!q=ZC#t)E9^V zw!f)bympheAVU;FFN>pg@M7OT9$-1_?6?=a9F>7d(G3mf=F{&uhi@B^O*9I?Ex(n71j3y-WLl6e{8iIE5!v5!6m#Kx8^8}gX0qVSZg?=+MB*i z`kT4WMQfPzQIsr?n{aG(&G(G&N-1ywiUfgZ|5ttTEfN-k<#__cM`_9F*3yfoE@Qkf z+6>X3Z!GIQ+q z6Py+?D1?3fOb-vgncVy&ASsFVa2LAty_94F2-#%dTR8lLnE6E;3|WQV>h%2lpNBUg zZ=bD~t-5~eRs<2f>_$)E+D}t2-=l+g7svnuDeTA}{kT(cHYN)#FXy@!I0H|*ZXEAT zu_Abh$(ta}^W@Qpl}ykWdDWG9DYxpheQU;{1a%HI*wN83;-34z$EbE@^35aEQ{Nx+ zZIzn#+U|9`Pti^IOJmB@is<|K1Luya++RclQ3}3;iRso&>xoe^bO=bZ9Zq^k4w}l( z(q0U)FsYPz!YI##bSK+|-^s$Wv|G1Yj`~z{pQ)+I$P~K`AC2qoKD_rfpd~)iVmKYv;+riA- zi@cY2vifp9Ltc-Jb0>*)ljY1@cMaxZ*}9EiGKFCFon?C7U2{B2;aG<^d$tf zquPj@dU3Nh;!HPGgqp2gM;p4PUF*sJNKI)YlnfB-o?qzQwEGrtmW7LP!aL#`6;!)& z6!Bu-NQ^ae{{gz2uQKrb3y9Mee|u{EZ%XO6CHMbz)Ut|-yG3S6etv3c zfQfBxzwwXwsoF7?)L!+mHZZy{SD{O6nPu+YRZBY(VQHn^YwBVt9D&qso0kCCEZ6ff zOmGTx3bV~gU)Su-{%qYu8Yr%t;R>c}y6aU}i-6hur_=4FuJF&)?r%cJKQU&iPD{ze za6~{%j2!(}QBkqH0OMgM6V^_B&nozL=)SG~d~ctNbFDk!{>hO=ySn}O+MKVTi@_9vjqe|^;u8|OJhb&!lZBa7 z0!NdKyQbkCk`@;DFuNs5b1fc{xaXN4e~uDGa_G*Q^k$DK&sG^G911V?d}&F>8+CuE zAMm`lLpL9JI>JA*boQyK@nB?tG-B&yn0g+cNZkN|U-L^(XY$QPYNxA91=4NZKXFoeUfkSs zo8{X^eO*IfsqXh*Wu#KS3a0O7Xsvs1t3vZB(n)p87sb$VvzI0fV0joG2KE%2%Y#KcZLrdPsL zeLLFQNr1yfKxW5Iij7;10SfGBK=n47WOa&EkY+Sl0=FI%5bbG?o7A3vzftX0?!v?! z?C!eG-Y&d#Gq-w&^V2R-lD{Dx#5KmZSg1e6q!2~cX2JNaf@vcWOFd_NL zO3biz-#iC(p6=9S^u`DU6ukLoKZ^yw-#1zKPT23%^?#%8t;3>h*S%rvpahf-1p$=? z0cn*|5l}$7Q|azdQ2{9d=~7Y!>5vBL91x_2ZWv&wp_zHldDh-*ul*hG_xE>vf2?Oc zfy{l+ecjh}p1(Rhx8V6WuUwJtrv0n1hUn^=vE!-fm``bRV_AV}^u}3FKOyI*7U|eSeGz~%n zJWqZ0T3ZC*a$r(_W}+}Xe!KCZEnRQ;x}I3HhyMJ@o7Ce4r1Sa}X;44$p!7RCIu;<7 z`35)kER;MusPWk%Nvi{&I|qJi>kH@a=}TQ8Wta{~rG(a<8BRCo_d;RBjjEbj6P}q# z8L#Xu_M#%dpLQ{8Vl;fKLXyXGgdc;0J-m;%t2b6v-)V52bZ=LNCcc8iPrkmN_-9Z~ zyc!VPc`$N^+odL7xAenbln`{<5A2^^PnRc32T^hTftB;Zst3KKBT;bkLx475-9#E< zxMQvAp^t`k^Yoj*jUOepBT3~GN3YR~*!px*34;18E~IABu?3`FZD258-NJ2mRwv%W z9QX}%xFna0@@F@R*yir;waB_jx3!T@jY)5Wn4QvjZXa}v8BCGk)WQmQ*mPDf{I?e1 zz@tf~yurL!Z#;li>Gt~mB@mX-h=0kK_-W*Si?JGK3m*h?iEET~bJI}H?OV|R@kW4p zEsYt)>$>xZ9OgDur^@89`!`JWYO!6R_Bgt-yDrrRvzotCk|{Yj@NH9Z8p8lv=wO~h zc@96F+0@h~P}EFA5&u|0nf(^;Cn%bA z5C+V`S`|(Nc+%_tN?j3zFp7i#0=6n;4`pmim)175_!k~BvT5CFewmDqeyVdY`5dyst~`@0Y+$l9h0WE{*xjIxD8e&F zu-0l1YndrkGyRGo(lVTM%N4x)c)Uiu}-uO zBw^!D<_JBV*SfrLalZ|iaD-C%`mHV9I(+d@$0Qa=fOdG|>PiBJeono@k5#Q9c$6iC zS~QOKZ_XyVeDc6yph5inPzwOs9e9+C4GTL&J5LZf->bK<`kE8$^Xr z3&oL2Vv_*UB&balNCm&Ie&Rm8ol;6*Rh8IePlA_;BfI}=BW_be-fb)kM5#e3^~*=H{Zo$euw@@y@D; z6giz+623b4uBs1<+Fo*h(&Fm1YtbEvk&zwW1uS4K%75>p1H5lq`T{chfWMNqy}cW( zo}uj&?9WP{P{TAlbL?-~F$wdluuQu^tAfXlpjh~^am?fGPz4P$_Hf@IPSlKi`b7?} z&0$xE&ueDK@y~Pw;*@ltjU;ajAZh9D2H2SiP}$BH8!_N>@Z_ZD9B*x+Kq?eM(AIDt zC~p0Q|6mQb0wu?lD^ua^rZZ)4PTF9*Tq?X5P+jQI3Rh+ZQWPkmR|fKAfdkL?NNn*9s&}RT~$@NPwKW5cmf@!hvCW@t`q};U{ zje}EdqzY%4nSZjoHVQX;4fdP-nJyl*J_k3q`Cf_-Y`zRUJUoD4E@Q0nc^vc;%h$fh zVJ;evmNft;2-=pV!A$>?H>FS!l)U=;7O;3zSOLq!wOkP{9KzwNfFBlW<^oE3F}?4R zGb$!`vLsWjHgf1_6qC60r%*!BN)6`Cy$ zppE_uiiq+m)d1?>52f=eiD$emhkmpV_pyL}fjq^-mmGJp?-Y}N{2l@?yiz_+us`{+ zBsyO3ii2TPRyEs|3&v>C@Hz92S2-6c>)db@fVsmU&#DJv_ti-CZ2|`4QU2xk7T;A^ ziK5zNvPst3x;r6698;8%X(L2OCzR|bM|$~klPN!+=`%l&YKTzM8Qk&P%HK0I^PdLX zlxSrVf3N^Kq6HRshSAbYeN#R7Cw!#<@&Hq~hiI(0s9Rve_&5U)lprerO+pORs!y1B zn1}R7qP9=&unH1eIq-!`NPHcrg*-PH_xp-!JOKud34p#q9Ji{v8|Y_tHKAL4t4Sd9 z50mEJ#`gkGLDB5l!&BdD6o*pSm;k(I5J*ul@N_7xBsRRIX@j@0q=ONt5$qR!|CS1_xgvxm=R{qEDPziARL>{qV0@@#9~!$3Gvu zsnff_@_~3Ex(xR~dxttW zCeQv>=g{8qaSUvQT{;DUv+PR7#UllpxwIX(hF)yu55)#IoTH+m60#fbftk1M?d{Em zugAv31152-FPtS}%_gz_W|9gun3f!>XuZuEuLquT=Nle`HJ0og>2YUTEr#JsDBWX+ zF#1q4kW=7~z7OL$B4n0{} zpog~VYfRSqFKYc9+-C72Vf<~)J@b3kH=@~53-JfOmAK%K^rt-myEuDxKPn+c{SNN^ z-p9y>&Ea3}6P{>)LYi;DpgrbE@{@uh%!Rrq3C2mTFnqI&=2hwc!*Q(3eUWRk`T6TQ zDWRS^tIxVGp}x;`JoB0@>XID~5A2HvkseT7!uJDuuLu~wxRCTJcE+54^SD?!`U&Y} zBKv(amm9D79e%q51am98Zcg|TWpJjN@M2M=Y_M7ecr0?q3xYhPxYMi_N#+-7Mqj^e zS36X{8~^m0{t;Ck2zM{V=+y=-rg{{qdG^W%AM38yoDU0rcvY*z_xrU)BmRV!Bh}x1 z)`yC8FWN&~LsW9I>i3lIz*yjqZIGV8Fi3Oda!RUVhfejw-9sCtq{yMF#KfRJmJcI~ z^qk+}AOm&NJ99;;^JGeTkJ3q znz;V6@MP^=;k+Iqmiz@zB%d1*PxLyBb}rD1_u4xh+^oG@JRocKQFm%(M=QTy;iH7BLAGQSFU# zDYw5m#a)dw=r(p_cEoh7j4xh@1P#-2 z2l4qcWYaGcPB=!qNPBpc{w-QiP~!G}080VHv!I(E?T5OMW1KA_vL%ETj}S3@Akx1$ z7=3&uIY$4$uCc>$Q!pVRM#=Cs&P?xU9(otG;EOyM^bA!~=XV4&HB|l$(~0%(nld^q zW5+yUFMXoN1S^)rpafhK!BFM*WvY6adka^o%;!!1iU%f9-xo`x@45c!s1CY=B43kb zqk5`$AI^$Zi=WQO%rq$;0V_O&8~CS;iz0D(c(iUr^;(5Bu-2(DoOn$pZ0yFfVg278 ze3sY;J)Fk6z+;c0?My(FqYpS;HUmRC#;T}5DjBo#Jk8?v?ar;}x&qI&LzQLNIMasB z(+dg;RL~SuYR<_YKD@gpZe?n*SnzWBW9Q{3fw~-2lqJ<0=#;{Attwv@Xf_HLgF>a0 zV9@kh4QeJFw@dFRg7^bqE(q6>Bw`JfId0v$&cagMb({9|nKOaVU&$(H4Ex*J+SZ-a zY;0q=_Qv2VnGC)Z^mz9HhyD`G&r-J1)})d9%{1^z$6gcMMP6rqQjugY+1z$xkD>0;54mbrTu zj&N`9Y7xh~l=pCsWmbsVoFD8GEKx3WLPn+9BF_7_pte{WU+3^zGvJ8+iGUvUn`Z>4 zPQ^zM977jdI@QB;|H!q^)ZDBX+)o9NUDE-O5d83k=k9w5Ub++nA#-@Fe9~76uXnykLh@t7CoSV+UOxyJ3SXgwNEk&Q zLfP%)r`raNIEZRvkLg$()4^8pU~)oYem+i7ZM zTFh?lj1xr5(+Ym`Yj;|PKdY!yPUd%f78U~+($)UB>Gsj5BbbXEMlXirhB+xs(Ech! z7rLIX;mKeG!r}l?2X>qq6$T%fxt2R_7kTUb_a=dN*mlRx--db;l=rQv=qftspN1xT z@O!+>JB@QwVbjtc^Jv@`J!dNz_p1zvTk(fIbu|3nm|y^X<&O^}0FeEDD1g`HfP@4@ z92-sPq%)xM;N|RVZ1k7MdP{+PaCY%8>YGM63Fzib@OqvXb;l0Gt3!!!>7P<@I`yC{ zl;Z_rME$3hoA2K#TRqKUY{y#zxH)yM1V_Nv%@KYy!clY}$|%~SzKtHOV{Alnc;%lO z6JA%!QcP_J^$&n;UBJ)ZbL3QyauDMKxC@K^dLd52?-U^wPh%@GF|O<<4LGY|hSDZ*9TPW?H5(nv+y#4q~Jj&DU@=VM>^z{hv4;sYyYshH*W>H?= z*YIOSwzKBzcT7G8nJdx>c(+}LZ7*OoiTu=MT30+VF#>W)l`deCf{6OD*_ckTBeoM*nWMouSaBM79sny>ptb@tR ziQINpL^?Q0KvA>_6kc0T`&ZC>DN7z+`ODmcxZn#wCY~p*=3PcZJ=9kY3Q6>M_+Rai z9MplN90-BtPjJ3ZRU9wlm)u4wlp3i8fx5*0iWIN@i(P4Z(b3sCn~zX5{X>Wt6}ueN zhL)a>UA^{i;zB3ve+kY1gW6Au`~O_&wP`MV|G$JJ>aGi2B1Mjl5MXnIgM*F$AjV^F zAJ`rFUQ_^O40s>x90`;C^DGuk|CekaLMOD@ z*a#Ii4lUNq{PO$Md{V4$EdgwXQPIiL`o4@F9_LDI#!qW#3?+`u=%_+6quAamiv&yY znD?7g*b>W$t2{gix&i*hG}K7NKN1PyflUf_tzuu6y)nVVf9dPyK4xZQ6~cJ+G@a7x zH}8ELtA?S>*2s!PR~v0I`m65#+Dr5xD{90_%NJ<>jP5`~{nal={O!5KjA(gR#geD1 z?~o74eZbaRQ~hMMwGT0QPh@2B1cIA?m*m&YxAhJ4@7YaMCIhZh-SCqAIMg$+Q_uO{<|Q&NUp_x<}` z-UPcD%+8eqg=T<{P+}+?l`s2p+Xa8B&Zz@}DT24mdCIW?a0;WV!i8X<@E((-V+f#n zQHinghOecdA5jHZDWe$p#CrJf90BP08V?ixv28RT$kz&PeC_}XKAti$sdw5pFS4tG~w zr9UVqberS%_HW35E7a8XBdvDue4%GM+*$Eu(AKD}uJ$IO7xipzWxD75xp!)cj-P&C z9h>ALfpbu!Ca@kTkOUJ|hH8K-oNfU=P#CEc%L$&t!4gt2GP(hW0?XZ-P1CH{w~9Jt z4j>^1VbaXrQu&@bnpnFh6TLgLF?|?6A5Y<63*wdV7*T7QB{+Ba)HEQ zsqMKOQ5Eq$rbqZ?u}l*m7a|9#Tu+_O(agJXf=w)wL%pxaL-lZHRY}`Zl*3QUAGTi5 z|2n`!0#E-}I4<6uy+B6g_m;I&!*Q_H>Hp zw2Edd-~%4!uj{SZfGZF$rM&F7SARfY*pwgTgB~soP|Zg4f`As-+2Jx1Dh~CZM&Lap zpci+32b1N<>FFPV=}OeQ(lJL2aNFS6pH1e)n+F<`yl@Uec?p6_I(Fq`AiiJ2Csw*F zzXR!+Bh%zjAkc5J2v9(u2a@>?tbYK^ph^4I_7DWi-}Ha3PWv{1X$kcw0&1d( zHq~qFWiG7;Mv)qKDqj$mt&K@Pbc zg`X-8S6V|txs{>tUgyvniuyK`iT8dyVQt4!~%L55tRsh7&kOS;7%a#FC(t4 zmBdSD03QQ?>rm!Thajt#}j7QGXdOH zd4z91XNA%^O#TuBYa;0p34P_<71M}Ge<)jkYLo^PadUGs%RCeyMXf04H>SKl<@(lC z;?;TpStbZuy$vrfmx$AtIPrZ0rS{qf#k*F2zNwvnlJyED?OWKAgx2q+Fs48hP}fAv z`RAC`MjnpCai`j9883p3sjnd8IcjBf}JA5CrxP4o3UE4?r-hn@Fmf zqy*v;<1`%#`m1ec_QquIzm|eI?EUy1O(>31a?kkP@vo%&eoWGYqQHH_8WU;(#H7+)VSQ^~$HRsDQy2?f1H zxb@E(JwKU+xKp^0ZhyEdui>3OunDVUi(*2o?DZ>C{EEHMz9dW{azJxcnCxG{?-73! zFd13;sct_Kzk;L{TpKcfb2_KfTVeceii8CIdrL_f0MQ~~z>w7j_tVHrO@!C&W9WqY z>(KME&HyDU#N=my#IeT9wb8h+0BSqDL${opfd{uLBV$Vjs^()UuRR7v*;1UtaqcS=h&cOcZ`YD3szu`Xt`^BUo<>t8R-sF=#x3>HPvukR*qe0?7|Azbx+`-r8W z=;oVqg z!>623@#Pil3PFhpF7Mu28!LKxdPviqAKtuoe!Q3IHB^wZGc#|aqA2kGu)G&h8FQZ% zCJd7`%qk&QrKRV zQ6i3Cw@-4%y>_R;9qE5KZ7pe+SLYS#?Yq`L#QLGVo{ zyUay9cT5 zB70``HYexJoA=@v^~7|FU!H;s)2wwAgpTj*xfj`cB3fm!Vxu#wiW%oIjUx897Cwg0 z>Mqk{UMPR)?;mJwk@!=ct3EYs4SA);<-%srmUlZf4rn?C}5clWk4?a+*a2rDk;ghH2AB|srA zRlg;8W#-sNaQ!Oj-e{=>6TogDHa>07%ND~HN;fk#bsrY(sa)xIbV3&`^aipNYynDU zhMyv05~XHmXHQB_el=MpxJ}8O1yL21PVCGNH^-=~(uMw%xhNzh;|>Ka%YXM{c zd#)LSt5>aRHbrh~H)jPU@EbORRTUM+?cJq0Yw*bwYCk`qGlSY~xv3Zdr46p=p==W40WqkmbXg zqosolPd;>OIy%t^dfy5Q3v0e4LMJpzR5(_QCV+nUH(cAboWZTdAA&>-;%%a%X%^+& z_$mw{P=T%vtExJZwJXzKW&0ETNa^-T13B@^5QkGDD3qdU37#q-u2<8`b;{X<)V`ci zmECcY+0GKGqq=(aQ(~+Yg?qJb^yW#m>A@2yqY&M~B-hznyWUF06j-2r6R+#TkJnVX zS<{-QD~3odEZE`v>8|&UmAqZ}$gIF=h!L+tQ54>39Urgha?JFxy@T>LpehXt zTu_99g;hYH(>yULiM~iNi$CC@-jAs483j{;n5^mm-}cFXVkZZ=);1&QCqBK3T01FG zR`BzLbxsTSYju5VC0Vf_4DyPFeRTDL?RxRg#D&h9!V&5r<8DeTm}|UE#dSkixcpC8 z*)6N#_4kYms)LnVw5P3=XZrsxEefK9u8`AP4`B|B@4!Ttln9w?BM7LE=AW$^!HTPR zW$0I3lcPl6kq2*>#VOm7GXFMLn|st03Lt_3Z^>_7B4~u=l1Bw;Bpj)Mk)s!5Z2kDc zil>54Nh$1CMWy4=K3{D0&vkbU*?(&R0w2AIO-N`-W9 zxH*~hyp>vl4Yxw-(ta+S??oWB2dECxROVYw`MjB#4h64-kn}0oM6HVidqflaoY!^p zN3!Y`M7A-T(@pLDLP*#ufp5z1h-#6^YpVPfnk0S=(c9o}ZEIXvRbf&%Y(5p=O*uA> zy?iCcrItyIQ65;4lfxZOm(*+}_AB&iSy>i;&s2QOkGfuXv3nJqSW_%^KImL*7P%``OpoIr;1Gr!4X z*i9rH?}(*L=ekT7+>y!XMV@-6D3uVZ*9uRD5jF~cZimWJRFDKq5d3Q~mzVOLf#&og zu1T^Au>z*O#Ier)KlqEq2!VUIT&T$jOMZ534dNWVAQ9wx_P4nJ9w>T&SG~uO zdcV~2l&M7`9?GPOo#|AC{V`~w%pZi2{b?SmUFL)eINita9=~+cKcDf)tjJ-T681_O z(S5nG9zx#>FGz2~83r`IRxB$UYyV8wl~lrHbbv8QRI-in)&NbtLA<{dPBht8Ptn|&BSQq3V!oP?^dSf-o&!W@Q(-T_$#}AFuFyF_)p#?)8Vs%=+9!uO46EhLg z0RkFKE4{g|Ov-F0A3wvafJm(XSARpuZlq-`U0$=!KsOH>K0tt<9nXtMNr6H3oxi`o zOV5J{g=rMZY2h)7)y`V~V@MY#YDZfm?c2Augirl$rlh*My7xR+??HN4@okOK(EgcM z<#!fe5=t4Qsw{^0bO=R@q#6v0kamjJ<#CwV!TyJFf(fy(@w9>hKGBZeP=L5M`kOV{ z!b_g~#oW$lhWa~$YnqN+gC3#W&b50> zgYkVV0er^8hH^x7UBoBBQd1;MqH(}HAjJvJe(`nJ+uGV5zFHFv?+yO*V55Uh;I!_( z9im;;uN&v44mQ7_iAsOS9|JmBvqtD6t zN&7B`oRN{Lf!0GG5(IzaFW)yoJT$IRp89UVo(Y_j$Dyi(+bK9X?Ku?5Bv1}P@6oitg~UHt zJXcd-V7I`d{rmHBF}0xaH${duWSM#MO6k*hNkV01Qtk4Pso_nEtI6#|%R^P{s5GH1 zR7pI1QO{X8OS+7>nVDZSL!}cqde!E{=b%II{^sO3bcO)xKYmTFtVsu;^)zP1v7h*4 zq`-r)-=YWa#)dE3d0EYY^pr@BS@1%MbzgPU7BF$Kzf@fpfAtLxEh-i1NL4dp8g1B} zZOQt&4lB(=d13F;)mNnaZV#H!bZFBj7r9Eb7^l#!HjM$~v?|BWEr6dz*^E9iEG0Nk zyc7VQVaTSZl9)tv-x3$g1!Xx!)a?t!&Bjroiz_P~p(jU0M%$FTt75MKn!w8>BsHfW z`gwh1uPyUQFi0HaYVYne8Tt4ZUN-0yAEHynb5Yrd1Zn*V1L4=~%88fifAz8Cri;y? z*>8OlB^~q1#<R4%jwxHG2%#5RKIv1=}n_Y)pw#edQr=Zn6h51DtPa!RDV{+&~vmtbD@YQMHvVugs zOS&Qg&HlcK`Ez(M)|6d*qN|Os)3);@yb3iPUk&A4gS9_655HeX)loOh3ggRt>lSAp zc=fqm!||0l5J^h#67KK2&n}`GzxQ8Cy5}(}+Wq{+l;KiL?tkIddO~t`>Ap3hXZ4H; z(79lq4P%r749RBo4wKh@Am)5`MbCt$s68*p7|I~S@P4v(=@O8G`1+;Q+I+6y#xcLk zc_>CrQM<_iPf=V|O9o_1o5|K5jszjwiHF*r=htm*?^<6`f=Po8&d#PM9~9%BiV!Ug zRW)JV)+Vf+D3UNM8AFQFErZ^@@8)WZVL4TUeovvZ6x3;&P0JWCf+Z2~wcVN};KV2omcN2Zp zw}A~XZD3Nk1f2~SevfxhJC~Oif$s(gv!Ow{5Dw+(*)`bRx^3h{_0a!Lk113I97X}F z+x_KKtT1BuZF48h-7n!TYRR9ufl>xe(_nX(goMO-?W)#7(i@eh=*2ox2oCwz_d5)n zWDs;&1;&^|g$dW@6^!%puzmx%*xCJ~zF$TsofEas{q4`;R=@0RPX_S+cPC-1{o=7E8x0mvz1h|}m-#?}`$1Z`?(sa-N@jrK$d#Tj&!wdV)ACxtz zIgw7r_&V7m5GoE;Odpyv5_=M@&u4!Tx;iHAuv3B`5X|_n)zF z&M^xHNy-A7sG4IQ`ocT&pzX-hwK3fhg$Ka6J5doFgdEcziseuYiY)1 zr`kc{f1-yYP>2WY$Vb*y1ADqb#UgA^#9p6Ou{dZDyC6AxRV)hnF z_fs7Qu@zax-Aeto$>=;Pa9a%V{I8$=4+CSy<^M zSLdw9kLW}P))Y|*$@wn*z?xuVKA-wmRL(qee`E`VfV@3|r)K}vtb9gd)MKIM?b#Mm z8k`B0euA5@h{uRVCKuEhEX+k-K|`4yJMD`eyO~3IPpaTI<(>PlCkJH4!c7Nc`C6c8 z(P#F<>c&5Q^ovKE90$I~Ph!M9Ljt_2JAO;3QsYcCo_c6e z6EZU!lj`xzp;z1ES@?+jM@U!My2``4MM>a zMAGgQr2;nqOjR?L8C!jV_hs%Bs|XNqsIK^eQ%{h##1QnW1UpRPZ_&Por2|FsVT|c= z{*)lI*NZND{8vK@@qQZ-yuGY@g{;DnRC52zxEV)3W=7?M1TZ}QjAuURM!P=#TgK)} zrZb~1;LuCO`qt0FCP+ux-H;+>8Fzzl_bD6OE5tbzy_n@a{0YZPlsFIn{}n>Dv}Nv^ zw4j}q1ve;ZWn}&owi48yeBJpnbFlb3JSzLo*H!}B^7W=|9%U#tzYVOZ=ZDUOT_P>E zLg>?$t+suQYb5YKIYI1D^S(PIi`c20rUaImwEm4h-+Rh;99#8Z#Edj5?AF-$I`lu%3QBA74pokNoB3F%uvA zL~n1gLvX-$Ea6>~OcmYnG%}y>rJ+<+XR6h~$G=UCl8*RC9AJ=zM>@D&9?z@ABhK;g zD4RdUhKZJ1>HpzNexZ+^+@dFEVOEJ3-=FgLKA4Ynjpjn2WR;XiLUmk>M?)qR^l&Xz zOns;iI;)al95lNZ=iO?03tE5JDRw=4=xy0o(-4}OhZ9=STgO(gd(D>f|7vz0OOnu} zsM>hz5=JZe8BP+|eGT>00cH#t*`}5AR3Dqiz*3usnnIH2zHayk!{MYWnAq- zarne^Z%=6T&Z<-e>W#bz)ccCG!gCO_HruQ*Q4c*Zw(#=_jBna}pY5>_Bo76c@ZPv! zm|{+>Zif84=ktk4njb40dt1lc+|04rG6WlA11Cq7;sI5~0WRYs11DO0=$n!PVUL3u zE0;)GLTTEeRD+BH)W%Cg2NX->yg6r6Kij zuDv-q?ER@AZ+q`ie%JPI5EAYC=@$jN!cX+rjryRV$00SSQ?#Y4kI-}KzCY6L997t3uNZnEfB_s+nXEHQCWJ(TJfHKM-Fs3xsQvvqgI=pCE>44r%7Ghv zaKscV5My67VT{L?B0y37KD{*z$!Sn(F7axa1}~7eLAvo<4=~)d9Epfw@Z9JM&i@38 zy0pCQ0ACxpT3=z(><7UlA+=7Yfwayn`zVbI}c|MCD*MxhL$@PV<%3^ zlKPvcnK=DEUZ|?;dY6aL>Gb;L{@nDl0Ii-b?VxmYQh%lzt*4_ga zF0j~@Jyfsra^&lUpJEthXi`)V@12sB9({4;LO#Dr{2MjmliM2By4h}F@I3tiAqoLt zk%({FJ(EsI)FhqsO{QW~!V93soM#EDP%$V4S=}>Vwn+Sh6T7Q<9mpfbkNU4OM(F~hADu$hrStV-=6 zBH(zjv0Q}F?X4G+XVTF+ZR?x0=TDEm@B1&0h;i9fZ!ssPl@~c;M4_SGAF{IBoHHTq z%YAIJpu|J+VRg75O_%LVOh@*Q6hcsQvQE@diBbV};(`0Aaj?;kc&wx}J+SO9iCgiK zbUzY2#H?!>KMDzK!>k@prAjyvs5fEKK&dKo*G`-H$Yiu@WXxF_kC(-7v`OLd&nlsO z^M>5pxxu4q3-s+4^NWiD)6;%`^4*koW%8#h*qLS*Z}%&3>5O6?HZsmX{Cy^|h{uSI zpeL-yTiEy9sgwuabQlsh7tfFKUbVJdR)z&fJLa@%cD{X{UasgTn0m`Dy^RY1vU2Lx zMj{cWQYZZL!jeZ@I+C7ltt~I0>t9N9fuPjssVT$aF5?RO-VNRLb=zv})^^gz zahvV!ToG%dybC=? z;CnU(TkN}`oX*x%pL6v`Ot@GOPJ#FS6FL4Vj}}}aP?uSeygJ!F0URx~^Cvm$T23$r zP#wB*_q|Y!{awFQyyE}}+s5;x#;tjTlQaNd8MYT)JDz-3g$G|bIX^@D)wq5pRm4k@ ztUH0%d&v;~^vkhtr`$s6x(5WD*41(->obCQHnvc9+vDL;4)*p_4M*!mRlXIq%ewn0 zU9bvJ_+KEN>)yk5qwH!B-^irlq5K?&3^-lVCxqCMs7sp9hk^^si5JVYoO0u7@Y{|^ z6xaIHRDEPc-R2HOIAmTb0h7DbpCcy5<5&|2@(I8c8NHT#VU@fZ%DN_O@X$Q+gG9&s z9UJkGxz+yMu-hcI`(9_a#`mv@526%P*7x2hj<6n?e=<_aG>FpS(a!hxKVu?KY_VJY zo^#*iHniG!8tcox#CWj|6$%X;2%O=bUsnhq!jqft_sm9Lu$`NFji}48+tiotA}}84 zAci1lX$F18!22z{NvVFAy?o*K`4=?53-pSp@4KP(F;I75*eZNfK3V6^6;#vlJkRZbc$HD|5j(a$I5gQ?J!?)tw%XjkL$F zh807{L*Pg3RXty}35}^vBO}gyMcu0Dbrwr}$r3Kk)9&sY{RXvdq8Y3$&**2dWRIls zSn-wubvM<<{5(CEa7MlmWyzzD^u_UTW@*O`0rBWTNChdH5IQphp-|~?#{k4}YZ^@I zkAqgo4xF+y5I;5zfoJ;mbifb;@cKwmv9Yr=s;VV)0V|(6w?KCu?*_wnr+TE~9eW1e zko3slj_KZ80!1q%JT^eAk521Y^VEYgubxTK!!MapO1jCyLSbN#N**8R==1%X6~R?f zzdAVU*nyk?h$3+sO#p|1#c0S#MpowZ($XVsZO`{4e#(!Y{*FxSToOa`6t26EU8;0l ze+0nrek)GV@OPu~#%Ns%c&KPI2W~PCeN;SeD4V%{W=zuatbjQp{oA*|R|3A-7JGRE zAUFmgtZm)VgNJYZHH)1Y#e{z@%Q;C%?&f3xXFaRRo^ZaFB^S(3 zLoDx~h1W^MaY9^NrF2=hK!OV9v;wvbU~yDrg1Or`9I*b|{ywq%7Yt?fc)WdlsKsA? zad{E|V+-t$;#cd=Tri2-*r32)5i(63+^Kh}vTpVj$bWyCPjpC5Wg)zNSaHE?ru?%e zlaKeca$Ilx{d_}x>X$gx$9RG8-*k?nT_)50-iARKN$DYWqv1ix+MfVq%VcYtj@|Uv zBlPr9YW7B5ejQJ7EqAi$#)<-BD}QJrOEFdw7^u$P#0$|L{iSyKjNsWLA2A^S4_6j= zfvfksD8!{4$V0VVpm5hW`_swOo2hyM8iLjtGrukPEvI{bn4JZi?(FwPc4O-EECIwu z-G{`^%VLifA6{M*Rcl6+ccE;0(6KcvwZ6ZLRr4TSWVUE0iV}U1Z;NDp$p;VFJ9!C!T3pBxH=gs=^>hO z$t@gS3A$UgIX-+15B@qh+h1RAx=kx|E5(a*H}J&I^f&6SQMZWGo%;@K(U1TLI|;$@ zUa%cV(C4?qnHIlOvHeN6vVh}mZ6ZLo&Y62Sg%DA@L%TQTAO^*fg@I@2cPSqmw-d(` z5l7B-ZQ%zQDwpzgs=8dRdDKt~o8L4+d%l+N+A9W1(f4?zjsRLmLO(yLL>^tF+iKcq z{L|_p5b;OBKw^l4>dd+4f0J!DP|xN~QGf(kfHaGhdq}*z7aNrij&soN#}UDZ^jj|i zQso7+CW_;O2-i)z+#=px5Mt@&pneSxBI!}MnM~r5hi!e`ru}B+Bbzecd)rtk4Um5H z`(m@2whGg+qQd8iSM5&rR;@s=TN4HU>(BEU$|Y<05bZb2nP|V~&Ne1dD>I@Gp;CTT zYl}b1^^amPE_IR;BK8xW6}~U#1gFNP(f2Ee{S4}iqPmM97M7e|?IaC({@jaJWM?oS z{(m476tx9K>`$%tbV9PlhMOu2O1OBP)`{ky`uLQ}rL8j_+-3ObzPT z&a9D2-jI??eRFa|a79hx3M>gBS-W(=!|+Ex7%o3WnXqwi9KFT3tW&q+YOyIXWZk^; za~u70uc)m3t8^UL41isN^)>CUEVseHV-!FDa(+XC-G7nSA*wcWb^6_{6%_>>nPbhLT8}r^Y0d3V0GxTZ0>@6@TXyo?2i5z;vQ+Lw$ za;P-FufXiW>_IF$4WfGg$L0=U{^v^cwiF6dUuP@)YRqLy(B{zc^-+5w-Ay_N*Weag zbkI2DF97J|Km-9#{Q0wIhC4OO>a*~I3lXKyxjB$k9MZ$zm{P^ZIJ0s83ZK7V9&NQ! z+lG-_gj}{^=^;Y0h&mpRE6`-Z<#lMjd%W2kp3dBcBd!izqJ6{rM9mD8k9;4&o@T~xvWamoU@R( zNO)KBReF4)ByZ$ETUha5a`BEYL=b0M@$IPst#TKAgGAlVOm-+!gsl?W$W=r*os{Wu zxSso~iSfBPGlS?dPEgbZwyhI@<3$D9OlU3CEJxZ^EqYDrKjr-4t`Gt|$e$mF`zJ{$ zBMuLT&%IS~iljdBk^j?uTfA?Pp~c0W$jyS3pzA>7xM13+R(p@~Xr_E?TMxD2h`C*y z2VEzuwZ@Dfgn;MVPu9UYC>1$RoLF-x5v4gc`uZtdamNhc+N#bqIhu~WJtk>+7G!d< zr6+iR6v|Nn-&Gq8weVwB5VgkYd*w83iM33~?d3JoWRHxDKpCwnRn1KRG}SQ-dG1ut z1zd?SL#w}Ka1A=lxXmM7kO;kRj#OwoKOI6RK@R5`0q~V^;x^|&j|3vbESJuUa-q~8 zqN4g=+|$Op10p_V{_`DvVYdit;w3VdDo6wn%7Pes%Kex7*0XSpI2WAKjKFMM$jTu)S#7rJ<5P~EL!j$DbU~quQRi`+pcnzXW{&75fe~HiAe-uC1 z#BHoFX30i!_?CB4G&5#|y!^vPJ)3wxPMUHRa@zl-5Dtpi?mPmb=y#tf&=F@fk3-j+=zB-EAHg2 z{uw)?gO0yreA7k{PNvWp!vMFk|F)H9moJga-Tjy9Pi=xzr?7*mPQ`+x^dVni04{+h zX9W@MaJZN)(+f+VoWb1Lm_)mq)%tpG-~JF-DAN&f+@Z!R!I)C(8>IO{YHaR7L@9)C z2j37LuLp7pHlH8#`FMWlk*o?ngQ=s0&HTm<$be|%vjvE zhcP!u&%HrZr`+-ZXteOVp7}vZd~wC{2P~LX1g0bW{=h-$YNOx%R!dbA^h*GmW8PvG z{$J1r6r|>iEjKq*GtjB?!fK}v7i*{?mFV$t3!Sasy_I#cLp+JS7Y`Hnp!@APva9I` zNcB~M6hOGAZIEAYHz4!-0K)j+s4VX7+SMaqMuBJEY~)dO-;5Uam>mz_cbcb7d_DF? znh$J2S6*BGJq>hx)<7jlazWCSWxJ+5Xr`~Pua?i)2G1X#P{HMO%>FT9N5)M)?$7-V6F?PHVpxgrqenXR;@y|er`Ik}2ENsGG1 zMeO$X@8Y|?CxAuv=P7d7);hc%Zxwag^=3{G1Oaga++W|X=V#Vwg%iFD_+I#;6RSkT zc=wa=PV)`5oJmrl>zP<3kr`b8dMsz?*g{N1K4`AErfkj%Rj-Id_A*@_&jhI zb?iqKX~Tc2*-0*?v$H=6uNWF(tL~wb^DSE)vH52Y%(L*k26jRJq&E-lySf2YZfItRQIBq%?k(qBO%9rFuYg z@U8F5`|d3eP~_$t_+npqPTspJFE6jomEz=kO(l#OSz6e>L`X<{19UNh@QFF{8YJ`| zzk;9}ggv@_zM#*|ds%~D>}{C)G_RSNRkAkfvsM*`&%Z8C7nlq+c<|cd%A{OPqh4~# zOkYaAPA4t(s$@<4`M-$CQ>Qn5D+}Y)gpgX3@3Pk*ZW^a|A5+pAi5` z^1iN)$;6f}4D^F(hr0|_+}Z|kF#zJl^<0{3YGN$R;UWM~r~uv7DAV)g$&(hy9P#r5 zityKB7?MWV^Ct9I34r%x1_Ky1&!LXw6mtdeLmlxm%!O2%#4OySJ(2$*~n2TmVAyuh$0bLtA$$ z?hwft)|x!UM5;K|-pV)wx}dD&c&1*EzQV8!5Ia5b(Js^#)zF|a?}=)5B*=kRZ5o61P<%X|$@Vb6kyNtHBD10u#&dNkIXrdhU+n&Q9hkdgZ zJG@E?A7kwA|8g*cOiDRk2@+N0!x`{+9ptaBCD2#lSHmL@C*B^Pq!d`z9{gS3Lr%U@ zgpq_*i>+!fKSUyP!zF7!T9}7tCRkjNnyesE*08HWVYiS>9&11M4h|9#%R|}OE(cJn zZUTG-*#h?H961E*;;{?g#3-uPo>2kq8P z1{NfLfdNzP(Xz%Mm%%gRNst!R7}U?z*(gk%CV9p>Hf2*{p+ zGdmrcNqn6pDcOu30{wH=u~0A|Hug?VtVMcswl(wS^b9WfYWRXO&ktWWw8@%j|B3%K zB^kpMC+lt~aJuI0sX&ByL(q<%GY(ym-qx&0frlBF`>1^r`4S;bx4J~*EdGy2JL&KeH>8w{- z(F3!fi!%RraOH3}&D78evqBFR0@|C{Z<15ep1u!eTvgx1 z=FMMGU`yMquW{2JVr9?fb!kC^kP6%ZK&L@A1N1RTdgsDlWI3aChts(?fZ z5R?HMO^TENK@sUhq!a1^DFzaOkzS-mLJ2hiLg2jHqvx!3*Sdf1pZn)zEmlZ&%Fh1E z+n(onld$xYz`5IAjd+sPj$cYfn8p%J($}z5P~^8_cY1&l($yH1bWuZ{yC*=%6a@(A zqz6pvJ|$O0Bn{h`EcC5EUx-KGqk;$JH1yq^n`6GS#GCO6x$g$&T0cpBv!1IQ)T}92 z8Ijbg=EUN#HwIa+%9$N(*nt}WYyfnOTl-HyNfywO?h+eSKd1D(3N04U+<7It0m13^ zOh#KkKwy3D^A;do*;*F4x2S^y6T}*beM%t8=hI}jKt!y?rfWRT0APZN9VlrTsUWAzdq?j1^o}2r(_7*Wl zq1pxj(d&-(&b@grAidwSWrITRuHd!Qz-+1RE`2b%2rday%>ULV9RXP*t(CRofL?8W z;#Ni3Fet&N8??$;=k-)>Yy%%9$AUVY60|U$C4ch4XVf~Y1v)T|_Y{8jM!s+2cZ5OG zhb!Geyg7G=H|yJlD-PR0@C!+N0b~~i##mBJ>?P=QjnL`Oi;GpDm~sJb$$40lt|IOT9SM?|5TWrvn88zB zmTmw*utz~V=p&<}=h#I#+ll5+01e4?0vs2xfshJ0X~R5SKcHOxH_95COk{xNa=w7| zoasvX9KI70Q(f=X;y;Jq0IoxDe*P&)sU!Sc^CkY4<35Yw~``t zEg4_G`rq7dt6b+?^mS~kDX&EJO|fh7!>*tgFFc;j%TeTPJGlRZl#6d-Ld0`W(*^-* ziBOshIJ5xm9v#hSS0-EgFbTj-x0_>Z_}%p2OZ{Tpwew z?#g?T0^S^y&+}l(OMF1d?&Bp^akzS?_tzhUEUk$lKjLuMLZ2OgMqcYAh{*YLw2d7{ z>+5fV41NHTV+InT!owauh=;Pr0D~77hqL{MMB3Y5cYejZ8=y-(_5x^f$JA+|v-uKHkUPzs$8x&b*G>GnL%xIsJ=((p{O$UE>cT~X@ z8Gu_VkL}(anL}KdpNFvPx9UO0WA?wL2}*Zf^v_EP+D!;=#ENpDXDRa@>~GhKr@vN& zfsuHk0p(Y#f;WIXHX$0iyrV3O016*eL_RHA0My9{<@wy%=_O`{D=8|=i%W2@bbCZ)uA=jhw+83Ac{3Ew;TX;Z6Gc`?b+`l!tAYZl2UdK9ftsL z&%S*h0FnW%VJv8$*)AQ|0SSE$_Wc6@(*n$#l$coF-!_2W7X7km?cpQ`mk%!n0Tq}Q zP4V}Qedbrp|IRTHGBOIgR6M<>JLz8-q%%;K1Z+c|vZJ`Ax)%zx0iFVhJzHSuO1U$) zoLrGbFk-BbZ-+KYKzIV2jziDe*7IzupQi4u3)DzPP58l?@wS(SDNh`Dz1b_~J z@v|WC2xkSH$5bQgOb3roREHqwbpXFvr1@IGUr7T3lQlP5UX#5`~YH-Z{(-Gt4F?}Rt{Biq#a?BRiv|mL# z1qQfHS?4a9?xoYR{^0ynRz`V7V+92jF_dCiJ zSq!7c%4QT$$1g!hR7JIX8k0sVbo~WpXJK`B)3bubU_JhIQ#+iDWoSx@cx_N$UGgK2 zjv@LckQh75EKGGlABK1RiY}miz{dXrIY?~;{ofGy{vSi^9&H)PSN%e5&u%g^k<|3* zQ$48qKq<=sCaVAHjRO4w{OwOZIV`mGN^6OR3mS!w&rd_!dxm zz8ENMV|!P2RSk5ILCoUwhw~ng!9Y2*rHesZpN!amAAM(D>SndsqTZ$1zX$&i(0L;> z8ue`?`{Lo7!RV$A1t}v!J#6s37ekVPzly+LK@y+qJ)A25!uW&~o|5Xr#1s|(;>O9; zoCtm~LxSS^maS%4?`<@!Zxs4piorhgZp%iCqr4cJ{@u5vS-#d;e$3g~8#gwzlxzR= zaCe6_Db2FU=F2tJ2EI{SrtM!!%P}y%HL+Jfh0gLG&+#9ZH2P91FKTsVMZvXM2abfm z&;S_-q<}z`&rx<{oPJ^Ql`I1PgG3m3C>~JAgFq6A7)i=Gvx|#$0Q6(JTm!Ne%$xF{ zi>8-=9WVh>ngBSDzS3EApI2B!1g)bhIir6#z1;MbpCKA;+mNdXUQ}7RK;EU24o(7a zbyWs8nxRf;3|<2`&}M(X{^9KFNSICpp)^!sn8r`=*uXft1CR%LG9YGJc7#TA$`64} z2Do&RCj8ui2xjKaGw)NU@}X~6#w@dU5`gfJGtE;B$lFeQt;=XfDLU>9ts=;S;N?`8 z#l2dk;~xm*PtK-QOpp^m#VXlX8XT~WYV{Fn_B|;ezkVcQ2`<=B{|y8T;9$y zf{2L7c2N6I0wf@oc$;S56@@k`_WjKj zYyuQEAdT>qK73Z!F>`t~d+NE%qOE#jcw*!~G_O&Ma zX#r|3J){*vKmTJQYXMH3R4|h#K`jnnx+yW?`R3>LH140%z3Pe6K2&o{i}>;5z2j-g z$tXbI0nrD<{c02cXL`BvDy9i;tgFA%;YgWblDBx(@K~@IN8FI08 zV71^nYOQ$PZU>E1ApE{MCD0GCsEtCLbCA=kVj$Xf=Q+uvfXM=>_NjsVsy;f=nUere z5qhC97~KF8NeG1RR&A&OSC3_V>YxIC0X7Repq7B66$yb)kU=Yig+ntlRHV4-hzNu;R1Tj>_^Lb>;Q&cT`gy$m&7=Hocu@F2#_ph za=FEi{&H}yaj~Dka7P^-Jv*gdl&3GVEBi*6L|)3Rn5VbSTs|zwy+e1G z(m|r}x#zDl_i)RRrUtb2m9q~!2XhblXr0o?cf%&p64Y?MG+(N;5r}JEbuPN2we~Hg zkM+4EN>QdM*TpNhqBgUIqVev-2ZbseJ?^r(dD^{^rM7z;{L-?rmSgc3Dpl1PMoCvm zoIf|X&=E{*A=wOvRb)-hvP4%MDr$@3W>URf;x8K)L`KabfX03dFcFV`87MT7EaVl=>$EbS4zU!N;$Lv4T4#1m^KK?SJf!av? zqO#5f56}2+_lG;wpEougM(+1qL0_t3qy;d3A=tx1f1JagCMG5eF7lg@qs!h8w(Lj# z`9&YK1@8Pe?M5M=l3cyz4BVlPp5Q`G?EiZBeMGc~u!`+%Nqy`|T#}ZSgj3Y*$sL&H zFy&sU9F>7-{8drp(`V(c42k$J2;ve>@pyicKh&kcs_^k0my3^7BT#gzVu*Uhel8wE z$%iaTMkC#BKUx@XF_I;H#{J^! zs5OV7DdAQOEjUS0#=fXZq1F%|fi2UFLH=H+8B(ONRtaKmS_!TkFKU|JzHIl$;$?>- zPf;uG1~#nIN{v_ivO40_oXjc&eJlxj$i!IE!dc+4|&zDFxanp*$ z*jJUdZC9Te6dN0}J)k(+tOnp;R)2oaQErHW( zr07aNWZ0IKzwGd5@HYibI!AcP3S1v*^1WyseTc<~)}}s?;Bgt0wUyX=K^)UO%BQG<7%-klZs}ZVippqrZ*H<5?V7P%U}mK(eDlSm zx>fPCcvda~HdFE$}_l>$_d4Zv_SoBNnkMt9>U#Z$)&WP+R-Z=YGFDT%M3;L~tgx zQlwp$MUj{5a~=#IlbYyB^{5XfgtH_oHp22maSGa#K35JZJI7|pF`_Gr2V$2x*j5LX zu1Y;Q^!G_3=gt^rpP8wt?YG%oY7-@gke%aBhjWVX#tT9xJ5XT1s%o!G{(XM!(PTyE zt`j*$j&U=Vq|uiRS}&f42oYn*-bsWPa?_C{wr1?s9S2A2Y)GA0A7osvh(yVdjLj}3 zalfERqBAqI<{L`}$BU_~=9@WT=)qR=@j5TTv66mjmS)u(&z#Ghmx=BXX4eY!@rhT{ zHvFYL2Gs0FfMBTd0^r`p-^Li6-Vx7!nKsTtYX`UVCqx(x}MSi{U$ zaxE;CJ60s(*gia*d6l-UZha^rd|bAen2#G7Z*knvo=Veh@_!WIj%GM1j6S;vG70l5 zH<5F_QD{cvuij_i7hY^R7wWc@+#KVz;V8QG4D?4 zdeKt+w{LQZ^Ig@yXXNHmQo=M}R`g6K87R9ZWoBjy_m9*$cXLb|6kD*J^2` zN^hOHS$M}m#q|E-2Xh-=oMh3Ltjv-^*_cLasY+v-+f@3^LK>`6yVc-0==VW=+hju5 zR7TD(TaLb^dc*O)!?=%vruZOd3d^Z9Z#{y+2)%4)RsKfvEGeP{{xRq+v#`%MivOCZ z8SxpvTDr|XndKw$AqQd}1rQ8j#YP-yw{LFdX}2FOIn@7w+2bUIwtBd9xmVrt0b9nzMW=-CcI9geHLZvEZkSg z>O8l1?_M<+5JQ5Ko4&2BEpxEgH{y1{68>#@wv0`^fet(ubo!Kxe3%F!kXO*Q=CP5P z`hY8`peYA45UJ*&)jTR~;xQNymg~7=%$CsKRD7dGYQpDRO`H~?-pluaDdsG|an5gG%z0j>XW{cM14doS-%kG@yfuG~= zR(p^z*qSvmEiEgp$6~XZ@u%wLF*PO9RN6NzMlZ53eteDNwwfk6iL5rG2eKCr`RVBD z=|vtH8ylPOZ3--1?NqUUB03!>M&+mW7xzcy6!rb)(kmJ(5v^Bww_J!gok*wCr^;Ad z6MkzMh1zY#mKDPci7Btkw8c_peS*(;sRfQBSxPIyD=f#o?zW?8x;MVmrdnYOS|-wj z3Gwmq2_Ak#PezZ#wc;KHG^mF!oN{Q)f9Uu3i|#ic$GfvEdxiT-udOn%vjlGeWQ@Mz z|4z2!t|~f-o9kQjp?9qfO*gc^X;QxP!K@wD)=ImA%S@eT&)o8wdzEz>EJ-(?8svRv zI5{U!>-}9#)UhvjaLxGkhSY+$GQF+^9$wwqzC}(QU#cpm>fj9j??UX~4kN1J?PQ?BD5BeMm4-tb)R*&C1l E31WSg)c^nh literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f6af4d31c060853499051235ad1ff1013a245067 GIT binary patch literal 67482 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-valid-with-readonly-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d41a1fd7170a8d62211e28c6c1f01f1fdd295eed GIT binary patch literal 68069 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�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℞(+7U{byM!Nk6Z~)TtvPTse6< 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 V>BF^0*O9fYD6e)q@7BE+{{sU-jvD{~ literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2eb2109c99db431abd8f7a8d11bdc83c238605 GIT binary patch literal 71727 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≷j0do>S-jen$*njz%`>jh&y}i2EjNo6Bf8XT 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 Iis-)jUpz#R{{R30 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-disabled-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfa3cc65756d0155d0e7a3b5e289dcaa958a47e GIT binary patch literal 70923 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%0ACUCF;SFO7Sh?d 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-readonly-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/form-fields/form-fields.e2e.ts-snapshots/form-fields-state-warning-with-readonly-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c270264039a6d554b6c53866d316b074d4c7704e GIT binary patch literal 71418 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�s%GqbDkHAb*i5{S69drKw2Mj8r9e;$F|c0 zAZR`R6*kuB&!uu$@6as^lcR0Qpz)cWoD2*N754XO=;&54h>VGO3;uPBd~Ys$$|7Oo z_!=J{->bROi-sZm8sQR+!XOT~By#bCbP@$8r1LJ6?Yani}aADn5_Ei}0#B_*}X za_?uGPJSI7t;#&x#Em;mKYOxW0_+doY2&04VCRCP5^U>Bfg6@6?e+5I^?(z<<~dJK z_?TLQ?}RKpuhGw$y3|w_ueH1u^egW7l>r}3;i`6$&k>r?SqhxY{#$Rz?R%+|L6a3cd=3wbN2xqFfcMRp) z-!REWuuRqCU8(6!P``i8y*_{6T@6=mS|v%gIVXHV0eti3@DHig4j9UyZ_iSM*!)+e zwQRBr*)IPqY{hIZO9j4OL$_4;OC{_t*uIZAhyir$%mQXj+<90b15LwhkQ1+NWNdu* z_)y{k^Y$5IEMKl-e3##P@5|_%b`%~Aw(-}owMI@q3=dCztj(BB^qG6F_WwSnh_D=M zy|GL)@fL+*=`bj7`u_dqk47>I!rl3x@mKW*)BTyLx+R)v93A>X3&nPR5>poHtVgk+ zF^a(mq$}qlAFy~bmZV(nK5Kn)f&3hZV@@Mzxvq|(1&)27*$<9=8U`}?r4VJEn;Wsq z@zHbNBeodt2J~K@B?^Y!@`Z0`V;EoM`?5`ocmXd9c4T)q`~8JyM+sAjjc6hdvin_T zcJs#QMl_%Ky90)Rjx0x$tXk zXhjrx#&A39qc`{bIotP}R$6-}1g~7EcEUxiT#`~!Q90L#7NqB!e+Z@7`!kI{gK2C? zn#RPFf2VOrT@dC2+AXpulQzsL*8!UCQM%eZ7yGC=`qkl0Enlv2fyd;TH(op9Si69P z;(8~N4Y7%b{Jp((!_oIIfJ8FD|E)qNpbtD%Iug_fVc=FBs<*l}Ru|jd64w6DmKpcD z%-*5n)^!?V>@>i@UcDi}LN-Mh6v?5KK_g0F)LGkTyYDrMtU98U_>v3lNYlk&+gM z?vPID4k_to$l+Tf`g@+|+wZ&gK8|l6-#+%{4|Nb`?zrx2t#z(*ou`(r?zℜ^HF1 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 ?dihKOp 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 u?u_W4dE0+gj`jbK_}`q={!h5!`$Uw{ Stencil Component Starter -

+
diff --git a/packages/core/src/tests/input/disabled/index.html b/packages/core/src/tests/input/disabled/index.html index 9525ed88a14..7f61a35daea 100644 --- a/packages/core/src/tests/input/disabled/index.html +++ b/packages/core/src/tests/input/disabled/index.html @@ -14,14 +14,14 @@ /> Stencil Component Starter -
+
{ regressionTest('basic', async ({ page }) => { await page.goto('input/basic'); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('hover', async ({ page }) => { @@ -22,7 +22,7 @@ regressionTest.describe('input', () => { await input.hover(); await page.waitForTimeout(1000); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('focus', async ({ page }) => { @@ -31,7 +31,7 @@ regressionTest.describe('input', () => { await input.focus(); await page.waitForTimeout(1000); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('with value', async ({ page }) => { @@ -40,30 +40,46 @@ regressionTest.describe('input', () => { await input.fill('Example content'); await page.waitForTimeout(1000); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('readonly', async ({ page }) => { await page.goto('input/readonly'); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('readonly and hover', async ({ page }) => { await page.goto('input/readonly'); const input = await page.waitForSelector('input'); await input.hover(); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('disabled', async ({ page }) => { await page.goto('input/disabled'); - await expect(page).toHaveScreenshot(); + await expect(page.locator('.inputs')).toHaveScreenshot(); }); regressionTest('disabled and hover', async ({ page }) => { await page.goto('input/disabled'); const input = await page.waitForSelector('input'); await input.hover(); + await expect(page.locator('.inputs')).toHaveScreenshot(); + }); + + regressionTest('with slots', async ({ page }) => { + await page.goto('input/with-slots'); + const button = await page.waitForSelector('ix-button'); + await button.click(); + await expect(page).toHaveScreenshot(); + }); + + regressionTest('tooltip below input', async ({ page }) => { + await page.goto('input/tooltip'); + + await page.locator('ix-input').hover(); + + await expect(page.locator('ix-tooltip')).toBeVisible(); await expect(page).toHaveScreenshot(); }); }); diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-basic-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-basic-1-chromium---theme-classic-dark-linux.png index 45d924693d7d798114ee18490d9d635de70919c1..ee870f37ef09e6efee61ba26bddb635e65f92d7c 100644 GIT binary patch literal 4653 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 XN^e{^>1W;x&e-#`&#CGYVYmJTtL|#9 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-basic-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-basic-1-chromium---theme-classic-light-linux.png index cdcaeb211de8936050791c440ad89799270fe82d..81fc904bc322f07d11fbee2e3cdd50d763381db7 100644 GIT binary patch literal 4650 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 literal 9277 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 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-1-chromium---theme-classic-dark-linux.png index 5920dac4470065f45a804c86a45461aa65e65018..0a5d937e1e39c851bee1c7bf2774b2c0ee50108f 100644 GIT binary patch literal 4306 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 d-@lwMksb{Hl@z0BmX<+~W literal 8567 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 PoWL(bPuG1B``zCG62asL diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-1-chromium---theme-classic-light-linux.png index 0ddab1c6b891714c7ea48b752939f4a601c07f65..c3449340bb9a9ffe329404cb26a3a1c837e1bb00 100644 GIT binary patch literal 4351 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 Aw*UYD diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-and-hover-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-and-hover-1-chromium---theme-classic-dark-linux.png index 5920dac4470065f45a804c86a45461aa65e65018..0a5d937e1e39c851bee1c7bf2774b2c0ee50108f 100644 GIT binary patch literal 4306 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 d-@lwMksb{Hl@z0BmX<+~W literal 8567 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 PoWL(bPuG1B``zCG62asL diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-and-hover-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-disabled-and-hover-1-chromium---theme-classic-light-linux.png index 0ddab1c6b891714c7ea48b752939f4a601c07f65..c3449340bb9a9ffe329404cb26a3a1c837e1bb00 100644 GIT binary patch literal 4351 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 Aw*UYD diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-focus-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-focus-1-chromium---theme-classic-dark-linux.png index 3084fa2e7c3ab70b25fbfe4ea9894c0e6babd069..5eb91c906453e4a840706454eb49f8d8fa158bef 100644 GIT binary patch literal 4920 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 F{{_TweW?Hd literal 9297 zcmeI2dt6f4+Q)Hha+=AUPN(snHJZ+hc||4fote@YFVxiJHL)y-P$^MSQL$;t)0A3T z-jQk4Z1S2YW(YVnUJ*!14HdCM$rSMlA_yd~ zKaMAs%bcVk#Un@S*2ncH@+Wx>KO@=aLeSdMO7+IOkeKcOz-B z3CS@9`3?q91E}egTqA0^$S{eo+OMwpynluPVwQ7#8At1Ul&iT&!F(i`;^!9}oa5yK z-?RzvM*fx=**^nKPR_xZKtpoMn;elyKZ6>o#*uY^i;6eL!K_SD*n&GHo z3JB;(IBHqJ!}C&o)+#(fO0(@>oBCs$|h@cy5WVy_;-y>_eDjn zRjegLM&D`y6|Zbbzg#c3b``dgSc$)8tj|nHb@XD!(rPEiBS&=4cX*t}K(Lvu#kx@v z1KiB2ZqQ@JHN~l^hTpO;>>%?KVmmU8i{-mQmn`6@`<=jJ2jRDEHU{OMna%WM{4gTc zn^QjczDg@zS#7$ldsOCW*wE#K=?Fuj(Iz>d{m&yb)pw+OYK8nA6i^dJs9+FZyivkR zSMQEW7!>=|w^`hTh4QV2gQY+(2vUWM$yyaw`28_#mz;m`yV+LZP|F*B+HL6TPT}tm zx*aD>*3(EP3s@8}b8o=O+$I8ni)ucJd2*2y%Xs1%+dI9D?aW`P+?OXXG;+n-`4`K3jSNO=AbYZTk|BJ6%8r4sFn?pk>m5zGJP`T{`=&l3(-LvxHS zKD*?+(pFe#8xxx6`SA1nu=wa%+#3iqXGd1?oviJq{dT7h-V@FJl%gOBqhe=)skA+Q zHBP&2c6QcCIjkAW9l$IU)}@#Z@e(oqY10>x4hGI*BCQxfOtsbxQ#=h_LVJE|+MU72 ze4A$lzr|rIzx9Y`CFw(A;*<-_P6-@!+}qpS&xiAulrI2Yhqv1?jJ^GyIwQ$h1%Y`ip-oP%ifcHd+Cg5 z?3iPClwtqyaFIT4CJ)1+?IdoTGRnQxkbIJryA+N`g%MdIwfXs&XaO(d{C_WC2Bd%T26`_c;F^kX>fbAax021x^33|kGiDzn4p#G zZjS}nsi~=Mp48)}7Jl)9gpU;~7l+hwQv8|14dzKYe*^<8yY##Dhq6H`!DI;J(dO~T z*)<-r=RHbMZEdX?6gSeAUFdcyC3qxwahaWZzKwPq}3AFKL^BoQlyE+!DHZ*pksgOP{G<3g5 zp;Y2=nD@g4e8*g?V3c-sWo_5@jPX_BMjD$D&%3g8@9hSxCa}VZ`W3Sm}d?57{^%LFf8^ed-(EoM&kM^skc*yi>u33 z#H*Eynqd)6^&R}H)uOjOx1l@0DJxD%aoysDF1&U3HMEPlsjG|q=@lpEDXY%O)XEZv zH}i1`36bg>r}XUHGQCV8Duu)d^ZXPyrl-7-+$eaa3D2c_EB;+^D={lzk9_7Xh2@6bdXbBpg0`*T`w3Cfms9Xqy zlS$(c9ic0q9{22ZP@?c;61&?%05(wtddzb%_PDW3pnnRc7C)a%9#lxA*%J!1%BM7h zyzh>*+OJFI}&f7RoJ&aRrFUY^w&EjnXLUE~pr09dsAJ3~x zvSlE;R^z?S^ASdzpRd?(u<%5OtZ|fx~=O8g#0;ktV60uSk(+C*{ry$ zC>GGybbJcntL^&Ila8UPnu(W(kVdf=9-~_vr>168zj(xbrULBYsQwvwABW(8>rd|b z4e8PPMP?sZf~tKyt~FKYvR1L{bD);(!QfqCw{MxG;D+yI7Z(J;G2eIi6)k+1y#=u9 zeGaq6xnXY*ZjyiXrb95b@>6+=RY`eYmkDugd8_U7`iC}4^Pa%0G&!hNDBNC4NupmQ zD;aH2M-4xU=_8eKTsn-?0bfTBNqag;n9iO?Y66ok9Ax8NkVt57aITjRpRit|?L-CF zx5%9e-_*|`s8Tx$kv=(%WOJ)%sz!aqUg$UP0Rl=Y97Ai&28qq-W1tu3M49-S)a|y~ zjLSgIZW}D;O3V6qQmnWrU5yG4FL|f$JfJp!UYvJGrYlUXrf^#msjeWRPFiZV(kVEs z;o|xuvhgy7!umri7bj$(f~6~Tq0SA*_gK;&bq|lE#}Ai=tO1UGw$-@sX#)RjGD|)) zWwUGxd>4MbDO!0mOqDpSVkYETL|@=f4E3r}0nM9nl)Q)+?mMYGsH~5Zje9@ZGJ ze%+DPovNdpgwY0%WNQN+ltx=!K;{4z0H|Q}FI0G{(>+=oqyGmgpbY;#Dx?W6w}|qw zh}A~p22nXw->KR?9}b3K$1rG*)l1lk_o#4swpFf1g^YYe|H?(@c_zBIF@R=YV`bH{ zSc=1Re?Jr%jX+3-qw`BH%v6uYju<;n-hUd)lIccvN8sP6sw3do#4L}QpB;*sGbCY* z^XpH9k%2heSVC_f7t>7d>e_C)FjwXiJAXFd4EHAs%rm8YB2%3zVR)Hg5Gf(r#cM0O z5HG(Kny?(7B_A+@KdanCoKTCxVzYl#Kh7Pl~dpbh*nT;$-(3<1US(LNLTb0Ma^X>s8$mg=5s;eR+ME*^`Jp2V`&u74)1 z#?YI%EdV~Y9pU~0TDceGJ<-Z8@fdIN!{JnR*tJ#VKKT5Z9KoeS*TE0UOv}8pj4sp! z`0@4}GxzJw7WOiRSu8iw`S{vGi0A*}!qW@{3zk;26ISDk#Y)XP2M33XG{f9Yheqc( zZcPhQaS8DVNvljBoP0cC40*nY8A+3tRmILJ!QhB&UW1B;6UseH-QTq6sG-$zvX=p_ zIx+FEg0V2JPStDV+*~s)Y9t?sFd#2+IGkLH7`I!!Dqhae#bay2x*(Dh#450$k{IN8 z|NZb@{NkOCk6o-W4As2A>pVdWZE3($s;VrZ{bL?;5$3Rxn}dUcDQneuy?XR$K_69! z#Uj+aqcy|7`7pw(l1g>2q^Ss+62B5#k08b2JZt>t7@=yPNn+=!k&-N(huoO==OVO@p`y<7xApr>Zk8abW=$hse{2hDPIe$ez#BG@NtWu^=$d;uA^_mlRMlc; zL7U3d=l0#&{^SkAhyw46z)%8H= zxQnzks!weHe5U|ITnTicJYHz~C1a6b66*A3eqZZiZL3hQW1)~PKj(3AFn^sHJfZ@X zlb6MQAt+RuT;3V0Y*sn4Yl4bjBaH71R1ukK=0BV>8aMsK=n>z;d9v#p%)}^htKLZ7 z%D|e=#81u;fuPx_*sjd`tZWBtvcF0wxZ9o`wN&C6{~mWTIkfpYrVVkiy*xUwe>l%U zo%qV6>%bXhT*RaWVEcJ@;%b;kymUT4M*9E|Rpazh&_}?DdUFaCM+*M@vS}IZSPTV2 z%L>c;P4`OwLAZ98d?rhRFQoZgN8? zHiTkBC^m#*Lnk+sa6<_W>AdsdC_%FbpzZ2NduKzmi8do((XxXcW z4Z5tT5zp`R0)cL9Szo<+JJNx#ZOz}knebhIyVO?jZW~~yvHn|8#0Q@Obvicf28xXv d{{tpx-#o7=Rr$5^SHKg49`Zj}`*rva{{uuda*6-| diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-focus-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-focus-1-chromium---theme-classic-light-linux.png index c94e62300d0c96dccfcd40cd948e5ab39d9bc008..2374840b515bd9737dacecd6eeb92bb381d68e11 100644 GIT binary patch literal 4898 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 JJskD>e*)<>cT4~P diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-hover-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-hover-1-chromium---theme-classic-dark-linux.png index 64b5e88c90d934cda1e1f8930f7ba225ff8ec28c..283b1b4ee59b7f412aec85fc64ffd9bd2c592e08 100644 GIT binary patch literal 4671 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 LlgosQ4tM?y)6Dxt literal 9301 zcmeI2`Ck*)`o}}9QbnO&Z&j3~Dq>p&WKoO|qP2o~p`_MU#IPx{Ln zP}vD8C|dR{0U-%3m9T{fVGEE1WC<~lNJ4;+Wxg5gz4w>?0pHi_@wjj=Y_X7m7Uit)|J?k}BC{kpR&>An zaH0Ogmap{h>%E-mYkPTi%lps%b?D~jw?0h`+p=l$%--?wBI1-M;PuT=CiSqd9hulD5`Zp}WipqYWs~s2Q<0r-Ndwo+EpfN4u8x!y7vWUPqsr!IaD`_J>?qj5GVbss zB+CqkRUx*kW*1LNDlXT>o?)<#zkAe`52Rmt5MmoRo4>fYcx7Y4e@rSpbi(@I_j|ln z-AfV!f1*vhF!Xv`cJ$~T6f!$+>%L)}Vz!}SLhLiOk0=+9%p#LXv#iK(;6JINevd_Bfh=Cu#tFt0Pj|-@icdYn zD)UG;gT5O}l)g?32)G&;m;tZao9P{i5yyQPM5Jv?DR`WGzOdK&`j0O#z;A?EwtzM> zs-tzKZ~bP`t^^ni236JRPFI%*CNKD?u9r8?Pv=PoCfGrC5gK~D1ItP2Y1y=_Y?y%) zA33KPPz8O5P_(^)d9pVI>8Om&fgU9)rYAOZA9+!@Fa5x|HV*-*fZ-kH&zlutySPid z0)^i8=`I}Y*CMN0>ebv=iqZA_HesL|w;h;HB`n8D&hBf!H4@62=*$!(xtQdbLB(5K zrc?LRJ2BCt(4dgrT9@Y-;>9GK)v~h_PBU1oKIoI0xX8ChR09vGHllx>lFmuIGg34y zoQA92a>ZC9lKCrQTe=yS3*-0=dPVS`y@4v5DlidZFoF(y9z6)5p$E=G0d}B%ET*65 z^dZ|p(qPr;UV1idlpYk``cT|9WL>D6A1pvSTzg-HP>kn^YRDxAS*4frgUjjGwo6(~NT3geucP)qev7Mg5 zim8BC;^MiSV|zSQVHuXhy*L3sZwaVK$8q`xr|xOKhyF8oFly>maX}1^k5S8V9MM;! z@@eem{$E6n>aO2z&dIU)yuQ)QvP;&J;b5dSKQJ6P0#VxCy-{Ar<$BbuaPr~@pu0!u z^1gPVFmAp?Gcee1x`(Cd9VAgMj_I8v9kUJ|i1HVGy*vKde5;+$HE%C3Zo_0pur2X- zr2R@ZiNw1(caCWc&gY%Z%5t50Xoe+zZ=r*;|F?qrn@i;DSXNe#v6Ya3gw=e*f>F#X zMx$~CR5n zY;fl*tiv96@90w*Dos@v$sS%z`uUG$Op_=DgX5}z_>63&I3E_p-EU!Gk?n-Jn>XJB z)bunTGx|8tr$eQvgh1o)paA3WnI}sUd{{V*Fn&7MQIqitoVBqgxg)f3_ScFy(K~|d zooj?NH-#DKG(V^vVz-(e{}q2l{QQ&&>kkKU7v2qOU9d9bBAZ7R%+RtQ7eW?TgMXKkQh)Jf37CEAIX{iO*6Qxy)HgVDA8_mb^b{pr~gC z4~7l|btj+(=ucm`ae(X9ZcHaA1|VRDf@nk=6TtHOEXZeI`ODu|FOA4F*Uiy(>2@n7 zhMU0?Lr&(zC1JTy+KgBOUoKN}bBpHra3`>7Y=7*P2@!ih`u3TfevDUaXu}cVoUrlh zdd^z_Z1;8TodtSE((Ul<*fvowA?W-rzrb0(r#wmWJenc2TKXIua>A8fZ3hoE%_Hoi zRNN2Vam=5Dd5-calWkxhhtFQL#5+<_3bM%VrYm}{H&vDW|O);e60TCpH)2kj!usC0nZHG^HM)F%uq-h{S!^5UJD6jRa-a|c; zmupbKUOEjj6g2mMSf<{3cuQyE>f+5P;sAv`Y#^GSlc3hAth$Lx_+s^nLszv<)ud)D za5s!9n+`$-*V8p9;%*D8kz=cV$Xo@5@dQ$Tc70|B{Tr`y*{q`}hxJSHVnYJ?Y)T|s3c zUV2TK*+lv%CLDauv1WCUpRux?Poh9D6p!w~mlDjulr7Z^S zqq(7m0#+=}aG6`{>a)q?1$=?JqE#jFLwx`Z6usB4xz13%ppZTsn6Ht*2ua z8w3&KZ!#yJNqk5kDk%Sr3eO2rnU9-bxk}M#Z|V?MZe8eL6Z7tNo?KBeS@pb=wB%JI zV6wPNut%$~z#?UuLFelWW%n^JCUHAFv)F*J#zU3sA{}3%*(RCkg*L)ctWYF-lbADU zll6n9sV*jJuTbS1uf$gJo-&KF>?(m6x^zoVmMx=^=6n?QjcNfJB2B%-Ias3)H{)w~ z{)(9c0My;n!OD~{IAZJH`==Qq8i`yS!eow8g2KCU~?jW><0P_ z6TMM&6a&I^w+}aS>fl9lgxII{nBVc^Hc<;RCk4YXj5#gU7OBFzn@Z>2ci5I(6y(In zY;k-lTMGtehDRcQbqwhwzw!Dt-UiQ8J>2bJ z-Z)$9m%|L8$r4MXuh#|qmlue~@c-t8?99N6WgUL5nNv647zAp8*$kl{&x~)FB9F-0 z()h&`ihVQ}Pc&JUpMv_*<2EGw)C6EcFIOH$!fURd`It4vD?KO>U}hR+U%z2&g;G{d zc>n6=oLDS2L*SKT71=iEtCvwI+2b1E%3E4@xSujvB5c2ZpkP-m@l*UN}Y0*7S`=Q0&y!I1>7-BS+N^$ z@+YE5^giWLV8N1HQ1-?0w;+1v)Om4YJBs!cI3RMYY^uu3#hwxUd0jpq*h%p(iYd{) z_zQpCvrTC*BsBSX=f!IaFVAPcg@%q%%Z5j618y)}kMl3EN;`0@vi5@%?n;aVne!G} zN$spPu9kQ=3iJReHXG_!akhZm;<{Uegc0ouSQ$x~(c$#|3kyUF<* zk&)Vf>;~7Ob75-k4viz2QOViIp=A~p(1j=23MJd=Q7S6w3?7AYgU#RejNztKPc9ML zW@GH9`Y2TN*ioLGL2d}u2w66`R&Nl4dwYA+gzTs`LsP|D=XDcdT^|$g)tXQpQskdc zv$elO9v$2Bj-dF1$e*0298$%&WkvoNl}p3X7Uv$wm=e#lbmXz41&U=Cc0V^?xdZkq zHcnE#Cna#)IC>gZoR@`Eb6uqKHSmH}X4tw>Sf9RwL%I+{}ly)tm# zgSx^wR6n<9)_#s+*>zGW$@NQdv~%xP_dKb>B>V7|e9Ny0#xCoDN0~%AP zgy7X(Dg=;!dICH{n{rlnx_|tAwG`u9qTO{Pb}`M8X!O-|W^sl%fvT93uWt^pRpVDE z_;fq(J38Rj7h-h|w=UlbjcS;kZ@S(%C!0yzk0>mbyci2O1+3;33q%dzf<^X@eYjkyH*Q|uYRA3tKq`uJ4HT4(jOh~Foxk6Kzk r{Sq{KxbXy7?A(?B7Hfw8pPh4QfK?rm*nfWYT_NJM+jr&P`ri6K@2qZ{ diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-hover-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-hover-1-chromium---theme-classic-light-linux.png index 0cc36f89be729bbb87a9fddbaef80caa3358abda..50013a7f5c2d79c896eed16188fefe35ecc927aa 100644 GIT binary patch literal 4689 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 aj%*##ryzW;-*8LXF&A{xPzR^w@c3WYU_G_~ literal 9300 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 literal 11617 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 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-readonly-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-readonly-1-chromium---theme-classic-light-linux.png index 7975932140acd362775df03ffe050c77c9e9972e..0538349558e0e653d9fff4209d067871e23d2cd6 100644 GIT binary patch literal 7377 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 PAAR!NSM)Ex`TlF3vB~$ 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 literal 11617 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 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-readonly-and-hover-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-readonly-and-hover-1-chromium---theme-classic-light-linux.png index 7975932140acd362775df03ffe050c77c9e9972e..0538349558e0e653d9fff4209d067871e23d2cd6 100644 GIT binary patch literal 7377 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 PAAR!NSM)Ex`TlWm{cXLcki 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-tooltip-below-input-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-tooltip-below-input-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5076b004df046bcd3941ff4ac84b97f1b179bc4e GIT binary patch literal 10448 zcmeHtX;@NQxc@fG^pu*ZX^tH&^JrOS4mnXL%`($tgPJ2rY0jcKr3lqIg%dVemKmj4 znIV#6YC?%pPGm-yikRd)5IKN=aQF5+|Np(ubHCkh_qly>?X}lCto5$<_YNB~{&IIw z{7vgO000z^9CkVm0BgX{pv9C12uGWo$YD<$9m zT;Vt`=#=-T-`5!{Y{gujwkXoLzHRvGmO9K97xw-`3!VM zgT{_Xz7O1gW^bsw|KbD(F?Fw?Ce;}7GsM%Xo={0mGFN+WLn^lpb=$RMEOBq-K{;p7 z_4XRhDs!{1ce#@VH|wVGO`k_^$bc-_g>3=3X4$XpW;T?>?Q0te^;(^UK6@$`?d(Y% zC``oO>awY19b5%cYM#i$V&lBMFC-*nV4is4WqisQMb8;UzJ!_-rxoqQjVj#?hI&Ar z>+Od6qLU_y_FHZVJIHaKPRGQuAcfTiSqnfrROUC#+2i;nZ?;)@wPoO1aN+%njVkm` zVQQj61#tM#!e&f0)|e44p@AF3D88GN`SI0d*%ovCNa@MUzRGVN-y!H*smYdjsGT|Z zmsGllRsvr{8oMn(S};`K-!ScW&9Y<@(~k_GnJk3E3L4>R)oOtCeJe}JQb!M>Yh8`j z6pz~W43Aq!U*cUC>DP@7<|lPl7ymqME&l0kE|rK}Mtnedz{dQ!?;&<9mU`$Pphn*7T**s zob#qCaBYonjzhoZWC|!;G%-U@AMDoYYz>)q{yg zlZFQ>yKqTdz7U%n(mGVS9la0N$H&+tGaWd$XpOt{3Z=15PX5WD!a`A#*~9e7(o1Ac zl&I0j492}Ipqg{DU;}XxX%hku>K}O9Fo&i;Aw!J&Po=3|FL(6@c`tyx`eae3&D75z z>X-f)4Yu6^`{6z~(?Ue78!8g?@yXgSAtR5pkl5b>Lyg8 zCZ5S5buRW3YNSLQ%xv*1w;Czv=He=e^?MBr-0eonc$9!78o4k&Q9OS&h?bSa-sw0u zsO&`W%DTc%cZ#g;v_dYT(@hNwnxs;RLt@`Z3zFieltIL&Ty!gRbZCm5WOAMm3tyE7 zL2d!K$s0DU`|*}*WAHSx%G1ed+BS)p{5-5?@PJFxPOJO2maZkob;LMB4u38>bL8k< z0{eWy{K8^u3Cs?LbDV89kLa2nf4FDc;2bZv^(IX(tACWGR&x9gck#~;$hXS$j0m$g z_GWh6%QoM#f;1WCkk0+v%d+QlDnsacy|c5kxWT+KuYU5#x*(ehhxo-&PbcclmMj+` z^2)`u?&0x(Y7@uhLFJdEn786VPItkN3G!0ndpJ{?8bm}yrM(6)Y)Jcm=52UJe=p@lgJ@sE0P zk`;c$O6<`R%Hm}gy^Q0fY8KXPd!r-|T+^vHWy`bgT=aCiLnG_IzRb6c@&zFjQ1+&2 z=$ngNO-w=33IF&H=a7@RU74o48jaJ@J)MTa9ne|xv8_9RKtZt-*OF_7eR!^&Lwkl- zX&|RXyA_x_1pX+}XnD0ApDmhAGwSPX812hPvzKMLQx8As9@X>HIf_pxH5?RmtOnq9P)3SC{CmGUwnmeHGI?eCmrlQ_d6~wr?vq-6% z5g^ajyj^!BJJWs8m>X2cZazClW-k;0IuI@03cZJ4_>te znr}4%YEBcpoCqQ6R?r-A5Qr@H^>p&^@R)x&t|9}ST~l=xyx?=D!Nog#Cqis6iiDIMC%Jz55t)?KYe8k$l+y9-nxjLI4&TxHtLP9kNelK7?_cv>q59=vD zsf9-pj+Ls)L9!{>5(P}5B(zFPI@xNsYLhdmi{zmLRej@WsW9oG`$yX|1&wH)U`0>;;?ngLcywZ@sxy~;>& zj2GivqNCjj_rJALozIRb!~gxX7!lr7f=vOy~~U zg?~Te@jBL1!WZsw$&R9pAQ`61;>;>I=jWg>vD!CB5?=ZK7VN7@`Uy9JgO7wEmYF0Wx<#=T$!rd0;NNPj87GgR(t_*F%!2IL%Qs z8c3*_+l$v2g9?d978lL}I*|%toZ_zal&+8VqL_;KQ*3C7BABcL>T1rP-2@Ny?VpCJ zY=G$B*qQ+~@AmX`4X1%q;6gd>Hw>XeQbylvAzKl@_hGIu4qmwe7~6v`YbcNR(sx^M zURK(yoVTzH+}mHg=jLV#ZiSC|{_B$lAt9PUx~hPmLVELZ^fSRkibgBHOZd%}TQGjL z{!Du;c^ybX=`F2F1*VGj?Iw6Q31|6qT)#Ayc3lKp{H9Dz>~A_xrNzuoO{J^uVyDud zpETi3de5pZFE1O~y2r%C45UqQgYmCZ3H*G?51JjK^0WnFt}}$dC*7wzgF(O~?~AAo z+Q~~YZat=%wf^khkX+pq!DHn3ffy_n+aFCfEEkVhBHtltO4I1UIjhrLIyTv;uQ2s3 z9YJ&m+?3}^4XF&l34Hi4!C(IT0&SOVKw$a^14&6IZq5UIto`NHR@}Zd$VHA)|7~__ zgX8b9oSaZ6YBm;|Z;rSKmY%&Yf4}O$qu%26%$a42^plNE^2&P`o&9KjVA$-)H+L{F zn0?Kc)D4Yk(B3&`A%yc2q^YAx8CTfJ@Z0Tl!i!lhHGE{bfVMMs0Bs33JFJNAVA>kDDxmM*(iPnRZ3lRSn;XJHasm2JD+ zVH{p9m>+A>+@3COCQZzN{t}Rk9N^Jlt(ngr;-YHO4>ZnUYg;?+6|^o`cVr#iMK*C1 zec%)~G}t}7D4Y;nBTA0yB)&g@Y;G*zTw1H2ZP6w1oEF{;7)I+Se8-Y$*tc|N#I&je zvU}e%M7d0FCa*r)-&2h@(?icL)s9lbOQ$n<8622aJD9o9((j=vDx?b&uWV)-LaFWi zK?{k5D=`{Oo%b~7j{0#XgMw=NkRViaq&JigIZ^MDV?SwG@ax+GNEg1oN*?}D!Yh@= z`=@<-;?aVaHf}K^|D3dJt(wExQ6H~;V_wr2mnE3=mY9up4BB@!3~7+y-`?4Lt5a_A zc9-}^HgsC?@a&~PFc3p7mTwsm;=edeN=JTB=e^U2R8MV+tQCxtxVe9TSv2U4sBlVG zdR4e`xbgM6D!{dZ38r|?hb<#`yflaSR^*HvFJNn)c5W5P!ykRtJfYpS-`w-eBR8z)sbZs5>Re}$mm2T; zt)qw!H@62bPIr2x(nkwAGgGYDue$II7E8BB+cA{0*&=x2)w$-Tn6Ix!y4h^~XQ;8% zE7|BH(-q4#<`JVEHgGA5lNu`V2HoQ=Y2qn8XpC1~#E3t)c{iw^BADt0dY|74$pk~? zLGG0PMfP7Ws{6uWwOVbHOnLEl1zL-jU$psm?#|Oco!lPU@7v_C*lU{`g~~{WTxo`> zaunm&T}Qp}^2*T5d-U9g4fQbQ+PMyrWbmp9yqf`m_TzO%$6ipuJMOLwcAn?+X{Lcq-u@R`PLX22 z6@dv2Ig?;bg-NHZgGbu(x|vLkG4Xehxgb#AFY2{(Bagyt*$3NaEfk5?wpI&BG|t2` z?{YqWn*d7E7s|_Tc{nb8PgD*z?zGN6pAIQ_^5GU!6tA~5SBxAB;8P_;RDzQe6u!=g zqBvjJtW9G<7mjo^EZymi?vLU`UDMqN_JU8{CUAtBd{yrN)UgNX?iS=2i%(4_rX(~@ zs>c_fG-=W2Hkx`7CUaOxs4%wzTgzGWkH>GtqD@oi~;qb>R>0|xDUpnsbKr-yP_S9i)vvLkt)BBNQ%b*LOy&7ppJkzbo%`^3GE%BD@ z(M$h+qZh$veVGzXO-<#vmTVk}OBn*QhMe94w+h+NwebvSD-7wBi7kBc3q0v+)PqxA zYR;d-tD%Yn%=UVw-sRb)Jx^=TbrgT&*RoY$LVP?}wxY{f2T$+vAdF{#QNzjGn@K4) zUwud(14;vC_MEx9Qm_Hd5vjm5Mgd!OV@?@d*j>}tw7PDIQ*akxqN4*>4S*1XJhx)LG3pX49hd@JzP1sC-uM!X=a(d~29>Acv?YqpiQd>|C`{^V+K#0ak-&i)uXT2tqna&8qz(j zOvYs=_Mf9KR9O2w2!F5*l>R`b&WyJUp%b~Fg~{o^ z(pm4{-$8y`G#!hFxG237SfKaCXbDAy)c1)k%q9!DiV3pUM`zy3V-B+ApO{N5$%AcU zAStjr-PRT;j|zdKjNqss2V2W7K|~sX_c|qY_o|`$G8K|JIMW}L4m+??eWGmlfYh5~ z5uYQJ&;bDfvX#ITOj&(-k6hD&<;kjuK&1gqsaA8)TmrzX5o>@7Fud*?GO@-7|Dgz3 zn1Wgm!Soy%SHQpLueZ_9r(~?ij-QdxM$Y4L3Ydeeh1#X7dY$C{I&=j>u|}L!fe+gW ze8I167-aX|*`Uln4bf)jfV7>y3YS$#zB>MXC$%P%?VmC7nc*9BCVN*1@HjTL&R<=J z$$=54=K65ZS9?lt!3GPUfDm;EZdxgov-@)O1!G&o)T^zU;3B508)*R;`WApb;4mP0 zi`zF48ZGY|V8m)mG$r@9g|0M!^`OZPy-Z#0-@gcl)&9J9uX^LK@4Yp>lZj>c6{j7) zzxyag`|hMwj0-jVD4LnD`N!4sTV*Pis=Z`?hfXuoLxR*agwf8k$BVC!ah{ds%)>gf z)m|Y&h07}x-Q6;~ixwVPfBM1vhL+T6=6uCW3ALal4%o}UsUL4dZ|#m*C4L=MYi7N6 z^Q^-#gv0%*$FP7VX))IN6RIjCN+srr2x8IH2eI%ahq0cluxOc`c|)%LM#lySB##`7 z{DJKA4quK@U<5?9)&dpkDllDpewT%_&MTo-p%o3S?vvaFP@g;Q26mBFu0KQFjEh#3 zjg^5NMDe)_&27Ko^j5+UJlItgSZi_feD&{62hE|t1aH1!3*i2?feNAhMk9&PJ8(mG z|G#C1O!{9s=wH)c*7)TcASS@CNx!i03k$!n@V^xcz~P)i0FY0I{ukgEmVagWUq#Lq z&A$L5%31FfsKK+|l6{m`JPih+jRMk~Jw y!QEE;iINXM{T#;p-(OD=tDxro7vukVqC&H*03CSu^uv>PI)VsII#A+;h)8XYYM0^rezC1}YIM2n52Am63b}0wDo^!vA=H z415jw%&7ria89qJ#X&`bBwHZRQ;@9W^Vja_yK`$M{*Y-h>E8iK-XGLwUqR0(|2bm8`Tuh#gmBl_ z*AHfzv+(sj+0~IXo4omPno^?~eZv1fW;_B^s9o7*z_!{8dQ!X(FybYlPIgr zG)jE~3M~^DwjPb=t0vW)^QH3IDS`KdpQ%SE^TPsN6 z=w?FOS_4qni6Z+`xx?jf8IPc=5I%l^;cV$MXP@TjVo?f;o&62&u={3QTctFFoku-W ztwZ12v)w)4VI42hZ0}Me_E-+3RXE>f6cQ3XH(po3#>Tdoslvczcx?cQrO~N%42*w* z2Il^%ye5~B%xV5eSAVltl~mB-`~Yj-=S;W%ky#i%V^mfac^(y|MvXm%c9ks!0|P^G zvG%=TSM^(+HzyCVB8hovTNbkPb8p%@LKh4wwJwhOSPx+^v*nKBl!Ma=Cf&ODb!M%X z^{zJKMcUFPCe-zA`?-egL5Rr6MqH`xYisIkM3E<3Gr{snELdb@N?7D}WIiVBXI$@Zw@t6ihP2k7@&{AdNybFc2C?H{#>FcRf`xF_6mr1^CJG%8G-7gW>tr z{z$Rkoerw{{VydQ+a4H{Pc78oJp+m9c#{N!N#LGN#VW}3c#4aU8<$Vn+p{@wuQPxG zQE`_8mZ(amtWTg<4Bb(rd9rb|6;=}>HXv=w4I~}3+3Ij?touVSuDswXFu~`xw+p4hxqom> zy_ut{3%SGP3H|nXelWP0RZmZ^KTR;H(d*3dy5pf-0>g`!(TxvkJVt2eJ6>m zO6PtY$r}~`91|VgQtM<+uX%(8U+`unMp~}SdFz!@hQN!lZ)4B2M!`le!jCqB zFwzBZGbbkg&ZeVcgJ-L%qlpvG@BKbRW{+*%1@w2i#d^I4J-Kfur2GHnlm0J^D6i@r z*vRHZJV?WPnqN7u(zphFU+s9;xE007`(m&7yQ9i)7g{wmFPh^^UX#ajpuI*UK=-FO zrD`u6#EB6!t3RwCkP^%1sPHbc3Hlu1s7hUJ%8LKTXUSa6Fzv_((@{~f2_vLhqP46a z$LJWB!|{}8g+35X*MFptTUcf?4@*$>gBa0w+H(*}@v7zvmRD$VAU zYUyL^%hJOCSQ(Su3+{)B95Yuk*N6;t^&HnqkKU*}q^=Nn_}MD;{lkr5@E==ESlNu8p!(C_5FuS^O3|PX#3FLm_CN!B3}g|5R|eCSIkpR#HUf#($Ura ziQ7ky>s3J1r+o$`_(YP_NdzFqN!#99rZfiL7mmu0?oCBursQRMzVK7LJ@SmwaevA> zhk0#4DU%+!NLtD1AA3@K*^>P0G8f6H{w;HXK+V3>VSM+|}aB;Ay<= z%aoAbx9Gpxf~u_4x(A<0Q40!i+4bWG=;wJK=N${gTdOGb+*BBEkS*h2gPv{fDZ$~J zv*^^NcdLZ{cI{ceYG%+aZe8%)RU7DlRV|_yx3|<$S7v(S@bIAkyLnXXJOghaZiG!u3m2UnA2MLJ z;%Tijy-`$z^i{W!C{S3Kod82JUAVhQ_^MQcX|z}sEpDo#t56Vhz_R-yF6dOV7N-0@ zO(bgABF8u_@xva*iu-xKm*ev}fyyt^8?H}I57$ShjumcgSe(?pBN<%87i*MUD%S~3 zy{Dp69yXt(i+{G>CvDdxSIB_No}$R4Ss$~s(nKRd5rc<8zSe#RGyHinCA9Df_qIu- zU!x-ZbjJ12bwBCg?3jjY_wkMBdHia8#Ebp})n>DE!lnrt{#`7$zk>6!m)KPo`YGRtqb9u*b7lbgV{3;$n$t=xm;iaxepBSKePaT_`dxjw+!y z3F&D|^Rw{8;=#C`KT#9H=yr-OhH&71BV9{I+}E~NpiyRoft0TMRW+LkR1e$BlUZsz zzj)FL8ZFX`EI|ma^@I`?OxS@8ZewxJzMoI5hXyr_oYBmaac6!jtUDMRYUYI9yn9`& z@yLJG1Z}9=4pPFtZ~*)2K!AbldwVURlu<9%m{&JkBF}p5je30e(HE3Mowv9H4NS9w z(>im{5NQ|rw1B4T-sHn5aORg}rhE0WS?#If&P1b)HC{m=zF?){=4L3@=4@Q4sNzPj zO1r&_1KeU-Oh8JL0b#;>!I8R+ozd^FVv3;Jb5#rRqwrEYUEtx`yLv8C z<|#-x`XY~0#~WcHP5J<10~ zMya&KeNIaJj6C!( z$)%qbrwB_th23FKBfYCimbZMGzhD_D|N=D$3tVEFy_Z2YYig(Bq{a67{N7= z^z&=6QtLCCivT$HDn+)Hyz8#1@FZCo1)~$pk!P!WQjIMPZ=tq>p?O+7G`o|s>xCM@ zotA4okP(H9`VTBNS~-=Xo(%6vuO5L)tnQxA>Y}mPWZrnWY}^JUM@Y#%Iqg%6&|Lda zU%<$d7WuV69S92_f=F|<3e5SPg@m+k=KC5FP-aq&H$o%Jhvb^wFF2HxqTV9e{+TtU z^-%0ZZ3ic(P7AJ|wZ>h#!n&w6kBN!9^ErVe=Vunt*tZhPIpnhHx$X>l&3^D2h4xQU zLDx(4TVIj4`^p)@e%U^UpZSspNVEk-CG>q?pd#2a^F&RayMwS}cjZ4(W!nm=Gw|~h z($NK5ce-89MwY5F;ZbHA9h|Z#04Dq@t4bhx&3xH7nR2S_#$mN(sg%i|ROk!GqSsVf zDlY!Y=#oG+*1@q~FCy0O{0XeB6B0^ANA)vG7aYFPw$^;ex}D~_o5inEtz|lBt(96- zT#nEBrLl>?RALly$jQS@Q*@3ibRs$5=8ZiH7*<1h6baZM~-=m<&?E#Y<+wW_i< zA1vdR)UVGh^xZd|?+suU5n+c`c3L8}m~bG-dOV5wy|DEJY!spTCq6-wm4)={HZb+^ zNCmuuA7s(^t~NWX6B-s;n?|wUGte0lpO$%%5S=V}Qn~ZmW{hU!xEJxiq6tF9>YAO#~i@;5xZYKeaI zbiu?6;aiTB6fve0X&$CMccvai1F)g}O2Ip`J_b4_HO68v$-oDFv!Bi_Hsyk(V|+u zIDc$x+*FwlU1foK`!L0s+1!V$MzO%3G$W*p+HF|}oaUT%e(NM;d$v!G50wPfTBcIk z$O0W{nqJ-VCN2pG@-IWTS}*!y2>dBC$#kN^%(|8nPTbw7n^`ov{HBo*fF(TQSdsJG zHgot{Y=XR>K7|Mcg|1Q!u6=8_=F@1p0hd<$s5?`_+ z5P3E%+!5n)hjML-d23G2aJ9ILl#R9{M9lNjoZ5IL7LE?eHJFnlczqR826A<72>&EX zvHEjw;Mf>wgPMyaRTwKvHWm$XT_eSagtSon-`m>0X3|g0_~i8~B*mx~z2q!m0O5uE zjK|cc5u3%)ORrqIdttpC<(*3!HZTBIaG|+x^xO ze%G<$Vr9gWasWH|XtWiZF5(5}ABVN^;2Yrs|MG0AA#-D=#}{X81n7iEtwS?t#B9cg za(X*3Cf|9z8a_ex^RYdhChX2!T`vx()!JM~psfWpOY z0D3q4%ylr}-Sni3Lm#mAUv`WHtmF+Hw6z$L2*jMSwBH2z_1#wEx11Lh+* zXx-p%K%3$;K6FHeZOgrkw7e$8ZSULnk@Oa)ly0XY;P9lp+3NJpI zs#d+QFwn=l<0GS!mUe}T$|S)B$jT`}DvEo)T6jJpgOuDhx|eSp>x9;JH6&Q2u(_BO zb!5I#x~{V4rwO}aw_46~uc>!hI$F49bAn^!nM~?v=Jlj(zdZYV#R=sjbco6_V_pq> zq`WQ{5$mRuDG-@uhc#VcEhP?g1e`_9!$Y=0dOh>ze2a6mSUs(ZIj!6Pg8E%cfa$k` z-%$ot(<+ol-d=OE3BHG*Bgfr%Xr&05EA7qp=Ie7BFCCFUcNs6@2NEw$;p9W39{iSfkP%XC~3xz(TPp9n}Tqz<;t-1 zK4LuQi_6G7fY8%>5TyJz8SpXNpFROMYo%RnTW@2?T%0ms20(hgGp-}PDP0x%xpToG zjQ|?I*&%;B&nN|QTUC zGZnHEt>4}h@IA(p0w5rI)m(I-Z<9?vf}LTwD_8q|1{;GJ-*xMws%&O*1&dvw)7K{} zVC(sYlz}v!!-0;_c!oC&&|`MvE_=X0wsUpE&HAD|cJuv-%-R?Ges|#k0SN628;e3|@@ii*!u|9qJ#H8PpUX9!sX!QSMIXIBQ7D4BI+liTkoof z-`#~l{L6L#DtBRUj$%DkmS8he#kpDdoFMYTHul>;quAqPib%j?O#t9yR5YD!y$J;t zFPq_@GnL9#@jwcH9e51q{`u`l#mX1?q+It>qmJ(Ga>q`&*tl5Gv&C2brN-Tkuzo@q zbS^xr7&9yClB>{NEmwiC>F(BRd(11oQ$Df8Z9ycJ>up<(Y@EHLBfQK`fpK@#XpwGO z^X+B0IMUqKNIfqOtwKw)B&go?HZU)bjy&o-+Nd+k)FY<25hfrp?**n55&5oD`hGRX z#1ppLnp|pJE|lkYciX_T$Q>ISdttmzZoN<%pvJ6ybUdW$U~k`Z)KF^N^`qHO6t%9t z+~~rQMXyeBN3AgVaK;&cviY27->)&MfuiHn`zzj#oLia05*f|UZpVwsJ2qLHK5CR2 zF=;hKo60A>s&zDNx^d+IkYdnB&GKAtZeJl>#y2Lg@0uTif_{FH-*6uCzFu$#%$L1n zj4@Sfg^z_b1#Xs#BvQx_NRYxHcHI2&T&-A7QA`XZ5sYrQ`0?FaD9~m&0s-e|A|fv| znthq~Y>Q5|hvOcR3YhH7-_I_Y^?tI<%nHjnB7XoKE-@R>A|WBssIu0q3o17sSX#?$ zw3sZxdi3ZKH67i^R~0G{@DK?ARmCfy14(7STkA{YT-%^0h?G(*(vdCw{NnBCSF91g zt4IJS1!B!)xjAN*_cgnck`mwF^STkQcZ0=j?0={kkkA3WNV>xnJq@8N8S_o zd@c+mYl?O0;!qct1sax=AvzKH2m3H%U1OV{h zG#@ls=EZ@Yy&bS*cvBQVu6}om07@3R&~Ccg^8&38q)D%IMdrWG#|D6L1>$0N2fyhG zkJ#qBTVj8JbTA2N2EruaGAWnEW2LAlCasDPH&t_XWE2!m+g**i=Ftp#RbSfeUR)+M zG*A+&?&mv@myT3GC=hRc);Jggw@-q4QQt@JEyBKdmdJpq+h;A2X*>wg>FNE`E;~QD zg?uib%((5g%nc-Xy6nLJ_&U4-V$xs}mFO-|FNSZitaLnRc@Am_e*$N4d9vla`QzPE zdvM-BZg^A}a?3+Vw;7u8VXZe>u3&($Mq9%7(E%kG8}o49*;n0meg4uBak zDxaDxF+>1O6zS(Z4?rIMuE{yFOx^;qztULgj$CWU6wT4Chke&;OwIDUF8I&O)X4P_hDSqxRzBg8jVl>?`?e zayQ-y=M6&iAm{yJ-Nsay0RL1I^{MA>p2jp#5c?{KOJ)pMaLQ~ouxD%L+G+hJfnhxeUMFFJ3H5{sN{Dlii$Q{gZ%^n108P+ zEPMh2vGJEW_2Pl3ON)ywr<0QvR!y1;&RjPr=q)3C;R2Obs-j;- zNCjP11B-O0NQruX`Z2`>5hF2y#mTm!?)K|G->DGvGXvhoD&^OzuCEM`O+=&ls^GlL z?T&1)NH4Kn0|Z~+J7ydf&MM`!yb5vN$P)D9@$tixk20u5^I_vPdi(Z-A3aNkPG6`16Y=%-hoY>YfNC z_N{Fs7#3^_6lh0C^%cybNQA|`E#DP8Y@gQF)Rb6n zy}CtzNKv9?5ag7utFt*?2sHIj|8tR!;n=q~5!V(b)0KG4iH9C;AivwU`bGdRXbOLQ z19$bPcR|Za3yrwX7ThR`zl=>PuuEi9$g^G3Foy034Hv zB3(D1!uv?#Xtn;8QC*|nmbsN#i_LLWhRpBU;TK8dY0Z?GnMs(qI+!XPj$h~cMJjT8 z7ZYs-2(SD^Kg`MIwgzH<9lL>q? zFVTu&(Du8Vg>J65KR@&)Fsv*swF1Q1NZ4y$`4DiPOTjoIvRby~m{?mIY)Pdj4#hJ~(uMIl{}n*o_5P~KauqHJ{ri%j<=7b{q$wxR z>hF4$VVdP;bLCb=FFy&fHl9#|g<%9ccRJwgsdr}iFM1LR)Zh=G)e9W1{RHzwCwRDw zuRF%Z5)xZmC11Qa934?!D7))lUTE-e3UbYs_Ji1Q`mW?FWjxzm>l`bXu)vz7bh(z@ zN@Tw$HUT~i9vD#Sor&UZYo3vV(jX@N(pb^k68szzQj(Dj`;#7(!30 zU+Y)X%@w_RlMr)i^&)_8n6LI=^1Iy%y(v)p;=J|K%}J5a`{op}D}uB;fzfXySCLo; zwdSCYb;KQ7IZ>w5G+Vt;(4QihRA$=uqtOc!NQJwKe$1Wh&81~aN15>hWm3a{+k&68 zoSYDO>X&;h00*gnb4#8K79NvM3-HjSDvzENPV*FwHFKkt<*#qb&4SFA<_dva=IC@n z-`JIHjuz^XJd*e&_b<{Z;$%4Mv@)$d8CR4p+M0&QvjD5c8M-LA_zLkQkp; zufgm53cr;aN3wF4GJaDA7@`e)8VT>-aTy+%*a^~ngB;r0(-10*j(i)Ff? zlcS^M;g0|nynKFhmZFe(t!vvwbMM-eXJS!Fp!<;u>1l6Io`AbgdjKX=<=<<>|Egg8 zKXt;HR74^J?P_&*zgl%+qP&wEj!Bv%EQ`fKf#nJo%|5AZF6({q+afW+8MUq}28pbi z9VrJm25g|9Q80S7fU@LXGPG--hZycl?~fx$6=B$;Ud5Q%#73Qnl+v5qU>K|VX04|O z>HA;ZmT5AA9l)0Q^X=JETP+aL^E;8TAly8}1_%WSAqR0OgGZ{iVY4VxJ%1lbSfgUV zmfB+QI_5cb^^~=hy!7+8r4Tn96hW050@rtfw)Y{`d_|5j?pnJvE%c{ zy80=x!|bRCFr!|MvG>eqDKV1Rt7dd$uTRe<9Yf(t-a~WK`^xfv6QfV>OJbw-3iY5n zW@fHgcUH=?%mJzCSM$58DZoW;t6cXNy-HR3n_K--t0af3Dcz(3%+J6Mn&@cZa~m;mqS)HuD&7lU~B55eMUDf_o-K4d&=u46@igIX?sk%8*%HTH-t6Zty}W(`#S##_wGXq(g06c2wg~4B ztldxS9oE~v^m&ksA=qvpyKi_{{3M&tN}d@0?Z7?4jx+F!`k%Ze8(GmocSfCGbv}_W zP6X!okdbHEOCzKy&|1DJmOI~i@Exy@^z`tf7eQD&AYugSuEdrSwDP3sQP>MI<8hBwS4HH zmQjFz%1)1!HqdoCSyM5jtBdxs-jf^E%hQOBD1^@|O4kc!T&nR^KM#+#JTy|<4Ya5` z8BU9_Q|<`OLge)!$sU&J=3#y~N8ELIpnA6YzRtx`9y|zrw!JctU%ruYJ)^V!T?4J< zh+e`Z zIPnTWztGR`nLMEk%!0}@7cFYf+n zzDXyU-t4ZtS1KfwocHYGH%jqe}-A)C}X$BSQ)eSAP0c>S-Wq9f$X>iFae;=Cz3v@RiJAMShHPWhuYEk=Zse6CNI;etvsa3-GvnHnjHbEUY-bFcOe(rfr`SR2ys7rbTz7P>64P z^g+k2f!R)!?%QsG%D0`cA9Lx#ZtoW9h@7?+5MQ9;cg+o8luvc+H5y8$3t~8=q8->(=mcWR?gh|nF~~TU;mjbC}X<92tPnVdUq;C-Cbq& z7YvEtH6-B7@wZ36BDWMZUeUj*Ve=Jv!3F{_e5&0R!y>)RBF%8XpP*b%37 zS}t`e*$@bLQep_4nd~Z$To{hB>FDZ!&dpX0a#=N`zAO$_>|F?O7rf4~x>Bo#^3qiL z57!+UJMZ1GC}!>`W_(MyxQ#PxxELlNa`8ynOx`)!o?TM1D-h}k!q|L~VVSTwdd9r% z?EbEViZ1!+;sM|c?;`kBJ}0w^MtNpstuy5~+M8$k89x&itj=@VF#`cL@`1@pcXG9n zu%iBEpB23sjk`J9LcKTABU=e)I-kYeZh;}&y6)AETV^o$a$$<#_lh1{@c#+d|Ko(~p3qt}QTxS6 z$pOB5k*K?SYuSR~7|E6S2wltW{-@_??kmR6wBWli-r2x3cNDH$Zar@B4h8`w$qRy? z1A2VU&SllL?s#hb@2hk_S?XGhb^12=qHT&&8tXVrKz(#-5gUWsj*DB1BH2E>txq`I zFq~MS2#!mnZG3XFuBgU8(GtQ)u$q|>nZciKPCjP;y%JGR%(*^1D6FZiHR2-L znq^-p%47i;?#RfM(UkIdrY+@2%QqU8wg|PgGG9&DMH7RqW!-isw>ZzQE^-=0U0~Od zu+H#h10E-9=ry{}1ui{$OXVb=(aH*(j7-_kbVx+qp-%qls!4h}Ng3|KmJ@H6QmIBr zL|E%YJsZH6XVWSgULRC%o*9{s+s#3~e<|SipuH-m`G1K2RbepRZZ6i1tis>-zJU&* zkemwa-l1iBKcZBcoEi0kC$m9~%&cHtIAuk8cnE9Dls0ttC~5rc$2~2wV%ulw&NS(3 z>rCyjz-!ij5+{g@+o|8m{~{xOvk(#L_Y7wd%p4cH zmVw7Ukb6=+W5Qu1?_>K@xg4*|;xvoP?>kv*?d9qP+R#GSp7+MKQ?Y$n*MmtRl# zXlrr*_Yu-$C!)KvXj9>SAd!5|(&D^Z67SEXADGI95|5vuzkB}UQgl)6K^x|b`Q?i{ z8+})=@(^P&OSm7Mr&5Qkf?-MT9mjS#j|7m!Q+i>`#(88Z)tJh2KXQyBiMxB>RNnat zgcIKIlS=$axaM@3;hJ29@ua0uP;2<|NIBCKwoq*o7~-ku`BRu@++G2B7YV7O-MHfU z6x!=&x*T(*Wi;0hMV)w#VdjHNOM6o6ASlLfm;AMLz1z0S+HVRZ+XMZN{DfcJygZoW2JP|{?HHYTlr0?Y< zJ`YpincfE%v=;W$jc>)G3L4S31s5Z{m(DEFxg9Hf*k$e&2N8O| zMooI2Huo2)wIhJscSf}pKkZ!`$z+Bpdts6rpS89}c$c#R%P{?>mOpr5yE_MrywIr& znZ|kU@>TN-ywamb4b!KDv8t~oE1WP*$sZaV?`F9-*eU`79biCSGwH^Tn6rZHIhIMD zb0fgnyE?C4SX)1$ydy&nppXzb_wX`A07eR8HJ8~55bOBnbjZ!q8GY)X0c=e<*JnVp z2~VF@8M$E+$(&9aXfuaRzl@&GQi@Kfa6$UH@=RiX8doX@&F&Bm^O+3jMS~E(4-6jA z{?uZVO5CKv27#hS}oj}SUEU4k+~vN$@k{}?xrDDromKGhu6}&1g90` zc}YM`E7pv;SdYs#-!#LMruN>>;mQdyo9ff+7hiSyMC93MrbKr3UCZi}OD7h4^eiT^ zrEVWMxy~d#%@VNG7r9pc^2!{atZ8c~LZTkpEc%M#nB7Sr=y!FqT33IY_G6tCmf{1| zt_B9f@z9Z4yXp=}Y;KyH&y_Mg*=hpxV6HxEoH^BzVHq8tRd*f0X}Rovh5-62hXWZH zFG|YM6bfM!Qq=`!pE!@IKugv`s`*cVpLQ!}Ed{=7=X0jq(G9x7xQo9do&?)C`O>n} zrzi@Zu`LD+Il1GPnRhL(q3@0*d?Xq>7i0)ZTDS^1{~-Cxt4&TMZ|!~*JUKgE(y}Hg z;I%P7!Gz5{?Y=%|TnTROOq^1!A-LcL1Ru0DhK~WBu_I?yC-e;&8Oz|Hb&4>}TxmO< z((rDl`o-={zBgA1Yq%c?7!Y*T!^m^`{96Ixq{+0p$!jiQ6tIcLonFJ#u}4vdj`4hN zr9!d*r@GM)1D&sSO*(exO)~ePs?h9Qt^I|aZ*r|aF7dAX@&d7NjNy&f@J)(qdIVoL z5E_rfgXx@Tq#%NH${Afl)emg6c&I2SVzRrHv5ASnhmUTd4A&=w+Y<$fGl>J5B_>GY zD27`H=bs+K@EgvN&yiX(N6jY_3sGq~x%_&Y-u47HLXj$vR4I-qy_>Oh<~a68m|Xx3 z@t4Inh?(07x5vhYFkNp1@<6qr=_JBn@^|ma7FC5-lp1a7+rIDb*5lMaDH*y6v0Cemm3ju8os1e z;lrc1Pw}!)Z~X?LqkAd|i+tK9>jmHGP(&$9*4qW$bL$$Pe1{85*nkkj>);IH#f*(l zvR>|fpBrxiA9$5I?(?)DC+xKBkUtkAyxO39)OMi0OB}(q1G4k;*kLdG^uy`2Y)t8Q zv@hF$(?SE_tD|T~Mno&y-I_>9`mOLUg(3Oz(Yv!|NS(5@`6g%o?WuCgDJD$Qb7g&2 zU>vY?Gly!uN|)~qyum1|=9zjO_H`ZmmGK{>z{gE}=wBNB7?dH61oRLqKvOuAN59=<+s@<5Mlnm_);>zz!CN>91WinjER5=_M(+1z!IIZwlncE zd<7>wk-yakM)C0{feUH}{&1UGzZjFw22B z0Qtf*GP54qd3@`FDy+_0Eb*HJfT;gh+Z7@_Nd5oV0{C1d!v+1_iE_mLpPx{*{39JG zH&Z+o$V4Y0CH1g7FldAAZvf%~Tt>D2AGr=Iw7<3$0c?4x?VJFBpoTz9dIK!}-k*%g z%)d~(dRe!IEs2T>xQlad0%PAsmf!QhqqTDDV~qf0h3iYJ2q}b(A^n#65MI`^-M}#; z!`Yg{Gj^?ez%&L0jJ0@kwy-hgdjlu|?DV?hl(Iy8=+(aS?fbC__3wt<|?!=GP&(}+1g zch9{M!0^W)=KWcrsXFg{JdnPC@wXS=v?HkL)z!SsigyW%c+7kr%ZS80*Rlgd+!sq% z`}w-{JRok%QG@N#d@jq$Xo=uQWuB*&@bK^i0wxcD9xCiG($f?Af077ZUQzvUx-+r7 zw=P#qCcO3IQ#*4&+Tj&CAZbWi+gR(JN>r;{dD|sKtV9xJXxaYi;s_Xo}QJ)kyU8DtS#Y$d{cP+l4Fn9dgf<;9$RZG$N2r}VRp!pntCx8H%Luhc` zhVCirJ!*bb(pLe}`1waW-B*G%VAOX?~#!?4|>+==Nj;_w7%|)?V4%6~6 z@cl%S@lALOcd*t{lcRxEj z8^V%390GA3Nm?3D3%DKv^eAv_X#;PG!zQhHV&is^q}pwG2=AQ<3$o8q7!94P#`l+s zBvWSm?y@tUAu1tGAZW()@bGYVvXs;x(9+~);FFLEKqmYNz?}{1p-{q9x{q34FBo!3;by3a$nUre2(F=5BiRn@b ziJ-?`Hv(5M=t`Pw9D%5>&@U;)FV)K4Tpi9!N{~Ol)B0mVLXQdddxM4u^>Z+Tq@-UQ z{*-6sI2d?0`b{^O!?dr=ZC{U8@iGXQ)9`>?A_9;PaT>IMwnq!YAtuY`hbszMA{jup z7vdJbsTV8VeEjI#y**l#v3GNQaa;;)klUUL$EJ~gjEmd3t66^TdbH|=9dQ59p7#Ei zJ$YZ5iv#Z2RjioVPr4lUGfDD)6hZ&<*!q9vKTcb{??!D&B7&=x^|~ozizTJ?jLduF zlt?Di_G%oJsNGBwoc;{>o$LB^WPoOq36^=AvVSXx;FT!H?6wdVq{Vf`EiKajm8r#r z$qahugSGUY#@NR6Kl}MEsyV&fuk6=f^AQXfaKQ(Se*O@$nmm9!*b zdG?aW@lQ&yx-f`7`%IER(SYq60fl3pHBX6Vs{vdA_l|2Xe~cGZJwM&=)*P{#v4T<+ z@{u0KnNf$%=BJraPKA5YYgWG*44rLEUrql#Rz1zhjUWrQDKxCy(f5eR!chv;dDi*O z1Wft+Hvi#L4NJI#yQ%u)l4k`xQ7a3E(J!zbVq{zHe8v(E?8NR34A@}rtd(Lowc9Wlt`4kRsG@|?o{+Na3MB$IQ4f0onJ ztEjfvDYH9z&{gscl_W=Jv?CQfiOf`NvNxFI)nKSlP5*tPsdioAqDO;UqhCcoj#1zM zK@4iCk~nt1rQ>+mr}XguL71hJvrki&#_=TEp(}oi`W0*-x}o&GpdXTC9C&Esg$-3t zDEFu~BzJXl*Ax2J|1k&E_Pa#VO3R=AYKlZAZvbWLQOHQcpV5sy<#+?yow;~3d%RXj zCY>QHJvud0zy+LrQO+CJ#MfovuG7a9A?6jzYkv&kj>mCq<|_U(AxxSTa6va=PuBY& zRO|wLKgywuTwiafF)T$PJ2rY9tp8s=h(c6mSx%d=Jm>yUhgxcID*iMSfFA<;?mK zf-r?`Ve7c#6E1@aa7nBKjDI>Z#i|Ny2?!6=dj9Tp{>!K;J51w^d3`wdTr=*b^b--$ z{h6UX>&wq-j9;y!#=Lh}~lWKsxWf>Xt1R=!nQ|2QCQb zr1EsjGlZtP*VO|`3Q=UGG-X+C_pI)QX0?j|uvB9`&i{#RT{5FrW7q*_u zit4lIH%ft*Rz?~h-)#B{|6+TH+q)01IbGa~)!hIXDbbagNOd&tv9{a3>5mVDvkD5U zrEP)92e#zj-gv?zAh$h|;&5M9P|5_LA{i0bM2lJQw|w>(~7+0*bR3_Wf6#+r4WRPPjLei%>kX>q?5I~!*P$tcLJ zrlgKd;=&j)1W(}&OtL2EwZ9<_==-I~DNa9jU3?s#2X1dQcuEgJ7mM?(d^={vb~@Aa zyfSPpMetU5o=`AhJj){BUJFoHs87YS$1tZ|dEPzQzfK+YgdxPv(C)q9S?+qD?lb+| zCyfHRI^~v<`x7+;IP#VF0H9=rIm*Mab7TX8mj+5W}(F09@M?Tggp%JXdT?F zG(XmT(w%jVf4X!S+qt#SND5pMXZpNpc2hGdGsI~4Y)3{$f%2$_y-BY;Cim1z`%0(Y zAs~9K0N4-RNe`xCPUA7~>@gaY(g(Izy#tHrhk(`L01tq84whA>$#A5F)_X=$bt{)S z*&zs=ReNA2@iXAh5X!`ZtztxQJ}>wv)M!V_C;LT)>SY|v*h2T&Dr>I60O1KAt_93ypRh`dZG}Rj&rC&#`&yV#$w|u^_ z`o6+4*>&6wTttwhiG;}-M(UJ-bP;mJ@;y78BdBHCLcL>~$m+>I!RhE(>07jeQC2*J zaJci+ANxY8qdR@V53Wja-cCo6h|2cSVtnuR z%Mh^g(VMJ)%A%yilp=ClR2p`HN89F1;O~UbqB*mIV~b6SVv zu3;QsaT*?e0%Lj5auVIyPb!+eVL4`?Z2|0qs-aSynHtn>a2M=K3zh8dn2Ta(e`s!Q zp4N?h6*J?s+_6>uHfrdF{%3m%*4TbC+Wtp|T~`Pm1;&h3fkDRu(*q>oWj93cdmmm! zj~xHe)AwXkt4@FrlgY|HeBtco+&qn9I=978Qu5e5dBtg|euG(j;>jy$)F17XInx=E zlS938e14t=;@TYzmyia}xnzdN;eha%-cB}m2*tXN&rIKf9Dl~g!>Ji{U+?(MBY2rYjyOmk3n9;*)LU;p5wvH=3rTH$(L*5xxS?j{F&>|jx?6U`?EMM zn*t8)-P(b6a$&0Dn>Wpr1jgPrRoLJ~01Usu6lj{qssor%93)n)y_F3kh0JiBH$5vB zImhw?8lrZ17sqRj`{x|kS`ox`&X; zufJ*;$*9zJW%n9(1eV$c5o;#n%hMdcYFFyi0m3x+rxO1~P@TgZAs$f&5{K*%B z^BF;um?cLG#R2;!Gsh3r+9ej1m5yO#w%`U*lqmS-7P!Q&U^;1L#n7;#} zP{ZC0G*I$or?^>zX!Km41RuUn46xGS=;W>IYKL|DnwJtVltM@9dS7b*O8of4$u6(myvOe8OHPkAt zrX$KeME7=MbL!4*44T@ZqIDAGKPw@aD@J+Y)4=IcZG}|>_UP>TCnfe6ojWT_O>9Iy zHfr~zrb*FkbWvC90`xfGr+<@}m3OeQ!r2Ppf@Pq@7{1TZFq{nwQ7U|;pY6C=Tov~) zQ1sY5HduTesTbp8$QDK%yQ{e79sWa-QVs6wL!o`A`pVogJmgPt2~ z4Iy7km%;0i9Q-3V6Z-rL)gKQnf8pb+EINcB5_I`hLlarLB#!O>HVrklKJmD|4##rY zenQYspZ1;^d5lt$qc8SSx{NS3j$Z9EV(IY4{&sFU4uq2DJ`v3xWcR+3B0@n~*@DK6 zl!i6fuLo)lFB709_Zx&?|mfwH{n`G)W5xS$LQZ* z%~5Ln2$aTSL;2HWxppISV9R~)NUl#^quQ1ESGk_XYquVNDbg}CBRJOtz*4k7O@J#u zzm224bIkeE3gELAOeJPv@oXLm&5=StAa6xBTX&|a;cVUuB$*))2;euY%_rEVz44!b zy&%BG0qv{0jUnX)5g$i}KZ+0_X^+u?U>S6TVDXbm*VVb~KWYgk2gEgc4`}4#O-{eP z`Gpk$8b@GT1BKNBp#NK1TYGUmkOpiZ+<4vduXe}jZ8HP#_Rh|wF4Dv zzRC)Oiw*@DnZtaLL|np;f|Bxm0;BrRCZ8)VA6MwCYz{;cctZ=-0{L4~yOtI>K0Xug zhvM18J+njW9G)ixz*Y=?P&b%-wal*cr_~qu#lzuP;1+76&R= zVZPY%4%qI1;#8IbpjHTMK<%HNk*-l`iK|=ZZ205jb97RHC;luMbuU}`&_GUQg#Kt7 zLn8%lc0rFwy8u)P?yGun=D@o|hBslMICStO%k}$w4$Fw3A)#Y*mrT#FwFO^!clYxf zZ{)vbab=u?H#q$^26w)dmsO&{1oFOybR!}m4OiRg>*(k{{6>P8I z85Jefo8TifketS2S0y4!;PKdBd_K?`wd@*aP4i$({TB@9cjrs1lnnBZi^B;(!K4+q zq*N8X?8ze^KVIs2LAe1v60#To z{?M=Q4|Rm%gwz9Xrn38s(5((f+rk~p);fXQ-Rrbxj#eQ7z!cC!YOL{ILxn)-84-kq zg$sQmq^QWq=(|fxODB5)q$~R{Dwu-iJLP|A@4Mrg+}bUJidaEJ1(af;i1Z>zjf#SF z1!>YdNRt{mC?cX1>79Tysi8>d1VwrW=_MeLNDUAIB(&L_bM$;uzL`6B=H8hskBZyVW&z=9v_92;quwPr59X^%_;Ga`GrdFgtg(H*i+I$KtY$sXdcm9L@8WAVZ+m)At>ieNY<$mQG5O(l8n+@VYF zeYu?|GE#02@4T0VHg)rH$n^NHcmN4UyV&7Iw%9sMt}@*W$k{>_+JaFr^ZAe3+HKL4_e1 z5Idt50WyktlJ4PBxBKHXaIV_A`w!UGQXe;@sp(r!j+!h9)epa=p7%uTs^8wumZ0Y* z`_d%iDL;jhT0HB>->><%&d2|_ z82uyJ@b9{eXv{6ow=^Nato6rrpH9qEoS$HmfP-y`^w6Q{%P@JjAO_f zJZ-+0p#FgIfac8c`VXXtX?<)^3$$c>->P`ZphPGnLAW|^JC)%=D-Uw+uN$j%+Su5< zwt$$KnmR#A>36N{#I@^G9mZr_ACfv+XPW!;=CVO~8R6OA<&W9XGBE@jzIeQLk0now z%TVsPKUfO|R}RZDAu)fIV^rXPTn@=0Kas9+HOMqtT!Sg|0wF?RB@dMHh;P03C#)+T zqY4qCQ#(b~^!>=OEh(qRvri&(+}QqlNaoSU-W6r{TMawvPCR7NcoTJnYU*y=rEjxf_q&HlZAoVn#4DRS{+U7i zEp&nh5<%jlQ$2MK_UXV>9l3WtW$os?jrwl0(}SfHvPZ|;87rfWhCH!{ue8P_EB?B1 zMyJnGg5#r(mKEM-gnW@arOlLPnB7dp{iQr1_VNWu7A3UKq<1=vw|Mz<$n=a>^>X&o zJ3SUysaBEQTv_JohkKOoB%YVpOt#uk{<&Kj=4kd^D0<$mocr{qEV|2f`}R7_b!kL) zhc>aNR{b;xs5t=kwr&j%T}6=TsiB_;8s>evC}-pVrf zGb+QK2vIJg(G55car0$!o87f`&FLjmyex;K0f4?f5zDcER+QS)3@@?)fPu98@qM}# z7o__Oy+wUFnnPvrN?2d>RwMcV!VWAr1m3P{dfA1?k|wO)Oi=51{vAAq${5E<@xrl z#BNMQk>o6enKhN!bZ4Z3iAbzhKgql=`YNHkd7v?#y0*H%$W=*VV&d)FUFM_gir8=S zP8D-5bE{eQ^ODccCmUEP2Q|NQTn$SPP7)66#ciZ!zDn5OvoQHQo3sa*%B44T<8}qys)i4@~b25BBguZbfkT#xsR|wd(JE zgF9`MKZ1*aAeODd$^LoWc)+@ud~cqKHAH5^C*(bU@l(&V8@KfrzK!5%=?4&jN;q+j zUd2Srmknl-5V3-4Cw}3WIk@7F#Ii(pq_j#*{*LF6wrU1L3)FV{CIT2>noHO=}ZxY=u0k*dQx*c83Vr;@a9_w0JGj!fZk2WTNZx zH8HjrfE}OcH~QF>WP*G72=bMZ;bR8emj9i1>$0c=*MbmqzlPQi8Va9{HK6MIWT(Us zBC|f{!U~!M)F8WCwm*Mo?6p_*C}yiLsmP$x>Q^6$Gpiuq#?d}KnAtx0{Fp|n9iffO z0L41tl;U1;3lexBk#g8iD(tC!psv@I#=>XVtwu6l61EX)76sj>J!!uIPaW3&X7p_h ze)QJ|8TwE6#{(1wH@9CW0to6^7)|7P2iGIo+$ zt(Vlb1}0;?JAD_9K;Dtu1eXfzAY6L29M z>h?kNnj@zF4A1I}(868#{{+u^>)jIcS4(_j8u?7Vy(fiOlSz!77j`?tyYaJ|8R`>j zhl=&2{1Km^9xrZmjG0%f>9q=0^6?7*a>>J$5m{D?Ym;t+HWLrKx0(c}$|!?9swuD^ zc?C@NRWB9lCQgGOqV60>Osz|l43KbV2$FCNrreW#F$a>-U7PbAmq%T`QZX4fM^s)| zb+%ZJ(d*Fv%;4lGfS|h49_J%Dk1k*gG8d%II_UNMZVIW>-nv0Z$^ROPz@GQ!cthkI zJm-R82$e~MJ%69)g9IM16%7=~#jbO{@FM2ZKJl*z+AtuyYM5%m8RuQ8wx?ObT zZye11v)M?EiOH|sUA3>SOexsi0ivvFQ*y_K$@yzG{=^>Ps*ZF6)6F~7)b1OWf6bq* z&xDuLtMLkPUr7CidN0G7yid|lhwo(m^?|c24tvpj(BY~FB*DZ$ivC!-#-_3D1Q;_1Icvy0e?boha zIr9R9`;sc^TBei=X49MY;q1OvUu!{d)h$p=|97!a(Iy#qb2p0aNw)IKFG(dF!^V%7 z@6F!RRy}wmEbS=JC?9oIn6#@m5#@g!SZFf*>8)A}3k4BR9|(L^?BPkF55E;Q%D~yZ zcABb3qy4WRga-er#U#B1kcg>7{f_dI`}F*N3$y;M;g=KSP?!_WM$;|1Wux32na~leUZf7`*cY$n1%QkPvta}bCk5hrzh*DynXdt-fo09RwHZJ} zxGwwttsrYX)6B)((;I&L?B(%+$qWY&5lU+uRB^e?|6rZ;S}YK<)uxAe%wUf|Yn?Tj5wG-}7Y8qvipDD^i-UdOJs=6P>Z{;aiQ?@pg!{C;Z28r$ zv+xXUvY$VezW(e@Kg8^MdJGPoVPw*&{T2qS&shmfl$F@eN3eqSsTn1yFAU^$@1uPh z8YURGcJ08EXD;7)Yt|maZ`pGf@`jS>KEU$yhiV|e*!q8f_MuFMx{|?*0Pw`Wz84Na zf;L{%lF=WSUk2)}1HgO0Uxn=VUzIKI;85&+rpEib#6jd>feww80Kdn^&uZk)NlrUR z>4;*$`o(RJc~yWAY}+-$qBu2q8mPq6x$8l0wc!9&9_U1dAR+n;1K$TPcYKy;Imkrk z(m@8VuD;k@nP>;#!>7IPYJ)?-a9auVh7?K9RRY0mWxV?&6_rJMOo5Q~AXh^i1o)2t zM2|~y(#`+S^kFPpd07m2qfuW%#=d=f0%G2kBo~>b6c6AY$!1^z^T$_sQe>9LU@127 zSQO<|2^(JG#CmUb* z<3_m~ta}0imdR69Gv5K=%kA9bDj^Y?^PhkPiu?MkoOf-+?Lt)h%@v)bq@=jp)|W1w zj*E=Ask7-|-Vqm`bJ5?Mv|%>flXhW!%?L;cS=d=@$C0QFzK)RSBm>2G^nn5cqbH{u1sr1?pwyikeX>|35;8@kcy z>}5XNg{Q!0KqgOvTl=#mzsurx_tfHFqnTwVg98HmdPYfJi^zhzZG>sNf|z!Bp2EUo z>XZNg9xWT(R7w;Mk1}oQ?R`{P5|%A$(U0jI#8TX#I`X)s`f=3^Gtk!oa9b6rD+(ae zfn1Gd8)eLUUevKv`RLq=s;cvk#rz_lJV}!D6z<1O1GQkj0gB15*2uHcXOARlLaMH> zzYEZ8fH4EdEE?dpgINErrb2z;!fOBr&b39iCRQ=Jbuz;H-w-%BxtV$K+j_oGz;hhA zDk>T;9Ucg5mrZpP>G{PnY{+>Zr$T@y$;Ux8m0~M=*d4LU^J56~(U9M!=p*b(WUH!* z!35%5dn_3+IRri5l*sGa4QHkZj4CK8hVAOVZ~Qvf?f|*Kp(@lV>flg3h&{Q+p`#zt zw1FVA1bJk`w4v`y1rO;i^gU%E)sxH2#edC5_)lMmRbl<)@y;yAazhMnrORn7Da78w>f3XwRou=hfzn z`2lY@xs;n*$9BGMkpZgi-dyU{Bb?+}8wwUX2yQMdrkiz6SXH}<>4k-Nk^Rfv0}TyF zf#MVJ0YM6TXF!ha3s;BY&9(Jgap(OT@9WwyAO$Xm(1lPA1{Mr)N^B1CLz0s0o6q?Q zGC?T(muG&h+bt+gC9)!`nWjN(_jljpARgU)IbwtP(HJ#g*QKl+#gpt9QVrOoNf)P+ z?^!c%VwRSoFqE}9orBe5P3Vd*leL}@%kQ7U%M8HT05a)E*F@|~?9p`;9!^Hn909e! zgekLdLqT-1+@6_fWu<1j?>)!fR{4u9sy1<&gs;a8QZuyz34O-bS z^RCYxLGuTX0a@yk7e$0|wj5tg3QC6Awt+n1gRVDcuc+4DCtsXdoo*0LF1N<=K!EU4 zCPy_>)!4G{f*t_cPCTMf=V-+-EWZ3}<&s>Jmp_0P1pXwKCG3z49AV$sud^Nq>s zKYsj(6FK0VTp9uNA)PE(2{{fPxJyV%jsOoZ&#jd&#>J~^%?F25e(>en@3Nl{d@a38 zmQtt_`z?b-DnX3!a^|L9mC#Wjlumun8UfkGLJy2K+2IgAqaP1||6o%a4ux&J#Jz1k zBG8p0snGhp&I#j1s{hRoJlcE#dEqKw8T1Y4St~ElNKc5lfQ-<&(n|Omp#Jd4VwNA%q(1%@z+v)Q1neqK>mSi4zk! z>Uozaj~~r?L~}@%!7OhAZXp}+8KF#)ZAH@!#HG?os$C4Q<3#Nvnf=mb4_GjLtdRX( zyvpL{56^;qum7$n zaxlq#n)9^~?wbX?(FWC{sJ=Ed_=8pB2|`~IoDOo_uN-#II?;1KYI*90Z0IbwJ8Bs5 zl+XS?gCvO^w}FFWFn@blRMUYCuGDbA(x0FN_@8A+{@_y8ukn7}nD(F2;{V4?#6KsX z{~d$}Ml09rs`?`NFNVDAPlmh&9=_B6nUmt-J|q3#1V#Qc-Z+A_2DQts3LhOrdO_ih zXEOWsgBHh~?8aBVt$jkzN0$nJ_&YvksUD8;|FbbRyL$V_0zaWb{rzv;xdRMVuD^aO z!S|lL=&qvxdl<6sew~54v5(1y+sdG;(y3E@vu2*(3a)znC^N^$8s=Yx`cIq+HZJ&ql zP5WCoMCmTNkl;?gCfg(sdE(`@9UiE;b4S+8hmQ0L3(Uuz7K&MC>Z}}l z9sw%lk)4TL@)73Sn8xp2%NbqptaHgLbQEuinEjl%5Sf`E)U8- zyYefT3Z0k?v#!9uKQHY4q-}BGNIl`o8uCEKn=Dc`pz&21#Hby$v(s{qy81(q?_zuc zOd#>sg@6o~{&s<8BAW^{TD=%d>f@2WqSFq~)FV@zN-608?bN>5E^Y0MV)7EUb5jny z7GZspou&GBKwPs^$7=tWSQ5p9p}1>UDX;|Hm5m`MFY<0>h}kU)SBdpX%$zX~1S-H6 zu6+|Bte)WXh9|KTe=!7aYpZbfKM_JcG5#p##xGy)wzG9h_8EK&g^MNkUwb=ytL0p&*OXk^5vB_p>lx;A@?NWGUcSp`&$yRz64$F7*HpP^jeh{u z;k51ss}JP?_t+7{e>Tk^v$c5d3A6nqom40mp3~r2TP0|*R{q(#H}0cUz;Kl(uRmMI zl)3Tsu!}t3Uc+`C7xdB4@tt$!i}*rg;YjilqM;zLA@WXpH!Bv0dK)gQ9#=~0A~B}r zpN?;(N<^yV$zKJkt{_zWT|{`~&(RXmfm_k+pu99&r|DRV_sC|Y!b-G`(+__#`yVO1 z%pyPR*G=c%xw%&edajip;z54dxyJ-Pc3U62fS)0S0JLeW@e@5f{6pNgO;)FE=e1KY z`J<4#m8y*+HHN|$FPB|kS-3s-nz23PuTQR}p)JcAqF?LdFEWPux`?QI)L25MTkDbB z2+f~qhWi@LbUg+gAO$!esukNn5Gc}h`!f4hVCPlB{quUjsgf59S}}!_j|}^TH|T^z zffT%_*5xz=1V!#ZBkdZnC*Po43!xjqx&ZL$9)1X&r5Y*xn(@xJAM-OW_~;(V3momq z(6@a?xU9H`w0~S+?2ZZb4TCi)XWA_ey$z|B-_qdT=NB#&4FVVYp);H~)m58Abfj&I z<#>n)Eg+-o-MP)v^i6d+AoROi4vj^(f$38elW;9A?xX{Aqm9EBNtr%Z{ zAp1c(%m}5VcFA)|Y4m~zlsQLY*3m_og%uB|B%m9OA}xEY$|GPv6)Op3;$+*V9p^52 zqe9tV>GWpk7`(a_mA-d6#MT21`T6GXcZ7Ef6o@1m@C~3U^dY%tVvBg_=Ss;KhdeYa8q-(63-AuZ3 z$t8i=ck*;SbF<2NJA%UMX*nB!cEM0Re+3r6QX1cnO}84{v%O!ZXN&jLR36SA7sma$ z$&~1@sXM(2RFuw4ciuJlGGR*{a8GuNKMoE7h$CJA0SR=(KQuoV{ddd-4Wa+pN1tcy2I88LLj%#qb>-c_&)s!=?W9OhXiymwI~(hd zrKskt?LysZWySI6u^AazH6YuC^h;mr-;J+Y(r5bm`ep5>HTWsvy2bCsJo+_^Go24U zn*6Y9j*EL;TI!V5M6>hZp9*lbcjnF_ak>igf;wo>^eK3IdEnIr?o* z&Fh=%7Y`k9DlWj{fd-mOrxXBBYa{1BaVO!&d1P2vS+(KK&FEvPM%nrdVjfF{c-^EV zNRgpjzg_Y8zyRA{3B>>-*gg|wPU>xs--W$qMbpATKFuv7BUy_1-NQ!<<>?5U<8=}2YJMjmo% zo4-MSL;R_FomXwpE+DXu;?#R(c97gsa-htT8V6f!i(E}5^^oS~J-)Hiu zRjk|hc;_91w?T6YghdJJ#{x>#2aI{?B@ub0f)8tI^P9m55l)!~g z*4S9P#N&n@MVQg_)}m#<1l^;~AaMToqg5Y7B8 z2EJ7^hn4gaFh2oo0(P-M&80$j042Tq{*p2t=w>n1XLWAQ;}piszudVTaxCU-s%@zZ zmrgZDL-D12-FESb(esbT!+LlLpE|ND zu1ifnr|L&PXm8k{&jU#>U_o+Jiy7FJvoBbMCQCd7>*}nM-t_waRpIShZ=%R=!apj9 zyS_`={nO(tAzz^7@93!9^^urMFtJ818PASMegbE7fB?-~N!O3N=dPJ=yvN^ovM)S`e-(!Fo zEVqMo+yaJ}?7LIfT)E;E$W&m1b|Z~T58L_K+3}>J;^6tA$o+}Ya7$qtBNB71tkUtR zL>H(kuJzW^wg*pdtZ^L5_$-)erY$?Z8$=El2i|4}bZe?j&X3(H^OKiOE5?Q5~;oH3{&pa9kEk^c`)8>ZXP85#9%MxcOeKjtxAla49V}dxdgmHS)syJ<{JA z2-E*ckh|-phKq~uDnqtWL}h@K94?a4p5D-iBY=D-PAi>&o{L|(-Dnpi<|(CszH8UN zJ)hupXV&)CZQIEHv`5ONTB^+EeC+pBj~qoac8nL}vgS8QZ(GOX{po@^h_T9)Qo(<2 z7;uUc%g>m&w?;?z?&6i7AAIW1#>M~I`tqo?TV4-ixUv3-)L08_asU|=$$Ae+W&M7w zDES}et^bzTwlql7_O%%=!d{p71R@XKjSDz7B_&b*m1{d2o^|o>gXuZtg9?)nkJ@mcq_-VtUWd>?-@F(5PvvzVwNs2!Ks->s$WIe{$2v<}W z@TT=2{EdQ!k1B{&MnBPiy}kG!y4|3E)a{N1{z5O_ z{#$io|BY_f@w-Wwqzr(+Gg@DJ?(foXdagCn1_{LjTk(g;U^tDJw|Bghw^&*ls>q_7 z31qs;M6xLfEFDY-GCxDVFE8Ih(dGQAgQ*NMAHpE+$^}YiSaGUmoXGO0m> za=5X791si^0ElH_V+WFfloSid(Uo@;t#A^JQ|CbK~C>{m9Dz_jJvjz&}RQjD)f-xB-CWUPi0)P+MK5LJZ&;)}AkFf^!(9c6@iv zQo&&3_-bkZ`CCq11x?kIdhaOkPIo&2XdQPw{E>5XbS=P&`~-MAfWjYoorA{c-wo9h zhn=?)09fOK*rv<-Lxh63vB3Hjk*^iPKaj;1B@NNS6RMYs95h zbg1RIrCHcReGzq9;Q}J;Y#3Y$G|M@^!GdQa62stN1?>vHxf+nUq!@Q69BAzY zfJQv@z=grD6KZD;&UIyBV-xuID7E#gieCo?9DST)EKgSStSlG!TKa77Q-D)qa^gmP z7A=M+YhfYbPsYomPM$Da4~(?xN1nB>i!Uh~LU)Jx`Sl5V>oYMi9nyJ+X95VgwVVT< z`wBL?48VFJ^*-@b#az2AP9FqClIB9V8a$<>$A)2VL?fUMehwk*7c8RA`1$+4BrFaJ zKHsow&6CI^jbw;msWh8y8N|wlT#kP8rs@0l zrxyM961g@Kp1>vsNP9FYlHn}cd0Wrk>m3MoOGM5KPIjd#i72_axF9DNBCTv}+U$L| zs##il(sVMBNZ~8qHt972M)xP(WS3JX2HCl1(zEP6L@*a2<3GFCZR zHRq`#pp;qU%xm^sk!YWtGxP#1DpCYfH2rJX^=ZEqn`(H*(&gq4AE0AxJmCE`wE?*LSUgmd^%D^j?~F{D&Xyb z?={;a71Z`vPkQ7P5_T#Ho!K>YLsp-n;&H8PuP!)-8sgxlo#SO|X=Y%zu<2Z1p7+47Z~@N+~^ zPN2F@ico4%E(I-^vlvX1Rwr#Pm-bj+k`S}+8W#nx+83Sh*;#hqEpFC90SfMW)lvYh zZX9B%++YFQ(Yl5f_etx4t#f2&q@`WMrg*z1PF?}`3gLVcurTr}4dJsfRiH46OhIv*jvQjt!OVZ(=jgD8?5*IN~~SIEHaX)#?o<>$Fv zEW5Z>y;P$RFZF8&cH^0C2fn+5686Cx3T2ZZSLCs#2b$=)6&sN9Fqy{_*sqXn&Li=?UiNj z)ag&ebyV-HP8T31O6PD3Yt8VM;BvGbUKloJTW+(z7FO;fiSG~uJ}ZwYp-ZbQt>6@o zIB*&a&w5oguFf+Y0gj0{cnOY0!2iDO=MfoIRcvx4YixB=7GUVwQOC7x#&vk z@1MqBG@OkWvNDdCtv^cHA-0&G2;ZG$uiXBj;JEBEgi+X8NxbbzXxo?-`p~A`uT%0A_a&_T?gq!z3bD3XB|PLWJ9ZuYLGQ8h!6>7cRSTg?1hL+Gw-^ zA&|jkmYO(C)!p7Dj!Wtk8Iu4rYYU)L;`mLN6f;#@yM6adlRVluL>Kc*OZHsHGG)6{ zh~JgP&Ge6N5dk3;G85B6v=JmRU9{o((39dUJI>Wi#q7GJt~P01yEw^lCW2K&Fa_FqJ+==>v;xyq#LNprluwd zQdn~Y3vbP;ah6hY0*gD?*XpS7`k>MeCauR6`n!EL`*le(?E)?fQA@R3lR0_?!oJ%L z1EQP5COTnRHJAizM-sh->3D_1h9w&dvHLk+F>r~sbB-yR<$J9qf=6dUAlj=cNj*xkd2H{&2D z4u6umqQ*T5!_jyP;X=8QVXR$M$Z>15|**YgKl2*HcL#;SY8sn3es+A9H%4d`hZ}o9f zLZPIGS>GapoiR5umr^b_#@^!7dYdat+?(GdD7V||^i1CB zOuMEYBG24R-`Tvp0m(yOydt&TC~jA(ek)pjg&w~e$oyqpV&L>>|E}6utn8b%9R^z=UuBIU zt{0{&j&wKjPvqu7HxyzmQQ+Au)=O3F7eNz!f-UF-=3=&oJgTNChTeE@jo&_8)1?o# zS8seGtuk*IW~vT&rN4B3gtw|!!U;C#=3a6-Rdl4~){h%Yv@w>b&r?Z?k%#^4Lf+ho zdUE9*TNBHl)q@EmJ}py&IQBZxxrUH>tB`zw+z27oXmaeRCpW23RC~aPc!pZTSfS3~ zxo8QJ+vz+6V#tcDCzj(?_-%-g4Kn7}n`8LWoafr+=xKOs^w8w?w9M2|+PrsdyNkh@ zwx}(21!49yI_7nlchHu?=`K0hVbJ%j`Xp^uNGdJpr0 zkD#WUiZE{(YowFyIaKKWV}y2n)`>R*{7&2u*5O_*F8JIfweog%p{9S-ldkA1AG_Az zQY;uFlVgFW{0v6-1mz;G$V^5j+8tQqojjLHHe|}^Ud9li4P^(s0Pt!nB zPs~MrVuPNz=zWmLLX5RvhT9(Zy`GLZP%`gGiZ8e5>e`?e6a-XwhnuH)R(DeTqCI`| zNqa@zLi@tnU{6BXCexAp#~ml7atVXlhgTZPtTw13cBz}AztcAj3Rk7p*Cge zU_W0L&_0DD(u(;J%1Kes2}cV|m-V9vU6=mO5&Q1$EPLGTQjP8u?L3R_!8y)o`Tb>0 zUo8xC3GzzGL*>1$Ya?!ZWbRJS^z3%V&`!P4nwiBp92QKTZdEXy8xz%q;c3ihA?Z!g zt7Up(*kBXNPCM~43SoBEv*FqMyzII!w3|@E{MPvzi54;wQ6^ngHz~Z`;rXbQQTHE} zw2qiC-}ur4!dsgj-(*E!PxH__%eyt}q>s48rJ2x{QEw0ISax!3Eo_88o7vma$9-98 z9UmdobL*AB+lT4JEkKs)@7$K`n0lyFpwE)=c+~rrnuc=*V~S)5w>#V+1=;Y zEc@=9LO+bj?6Mr(URbdaaeg6u`OZ~>69)5Bkhks2&T?cy z`LIOZfNN_j?H-G-=jyZ>snnwJ^T)0rW*^)qXB}@sMkXPaXBi({gFtPA3;c_c-A ztLD1SOfFiB{`ihxkCudWrWx$rk1*A5s96%QSsdT#Ngr8Glx3IelGt25Gx}n0$!Qx_ z+L&U{E*%C* zBWSOf5K$T`{!s~6ZKQ8fhwNTu@SO|;%2KM%sH&>*?f35;8(ON@%8>qYf4V_*e%Qc9bxu1q`>mw$k$-Od7iCDh3&~wiq0n~=H#_E9i^E48W}1FzwKFv zUH2Ybia)I)#&(5@;X{yG7Un}_SL+@X6#1QE&+c%-a5vh0y}QO+ZnjeMMuM=bP`N)S zUOLnz{+UP6X>%#KVhy91q7kdiXkCKVuf~*64`D)D)zqLcJ04=^?fL#Z3*?03`@x}I z_t{TELc*AWatjR60Wq7xA7;A#x$0?z#O|!%h+(~$?PY`JgaloOWu=0d?J)8Emtd)yZ?$h;_$ZpfGi!_3mwd@EM zD#?9k;h$(EziP}yZ{-@H>9Soy9lu-zwy8Gaz7VI?sao--<#P^iS4Z~Da_C^ZB=OY`7YNLgc?0Y+k0ps`b|@l?u*8^y8He#0_(6?>^FN~ z!Nr1pgsr{DepN@%kAgEhtYD{gvDFwswrv-grP!Xv4o`$0EPdV3E7cr)R*JpO{E?JD zA}Cqq()o=;&FLox7RYBS+fC~gJ~}nSj2}o#OD}E_K5Kqphl%T5ZqF!otGSXBwMRCMxE`J`@&M+c%g}ahpW+!I*aC0@}Wnh@var zj;>uC)x+a&>EswUI1Nm@b7_ z@=%RuCS{`=KaouW^f%13d$He+?+xkybU5(w#*;EybL8Mz7bVqh>Xpx+F}nvgA@%PvI>}z(LxdHq zFvosgpQvu%O|^J_Ck=f%=ru;`=Ox6ZD?E{3TyaR53lpX*Qm)&t zoX*K9?3%iFWo{8ZCh5y0x*$2^LhudkKryWoY=nw@#Ri{ZQ@x?FAWrQEJA$%IsTESC zlhbY*MHW&4n~&-mB`!=>V?ukkva6&6gBjNP8QklAa+doyRsG*Bhv8z;HowKcnDld^)Pi#RYs$QqT5@tZeZt`~1`Do(UMYZH z-J000_F9OPR#nqWo|N=7?LSLl?$tiu##_7o>`mD?SB65i@(3zKgd$Cm^Q+HEuuU`T z$x`!+G+i}M1h~(@5H>-fyOZt88JoS*{xDH4gAwbYjwE$-%~Dq4Y_Ua(PMfq+=pF`& z9k$=c-|uF0AQ3AGzAK&K*>E_H(bcevv_c(!$6cNWwV+aofy&lls}83=?R2E@fkR{C z{BSXwisXSRrNn-4N1SLL!MQop3@F3tcfR%0dru(xOJ&Q0cX6Ihjm-9nCTePwP{MeU z(|EY({)at5L@|Gu1kqO%lh4d5XIHU|AZ{R~1xX|Wi}mkThl8T?^$>ejR#m63?FBot zWSXsDcNTwPhB#UKTApZm$1fLetb^giCZ}AxjU`TRg|=0B@0d1qXjd-cs4zd!y2&h+ z8|6c@>&!_XcI+9#gCetM-$5tiro}0BW}}QX&i-n!$1ZKW`&yNxTr~RtW8}g@M(!Ng zAXFg-!@9TiUFk?F1!3&UDG~2|+|?syGj32mug!TFak%n|?$;=c3HgCd9tjwrH6oj{ z-^`(v_wA6wi`L7M7e;k5`_>2IgoIhnIyrp}VxJqrrd0G82g29Vb$8R>M^l*I);)k1WT%I^FSRmkb{ll;!_k6Z6bQ`D_{U7V zCDWSwW9I*?msm(vu~tu}U5gZ^f)W+$e8#Pa!~qd5XYMLdC+r+n6a4|f412b}w&8SG zhFJ%3AaF$pk|+Gf?1HrJr}kSc7~{3jbv0Y5*s0snv)i>sU{}?;J147`;$AKmCet>l zXx;MHjh~Pry&RVsok#JZ<6{p>Y6I_*{jp~sEd(;?LKL*(0cS1faC?vafqiY!;db1z zS~&U08E}h`{G`7k<>4dQ5X}hrh+OcUp{gx)LrZ_`<;DB$64v18^UP!n%jfbrQuU-j zx3Le{iOoHy^oy2%miqv|r7qVFjgfrfuP$TOTe+F?zRt5Ui>qApWL_|9TqL*xXK@0( zi&}rS0ZK7p!#pAj6Zwi$y&ZA;>E+n|H>tq(sO?h@zt!_Lk3|H$sx|VGc0P!wH<*j` z*=k77RR=0|v4@u~Gq6mKRFYF;-5bI6N{FsCrp?tE_el)C4VZwGJh@A@+w@8KCc4uX@I+^Q|@ zF;SJn26=oFMh2ey-v$T%kC26bz4(6};QEV{d!bq4z4 z@7?>l_I2%ZKAiJE>w_?5t~ury^BGUv_x((NDG8x_sD!8x2;`pdI{|431R4B_*nbBF z{OEI=k_SH!Y@~%=L-KkbtwJD=A;JQ$WE~SXrW_RI58-XQ%e;z+WEEDF6)m+k+x~=e z=E_-|zlzR`rwTQ1>s9&d zmc7faz2}Ju$BT;zeaklJ@;So+em9>5k=8_vmjXARqEJ*%vYSt3-2d_b>+!)HWq{N9 z3$xa~aqIBRg!1Kdgg3?M7Fai*jyNpMfnN_5i&qiPk4P7~EBD8Ts&DSWZ!-9c+49!N zKH@&jt;wH=2dJ^_ht$%Cx(`ms?s{&8`$;m#qKt`u2@No;J}- zaxs8{l5(KVL=uC9ue0FQrGH@H{P`-g%ptGMT6u~2_=XlN?Pi>I?5-2ByCOmM2~n}qw07sv($>Y>U)#hQfIdzQeRw^V1#^e6oK9juyaUY z%g<2$zPXv%G}&ya5OyDoZ|+kQLwWD-c}i0T?1QUGXY2Yus#dz0bU1aeQO8&0?R;oK zyv;Jh&YEc7?#NDKoEVil(GlCMLf+m;!K<46C8?@2d(G2q){U`B-?H4#GT)_M84rJN z&7kurGMGl7#YLNzhz}Xoo*i9fwA<^vf5e^nN0b6Y!+zEhA;Z3@k;-MhKs}b_jRty~ip1mxs1}=oVIDUjKVW3Kn865@b?%lf;m5azTXNN==1_z4h z4f)JhLX}LgA4>K9PH4DLddtl1xVSN2dzt@Sv-{xce7nB>uo>x~!_0n+Vtwai^Z-R=t2o6Kc;4$6J(0c+e5Yb&1-*!gt zQjw8G&_NLk6=_fG4ZDstJR~ZMV7F+MJAK4ejHbRmL#Xd-E;huH&!1}eNZDo8x7_M6 z?S$l+xjwo`FpV);LD1+S7>e9b{zm09i>YUauJ&aHoq$l=!sOK79n7P3y`eu3zWV#% z-W|PIvW48-4OxVnEClDqBs*IEPd?~2c*9V*Jtj<+ren>88%`aOV?&Z1&G6<~A6eEB z4f|V?yddlMzg^XWl>y9QgW@e3UITY1Hi}oH{o}AD$d<+yNA(PA`Ud)`t>2Qzl zc>8<3!rPJv8g!YonBt`$5=wn}Md9-8DTg90ZbU=`lW8_MQ&6e>=FIq9h#^}7<7Y8^ zbQGwN00|FpvctwLhNaq-LXEE~pGCM8MFjqNCZWtK2>o%|-@*gX$;Ou@1{$>sA(|qE z7~}lU*xwdO%Kx3BK8opEZ|*^KIoU_Pb4w-`_0i6euyjYA|r z;R421DQwhyG3h4GznJl^tV5dqkDc(enhxK}WuV&I(WRV@N+25-I;H%5Gm?n+s2}{> zIJyO|+-u_wp^1qYZx+J8B!>AKbHl#4<)%(J;|6o%Zd!lP{V1qph)E z%v4_wQbKmq##n4>ESwUr<&;gKF5FEgof9Yp1;sZa(azNnHSTj}vrb!-BhuH^Y;`4O zQ~nM7NM>eUAMN|WV0OlQ;*o-Mr-mDC&24Q+Gtfe!{bjm>QeLYI3chF)EGy=Z-@iX~ zeLkvvS`^I#H|77#YShzk^@hXk3?1nl^UE73{lNw-HY_ac_EFH{uGRVoU2Euh)Ce7S zf59u}v)Zu~aMnafW-K-oseCZ=7;Pwb$`7{(x;q$JKQ`gPrbV_LLf9mv!=Djo;qaN= zq-!nO*^C%k=KP@ zPQ{~Mz2R~>mxrs&0#kcEhF@kgf%zP>H;Egw;TL5Wr|Zfcq7e)2fuEGOx;5g~j^}!D zX53tkZFU--gphCwHe7gP9+LdYWJr*YSr2-RON-2>P*nG;`g`C6$-C=fz%y`v{D|;f zrW{vGOY4)*C+$+@yBM&y!^U!!$CjCD=WGz$?OCD9J-uzXgy%5L=uXe*G~-dzfGOH! zL(ZkfQZ2l$uMx=?@&Y=J^}^!GcHJ=>sp|_ukQvO3!crA?wSTBr2QAXzV&USpR)kVP zGz|=d92GeR1{k}O*aQ3OPd=?OyX#+(qQ&hF%Hq-|iUP|u9e3ScjnyxXue4d-hsA~e zP_6wmic;HI@Wld)nD|};w?%EBhXX&NgQ@-&X?>vw9AW9QaE7Fo>KLuSe$!e1f+e~| zbg9^3+Z~2~ggf8r(NGkP){!t8tl<%VX+fI9(@N#e=U?k`w71VNs8p^+xkwXbuoA{z zVYiMO#zuW@n(J=_`!gja5xv+L%_el+&kr4N=~NRZVW#?1kfq#xdne2*WFVE*VAExjj_^TNq*usb`6i%EPh;` z_L^v+gaN~al>wchESW%hHMiZ}tnQvgD} zTCq)jL4M!lb3e!R=szMR&XUhX&4hD#wP-gE41{ypnP5Mv87#Z+qL(6qNwITq>lW=- z8$1o;p&ubhNyKK*(hOrc(ve)Krio0k{Jpi&d|wlFg`*8vS7q_CqfPTV2Pfz3)@*O; zt4pOi+jO%7HPzRMye_9mQn|`ypUQ;7FIJ1hfzz|02)%db> zO^zeB1E2D^KslEdU9s8oL%#G-@zaoy5OfkIPrroljq%#H5qdodTD6)))Q4Sz9py+= zk$1P5)DPCCyu8t3#wJ{xVlxDL)?Qjm2)q>ibq$HYFzl9uQf6x6Kw zB8(x0h$_-QdpM`)uBtvQs>Vlr@C$Jbu(===9NhC88|a>CY2*+RlC3g(d;6p2widnT zb#pC&<7GYi%p|A0chJzl@-bfof2rZNW?{~N3p5Ez4pxd%Cp%}$W}G2EmHnP-25p4# z*#+q{TUqVKZ;4v_?i5&R&(H1b(VIb+=jL92`H6h@ZlxhK_Bl2ErvjHgKH%jN4$iWX`Yf&*-t4PyURc?22PELn+qpYlijmnF+z${cp#Y?->prKmUE> z))vRC$Q=1OG`qWZ%j`BDpYk6#jNl=0RKOo&U|_HqO@tA@YHZe<|DN!GGQeuCIZO6j zB85-9<3Y=ynMRTBU2{PJ>(x0*XkA#l77i!Y!-sFj7A-|$ zXv4QSDMeyt7Iud?Z7DBAvJ>6Im^%GGeY$0?TK^%o9Pd)y{loO~#p}k8$cp9m^L@HZ;ZX<2hIOAleUhF2r>4~Hb$bZe$7`4TfOtBNRT2r(_PP1_yAvec zOTj9T3a5Fh+nB^()N8qL7}OI#BBK>CJF@Q_e^2vEz%mj8(cSJsNZH1UD2zr`8DkznMwkr3`R8CnvJn7blXHR+lK@Sm8nEhKLsRtZRJ9BCTcS zXu5FNWphi*?tD;u+~&r2g?bF&yu{DTlFTfm>YNv!XG$c09osA&5Q%x-(VJB5xj-h| zaN$z_NFezUNMptMRO@UByc!#rr>dCDCeZ0Ms>Do9X(Q{-LN1VbzN_ThSGk>@*+1st zNi>o%umn#6+%f*a#QFt?j(%Bl@_PvoB-?HJ>bh44JJ$WL?ABNm@>J6uceNMnx&mGJ z*gtwj+RSOMydBAh+J@3}%(oA>MCT~vPh16a*zUZbid@w=)MHEV4+!WzII#Vb4^J-C zWk8TvjDGp0rfM$rsrYs1etQ>A#$rBk$Frf~ac3-pDBrOwWGG7|p#?2gs>=3RfHQ8( zb%B$oC=O!mcj;m3!O=%t2R$t3Wu{7^Ic#*CHb;-h;mn_D6!N9P`E@C0ta@G19R>M) z)b8CUp?vA$IUyVzTvFxg#C-8P?{QOJFP)s)Y3(g!ZA?@WIbb?axm^-SNJuz3x$J`2 z8FaqFOz-0}H@EhBFhd-lM;8L|Lb*3H^*+rAT7~V6`fwrLouR*N1Fmm8 z?}0Bdgl5=eyXn=47F+J}_}nAyZky*%bJ)i73k^(DF3s*fF+x2$T7|=aBTvb%Pin`* zu3tLukm*>SmBOEZ4);dGonKjbce=M|Y2N`tT!*!WI!vtbNt}r!()bj3X_1@QOcYj_tr;$_V!{Fj|UAH4t*9GZ0A3ABs8Uml-s9@Vo+In@;2HD9yHxC z5H8=7(4Xyuy|K~Fi64J+oo`X=&sl?s*ix;UP&kQO)hH<_3bYR=T*_QZr}t|nwoiTU zzaROA=K8WoACrdrxmd%96VZ&aRQBudZ3?rd8MNL`|5y@bWY7P>61gd#`k92N4! zqq%|!UfA9;=uNI(M+y!M)S3I%!D2e_A@liAL#91B3I=gwR=osLf&P@Bh}`$a-~=oI z0l`@?ld;{Dbm%C5Cd6RzlwP^&V~BfgmQ*d@V$N_|{wSL1IBr~a&tA02%CAeM=dzOS zA=?+nm$H2ey$(BLf-;^C+v7shu_#hsoZUneeh3F1sl_wy zm&?{`$gQ!o0#le#b2;gAA(bi=MCw$?=@Uv3qj>ggHLp+Q29n+Cy|XiY+{WlJAl-(%zApr59MN58N9heM)gjuUt}72(nNV942IzeLbW>a1q!7o zPMTopbJZH#_)(#tqKADUDI9ON@y_;_kBE5&E6Im*&IlV}!i@}KEW%?c1SSSH}HMY$DI?bp# zZgiyg^&ZU7vms0S8ppFKbah8DD$C$cHV7QqDziqleNs!8JmSvcr%=Pu49eZzU0`NU zR7aL?t;yfKS>P^Dbn$KSNDK$l9b_bxobkMTFYF~}dL^bZ0DDZ?Ma!4c}ktB44 z4(#)9ulDUPDtY5BZ)3bK6!OFoV-04iPeNMbrqs)HPf%9qJdp6k(|eEYU!a)Iz;LjL!7L&>C^Lw$M#lA=R>nm zZig#Gl@Z!>%|=8B4s9I2_{B2Ar*HlazzO*UhGwe7O1SR7-Fw=a-lZ_$v2rIvETyAC zL7l?G9Ww|83F3|Ra3M2m8Zj&?N}yp*?+3KPTYYNKJ^xSa0+=jkD|Y4;*%L-APknJh zL`@5e>m`w9J$QbJ1LjQyQu&5dO$gg0J>+O*gi^c>@DGR)f%1IOG>E{?AAt(uK(DFu zt=NU`4>Oh|UtexWEWMhnf}CMGMV1Q&Yr#IY0DJr;Un0^MV+KX| zJ|}Z`8@db~A0OB{DxUP1k*Zq0Byw=6gQ-g*?DW7hb~{sNyW>uYT6hBY&Qh;r^JG7) ztQZ2|8>K-eUE~4SQeW^G-ltnrK6YAA7ZE4qHKV!GlLz@Ex5GAaYR>j_%L2xxvJPAP zJ28>DodKOy81~Cj=(OnArppaH81B*Lx;bI@*oiAMEiG;HrMki>OYr&89<^ng#5Ep1 zHNkop74~+3%-iU|cA|WI$;PJGj2o6b=VZWJ4%i3${aI?$@v@|Lj~`93)@B^<=trik z3`DYX0t3xbyu949>)@;U0(;K3pdKEBLNlRMyxZ_&Vo-QoyJ-EMdzvGYkZvmMzT?df zUmZcM3SMKnbd%A@lyqO0I@xpH$;iNjCtvWG-7Z}!q5GQyxioE(iF2762F0$!$}#yO z?pi`kXLj*NQ?bp>trNY(Cub@~XLTo`WTszeap4g2$qN6)BZv4sCjbvmPVQMBP8_oI zkuUO2#p5RG7V4f(+*r>Zd-3_^oS5rt#KOWt03sl)hJIh~FMD`8xmN`4^fRmZJ5^U6 z_ats@7Q$lN0fpQ3jmd7e4PoD&AZa*-^EmD8Xv3eV)~W@$h6Uiz-+H-`s{+b|aa7UK z{OQL}o**bF;6Zsa7q*f^Q!?DUhI2;8>U5}8t|ogYPXpt2_i5LLvR}nYYz`(zGMp-@ z*IO|UUvVGX8AR#WGZO{}IUSq9oNS%~n&&=#N#yuGZh_f32H({MO>59u^$NT5!X2n# z8+QQSzSy9K{9@O#&wyrwc4>w)iNC-9WX0uv($DXIa{y8uB@2e`@=<4%Vs~uF`}gn5 z-s?Q$qeO~-zM$FRG3%nzA?i!IZt^=lUvI7}lvb_%X)y+<^Y+!xGEjzxOlmyf#G zIcMvlJ3j$E#>2*bGe45_9hS;jeY_=UBLU1$CZlg*zORl9Y+L~PHBpm>G{OlqJkd2c zeib=kLogokbdTFCe^_9Dny;92L7Tv03ehCu#mB=-p|hw=s<*rgKOVS6MxJIkS%9!z z!#N~>P<{VFKyfki!>(B5hF;SQyDoje0-^)-<@IYsb91Nd2@m}_2W#uEuWGpr zU<>2H^RV9<7m`a6iDFQo62)Ty+kN*4)X(*CEKbkCJgGGYq`?zw3;}U|HFo-$>h~F> z>Q@fOuIP@Z$aQDts1_lQnkMcga9Xas7|olWS#`EEeVZMXn3$+oV@m0AM65ae;f?HJ zR`Ved`yIs+bfMd~m08RZw@TMWbH&fu=#&bbiQQ{8zA4T7JmRp8YZ3~T0kIUNZja1! z^J;Ex-f3&`m8~H(z`(`9L-W{mVZ|!r@&t{D-6G8{Fr%58qF~PcRk=vvIf}WxLj-exTpCjVp+I@Odb~pQDmd_3#5rI6<Ge9Bwr4zz5MgaOqOdJ)?u1N;==_Atzu2k z$_l=^+bXBNE8Na!P{rd^i>bEy+zODz*O4G#c>TLf4ob26=hrQ$i%c~m4jK}gD-8-S z62!Vy3gSd#n^vyG3}U*^dye+PA}9lxcNXz1dn2z?F%UCXKft!Xm;3GmZkB?IifMjX zsryO?0U%gn7ml=U&h|*xnMob|%%(H?kP19pHq!}_bzJegCvH^9<@M7+x@=e3a?hD9 zMnYNKtN1>=;#R6NrqkCMNCz4s#HP_?qaVDXuicKiX`<*z`9@Vxh=<^P9x#kn0W~V2rZr^%^j2 zHWW+7`hn>6?x;$}u|ScwqGI96p6$eYcQE2cZ2W&lL;x8VRpc|dF9;6_1&V|MK7uO! z$+KtAnliwdrcvHEXC{uLdg>Pwq;*{1n47>tV=<`2bLE5NX<}S(9$nuQHBIHyKSeM{ z@k2=PGeN?v_Qw%!TR6m^5{6{ptcP7jf@1bum-42VHPCO6m#tv#k$Q^~zG0KO0_l*! z+>SB1zQxGszXQi3ykjigktlp6Py}+2f`>%tC{0tN2QvSyn3fmsKhq||l>F}ndA}vu zjV*<%iXk_cE^LnmD%JONtiBK+A?Up86cuc1|o>?9_EuD+XZgXLgIWjdA{Yne@H-s->obtJ`VM6d!v?_&%u| z3s}rKsUOf8FEmk+@QrwOJqRJocV8J2Y6t-TUWtjJC%5p}aAXUqTF;~#o*r%k9 zcFS=Rhy30bJdclQAtM%2u@j{xh?YkioERiL0&O9iW^MZ%%clx>5@KQ$j%^YEh+m$- zBjUk$D-!N2%=rXU1|XHDP=nq?N=8OTD5~da;zs3_u*cVVY)dB>kup{C;*hIyhW(@D zxmrCaY3E@;#nO|5Cijx~ny}I~<}0r+zeit4bdiSvS8ds|9stM%@Y@S~^s*GS{i+8< z*j-hnL~($>a!+B61ymgFQ}E>cP+FGxwq10Z{`{g#&kY8{$kaH>&j{M;MFT`$E$Jo64QZXcAt82fD%>}eoNdM zD=p?9%n&osgg+@UnHPnQB;C1S?jK=$YIqwACY8A~$YL}U5!&i528tI*9dR|I2MkdK zirpqTCsT=w#ZK-Q5b!h8nl6SxrDMPEC`~DH1bu`5(_m)bivsw4u9D5yeOqpzMsU*X zQzRh;<%{-3g{09`5z;*(mbB@>OU?p#>ZYSJXCbd8x0`c4NFRd@2Wp71*@)spG`Gyo|T~Yz2 z>ouSbv)mcB#1LTR4*a(j3!lL~46hi$Lrg;>qR6HBL1p z*>6G%Y*$gMj(3`Rd$&GJc3(54OY7Sw=6e*b*|PeVRlzlvBTs8;M8Jk&(&y$zT%ud3 zg%b%cibMnVgzmn1Z*4fgX<5VdXYQCv5FzJhD^l^9G^=f$|H3t*E9#E zWB_v%J-1I9FLELRaAdWK=|6Pie0SD01P;JQM$;7))3F*t0|Nt?)4Cc8CV`(uc^<&@ zf3Clo)`gLxtqhhg^PVFsR@?J3yMGoDvqd*kc9;v+vS4&;#o^g=>4!%*UYvEAUNKuY zBRTc%oy47-QXFkgwe{7DwSjpHYq+)bKd~sVK70VUyupQLKw3Gvwcly2fon`S7ePh*EB#%j^ z+Lx2J^9rZvsOf#w=K#Sv7d!3#P4%?s5tpSO0+NqZwY~V{_Q3XU{)-?Oz)8G<32eER zR(7)|h1jN;=wD^CBC;mra@3me2BCApBVWn}2Sh z!u!^9KJij* zP_jV2KhO3mHGc0a(1|B|tp$C0ZmQ>ds`br3* zXuZSIv}7TS9h>7t+;!VN!_R~Srd|=fYhwQ^+x6~J{p6FWb4!~NgEl{sk{rbdBM%bo zxij7&I=Q$_3;Rp~K0Nokd?GWeq7c_Ib9Ok?`El3i?;I$6!$E@_lJ@m$AqYN4>l-X> z*L1d(U1L`c3m~eR@{+2JroYhnm?l!&&c1$1r@|^(ns2-M3#cY0-09yJRhXS$obFRl zP)b+JH?g>RdwV0y%xwgL+6w|Ic!;Cp1#fL>hmdI(@?O3b*&pqU{9rd0Iwe1mSnTlYzDB}`Qx zsl(FE&Q(=apUPH%N*T}WTzawD`@a45xUb~mP};YE495Y<&S_Sc+uR#H_CVl+{9C?- zZ-#u}((#n~Gnk|BtA+qg$l~-O_xNN zo@-Z%A?543sHM)58cUj= zWpCFpSZZ;8csDdaZzzJlQ29xHG5Pcvd&_7hOCZJt^2;X*)XHw z;g??&;)|&__Xt}iRV}Rw<~I)Cxlh|A`c>SLC*~A-9YHyDj^E$!`#Mj;wb+T@f_@V9 z-2AJ-* z)Ie;;l=_(LK2+~1CELeN+|TJ776WV!BNfK+tiAPodv|)4E?3Kr zpRFM@gcQe`o!e{NDR0?*ocD**8s7%w=CYj~B_H24b_T5j0uS@4D!ud5nJX_24vzkB zMsMtIA!Ek|rJ&XnHdb~|GM__}1dTSo+C1p!t^dSI;Sxwf`;h5ey&S#zv4 z;a09nIXEB$(XQ3F)SB`F6&V$`AzwwI?sQA^!sVp!@nfe#=i9fdWyw!ozhTH&Rar4lUjy&xbfivzs)Go>Pds^zGsN*^QJWS0A*cWAP#&t7#trGD_>K?NY6)nV!f zE~m)X5)@=KTuqQmad1%JflO^t!0>b3;;sQx{5z2|7ZweW{bg@oTHQ|}yW&nm+#aIE z+kgj7r1Z_^1iRd=B@iz+)>C9GV6HWep=5hf$>DyaOmVO7gnW28b|$TiFKxc~h$(?0 zC%QFqiP^FjC5D*GOTnGJwIru&No(o_EIsD)9;Rd~lwGr9CiFf0i12r=1PYrRNL>9( zcT}AAzL3-;;5o5KNhSM_G}$b~)E!oqf)fDl`^oumO{&Jx3Kf^Oy?17+VLB~@%v|sr z0kSQ_?5x6_yLW{TfsED`hzrt1W2`i%5x~?H%WRQBwpNx)cO)6@_I!3;#(#I7e-UU1 z1q20{w$ko`MC$vw<8uON6PWQFpuXklFFkD?o%n-c zhXsb2S5wZVgPUEW}9A<=Meg^H7xd0>5eqXfnuB97`%f9<0+`erdS3 z@{=q5N*yJ2Yje{Jj_+j1Ld{S6aPoKKD7XnInK6Jp`ubYD23F~$esJd^&^Do%uO zA0J=fbWhLB0x4IfoGlQK{)_FZG|nMy0N^lxs1|j zQ?_2(;1s+v0Kx?Iba1{a|Dj1|3{9k#MvCM`+%Bn`NP;}Em8ET}c`cVK(`*_opLh4} z{`${_4w>;%8;3n2rTQy$YHI45np#JT?su(j2LyO;-hcr8#b}TUNU9*7ue?xpw!RNs zizQ!sqwY!9<0;l_F$1J?jQbliv2^m&LMy8hvq8?`Iwn}UQiUT)lMm+7{BFuX^)VXI zD!m6vFd(l(b~!)ru-LKEBbmqY>CZnh>Ma9L04ND4j0Se>|?sK{~Y6@!3C zYOyP}X`B)hS9D}FVt>y)peLcM@UbS=l#6YXVNHI$2k-qz7nbxdvDBnL?#y+UzWW?4 ztd4Ed=WY3bPTqaoDk_#pR@=QE;|GUz3`hoNR+q$vCEcm#0m!x&k zBiS}Z?P>&fKbpEuh4y5=jxW4?fuWBb9q4RHw}iW#CnQalBAR_9Q%0;S5J*@v@*VZP z)m_CO@`5b+jXh(Ib+x?d$Gxn+>^VMxUc?GtwYQz`{l)^EPSES=mGsOM>v4h73k3Ke z!Flrfj9>HZ|93?RO$8R)#Be~`c(X6@`e2$M0nZ+X_2Yx* z+qAIOk$U)VrfW9r||Fg^`&=FL}a-*4X#Q-KKM9%eS=DQ3(+@?=c; z-o6hvd<#~%sm-(rL}aNOEiP&Bi64)26!z~+kda~f3jSN8@m~ZR|K*?zF?HCu)D1|( z_5Pdg`{P2a=eHBgFrZP_E(CfCYYvw1$&Ry7*LidA+y6~F-ksO$1Y(Jo!3wAih|b3CHFn4s6Hn80N$r?u->K z)~I~8XQ>x;BZlX;0qXv1Nyea+UpqgLWc-077hb(kEZwX8i+$$l)j0e`I?qv2QyZD9w2gLo%l!$mSy2@O`b#m|d zh~dj?am4x|A{5a}I;jR|AJ6JoJW+?&WvaBrl}olegW~J8N|nvbvWJXqw2Ab*$vS{Ni8?&``gTxoW3o0D#&AIW)DiEx%cwuM50Ke4!JQ9j z`s>6+fefR;MTcMiB2#1H%-YftGENX$)gloA<@!4n5028u0l8!y?x_cKQ8k_$W-j5{~&lmY2zvdkvdGPO{ zKv40Xw@b>@BR_uj%-^%6OR?Mvt+wj?a(yOWy&C1^Npz0w>h7c6yLTb9ibaX!LZSO9 zSo!evy8nRYUbaFIl&!J5FN<66F%m{51mUy!4GP&a&!6Y}2M6mdZ`DF<4>vWr^WRjD z#EDZqh>QR{i()n(cZr!EG*3RADU9dWjynaVQp7nxT~@-$IqEF9w_)zPZSaiCcF_H> zo#XKrpKVjCLT*T4Cx^5rjIvHe{$Ve@queQ1kn|tUO!fN<5L{29sO`#4M$ka*^ zXpSC0NG33zUDikA#dLh6Zm`UAEz;fJ3+$VloBNr1b$LyKoP4?!lEe|8<^CUPAjcNX z^DQbKVg#C-186S5#>MT8rcnS)MGsr)v2y?$*e+!@Jd;z*#GkGa@x^5lhTD}*)dwoCqXLzcN2O^bDfo9itI$Cx7&06_`_SjVuuVglE^K{mUg1pJA`+`@u@m$My2u}Zsi zvj(tkVY-DgD>E;Xlv$aG1tj4HcX;jkk4~*R+2gtLrCauJo~in&SXp%^rChuY2Lgpk z`%4rcP$+__$A`SS8IOWp2y`$QK``_ZA5gT}3Wu{jqqlcc z*nRg}Jp}i!1u@6`7tMgKL|B<>3I+KF%mMwcp@tTNMFb?$tqZ=$-4r)rsU35$%)-IO za*q3lqu2B$L@q~GANGUv^de{b4*Go4(rKI+=jg^>b+Z40)vWR(H`r88_9&@qCXe*)~@H|A}?A$|2m zn@MWB?(X3ZvsMw<>M<_Om;kth9=M2609Gew_-*py|9nMAuuZC!6H_n^D~-`fumBZ{ z4Bngc5twsh3ngZF=3vO4Os_u=M|=n8AL4`hKb>I|Qmr0Pe-?B?un%V*Vh0nG9`yhe1r~}2iq}kz@*M&qZ9vxNvDYT zS@?MM_R9C{{NVX%VJdHmp--M)?!HG5Ua5VzP5E-g&(Bj9IV$BVBI>W|y|2F#JRhq` zas7&hMXO`qNdjF*JvAPmf`TZxJ~V%tJ^jJjRq4>nJ8q-olEezN*+L*u`4}e^bw7N8 z5g$E<3{YJs%LZr9mIacPia>M1^=AQDKZ}c}$EN+`$B%bVQAMH~1d@e1I>>p?B^QJ{ zh!vuQ{_GC;R(u9=u5zW19L?xASz0o(y^n+c^oB<4MaV%CkEYOnzHXvzhU7<2eN7w#Ixd?D9J3AN_DL zg_Z$Dzde)179wEscwK7x4%eSZK72Rt^PxMLbvrBXGQZSpG(f$!D$@>MdpQbwkL+EK z)j$4yjv#W-aR)D@@c6jac5~9J_8cRO-N77kt-a4na&fG;U=WF=kAD6kgBnP9#n_&=d+z1}l)>$B1K4-&-J?9XaswcCZ$6a$0RchBNnzxP9Ta10 zx>jgF`wIQk`aWnPq5_)my~S)M{ccNl#gb25vH4P>_WgGgoK6Nr;;G-^06Z#;J>2bs+;<-*d=dy>3j$HdENF{FDuY^t-QnPgF(e$DA6S9sLYGz~UOeGd9t=DP+ldG5DZ=)z4ikF&+qUK3p&Im`3PL zsrL*Fq|s@`Fc|pR@`%ees=fUVA6)x!^mB!G(Ju6>D$YIrvrU57xP&4;=mcZ+@cYMG zQ|W`;#7>zuLJ)Vj8v|g*=6;?A>RNWaOyVj%F>LVV;N~8z(0Xj);2hb2+XLaSIiv0Q zT&jP(m8;vCD9owl`^)+tQ*e4eR&whEuxuMs)uG(w+Xe1ZRLbRMdZ*ziQj5VNEGDo| zr6%r6y_?+EC)gPDWh#a}8O{2j;Yy}*AtY&@mVfsWaskYErf%Bc)U^v4^(S9 z<9nnKpnF3EETUfH$MKD^T5s)^z&-P2b%1vTwVqThXNarBu^JHOcqq4mbz2?HXbBzWpsd{*CjDU*SZ`d?7W9d8VwY2x*VAsbcCXD zI3M7PdZ=m*9?MINg_e-~6S>tX*d9WFM5(=8Cc|p$!s&IMM&`>8u_=Z!1^p(skk#fl zDs5c3^$6ETEyM~RkN!{-xF@yTE8(UzDgE-Mqx5_+GMlvVf3K zvGXvY^TCElNFt}Don5-Z_SR&TUEt+8refaRJBC2lP9d`-hO^Tn=^gNJ=U@*sH%a}d z;E!ccD|=QKSE0yNi_Kr%F*TLs6HHiO*Od?X1jB6V>AAJbX#5izupD;gCETbIfi5ThOv) zQL8#|{+gef^9p1BCscRV*QtG1Z5*ntNBK~mz?*>n0{dI+sbncqimb(gs+UrbV} ziIhf7$83%{ZJpc@@eB@84NB2y&C6C+(8J*iAh=&SLK+igX2SKD=M)pMapa8Brq$Q*nDN;+qaP;$$i-Y z>#D+TF&jMT^j;D0euduO6O4Ca`jrdWi8B2rRe!!%4x5kB|UtxkVE1iZX3 z5ZFM2hl9a*;qShYtMlOCYQW#HIhDr^)@Z>1PU8-M0!Z?)^>nLC`?B zu(wEajoA^hW@F*u39XM1$MKqwgolR<2nt#stT65^_)ouOwSe&?a=1tM`Q3r&_kH#a zEVc<~qwdRJW~DZts_O|Ajlsgk1{{(LhwI8yR%7|)pQmU;`Or_i)yMaVh`Kga$~hg5 z9#vYmF%a}7Fyt@Bf5If?(>-N^vfU0}Rxl3zCu~M^Q#OzuZNFLll^${7Ix`~)dXsi! zZZo@`nPy0)nAw^CJb6EqrI28SEx6wkwT;he{Rjqw0hHKVK39ceT%iv(<+StoV+b)9 zHZk#=#*g`XQx1{4?JMC6)@_-KOIw14b5|_pIPJCE4q0lMR7qS8&7ieZ7`yF-@qr`o zj}Ox#u{=D$OBe_+UcLk+?)W89FdC7aQf%82xqciF4S{MoednthbyPLB<4F zfQV9P=^dV_3T@GUlFFKuh}ygFK638s@9a<5ad2@-m#c3^1qllXsJ|rqCj>~h$>2c{ z2w8r_N?U=OG`z{Rko&+}CB7@=aIu=mNv^*T_!W$hav%wEpg*4l#*T@9DbJD_{)JJE z{ab3b5tn}b76m#6EGI6ID1xN7Scc?J&U;aPBL0%(909bX0Wci2qOxF!FPv&$sgUeS zBHsmPGKg99UQB$~Df)c*&z#h4 zQHn_tDQ@aJ?eY?|fJ){pj+hlLe> z&~`^ET^iXOR`vF1L*0ltG@5fCZ+AQl3$oC$*wmv^eyX*Kdc|S)nY9ad4iH;LE^zm! zI#d!8IZ}VIi(i!F4JYs44044CxG|gIf}T0occFPn96*IHx6U%#UWk3MyKHn3fKygN z3_oO_tg``q#CRlvZ`0-4Z-5ovdbWY3}$vj%+cJ2XiJrAj-oE=i2jdqNu5u9{fQAHSJpH+RqPz^}(tWBf5J-HHb|!M_ zV#>VgABn4~K1!>5WGd(S_l+w~1C+{;L^czW^6km=@6+o)RGCsN>PduB)Th8JdUV&i zD}nNs_rv!ULqsIPLeqgqb*IL(8o|UE4MXuZm2T$}7o;!nA?>qCNt}aMq4}-BsZNnT z5YsC=-<}W2oGu~9e2*Y66L5Rl;nsW*phfL01H3&nn{%-<%K5X)S-+Ze0Jvk^g*GlGc}^Gu}j*#w1zKvyKk>GHE2KBA#q zJtvLs`a3Tps!y+`3g@YfMl#5+XQR9O6`kOO@md(}%IJzdUduypvg^xs_~+FkVB|eA z;Sz`=FgHj%lb+bYSC`{09p{oEHqhDOVYf6Bw!(Y{DbnpVbxJ9q<>=K#oM~IkY2P<~ z-<2cU2No3If0>I3+m_2)yxFp}eP1~TK@o)Hxmvtzv%B}u2ZQis3~l_)KET2<@yCVO zEbXAop}F1tnwEBL0zh^~B^uKmlV0mUYJyEfWKv0`GV+7%Hh86rpUcIep-tF~$>{2d zxy9?IpGK3Z^wWK3BhnX0V^wC<5Z<#3%s)GhwiwUl;FPqK2zla>*Izs16)AxzevRXY zsFZJ);LL;cR%jP>*s1*Zwr+da2cUb06fDKwi&-DZgT71b_>>cfrUwLEoPIzPjpe#k zvB>JOrVBy2N8AydQ2z9NcZvm7aAQYD$66J5nbiB7Ga~u?AEEk)XL!$k7$Dx@zwKy! zabq1MYTSjIyV4RDRsl<9ToLS&=I&=syci(pxHuqb_IqL)O@8I&r&Vjrg_d_jF_QD= zPv3eu4V!8|8~ZhrX*D}X=|28{wfEj}O>S$OZ~zet!d6hE2r5mf(xt1Yh%^PIH>FAM zgbs>`N)wP0T2ur?dhZE{l+c18H9+V+gbtx3v$EapbG~n8-Z}G|_nrCY?4MgqNO{(J z*1F4eU-z{NnS+2N)r0K_867xuWiU-sadGFn$8!g)6?*J&({JYjB}-pm=K0@N>~GEESkQ|IB6~B*u%JefPjOL#>77Z zg0Jn11Vfg0Goxp}tv43>DujXMoa2`FAU5)E^E0h-w1n`(k^T2#z5En<#{cNwEv2sq zY5s|iy!_9qWS(l&H~wA$vj5bE`Y+qy|G6*vC-Jj?^=p`gsZHlvvrAsezrMGmcYE33 zE>!C6S-%iJ1?jvlewsT(z~cLBSao9T(jM^%u3i&M@e}~2B8;!?T#oUxDj8Zl45o=@ zllIttGa2mqfXibrDfrjKY0#}s`chyL9^9W z2us9WHnt07Kquj~oIGeN285jk`{qqyP!jq8oSz2WuZ1`$rb^L0QN(<&{2Yf2bn$3? z$B?$R)cxqW2e;N5EJP{BcLz6Gi7Pg452o+LrnvA*OaCg?JVl2GWemP6Jm}t@RPtkO zkGXTY=-w5D8wY2;2exHrp>IYrMc}41TwQ;8&+lo>6khhIC$~;dx&RFdkfWT?G)h@D zY6;Db)6@sZ$z?Teg&^swGQ?RmhfSd5#)n6RB_C z{*HJy@@sxo^k3lv4V>~HAs9is`dZC91s~!d7B^CqtZQ<$zQ)+sjrc9(wyZDiu_+>X zFEB-pz}xo~89iK-#hQLMl9P+;<(t^%OphxuU0n7zKnSf0BKVpB*&F+JJ#vQy^hziU zU01z@Gw>tbY%FA&Erx`B9_CI-@s;$u)Hj8A3{;~+mah=rl z90>w*QHq*VGq8xJu({Y#*_xS>MTxIkmCiST0#GO7kcKcbxAoKMfz)G4ji~jR_T>Ic zuRrs*9alNd^4I5Rf!2@+Vx`4Z$RTL}y{N4BB1L#+I+%VRQfR->#&|;5W`7%(YI~o1Z%$*h(r1eg z0_YgKXRkJ)?FQERlkpF55yS3*6;ez>MxXa<>TDiJ1@#MJ7#JDfKNA3RoNkIGQ4~HI zy$gh#zJH?*v-webDvn>rx?UL$q$;TE%f{_C=eOCHh>|>;Ed6wI*EGtgSJauqn6l%Y)0I?b9gc zXVWMkv8eYJ$s}9M3kkb{Xk>kRsr}j4fW;Vcg6XqO36K47E-V`E(^gX!u+@ z7)Kg|_r}aeTTn)0Tot^5(&8Sfwv+`;0Jr5{Uv!)80QF~A#QWGgVROCt{&va88rN?D z8CfpMe{SDt@Azpk2#^WgqNHATTkSr*y-Y|2(H}#d)xZiC^bnQlGT=BfjOtwDzzYmh z+u8@1XikZXCWGV0S7t|Ak>eA-<=WYME6V|NwXl%cT+e)ab%c4EL&vn^C z{LI<24%&X~D=QYLq$bxC`5GoE$B`o+l+pQ{xL!B_eI8V~-dU9Rq6A=Xhef7~H5EIi zBGuI~5_Xd9MJ2H%og#1jRq)c$b4AG1ZhR-J)HRlfP23JUobLShT$tOJM^%^ADOuLm z+X?oIOkfXi$w&R(17gWi6gI=T$3f2VO<~O(bOC6#_C;@d%PU1G&j4@MW2w(-e>)YRh!L|C zdCZC~;(d0H{6E2wb5vJ&mxng4{a%Ok_9m1gUtFk8F!@A)ZrmTmmcHdq7*t)&PNnah z5J>Ga)R*W+>Y#8f?y%m%hlfAIVRGIZQ_fj>qf^c<@gwOM~pz?(ONCj ztptI%yzll$*O{b8*;-)={(Ejq+ZW!}n!G;F&{F6-;B@tj(X(e)Zr;49Q_$Lak3}-K zWkyw34`I&@mNOY+0=0-Ue{^3#Aq*<$EEX%ot_Kn+LDvqsyCVKM?il?^&1gN2xy9v< z3alC@a0H;>QRv!aYy0!dU67CE8A8oK^#_1gG|JoGFn|Vs3npeJ>q>5+%-z9aEcPFCyv2E z3QAN1##SARAf>C$MQ$FBA6lPq+}j*dgDYSbM_#U_f6*?GoZ<gHLpHT_bqoD@ zC-V#{?iClL)zxf_-#l_b)}2R2=G6;o)0rAP&s6jePSi}KW_#yo#M7ojn~^K;e4#5^ zH5%$N9xJZ_!7P?1^2yKnHGt9c-R0#Z5{cpLVr)TR+YgrPOR-4UMnxj+r}9H7-cVDl^sC05VP@d3R(`yc)NxMFN@6&wtZ6beKm%D z;s0Y$%ZuW3U*#{wgr`xoSW@YjQMTVzaTRbWh!a!GkNe;0%@kPpcwzHwpI=%HN~3a zc9j|W^e~HtNyy~s!2tF_-hFP@+11(54F0rdZcF_Rh*Sku&=4L^x|SfCasQgn!N9@h zh7XxoQYOWhadY~2LcQ*kYXwmVfBT8V8+;W&b0KdNtjFJ-{@&b7S-4+O2j)>;q@>`X znJmB;6D!O_Sfxn!5x2N2p^ERj3!TA}=VhJ>Y*8Al&3svd_$m0&f_awnT7?7!hemcI zw53j*71ktvZ>@0#yZ2La#lY%DW>4F+%zRYGjHc3r2hgVIZ0zA?h~6u8<6!_VRcdkNfyIE+1J zZJ?v3*Sc$BYN^HUPP>c5l|)G=kEV)yHuoQY1xz5jnDFEEO-&)uN=J*GyB@iES!C>YR8Z{Pv1eG`!V~0 zH+dN7!_Ur_76-CXK-Yx%x;qzVvs&rq(&Qv%ef=fQV^uD(G7>oq=h(ZXdaXC6)*ruV z)|FPsWdjiyn}SaY$Q5$X{O|cUZgZ$KrCyYgNrL)p0%hQFKqNpZ zYW8MWo2v1|cJA1ByhPFNxiVgoa_s&Ra3Li%mEhUTR$aIAF{2YIHru@)Op$Uh#VC=3 zygAgvJy-%&#L0SCPtBT6;Vazy$oRiIt}m+A+w~zp!Upm~SAi6a^IFdgmw9WfEYk(7 z{YI1v(R+~=NV3#5Ybq9GL6K1eY!=*Yw^bw=ne%%N4|Z}-1Sts5Sj@x_I?`ldLa8#4 z!tu}yN$56!R)I(kI|NX!$cSI6LEl1u6({vNlJ>@-j0CgHGqPg%e~h5|y#tys(zPXG z*2AQ=zRJ_$PCb7Fbs|^piN~*7s!{PAW%r= z873`-oQ%1ePQ$A~B$p16IN6}|U@G})Pf9a9F&LOe=e-W;_1UfvbUG{mH38Coo>NN{ zYt*+ZXqhL?t6^ShfzbI@kx!q}MIe1SI!7;RXNIR-FAO^w$oBb5;AuKGnOnClxFG7R z0~JQe*Lv3hcA&V1k9CHFxme=|{{9`;N^IVl_!rnJ->9>S9W&pFsXq&}V+Sj*-;E$G z!uI~wPWWm57_!+B-?^@!I@t_fVO;9Oa)M#@2Nrk=dq2*nqzY&ihUUk3iQcA)O$A4s|D zA8-6kWnKt-OtCt4h&xlVW@Bce@*;n76XrXMJ#wMdkQDIrz9EK}7jQtLAhQ|D!o@B*S~Yhv6MC zQOea`^pfBJ&w=4t;aSa0WjN+3J~HA6T-MQ>Ti`TN>bUCrKuir>%zBD+sGCQihF~cP zd6LS%M-;u;cq~vb{csB1Tk2CH2Jnx`IS*Ef`9XyM=-|tY5+)(z+0+%hcDlh?Nk?Lw z?uqHSWx~mLIyWzCn#q$P7i4xm-yAil9V*YTEXQ zCO7O{3AGjkC>~RT5o`Ioh?Lz(Q7E8zVVjWUW!2smZwl2*TkHR5oU{9ij!q3O8XeOV z=8E$AK(obu$N2Hb+cr=x*!?Ic*H{BVN9GRb)QE z4%m2i4#NuFC+x{(o;2*v#>Sp{?cRL~o=9TMjxS=r!?f#}xK_1=3j`GNg67io!wYuL z70N-cJ%KrEoe7iW-oj(TG)V(Y!f5+ky}EcB`pfgf*;FNn{o&%}>J5yO=#!rh{7%+( z01sr1Cn`P4Gl~Y43hg4lA?wJAvBQ1);p$X%!wR>F9!m%)q&i45v9KJiPn>{nnCu8y zpkiQvGQRrNi6T>j-Kp%&-v@1c76wJ&F>uJkum7G_uo3J2CfmN2EBOBud;hh-_Wwma z!>X3iFO@T^>&*7W%X#Lfi|m+3N3ZCto?RzQm&z2dF%q1({t>%-P5;z4X`2WsFg!|o zG^A_`AxcCBmEz5UE?_#5{hW2OKu!NuLZl<&p|%9pJr-npyb%n|_nsupL1 zT;ePjC(W`OLxH|YMr@5IMCp7KLuI`h4|>74I;nrPC0B=Q};{Va97i6$0x zBxuSU&ADIG;?~{JaFhCm_eVgF$h?nSYY*&~!jV5&&P}@gf%!c@k@{b0H8)0zXz0HIc8lC&N`@jD6pEirti^Ie zM;@B|#S_+n_^}`lYM*-`?bWi$(m%xL<_mwCy69=&Ov>?MOMd-o_dEBS)<;+XbLMc5 zD4f^$hlpEy)s9l z-GQQP_RZg^Zf{XGq|&X$5p**&0N92sP+#GMo!G%{uP@X`U2B4!m#~$iS2!P(Wi44- zTf4fx&ZSJ}#P>M=o$YfxrUHI^3ORdFb<)e*2f$n&V|WZJD1J4Er`-VX(#IXV+vdCr zDA`8?r`H^n`n>?-=}cOYe|v7j8c+YKAk2M^ffNA-Qr2!=}6Hf`j z79JLMa^OXQh5J5WO#NJ^5((FUjz zAnb*NhSIb|!Odnnq}5VosG`Ezv(LHzXA~F^bk#P!=d3zm&5Q7OmtCOexwU{^1(0Qp zBR8ND%&+gHrphv^tFb`V=K#V>kD3IQTXvlOgts zzae%jZHhublkP|pi%8g*nE}Laa#y@bUCqSgU^N-K+}B$;U5ZqZ#i}V%dQr; z>m2r&7G4z3dil-@!RZ7!X~ADp2UMY)llE40aM}c%hKAY z=tkMcFVvm?nLK;^1j6dSt4FNzYn?z|&bXpeDsY;f)T+8$#No1AUO_v6xjo7*}4Vo3@YH)s|xX$Qo81rT)K{~k;Ov1m^U zNgUKOD5w42IV%5{vh2>^G+NvLH#FLWv6jDF#N6{vF$e>jg5UcD)2a(`&EyH2wuQugj@= zQmnQ{rvr-pP592fcHP~_UkAS2$EO`u`tM6BN3yB^7{8^Ybo|7LVxK#A@Aecvkq1Ki z-_|Yp!5W?c1p;8tV}gS2s%-aFdtB5;rZx~Zm|nkm^8_41Q%Y+O&UW#7+e|zDzf*e% zVCt&{^_$6E6%aK-$kbY)uCA->a5*G^+bccxB^8DA?~;rAo+}fpAJcz+(N8@Im^w&D z25@$X63ELdoJMCyhTNvxE+8$gJ0WW0tSD%Z=y*{kXO_Os#=`My6Aj zaJo$bIN63fPbu2H{!c9Zbwor2{BRpXF)a1fyw9p3>6BbrFtC-LTWmECIa`1PL`?2z z{!G&u_H*&m)@YfP#LhL6_ALB&95=>o*Y+8CIP$w zOm^9EZfUsbaWne;yLY-)CDQs1r;auT{*iibZ#-JW{OgtjC>g-iB>$!@y%mNi=y+XA z?gZt5vlnltMH8I7n-tGp1iYiGLi)dXCoTU23NEN4{P?e}Bkcd(`S@Q{M*xf;H8Q*P zQLS9TSwZExAe~%;4b>Q&?=}HGQv(2%4aM-kYX~u%kF6j9*Uhd0w7o)x$qy$}1<-W` zI}_Uj6k~KlUz|Z7_Jhurl(VZS(i<@5ILXy2V(yQ*Kv=#mJj2 zI6F9#Dl(^G!0W0tUHL)niw>CBj~Z-?fN5PkM|?i;cr5Yd;IyFUN_Ro8ZBT>RMM)u{ zQ=CkHK_bzC<`Pt^PaZKIDl)50oHDz!2Ba9F=S-DmO5;x zlAybOmahTSieA17nF3FCpEl2C>V7M%96>X_F<}nS{iz1v`pB9u+o{zLzj%3*@%xB9 zb(jQ{!fM0RQi>${7`%#%7Wm0I9}7`^^uerXot9N1t&;1+17n|UavdjwU&pZPaRE~h zsQPqb+)GoEff_KVC~T4}RvA>?Nmm^qpxus)!vcrsU1=gq)3yV z^ZnXybBkP2c#y|#8p)>Y3qw!b2q*5u1){e^QhIC7I$F2vGVwf5gnN$*$4h z3}_4vS$|^#_x3D6TjO6pi;I*LGz?4r`TT)jHtB?3@uVndWt=Nwo*c}{tMv@ylUgX#9 zMN4T4-DljG8{Yb3jI_!iWKx}CL7Q=(aVl>+50IcJA;1!YbxRlYq5$#K2EZ}RU)D?~ zV1oQq3d>4HqKK^DrGw9>awtEbRi*W-EEGzzG%{7Q=pX{SPqI5x>$blNr^=So)c5s; zd<;Gc)SW%5Jyz~LKMVxhI7>b8FAz0dV%|ofKdCVF) zVi61+pTV)Dbok{CfZ+Q{I3DRt7C&OPQ6PIJA_LqP2%EGgWe@<3>uF1$^(O*MIesHF zik<3=FofqU^o2Hn+IC}!xyFds1hJ`vZ4(5`cR;qYuQr9^$EGj~B^0~1%g1;$&o^nR zGQE>fwelpDN2RxD`~e#5D^;{1=jE5(G7qsw&UK{S&!Te>fpvz%t}~Mfoe(uEF?E)H z^Nv+vJ-NW6RVHn3Q1(_!<*AZQM^*`iKbGa4kAcRqz3mk%X~ie&6@ajxaEVHh2cXW9 zJHPs*LGWSI@)a_et3pK^_12-x?h*C)K}cBqkn7c}fI|V!;-%^?b)jk}9Nn@tcX#KK z6pD-uOe?O=1o&qBPSZgcgsX}Q_kUI~u)*Y4f-`D4`D9qA9@N=dLPRawTHjFBR03Z5 z+dZa<`j4F8Ob$wL9sccQ$HfFmKx>78q;Px(_2b8B=%_I^;SJ`;O)4 zDzzt`^H}~l2rDtjr_wVu#X4F}#Ec~>$g8wpc&Zj3g_mIid)!CW-$ZFFWD+2;-Quyrg-56HBL9VEG=_CAP=!;>yWjr zVS4$Rq=ZBnbxVJ1S+0R56=LT(&BiW+=4@|R!O2~epcJ|>&__Jb$NgXuS8kNK<76yY zmD|rIcSWV=dSJjg0ln_+z0CzNuugu8OG;*97jr5c!~%&2aNRg+AL?JK5(Wuxd(@0~iE6h%ct{BB4&E3A~IYAcdJ zL}k?>>FL3UZe%@Uf*3j-yyL1EA?|abnpsb&W@w@6DFkzO13z)4i?^|cvK zaB^_dIRUSd(F;C?rf^v&lbFxe=rjj@d_D<@Epvc2s#jP%baPwu-E8Hp7&)Nwuk0U( zE(i;wKh4gTvj+RQw#Un!CG90G#nkR^k>Vv+=zDos9TL;Fwp3yanMjDa&g2A~=MX1n z#h3_~7r*imzuP)X7+#fi46Bpl{!o8lPBiDMEc_%A|C$Dm;4V{4T|p zsJS7GB?LIuP30dD)_B*OH<^cKd*L1ZaH0j+PHrQL9B~X93WB8VI*!>DUyfGR-mJN8 zEH>6L?mqF*H0rQ^Y8Q1UA+yRrT|EY$=5-(8J9!mHBsSCpB$%4`HOL0!dz>BjwkBQ) zK1Zsd0`pY(G+VvLb8q1)FFTy#aDQf77O#N}$eCkRW={*IA1ttJ93D1uCrS@Jowo9J z=$Rhz#~(^>(U8)j9Eu;tl#afBntI7@uCoxy=^k^+mhb7%pXYVw}CWeQ-yT zge(;68<>=wTr#w(?zT0PU{&K#-gX%1bzN%A&rXs}QhY94S{i$>N7}FF$k)oA#+RRm zaSb^Ke`GH7Iy+T(>Q%Whv~Wv&BE!4FB``5kcJ>P!31=?qe1jBz0jf0Hm6}j+!N*w$ zY~%9YeER*io6`HG99F>}mu4!Y#!_fF0=O`NR>?;Ggp47p98Ldmksz`fJ60J*#PS#JC1%Z@bJg0QM}? zt?ry`@wGX1-owMAT`mZu`hpwiZ*8B!(7>N^1N9B;>p+$El&_EYvh#B6lB0Aeiofn& zKi)T9Mge(b?_;z_6200xRfrFqUrV_SS-1%e5lE# zu)d$4%gcErBrZgq8Zed;l8}%X3JAr;dqW(uq;5?ZP?`0(woPD@%=6p|w;0VR-aSUq zNDI}%r+N(eA<4ZX_K{$9&e-Y)44h*!NN@BFJf0+Oc5)7;?IJMwH&Ej!lXrAkQGu_7fPeMG2m+oc_Iip=AvuWkqA?lI@D7juBnTfH+LKmyJ{4di}Fe}_Saz2+lfxlt!ri>Pc#Z^ zrG>yi1V%-v>x%};Qw++`2-CJN4^8d89i-t$Yv)$dT^G2KM)~`@h0B5U0n&?KIBR^) zGj^o}Rk$~~fURm~`Ov$9$<%MH$;iKN5EvZZ5^HqV@=%GGT|bC##mEm)5rkrM6_dtDsa20V|Bh+PFRJ7-mIA)6;622T>OPr-}+uwKxKaMO7)Wa z)*ogePc>F=3KmTD3@hnGOq~Jt!Pa*GQVD)*g)1BAlD38?EMfvb|^eY#Pd?@`*|u*)TwByOu5XBWe^gENo!J@B3X80xkSJb9Hh99>UARlFf2 zJDc3XmRen1ouV+i3a8_!7EymZW0;fS}P~n|+lf@?v2l-ZD0Hm@438Z7mgEp67J3+_E+v<`}UF;s0~e8G8QpdT4303sLE4&Z6@rXVAiSe zd+Z=CdD8f5b}>h|U4CaYt!Tg)CX7cqVajRPH)q1@R@z3~u(+zd#dcBq!EP=U|ERqb z|E`50YiwP@QfT7A@MktcS$fINnD5MruT#7JTsX=pz|Ehy6PSN5#y#ifOj-@TQ^(L> zX257ahYQ7Q-qj_BR%^9PFixt$*T{3;b&MxL2OruvI%;I}^xSc(+uAl-$11j0VohR| zIWEA>NrcLjz4TbuM)iRVCv4w3lC+Vt!)9ol5py**%WD0zO4Z)5>CCKQK3ZE-J{4|y zfK`bRL(54W(rls~pd;@MooYnDnW1foBGw-BZo1VT?SpnLGt=4{9T8H8JXA+F+drBT z47T?s(+HhT1>`N*Q8kxRA%N7jNPN*df21N+6AFYf+ce!rBGl%ArYQ;Ek>TDEsdNlD@7rR9X{cC|vA zE1Vx{(;eEjFJ_w5`B?7A6BVE%0oE}V{T)L#&z{{=Qd08SSx9Bj+}lZUTVcLHT$Wv4 zh0&hBezB~qj9J02H@B=`xrA_zGnR`}5-T8#=q?h`ia+bGkz2Cz&K}w5sS@*%mA3Po zp<}eHBa&ZTT^%L`HPJD2D0{>gmrID2aBGSq#Zu9+jZUB)HQqY_^9#&m?!B=Mo{OxG z;sT_@Ft}y#seW{?re>=y9l;>Y+vl5Xx$j=K^?DQyM|>7M?OlZA@U;XZ*C&!A&jwwY zH!*c`YcsSLssm~U`b`7tYC)vtfF58k_Qb%mG*XiYP6${dy&@lc(7oO7X|JHz(-KWk zy(4(f%;*l6vx+~9C|BH>ACo`a-?8%@%hLij)yeajU!Ct(+v1^)lP{u~g$jcxB=!y< z6Rz|C#Ug7U8@4y+9;s>Ei z`x>dD+#msKVcU;jBc(Ek`e3Qt#sX8|Zx~Eh2189cQm$aze)*W_+9e4H)^T$Wf8Z5+?0fvRY%8oL$K?QJEXY1H2H+~AZ%2K6JqNQ(y*dJ!8U3| zaNu?IY!ZL*8V_sT)Z8o@PRhsYYHOFMP3iso`E$kFZR1n<&hXRrPPYxgfw?i?6|^xD z$*X+WD>4*F@^@RVAQFtRIeX~l9_+bfV4vI2{ zj>gJ5lKi*F?A*I#tkpb6Z1$nGXw00_Q;l3coqn<(xuNTYJ{y#`$QP#;XzpWcXDjMD zy~>3esd5vAuB33GtUwaPgJLZ}Mpxett)2|EYL!tEee$gYXW~mFFva^!ML)NrRU-%A zhnr$Jlfaoc-7$}S`mZhxFVxb+t8j#z0*$uu2Em;7nd-pI?d>hswrdb3u42(q0q$D) zwd+Y-Dm(1*#b$5J$UdYaMcS?^Ji0h{-tFn6Do%H+Zm%teSq{_8;B~@%+1YNSXspa4&Y)I_u7pg z4FIptPHJa>Nr8NKx<@qt#y(mTI6q}RQ&!yd#-;$7mJ{Hweon|J(HCE(7^NVpAnWhg z0vyo>;hQ7r-9ElX5$t4d|KTNX&u=CAcDQ)$R|ERc)N;EsU2sLk0h8XMS2tzZ&zprI{qH(og_ z{7Wf=KFOMMFp%PIV{j?Jp0a^_wiOt;G%mu}4l-6-Q<@VfR@#zHC$55IA1SliiS<>w6tT+H~aszzFqokdqj4=*wLtDu9azh6gNE|Y>vIWv& zXN+1_$kPl$Yh*!*&=^D zT^_{V(Xq=ssyw%JUMJgvM0Iy=wUJ&WYHyDVm8DQ-DTLT%s+wHqFDV3XR#+cgXBC0u z$o;v4BA2=)AaHM=TeDrs37yK3t(Lk*N$HUapKz)=F`Hlh^lH)V`IX|y4%=@4lS3G- z;pJF$iY4fA@}HKa#bcgv+|a2?UOg;noq)#gt>D)srHn{{WRE!KIkqNWA$Z7WrWd0f zG*Ra<%{WfKR5{IP214q`-5>+QCI7n?%q}_TeoZujB(l*4T0Fleyr%G;aZduDT z)x$9&1qOLm%^ms+y*U#XFk1_K?_ecXS*FN7%&fAy`dp{Vyltw7(X)ua&Q8HKr|lGJ zn|Xcg)qRla&#T2n46w$K6XoM*HuBqN?O59Up z3O`Y8qRy1}-ELkV4&K$nP5uPEG~2IT4b)%)f}U2Lyhfgh{}O26{|Hz3_nZGWftY_! z*uN+2zZUBI_X_*>3j6m8177n#6+r*@uKM?``oFrX21zuy^z%KEh!Jp-F$AJ=N8@(> IEwdN@4ZG3EyZ`_I literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-value-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-value-1-chromium---theme-classic-dark-linux.png index 33b07d97fb75ddc1dc85739d4505f4559aff6607..2edf44e8a40accaa6a9c84a0d15e801eab9a836b 100644 GIT binary patch literal 5355 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 a?{-x-T$--wFwMOF<044QNE5B@_~c)aX>1t) literal 9751 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 diff --git a/packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-value-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/input/input.e2e.ts-snapshots/input-with-value-1-chromium---theme-classic-light-linux.png index 6fb6840e558c569cb705db8a11721e79710f91cf..831ffe148d349e13d0095b66a6f352b8d8062651 100644 GIT binary patch literal 5334 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 Y@3>rI)ofJCFX(|a^zIhkdGPE%0KrXxpa1{> literal 9759 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 G^M3=jrnYbZ diff --git a/packages/core/src/tests/input/readonly/index.html b/packages/core/src/tests/input/readonly/index.html index a25a52cd206..e4cf8f2b0a9 100644 --- a/packages/core/src/tests/input/readonly/index.html +++ b/packages/core/src/tests/input/readonly/index.html @@ -14,14 +14,14 @@ /> Stencil Component Starter -
+
+ + + + + + + Stencil Component Starter + + + +
+ +
+ + + diff --git a/packages/core/src/tests/input/with-slots/index.html b/packages/core/src/tests/input/with-slots/index.html new file mode 100644 index 00000000000..5378fa68ca5 --- /dev/null +++ b/packages/core/src/tests/input/with-slots/index.html @@ -0,0 +1,96 @@ + + + + + + + + Stencil Component Starter + + + +
+

text

+ + Text + + + unit + + +

dynamic slot insertion

+ + + Insert slots + +

icon-16

+ + + + + + + +

icon-24

+ + + + + + + +

button with icon-16

+ + + + + + + +

button with icon-24

+ + + + + + +
+ + + + + + diff --git a/packages/core/src/tests/number-input/basic/index.html b/packages/core/src/tests/number-input/basic/index.html new file mode 100644 index 00000000000..1e55e23427a --- /dev/null +++ b/packages/core/src/tests/number-input/basic/index.html @@ -0,0 +1,42 @@ + + + + + + + + Stencil Component Starter + + + +
+

Default

+ + +

With slot

+ + unit + + +

With stepper buttons

+ + +

With slot and stepper buttons

+ + unit + +
+ + + diff --git a/packages/core/src/tests/number-input/number-input.e2e.ts b/packages/core/src/tests/number-input/number-input.e2e.ts new file mode 100644 index 00000000000..9a3b696a604 --- /dev/null +++ b/packages/core/src/tests/number-input/number-input.e2e.ts @@ -0,0 +1,18 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { expect } from '@playwright/test'; +import { regressionTest } from '@utils/test'; + +regressionTest.describe('number-input', () => { + regressionTest('basic', async ({ page }) => { + await page.goto('number-input/basic'); + await expect(page).toHaveScreenshot(); + }); +}); diff --git a/packages/core/src/tests/number-input/number-input.e2e.ts-snapshots/number-input-basic-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/number-input/number-input.e2e.ts-snapshots/number-input-basic-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6d9d9b8aabc9404db649c4183eaca008031bc6 GIT binary patch literal 19205 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 Ag8%>k literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/radio-group/basic/index.html b/packages/core/src/tests/radio-group/basic/index.html new file mode 100644 index 00000000000..5f2b1e2c0ee --- /dev/null +++ b/packages/core/src/tests/radio-group/basic/index.html @@ -0,0 +1,31 @@ + + + + + + + + Stencil Component Starter + + + + + + + + + + + + + + + + diff --git a/packages/core/src/tests/radio-group/radio-group.e2e.ts b/packages/core/src/tests/radio-group/radio-group.e2e.ts new file mode 100644 index 00000000000..9141aa4ea44 --- /dev/null +++ b/packages/core/src/tests/radio-group/radio-group.e2e.ts @@ -0,0 +1,27 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { expect } from '@playwright/test'; +import { regressionTest } from '@utils/test'; + +regressionTest.describe('radio-group', () => { + regressionTest('direction column', async ({ page }) => { + await page.goto(`radio-group/basic`); + expect(await page.screenshot({ fullPage: true })).toMatchSnapshot(); + }); + + regressionTest('direction row', async ({ page }) => { + await page.goto(`radio-group/basic`); + const radioGroup = await page.locator('ix-radio-group'); + await radioGroup.evaluate((el: HTMLIxRadioGroupElement) => { + el.direction = 'row'; + }); + expect(await page.screenshot({ fullPage: true })).toMatchSnapshot(); + }); +}); diff --git a/packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..68a2097c806d7916fbc3db518ed485545e95da46 GIT binary patch literal 18620 zcmeHv2UJsO+CS<6cNn-2U8el_~_>VaQ-T(wj#P-HeRPf}2vpnzOFujBb*rWdZ$Mu;O2JAy<` zmmQ$L=${*zI2q7YGp9aI})q|-sEnR6Lk3`>_U$dJ59#PgLk+2|tgKX<3!ma4NN-H1Lu>6>_{nM7 zs7zG&X57Q9t+Jh~Q@nc)K{#WF1+5xmGUWZ2pCzPg(m6e1V$0$p&p)+C^|c6@ktDeM zW*v-{2ekZ1oi`e+8poaGL~eq5IS`V*-w|IU^fKJNj1J87YEV_1bJt2$tJ4CecT z5N+K)rb2RL`BCYGfIUn@6`@hx?JqHWHSUEu+Ia7hMRAGAF=OXvoPJ%T$EKU*)FtGi z{>hxy)D@cJtw3x6h~D!NWc@L{K`GnC^bH%$(7?w)`yCFW_%sVJlN1Q9^~Lp5%KqYiO*V zjZG@aX-V17V`KR^)8BT!@V@HEwEk_fwQ|07{dy*8)+Tm2HOEHCh@VXG+b|Q70V7+P zH}i^Z{($h#7laR8TZL1M^aYWO64VloXo8Y zB3Kdq?QXqea&9u~jZcQEt7$s8E{PG%cQ4GT=y<`UUqs09Y55I?HwM}E$tk^lm=v;8 z!|gl`Ig)`;y1=t)%a%HPUHkU;U%x)(?%_5ePpvy?U^1(JMt8H8nk+%n{{pd{T9rEnQL!wsH74L14v==>Pz=7Z_>J=>N&0ITp(B&MnQLbfLVUbT} z^}y~eKJ?Jsb8falI(Ir^wx+gL+uePI3tCrQ-CXLosdLpJsc^$W-|y<~hs!$12j*EY zHujzO2>jgKW7*E>C={aIzWq-2*_Akad-KDGXmQS+58r-v28=5qIL~OsS$o(j3J%Xi zqgBIFl3u3J*g+YpqbTcW`1^ju@i86`D2+UCl%+GHi?VtzTlXenYn5Pg_3=cjj0EZ4&}Mm z(zdtbP^F~jmoHyFX7~0IqRu)e-hYahMbhPBaBy&!cA-jibo7%)kFGj7Wz=zpQM1XV zuM_IoZaVAeg!_}0kkgZ?Nb2>R-B8qVI8lI0$r&R(aw4iWIakN{62s5;&KrwE+XHws z?3F$8t;ZYmZrn)F%QE7E@SQsKv}{tx-@o*%h{(#uT*u1CrA9Ocqpx(B?lK}pEjFb$ zxrovdzO_(^dj0xRddjoYDX0ylijp#>}#v zQ(v*6>sZ~hPDedAx7@oQUN*$bqRoY0x3p;W%33^Zh?AyU+}gRC!nw01(|ZI(Zw+0H zR^u)($=u`c`0>H6B3PDneN1vp3?mqyw89jlh=_;|bC5W>-YH+F?nhp zMY1C&0?J;|Lct)F9+fMv_;iYwH;o)qexsS{)-42SGeG7vZQwP*C|s6Vme@?^VbnPsZIw?JX?{5&Zgm9zExjLRrx5XnlvW zLU%-x7?(rtYP8KUI=a*|78R#BI26Ylk=i~!Mc#Y&Kw6R@VaJXi7ds)%$9EY5fe=TB zs3dw`CM9u}S5!O{71?P~IEH}`6~Ws(cU4`z;gOQb@Az| zx)FT*{Kpv>(s<&1wGg?hoq3EFXVVfAE>KZXdE1sBlHK@h0ajt##s66Xp-A?Q8ZLJ=uU7E`=IJx2>_$%WV`u#r zR7{9xoO)NY3kwTH!8&1w*45YRp7^DyB10&Rw6=hj`fWHc@nk=HR!bTK)piY2VPRph zcXSNzo{i*`j8m6nrY;W-jjFe9P2j3sYy8#-(^U%p>*{lkovm6C@iC~}Tpfs(wsuZT ziK&=(jE?3yPG9QOZife%a=(@~kOpqheDpdmJfyG0XANPTwgwEVierX#S%CT2~rYoDO4T93dbPmBY`# z!PzLIJM z-Klp!o@{StE1J5u8*k`KNh-JT?_{-WS&PlioH-NaZlS9ik*;=&Db`&g@QK)EZ)78YpBu11=Nmf>d`p8btgSeF;-tLv+VATYl;}jCo z0JC0{UJ@(rtYz#l{W9x_O~s?}Q>RadcRI4VmArm^={U5M7lb;AK2JqSNl6a5-97$} zm7dk0u(;8q`!E`j&-nJ=C!oQNZR^%S>sUI)#r011XI8H50qtc zG&>y!4YsywwRaBENWN~xM{&sdRr&d2&E$|8;E0Q3nVO!Rh2xjjMXz5d&UfxiDC{z7 z?_kr0KpvkIpoJhh9dWH1vdJ7OA+O)Q)%3YcI3*&Y{p+v4qB1ffIxSlU%L2s6rR)0| zf{WPIW5u0XjG-mTq4FdHX^)wvH0@MNOt&IwW~V1$pXMefRn2+?Fpsztgh$#R<}EW9 zwyhn@*q9%I)K@j&W_mg=U%ApYrHkf-?BBoN4%W23&cb&6>}5fqCgua(tRlGdWA{+b!w3@GEOd|K32k^;e{kf$xlK;^n~f#I&*A}ANg6=$Ou(rQ`c1B zI{wf-0=%9u5ayuVCR^w)e}=axbFuIba`qgLY4BOV1mr*m<0+v595V#FLG z?d|P#^o>)eV(fMG^r)wUuxo+XrW^;Pu9gczFWul)vhwb_R_4;q>EH)7%{@vX;xLQi zEvYzrduM81j$aN;EQ#2JM?{EC#NWNU7X%eGq?}24c{v{+U&~N=pb)>jl#~&9Ba4g* z385A+Db$gbm1VErU1&ib%20>yu z%X~2Lkpjlcq)q&EvkF`C)=qu$o-9QF*C!VrkOdhfoL}TS_oD9K|A~u>iz@J@X!_ z=HY@kAWhI`xWm9`wKX-p4A4t&N(_}vX=qT7J9q1XyGrO(o=K5T?i*W$xtY$Kl_-h+ zbVclXFvu=baM{Hw4)(^cZR5D%O?*@?r z4>S>=7TvBg_fgh7WVvc;n&~rEpSnA66w2(wbnv!zwpN^z5E|5uA~p@oixuET_V3-} z)U$z@3T4Bh6u*WqhA(K~0Uf{?d9It{ViI0$&CRbWDwGR)ogs+U$?&qlt37L;osQxH zM%h8+Z;ia&vwwhYY@{JlRzP<$E$y9ZqS~oEjay$a+m;Cn-dH%4%&OV{& zkRNU`-aWsT^)CbBKbbXt4`cuCB}J(6Z{m9jvQtxQBG2lkiN|uLl}|^2T4^rDdRB;^ zT=Q@j)(fBAo~qKrLP2>(d9IbU-l?z7`;&RSWLUugLG(ID^*ZZs-Tw(>XE1I$y}hy> zmN$3rTe0Xh#S4#dmadf=4-nAT* zGaojOA3f@7D50mTTWy~=rC=Dn(Lk88RV>r}JCLQnaTKvxVU*#GNn6OS#maZIwZ3($KH2Q9#g2Vt`&6R{ozAfdJgh?0ytc$Zp_)-U zJ+JZ)s&j#%q57ak=j4@^R;i5=YQ4Mv@J2^>clYrFKRxs-Ex)1Z=U0-Qo!!>nE@n>L ztc`LY-QB;@9O|D0YE1izAcl=*8hFy(%|pxG{Undi$JMZb~~BHm99$$jNf2Ts5kghuqnh6NuluVzyDNeBqP-WzGDZX;E{ ziiwNcYfQ3QSzGg+Jb586FYj#Z6)E4fH)H)0@b?Ae@q0AO8sudSdt2M4N;Y`9Ns-57 zPNRHl2Bwd3(dKJN<^MOJjfIJ<<$k51Vy~rR*F&15@x@15>b_2%^`8eGuudBpLXYd> zyWWie_!^}EndIUJ0M2(2FvUUk{R3|G7pHQnISFKUT-Q})){Ew!c%^(eVq7Kr3BhARz*ea)UxnzI8c6AKm>DV@F2wuwn z5{~(wbI&TM=-m7L2!L9mKZ4Tm`)&-BVcLO1!^4WyjPm})jEY-=A8`44dAYf^qcssv zSR~Y&Eh_C-rrNvSILC3?sZ}#(_>D1ujA>W*{7g+%Rnz*?cpE6E;uRDSqINBuN=iyp zRjb}5U^B^I)zgbagoQ;Qqq4xTe<*Z!;h#9B44Imn(>#Cu z88!1MCJzNKuY$Q~3FP8#F-ZR)$ZShfAAZFcQ<9#UDOmqP(zS}o)zuYj{@h#BswjE? zEfn={h!{HJ5ob%wBoF8Qlrip5DJiM8&!10Wx&2p1by=rVD}}G!I*c>Vvt%(pzq+?AooF>`*7c%}%M&&>ysfOP($MH>gpUMy#-?TsXEvGF;bAvi5nT2SLYe*t5Y4@K zWL#WE7CDsssw|+NdR=6fpG%BujzpZqbhEfTtsT`eLJ1@tx%c6vKrCjeER08tL)tjU z)rSAf8BMf)27>eWv13((ZhZ3cW`Ha6_9IMt53Y~5cXy)`9vtR^w5F)F&b9QK#Xy6f zw1oPvaYTfNzs|yZN7#LOZmkM{@j=OL&~%MLDo(xEvo+WVd;OkwVbMzGWNTNkSI$^n zG)GQn`ox6o{(I-+WPS8Lm|sm!PA>GRI1(ofo6BBg^BVcJoh3ut!ouQ`>o-2GHIH@R z!ciXe@J>ra_bB6=$mh>rmiQ3tap{Jrv@}f8<48Z+mZ06hvGQre$*Jh%{+FP-4a9(-L>R9YnEmj9rpYm8k z<`oapa|r92n9v4>+^#hx?d8i8Nd;fQTMZy5G&kCy51B>%w>(RZ4#5uQ=jWl4la=`O zGux(8u0(KgHL<4FF$6J<9nEVv+H+-fb9Y`!l6 zHYfGa$gL^B8lT^4HsseQ<#frf8<1C*kOBW2UnYd#ToX)QTezY0yk1I2H@T+fvXZj$ z)MFlGIA?~RM@Gf-D}eC4s;GF6)#&YoP`TCTQqt1yL!S<|v&f=4JZ80;KPCj8ZA8jv zt*)*HngY^OYBN>78czuLFGwT4Khg+T<_9c(q>=B^$X2q$`ue(=cb`P*Lh!H1-7+S~ z<1a}f4(~Vi(a5|s%(0$iBQLNC75Y!L@y5x+{r}UbrMbCzag(?)5~d;Otx4JmKqp=> zIPvnj6!o%G0{SI6x$8oWF#VCPY%jE&jF*;3c8-`dEdOsukLG!|^Fg$LZosUby129y z5gnb@0mEj}#luZYN=o>Q-d#nAI(3Q83iisLkmlxA9< z8u)YFC$eZ)@>QV@ZY=Tbxo))mE#oXSe!k?;bz@u^<3lf9}=3di6wV zYuaRMD*D|!15oB06?-l`YS&xT& zB>1tWmX;P-3{)gcLqnVpO-;>ggVQbr*Nm|KC1drmskv>UYVk5&RWku>-UhHn$p6;0y||eo4jc-yML6qgE893$SBuk^m2I!Q|iQ9i#+cY zdnW^oIwCj4G8iYf6f`t6Bx+qpZ)IsYv9<1M4~6P$oHzlA5w$}AV)$oE<4U8IA)L7BejlgA?rDpG=6eU7Q%Bqoq5sl-Ay{vZ@ znR)KnZK>4o^fPa4JwLi#D&eWZiI-XZzUaFj29C4tA`yjCz?;z9n+S+|mUCCdXKpVp zy7Y=b|?l1$4k17J(U<68{_-sfbB3YN(a8RrpxlpD)5D2 z5iI@%=u2_kn6!fGL_moGDxqf9LlprOH)iU9p^C~{>m0jggw@vg*G8UDoua@B^T6_F z?9wi4sBN>poM~xkhV`adjIwH|*S^#IEXQ{D&ODXTS0~6j5<@`WZY4F~t@IVZ{Jv}C zI|Om;_Rh8btP$mZx#V-ZHxGQq8zN+7b@Rj1F6VV}LIg~+iZh&CB*YxxhU@zOplX|V zUI*GooU|!Unu=<1Q=@u#0jQ{#5HlV{;27fJtQx#&+l)vC$g+U@-fkgG-=(yFAXggS zl&PQ35A=}s_V%daGdw&ho2#?h0Dn$Rg_^9K-(`o6n2|Z&!+PS=tZ4eOoX^UEo%hB5dWuXsPQ8R+Moy-a zaNGt*<+0GIqJEd=JP6%R)v6~mF

z_gghgPD=VN2>u^ZjyNEh(CAjE{}L0V<<36Ja2PaxTjR&!aQqvRJF|AX`D5G6N{usS zdfJ8y;{vA{ zpLPQcB!JD|pi@%P8=b915Gpm3U;99_416!_Bi~fHnr(Za&D)DpMDeV2z3E36_TIT& z>c5l$mXp4x%+7pLyb`{w1%rhiIuz(OpwRhdAD}$k8;jS&zj0WWTSKA1F4R>xYvu0l zZU<1dV&C)FSTx9G!Nz7<#D!sf_kUEiFZ>|N{)-XL%Is+YpLzfCPoJ*gf^~IuvyC#O zuIh0^!f)?J=2Mp2<^(2bkMzD3Q9f>N?~CleX9VDebQSo;f?6D89wahryWTJ#OkgKC zcfEtaH!&hVo0t`^`4=#naKt3Od2`igbw*Q|p83t{v>EZTot@pjOzbM!Y%V!9WE!+Yc)NjBS&3RtLO8{8A5CV!W&qHxF9tR4b6+AwYlaW?vj8K z?y-OGo$E;GTLT?4v#j*=(_ooW8H5G~YG1r~k?a#zoum&mc(U)DB#V@r?QbBDJxXdT z^#b+OJQ6`vC6&!Jt`q&&edWO6?%@F_C=9uzalG~Z!G*3utH3FH2VFDx6(Gt!$u;1F zfY7WVzY-q8ESUi0$XVXr#JajGN*6D_&d=Ag4ub^Hu;I2g$7s%B!2U)0E<(usFpo@s z@@BvGSKyQWR|6lvYF98sD@43dhpYTL1Jm<|Xo&T3%j1}@0p%*p{3<>Q} z_-6N0>s>ZDlk(4Cnf2_(s)hz!Hx$d#@?v*CtbCjR6q&EDZ`FB#D)lWM^>cmh!l8iM zB;#6v*4yCn)F3wWqaTV zwRc{8otUTyOq2lpBRErAd4Ue_Zebz2(-HVt8OYxnxv}rid!f4OH~}9cRExHDL}Vl% z1h`7{ayrn;8o<`jzj68RO29qZ+dJb)kqNJOh1orSXZm;d`u_qN{)i#|k6iMH5BPf@ zuvwus@Qqh-gic84>H>nHi;O2{`pgyl8?=1C<^&}p5XwriTbojY(yz8v&TTlatD}`%da#6b-xy(bQ)7%H zPzo}prbE+`k}f`@4dkqL6bH`V_?BlJDnKZFEt~8U4j8LPj}Elsa5au+C+7#tV&MH- zd&X0ek|sXCwb&qTV)cdTbpQ<{=LGElj)wZD^3prYSJ>#U&J?mIHUSR8fuBrJ?#BY# zLE&^}k*IUeITq;(A^M%|f5JDq#gP}7%>gslJNNXk0$`GupoN+Qf#+EY8lgaX*@h{^ z#VBmsw%BkAn6QB4V$&E8{6IQD>s+1dMT5r%Xrle*2hOX-N$Emodif!Tej=F>mr!sV zC}8Qoa}E^Z_Fc0b`t%ss99)X7?Zbh>Iv0jFt&b5?1sXI8ouTcnmIth}Lj2M|N7`o0 zKKKzPiG==bUmULFjXIm(^0Szjn9OCBU9hdZ|NpGaY>>N(hCd6^NQDlwT@G~Wq&S?d zX7NkdEo~!P)srf1R)Q9p&YIjkkLYA1O+g$1p_UuDb_L5Vs*TJJc6QZ8-CYRIjEoFWWmWf;_~dxZcAYjWl{qX$YuQ)q zHU6Sk*vo~Hk&!fEV4>Z5e|0-?-ac$nHc+}RTFe1=pAyL7BKwZ|Mh<*Xq;ws4f2Rj@ zBwEfwS+H~>A>Fh@ibif;0Ws1iMi?V)&Z!z38w0D{3#CBXQQ)+wZcbEjwRaPRoCP2? zH$OjK3{Ws}1?yw6uIr;wsc+w&QH?xZT`9l1AhR?ha0HMCro6rkEY+}9O+!Er})3^-a zSJWuIIUcvZXaXArRzykPwVNKZeR08|vXOleB{uaYSbx8KIiedb!#IjWB5h4~ltzjX zG9hMW{r6$pbjt0+?Mah4LQGIQy9Oa@Dx0acv~e*@H#brI=D;We6Vs+h)|b3@<)R|u zg^U*;zw>0hwuX~`?Y?}+PK1UK7V^b@cKdKsG_?G4JNW_*y5_H}tn4zI*Ac%I3`~g( zEG+df99)PfRJxWg_$3v;Ktft=%*06nlrgcfOA{PS+3^0WA#C#TckbLdLQTyLDJ&{# zZEugrkIrf7>x(y*hZXI(+-@KKY`ABhkclr4j5{oq{U(v)Fs&OW1XxCp#IiC5`mU&q zZulyl$rswrbJ|p5hqS}{QjM2>$;h6mfBUkeUJCE|WjoFsI{I&W>)=~*6j?C%&`ogW z(&iRTYGR2j#Kqk6Tp1;e)y;m=mfKP!_A_F;6YtlfMg3N-hT)zA32E9(6Evkra!(FV zWe5@W@ZrO=qN3rPlQT0{Y;0_-OKd!Va_=%dE{6o7CsCL7%j7i7hVC7RVB551-5lgF z%y%>dlt`z9?{G`9>QWeTi*tL@GD&oOt4iBZ;x=ZkPT)NovAev0$VQd}O0yXsqpSE&%X>@XnD#> zUbsgE8t?R?+3o_XpJiEW;c8L;x-&J4%vzy*U?E)`ffdu^q6z{QX`}$$+EyzI%(6S* ziGi8EZkUO!F(C8ZP_g_MdcN-Iz`3>3c=&%y#c)GL>+^ zrGt&e4aqF9wwrr5yxQZtRBzM3ChIMln3xD%Uoti_YU%Gsa;ZjIT3U{zFO~57ER_rS zpMjBUd)G&W;L&{%{H|qG5=rCQ$c?a$?dY$tpXxB3+sLN{i=(V=L!aNe30(7Rm=0l) zjsy!!E=Ad8QVSfP=BVdCdEiHEa;4nbU1RS`*PX}sjsVCV?Y zi5uU)SMV>MtTZh4yp?h#8c|wWDk>&ERxlo4s|JU)8X}99yOKNC)+&})Rz^FpBzIPW zBJos>&`}gRGiJX3i!X!@^>B54N#xwQbA#u72y^v!Lsk#gKNq#rVl~Cckyp@Wqf-u< z)$Xz#qX<>O>ZvTaEF}9z`4cyH*mwmKv<`TMmlApW!=dnLV=u5NTZ&w)5F<7GS#?Ka zcrPzUcMJ~?O9G^ld6P+adr>|RJ8g?ZzIyfQAPplk^NX7lGjnqdFKFtj zyC~V}(!zL_h4>sm2OBbDw5t@#Uq=70Kd3}hr(mQ>L{KQ3)x+i&aKmllG@mG*%IOxpWH1)Df<0#oYPe5GoF+Q$jKSFXwh5!f@4GBtti&N;V zk%{I+NinGy&S+_vGcfQq#>nCqz19g}XMKEd7`T#O_--2aHvkDSyaYbvVX-}ouM-AS zV4z8}sl+4!4hT?E*G zCGd?S6%~%Xg<^mOsivDN7BMTG&U|t1)=9t|2&Qqk=KHqT_S{4@KOk+Ljp4N=d~K{N@*ff`f_C zUv@ABcLF;^Jzgf_IA(b)Ema&ly2m)*u{t%XpYsa=@qYj7K>~JW3eG+);VaLx;Hs{2k<8St|n4+ZkE?oRA^6607<1ABM(-j zh;XiuF@`)NRQSbEJdZ1Jrufoc-#TN1-))b17Wkdt!SIj&c8Z3*z&S(fIFL z43|+-CjsYcy8V9vwq>3l6LjLgYl41E%8xbqBZGiF`6Ge;2n9bv!T*n;fJ~|RQqjjb T_xZ?nYK17NU(CEz0v literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/radio-group/radio-group.e2e.ts-snapshots/radio-group-direction-column-1-chromium---theme-classic-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..80529fb949a85f4b80d42c5233d691fdd15a3de5 GIT binary patch literal 18228 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 M_Hb(W{^sBR7Z&CJBme*a literal 0 HcmV?d00001 diff --git a/packages/core/src/tests/radiobutton/basic/index.html b/packages/core/src/tests/radiobutton/basic/index.html index 5e0cdca4e3e..b5daed0e753 100644 --- a/packages/core/src/tests/radiobutton/basic/index.html +++ b/packages/core/src/tests/radiobutton/basic/index.html @@ -15,13 +15,13 @@ Stencil Component Starter - + - + - + diff --git a/packages/core/src/tests/radiobutton/long-text/index.html b/packages/core/src/tests/radiobutton/long-text/index.html index 492634a6cf7..f01b6ca6f3a 100644 --- a/packages/core/src/tests/radiobutton/long-text/index.html +++ b/packages/core/src/tests/radiobutton/long-text/index.html @@ -16,19 +16,19 @@

- + - + - + Stencil Component Starter - + - + - + diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-autoplacement-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-autoplacement-1-chromium---theme-classic-dark-linux.png index d8476095531f1555a9712c7b4507a2ff44bb274f..4db0943cac2fe6c3e19f796c068dd6c6ff631951 100644 GIT binary patch literal 14410 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 J`9F5g{tLk9&(Qz? literal 15362 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 Lzm@#z{^$Pzt{0ok diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-basic-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-basic-1-chromium---theme-classic-light-linux.png index ad9a1553d2669e7d0894a0bf399625e8fd915a74..8fd9e186cf16689536ed4df74b12505b32a4f3b8 100644 GIT binary patch literal 13410 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 literal 14239 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 f@qa+KI)&yH;@J-qZgBQv*qc diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-editable-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-editable-1-chromium---theme-classic-dark-linux.png index d9ea5dc4fb2382fd00b80aad4e7e37e18a423ebb..e784b45659cf5351d250c8d26749e54fda8738a0 100644 GIT binary patch literal 13943 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 Lzm@#z{^$Pzt{0ok diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-editable-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-editable-1-chromium---theme-classic-light-linux.png index ad9a1553d2669e7d0894a0bf399625e8fd915a74..8fd9e186cf16689536ed4df74b12505b32a4f3b8 100644 GIT binary patch literal 13410 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 literal 14239 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 f@qa+KI)&yH;@J-qZgBQv*qc diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-mode-multiple-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-mode-multiple-1-chromium---theme-classic-dark-linux.png index 2678ac41531d8288ccaedbc7126cb1af1222a65f..7036c1e754cddad65c7025153b288f620dc29085 100644 GIT binary patch literal 16388 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 U;*#FZN_Q9Jvcu1H7XyC#A5=Q#F8}}l literal 17235 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 AmjD0& diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-mode-multiple-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-mode-multiple-1-chromium---theme-classic-light-linux.png index db2047a45ce1a5dfeea7e7102fc513502d3b7837..d382720d9c3d98ac3dd1e2cce80a8cea214b0902 100644 GIT binary patch literal 16383 zcmeHtXH=6}yLLcFEGRSMjEIOhuZV>JrG%jLt^|nG;4s1nDoT|a9Vt>n z5n>1s6qOo+w9rCOAQ1ut2qA>DZ^v`i_vfr{y=$Fy&i8A6WbHi3-p}6q-gmj~>)sE3 zw>I6s_sCud1hU`k+HbZH$amnYF7=l_nZCCB&mxHAi`_30%}syUz5DbZ348xOy<6k?jLn5JlD5Uye)#E1 zo^1*8w+qD__Z!2)=bE=3B4|swtSQ!$Dl|6?O3&POkikr@P3>b% zKYuIn{6=&HBRkpJNVzg{@tH{4G9(&`3&Nj-{S20tY8O?;Qt$hWU(PczCYzVrSBNfl z1Vau@53kM2at}vDM6gK_5#93W`0T>|*3--)R{lm1+Q`7;X$~0OZd=MGXxA)oJd3$@uQv0(b&?BDhe`!Xw zQlGSF*BUSn94$gh9q3)H`w*zJFx>1NT|IoJ)p0R1q8ZtfR2gZ7-K>_~ZlTGfV4B?A z=RAi;PDYelz+hJb0s}HEVRN36V2b9sQPuAq<6QB8>s>xPF8$K?r zYN!=q(CB>g>CbJ&_Gxlxq?A3qP+}yCPqbNYuT=C&EvlSr57u>?LF5tc=R;{B+d7|p zN_&xOm9N~SB|H{O1%{YvL2Tz2=SXQFs=>;Fxzrj0DF;Fdg`5wYdVdtT-0B>frH=br zYkVlG&LZ*W$;SSaWf$K`wj+kh!B3*QesG%3-6umi5$vLiW+HM4{)fVa9?o{x>%Lwl zH#gfZ+U8886x%!H?2eXzK(b@BcO{^qrEsa+A-mF!<_qFcp6UicX|Yk&S+Y?tEE?dO zlwU}#R4Bf1jXcFoO&ly)ZpnF_N6=91;=k4M*ZlKNiEa8s@i~DaR}m~Y3}dno*w-k! z`Z)hd917(rM0}LV;jIQV6UpxSHs}bi&20)>PW$GdTbd54A)t>hfzT6>->k|&APL16 zA!CQ3gv~boO?~J3i5s#Cn`}ORB8DFQkelDY&4mIrfY9JCceE3rYhk0VxYYhe{jWoa ztg4Yl&yd*lk#XS^pGaw;Va~Wkt#G3@ADogM=jKEn{Fp`xP183?l#+HEED^sX_2Ns( zc43Dpoh!3z?tLpZe^xUz)<8*K0p(v|nr4%3`OHWM%jZ10Us?ZjC3dqqh~2A#ScoI3 zj@~Kbc~ceE`wRtIx8FaL+a!_rC%dx=E&t*WHr&%cKv6Pn{P?yA;iK^{vN?2yuRtw_ z!m$hp@I}dvU-7nP=}|01amwTZ)b)Pjh0Fpj>tNW2aXRgOS&@5{j&k?F#YEQINv7)N z9ohFWp)I*LFDEIP<>`bLC8n92RWOKfd*=WS4U&2ptei*T9&K(GbHb!sJ zc;9TMykbwVDCR_EcnE%g9*r8Po!TTgcVH)loU0~>&&Ad-tIs;o8sigv$FQ$S)LuoI zK1@jLY3k(73_e3vik{g9@3yjO%|;msCL{|n<#Y`*_qY|V(On*)exBTxt|(Z4e-yEe zX&8A7CnjPkx#S|$&3lV(zheliw@lowO17U;j8^JMlD0|*rs~5k3M_L*Al=+u9u@xD zX7(7YK4Ff9hmbH>o|7*n%aFubBen4SAGdAS3=fa`^upbr%0D(ft`gywu}{eM5(;Rh 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 ZHu0FuH=XF8B^nOI{F?PoRad-z`%iky&XxcG diff --git a/packages/core/src/tests/select/select.e2e.ts-snapshots/select-overflow-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/select/select.e2e.ts-snapshots/select-overflow-1-chromium---theme-classic-dark-linux.png index dcd864e4871bb1420f94a13d2829b662a74188f3..71eda21413c034004da6a99c96ac8c20c9271cfe 100644 GIT binary patch literal 14669 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 literal 15629 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 k2_650M=gl_O9AhzpC1g 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 A%>V!Z diff --git a/packages/core/src/tests/textarea/basic/index.html b/packages/core/src/tests/textarea/basic/index.html index b2c28c0de70..7f15bf537cd 100644 --- a/packages/core/src/tests/textarea/basic/index.html +++ b/packages/core/src/tests/textarea/basic/index.html @@ -14,15 +14,17 @@ /> Stencil Component Starter - - +

+ + +
diff --git a/packages/core/src/tests/textarea/disabled/index.html b/packages/core/src/tests/textarea/disabled/index.html index 7b220e7ce6b..57f4958eff3 100644 --- a/packages/core/src/tests/textarea/disabled/index.html +++ b/packages/core/src/tests/textarea/disabled/index.html @@ -14,19 +14,21 @@ /> Stencil Component Starter - - +
+ + +
diff --git a/packages/core/src/tests/textarea/readonly/index.html b/packages/core/src/tests/textarea/readonly/index.html index 9bd31eb281c..d2c6d5d3dd6 100644 --- a/packages/core/src/tests/textarea/readonly/index.html +++ b/packages/core/src/tests/textarea/readonly/index.html @@ -14,19 +14,21 @@ /> Stencil Component Starter - - +
+ + +
diff --git a/packages/core/src/tests/textarea/textarea.e2e.ts-snapshots/textarea-basic-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/textarea/textarea.e2e.ts-snapshots/textarea-basic-1-chromium---theme-classic-dark-linux.png index ea3c6aa2280af7c9787382fc6f60eba5789f63cc..343bced30685787a8d0a12cfdd8abc2e798596aa 100644 GIT binary patch literal 9597 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 aj@p}RJ^OLt`;0&wxSsMjS@U(!PyYi(UmNNG literal 9437 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 L^LfRmA>aKQ50k4x diff --git a/packages/core/src/tests/textarea/textarea.e2e.ts-snapshots/textarea-disabled-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/textarea/textarea.e2e.ts-snapshots/textarea-disabled-1-chromium---theme-classic-dark-linux.png index 54f0a915c92a0b724c0a62cb7d5ffe7dee8902d7..954332fbb8fae4df799c73214a33fd6b845c0710 100644 GIT binary patch literal 5520 zcmeAS@N?(olHy`uVBq!ia0y~yU68Cw?cHg?2Q-sG;pM^qbsz@AhxZ%}AX-3;feA=C%wXUEaTA#oKvWB7 z1Be=x1O~zehxWgD(_|S1Kp`UbY{UKDw`JC+r$NGtyGZ)K-uiXvH-#A(fzk0#(DHY6>=>I$W)%?NLs^Y>q zMjyW1{JimYt^EGHytGPiJQy6i`SWMQ`uRQi@%w#l&-^vv@yG8KA3t5K`0?Z76-{8A zFg#d4-=6RB=jHvA%hl>3k*+fxnhr)Y+i0QE07@jICF^J)jMlNE4GjfQVKCa-8V!We zcK2xKW3&f0+6@Jkgrk8l8VI8u#nC=e127wmb`+@_2=xrlX1Dz|-~J{TWUi;HpUXO@ GgeCydU3rE8 literal 5479 zcmeAS@N?(olHy`uVBq!ia0y~yUKAxhwCEEGH!#Qv7 z@B8`idF+~NvmXOZV_@*iUsnre6j(ATfEX>D4IoNDje!YBIm}?-0C5ussU(Z+x7{-Z z85n_1RCvDO{@JqKb0rxCKrRmQ`}qFdzr-{a2N3UsMSs09#1ATSj@wH&fCL3T#{AjL z2=*VN{?YxHt2ajF_g%LEYu_>F>Gk~k>uZ@o3JVnLprOI*0OE59Lu~Y6U;*+P3?Mch zf><>wi5Wr*4%eAOga3)lx7|1Mwi_!$LiCj8zq@zs&-6f&ndI}2`EHOvZTb8oof#Yz zO7ptw%^(5(VCj$YDt)_qb(ZhS_CJ4r`LgMIPz*4{UHtScEo?RaW*fQxXP4hT|M}bB z-P!lSQhO#Hw{QRX_49F^u-9il-Z~Ca&M-X@V)ST~0Rv++5Jm%Gv;-S1#z*Tih0zKf z*p31xAm#Lyx!_jrkWy8vs)tmTtVn1lpc zSs%K!=IZau@%fR@x2$_@#Q+2jmnPT$1u+;NeB{`CkVT!bzQE!1rZ=0E8JK{A2M+3- zHky7qb-FI207wyE%K0DWP^rW>vj5Xq96-VrEx$jW=LIu6Dm4D>WaI#eGWJXUPfPQA zy=&d>wTvKv_M&@MA09qlZhH^RwR!M&_x9QQzOyTUBwL`mHcw-gVyr*FsC#*{G=>*s6vE$8}u{&`yA z`p%tu?^>~f)qMR@Gw=0l^V#KQ{~;cenJx_ssw#oa3M{;gV)YCLp$UHVKMLeQsy$u( KT-G@yGywoT{GTQO literal 5457 zcmeAS@N?(olHy`uVBq!ia0y~yU4j$R1!xZG<~a`F9`{(A|UhhQzK(Y%35O6 zUk_!b+&Q)%szxa9@qGCPP?!pQ41&cKQ(SkwvGMKi^7hx;zrTN0VkNtgAEabQ^Xsox z`|JMC{Jbsq^V8ScfBybb@HC20pVWhvOi(^Q|oVRy2W(6n8v_I4jdJ|$D$-z;j*w`PlI`h^^|G3)EEhK~{d|9Zo#oH<=k%|&Gco{yitVra{2&IyKiSD28Q)D@ zU{x=cvH$kDP09>RK+yw--jv_ocrz#MrVs;2LxSVGNB5sz{i;*VqyXeH=p4E8F`tJ~ z0K^u1Sof!x8O&7bJ8EwZ)}ZiU;Sclc_Zz~Wi@!ds;|)@G;L#i(*^1BK?#jFeaT)r4 z{CN0x$^G9WlyKR+QFlwDXay`1a@MkHTW(y!yN6J}H2l zkFMg{vd$@?2>=DGuuA{{ delta 414 zcmbQL{Z?y&VX(TVi(^Q|oVRxt<_RZAv|U`El9&~8amn=tw+RZKJ0y=Bneo7{Dw5@} ztj~g7U1=O$t1`{DFFQH8_|AK~zfaEZj#ziCosj_uCf$qq1)>=q)J&YXwf@%oZN|zB zOhCTFxw`Fh&!!n0Gbww3Io=_DeE??G^HSJfGJA zWOPS`-oKj=V;iPFy8m(Sj}IR&KRkcqeWZoVtz@01RvPsY<6U^6P$d2b-CC#`Qn&(WuGQCg%3-Di@8nQkvFpX3 ze*Jjt{n79Bu64{n^B7d_{=Uu+VlcexW8eVMiA)M0s)e%wLjLu63`cHR{LjKRfw&|Fasq_g~dOT7JBbjgLS7eYO1OKQ}M?TF+j6 z_href{`q$2&&TiI?gvT*4E44(1@&=zYc^JFVdQ&MBb@05!pGAOHXW literal 5464 zcmeAS@N?(olHy`uVBq!ia0y~yUe*xuFPgg&ebxsLQ0DNjEV*mgE diff --git a/packages/core/src/tests/utils/test/index.ts b/packages/core/src/tests/utils/test/index.ts index ee3605e7c5e..784e479fae6 100644 --- a/packages/core/src/tests/utils/test/index.ts +++ b/packages/core/src/tests/utils/test/index.ts @@ -7,6 +7,7 @@ * LICENSE file in the root directory of this source tree. */ +import { Locator, Page } from '@playwright/test'; export * from './page'; export const viewPorts = { @@ -23,3 +24,23 @@ export const viewPorts = { width: 1920, }, } as const; + +export const preventFormSubmission = async (formLocator: Locator) => { + return formLocator.evaluate((form: HTMLFormElement) => + form.addEventListener('submit', (submitEvent) => { + submitEvent.preventDefault(); + }) + ); +}; + +export const getFormValue = async ( + formLocator: Locator, + key: string, + page: Page +) => { + await page.waitForTimeout(100); + return formLocator.evaluate((form: HTMLFormElement, key: string) => { + const formData = new FormData(form); + return formData.get(key); + }, key); +}; diff --git a/packages/core/stencil.config.ts b/packages/core/stencil.config.ts index b8f3eb53e59..782b9891b94 100644 --- a/packages/core/stencil.config.ts +++ b/packages/core/stencil.config.ts @@ -20,10 +20,7 @@ export const config: Config = { tsconfig: 'tsconfig.lib.json', globalScript: './src/setup.ts', extras: { - appendChildSlotFix: true, - slotChildNodesFix: true, enableImportInjection: true, - scopedSlotTextContentFix: true, }, testing: { testPathIgnorePatterns: ['/node_modules/', '/tests/', '/dist/'], @@ -50,29 +47,34 @@ export const config: Config = { includePolyfills: false, includeDefineCustomElements: false, excludeComponents: ['ix-playground-internal', 'ix-icon'], - }), - angularOutputTarget({ - componentCorePackage: '@siemens/ix', - directivesProxyFile: '../angular/src/components.ts', - directivesArrayFile: '../angular/src/declare-components.ts', - excludeComponents: ['ix-playground-internal', 'ix-tree', 'ix-icon'], - valueAccessorConfigs: [ + componentModels: [ { - elementSelectors: - 'ix-select[ngModel],ix-select[formControlName],ix-select[formControl]', + elements: [ + 'ix-select', + 'ix-input', + 'ix-textarea', + 'ix-number-input', + 'ix-date-input', + ], event: 'valueChange', targetAttr: 'value', - type: 'select', }, { - elementSelectors: - 'ix-toggle[ngModel],ix-toggle[formControlName],ix-toggle[formControl]', + elements: ['ix-checkbox'], event: 'checkedChange', targetAttr: 'checked', - type: 'boolean', }, ], }), + angularOutputTarget({ + componentCorePackage: '@siemens/ix', + directivesProxyFile: '../angular/src/components.ts', + directivesArrayFile: '../angular/src/declare-components.ts', + excludeComponents: ['ix-playground-internal', 'ix-tree', 'ix-icon'], + valueAccessorConfigs: [ + /** Value accessors should not be generated */ + ], + }), reactOutputTarget({ componentCorePackage: '@siemens/ix', proxiesFile: '../react/src/components.ts', diff --git a/packages/documentation/docs/controls/_blind_code.md b/packages/documentation/docs/controls/_blind_code.md index 94c1b5746c2..c87376f0225 100644 --- a/packages/documentation/docs/controls/_blind_code.md +++ b/packages/documentation/docs/controls/_blind_code.md @@ -6,7 +6,9 @@ import Events from './../auto-generated/ix-blind/events.md'; import Playground from '@site/src/components/PlaygroundV3' -## Examples +## Development + +### Examples -### Header actions +#### Header actions @@ -24,7 +26,7 @@ height="16rem" > -### Variants +#### Variants @@ -34,12 +36,12 @@ height="55rem" > -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_blind_styleguide.md b/packages/documentation/docs/controls/_blind_styleguide.md index d18bf2758d8..f17dd207c3d 100644 --- a/packages/documentation/docs/controls/_blind_styleguide.md +++ b/packages/documentation/docs/controls/_blind_styleguide.md @@ -3,6 +3,8 @@ import Preview from '@site/src/components/Preview'; import Props from './../auto-generated/ix-blind/props.md'; import Events from './../auto-generated/ix-blind/events.md'; +## Guidelines + Blinds are UI controls that allow the users to hide or reveal content by clicking on a control element. Blinds can display a large amount of content in a compact space or present information in an organized and hierarchical way. Blinds reduce the user's cognitive load by removing clutter and less important information from an interface. We typically don't use blinds if the content is central to the user's task due to its reduced visibility and accessibility. Blinds consist of a header section on the top and a content section below. The header section contains a chevron on the left followed by the blind's label. Within the content section, content can be placed freely. @@ -12,13 +14,13 @@ Blinds consist of a header section on the top and a content section below. The h 1. Header section 2. Content section -## Types +### Types Multiple blinds can be placed below each other to create an accordion. The recommended distance between the blinds is `0.5rem`. Typically, only one blind can be opened within an accordion but users can be allowed to open multiple blinds at a time. ![Accordion](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2-655&mode=design&t=9faEnH99BaAxqCGM-1) -## Variants +### Variants Multiple blind variants are available: @@ -29,23 +31,23 @@ Multiple blind variants are available: ![Blind variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=929-47485&mode=design&t=9faEnH99BaAxqCGM-1) -## Options +### Options - **Icon**: Blinds can, but don't have to, include an icon in the header section. The icon is positioned before the blind label. - **Sublabel**: A secondary label can be placed within the header section. The sublabel gives additional information about the blind's content. - **Header action**: The header section can contain an action area. We typically use the action area to include one or two buttons for actions directly related to the blind, e.g. to delete the blind or to navigate to additional content. -## Behavior in context +### Behavior in context The user expands and collapses the blind by pressing anywhere in the header section. When the blind is expanded, content below the blind is moved downwards. -## States +### States For all blind variants, a default, hover, active and focused state is available. ![Blind states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2-352&mode=design&t=9faEnH99BaAxqCGM-1) -## Dos and don'ts +### Dos and Don'ts - Do stay within the recommended number of blinds - between 3 and 7 - Don't use multi-line text in the header. The header section has a fixed height for single-line text entries @@ -53,7 +55,7 @@ For all blind variants, a default, hover, active and focused state is available. - Don't use a blind if there is only a single category to be displayed - Don't use blinds to display hierarchically structured files or objects - rather use a tree for such cases -## Related patterns: +### Related patterns: - [Tabs](tabs.md) - [Tree](tree.md) diff --git a/packages/documentation/docs/controls/_breadcrumb_code.md b/packages/documentation/docs/controls/_breadcrumb_code.md index 1d99d69b45c..d08601b918e 100644 --- a/packages/documentation/docs/controls/_breadcrumb_code.md +++ b/packages/documentation/docs/controls/_breadcrumb_code.md @@ -6,48 +6,50 @@ import ItemEvents from './../auto-generated/ix-breadcrumb-item/events.md'; import Playground from '@site/src/components/PlaygroundV3' -## Examples +## Development + +### Examples - +name="breadcrumb" +height="8rem" + +> -### Truncate +#### Truncate - +name="breadcrumb-truncate" +height="10rem" +hideInitalCodePreview + +> -### Lazy loaded next items +#### Lazy loaded next items - +name="breadcrumb-next-items" +height="8rem" +hideInitalCodePreview -## API (ix-breadcrumb) +> -### Properties +### API (ix-breadcrumb) + +#### Properties -### Events +#### Events -## API (ix-breadcrumb-item) +### API (ix-breadcrumb-item) -### Properties +#### Properties -#### Events +##### Events diff --git a/packages/documentation/docs/controls/_breadcrumb_styleguide.md b/packages/documentation/docs/controls/_breadcrumb_styleguide.md index be441e5840d..f4c32f0d05b 100644 --- a/packages/documentation/docs/controls/_breadcrumb_styleguide.md +++ b/packages/documentation/docs/controls/_breadcrumb_styleguide.md @@ -1,45 +1,49 @@ +## Guidelines + Breadcrumb navigation is a UI control that allows users to track their location within an application and easily navigate to previous or child pages. Breadcrumbs make the structure of applications transparent to users. We typically use breadcrumbs in applications that have a deep hierarchy of pages or content. This helps users understand where they are within applications, and makes it easier to navigate to pages further along the navigation tree. As a general rule, we use breadcrumbs for information architecture with more than two levels, but not as a replacement for an application's main navigation. If the information structure is extremely complex, we often consider using a tree instead of a breadcrumb. Breadcrumb items are interactive. Users navigate to their respective location by pressing the item. Each item contains a breadcrumb label. All items in the breadcrumb path are always followed by a chevron icon except for the last item. ![Breadcrumb overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=20-8463&mode=design&t=JS1Aklcq48swr0Im-1) + 1. Breadcrumb item 2. Separator 3. Dropdown -## Variants +### Variants Breadcrumbs are available as a ghost and solid variant. Both variants differ in font and fill color but interact in the same pattern. We typically use the ghost variant to create a lower visual emphasis for users. ![Breadcrumb variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=20-352&mode=design&t=JS1Aklcq48swr0Im-1) -## Options +### Options + - **Icon**: Breadcrumb items can, but don't have to, include an icon. The icon is positioned before the breadcrumb label. Icons can be included for each item or only for specific items (e.g. the root item). -- **Show child items on last item**: By default, the last item of the breadcrumb doesn't offer any user interaction. An interactive item variant is available which allows the user to browse to child pages of the current page. Pressing the item triggers a dropdown listing all child elements. +- **Show child items on last item**: By default, the last item of the breadcrumb doesn't offer any user interaction. An interactive item variant is available which allows the user to browse to child pages of the current page. Pressing the item triggers a dropdown listing all child elements. - **Visible item count**: By default, breadcrumbs display a limited number of items. This number can be adjusted. -## Behavior in context +### Behavior in context - **Population**: As a general rule, we populate breadcrumbs location-based to reflect the hierarchy of the application and the location of the user within it. We always include the current location in the breadcrumb. - **Overflow**: If the number of items exceeds the defined limit, items are hidden within a dropdown menu at the beginning of the path. The dropdown menu is triggered by pressing the respective item. The truncation is visualized with an ellipsis. The overflow behavior can also be triggered if the available space does not allow the complete display of the breadcrumb in one line. - **Text truncation**: Truncation is applied to individual breadcrumb items if the maximum width of the breadcrumb item is exceeded. The label name is truncated with an ellipsis. - **Placement**: We typically place breadcrumbs at the top left side of the page/content area, below the header and above the page title. -## States +### States Interactive items can take one of four states: Default, hover, active and focused. Non-interactive items are always in default state. ![States of breadcrumb items](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=120-7463&mode=design&t=JS1Aklcq48swr0Im-1) -## Dos and don'ts +### Dos and Don'ts -- Do label each item, i.e. use more than icons +- Do label each item, i.e. use more than icons - Do use single-line text entries as breadcrumb items have a fixed height - Don't use breadcrumbs to display a multistep process (use the [workflow](workflow.md) control instead) - Don't show multiple breadcrumbs on one screen, e.g. in a content area and in a drawer -## Related patterns: +### Related patterns: - [Dropdown](dropdown.md) - [Basic navigation](application-frame/basic-navigation.md) diff --git a/packages/documentation/docs/controls/_card-list_code.md b/packages/documentation/docs/controls/_card-list_code.md index 1416fa7fd01..220c4059098 100644 --- a/packages/documentation/docs/controls/_card-list_code.md +++ b/packages/documentation/docs/controls/_card-list_code.md @@ -4,20 +4,22 @@ import Events from './../auto-generated/ix-card-list/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development + +### Examples - +height="55rem" +name="card-list" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_card-list_styleguide.md b/packages/documentation/docs/controls/_card-list_styleguide.md index 8371bf9bdcb..c96516212db 100644 --- a/packages/documentation/docs/controls/_card-list_styleguide.md +++ b/packages/documentation/docs/controls/_card-list_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Card lists are UI controls that display a large number of cards or items of the same type in a lightweight, grouped manner. Users can hide and reveal the card list content by clicking on a control element. We typically use card lists on dashboards to show a huge amount of information in an organized and hierarchical way. Card lists consist of a header section at the top and a content section below. The header section includes an icon button with a chevron on the left, followed by the card list's label. In the content section, items of the same type can be arranged in two different layout styles: stack and scroll. @@ -7,8 +9,10 @@ Card lists consist of a header section at the top and a content section below. T 1. Header section 2. Content section 3. "Show all" button -3. "Show more" card +4. "Show more" card + ## Types + The stack card list style displays content items from left to right next to each other and wraps them into a new line when space runs out. This means the height of the section can dynamically change. ![Card list - stack style](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=910-8581&mode=design&t=2pf1CqY5ifYKN3F2-1) @@ -17,7 +21,8 @@ The scroll card list style displays the content items from left to right next to ![Card list - scroll style](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=915-8647&mode=design&t=2pf1CqY5ifYKN3F2-1) -## Options +### Options + - **Label**: Card lists can include a label in the header section. The label is positioned right next to the chevron. - **Collapse**: By default, the card list is expanded, but this can be customized to suit your specific needs. - **Max visible cards**: By default, the card list displays a maximum of 12 items. If more items are available, a "Show more" card is displayed. @@ -26,16 +31,19 @@ The scroll card list style displays the content items from left to right next to - **Show all count**: This represents the total number of card list items. This value is displayed on the "Show all" button. - **String - More cards**: By default, the card used to indicate when there are more items available is labeled "There are more cards available". -## Behavior in context +### Behavior in context + - **Interaction**: Users expand and collapse card list content by clicking on the icon button with the chevron in the header section. When the card list is expanded, content below the card list is pushed downwards. -- **"Show all" button**: Sometimes card lists only need to show the most important or most recent items. Clicking on the "Show all" button in the header section shows all items. Typically, these items are displayed on a new page. -- **"Show more" card**: The number of visible items inside a list can be limited to reduce the user's cognitive load. The "Show more" card indicates that more information is available. Selecting the card either displays the next chunk of items or shows all items on a new page, similar to the "Show all" button pattern. +- **"Show all" button**: Sometimes card lists only need to show the most important or most recent items. Clicking on the "Show all" button in the header section shows all items. Typically, these items are displayed on a new page. +- **"Show more" card**: The number of visible items inside a list can be limited to reduce the user's cognitive load. The "Show more" card indicates that more information is available. Selecting the card either displays the next chunk of items or shows all items on a new page, similar to the "Show all" button pattern. + +### Dos and Don'ts -## Dos and don'ts - Do keep cards and items within card lists the same size - Don't place different types of components within card lists - Don't nest card lists within each other -## Related patterns: +### Related patterns: + - [Blind](blind.md) - [Card](card.md) diff --git a/packages/documentation/docs/controls/_card_code.md b/packages/documentation/docs/controls/_card_code.md index 74c8fa71265..b26f4016a9b 100644 --- a/packages/documentation/docs/controls/_card_code.md +++ b/packages/documentation/docs/controls/_card_code.md @@ -12,62 +12,64 @@ import CardTags from './../auto-generated/ix-card/tags.md'; import CardProps from './../auto-generated/ix-card/props.md'; import CardEvents from './../auto-generated/ix-card/events.md'; -## Examples +## Development + +### Examples - +height="17rem" +name="card" + +> + +#### Action Card -### Action Card - +height="13rem" +name="action-card" -## Push Card +> + +### Push Card - +height="20rem" +name="push-card" + +> -## API (ix-card) +### API (ix-card) -### Properties +#### Properties -### Events +#### Events -## API (ix-action-card) +### API (ix-action-card) -### Properties +#### Properties -### Events +#### Events -## API (ix-push-card) +### API (ix-push-card) -### Properties +#### Properties -### Events +#### Events - diff --git a/packages/documentation/docs/controls/_card_styleguide.md b/packages/documentation/docs/controls/_card_styleguide.md index 185a55b85e8..b3b3fcc4806 100644 --- a/packages/documentation/docs/controls/_card_styleguide.md +++ b/packages/documentation/docs/controls/_card_styleguide.md @@ -1,8 +1,11 @@ -Cards are UI controls used to neatly organize and group related information about a specific subject. They make it easy for users to quickly scan small chunks of information. We typically use cards to create dashboards or modular, flexible designs that adapt seamlessly to various screen sizes. Additionally, cards can be used to draw attention to important content and serve as an entry point to deeper levels of navigation or detailed views. +## Guidelines + +Cards are UI controls used to neatly organize and group related information about a specific subject. They make it easy for users to quickly scan small chunks of information. We typically use cards to create dashboards or modular, flexible designs that adapt seamlessly to various screen sizes. Additionally, cards can be used to draw attention to important content and serve as an entry point to deeper levels of navigation or detailed views. Cards are interactive elements. The entire container is clickable and triggers a single action. ![Card overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=858-4956&mode=design&t=RDimbEsIHFIXIByo-1) + 1. Icon 2. Notification 3. Heading @@ -11,9 +14,9 @@ Cards are interactive elements. The entire container is clickable and triggers a 6. Container 7. Expanding content -## Card types +### Card types -We currently offer two types of cards: **action** and **push** +We currently offer two types of cards: **action** and **push**. Action cards have an icon, a heading and a subheading. We use them to trigger key actions. @@ -21,41 +24,45 @@ Push cards contain a notification value in addition to the icon, heading, and su ![Card types](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=858-4953&mode=design&t=RDimbEsIHFIXIByo-1) -## Customization +### Customization + We also offer a card container component that enables designers to display various types of content, such as images, charts or key data. Some small rules apply: Background images can stretch over the complete size of the container, whereas the card content must maintain a default padding of at least `1rem`. ![Card examples](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1329-26613&mode=design&t=sOZRNgWt7R52iLSF-1) -## Variants +### Variants + Cards are available in nine variants: Insight (outline style), notification (filled style), alarm, critical, warning, success, info, neutral and primary. Each variant emphasizes different aspects to guide the user's attention. These variants differ visually through the presence of an outline and a distinct container fill color, but they all follow the same interaction pattern. We typically use the insight variant as the default choice as we find this creates a more balanced and subtle appearance for users. ![Card variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=858-4969&mode=design&t=RDimbEsIHFIXIByo-1) -## Options +### Options - **Icon**: Cards can, but don't have to, include an icon. The icon is positioned in the top-left corner of the container. - **Notification**: By default, push cards display a notification value at the top of the container. This value is logically related to the items displayed in the expanding content area. - **Heading**: Cards can, but don't have to, include a heading. The heading is aligned to the top-left corner of the container. - **Subheading**: Cards can, but don't have to, include a subheading. The subheading is aligned to the top-left corner of the container and positioned below the heading. -## Behavior in context +### Behavior in context - **Interaction**: As a general rule, the entire card container is interactive and clickable. If the card also contains interactive elements, the corresponding actions are triggered. - **Size**: By default, cards have a fixed width and height. However, content overflow is not managed automatically, so the card size must be manually adjusted. - **Placement**: We typically group cards and position them at the top-left corner of the page or content area. Within the group, cards can be organized into lists or grids using the [card list](card-list.md) component. -## States +### States + Cards can take one of three states: Default, hover and active. Action cards also offer a selected state. ![Card states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=858-4979&mode=design&t=RDimbEsIHFIXIByo-1) -## Dos and don'ts +### Dos and Don'ts + - Do group cards in lists or grids (use the [card list](card-list.md) control) - Do keep multiple cards equal in size - Don't nest cards inside each other - Don't use cards to collect user input -## Related patterns: +### Related patterns: - [Card list](card-list.md) - [Flip](flip.md) diff --git a/packages/documentation/docs/controls/_category-filter_code.md b/packages/documentation/docs/controls/_category-filter_code.md index 117f1fa7605..82c72a92230 100644 --- a/packages/documentation/docs/controls/_category-filter_code.md +++ b/packages/documentation/docs/controls/_category-filter_code.md @@ -6,31 +6,33 @@ import Events from './../auto-generated/ix-category-filter/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="category-filter" +height="12rem" + +> -### Without categories +#### Without categories - +name="category-filter-suggestions" +hideInitalCodePreview +height="12rem" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_category-filter_styleguide.md b/packages/documentation/docs/controls/_category-filter_styleguide.md index 4fafe8c4b7b..7d62f0405cb 100644 --- a/packages/documentation/docs/controls/_category-filter_styleguide.md +++ b/packages/documentation/docs/controls/_category-filter_styleguide.md @@ -1,12 +1,15 @@ +## Guidelines + The category filter component enhances data navigation and user experience. We typically use a category filter to efficiently navigate large data sets, allowing users to quickly narrow their search by selecting predefined categories. It’s particularly useful in scenarios with complex data. The filter also enhances user experience by providing autocomplete suggestions and customizable filter conditions. ![Category filter overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1799-38402&mode=design&t=hgAA8GogE70JbHHy-1) -1. Container -2. Search icon -3. Input chip -4. Clear button -## Options +1. Container +2. Search icon +3. Input chip +4. Clear button + +### Options - **Categories**: Select these predefined groups to narrow down searches or browsing. The categories are customizable and should be defined based on the specific needs of your application or website. - **Suggestions**: These are potential search terms that appear as users begin to type in the input field. The aim is to assist users by predicting their intended search or category, thereby speeding up the input process and reducing potential errors. @@ -17,7 +20,7 @@ The category filter component enhances data navigation and user experience. We t - **Plain text**: Provides the possibility to do a plain text search without choosing a specific category. - **Static operator**: Use to restrict the filter condition to either equal (=) or not equal (!=). This is useful when it doesn't make sense, or is not applicable, to let the user decide between equal and not equal. By default, the filter condition is without restriction. -## Behavior +### Behavior - **Default**: The category filter is designed to adapt to the user’s needs and the context it’s used in. As soon as the user starts typing, the filter begins to apply, narrowing down the available options based on user input. This provides a dynamic and responsive user experience. - **Filter conditions**: These are the operators that determine how the filter matches the user’s input against the available categories. Available are equals (=) and not equals (!=). These conditions provide flexibility and precision in filtering, allowing users to find exactly what they’re looking for. @@ -27,18 +30,18 @@ The category filter component enhances data navigation and user experience. We t - **Without category selection**: Use without category selection if user input alone is sufficient to filter the data, such as when the data is not well-organized into distinct categories, or if the categories are too numerous/complex. - **Visual feedback**: When a category is selected, it’s highlighted and a chip is added to the input field. If a user chooses to delete a category, the chip is removed and the data is unfiltered, allowing for further filtering. -## States +### States Category filter has six states: Default, hover, active, disabled, read-only and focused. ![Category filter states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1799-38415&mode=design&t=1vxCdaFjmBNHp8Sk-4) -- **Read-only**: By setting the category filter to read-only, accidental data modifications or deletions can be prevented. This can be particularly useful when dealing with critical or sensitive information that should not be altered without proper authorization. -- **Disabled**: This state is typically applied when the element is not applicable to the current context or when certain conditions must be met before the category filter can be enabled. +- **Read-only**: By setting the category filter to read-only, accidental data modifications or deletions can be prevented. This can be particularly useful when dealing with critical or sensitive information that should not be altered without proper authorization. +- **Disabled**: This state is typically applied when the element is not applicable to the current context or when certain conditions must be met before the category filter can be enabled. -## Dos and Don’ts +### Dos and Don’ts -- Do use if you have a large amount of content or products organized into different categories +- Do use if you have a large amount of content or products organized into different categories - Do use when catering to a diverse user base with different interests or needs - Do use if your content or products are organized into distinct categories or topics - Do use to make it easier for users to refine their search queries and receive more targeted results @@ -47,9 +50,9 @@ Category filter has six states: Default, hover, active, disabled, read-only and - Don’t use if it slows down the user experience - Don’t use if your users are not familiar with the category names -## Related patterns +### Related patterns - [Expanding search](expanding-search.md) -- [Input](input.md) -- [Select](select.md) +- [Input](input.mdx) +- [Select](select.mdx) - [Dropdown button](./buttons/dropdown-button.md) diff --git a/packages/documentation/docs/controls/_chip_code.md b/packages/documentation/docs/controls/_chip_code.md index 6a2a44fe054..49c033bd22a 100644 --- a/packages/documentation/docs/controls/_chip_code.md +++ b/packages/documentation/docs/controls/_chip_code.md @@ -3,22 +3,24 @@ import Events from './../auto-generated/ix-chip/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="chip" +height="25rem" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_chip_styleguide.md b/packages/documentation/docs/controls/_chip_styleguide.md index 5a7a4c4536d..ced52a0ff86 100644 --- a/packages/documentation/docs/controls/_chip_styleguide.md +++ b/packages/documentation/docs/controls/_chip_styleguide.md @@ -1,26 +1,28 @@ +## Guidelines + Chips are components used to display small pieces of information in a compact and visually appealing way. Typically chips contain a concise label and sometimes an icon, and they are clickable and closable. ![Chip overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1149-41643&mode=design&t=ruQOzpPQJMKwnk8f-1) - -1. Container -2. Label text + +1. Container +2. Label text 3. Icon 4. Close button +### Variants -## Variants With our chip variants, you can apply different colors based on their purpose, importance or context. We use chip variants to show class, status and levels of importance. The custom variant is often used for chips that visualize a high number of different categories, but does not permit color specification for hover and active states. -Chip variants: +Chip variants: - **Primary**: For high visual emphasis - **State-related variants**: Alarm, critical, warning, success, info and neutral -- **Custom**: For a customized background and label color +- **Custom**: For a customized background and label color ![Chip variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1201-9512&mode=design&t=ruQOzpPQJMKwnk8f-1) +### Options -## Options - **Active**: Specifies chip interactivity. When set to false, user input such as mouse-over and keyboard navigation are disabled and the close button is not visible. - **Background**: Use to set a custom background color when you require more flexibility in styling the chip. Only available for the custom chip variant. - **Outline**: Use for lower visual emphasis. @@ -29,7 +31,7 @@ Chip variants: - **Color**: Customize font and icon color for chip. This allows users to specify a unique font color in combination with a custom background color (only applicable when the variant is set to 'custom'). - **Width**: Typically content length determines chip width with a minimum width of '2rem'. Chip width can be set to a specific value. -## Behavior +### Behavior - **Reactive**: Chips react or change their appearance or behavior based on user actions. For example, updates occur as a response to system actions, providing real-time information about system changes or events. - **Multi-selection**: Chips can visualize multi-selection and filter actions. This helps users to easily identify and understand their choices. @@ -37,23 +39,21 @@ Chip variants: - **Dismiss**: When users select close, chips are dismissed from the list or interface and are removed visually. - **Text truncation**: When a width is set for chips, long labels are truncated to fit the available space. - -## States +### States Chips take a default, hover, focused or active state with a varying background color. For the custom chip variant, the specified colors for font and background are applied to all states. ![Chip states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1246-6190&mode=design&t=GHOok90R6TcaUrYi-1) -## Dos and Don'ts +### Dos and Don'ts -- Do use chips to tag and categorize so users can easily organize and filter content +- Do use chips to tag and categorize so users can easily organize and filter content - Do ensure proper color contrast between chip background and text/icon with the custom variant to support readability - Do consider chip spacing for easy tapping or selecting with mobiles and desktops - Don't overuse chips as this leads to cluttered and overwhelming interfaces - Don't use different styles for chips with the same or similar use - Don't use chips without any interaction (we recommend pills instead) - -## Related patterns +### Related patterns - [Pill](./pill.md) diff --git a/packages/documentation/docs/controls/_content-header_code.md b/packages/documentation/docs/controls/_content-header_code.md index af17f23553b..68efb2cac94 100644 --- a/packages/documentation/docs/controls/_content-header_code.md +++ b/packages/documentation/docs/controls/_content-header_code.md @@ -3,28 +3,30 @@ import Events from './../auto-generated/ix-content-header/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="content-header" + +> -### No back button +#### No back button - +name="content-header-no-back" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_content-header_styleguide.md b/packages/documentation/docs/controls/_content-header_styleguide.md index 558051240ba..428265d6757 100644 --- a/packages/documentation/docs/controls/_content-header_styleguide.md +++ b/packages/documentation/docs/controls/_content-header_styleguide.md @@ -1,39 +1,45 @@ +## Guidelines + The content header provides a brief overview of the content on a page. It helps our users understand what the page is about. We typically use it at the very top of the page to show a clear hierarchy of the page. ![Content header overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2250-4784&mode=design&t=XmCepM9jPR9PImPw-4) - -1. Back button + +1. Back button 2. Content title 3. Content subtitle 4. Action buttons -## Variants +### Variants + Our content header variants makes it easier to achieve a well-balanced visual hierarchy throughout the page. -* Primary: In our applications, we most often use the primary variant for main pages or primary sections. -* Secondary: We typically use this variant when we want to provide context or actions for a specific section of a page, such as when displaying detailed information related to a selected item from a list. +- Primary: In our applications, we most often use the primary variant for main pages or primary sections. +- Secondary: We typically use this variant when we want to provide context or actions for a specific section of a page, such as when displaying detailed information related to a selected item from a list. ![Content header variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2250-9102&mode=design&t=XmCepM9jPR9PImPw-4) -## Options +### Options + - **Back button**: Enable if you want to provide a way for the user to navigate back. - **Header title**: Set your page title here. Use a clear, short and descriptive wording. - **Header subtitle**: Provide additional info for your content such as a descriptive sentence when required. - **Action buttons**: Offer convenient shortcuts for actions that the user might need to perform frequently, for example "Add" or "Edit". -## Behavior +### Behavior + - **Interaction**: The back button navigates usually one step back or behaves the same as the browser back. Action buttons typically navigate to another view. - **Alignment**: Place the content header at the very top left corner related to the content position. Back button, title and subtitle are automatically aligned on the left side while the action buttons are aligned on the right side. - **Cluster action buttons**: Action buttons are automatically aligned to the right. An example for the primary content header has the back button, title and subtitle at the left top corner of the whole page, and the action buttons at the right top corner of the page. -## Dos and Don'ts +### Dos and Don'ts + - Do use to provide quick access to common tasks for the whole content area - Don't use a secondary content header as a page title - Don't use more than one primary headline in one page -## Related patterns +### Related patterns - [Application header](./application-frame/application-header.md) -- [Content](./application-frame/content.md) -- [Button](./buttons/button.md) +- [Content](./application-frame/content.md) +- [Button](./buttons/button.md) diff --git a/packages/documentation/docs/controls/_custom-field_code.mdx b/packages/documentation/docs/controls/_custom-field_code.mdx new file mode 100644 index 00000000000..4551b033499 --- /dev/null +++ b/packages/documentation/docs/controls/_custom-field_code.mdx @@ -0,0 +1,35 @@ +import Playground from '@site/src/components/PlaygroundV2'; +import Props from '@site/docs/auto-generated/ix-custom-field/props.md'; +import Events from '@site/docs/auto-generated/ix-custom-field/events.md'; +import Tags from '@site/docs/auto-generated/ix-custom-field/tags.md'; + +## Development + +With the help of `ix-custom-field` you are able to create form fields that can host any component / markup, while still having access to all validation states as well as ascociated explanatory texts like `helper-text`, `valid-text`, `info-text`, `warning-text` or `invalid-text`. +The component will check if any of its children has one of these classes set: +`ix-valid, ix-info, ix-warning or ix-invalid` +If this is the case the custom field will display the corresponding text. + +Custom fields can be used to migrate from the existing input validation (native inputs) to the new validation / froms concept. + +#### Basic + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_custom-field_styleguide.mdx b/packages/documentation/docs/controls/_custom-field_styleguide.mdx new file mode 100644 index 00000000000..f08e162723d --- /dev/null +++ b/packages/documentation/docs/controls/_custom-field_styleguide.mdx @@ -0,0 +1,44 @@ +## Guidelines + +The custom field is a wrapper component that can host any forms component. Its properties allows you to control the validation state of the field and the helper text. The custom field is a versatile tool to create your own form fields, that can be used in combination with the 'Form' components to create complex forms. + +![Custom field](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3303-3291&t=SikqVQr6LWjMEjKI-4) + +1. Label +2. Helper or feedback text +3. Form component(s) +4. Required indicator + +### Options + +- **Label:** See [form field](forms/forms-field.md). +- **Group label:** Add a label to the group of radio buttons to provide context to your users. We typically use short and descriptive labels to summarize the options in the group. +- **Helper text**: See [form field](forms/forms-field.md). +- **Feedback text**: See [form field](forms/forms-field.md). +- **Customization**: Add form components to create the use case you need. For example, for a file upload field, add an input field with a `readonly` state and an [icon button](buttons/icon-button.md). + +![Custom field example](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3483-7223&t=DlxXBQ9vTnyDcIUI-4) + +### Behavior in context + +- **Validation:** See [validation](forms/forms-validation.mdx). +- **Form behavior:** See [behavior](forms/forms-behavior.md). + +### States + +The states depend on the component that you use in the custom field. The custom field itself does not have any interaction states. + +### Dos and Don’ts + +- Do use the custom field when your desired solution is not covered by the already existing form field components +- Do use the custom field in combination with the form component to create complex forms +- Don't use the custom field for simple form fields, use the form field component instead +- Don't use the custom field without a form component, it is a wrapper component that is meant to be used in combination with the form component +- Don't use helper and feedback texts for single fields within a custom field, use the helper and feedback text of the whole custom field instead + +### Related patterns + +- [Form field](forms/forms-field.md) +- [Validation](forms/forms-validation.mdx) +- [Behavior](forms/forms-behavior.md) +- [Layout](forms/forms-layout.md) diff --git a/packages/documentation/docs/controls/_date-input_code.mdx b/packages/documentation/docs/controls/_date-input_code.mdx new file mode 100644 index 00000000000..e8cd3223e71 --- /dev/null +++ b/packages/documentation/docs/controls/_date-input_code.mdx @@ -0,0 +1,41 @@ +import Playground from '@site/src/components/PlaygroundV2'; +import Props from '@site/docs/auto-generated/ix-date-input/props.md'; +import Events from '@site/docs/auto-generated/ix-date-input/events.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Label + + + +#### Readonly + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_date-input_styleguide.mdx b/packages/documentation/docs/controls/_date-input_styleguide.mdx new file mode 100644 index 00000000000..3c537b2e57f --- /dev/null +++ b/packages/documentation/docs/controls/_date-input_styleguide.mdx @@ -0,0 +1,69 @@ +## Guidelines + +The date input component enables users to enter and select a date in a standardized format. We typically use this component in forms, filters and scheduling tools to ensure consistent and accurate date entries. + +![Date input overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3629-6200&t=ADQCetGKOEH1WG2r-4) + +1. Label +2. Required field indicator +3. Current value +4. Calendar icon button +5. Input field +6. Date dropdown +7. Month and year selection +8. Weekdays +9. Week numbers +10. Indicator for current day +11. Indicator for selected day + +### Options + +- **Label**: See [form field](./forms/forms-field.md). +- **Required**: See [form field](./forms/forms-field.md). +- **Helper text**: See [form field](./forms/forms-field.md). +- **Feedback text**: See [form field](./forms/forms-field.md). +- **Show text as tooltip**: See [form field](./forms/forms-field.md). +- **Placeholder**: See [form field](./forms/forms-field.md). We typically use a placeholder to show an example date format to assist users when the field is empty. +- **Error message**: Feedback text when date is not parsable. We typically use this to inform users that the entered date format is incorrect and guide them to enter a valid date. +- **Format**: Specify the date format, default ‘yyyy/LL/dd’ to ensure that dates are entered in a consistent and recognizable format. + +### Behavior in context + +- **Interaction**: + - Click or focus opens the date picker. + - Use mouse or keyboard arrows to navigate to the desired date. + - Selecting a date in date picker with mouse click or enter closes the date picker. + - Typing a date into input field with valid format closes the date picker. + - Escape key closes the date picker. +- **Validation**: + - Use feedback text for validation types valid, info, warning and invalid. + - Invalid feedback automatically provided if entered date in not parsable. + - Refer to the [validation](./forms/forms-validation.mdx) chapter for detailed guidelines. +- **Overflow**: The input field should be wide enough to display the full date without truncation. +- **Alignment**: Date inputs are always aligned to the left. + +### States + +Date input has five states: Default, hover, disabled, read-only and focused. + +![Date input states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3989-2545&t=ADQCetGKOEH1WG2r-4) + +### Dos and Don’ts + +- Do use consistent date formats throughout the application to avoid confusion +- Do use separate inputs for start and end dates to simplify date ranges +- Do provide clear instructions, such as “Enter the date in yyyy/mm/dd format” +- Do consider localization to adapt date formats to local conventions +- Don't use ambiguous formats like 09/08/2006 without giving clear context +- Don't allow free text without validation or formatting guidance + +### Related patterns + +- [Date dropdown](./date-dropdown.md) +- [Date picker](./date-picker.md) +- [Date time picker](./date-picker.md) +- [Forms field](./forms/forms-field.md) +- [Validation](./forms/forms-validation.mdx) +- [Dropdown](./dropdown.md) +- [Input](input.mdx) +- [Select](select.mdx) diff --git a/packages/documentation/docs/controls/_dropdown_code.md b/packages/documentation/docs/controls/_dropdown_code.md index 1035f075d3e..712f20efdcd 100644 --- a/packages/documentation/docs/controls/_dropdown_code.md +++ b/packages/documentation/docs/controls/_dropdown_code.md @@ -8,58 +8,58 @@ import TagsQuickActions from './../auto-generated/ix-dropdown-quick-actions/tags import Playground from '@site/src/components/PlaygroundV3'; -# Dropdown +## Development -## Examples +### Examples - -### Dropdown with icon +> + +#### Dropdown with icon - -### Dropdown with quick actions menu +> + +#### Dropdown with quick actions menu - -### Dropdown with submenu +> + +#### Dropdown with submenu - -## API (ix-dropdown) +> + +### API (ix-dropdown) -### Properties +#### Properties -### Events +#### Events -## API (ix-dropdown-item) +### API (ix-dropdown-item) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_dropdown_styleguide.md b/packages/documentation/docs/controls/_dropdown_styleguide.md index 82b0ccd351e..dec86f46157 100644 --- a/packages/documentation/docs/controls/_dropdown_styleguide.md +++ b/packages/documentation/docs/controls/_dropdown_styleguide.md @@ -1,5 +1,6 @@ -Dropdown containers display a menu with additional items when users click on the trigger element, e.g. a dropdown button. Clicking on one of the items in the dropdown performs the action. We typically use dropdowns to allow users to select one option from a list. +## Guidelines +Dropdown containers display a menu with additional items when users click on the trigger element, e.g. a dropdown button. Clicking on one of the items in the dropdown performs the action. We typically use dropdowns to allow users to select one option from a list. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2353-2278&mode=design&t=OVHeXvLZYLkP2CzN-4) @@ -13,10 +14,10 @@ Dropdown containers display a menu with additional items when users click on the 8. Icon 9. Label -## Options +### Options - **Header:** Add a header for the dropdown container. This allows users to better understand which elements are in the dropdown. -- **Quick Actions:** Add a quick action bar. Add 3 to 5 actions/items to the quick actions. We typically use quick actions to access common functions such as cut, copy and paste. +- **Quick actions:** Add a quick action bar. Add 3 to 5 actions/items to the quick actions. We typically use quick actions to access common functions such as cut, copy and paste. - **Checked:** Mark selected items in the dropdown with a check mark. We typically use check marks when an item can be activated (e.g. for the dropdown "Sort by:" selection: name, modified date, create date). - **Submenu:** Add a submenu for a multi-level dropdown. We typically use a submenu when there is a long item list and different systematic categorization within the items. - **Separator:** Add a separator to visually divide items from each other. We normally use a separator to isolate individual elements from a cohesive item list. @@ -24,30 +25,33 @@ Dropdown containers display a menu with additional items when users click on the - **Label:** Set a label for the dropdown item. We typically use short labels including verbs. - **Trigger:** The trigger defines which element opens the dropdown. A trigger should also be defined for a dropdown submenu. We typically use a button as the trigger element. - **Anchor:** An anchor defines where the dropdown is placed. When no anchor is defined the trigger element is used as the anchor. -- **Close Behavior:** Defines whether a click inside and/or outside the dropdown closes the dropdown. A submenu is always closed together with the parent dropdown. Three Options are possible: - - Inside: clicking within the dropdown closes the dropdown. - - Outside: clicking outside the dropdown closes the dropdown. - - Both: clicking within and outside the dropdown closes the dropdown. - - False: dropdown will only close if it's parent gets closed +- **Close behavior:** Defines whether a click inside and/or outside the dropdown closes the dropdown. A submenu is always closed together with the parent dropdown. Three Options are possible: + - Inside: clicking within the dropdown closes the dropdown. + - Outside: clicking outside the dropdown closes the dropdown. + - Both: clicking within and outside the dropdown closes the dropdown. + - False: dropdown will only close if it's parent gets closed. - **Placement:** Place a dropdown at the top, bottom, left or right edge as well as at the beginning or end of the trigger/anchor element. The placement may be automatically adjusted in case it cannot be displayed correctly (detailed behavior described in the context section below). We typically use the default (bottom right) placement option to ensure consistency. -- **Date Selection:** Use the component [date dropdown](date-dropdown.md) to get a date selection in the dropdown. +- **Date selection:** Use the component [date dropdown](date-dropdown.md) to get a date selection in the dropdown. ![Dropdown Examples](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2372-2696&mode=design&t=OVHeXvLZYLkP2CzN-4) -## Behavior in context +### Behavior in context + - **Text truncation:** The labels of the items and the header only consist of one line. A truncation only occurs if there is not enough space on the screen. - **Scrollbar:** A dropdown is provided with a scrollbar when the dropdown takes up 50% of the screen. -- **Placement:** The position depends on the trigger/anchor element (e.g. a button). By default, the dropdown is displayed at the bottom right of the trigger element. When there is not enough space for the selected placement, it is corrected automatically. The placement of the submenu is always generated automatically. -- **Quick actions:** Quick actions only consist of icons, therefore, it is important to use icons that are understandable without a label or tooltip. A quick action bar can also be used without additional items in the dropdown. +- **Placement:** The position depends on the trigger/anchor element (e.g. a button). By default, the dropdown is displayed at the bottom right of the trigger element. When there is not enough space for the selected placement, it is corrected automatically. The placement of the submenu is always generated automatically. +- **Quick actions:** Quick actions only consist of icons, therefore, it is important to use icons that are understandable without a label or tooltip. A quick action bar can also be used without additional items in the dropdown. ![Dropdown in Context](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2463-3302&t=QaiBJKNOwHMdBuk2-4) -## States +### States + Dropdown items have five states: Default, hover, active, disabled and focused. When a submenu is in an active state, the submenu displays an additional dropdown with selectable options. ![Item States](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2343-42235&mode=design&t=OVHeXvLZYLkP2CzN-4) -## Dos and Don’ts +### Dos and Don’ts + - Do structure dropdown items coherently with submenus, quick actions and separators - Do use dropdowns to showcase related actions - Do disable items that cannot be used at that moment @@ -55,8 +59,9 @@ Dropdown items have five states: Default, hover, active, disabled and focused. W - Don’t use too many dropdown items - we recommend a maximum of seven - Don’t insert the [date picker](date-picker.md) or [date time picker](date-time-picker.md) components into a dropdown (use [date dropdown](date-dropdown.md) instead) -## Related patterns +### Related patterns + - [Dropdown button](buttons/dropdown-button.md) -- [Split button](buttons/split-button.md) -- [Date dropdown](date-dropdown.md) -- [Select](select.md) +- [Split button](buttons/split-button.md) +- [Date dropdown](date-dropdown.md) +- [Select](select.mdx) diff --git a/packages/documentation/docs/controls/_forms-checkbox_code.mdx b/packages/documentation/docs/controls/_forms-checkbox_code.mdx new file mode 100644 index 00000000000..f27449196a7 --- /dev/null +++ b/packages/documentation/docs/controls/_forms-checkbox_code.mdx @@ -0,0 +1,37 @@ +import Playground from '@site/src/components/PlaygroundV3'; +import Props from '@site/docs/auto-generated/ix-checkbox/props.md'; +import Events from '@site/docs/auto-generated/ix-checkbox/events.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Group + + + +#### Indeterminate group + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_forms-checkbox_styleguide.md b/packages/documentation/docs/controls/_forms-checkbox_styleguide.md new file mode 100644 index 00000000000..82ef6dca3bf --- /dev/null +++ b/packages/documentation/docs/controls/_forms-checkbox_styleguide.md @@ -0,0 +1,39 @@ +## Guidelines + +A checkbox is a small interactive box that allows the user to toggle between an affirmative or negative choice. Checkboxes are commonly used when there are multiple options that can be selected or to easily enable or disable a setting. They are often utilized in forms where users can choose multiple options, such as selecting items or categories that apply to a specific product or service. + +![Checkbox anatomy](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3364-8247&t=VCAAFzKIYCDb7nIX-4) + +1. Checkbox +2. Checkbox label +3. Group label +4. Group required indicator +5. Group helper or feedback text + +### Options + +- **Checkbox label:** See [form field](forms/forms-field.md). +- **Indeterminate checkbox:** Indicates that only some items in a checkbox group are selected. We offer the indeterminate state, but the implementation when this state is active is the responsibility of each individual. +- **Checkbox group**: Group checkboxes to indicate that they are related. We typically use checkbox groups when multiple options need to be presented for selection, allowing users to choose any combination of the available choices. They are particularly useful in user interface design for forms, settings and preferences where multiple selections are possible. +- **Group label:** Add a label to the group of checkboxes to provide context to your users. We typically use short and descriptive labels to summarize the options in the group. +- **Group helper text**: See [form field](forms/forms-field.md). +- **Group feedback text**: See [form field](forms/forms-field.md). + +### Behavior in context + +- **Validation**: See [validation](forms/forms-validation.mdx). +- **Interaction**: Clicking on the checkbox toggles the state between checked and unchecked. +- **Grouping**: Checkbox groups have only one label and helper text for the entire group. Grouped checkboxes are validated collectively, not individually. + +### States + +![Checkbox states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3749-1431&t=VCAAFzKIYCDb7nIX-4) + +### Dos and Don’ts + +- Do use checkboxes when you have multiple options that can be selected +- Do group related checkboxes together to indicate their relationship +- Do use checkboxes in forms to allow users to select multiple options +- Don’t use a checkbox for binary choices (yes/no, true/false) - use a toggle switch instead +- Don’t use checkboxes for mutually exclusive options - use [radio buttons](radio.mdx) instead +- Don’t use checkboxes for actions that have immediate consequences - use [buttons](buttons/button.md) or links instead diff --git a/packages/documentation/docs/controls/_forms-toggle_styleguide.md b/packages/documentation/docs/controls/_forms-toggle_styleguide.md new file mode 100644 index 00000000000..ca1f30ef070 --- /dev/null +++ b/packages/documentation/docs/controls/_forms-toggle_styleguide.md @@ -0,0 +1,35 @@ +A toggle is a user interface element that enables users to switch between two states, such as on/off or enable/disable. It consists of a switch that can be slid or clicked to change its state. They offer a visually clear representation of the current state and allow users to easily toggle between different settings. We typically use toggles in settings, preferences, and other areas where users need to switch between two states quickly and easily. + +![Anatomy toggle](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3749-1943&t=VCAAFzKIYCDb7nIX-4) + +## Options + +- **Label:** See [form field](forms/forms-field.md). +- **Helper text**: See [form field](forms/forms-field.md). +- **Feedback text**: See [form field](forms/forms-field.md). + +## Behavior in context + +- **Validation**: See [validation](forms/forms-validation.mdx). +- **Interaction**: Clicking on the toggle switch changes its state from on to off or vice versa. The toggle visually reflects the current state. + +## States + +![Toggle states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3389-9845&t=VCAAFzKIYCDb7nIX-4) + +## Dos and Don’ts + +- Do use toggles for single features or options that need to be switched quickly and easily +- Do provide clear labels for toggles to indicate what they control +- Do use toggles consistently throughout the interface for similar actions or settings +- Don't use toggles for complex multi-state options or settings +- Don't use toggles for actions that require a confirmation or additional input +- Don't use toggles for actions that are irreversible or have serious consequences + +## Related patterns + +- [Form field](forms/forms-field.md) +- [Validation](forms/forms-validation.mdx) +- [Layout](forms/forms-layout.md) +- [Checkbox](checkbox.mdx) +- [Radio](radio.mdx) diff --git a/packages/documentation/docs/controls/_input_code.md b/packages/documentation/docs/controls/_input_code.md new file mode 100644 index 00000000000..5cb523c245c --- /dev/null +++ b/packages/documentation/docs/controls/_input_code.md @@ -0,0 +1,51 @@ +import Playground from '@site/src/components/PlaygroundV2'; +import Props from '@site/docs/auto-generated/ix-input/props.md'; +import Events from '@site/docs/auto-generated/ix-input/events.md'; +import Tags from '@site/docs/auto-generated/ix-input/tags.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Label + + + +#### Pattern + + + +#### Readonly + + + +#### Types + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_input_styleguide.md b/packages/documentation/docs/controls/_input_styleguide.md new file mode 100644 index 00000000000..4e138b1f372 --- /dev/null +++ b/packages/documentation/docs/controls/_input_styleguide.md @@ -0,0 +1,52 @@ +## Guidelines + +An input field is a user interface element that allows users to enter and edit text, numbers and symbols. It’s commonly used in forms, search bars, and other areas where data input is required. + +![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3054-593&t=jhhv5OZGqmBpgXcs-4) + +1. Label +2. Required indicator +3. Placeholder +4. Slot-end +5. Slot-start +6. Container +7. Helper or feedback text +8. Counter + +### Options + +- **Label:** See [form field](./forms/forms-field.md). +- **Slot options:** Add optional elements at the end and/or start of the input field, e.g. an icon, a button or a text option. We typically use slots for additional indications, options or information like a visibility toggle in a password field. +- **Placeholder**: Use a placeholder to provide a hint about what to enter or additional relevant context while the input field is empty. We typically use a placeholder when the label is not visible or we need to provide additional context. +- **Helper text:** See [form field](./forms/forms-field.md). +- **Counter:** See [form field](./forms/forms-field.md). +- **Feedback text**: See [form field](./forms/forms-field.md). + +### Behavior in context + +- **Validation:** See [validation](./forms/forms-validation.mdx). +- **Interaction**: Clicking in the container enables the editing of the field. +- **Text truncation**: The text in an input field is cut off with the length of the container. +- **Alignment**: Inputs are always aligned to the left, while right alignment is reserved exclusively for [number fields](input-number.mdx). + +### States + +The input field has five states: default, focused, hover, disabled and read-only. In the read-only state, the input field is displayed without offering any user interaction. + +![Field States](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3198-7167&t=jhhv5OZGqmBpgXcs-4) + +### Dos and Don’ts + +- Do use helper text to guide users through the input process +- Do use feedback text to inform users about the status of their input +- Do ensure that the width of the input field is appropriate for the expected content +- Don’t overcrowd the input field with too many elements +- Don’t use placeholders as a substitute for labels + +### Related patterns + +- [Form field](./forms/forms-field.md) +- [Validation](./forms/forms-validation.mdx) +- [Layout](./forms/forms-layout.md) +- [Number input](input-number.mdx) +- [Date input](input-date.mdx) diff --git a/packages/documentation/docs/controls/_layout-grid_code.md b/packages/documentation/docs/controls/_layout-grid_code.md index 0165e1e5327..a17c72de00d 100644 --- a/packages/documentation/docs/controls/_layout-grid_code.md +++ b/packages/documentation/docs/controls/_layout-grid_code.md @@ -6,50 +6,50 @@ import ColEvents from './../auto-generated/ix-col/events.md'; import Playground from '@site/src/components/PlaygroundV3' -# Message bar +## Development -## Examples +### Examples -### Basic +#### Basic - +height="15rem" +name="grid" -### Size +> + +#### Size - +height="17rem" +name="grid-size" + +> -### Padding +#### Padding - +name="grid-padding" +height="17rem" + +> -## API (ix-layout-grid) +### API (ix-layout-grid) -### Properties +#### Properties -### Events +#### Events -## API (ix-col) +### API (ix-col) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_layout-grid_styleguide.md b/packages/documentation/docs/controls/_layout-grid_styleguide.md index 4377c1e4c63..b75edddcd74 100644 --- a/packages/documentation/docs/controls/_layout-grid_styleguide.md +++ b/packages/documentation/docs/controls/_layout-grid_styleguide.md @@ -1,42 +1,46 @@ +## Guidelines + Grids are typically used to make layouts more cohesive and consistent. With layout grids, a two-dimensional layout system is available to create responsive layouts. Our layout grids are made of three elements: a grid, row(s) and column(s). The layout grid adapts to screen size and orientation. Commonly, the layout grid is based on a 12 column layout. Columns are nested in rows and adapt in width according to the available space. Content is placed within columns. Column widths are set as percentage. ![Layout grid overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=800-2637&mode=design&t=R26qUrZCUTY2iIxG-1) + 1. Layout grid 2. Row 3. Column 4. Gutter 5. Margin -## Options -### Layout grid options -- The default number of columns in a grid is 12. It is possible to choose any number of columns between 2 and 12 -- Layout grids contain horizontal margins. For smaller viewports or when used within a component, the margin can be removed or reduced -- As a general rule, a gutter of ``1.5rem`` is applied. The gutter can be decreased to allow for a narrower grouping of columns +### Options + +#### Layout grid options + +- The default number of columns in a grid is 12. It is possible to choose any number of columns between 2 and 12. +- Layout grids contain horizontal margins. For smaller viewports or when used within a component, the margin can be removed or reduced. +- As a general rule, a gutter of `1.5rem` is applied. The gutter can be decreased to allow for a narrower grouping of columns. + +#### Column options -### Column options - The size of a column is defined by the available space and the number of columns. If no size is set, columns automatically have equal width. The size of a column can be adjusted so that it takes a higher percentage of the available space. The size property refers to the number of columns from the default of 12 per row. -Example: In a 12 column layout with 6 columns with equal width in place, each column takes a space of 1/6 (or 2 out of 12). When setting the size of the first column to ``3`` (corresponding to 3 out of 12), the remaining columns adjust their width to fit within the remaining space of 3/4 (or 9 out of 12). +Example: In a 12 column layout with 6 columns with equal width in place, each column takes a space of 1/6 (or 2 out of 12). When setting the size of the first column to `3` (corresponding to 3 out of 12), the remaining columns adjust their width to fit within the remaining space of 3/4 (or 9 out of 12). ![Example for column size option](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=796-3&mode=design&t=R26qUrZCUTY2iIxG-1) -- A column size ``auto`` is available. When set to ``auto``, column width is defined by the width of its content. The remaining columns resize to fill the row. +- A column size `auto` is available. When set to `auto`, column width is defined by the width of its content. The remaining columns resize to fill the row. - Column size can be tailored to viewports. Three viewports are currently supported. The viewport size can't be adjusted at this point. When setting the size for one viewport, larger viewports are adjusted in the same way. -| Viewport name | Viewport size | Description | -| -------------------------- | --------------------------------- |-------------------------------------------- | -| Small | 0-767 | set columns when min width is 0 | -| Medium | 768-1279 | set columns when min width is 768 | -| Large | 1280+ | set columns when min width is 1280 | +| Viewport name | Viewport size | Description | +| ------------- | ------------- | ---------------------------------- | +| Small | 0-767 | set columns when min width is 0 | +| Medium | 768-1279 | set columns when min width is 768 | +| Large | 1280+ | set columns when min width is 1280 | -Example: Here is an example of a 12 column layout grid with 4 columns, each with equal width. The columns' ``size`` is set to ``12`` and for medium viewports and larger (``size md``) it is set to ``3``. On small viewports, the columns take the full width and stack vertically. For medium and large viewports, columns take equal width. +Example: Here is an example of a 12 column layout grid with 4 columns, each with equal width. The columns' `size` is set to `12` and for medium viewports and larger (`size md`) it is set to `3`. On small viewports, the columns take the full width and stack vertically. For medium and large viewports, columns take equal width. ![Example for viewport-based column sizes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=800-23920&mode=design&t=R26qUrZCUTY2iIxG-1) +### Behavior in context -## Behavior in context - -Decreasing and increasing the viewport width influences the width of each column within a layout grid. When column width is decreased to the point that the minimum content width is reached for at least one column, the layout breaks into a second line. - +Decreasing and increasing the viewport width influences the width of each column within a layout grid. When column width is decreased to the point that the minimum content width is reached for at least one column, the layout breaks into a second line. diff --git a/packages/documentation/docs/controls/_number-input_code.mdx b/packages/documentation/docs/controls/_number-input_code.mdx new file mode 100644 index 00000000000..c2d790c18ca --- /dev/null +++ b/packages/documentation/docs/controls/_number-input_code.mdx @@ -0,0 +1,45 @@ +import Playground from '@site/src/components/PlaygroundV3'; +import Props from '@site/docs/auto-generated/ix-number-input/props.md'; +import Events from '@site/docs/auto-generated/ix-number-input/events.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Label + + + +#### Readonly + + + +#### Stepper buttons + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_number-input_styleguide.mdx b/packages/documentation/docs/controls/_number-input_styleguide.mdx new file mode 100644 index 00000000000..bde046118c8 --- /dev/null +++ b/packages/documentation/docs/controls/_number-input_styleguide.mdx @@ -0,0 +1,53 @@ +## Guidelines + +The number input component allows users to enter and adjust numerical values. It’s commonly used in forms, calculators, and other areas where precise numerical input is required. We typically use the number input component to ensure accurate and efficient data entry. + +![Number input overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3805-24565&t=DtCmoFcLwhf7ke3S-4) + +1. Label +2. Required field indicator +3. Value +4. Stepper buttons +5. Input field +6. Helper or feedback text + +### Options + +- **Label**: See [form field](./forms/forms-field.md). +- **Value**: See [form field](./forms/forms-field.md). +- **Required**: See [form field](./forms/forms-field.md). +- **Helper text**: See [form field](./forms/forms-field.md). +- **Feedback text**: See [form field](./forms/forms-field.md). +- **Show text as tooltip**: See [form field](./forms/forms-field.md). +- **Placeholder**: See [form field](./forms/forms-field.md). +- **Allowed characters pattern**: Specify the characters allowed for input. We typically use this to reject invalid characters, such as decimal points. When users type an invalid character, a shaking animation is immediately triggered. +- **Pattern**: Define the expected input using regular expressions, such as an integer between 1 and 100. We often use this to validate the input when the user leaves the field or clicks submit. +- **Min/Max**: Specify the minimum and maximum values that can be entered to ensure the input stays within the defined range. We typically use this option to prevent invalid entries and guide users towards acceptable values. +- **Show stepper buttons**: Use these optional controls to increment or decrement the value (suitable for small ranges with few steps). We typically use these buttons when precise adjustments are needed, such as in quantity selectors, rating systems or form inputs requiring fine-tuned numerical values. + +### Behavior in context + +- **Interaction:** Users can type a value or use stepper buttons to adjust it. We recommend using stepper buttons, especially for touch interactions, to enhance usability and precision. +- **Validation:** See [form field](./forms/forms-validation.mdx). +- **Overflow:** Numbers are truncated to fit within the input field. Ensure that the expected value is visible in the input field so it can be properly displayed. +- **Alignment:** Number inputs are always aligned to the right. + +### States + +The number input has five states: default, hover, focused, disabled and read-only. +![Number input states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=4097-1041&t=lGjPn4Q9U7Fa81TI-4) + +### Dos and Don’ts + +- Do set appropriate min and max values to prevent invalid entries and guide user input +- Do provide clear error messages when the input value is out of the allowed range or does not match the required pattern +- Do consider special cases such as zero, negative numbers and very large numbers to ensure all possible inputs are handled correctly +- Don't specify patterns that do not align with your use case, e.g. inappropriate intervals between valid values + +### Related patterns + +- [Form fields](./forms/forms-field.md) +- [Validation](./forms/forms-validation.mdx) +- [Layout](./forms/forms-layout.md) +- [Input](./input.mdx) +- [Select](./select.mdx) diff --git a/packages/documentation/docs/controls/_panes_code.md b/packages/documentation/docs/controls/_panes_code.md index f0f03393f00..2cdcb7d51b7 100644 --- a/packages/documentation/docs/controls/_panes_code.md +++ b/packages/documentation/docs/controls/_panes_code.md @@ -6,44 +6,46 @@ import Tags from './../auto-generated/ix-pane/tags.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Example +## Development -### Basic +### Example + +#### Basic - +name="pane" +height="24rem" +noMargin + +> -### Pane Layout +#### Pane Layout - +name="pane-layout" +height="24rem" +noMargin + +> -## API (ix-pane) +### API (ix-pane) -### Properties +#### Properties -### Events +#### Events -## API (ix-pane-layout) +### API (ix-pane-layout) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_panes_styleguide.md b/packages/documentation/docs/controls/_panes_styleguide.md index 43a0dd124a6..7ca9177904a 100644 --- a/packages/documentation/docs/controls/_panes_styleguide.md +++ b/packages/documentation/docs/controls/_panes_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Panes are interactive components that allow users to access content that isn't constantly visible on the screen. Panes have a header and a content area. When collapsed, panes are either hidden or reduced to a bar. In our applications, we often include contextual information, options, trees and lists inside panes. Panes help users focus on tasks as related controls are visually grouped and the main content has less information. They are also beneficial for compact and hierarchically organized content and provide a more dynamic layout. @@ -9,7 +11,7 @@ Panes help users focus on tasks as related controls are visually grouped and the 3. Right pane, floating 4. Bottom pane, inline -## Options +### Options - **Heading**: Set a headline for the pane (we normally use a short content description). - **Icon**: Panes can display an icon in the pane header next to the title. @@ -25,7 +27,7 @@ Panes help users focus on tasks as related controls are visually grouped and the 1. Full height (left/right) 2. Full width (top/bottom) -## Behavior +### Behavior - **Interaction**: Users expand panes that are collapsible by pressing on the expand button. To expand panes with hidden collapsed state, users typically click on a button or another interactive component within the main content. They close these panes by either pressing on the button on the right side of the header or clicking outside the pane area. This removes the pane from their view. - **Overflow**: When content extends the available space within the pane, scrollbars appear. Headers stay fixed at the top allowing users to scroll the content area. We like to avoid overfilling panes with content to remove the need for scrolling. @@ -39,11 +41,11 @@ Panes help users focus on tasks as related controls are visually grouped and the 2. Inline or floating pane in expanded state 3. Opened navigation menu -## States +### States Panes have two states: collapsed and expanded. The appearance of the states varies between variants and screen sizes. -## Dos and Don'ts +### Dos and Don'ts - Do use panes to organize your content and guide your users' attention - Do use panes to display different views within a single screen @@ -51,8 +53,8 @@ Panes have two states: collapsed and expanded. The appearance of the states vari - Don't use panes for a small amount of content - Don't use panes for content that should stay visible -## Related patterns +### Related patterns -[Drawers](./drawer.md) -[Header](../controls/application-frame/application-header.md) -[Menu](../controls/application-frame/application-menu.md) +- [Drawers](./drawer.md) +- [Header](../controls/application-frame/application-header.md) +- [Menu](../controls/application-frame/application-menu.md) diff --git a/packages/documentation/docs/controls/_pill_code.md b/packages/documentation/docs/controls/_pill_code.md index 26f2483b729..8f0838229d3 100644 --- a/packages/documentation/docs/controls/_pill_code.md +++ b/packages/documentation/docs/controls/_pill_code.md @@ -3,29 +3,31 @@ import Events from './../auto-generated/ix-pill/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="pill" + +> -### Variants +#### Variants - +name="pill-variants" +height="24rem" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/_pill_styleguide.md b/packages/documentation/docs/controls/_pill_styleguide.md index b4e181f1f0d..705bdc67102 100644 --- a/packages/documentation/docs/controls/_pill_styleguide.md +++ b/packages/documentation/docs/controls/_pill_styleguide.md @@ -1,5 +1,6 @@ -Pills are components used to display small pieces of information in a compact and visually appealing way. Typically pills contain a concise label and sometimes an icon, and they aren't clickable or closable. +## Guidelines +Pills are components used to display small pieces of information in a compact and visually appealing way. Typically pills contain a concise label and sometimes an icon, and they aren't clickable or closable. ![Pill overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1377-3110&mode=design&t=ZmcRP4ggXtr8b7vZ-1) @@ -7,7 +8,8 @@ Pills are components used to display small pieces of information in a compact an 2. Icon 3. Label text -## Variants +### Variants + With our pill variants, you can apply different colors based on their purpose, importance or context. We use chip variants to show class, status and levels of importance. The custom variant is often used for pills that visualize a high number of different categories. Pill variants: @@ -18,25 +20,25 @@ Pill variants: ![Pill variants](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1375-1985&mode=design&t=ZmcRP4ggXtr8b7vZ-1) -## Options +### Options - **Align left**: Position the pill content to the left side. - **Background**: Use to set a custom background color when you require more flexibility in styling the pill. Only available for the custom pill variant. - **Color**: Customize font and icon color for pill. This allows users to specify a unique font color in combination with a custom background color (only applicable when the variant is set to 'custom'). - **Icon**: Pills can include a close icon within the element which is positioned before the pill label. - **Outline**: Use for lower visual emphasis. -- **Width**: Pill width can be set to a specific value, but content length normally determines pill width with a minimum width of '2rem'. +- **Width**: Pill width can be set to a specific value, but content length normally determines pill width with a minimum width of '2rem'. -## Behavior +### Behavior -- **Placement**: We usually position pills inline with other elements to convey their status or category. We do not place pills within input and filter components as these already contain similar components. However, it's possible to add components similar to pills to tabs and navigation menu items. These counter or notification components are provided as component options. +- **Placement**: We usually position pills inline with other elements to convey their status or category. We do not place pills within input and filter components as these already contain similar components. However, it's possible to add components similar to pills to tabs and navigation menu items. These counter or notification components are provided as component options. - **Text truncation**: When you set a width for pills, long labels are truncated to fit the available space. -## States +### States -Pills are read-only. +Pills are read-only. -## Dos and Don'ts +### Dos and Don'ts - Do use pills to communicate tags and categories - Do use pills to indicate the status or characteristics of an item @@ -44,9 +46,6 @@ Pills are read-only. - Don't use different styles for pills with the same or similar use - Don't use pills if users can interact with the component (e.g. click, close) use chips instead -## Related patterns +### Related patterns - [Chip](chip.md) - - - diff --git a/packages/documentation/docs/controls/_radio_code.mdx b/packages/documentation/docs/controls/_radio_code.mdx new file mode 100644 index 00000000000..c3c43c34d3f --- /dev/null +++ b/packages/documentation/docs/controls/_radio_code.mdx @@ -0,0 +1,33 @@ +import Playground from '@site/src/components/PlaygroundV3'; +import Props from '@site/docs/auto-generated/ix-radio/props.md'; +import Events from '@site/docs/auto-generated/ix-radio/events.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Group + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_radio_styleguide.mdx b/packages/documentation/docs/controls/_radio_styleguide.mdx new file mode 100644 index 00000000000..727e1a1a247 --- /dev/null +++ b/packages/documentation/docs/controls/_radio_styleguide.mdx @@ -0,0 +1,43 @@ +## Guidelines + +A radio button is an interface element that enables the user to choose only one option from a predefined set of mutually exclusive options. They are presented in groups to signify that only one selection is allowed at a time. Selecting a radio button automatically deselects any previously chosen radio button within the same group. We typically use radio buttons to offer users a set of exclusive choices. + +![Anatomy radio button](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3384-108&t=GDd4aJQUrPB3cC9X-4) + +1. Label +2. Required indicator +3. Radio button group +4. Helper or feedback text +5. Radio button +6. Radio button label + +### Options + +- **Label:** See [form field](forms/forms-field.md). +- **Helper text**: See [form field](forms/forms-field.md). +- **Feedback text**: See [form field](forms/forms-field.md). + +### Behavior in context + +- **Validation**: Radio buttons are validated collectively, not individually. For more information on validation, see [validation](forms/forms-validation.mdx). +- **Interaction**: Clicking on a radio button toggles its state between checked and unchecked/default. Every other radio button in the group is automatically unchecked. + +### States + +![States radio button](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3387-8703&t=ZvZOV5vvqWRxmqyv-4) + +### Dos and Don’ts + +- Do use radio buttons when the user needs to select only one option from a set of options +- Do group related radio buttons together to indicate that only one option can be selected at a time +- Do provide a default (already selected) option when the user first sees the radio button group +- Don’t use radio buttons if the user needs to select multiple options from a set of options - use a checkbox instead +- Don’t use only one radio button in a group, groups should have at least two options + +### Related patterns + +- [Form field](forms/forms-field.md) +- [Validation](forms/forms-validation.mdx) +- [Layout](forms/forms-layout.md) +- [Checkbox](checkbox.mdx) +- [Toggle](toggle.mdx) diff --git a/packages/documentation/docs/controls/_select_code.mdx b/packages/documentation/docs/controls/_select_code.mdx new file mode 100644 index 00000000000..7d87cb9bb88 --- /dev/null +++ b/packages/documentation/docs/controls/_select_code.mdx @@ -0,0 +1,63 @@ +import Props from './../auto-generated/ix-select/props.md'; +import Events from './../auto-generated/ix-select/events.md'; +import Tags from './../auto-generated/ix-select/tags.md'; + +import ItemProps from './../auto-generated/ix-select-item/props.md'; +import ItemEvents from './../auto-generated/ix-select-item/events.md'; + +import Playground from '@site/src/components/PlaygroundV3'; +import { ApiTableSinceTag } from '@site/src/components/ApiTableTag'; + +## Development + +### Examples + +#### Basic + + + +#### Editable + + + +#### Multiselect + + + +#### Validation + + + + + +### API (ix-select) + +#### Properties + + + +#### Events + + + +### Properties (ix-select-item) + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_select_styleguide.md b/packages/documentation/docs/controls/_select_styleguide.md new file mode 100644 index 00000000000..f27e66d8a2f --- /dev/null +++ b/packages/documentation/docs/controls/_select_styleguide.md @@ -0,0 +1,74 @@ +## Guidelines + +A select component allows users to choose from a list of options. It supports single or multiple selections and the editable variant allows users to add new items. We typically use select components in forms, filters and settings where users need to choose from predefined options. + +![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3647-6332&t=DtCmoFcLwhf7ke3S-4) + +1. Label +2. Required indicator +3. Placeholder +4. Clear button +5. Open dropdown button +6. Container +7. Dropdown list +8. List header +9. Selected list item +10. Editable mode (add new items) + +### Options + +- **Label:** See [form field](./forms/forms-field.md). +- **Placeholder:** Use a placeholder to provide information about what to enter or additional relevant context while the input field is empty. We typically use a placeholder when the label is not visible or we need to provide additional context. +- **Helper text:** See [form field](./forms/forms-field.md). +- **Feedback text:** See [form field](./forms/forms-field.md). +- **Show clear button:** Select components can have a dedicated button to easily clear the selection. Hide the button when offering users other ways to reset, e.g. a default item like "none", or if you aim for simplified keyboard accessibility. +- **List header:** Use a header to provide additional context or instructions about the items to help users understand the choices better. + - **Hide list header:** Hide the header of the dropdown list when not required. +- **Information for no matches:** Set a message to be displayed when no item matches the inserted text. +- **Editable:** When enabled, users can add new items to the list. +- **Multiselect:** Allow users to select multiple items from the list. +- **Item label:** Set a short and concise label for dropdown items. +- **Selected item:** Mark selected items in the dropdown with a check mark. + +### Behavior in context + +- **Validation:** See [validation](./forms/forms-validation.mdx). +- **Interaction:** + - Click or Enter key on button opens dropdown list. + - Typing in the input field filters the dropdown list. + - Arrow keys navigate within the dropdown list. + - Click or Enter selects a highlighted list item. + - Escape key closes dropdown list and returns to the originally selected value. +- **Overflow:** + - The text in an input field is truncated with the length of the container. + - On the multiselect, the selected items break into a second line and then show a scrollbar if it extends beyond two lines. + - The dropdown list is scrollable when the list exceeds the container height. Its width is defined by the longest item. +- **Alignment:** Selects are always aligned to the left, while right alignment is reserved exclusively for [number inputs](input-number.mdx). + +### States + +The select field has five states: default, hover, focused, disabled and read-only. In the disabled state, the input field is displayed without offering any user interaction. + +![Field states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3960-760&t=MWpyPDZDK5B531n9-4) + +### Dos and Don’ts + +- Do consider performance when loading an extensive list of items +- Do use the select component when there is a finite list of items available to avoid manual input errors or duplicates +- Do sort items logically, e.g. alphabetically or numerically +- Don't use selects for binary choices, like yes and no, use [radio buttons](radio.mdx), [checkboxes](checkbox.mdx) or [toggles](toggle.mdx) instead +- Don't use selects for navigational or search patterns, use [category filters](category-filter.md) or [search fields](expanding-search.md) instead +- Don't combine several data attributes in an item label, use [tables](html-grid.mdx) or [event lists](event-list.md) with a search functionality instead + +![Don't combine data attributes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3978-800&t=MWpyPDZDK5B531n9-4) + +### Related patterns + +- [Form field](./forms/forms-field.md) +- [Validation](./forms/forms-validation.mdx) +- [Layout](./forms/forms-layout.md) +- [Input](input.mdx) +- [Radio button](radio.mdx) +- [Checkbox](checkbox.mdx) +- [Toggle](toggle.mdx) +- [Date input](input-date.mdx) diff --git a/packages/documentation/docs/controls/_textarea-field_code.mdx b/packages/documentation/docs/controls/_textarea-field_code.mdx new file mode 100644 index 00000000000..415913dada4 --- /dev/null +++ b/packages/documentation/docs/controls/_textarea-field_code.mdx @@ -0,0 +1,37 @@ +import Playground from '@site/src/components/PlaygroundV3'; +import Props from '@site/docs/auto-generated/ix-textarea/props.md'; +import Events from '@site/docs/auto-generated/ix-textarea/events.md'; + +## Development + +### Examples + +#### Basic + + + +#### Disabled + + + +#### Readonly + + + +#### Resize behavior + + + +#### Validation + + + +### API + +#### Properties + + + +#### Events + + diff --git a/packages/documentation/docs/controls/_textarea-field_styleguide.mdx b/packages/documentation/docs/controls/_textarea-field_styleguide.mdx new file mode 100644 index 00000000000..1111c1a3bb2 --- /dev/null +++ b/packages/documentation/docs/controls/_textarea-field_styleguide.mdx @@ -0,0 +1,62 @@ +## Guidelines + +The textarea component allows users to input multi-line text, making it ideal for forms that require longer entries. We typically use textareas in scenarios such as feedback forms, comment sections and message composition. + +![Textarea overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3814-1128&t=DtCmoFcLwhf7ke3S-4) + +1. Label +2. Required field indicator +3. Placeholder +4. Container +5. Resize handle +6. Helper or feedback text +7. Counter + +### Options + +- **Label**: See [form field](./forms/forms-field.md). +- **Value**: See [form field](./forms/forms-field.md). +- **Required**: See [form field](./forms/forms-field.md). +- **Helper text**: See [form field](./forms/forms-field.md). +- **Feedback text**: See [form field](./forms/forms-field.md). +- **Show text as tooltip**: See [form field](./forms/forms-field.md). +- **Placeholder**: See [form field](./forms/forms-field.md). +- **Counter**: See [form field](./forms/forms-field.md). +- **Resize behavior**: Determines how textareas can be resized (both directions, horizontally, vertically, or no resizing). Default size is 300px x 100px. +- **Columns and width**: Defines initial width by number of columns and/or width. +- **Rows and height**: Defines initial height by number of rows and/or height. + +### Behavior in context + +- **Interaction**: + - Clicking in the container enables the editing of the field. + - Users can type, copy, paste and cut text within textareas. + - Optional: Users can resize textareas to fit their needs. For example, vertical resizing can be useful in feedback forms when the entry exceeds the default height. +- **Validation**: + - Minimum and maximum length defines number of characters allowed. + - See [form validation](./forms/forms-validation.mdx). +- **Overflow**: Text within the textarea is not truncated; it supports scrolling for overflow content. +- **Alignment**: Text is always left-aligned in textareas. +- **Sizing**: + - Use columns and rows when you want to define the size of the textarea based on the number of characters (columns) and lines (rows) it can display. This is particularly useful for textareas where the content length is predictable, such as input fields with character limits. + - Use width and height when you need to specify the exact dimensions of the textarea in terms of pixels, rems or other units. This is ideal for ensuring consistent layout and design across different screen sizes and devices, especially in responsive designs. + +### States + +Textareas have five states: Default, hover, focused, read-only and disabled. + +![Textarea states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3947-527&t=DtCmoFcLwhf7ke3S-4) + +### Dos and Don’ts + +- Do ensure the textarea size matches the expected input, e.g. 5 to 10 rows for detailed feedback +- Do use the placeholder to give users an example of the expected input +- Do set minimum and maximum character limits to ensure appropriate input length +- Don’t use the textarea for short, single-line input like name or email address, use an [input field](./input.mdx) instead + +### Related patterns + +- [Form fields](./forms/forms-field.md) +- [Validation](./forms/forms-validation.mdx) +- [Layout](./forms/forms-layout.md) +- [Input](./input.mdx) diff --git a/packages/documentation/docs/controls/_toast_code.md b/packages/documentation/docs/controls/_toast_code.md index ce625a4ab18..98a51b885dc 100644 --- a/packages/documentation/docs/controls/_toast_code.md +++ b/packages/documentation/docs/controls/_toast_code.md @@ -11,28 +11,35 @@ import ApiToastConfigAngular from './\_toast/angular/toast-config.md'; import ApiToastConfigReact from './\_toast/react/toast-config.md'; -# Toast +## Development + +### Examples + +#### Basic -## Custom toast message +> + +#### Custom toast message -## Position +> + +#### Position -## API +> + +### API diff --git a/packages/documentation/docs/controls/_toast_styleguide.md b/packages/documentation/docs/controls/_toast_styleguide.md index 582cd34d400..9689e781c7e 100644 --- a/packages/documentation/docs/controls/_toast_styleguide.md +++ b/packages/documentation/docs/controls/_toast_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Toasts are small pop-ups that provide simple feedback on a process. They are UI elements where an event causes a small text field to appear on screen. Toasts are informative, last for a few seconds only, and take up a very small part of the screen to avoid interrupting the workflow. They usually follow an action performed by the user and provide information about the success or failure of that action. We typically use toasts for immediate feedback or tips on actions that a user performs, e.g. successful deletion. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2550-58743&t=LITgbzwcgm87dQXa-4) @@ -9,14 +11,14 @@ Toasts are small pop-ups that provide simple feedback on a process. They are UI 5. Message 6. Close action -## Options +### Options -- **Toast types:** There are four preset toast types and one custom type: - - Info: Provides users with additional information about the performed action. - - Success: Informs users of a successfully performed action. - - Warning: Warns users of potential problems that could occur due to the action. - - Error: Notifies users that the action cannot be performed due to a specific problem. - - Custom: Adjust the icon and its color to customize your own toast messages. +- **Toast types:** There are four preset toast types and one custom type: + - Info: Provides users with additional information about the performed action. + - Success: Informs users of a successfully performed action. + - Warning: Warns users of potential problems that could occur due to the action. + - Error: Notifies users that the action cannot be performed due to a specific problem. + - Custom: Adjust the icon and its color to customize your own toast messages. - **Header:** Add a header for the toast. Use short and concise words. We typically use 1 to 3 keywords, such as "Error occurred" or "Action completed". - **Message:** Add a clear and concise message providing more detailed information about the toast event. We typically provide additional context or instructions related to the event, e.g. "Please check your email for further instructions" or "Your changes have been saved successfully". - **Button:** Include a button to provide users with an option to take further action. We typically use a button to give the user an option to undo the action or to provide a link for further information. @@ -24,7 +26,8 @@ Toasts are small pop-ups that provide simple feedback on a process. They are UI ![Toast types](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2552-64766&t=VfiuoHWd1VYl1GYb-4) -## Behavior in context +### Behavior in context + - **Auto closure:** Toasts should only be displayed on the screen for a few seconds. A progress bar is displayed to visualize the time left until the toast disappears. We typically leave the toast on the screen from 3 to 8 seconds. - **Manual closure:** Toasts can be closed manually at any time. It's also possible to suppress the automatic closing so that the user has to actively close the toast. We normally use a purely manual closure of the toast if the workflow is continued by using the toast, e.g. downloading files. - **Multiple toasts:** Toasts are stacked on top of each other with the newest at the bottom. @@ -32,7 +35,8 @@ Toasts are small pop-ups that provide simple feedback on a process. They are UI ![Toast in Context](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2589-2697&t=Ysb6WohsxOfZv2ls-4) -## Dos and Don’ts +### Dos and Don’ts + - Do use toasts to provide contextual tips and shortcuts for users - Do use toasts to instantly inform a user about the outcome of an action - Do include shortcuts to undo an action immediately after it's taken @@ -40,7 +44,8 @@ Toasts are small pop-ups that provide simple feedback on a process. They are UI - Don’t use toasts for high-priority or critical alerts that prevent the user from continuing their work (use a [modal](modal.md) or a [message bar](messagebar.md) instead) - Don’t edit or reuse icons or icon colors from the four predefined toast types when creating custom toasts -## Related patterns +### Related patterns + - [Modal](modal.md) - [Message bar](messagebar.md) -- [Drawer](drawer.md) \ No newline at end of file +- [Drawer](drawer.md) diff --git a/packages/documentation/docs/controls/application-frame/_about-and-legal_code.md b/packages/documentation/docs/controls/application-frame/_about-and-legal_code.md index 4e9418277ed..31e468c478c 100644 --- a/packages/documentation/docs/controls/application-frame/_about-and-legal_code.md +++ b/packages/documentation/docs/controls/application-frame/_about-and-legal_code.md @@ -6,38 +6,40 @@ import EventsItem from './../../auto-generated/ix-menu-about-item/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="about-and-legal" +height="30rem" +width="100%" +noMargin + +> -### Change language of legal links +#### Change language of legal links Supported language codes are `'global/en' | 'global/es' | 'de/de' | 'cn/zh'` -## API (ix-menu-about) +### API (ix-menu-about) -### Properties +#### Properties -### Events +#### Events -## API (ix-menu-about-item) +### API (ix-menu-about-item) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_about-and-legal_styleguide.md b/packages/documentation/docs/controls/application-frame/_about-and-legal_styleguide.md index 96221d1ba8c..433b73a632b 100644 --- a/packages/documentation/docs/controls/application-frame/_about-and-legal_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_about-and-legal_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + The About and legal component is an overlay we typically use to show application information, application versions, license terms, legal regulations, copyright information and other legal content. It appears when users click on the "About and legal" icon (1) and overlays the current content. Closing this overlay brings users back to the original content. ![About and legal overlay](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1029-79866&mode=design&t=Ntzn8IlSOlPey8s5-11) @@ -8,12 +10,14 @@ The About and legal component is an overlay we typically use to show application - (4) Tabs (optional): navigates through multiple content categories - (5) Changeable content: we use this to add specific application information and local legal regulations (note our Figma design is our personal recommendation) -## Behavior -Overlay opens on top of application content with a semi-transparent background with a background blur effect to emphasize the overlay character. Closing this overlay brings users back to the previous content. +### Behavior + +Overlay opens on top of application content with a semi-transparent background with a background blur effect to emphasize the overlay character. Closing this overlay brings users back to the previous content. The overlay can be closed in three ways: -- Select the close button -- Click the info icon again -- Click another navigation item -When the navigation menu is collapsed, the overlay stays open. \ No newline at end of file +- Select the close button. +- Click the info icon again. +- Click another navigation item. + +When the navigation menu is collapsed, the overlay stays open. diff --git a/packages/documentation/docs/controls/application-frame/_application-header_code.md b/packages/documentation/docs/controls/application-frame/_application-header_code.md index c65da92f68d..42b9f6234f1 100644 --- a/packages/documentation/docs/controls/application-frame/_application-header_code.md +++ b/packages/documentation/docs/controls/application-frame/_application-header_code.md @@ -4,34 +4,35 @@ import Events from './../../auto-generated/ix-application-header/events.md'; import Playground from '@site/src/components/PlaygroundV3'; +## Development + The application-header can host custom content which will be displayed on the far right side of the header. -## Examples +### Examples + +### Basic -## Basic + +noMargin +height="18rem"> -### Avatar +#### Avatar Enhance the interactivity of your application-header by placing the avatar component as part of the content. This not only makes the avatar clickable, but also enables the addition of dropdown-item's directly within the avatar component. -## API +### API -### Properties +#### Properties -### Slots +#### Slots -### Events +#### Events - diff --git a/packages/documentation/docs/controls/application-frame/_application-header_styleguide.md b/packages/documentation/docs/controls/application-frame/_application-header_styleguide.md index 0894e3c561a..db220c8e859 100644 --- a/packages/documentation/docs/controls/application-frame/_application-header_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_application-header_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + ![Application header with different options](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1634-56424&mode=design&t=4XzscFw57dE7McUX-11) 1. [Application switch](#application-switch) (optional) @@ -6,35 +8,33 @@ 4. [Slot](#slot) for additional elements (optional) 5. [Avatar](#avatar) (optional) +#### Application switch -### Application switch Use the application switch (see [application](./application.md)) to allow users to navigate across applications. When clicking the application switch (1), a modal with a list of available applications opens. +#### Brand logo -### Brand logo Provide the brand logo (2) as SVG. The logo must be monochromatic and cannot contain strokes as it is colored during runtime depending on your chosen theme. For Siemens applications, only the Siemens logo with the brand theme is allowed. +#### Application name -### Application name The application name (3) shows the official name of the application. It can be extended with additional information by using the pipe character "|" and 2 spaces before and after to separate both. - -### Slot +#### Slot ![Examples of slot usages](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1679-19526&mode=design&t=UPXhDWuRHtygtfFI-11) We use this slot to provide additional high-level information or actions and functions which may impact the application context, e.g. mode switching. Note that overflows are not handled automatically; at breakpoint sm the slot collapses and is only accessible via the overflow icon. We typically use the slot for: + - Log in button, if the application runs without a logged in user - Changing the top level data context like environment, workspace, tenant or similar - Important contextual information users should be aware of (like local times in remote access use cases) -- Access to application-wide actions like global search +- Access to application-wide actions like global search - - -### Avatar +#### Avatar With the new modular application frame we moved the avatar from the navigation menu to the application header. This ensures the avatar has security-relevant information available at all breakpoints. Nonetheless, if you still use the [basic navigation](./basic-navigation.md) or the [map navigation](./map-navigation.md), the avatar is still in the navigation menu for compatibility reasons. @@ -45,43 +45,44 @@ With the new modular application frame we moved the avatar from the navigation m 8. Top text line 9. Bottom text line -The avatar is an optional element and indicates the current logged in user. If your application doesn’t support different users or user profiles, don’t use the avatar. +The avatar is an optional element and indicates the current logged in user. If your application doesn’t support different users or user profiles, don’t use the avatar. Clicking the avatar opens a dropdown (6) with additional user information (7, 8, 9) and possibly other user related actions like log out, profile settings or user settings. ![Examples of access login](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1636-62468&mode=design&t=4XzscFw57dE7McUX-11) If your application can be used without being logged in to, you can offer access to a login process in different ways, for example: -- Show a log in button in the [slot for additional elements](#slot) and hide the avatar -- Show the avatar with a placeholder image and show text in the user information section -## Options +- Show a log in button in the [slot for additional elements](#slot) and hide the avatar. +- Show the avatar with a placeholder image and show text in the user information section. + +### Options If the application is hosted inside a framework that comes with its own header, you can omit the entire application header to avoid having two headers on top of each other. The framework’s header then provides the brand identity, the application name and other information. -## Behavior +### Behavior The header automatically adapts the breakpoints defined in the [application](./application.md). ![Application header at breakpoints lg/md and sm](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1636-62980&mode=design&t=4XzscFw57dE7McUX-11) 10. Layout at breakpoint lg and md -11. Layout at breakpoint (sm) +11. Layout at breakpoint (sm) 12. Application menu icon 13. Overflow icon to access the slot content (14) 14. Slot content 15. Close icon to close the application menu 16. Application menu with the application switch icon at the top -At breakpoints "lg" and "md" the application header behaves identically. At breakpoint "sm" the layout changes in the following way: +At breakpoints "lg" and "md" the application header behaves identically. At breakpoint "sm" the layout changes in the following way: -- The application menu hides, displaying the application menu icon (12); a click opens the application menu (16) -- The application switch (if used) moves to the application menu (16) -- The brand logo disappears -- The slot for additional elements (if used) moves to the overflow dropdown that opens on click on the overflow icon (13) +- The application menu hides, displaying the application menu icon (12), a click opens the application menu (16). +- The application switch (if used) moves to the application menu (16). +- The brand logo disappears. +- The slot for additional elements (if used) moves to the overflow dropdown that opens on click on the overflow icon (13). +### Dos and Don’ts -## Dos and Don’ts - Do align other slot usages for Siemens applications with our team to keep a consistent look and feel - Do use the avatar dropdown for actions related to the current logged in user - Don’t overload the slot with too many elements (overflows are not handled automatically) diff --git a/packages/documentation/docs/controls/application-frame/_application-menu_code.md b/packages/documentation/docs/controls/application-frame/_application-menu_code.md index 7ae498674ff..9d5c617c4c7 100644 --- a/packages/documentation/docs/controls/application-frame/_application-menu_code.md +++ b/packages/documentation/docs/controls/application-frame/_application-menu_code.md @@ -19,19 +19,21 @@ import AvatarTags from './../../auto-generated/ix-menu-avatar/tags.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="vertical-tabs" +height="30rem" +noMargin +hideInitalCodePreview + +> -### 2nd navigation level +#### 2nd navigation level -### Avatar +#### Avatar - +name="vertical-tabs-with-avatar" +height="30rem" +noMargin +hideInitalCodePreview + +> -### Bottom tabs +#### Bottom tabs
Caution: Since the old implementation using the bottom property on menu items had some problems and will not work anymore, please use slot="bottom" instead.
- +name="menu-with-bottom-tabs" +height="30rem" +noMargin +hideInitalCodePreview + +> -## API (ix-menu) +### API (ix-menu) -### Properties +#### Properties -### Events +#### Events -## API (ix-menu-item) +### API (ix-menu-item) -### Props +#### Props -### Events +#### Events -## API (ix-menu-category) +### API (ix-menu-category) -### Properties +#### Properties -### Events +#### Events -## API (ix-menu-avatar) +### API (ix-menu-avatar) -### Properties +#### Properties -### Events +#### Events -## API (ix-menu-avatar-item) +### API (ix-menu-avatar-item) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_application-menu_styleguide.md b/packages/documentation/docs/controls/application-frame/_application-menu_styleguide.md index f6785e95733..18b59411afc 100644 --- a/packages/documentation/docs/controls/application-frame/_application-menu_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_application-menu_styleguide.md @@ -1,28 +1,32 @@ +## Guidelines + The navigation menu is an essential part of your application. It offers a way to directly navigate to the main application parts and it can give your users access to legal and version information, and access to settings. ![Navigation menu collapsed and expanded](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=990-122297&mode=design&t=JbZngO5IAS8hvpTb-11) 1. Expand/collapse icon button: Expands and collapses the navigation menu. 2. [Avatar button](#avatar-button,): Shows the logged-in user and provides access to user-related actions (optional) -**Please note:** Only basic navigation and map navigation still use the avatar at this position. The new [application](./application.md) frame uses the avatar inside the [application header](./application-header.md). + **Please note:** Only basic navigation and map navigation still use the avatar at this position. The new [application](./application.md) frame uses the avatar inside the [application header](./application-header.md). 3. Navigation section: Navigates through the main parts of an application. 4. [Bottom section](#bottom-section): Hosts infrastructural actions and additional content but does not navigate away from the selected main part. -## Avatar button +### Avatar button The avatar button is optional. It shows information about the logged-in user. When collapsed it shows only the avatar, and when expanded it shows additional user information. A dropdown menu with user-related actions appears when selecting (note the available actions are specific to each application). The log out item is available by default. **Please note:** Only basic navigation and map navigation still use the avatar in the navigation menu. The new [application](./application.md) frame uses the avatar inside the [application header](./application-header.md). ![Avatar dropdown menu](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1013-70909&mode=design&t=Ch2wsi2EtQ3sPBpS-11) -### Avatar button options -- **top:** Defines the first line of the additional user information. We typically use this to show primary user information (first and last name or username), depending on the available information. Overflows are clipped with an ellipsis (...). -- **bottom:** Defines the second line of additional user information, used to show secondary information, for example user role. Overflows are clipped with an ellipsis (...). -- **initials:** Shows avatar with initials. -- **image:** Shows avatar with images. +#### Avatar button options + +- **top:** Defines the first line of the additional user information. We typically use this to show primary user information (first and last name or username), depending on the available information. Overflows are clipped with an ellipsis (...). +- **bottom:** Defines the second line of additional user information, used to show secondary information, for example user role. Overflows are clipped with an ellipsis (...). +- **initials:** Shows avatar with initials. +- **image:** Shows avatar with images. + +### Menu item and menu category -## Menu item and menu category -Menu items represent the main parts of an application. They have an icon for quick visual identification. When the navigation menu is expanded, the full name of the item is visible. +Menu items represent the main parts of an application. They have an icon for quick visual identification. When the navigation menu is expanded, the full name of the item is visible. Menu categories can host menu items as a second navigation level. @@ -31,7 +35,7 @@ Menu categories can host menu items as a second navigation level. 1. Selected item 2. Item with notification 3. Unselected item -4. Menu category, holds menu items as a second level navigation (on selection, the second level items appear) +4. Menu category, holds menu items as a second level navigation (on selection, the second level items appear) 5. Second level navigation menu, appears when navigation menu is collapsed 6. Second level navigation expanded inline, appears when navigation menu is expanded @@ -46,14 +50,13 @@ Second level items with icons in collapsed (9) and expanded (10) navigation menu We usually don’t use icons on the second navigation level as in most cases it won’t add any value for users. But it is allowed to use icons if it helps users to better understand and recognize the items. Don’t mix items with and without icon within a category. -### Options of menu items and menu category +#### Options of menu items and menu category - **Notifications:** Displays a number at the top right corner of the icon (2). +#### Bottom section - -### Bottom section -Items in this section do not navigate away from the current content. They either toggle states, e.g. light and dark mode, or open a layer over the current content. This means users do not lose their current workflow by interacting with these items. +Items in this section do not navigate away from the current content. They either toggle states, e.g. light and dark mode, or open a layer over the current content. This means users do not lose their current workflow by interacting with these items. ![Bottom section icons](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1005-10817&mode=design&t=ljAWsgheUZngQeQG-11) @@ -65,7 +68,7 @@ Items in this section do not navigate away from the current content. They either

-## Navigation menu options +### Navigation menu options - **enableSettings `default: true`:** Shows the settings icon (gear wheel) in the bottom section, it opens the [settings](./settings.md) overlay and the content can be freely defined. - **enableToggleTheme `default: false`:** Shows the theme toggle icon, offers an easy and direct way to toggle between light and dark themes. We don’t typically use this when dedicated theme settings are available elsewhere, e.g. in the settings overlay. @@ -75,17 +78,18 @@ See the code tab for more information and other options available.

-## Behavior +### Behavior ![Navigation menu overflow behavior](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1013-68267&mode=design&t=RG8M7S3eIKxiDqv5-11) -- Navigation menu expands and collapses with a transition -- The width of the collapse and expand state are fixed and cannot be configured -- The number of menu items can overflow, this is recognizable by the shadow at the bottom and/or top +- Navigation menu expands and collapses with a transition. +- The width of the collapse and expand state are fixed and cannot be configured. +- The number of menu items can overflow, this is recognizable by the shadow at the bottom and/or top.

-## Dos and Don’ts +### Dos and Don’ts + - Do use icons in second-level navigation items when it helps users to better understand and recognize them - Don’t mix menu items with and without icons within a second-level navigation category - Don’t place non-navigational items in the navigation section diff --git a/packages/documentation/docs/controls/application-frame/_application_code.md b/packages/documentation/docs/controls/application-frame/_application_code.md index 85e0f386d3d..f458267aae1 100644 --- a/packages/documentation/docs/controls/application-frame/_application_code.md +++ b/packages/documentation/docs/controls/application-frame/_application_code.md @@ -3,35 +3,37 @@ import Events from './../../auto-generated/ix-application/events.md'; import Playground from '@site/src/components/PlaygroundV3'; +## Development + The application component acts as a centralized hub for configuring aspects of your web-application, such as screen breakpoints, theming and app switch configuration. By consolidating these configuration points, it simplifies the management of application-wide settings and ensures a consistent user interface across different scenarios. The component itself is designed with modularity in mind. It can be seamlessly integrated with other components such as application-header, menu, content and more. This modular approach allows you to mix and match components based on your specific application requirements, providing flexibility and customization options. It's important to note that the application component focuses solely on layouting and does not dictate visual design. -## Examples +### Examples -### Basic +#### Basic The code snippet below shows an example of a combination of different components, like `ix-application-header` or `ix-content`. - + -### Breakpoints +#### Breakpoints - + -### Application switch +#### Application switch The navigation to another application is implemented via `window.open` (https://developer.mozilla.org/en-US/docs/Web/API/Window/open). Therefore you can control if the navigation should happen inside the current browser context `target: '_self'` or inside a new tab `target: '_blank'` (more information about target can be found [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target)) @@ -47,19 +49,19 @@ The navigation to another application is implemented via `window.open` (https:// } ``` - + -## API +### API -### Props +#### Props -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_application_styleguide.md b/packages/documentation/docs/controls/application-frame/_application_styleguide.md index 49bb0aaa95f..8b98cdded7f 100644 --- a/packages/documentation/docs/controls/application-frame/_application_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_application_styleguide.md @@ -1,5 +1,6 @@ -Application is a technical and infrastructural component without a direct visual appearance. It lays out the top level app elements like [header](./application-header.md), [navigation menu](./application-menu.md) and [content](./content.md). Furthermore, it controls the breakpoint handling and the theming of an application. +## Guidelines +Application is a technical and infrastructural component without a direct visual appearance. It lays out the top level app elements like [header](./application-header.md), [navigation menu](./application-menu.md) and [content](./content.md). Furthermore, it controls the breakpoint handling and the theming of an application. ### Application switch @@ -12,20 +13,21 @@ Application is a technical and infrastructural component without a direct visual 5. Indicator "open in a new browser tab" 6. Close icon -With the application switch, users can navigate across applications. The interaction control – the application switch button (1) – is in the [application header](./application-header.md). Clicking the button opens a modal (2) with a list of available applications your users can switch to. This list is technically defined in the application component and its content depends on your product strategy. Our lists typically contain applications belonging to a software suite, applications with a similar scope or applications a user has purchased. +With the application switch, users can navigate across applications. The interaction control – the application switch button (1) – is in the [application header](./application-header.md). Clicking the button opens a modal (2) with a list of available applications your users can switch to. This list is technically defined in the application component and its content depends on your product strategy. Our lists typically contain applications belonging to a software suite, applications with a similar scope or applications a user has purchased. -Clicking the current application closes the modal. Clicking another application closes the modal and opens the target application in the same or in a new browser tab, depending on the defined target option. Switching between browser tabs is much faster than loading the applications each time in the same browser tab, however, switching between multiple browser tabs could confuse users. +Clicking the current application closes the modal. Clicking another application closes the modal and opens the target application in the same or in a new browser tab, depending on the defined target option. Switching between browser tabs is much faster than loading the applications each time in the same browser tab, however, switching between multiple browser tabs could confuse users. -We typically avoid opening the same application in multiple browser tabs. Instead, we recommend switching to the browser tab where the application is already open. Nonetheless, be aware this does not work under all circumstances and some browsers cannot support this feature. +We typically avoid opening the same application in multiple browser tabs. Instead, we recommend switching to the browser tab where the application is already open. Nonetheless, be aware this does not work under all circumstances and some browsers cannot support this feature.

- -## Options +### Options - **forceBreakpoint:** Forces a specific breakpoint "lg", "md" or "sm". This can be used to force a specific application behavior that ignores the current browser viewport width. -## Behavior +### Behavior + The application component automatically adapts, by default, to three breakpoints and changes the application layout accordingly: + - "lg" for large screens (min-width 62em) - "md" for medium screens (min-width 48em) - "sm" for small screens (min-width 36em) diff --git a/packages/documentation/docs/controls/application-frame/_basic-navigation_code.md b/packages/documentation/docs/controls/application-frame/_basic-navigation_code.md index 64a12cb71f5..d65d8a80b59 100644 --- a/packages/documentation/docs/controls/application-frame/_basic-navigation_code.md +++ b/packages/documentation/docs/controls/application-frame/_basic-navigation_code.md @@ -3,33 +3,35 @@ import Events from './../../auto-generated/ix-basic-navigation/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples - - +#### Basic -### Without header + + +#### Without header - +name="basic-navigation-without-header" +height="30rem" +noMargin +hideInitalCodePreview + +>
-## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_basic-navigation_styleguide.md b/packages/documentation/docs/controls/application-frame/_basic-navigation_styleguide.md index 1b7dbf6df0c..20ee1344917 100644 --- a/packages/documentation/docs/controls/application-frame/_basic-navigation_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_basic-navigation_styleguide.md @@ -1,17 +1,20 @@ import { ApiTableSinceTag } from '@site/src/components/ApiTableTag'; import Playground from '@site/src/components/Demo'; +## Guidelines + Basic navigation is a combination of essential infrastructure components forming the basic application layout structure. Alternatively, the [map navigation](./map-navigation.md) offers an additional but less flexible layout. The new [application](./application.md) component released February 2024 is even more flexible, has a modular approach and introduces new features. Hence, we highly recommend using the new application frame. ![Basic navigation overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=984-33226&mode=design&t=SxUA6AcHswBAiIzi-11) Basic navigation has: + 1. Application header 2. [Navigation menu](./application-menu.md) 3. Application content -### Application header +#### Application header ![Application header](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=987-122161&mode=design&t=SxUA6AcHswBAiIzi-11) @@ -21,33 +24,37 @@ Basic navigation has: The application header (1) typically hosts the brand logo (4) and the application name (5). You can extended it with additional, context-related information by using the pipe character "|" and 2 spaces before and after to separate both. If the application is hosted inside a framework that comes with its own header, you can hide the application header to avoid two headers on top of each other (option: `hideHeader`). The brand identity and the application name is then provided by the framework’s header. +### Options -## Options - **breakpoints:** Defines which breakpoints the basic navigation adapts to: lg (large), md (medium), sm (small). - **hideHeader:** If true, the header component is hidden. - **forceBreakpoint:** This option forces the application to use only one of the available breakpoints. -## Behavior +### Behavior + Basic navigation automatically adapts, by default, to the three breakpoints lg (large), md (medium) and sm (small). Depending on the breakpoint, the behavior of the navigation menu is different. ![Behavior at different breakpoints](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=984-57503&mode=design&t=SxUA6AcHswBAiIzi-11) -### 6. and 7. Breakpoint lg +#### 6. and 7. Breakpoint lg + - `only screen and (min-width: 62em)` - At this breakpoint, the navigation menu and the application content share the available viewport width - Clicking the navigation menu icon expands it permanently until the collapse button is clicked (content width adapts accordingly) -### 8. and 9. Breakpoint md -- `only screen and (min-width: 48em)` +#### 8. and 9. Breakpoint md + +- `only screen and (min-width: 48em)` - Clicking the navigation menu icon expands it temporarily as an overlay - Another click or tap on the content or a navigation item collapses the navigation menu again -### 10. and 11. Breakpoint sm -- `only screen and (min-width: 36em)` +#### 10. and 11. Breakpoint sm + +- `only screen and (min-width: 36em)` - The navigation menu disappears and the icon moves into the application header - Clicking the icon displays the navigation menu as an overlay -### Examples +#### Examples +height="18rem" +noMargin> -## API +### API -### Properties +#### Properties -### Events +#### Events -### Slots +#### Slots - diff --git a/packages/documentation/docs/controls/application-frame/_content_styleguide.md b/packages/documentation/docs/controls/application-frame/_content_styleguide.md index f6a6402a1f4..55e81a6e451 100644 --- a/packages/documentation/docs/controls/application-frame/_content_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_content_styleguide.md @@ -1,5 +1,7 @@ import Tags from './../../auto-generated/ix-content/tags.md'; +## Guidelines + The content component is a simple layout component made for hosting content. ![application content](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1759-25130&mode=design&t=UPXhDWuRHtygtfFI-11) diff --git a/packages/documentation/docs/controls/application-frame/_map-navigation_code.md b/packages/documentation/docs/controls/application-frame/_map-navigation_code.md index 482e2ed6b18..c777e33f382 100644 --- a/packages/documentation/docs/controls/application-frame/_map-navigation_code.md +++ b/packages/documentation/docs/controls/application-frame/_map-navigation_code.md @@ -5,44 +5,46 @@ import EventsOverlay from './../../auto-generated/ix-map-navigation-overlay/even import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="map-navigation" +height="35rem" +oMargin +hideInitalCodePreview + +>
-### Custom overlay +#### Custom overlay - +name="map-navigation-overlay" +height="35rem" +noMargin +hideInitalCodePreview + +>
-## API (ix-map-navigation) +### API (ix-map-navigation) -### Properties +#### Properties -### Events +#### Events -## API (ix-map-navigation-overlay) +### API (ix-map-navigation-overlay) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_map-navigation_styleguide.md b/packages/documentation/docs/controls/application-frame/_map-navigation_styleguide.md index 12e0d3949d5..f0f9094d022 100644 --- a/packages/documentation/docs/controls/application-frame/_map-navigation_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_map-navigation_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Map navigation is a combination of infrastructural components that form a layout structure to present map-like content (geographical maps, P&I diagrams or other plans). It is supported by a collapsible context panel and an overlay can temporarily present additional information. Map navigation does not offer all features the [basic navigation](./basic-navigation.md) offers. The new [application](./application.md) component released February 2024 is even more flexible, has a modular approach and introduces new features. Hence, we highly recommend using the new application frame. @@ -10,17 +12,17 @@ The new [application](./application.md) component released February 2024 is even 5. Context pane icon: Expands and collapses the context pane 6. Overlay: Shows detailed information of selected objects -### Application header +#### Application header The application header (1) hosts the brand logo and the application name. As this space is limited, we recommend short application names without further information. The application header is placed inside the context panel which means it appears and disappears with the context pane.

-## Behavior +### Behavior Map navigation does not adapt to breakpoints and should only be used on large screens (desktop size). The navigation menu provides a control at the bottom (5) to expand and collapse the context pane. The overlay’s (6) background appears semi-transparent with background blur to emphasize the overlay character. -## Dos and Don’ts +### Dos and Don’ts - Don't use map navigation for typical main-detail use cases, instead use [application](./application.md) frame - Don't use map navigation if you want to support mobile use cases diff --git a/packages/documentation/docs/controls/application-frame/_popover-news_code.md b/packages/documentation/docs/controls/application-frame/_popover-news_code.md index 771d22c3473..c9c4e44d523 100644 --- a/packages/documentation/docs/controls/application-frame/_popover-news_code.md +++ b/packages/documentation/docs/controls/application-frame/_popover-news_code.md @@ -3,23 +3,25 @@ import Playground from '@site/src/components/PlaygroundV3'; import Props from './../../auto-generated/ix-menu-about-news/props.md'; import Events from './../../auto-generated/ix-menu-about-news/events.md'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="popover-news" +height="30rem" +noMargin + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_popover-news_styleguide.md b/packages/documentation/docs/controls/application-frame/_popover-news_styleguide.md index c9ed624009c..35eadd4a44c 100644 --- a/packages/documentation/docs/controls/application-frame/_popover-news_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_popover-news_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Use the popover news component to present news and information when the application starts like release notes, new app features or marketing-related information. For Siemens applications, provide the information within the [About and legal overlay](./about-and-legal.md) as well. ![Popover news](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1013-70517&mode=design&t=Ntzn8IlSOlPey8s5-11) @@ -8,21 +10,24 @@ Use the popover news component to present news and information when the applicat - (4) "Show more" button takes users to another place in the app to learn more about the information given - (5) Spike shows popover origin -## Options +### Options - **label:** Defines the header text of the popover news (1)| - **i18nShowMore:** Adjusts the text of the "Show more" button (4) | - **offsetBottom:** Adjusts the popover position. The spike (5) should point to the info icon. -## Behavior -Unlike a modal, popover news does not prevent users from navigating and interacting with the content. It only overlays the content partially and appears once triggered by the app. As soon as the user closes the popover, it does not appear again until it is re-triggered. Therefore we recommend that the information should be additionally available in the [About and legal overlay](./about-and-legal.md). The popover spike should always point to the information icon so users can find the information again. The `offsetBottom` option can be used to control its exact position. +### Behavior + +Unlike a modal, popover news does not prevent users from navigating and interacting with the content. It only overlays the content partially and appears once triggered by the app. As soon as the user closes the popover, it does not appear again until it is re-triggered. Therefore we recommend that the information should be additionally available in the [About and legal overlay](./about-and-legal.md). The popover spike should always point to the information icon so users can find the information again. The `offsetBottom` option can be used to control its exact position. + +### Dos and Don’ts -## Dos and Don’ts - Do use popover news for "nice to know" information - Don‘t use popover news for essential information a user must read, instead use a [modal](../modal.md) or a [message bar](../messagebar.md) - Don‘t use popover news for system feedback or messages, instead use a [modal](../modal.md) or a [toast message](../toast.md) -## Related patterns +### Related patterns + - [Toast message](../toast.md) - [Modal](../modal.md) - [Message bar](../messagebar.md) diff --git a/packages/documentation/docs/controls/application-frame/_settings_code.md b/packages/documentation/docs/controls/application-frame/_settings_code.md index 2993eda81d4..855b19db687 100644 --- a/packages/documentation/docs/controls/application-frame/_settings_code.md +++ b/packages/documentation/docs/controls/application-frame/_settings_code.md @@ -5,33 +5,35 @@ import Events from './../../auto-generated/ix-menu-settings/events.md'; import ItemProps from './../../auto-generated/ix-menu-settings-item/props.md'; import ItemEvents from './../../auto-generated/ix-menu-settings-item/events.md'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="settings" +height="30rem" +noMargin + +> -## API (ix-menu-settings) +### API (ix-menu-settings) -### Properties +#### Properties -### Events +#### Events -## API (ix-menu-settings-item) +### API (ix-menu-settings-item) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/application-frame/_settings_styleguide.md b/packages/documentation/docs/controls/application-frame/_settings_styleguide.md index 3f49a96d438..627550e82c2 100644 --- a/packages/documentation/docs/controls/application-frame/_settings_styleguide.md +++ b/packages/documentation/docs/controls/application-frame/_settings_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + The settings component is an overlay that presents settings in a central location. It appears when users click on the "settings" icon (1). It overlays the current content and closing this overlay brings users back to the original content. ![Settings overlay](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1030-80408&mode=design&t=Ntzn8IlSOlPey8s5-11) @@ -8,11 +10,12 @@ The settings component is an overlay that presents settings in a central locatio - (4) Tabs (optional): navigates through multiple settings categories - (5) Content -## Behavior -The overlay opens on top of the application content. The overlay has a semi-transparent background with a background blur effect to emphasize the overlay character. Closing this overlay brings users back to previous content. +### Behavior + +The overlay opens on top of the application content. The overlay has a semi-transparent background with a background blur effect to emphasize the overlay character. Closing this overlay brings users back to previous content. The overlay can be closed in three ways: + - Use the close button - Click the settings icon again - Click another navigation item - diff --git a/packages/documentation/docs/controls/application-frame/about-and-legal.md b/packages/documentation/docs/controls/application-frame/about-and-legal.md index e43870bed5c..d41779230e3 100644 --- a/packages/documentation/docs/controls/application-frame/about-and-legal.md +++ b/packages/documentation/docs/controls/application-frame/about-and-legal.md @@ -2,11 +2,14 @@ sidebar_position: 4 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_about-and-legal_styleguide.md'; import DocsCode from './\_about-and-legal_code.md'; # About and legal overlay - + + + + diff --git a/packages/documentation/docs/controls/application-frame/application-header.md b/packages/documentation/docs/controls/application-frame/application-header.md index 9a9617d2762..d2997e82074 100644 --- a/packages/documentation/docs/controls/application-frame/application-header.md +++ b/packages/documentation/docs/controls/application-frame/application-header.md @@ -1,7 +1,7 @@ --- sidebar_position: 1 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_application-header_styleguide.md'; import DocsCode from './\_application-header_code.md'; @@ -12,4 +12,7 @@ import Tags from './../../auto-generated/ix-application-header/tags.md'; - + + + + diff --git a/packages/documentation/docs/controls/application-frame/application-menu.md b/packages/documentation/docs/controls/application-frame/application-menu.md index 0515a59d185..814aef22b1a 100644 --- a/packages/documentation/docs/controls/application-frame/application-menu.md +++ b/packages/documentation/docs/controls/application-frame/application-menu.md @@ -2,11 +2,14 @@ sidebar_position: 2 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_application-menu_styleguide.md'; import DocsCode from './\_application-menu_code.md'; # Menu - + + + + diff --git a/packages/documentation/docs/controls/application-frame/application.md b/packages/documentation/docs/controls/application-frame/application.md index 96ad6806cfd..8d4123abd19 100644 --- a/packages/documentation/docs/controls/application-frame/application.md +++ b/packages/documentation/docs/controls/application-frame/application.md @@ -2,7 +2,7 @@ sidebar_position: 0 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_application_styleguide.md'; import DocsCode from './\_application_code.md'; @@ -16,4 +16,7 @@ import Tags from './../../auto-generated/ix-application/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/application-frame/basic-navigation.md b/packages/documentation/docs/controls/application-frame/basic-navigation.md index 5021ea23675..de717dfa19c 100644 --- a/packages/documentation/docs/controls/application-frame/basic-navigation.md +++ b/packages/documentation/docs/controls/application-frame/basic-navigation.md @@ -2,7 +2,7 @@ sidebar_position: 10 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_basic-navigation_styleguide.md'; import DocsCode from './\_basic-navigation_code.md'; @@ -13,4 +13,7 @@ import Tags from './../../auto-generated/ix-basic-navigation/tags.md'; - + + + + diff --git a/packages/documentation/docs/controls/application-frame/content.md b/packages/documentation/docs/controls/application-frame/content.md index ee1776b30f4..446a6c48523 100644 --- a/packages/documentation/docs/controls/application-frame/content.md +++ b/packages/documentation/docs/controls/application-frame/content.md @@ -2,7 +2,7 @@ sidebar_position: 3 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_content_styleguide.md'; import DocsCode from './\_content_code.md'; @@ -16,5 +16,8 @@ import Tags from './../../auto-generated/ix-content/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/application-frame/map-navigation.md b/packages/documentation/docs/controls/application-frame/map-navigation.md index e487b16d25b..ffb0dee94da 100644 --- a/packages/documentation/docs/controls/application-frame/map-navigation.md +++ b/packages/documentation/docs/controls/application-frame/map-navigation.md @@ -2,16 +2,18 @@ sidebar_position: 11 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_map-navigation_styleguide.md'; import DocsCode from './\_map-navigation_code.md'; - import Tags from './../../auto-generated/ix-map-navigation/tags.md'; # Map Navigation - + + + + diff --git a/packages/documentation/docs/controls/application-frame/popover-news.md b/packages/documentation/docs/controls/application-frame/popover-news.md index 639925986bb..ab37af8df57 100644 --- a/packages/documentation/docs/controls/application-frame/popover-news.md +++ b/packages/documentation/docs/controls/application-frame/popover-news.md @@ -2,11 +2,14 @@ sidebar_position: 9 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_popover-news_styleguide.md'; import DocsCode from './\_popover-news_code.md'; # Popover news - + + + + diff --git a/packages/documentation/docs/controls/application-frame/settings.md b/packages/documentation/docs/controls/application-frame/settings.md index 4a9b7e2a3c2..534f378a416 100644 --- a/packages/documentation/docs/controls/application-frame/settings.md +++ b/packages/documentation/docs/controls/application-frame/settings.md @@ -2,11 +2,14 @@ sidebar_position: 4 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_settings_styleguide.md'; import DocsCode from './\_settings_code.md'; # Settings overlay - + + + + diff --git a/packages/documentation/docs/controls/blind.md b/packages/documentation/docs/controls/blind.md index 31e162b27fe..d2aa3f5943d 100644 --- a/packages/documentation/docs/controls/blind.md +++ b/packages/documentation/docs/controls/blind.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_blind_styleguide.md' import DocsCode from './\_blind_code.md' # Blind - + + + + diff --git a/packages/documentation/docs/controls/breadcrumb.md b/packages/documentation/docs/controls/breadcrumb.md index edee0b3d06f..609f33d068e 100644 --- a/packages/documentation/docs/controls/breadcrumb.md +++ b/packages/documentation/docs/controls/breadcrumb.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_breadcrumb_styleguide.md' import DocsCode from './\_breadcrumb_code.md' # Breadcrumb - + + + + diff --git a/packages/documentation/docs/controls/buttons/_button_code.md b/packages/documentation/docs/controls/buttons/_button_code.md index 9707cd45f4d..dcf70629c72 100644 --- a/packages/documentation/docs/controls/buttons/_button_code.md +++ b/packages/documentation/docs/controls/buttons/_button_code.md @@ -5,16 +5,18 @@ import Events from './../../auto-generated/ix-button/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Primary +### Examples + +#### Primary - +name="buttons" + +> -### Primary Outline +#### Primary Outline :::info @@ -23,12 +25,12 @@ Will be used as **Secondary** in UX context ::: - +name="button-secondary" +hideInitalCodePreview -### Primary Ghost +> + +#### Primary Ghost :::info @@ -37,12 +39,12 @@ Will be used as **Ghost** in UX context ::: - +name="button-ghost" +hideInitalCodePreview + +> -### Secondary +#### Secondary :::info @@ -51,12 +53,12 @@ Will be used as **Grey button** in UX context ::: - +name="button-grey" +hideInitalCodePreview -### Secondary Outline +> + +#### Secondary Outline :::info @@ -65,12 +67,12 @@ Will be used as **Grey secondary** in UX context ::: - +name="button-grey-secondary" +hideInitalCodePreview + +> -### Secondary Ghost +#### Secondary Ghost :::info @@ -79,71 +81,71 @@ Will be used as **Grey ghost** in UX context ::: - +name="button-grey-ghost" +hideInitalCodePreview + +> -### Danger +#### Danger - +name="button-danger" +hideInitalCodePreview -### Danger Outline +> + +#### Danger Outline - +name="button-danger-outline" +hideInitalCodePreview + +> -### Danger Ghost +#### Danger Ghost - +name="button-danger-ghost" +hideInitalCodePreview + +> -### Button group +#### Button group - +name="button-group" +hideInitalCodePreview -### Button with text and icon +> + +#### Button with text and icon - +name="button-text-icon" +hideInitalCodePreview + +> -### Loading button +#### Loading button - +name="button-loading" +hideInitalCodePreview + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_button_styleguide.md b/packages/documentation/docs/controls/buttons/_button_styleguide.md index 3891f9d1f6f..c530e21428f 100644 --- a/packages/documentation/docs/controls/buttons/_button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_button_styleguide.md @@ -1,42 +1,46 @@ -Buttons initiate actions, apply actions to selected objects and activate/deactivate functions. We typically use buttons to trigger an immediate action, and you can place them within dialogs, forms, modal windows and other containers. +## Guidelines + +Buttons initiate actions, apply actions to selected objects and activate/deactivate functions. We typically use buttons to trigger an immediate action, and you can place them within dialogs, forms, modal windows and other containers. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1097-5037&mode=design&t=KAxDgJoFX436Uk0b-11) 1. Button label 2. Button icon -## Variants +### Variants - **Primary button:** In our applications, we most often use the primary button variant. - **Secondary button:** The secondary button variant has a grayscale appearance to distinguish it from the primary button. -- **Danger button:** We use the danger button variant to emphasize particularly dangerous, destructive or critical actions that cannot easily be undone. Consider this especially in confirmation dialogs. +- **Danger button:** We use the danger button variant to emphasize particularly dangerous, destructive or critical actions that cannot easily be undone. Consider this especially in confirmation dialogs. + +**Note:** Please be aware that the terms _primary_ and _secondary_ are not used in accordance to common UX terminology for primary, secondary and ghost button. -**Note:** Please be aware that the terms *primary* and *secondary* are not used in accordance to common UX terminology for primary, secondary and ghost button. +### Options -## Options -- **Default:** Use for the most important or most-likely next action within the user interface. These are typically actions that advance the user through a process, such as "Submit", "Save" or "Add". We use these sparingly and recommend only one per layout. These are typically called *primary* buttons in UX. -- **Outline:** Use for standard actions that need to be easily recognizable or for actions supporting the default (primary) action. These could include actions like "Cancel", "Reset" or "Advanced Options". These are typically called *secondary* buttons in UX. +- **Default:** Use for the most important or most-likely next action within the user interface. These are typically actions that advance the user through a process, such as "Submit", "Save" or "Add". We use these sparingly and recommend only one per layout. These are typically called _primary_ buttons in UX. +- **Outline:** Use for standard actions that need to be easily recognizable or for actions supporting the default (primary) action. These could include actions like "Cancel", "Reset" or "Advanced Options". These are typically called _secondary_ buttons in UX. - **Ghost:** Use for actions that are typically not part of the core user journey but serve specialized or conditional purposes. Tertiary buttons can represent actions such as "Advanced settings", "More options", "Help" or "Customize". They may also be used for conditional actions like "Change preferences" or "View details". - **Icon:** Icons can also be displayed with button labels. - **Disabled:** Buttons can be disabled (see also button states). - **Loading:** A loading spinner is displayed on the button. The spinner replaces an icon when available. - **Type:** A submit button is available. Submit buttons are typically used in forms and trigger a submit event. Apply this type to make a submit button more accessible. -## Behavior in context +### Behavior in context + - **Interaction:** Buttons can be triggered by pressing anywhere within the button container. When buttons are focused, they can be triggered by pressing `Space`. -- **Text truncation:** Button labels are not truncated. All text on buttons is one line only. +- **Text truncation:** Button labels are not truncated. All text on buttons is one line only. - **Ellipsis (…):** Ellipsis can be used to indicate that an action requires further input or choice from the user, such as "Save as…" which opens a further list of file types to choose from. Ellipses is typically not used for actions with a subsequent confirmation dialog. - **Alignment:** Buttons can be left-justified or right-justified or fully span a container’s width. -- **Cluster buttons:** Buttons can be clustered in groups based on their relationship. A cluster can contain a mixture of buttons, e.g. a combination of a primary button with two primary ghost buttons. We recommend a minimum distance of `0.5rem` between adjacent buttons, and we typically cluster buttons if actions/functions are related but not excluding each other. Otherwise, consider using a `button group`. +- **Cluster buttons:** Buttons can be clustered in groups based on their relationship. A cluster can contain a mixture of buttons, e.g. a combination of a primary button with two primary ghost buttons. We recommend a minimum distance of `0.5rem` between adjacent buttons, and we typically cluster buttons if actions/functions are related but not excluding each other. Otherwise, consider using a `button group`. - **Button width:** Button width depends on its content. In addition, buttons have a default minimum width of 5rem to lay out common combinations such as "OK" and "Cancel" more harmoniously with equal widths. The minimum width is customizable to accommodate other combinations. -## States +### States Buttons have six states: Default, hover, active, disabled, loading and focused. In a disabled state, buttons are visually displayed but don’t offer any user interaction. ![Button states](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=132-13020&mode=design&t=KAxDgJoFX436Uk0b-11) -## Dos and Don’ts +### Dos and Don’ts - Do use short button labels to allow users to quickly scan, understand and remember them (follow our writing style guide for more support) - Do use only one primary (default) button in one visual unit for a clear and singular focus on the main call to action @@ -48,11 +52,9 @@ Buttons have six states: Default, hover, active, disabled, loading and focused. - Don’t rely on standard buttons when many actions/functions are necessary (use dropdown, split or menu buttons or move some functionality to a panel or a dialog) - Don’t use buttons for navigation -## Related patterns: +### Related patterns - [Dropdown button](./dropdown-button.md) - [Split button](./split-button.md) - [Toggle button](./toggle-buttons.md) - [Modal](./../modal.md) - - diff --git a/packages/documentation/docs/controls/buttons/_dropdown-button_code.md b/packages/documentation/docs/controls/buttons/_dropdown-button_code.md index 8863e279b04..6f2437c0adf 100644 --- a/packages/documentation/docs/controls/buttons/_dropdown-button_code.md +++ b/packages/documentation/docs/controls/buttons/_dropdown-button_code.md @@ -3,30 +3,32 @@ import Events from './../../auto-generated/ix-dropdown-button/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="dropdown-button" +height="16rem" + +> -### Icon +#### Icon - +name="dropdown-button-icon" +height="16rem" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_dropdown-button_styleguide.md b/packages/documentation/docs/controls/buttons/_dropdown-button_styleguide.md index b6ee21a6e89..3139e29da01 100644 --- a/packages/documentation/docs/controls/buttons/_dropdown-button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_dropdown-button_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Dropdown buttons are button elements that allow users to select an action from a list of options by clicking on a button and revealing a dropdown. Clicking on one of the exposed options triggers the action. We typically use dropdown buttons when no default action is available. Dropdown buttons typically group similar or related actions. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1477-13932&mode=design&t=97WS5dUS2rk3MCp2-11) @@ -9,26 +11,31 @@ Dropdown buttons are button elements that allow users to select an action from a All the variants, options and states of the ix button component apply to the dropdown button. We've listed additional or deviating specifications here. -## Options +### Options + - **Label:** Set a label for the dropdown button. We typically use short labels including verbs. - **Placement:** Define where the dropdown appears when the button is active. Choose between different directions (top, bottom, left, right) and two options for alignment with the button (start, end). When there isn't enough space for the chosen placement, it's automatically corrected. ![Placement example](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1504-2203&mode=design&t=5MYmq6zAbfw7xIkC-11) + 1. Bottom-end placement 2. Bottom-start placement - For options of the dropdown triggered when pressing the button, please refer to our separate dropdown component guide. - The options **loading** and **type** are not available for split buttons. -## States +### States + Dropdown buttons have five states: Default, hover, active, disabled and focused. In an active state, dropdown buttons show a dropdown with the available options. The visual appearance of the states is the same as the ix button component. -## Does and Don'ts +### Dos and Don’ts + - Do use dropdown buttons when selecting an option triggers an action - Don't use dropdown buttons when there is a frequent or most-important action (use a standard button or a split button instead) -## Related patterns +### Related patterns + - [Button](button.md) - [Dropdown](../dropdown.md) -- [Select](../select.md) -- [Split button](split-button.md) +- [Select](../select.mdx) +- [Split button](split-button.md) diff --git a/packages/documentation/docs/controls/buttons/_icon-button_code.md b/packages/documentation/docs/controls/buttons/_icon-button_code.md index bb0f15d3b76..9652297bb45 100644 --- a/packages/documentation/docs/controls/buttons/_icon-button_code.md +++ b/packages/documentation/docs/controls/buttons/_icon-button_code.md @@ -3,22 +3,24 @@ import Playground from '@site/src/components/PlaygroundV3'; import Props from './../../auto-generated/ix-icon-button/props.md'; import Events from './../../auto-generated/ix-icon-button/events.md'; -## Examples +## Development -### Basic +### Examples + +#### Basic - +name="button-with-icon" +hideInitalCodePreview + +> -## API (ix-icon-button) +### API (ix-icon-button) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_icon-button_styleguide.md b/packages/documentation/docs/controls/buttons/_icon-button_styleguide.md index b6fe6e032b2..ca167d5b1a3 100644 --- a/packages/documentation/docs/controls/buttons/_icon-button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_icon-button_styleguide.md @@ -1,4 +1,6 @@ -Icon buttons are button elements containing only an icon and no text. Due to their small size, icon buttons are often used in complex layouts. We only use icon buttons if a well-known icon is available or the meaning of the icon metaphor is clear from the context. +## Guidelines + +Icon buttons are button elements containing only an icon and no text. Due to their small size, icon buttons are often used in complex layouts. We only use icon buttons if a well-known icon is available or the meaning of the icon metaphor is clear from the context. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1477-1714&mode=design&t=97WS5dUS2rk3MCp2-1) @@ -7,16 +9,19 @@ Icon buttons are button elements containing only an icon and no text. Due to the All the variants, options and states of the [button](./button.md) component apply to the icon button. We’ve listed additional or deviating specifications here. -## Options +### Options + - **Color:** The color of the icon displayed on an icon button is adjustable. In our applications, we only adjust the icon color when we place icon buttons on backgrounds with a non-standard color to maintain a proper contrast between the elements. - **Oval:** The shape of icon button containers can be adjusted from square to oval. The recommended shape of icon buttons depends on the shape of the parent component. We typically use square icon buttons within rectangular components or in a button cluster, and oval icon buttons within oval components. - **Size:** Icon buttons can have three different sizes. We use the extra small size (12) within very small parent components, the small size (16) within any standard parent components (e.g. to clear the search input) and the default size (24) for standalone applications. -## Dos and Don’ts +### Dos and Don’ts + - Do use icons that have a clear meaning for the user, otherwise use text buttons - Don’t use icon buttons in large numbers, instead use a toolbar - Don’t stretch icon buttons to span a container’s width -## Related patterns +### Related patterns + - [Button](./button.md) diff --git a/packages/documentation/docs/controls/buttons/_link-button_code.md b/packages/documentation/docs/controls/buttons/_link-button_code.md index 4b82fd69c6f..8769c592fd4 100644 --- a/packages/documentation/docs/controls/buttons/_link-button_code.md +++ b/packages/documentation/docs/controls/buttons/_link-button_code.md @@ -4,26 +4,28 @@ import Events from './../../auto-generated/ix-link-button/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development + +### Examples - +name="link-button" + +> -### Disabled +#### Disabled - +name="link-button-disabled" + +> -## API +### API -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_link-button_styleguide.md b/packages/documentation/docs/controls/buttons/_link-button_styleguide.md index 3ccab530fce..e66f3f94eb1 100644 --- a/packages/documentation/docs/controls/buttons/_link-button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_link-button_styleguide.md @@ -1,12 +1,15 @@ -Link buttons are simple button components that lead users to another location within the application or outside of it. Link buttons contain a chevron and a text label. +## Guidelines + +Link buttons are simple button components that lead users to another location within the application or outside of it. Link buttons contain a chevron and a text label. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1506-4003&mode=design&t=5MYmq6zAbfw7xIkC-11) 1. Chevron 2. Label -## Options -- **Disabled:** Link buttons can be disabled (see also button states). +### Options + +- **Disabled:** Link buttons can be disabled (see also button states). - **Target:** To define where a link opens, there are four options: | Value | Description | @@ -15,20 +18,25 @@ Link buttons are simple button components that lead users to another location wi | `_blank` | opens the document in a new window/tab | | `_parent` | opens the document in the parent frame | | `_top` | opens the document in the full body of the window | + (Reference: https://www.w3schools.com/html/html_links.asp) + - **URL:** Specify the link destination. -## Behavior in context +### Behavior in context + - **Interaction:** Link buttons can be triggered by pressing anywhere within the button area. When link buttons are focused, they can be triggered by pressing `Enter`. - **Placement:** We typically place link buttons below or next to related content but not within paragraphs. It's also possible to place multiple link buttons on top of each other to create link lists. - **Line length:** Link buttons cannot support line break or text truncation. Link button texts are displayed in one line. If there is not enough space, the complete link text is not visible. -## States +### States + Link buttons take five states: Default, hover, active, disabled and focused. On hover, the link destination is shown. In a disabled state, link buttons are visually displayed but don't offer any user interaction. ![States](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1507-9250&mode=design&t=5MYmq6zAbfw7xIkC-11) -## Dos and Don'ts +### Dos and Don'ts + - Do use link buttons for navigation - Don't use link buttons to indicate actions - Don't place link buttons within a paragraph diff --git a/packages/documentation/docs/controls/buttons/_split-button_code.md b/packages/documentation/docs/controls/buttons/_split-button_code.md index e396208a136..564351a2ba0 100644 --- a/packages/documentation/docs/controls/buttons/_split-button_code.md +++ b/packages/documentation/docs/controls/buttons/_split-button_code.md @@ -6,39 +6,41 @@ import ItemEvents from './../../auto-generated/ix-split-button-item/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development + +### Examples - +name="split-button" +height="16rem" + +> -### With icon only +#### With icon only - +name="split-button-icons" +height="16rem" +hideInitalCodePreview + +> -## API (ix-split-button) +### API (ix-split-button) -### Properties +#### Properties -### Events +#### Events -## API (ix-split-button-item) +### API (ix-split-button-item) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_split-button_styleguide.md b/packages/documentation/docs/controls/buttons/_split-button_styleguide.md index b149dbf8436..50aa26954f8 100644 --- a/packages/documentation/docs/controls/buttons/_split-button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_split-button_styleguide.md @@ -1,3 +1,5 @@ +## Guidelines + Split buttons are button elements that allow users to either trigger an action with one click or select an action from a list of options. They consist of two parts: a button labeled with text and/or an icon on the left and a dropdown button labeled with an icon on the right. We typically use split buttons when a default action is available but more options need to be offered. Split buttons group similar or related actions. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1480-30799&mode=design&t=97WS5dUS2rk3MCp2-11) @@ -10,32 +12,37 @@ Split buttons are button elements that allow users to either trigger an action w All the variants, options and states of the ix button and the ix dropdown button components apply to the split button. We've listed additional or deviating specifications here. -## Options +### Options + - **Disabled:** The disabled option can be applied to the complete component. There is no option to disable each part of the split button independently. - **Label:** Set a label for the button component (left side). We typically use short labels that contain a verb. - **Placement:** Define where the flyout appears which is triggered when the dropdown button is active. You can choose between different directions (top, bottom, left, right) and two options for alignment with the button (start, end). When there is not enough space for the chosen setting, the placement is corrected automatically. ![Placement example](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1504-2203&mode=design&t=5MYmq6zAbfw7xIkC-11) -1. Bottom-end placement -2. Bottom-start placement +1. Bottom-end placement +2. Bottom-start placement - **SplitIcon:** We typically use a chevron icon on the dropdown button, but a custom icon can be set. A common alternative to the chevron is the "more-menu" icon. - The options **loading** and **type** are not available for split buttons. -## Behavior in context +### Behavior in context + - **Interaction:** When users press an option from the dropdown list, the action is triggered. Typically the label of the button on the left side stays static. Be aware that updating the left side with the last triggered action may lead to layout changes (e.g. button width) and requires updating the dropdown by adding the action that was removed from the button face. -## States +### States + Split buttons have five states: Default, hover, active, disabled and focused. States are applied to left and the right part of the split button independently except for the disabled state. The visual appearance and the behavior of the states is the same as the ix button and the ix dropdown button. -## Does and Don'ts +### Dos and Don’ts + - Do use split buttons when there is a frequent or most-important action - Don't use split buttons for unrelated actions - Don't duplicate the default option in the dropdown -## Related patterns +### Related patterns + - [Button](button.md) - [Dropdown](../dropdown.md) -- [Select](../select.md) +- [Select](../select.mdx) - [Split button](split-button.md) diff --git a/packages/documentation/docs/controls/buttons/_toggle-button_code.md b/packages/documentation/docs/controls/buttons/_toggle-button_code.md index 0c6fdf152f1..36fcd4eb8b9 100644 --- a/packages/documentation/docs/controls/buttons/_toggle-button_code.md +++ b/packages/documentation/docs/controls/buttons/_toggle-button_code.md @@ -10,101 +10,101 @@ import TagsToggleButton from './../../auto-generated/ix-toggle-button/tags.md'; import Playground from '@site/src/components/PlaygroundV3'; -## Examples +## Development -### Toggle button primary +### Examples + +#### Toggle button primary - +name="toggle-button-primary"> -### Toggle button primary outline +#### Toggle button primary outline - +name="toggle-button-primary-outline" + +> -### Toggle button primary ghost +#### Toggle button primary ghost - +name="toggle-button-primary-ghost" + +> -### Toggle button secondary +#### Toggle button secondary - +name="toggle-button-secondary" -### Toggle button secondary outline +> + +#### Toggle button secondary outline - +name="toggle-button-secondary-outline" + +> -### Toggle button secondary ghost +#### Toggle button secondary ghost - +name="toggle-button-secondary-ghost" + +> -### Icon Toggle button secondary outline +#### Icon Toggle button secondary outline - +name="icon-toggle-button-secondary-outline" -### Icon Toggle button secondary ghost +> + +#### Icon Toggle button secondary ghost - +name="icon-toggle-button-secondary-ghost" + +> -### Icon Toggle Button secondary +#### Icon Toggle Button secondary - +name="icon-toggle-button-secondary" + +> -### Icon Toggle button primary outline +#### Icon Toggle button primary outline - +name="icon-toggle-button-primary-outline" -### Icon Toggle Button primary ghost +> + +#### Icon Toggle Button primary ghost - +name="icon-toggle-button-primary-ghost" + +> -## API (ix-toggle-button) +### API (ix-toggle-button) -### Properties +#### Properties -### Events +#### Events -## API (ix-icon-toggle-button) +### API (ix-icon-toggle-button) -### Properties +#### Properties -### Events +#### Events diff --git a/packages/documentation/docs/controls/buttons/_toggle-button_styleguide.md b/packages/documentation/docs/controls/buttons/_toggle-button_styleguide.md index 911e99ac6b7..8c9fb88cf8d 100644 --- a/packages/documentation/docs/controls/buttons/_toggle-button_styleguide.md +++ b/packages/documentation/docs/controls/buttons/_toggle-button_styleguide.md @@ -1,27 +1,33 @@ -Toggle buttons are button elements which allow the user to activate/deactivate a function. Toggle buttons with and without text labels are available. We typically use toggle buttons within button groups when users can chose between more than two options or when two available options don't follow the on/off metaphor. +## Guidelines + +Toggle buttons are button elements which allow the user to activate/deactivate a function. Toggle buttons with and without text labels are available. We typically use toggle buttons within button groups when users can chose between more than two options or when two available options don't follow the on/off metaphor. ![Overview](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=1480-33046&mode=design&t=iUJlfIvOwhKY3qk9-4) Variants, options and states of the ix button and the ix icon button components apply. Only additional, deviating or detailing specifications are listed here. -## Options +### Options + - **Pressed:** Toggle buttons can take a pressed (active) state. To improve accessibility, this state is set via the pressed option so it can be read by screen readers. - The options **type** and **color** are not available for toggle buttons. - For the primary variant, one of the options **outline** or **ghost** has to be set. -## Behavior in context +### Behavior in context + - **Button groups:** We often place toggle buttons in button groups. Typically, only one button within the group is pressed while the others take the default state. -## States +### States + Toggle buttons have five states: Default, hover, active, disabled, loading and focused. All states are also available for pressed toggled buttons. -## Dos and Don'ts +### Dos and Don'ts + - Do use toggle buttons when users can switch between more than two exclusive options - Do use toggle buttons when two opposing options don't follow the on/off metaphor -## Related patterns +### Related patterns - [Button](button.md) - [Icon button](icon-button.md) -- [Toggle](../toggle.md) +- [Toggle](../toggle.mdx) diff --git a/packages/documentation/docs/controls/buttons/button.md b/packages/documentation/docs/controls/buttons/button.md index 6d07d19aa73..c5ed36cdd35 100644 --- a/packages/documentation/docs/controls/buttons/button.md +++ b/packages/documentation/docs/controls/buttons/button.md @@ -2,11 +2,14 @@ sidebar_position: 0 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_button_styleguide.md'; import DocsCode from './\_button_code.md'; # Button - + + + + diff --git a/packages/documentation/docs/controls/buttons/dropdown-button.md b/packages/documentation/docs/controls/buttons/dropdown-button.md index 826d7aff03e..1b8071be1e6 100644 --- a/packages/documentation/docs/controls/buttons/dropdown-button.md +++ b/packages/documentation/docs/controls/buttons/dropdown-button.md @@ -2,7 +2,7 @@ sidebar_position: 1 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_dropdown-button_styleguide.md'; import DocsCode from './\_dropdown-button_code.md'; @@ -16,4 +16,7 @@ import Tags from './../../auto-generated/ix-dropdown-button/tags.md'

- + + + + diff --git a/packages/documentation/docs/controls/buttons/icon-button.md b/packages/documentation/docs/controls/buttons/icon-button.md index 00d54d7f900..380b7b10ab7 100644 --- a/packages/documentation/docs/controls/buttons/icon-button.md +++ b/packages/documentation/docs/controls/buttons/icon-button.md @@ -2,7 +2,7 @@ sidebar_position: 2 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_icon-button_styleguide.md'; import DocsCode from './\_icon-button_code.md'; @@ -16,4 +16,7 @@ import Tags from './../../auto-generated/ix-icon-button/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/buttons/link-button.md b/packages/documentation/docs/controls/buttons/link-button.md index a60a141d37a..9622ca740fc 100644 --- a/packages/documentation/docs/controls/buttons/link-button.md +++ b/packages/documentation/docs/controls/buttons/link-button.md @@ -2,7 +2,7 @@ sidebar_position: 3 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_link-button_styleguide.md'; import DocsCode from './\_link-button_code.md'; @@ -16,4 +16,7 @@ import Tags from './../../auto-generated/ix-link-button/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/buttons/split-button.md b/packages/documentation/docs/controls/buttons/split-button.md index 2d88bf22515..0d3e06fdacf 100644 --- a/packages/documentation/docs/controls/buttons/split-button.md +++ b/packages/documentation/docs/controls/buttons/split-button.md @@ -2,11 +2,14 @@ sidebar_position: 4 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_split-button_styleguide.md'; import DocsCode from './\_split-button_code.md'; # Split button - + + + + diff --git a/packages/documentation/docs/controls/buttons/toggle-buttons.md b/packages/documentation/docs/controls/buttons/toggle-buttons.md index 8f54dccbfc6..2a7ca9fbb56 100644 --- a/packages/documentation/docs/controls/buttons/toggle-buttons.md +++ b/packages/documentation/docs/controls/buttons/toggle-buttons.md @@ -2,7 +2,7 @@ sidebar_position: 5 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_toggle-button_styleguide.md'; import DocsCode from './\_toggle-button_code.md'; @@ -15,4 +15,7 @@ import Tags from './../../auto-generated/ix-toggle-button/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/card-list.md b/packages/documentation/docs/controls/card-list.md index 768df731242..799f727950f 100644 --- a/packages/documentation/docs/controls/card-list.md +++ b/packages/documentation/docs/controls/card-list.md @@ -2,7 +2,7 @@ title: Card list --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_card-list_styleguide.md'; import DocsCode from './\_card-list_code.md'; @@ -16,4 +16,7 @@ import Tags from './../auto-generated/ix-card-list/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/card.md b/packages/documentation/docs/controls/card.md index d7d7b0b7350..e0b9b7eb81c 100644 --- a/packages/documentation/docs/controls/card.md +++ b/packages/documentation/docs/controls/card.md @@ -1,11 +1,11 @@ ---- -title: Cards ---- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_card_styleguide.md'; import DocsCode from './\_card_code.md'; -## Card +# Card - + + + + diff --git a/packages/documentation/docs/controls/category-filter.md b/packages/documentation/docs/controls/category-filter.md index 2cfe9cb8305..f56f52cbc0f 100644 --- a/packages/documentation/docs/controls/category-filter.md +++ b/packages/documentation/docs/controls/category-filter.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_category-filter_styleguide.md' import DocsCode from './\_category-filter_code.md' # Category filter - + + + + diff --git a/packages/documentation/docs/controls/charts/3d.md b/packages/documentation/docs/controls/charts/3d.md index 464694bb85f..e7da1598816 100644 --- a/packages/documentation/docs/controls/charts/3d.md +++ b/packages/documentation/docs/controls/charts/3d.md @@ -1,4 +1,3 @@ -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # 3D-Charting diff --git a/packages/documentation/docs/controls/charts/bar-chart.md b/packages/documentation/docs/controls/charts/bar-chart.md index 4c1f7148ba5..d24662d06ad 100644 --- a/packages/documentation/docs/controls/charts/bar-chart.md +++ b/packages/documentation/docs/controls/charts/bar-chart.md @@ -1,4 +1,3 @@ -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # Bar chart diff --git a/packages/documentation/docs/controls/charts/gauge-chart.md b/packages/documentation/docs/controls/charts/gauge-chart.md index c481141b5a5..ae5832fd9f7 100644 --- a/packages/documentation/docs/controls/charts/gauge-chart.md +++ b/packages/documentation/docs/controls/charts/gauge-chart.md @@ -1,4 +1,3 @@ -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # Gauge chart diff --git a/packages/documentation/docs/controls/charts/line-chart.md b/packages/documentation/docs/controls/charts/line-chart.md index ae54db4d75f..6190b708799 100644 --- a/packages/documentation/docs/controls/charts/line-chart.md +++ b/packages/documentation/docs/controls/charts/line-chart.md @@ -1,4 +1,3 @@ -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # Line chart diff --git a/packages/documentation/docs/controls/charts/overview.md b/packages/documentation/docs/controls/charts/overview.md index a08e39b850c..63b34796c3b 100644 --- a/packages/documentation/docs/controls/charts/overview.md +++ b/packages/documentation/docs/controls/charts/overview.md @@ -37,8 +37,7 @@ Please make sure to correctly add `NgxEcharts` in your module file. +noMargin> ## Empty state @@ -46,6 +45,5 @@ noMargin +noMargin> diff --git a/packages/documentation/docs/controls/charts/pie-chart.md b/packages/documentation/docs/controls/charts/pie-chart.md index a452bc2499b..80177fd3108 100644 --- a/packages/documentation/docs/controls/charts/pie-chart.md +++ b/packages/documentation/docs/controls/charts/pie-chart.md @@ -1,4 +1,3 @@ -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # Pie chart diff --git a/packages/documentation/docs/controls/charts/special-chart.md b/packages/documentation/docs/controls/charts/special-chart.md index ac7a40857b5..aad0242907c 100644 --- a/packages/documentation/docs/controls/charts/special-chart.md +++ b/packages/documentation/docs/controls/charts/special-chart.md @@ -1,7 +1,6 @@ --- sidebar_position: 1 --- -import DocsTabs from '@site/src/components/DocsTabs'; import Playground from '@site/src/components/PlaygroundV3'; # Functionalities diff --git a/packages/documentation/docs/controls/checkbox.md b/packages/documentation/docs/controls/checkbox.md deleted file mode 100644 index af7730e5353..00000000000 --- a/packages/documentation/docs/controls/checkbox.md +++ /dev/null @@ -1,26 +0,0 @@ -import Playground from '@site/src/components/PlaygroundV3'; - -import Events from './../auto-generated/ix-chip/events.md'; -import Props from './../auto-generated/ix-chip/props.md'; - - -# Checkbox - -## Examples - -### Basic - - - - -### Indeterminate - - - diff --git a/packages/documentation/docs/controls/checkbox.mdx b/packages/documentation/docs/controls/checkbox.mdx new file mode 100644 index 00000000000..25ea5d0f352 --- /dev/null +++ b/packages/documentation/docs/controls/checkbox.mdx @@ -0,0 +1,24 @@ +import Tags from '@site/docs/auto-generated/ix-checkbox/tags.md'; +import DeprecatedTags from '@site/src/components/Tags'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './_forms-checkbox_styleguide.md'; +import DocsCode from './_forms-checkbox_code.mdx'; + +# Checkbox + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/chip.md b/packages/documentation/docs/controls/chip.md index 65cffa542f7..b5e4bacd126 100644 --- a/packages/documentation/docs/controls/chip.md +++ b/packages/documentation/docs/controls/chip.md @@ -2,11 +2,14 @@ title: Chip --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_chip_styleguide.md' import DocsCode from './\_chip_code.md' # Chip - + + + + diff --git a/packages/documentation/docs/controls/content-header.md b/packages/documentation/docs/controls/content-header.md index 96ae0dd38a6..34007b232ca 100644 --- a/packages/documentation/docs/controls/content-header.md +++ b/packages/documentation/docs/controls/content-header.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_content-header_styleguide.md' import DocsCode from './\_content-header_code.md' # Content header - + + + + diff --git a/packages/documentation/docs/controls/custom-field.mdx b/packages/documentation/docs/controls/custom-field.mdx new file mode 100644 index 00000000000..eaa823478d1 --- /dev/null +++ b/packages/documentation/docs/controls/custom-field.mdx @@ -0,0 +1,17 @@ +import Tags from '@site/docs/auto-generated/ix-custom-field/tags.md'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './_custom-field_styleguide.mdx'; +import DocsCode from './_custom-field_code.mdx'; + +# Custom field + + + +
+
+ + + + + diff --git a/packages/documentation/docs/controls/dropdown.md b/packages/documentation/docs/controls/dropdown.md index 7a5d865cf78..ebf1fb810d7 100644 --- a/packages/documentation/docs/controls/dropdown.md +++ b/packages/documentation/docs/controls/dropdown.md @@ -2,11 +2,14 @@ title: Dropdown --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_dropdown_styleguide.md'; import DocsCode from './\_dropdown_code.md'; # Dropdown - + + + + diff --git a/packages/documentation/docs/controls/forms/_category_.json b/packages/documentation/docs/controls/forms/_category_.json new file mode 100644 index 00000000000..74c259919f5 --- /dev/null +++ b/packages/documentation/docs/controls/forms/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Forms" +} diff --git a/packages/documentation/docs/controls/forms/_forms-field_code.mdx b/packages/documentation/docs/controls/forms/_forms-field_code.mdx new file mode 100644 index 00000000000..9e7081297d1 --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-field_code.mdx @@ -0,0 +1,41 @@ +import Playground, { + SourceCodePreview, +} from '@site/src/components/PlaygroundV2'; +import StackblitzEmbedded from '@site/src/components/StackblitzEmbedded'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Props from '@site/docs/auto-generated/ix-validation-tooltip/props.md'; + +## Development + +All components which are tagged via `form-ready` are usable inside a `form` without requiring manual integration. + +### Label + +Each `form-ready` component includes a `label` attribute that displays a label above the component. + +```html + +``` + +The `label` attribute is optional and can be left empty to display no label. + +### Required indicator + +To display an indicator whether a field is required, use the attribute `required`. The indicator is only displayed, when a label is set. + +```html + +``` + +### Helper or feedback text + +To display a helper or feedback text below your component please refer to [validation](forms-validation.mdx). + +### Counter + +To display a counter on inputs or textareas, use the attribute `maxLength`. + +```html + +``` diff --git a/packages/documentation/docs/controls/forms/_forms-field_style.mdx b/packages/documentation/docs/controls/forms/_forms-field_style.mdx new file mode 100644 index 00000000000..567695c01df --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-field_style.mdx @@ -0,0 +1,57 @@ +## Guidelines + +A field is a form element when user input is needed. It's typically used with other form elements in a fieldset. + +![Field](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2781-323&t=pKzFQBhaXmjTsR8P-4) + +1. Label +2. Form component +3. Helper text +4. Required indicator +5. Counter (input and textarea field only) + +**Note:** In this chapter, we describe the default field component. For details about [custom fields](../custom-field.mdx), refer to the [layouts](forms-layout.md) chapter. + +## Options + +- **Label:** Add a label for the field that provides context to your users. +- **Required:** The asterisk states whether user input is required on the field before submitting the form. +- **Field:** Use the appropriate field based on the type of input data, e.g. use [text inputs](../input.mdx) for text-based data, [checkboxes](../checkbox.mdx) for selecting from a list of predefined options, or [toggle switches](../toggle.mdx) for a binary choice. +- **Helper text:** Use to help users understand the field better. We typically use this when there are input restrictions or more information is required. +- **Show text as tooltip:** Display validation feedback either below the input field or as tooltip when the user hovers or focuses on the form field. Use a different text for the individual validation states that apply (see [validation](forms-validation.mdx)). +- **Counter:** Use a counter to show the number of characters entered into the field and the maximum number of characters allowed. We typically use it for [text input](../input.mdx) or [textarea](../textarea.mdx) fields. + +## Behavior in context + +- **Interaction:** See [validation](forms-validation.mdx). +- **Behavior of a field as part of a form:** See [behavior](forms-validation.mdx). +- **Text truncation:** Labels, feedback and helper texts are not truncated but break into multiple lines if they exceed the field's width. + +## States + +Interaction states: Default, hover, active, disabled, readonly, focus. + +When a feedback tooltip is chosen over a message, the field shows a tooltip when in focus or hovered over in specific validation states. + +![States](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2781-12426&t=pKzFQBhaXmjTsR8P-4) + +**Note:** There are also several validation states (default, valid, info, warning, invalid) that are described in [validation](forms-validation.mdx). + +## Dos and Don’ts + +- Do use a label for every field +- Do use a counter for fields with a character limit +- Do use helper text to provide additional information or context about the field +- Don’t use helper text as a replacement for clear labels +- Don’t mix different variants of feedback text and tooltips + +## Related patterns + +- [Validation](forms-validation.mdx) +- [Behavior](forms-behavior.md) +- [Input](../input.mdx) +- [Textarea](../textarea.mdx) +- [Select](../select.mdx) +- [Checkbox](../checkbox.mdx) +- [Radio button](../radio.mdx) +- [Toggle switch](../toggle.mdx) diff --git a/packages/documentation/docs/controls/forms/_forms-layout_code.mdx b/packages/documentation/docs/controls/forms/_forms-layout_code.mdx new file mode 100644 index 00000000000..b0937c9c2f6 --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-layout_code.mdx @@ -0,0 +1,47 @@ +import Playground from '@site/src/components/PlaygroundV3'; +import StackblitzEmbedded from '@site/src/components/StackblitzEmbedded'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Props from '@site/docs/auto-generated/ix-validation-tooltip/props.md'; + +## Development + +### Using custom layout + +To align `form-ready` components in a complex form layout, you typically omit the `label` attribute and define the label +as an `ix-field-label` component. + +You can follow the example here: + +1. Define the `ix-input` component including an `id` attribute. + +```html + +``` + +2. Define an `ix-field-label` component with a `for` attribute to link the label to the `ix-input` component. + +```html +Test +``` + +3. Define an `ix-helper-text` component with a `for` attribute to link the helper text to the `ix-input` component. + +```html + +``` + +### Using `ix-layout-auto` + + + +### Using `ix-layout-grid` + + diff --git a/packages/documentation/docs/controls/forms/_forms-layout_style.mdx b/packages/documentation/docs/controls/forms/_forms-layout_style.mdx new file mode 100644 index 00000000000..f30bdf50e0f --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-layout_style.mdx @@ -0,0 +1,36 @@ +## Guidelines + +Effective form layouts play a crucial role in usability. Well-structured forms include fieldsets, considering the hierarchy of information, and understanding how to strike the right balance between aesthetics and functionality. + +![Form layout examples](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=3046-516&t=kneyH2DQ9aKpFhdv-4) + +1. Small form (modal) +2. Medium form +3. Big form (page) + +### Structuring a form + +Effective ways to organize form elements enhance user comprehension and interaction within your forms: + +- **Single-column layout:** Ideal for short forms with a few fields or small viewports. +- **Multi-column layout:** Suitable for long forms with multiple fields to save vertical space. Use a [layout grid](../layout-grid.md) or flexbox to align fields. +- **Tabbed layout:** Use [tabs](../tabs.md) to break up long forms into manageable sections. This helps users focus on one part of the form at a time. +- **Stepped layout:** Use our workflow pattern to guide users through multi-step forms. +- **Fieldset:** Group related fields together using fieldsets. This helps users understand the context of the information they are providing. Add a legend (title) to describe the field group. +- **Section heading:** Use section headings to break up long forms into manageable sections. This helps users focus on one part of the form at a time. +- **Blind:** Use a [blind](../blind.md) to hide optional fields and reveal them when the user selects a specific option. + +### Best practice + +- **Z and F shape pattern:** Follow natural reading patterns, for example left to right, to guide users through the form. Consider a clear order of fields to ensure users don’t forget to fill in fields and improve data quality. +- **Button alignment:** Position primary action buttons, e.g. submit and cancel consistently. We recommend: - Bottom left: Short forms (up to 5 fields) - Bottom right: Long forms (more than 5 fields) - Bottom right and sticky: Long forms that are already filled in (e.g. edit) with a large number of fields + %% - Top right: ??? %% +- **Label alignment:** By default, the label is positioned above its input field. Use a custom field component for long forms with a lot of fields to position the label on the left (which saves vertical space). +- **Grouping fields:** In some cases, it makes sense to combine multiple fields in one [custom field](../custom-field.mdx) with a single label that are connected contextually or through validation, e.g. entering the value and unit of an entity, selecting start and end date. It allows a clearer validation, e.g. the end date must be after the start date. +- **Field width:** Use a consistent width for input fields to create a harmonious layout. For example, use a width of 100% for full-width fields and 50% for two-column fields. + %% - **Responsive behavior**: xxx - Layout grid or flexbox - should I use 1 or 2 columns? %% + +### Related patterns + +- [Validation](forms-validation.mdx) +- [Behavior](forms-behavior.md) diff --git a/packages/documentation/docs/controls/forms/_forms-validation_code.mdx b/packages/documentation/docs/controls/forms/_forms-validation_code.mdx new file mode 100644 index 00000000000..73cd9939bb3 --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-validation_code.mdx @@ -0,0 +1,104 @@ +import Admonition from '@theme/Admonition'; +import Playground, { + SourceCodePreview, +} from '@site/src/components/PlaygroundV2'; +import StackblitzEmbedded from '@site/src/components/StackblitzEmbedded'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Props from '@site/docs/auto-generated/ix-validation-tooltip/props.md'; + +## Development + +This section details the technical implementation of validation in form components, utilizing component attributes along with corresponding CSS classes to represent various validation states. + +### Validation text + +- **helperText** (optional): Text displayed below the field component to provide additional information. +- **infoText** (optional): Informational text for the field component. +- **warningText** (optional): Warning text for the field component. +- **invalidText** (optional): Error text for the field component. +- **validText** (optional): Valid text for the field component. +- **showTextAsTooltip** (optional): Determines whether to display helper, info, warning, error, and valid text as tooltips. + +### Validation states + +To change the validation representation, you have to apply the corresponding classes to the component. + +- `ix-valid`: To show component as valid (Priority 1) +- `ix-info`: To show component as info (Priority 2) +- `ix-warning`: To show component as warning (Priority 3) +- `ix-invalid`: To show component as invalid (Priority 4) + +These classes have different priority levels, which determining in which order the styling is applied to the component. (`1` is the lowest priority and `3` the highest) + +#### Example + +```html + +``` + +Above example will result in displaying the component as `invalid`, because `invalid` has a higher priority than `info`. + + + When using Angular in combination with reactive forms, it is not necessary to + manually apply the CSS classes `.ix-invalid` and `.ix-valid`. This will be + done automatically through value accessors. + + +### Suppress internal validation + +To suppress the internal validation of a component, you have to provide the `novalidate` attribute to the [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#novalidate). + +```html +
+ +
+``` + +### Example + + + + + + Please note that using the `required` attribute in an Angular application could result in unfavourabe behaviour displaying the field as invalid even if there was no user interaction yet. + To avoid that it is suggested not to add the `required` attribute, but implement a custom validator for required fields instead (see `name` and `last-name` in the following code). + + +
+ Just want to see the source code? + +
+ + + +
+ + + Using `react-form-hook` is just an example to demonstrate how validation could be done + within React. You can use any other validation library or write your own validation logic. + + +
+ Just want to see the source code? + + +
+ + +
+ + + Using `@vuelidate/core` is just an example to demonstrate how validation could be done + within Vue. You can use any other validation library or write your own validation logic. + + +
+ Just want to see the source code? + + +
+ + +
+
diff --git a/packages/documentation/docs/controls/forms/_forms-validation_style.md b/packages/documentation/docs/controls/forms/_forms-validation_style.md new file mode 100644 index 00000000000..774e1687870 --- /dev/null +++ b/packages/documentation/docs/controls/forms/_forms-validation_style.md @@ -0,0 +1,75 @@ +## Guidelines + +Form validation gives users feedback on their input to ensure accurate, consistent data is submitted. When requirements are not met or data is incorrect, it’s rejected. + +![Invalid state](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2767-5955&t=IIgjTqoOEP524yAH-4) + +Key aspects: + +- Data accuracy: Collect precise information for informed decisions. +- Security: Prevent malicious submissions. +- User experience: Improve by guiding users and saving time. + +### Options + +- Tooltip and feedback: See [form field](forms-field.md). +- Validation options: + - On value change (validate during input) + - On blur (validate on leaving a field) + - On blur of a certain part of the form (validate on leaving a certain part of the form) + - On click on submit button (validate after users press the submit button) + +#### On value change + +This option provides instant feedback to the user as they type, making it suitable for checking character rules. + +Examples: As the user types a password, it instantly shows whether the password meets the required length or contains special characters. With an e-mail address, it validates when the email format is correct. + +#### On blur + +With this option, validation occurs after the user finishes inputting and leaves the control. It provides immediate feedback and is commonly used for checking required inputs, specific data patterns and comparing input with server data. + +Example: When the user enters an email address and moves to the next field, it validates when the email format is correct. + +#### On click on submit button + +This option validates all relevant user input for completeness and plausibility after the user presses the submit button. It's useful for checking data before sending it to the server and for final validation on the server side. + +Example: When the user fills out a registration form and clicks the submit button, it validates when all required fields are completed and if the data is valid. + +#### On blur of a certain part of the form + +This option validates multiple input controls when users leave a specific part of the form. It provides feedback on the plausibility of multiple dependent inputs. + +Example: When the user completes the shipping address section of an e-commerce checkout form and moves to the payment section, it validates if the shipping address is complete and valid. + +### Behavior in context + +- **Validation:** A validation occurs when a user interacts with a form field, such as submitting a form or moving to the next field. +- **Override behavior:** When multiple validation states are present, only the message with the highest priority state is shown. The order of priority, from lowest to highest, is: valid, info, warning and invalid. + +### States + +- Default: The initial state of a form field, often before any user interaction or validation. + - Example: Helper text with password strength requirements. +- Valid: Indicates that the user input meets all validation criteria and is acceptable. + - Example: User enters a password that meets all the criteria for a strong password. +- Info: Provides additional context or guidance to the user. + - Example: User changes a field that has a dependency to another field or is not saved yet. +- Warning: A non-critical issue or suggestion related to the input. + - Examples: User enters a weak password, or a rotation speed that is beyond a safety threshold. +- Invalid: Indicates that the user input does not meet the specified requirements. + - Examples: User enters an email address without the "@" symbol or misses a required input. + +![States](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?node-id=2767-5681&t=IIgjTqoOEP524yAH-4) + +### Dos and Don’ts + +- Do use short and helpful copy for validation +- Do include all relevant information in the validation message, including context +- Don’t show valid feedback on components, only in the input help component + +### Related patterns + +- [Form field](forms-field.md) +- [Behavior](forms-behavior.md) diff --git a/packages/documentation/docs/controls/forms/forms-behavior.md b/packages/documentation/docs/controls/forms/forms-behavior.md new file mode 100644 index 00000000000..8d64ff16916 --- /dev/null +++ b/packages/documentation/docs/controls/forms/forms-behavior.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 4 +--- + +# Behavior + +Forms behavior refers to the way in which user input is handled and validated within a form. It plays a crucial role in providing a seamless and user-friendly experience for form interactions. + +## Validation feedback + +When data is validated, a validation result is provided to guide users to correct invalid data, convey a sense of security, warn about critical inputs or inform about special features of an input. + +We support 4 types of validation feedback: + +1. Valid +2. Info +3. Warning +4. Invalid + +## Form submission strategies + +When it comes to handling form submissions, there are three common strategies to ensure a seamless user experience and maintain data integrity: + +1. Disable submit button +2. Always enable submit button +3. Submit on blur + +A combination of strategy 1 and 3 is possible. + +### Strategy 1: Disable submit button + +In this strategy, the submit button is disabled until all required input controls are filled or controls are valid. This helps prevent users from submitting invalid data to the server. + +- Pro: Prevents sending invalid data to the server. +- Pro: Communicates issues with the form. +- Con: Doesn't specify missing or incorrect fields which can be frustrating. +- Con: Some screen readers may not read out the disabled submit button, causing confusion. + +### Strategy 2: Always enable submit button + +In this strategy, the submit button is always enabled, allowing users to click it at any time. + +- Pro: Users can always click the submit button and receive feedback on missing or invalid data. +- Con: The form may appear complete even with missing or invalid data. +- Con: Unnecessary data may be sent to the server, consuming resources. + +### Strategy 3: Submit on blur + +In this strategy, there is no need for a submit button. The form is automatically submitted after the user finishes inputting and leaves the control. + +- Pro: Provides a seamless user experience by automatically submitting the form when the user moves away from a field. +- Pro: Provides immediate feedback without the need for a submit button. +- Con: Users may accidentally trigger form submission by navigating away from a field unintentionally. +- Con: Handling validation and error messages without a submit button can be challenging. +- Con: Users may not have a chance to review and confirm their input before submission. + +For more information on form validation, refer to the [validation](forms-validation.mdx) chapter. + +## Related patterns + +- [Validation](forms-validation.mdx) +- [Layout](forms-layout.md) diff --git a/packages/documentation/docs/controls/forms/forms-field.md b/packages/documentation/docs/controls/forms/forms-field.md new file mode 100644 index 00000000000..b71fcfc4e82 --- /dev/null +++ b/packages/documentation/docs/controls/forms/forms-field.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 1 +--- + +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_forms-field_style.mdx' +import DocsCode from './\_forms-field_code.mdx' + +# Field + + + + + diff --git a/packages/documentation/docs/controls/forms/forms-layout.md b/packages/documentation/docs/controls/forms/forms-layout.md new file mode 100644 index 00000000000..254388fbdbb --- /dev/null +++ b/packages/documentation/docs/controls/forms/forms-layout.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 2 +--- + +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_forms-layout_style.mdx' +import DocsCode from './\_forms-layout_code.mdx' + +# Layout + + + + + diff --git a/packages/documentation/docs/controls/forms/forms-validation.mdx b/packages/documentation/docs/controls/forms/forms-validation.mdx new file mode 100644 index 00000000000..75546f61a38 --- /dev/null +++ b/packages/documentation/docs/controls/forms/forms-validation.mdx @@ -0,0 +1,27 @@ +--- +sidebar_position: 3 +--- + +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './_forms-validation_style.md'; +import DocsCode from './_forms-validation_code.mdx'; + +import DeprecatedTags from '@site/src/components/Tags'; + +# Validation + +
+ +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/input-date.mdx b/packages/documentation/docs/controls/input-date.mdx new file mode 100644 index 00000000000..cdd98e6b0a3 --- /dev/null +++ b/packages/documentation/docs/controls/input-date.mdx @@ -0,0 +1,22 @@ +import DeprecatedTags from '@site/src/components/Tags'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_date-input_styleguide.mdx' +import DocsCode from './\_date-input_code.mdx' + +import Tags from '@site/docs/auto-generated/ix-date-input/tags.md'; + +# Input (date) + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/input-number.mdx b/packages/documentation/docs/controls/input-number.mdx new file mode 100644 index 00000000000..c7f3a1f11c4 --- /dev/null +++ b/packages/documentation/docs/controls/input-number.mdx @@ -0,0 +1,21 @@ +import DeprecatedTags from '@site/src/components/Tags'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './_number-input_styleguide.mdx'; +import DocsCode from './_number-input_code.mdx'; +import Tags from '@site/docs/auto-generated/ix-number-input/tags.md'; + +# Input (number) + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/input.md b/packages/documentation/docs/controls/input.md deleted file mode 100644 index 39086dbdf38..00000000000 --- a/packages/documentation/docs/controls/input.md +++ /dev/null @@ -1,61 +0,0 @@ -import Playground from '@site/src/components/PlaygroundV3'; - -# Input - -## Examples - -### Basic - - - - -### Disabled - - - - -### Readonly - - - - -### With icon - - - - -### Label placement - - - - -### Input types - - - - -### Search - - - diff --git a/packages/documentation/docs/controls/input.mdx b/packages/documentation/docs/controls/input.mdx new file mode 100644 index 00000000000..18a76235f78 --- /dev/null +++ b/packages/documentation/docs/controls/input.mdx @@ -0,0 +1,24 @@ +--- +title: Input (text) +--- + +import DeprecatedTags from '@site/src/components/Tags'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_input_styleguide.md'; +import DocsCode from './\_input_code.md'; + +import Tags from './../auto-generated/ix-input/tags.md'; + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/layout-auto.md b/packages/documentation/docs/controls/layout-auto.md new file mode 100644 index 00000000000..dc18289ae32 --- /dev/null +++ b/packages/documentation/docs/controls/layout-auto.md @@ -0,0 +1,38 @@ +import Playground from '@site/src/components/PlaygroundV2'; +import Props from '@site/docs/auto-generated/ix-layout-auto/props.md'; +import Events from '@site/docs/auto-generated/ix-layout-auto/events.md'; +import Tags from '@site/docs/auto-generated/ix-layout-auto/tags.md'; + +# Layout auto + + + +## Examples + +### Basic + + + +### Custom columns + + + +## API + +### Properties + + + +### Events + + diff --git a/packages/documentation/docs/controls/layout-grid.md b/packages/documentation/docs/controls/layout-grid.md index 6b48ea0effe..7a54e0b51be 100644 --- a/packages/documentation/docs/controls/layout-grid.md +++ b/packages/documentation/docs/controls/layout-grid.md @@ -2,7 +2,7 @@ title: Layout grid --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_layout-grid_styleguide.md'; import DocsCode from './\_layout-grid_code.md'; @@ -13,4 +13,7 @@ import Tags from './../auto-generated/ix-layout-grid/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/messagebar.md b/packages/documentation/docs/controls/messagebar.md index feee15f0059..b24d311dd13 100644 --- a/packages/documentation/docs/controls/messagebar.md +++ b/packages/documentation/docs/controls/messagebar.md @@ -3,7 +3,7 @@ import Events from './../auto-generated/ix-message-bar/events.md'; import Playground from '@site/src/components/PlaygroundV3'; -# Message-bar +# Message bar ## Examples diff --git a/packages/documentation/docs/controls/pagination.md b/packages/documentation/docs/controls/pagination.md index e3835d6f4dc..7bf9563cb9d 100644 --- a/packages/documentation/docs/controls/pagination.md +++ b/packages/documentation/docs/controls/pagination.md @@ -12,19 +12,11 @@ import Playground from '@site/src/components/PlaygroundV3'; ### Basic - - + ### Advanced - - + ## API diff --git a/packages/documentation/docs/controls/panes.md b/packages/documentation/docs/controls/panes.md index ffda11b9e8a..6a4c7607715 100644 --- a/packages/documentation/docs/controls/panes.md +++ b/packages/documentation/docs/controls/panes.md @@ -2,7 +2,7 @@ title: Panes --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_panes_styleguide.md'; import DocsCode from './\_panes_code.md'; @@ -14,4 +14,7 @@ import Tags from './../auto-generated/ix-pane/tags.md';

- + + + + diff --git a/packages/documentation/docs/controls/pill.md b/packages/documentation/docs/controls/pill.md index f0c5337fab9..31d3a1de7a0 100644 --- a/packages/documentation/docs/controls/pill.md +++ b/packages/documentation/docs/controls/pill.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_pill_styleguide.md' import DocsCode from './\_pill_code.md' # Pill - + + + + diff --git a/packages/documentation/docs/controls/radio.mdx b/packages/documentation/docs/controls/radio.mdx new file mode 100644 index 00000000000..f9bd455ea90 --- /dev/null +++ b/packages/documentation/docs/controls/radio.mdx @@ -0,0 +1,22 @@ +import DeprecatedTags from '@site/src/components/Tags'; +import Tags from '@site/docs/auto-generated/ix-radio/tags.md'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './_radio_styleguide.mdx'; +import DocsCode from './_radio_code.mdx'; + + +# Radio + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/radiobutton.md b/packages/documentation/docs/controls/radiobutton.md deleted file mode 100644 index ee8ffc9253b..00000000000 --- a/packages/documentation/docs/controls/radiobutton.md +++ /dev/null @@ -1,12 +0,0 @@ -import Playground from '@site/src/components/PlaygroundV3'; - -# Radio button - -## Examples - -### Basic - - - diff --git a/packages/documentation/docs/controls/select.md b/packages/documentation/docs/controls/select.md deleted file mode 100644 index e7668e77fe6..00000000000 --- a/packages/documentation/docs/controls/select.md +++ /dev/null @@ -1,57 +0,0 @@ -import Props from './../auto-generated/ix-select/props.md'; -import Events from './../auto-generated/ix-select/events.md'; - -import ItemProps from './../auto-generated/ix-select-item/props.md'; -import ItemEvents from './../auto-generated/ix-select-item/events.md'; - -import Playground from '@site/src/components/PlaygroundV3'; - -# Select - -## Examples - -### Basic - - - - -### Editable - - - - -### Multiselect - - - - -## API (ix-select) - -### Properties - - - -### Events - - - -## API (ix-select-item) - -### Properties - - - -### Events - - diff --git a/packages/documentation/docs/controls/select.mdx b/packages/documentation/docs/controls/select.mdx new file mode 100644 index 00000000000..7d0a7811bc1 --- /dev/null +++ b/packages/documentation/docs/controls/select.mdx @@ -0,0 +1,20 @@ +--- +title: Select +--- + +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_select_styleguide.md'; +import DocsCode from './\_select_code.mdx'; + +import Tags from './../auto-generated/ix-select/tags.md'; + + + +
+
+ + + + + diff --git a/packages/documentation/docs/controls/textarea.md b/packages/documentation/docs/controls/textarea.md deleted file mode 100644 index 1c5d86dfebe..00000000000 --- a/packages/documentation/docs/controls/textarea.md +++ /dev/null @@ -1,34 +0,0 @@ -import Events from './../auto-generated/ix-tabs/events.md'; - - -import Playground from '@site/src/components/PlaygroundV3'; - -# Textarea - -## Examples - -### Basic - - - - -### Disabled - - - - -### Readonly - - - diff --git a/packages/documentation/docs/controls/textarea.mdx b/packages/documentation/docs/controls/textarea.mdx new file mode 100644 index 00000000000..5bce88f4d43 --- /dev/null +++ b/packages/documentation/docs/controls/textarea.mdx @@ -0,0 +1,21 @@ +import DeprecatedTags from '@site/src/components/Tags'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; + +import DocsUx from './\_textarea-field_styleguide.mdx' +import DocsCode from './\_textarea-field_code.mdx' +import Tags from '@site/docs/auto-generated/ix-textarea/tags.md'; + +# Textarea + +
+ + +
+ +
+
+ + + + + diff --git a/packages/documentation/docs/controls/toast.md b/packages/documentation/docs/controls/toast.md index 62243a88b36..648ed6d138e 100644 --- a/packages/documentation/docs/controls/toast.md +++ b/packages/documentation/docs/controls/toast.md @@ -1,8 +1,11 @@ -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_toast_styleguide.md' import DocsCode from './\_toast_code.md' # Toast - + + + + diff --git a/packages/documentation/docs/controls/toggle.md b/packages/documentation/docs/controls/toggle.mdx similarity index 100% rename from packages/documentation/docs/controls/toggle.md rename to packages/documentation/docs/controls/toggle.mdx diff --git a/packages/documentation/docs/guidelines/_theme-switching_code.md b/packages/documentation/docs/guidelines/_theme-switching_code.md index ab6c659971f..eafc6c551fe 100644 --- a/packages/documentation/docs/guidelines/_theme-switching_code.md +++ b/packages/documentation/docs/guidelines/_theme-switching_code.md @@ -1,15 +1,16 @@ import { ApiTableSinceTag } from '@site/src/components/ApiTableTag'; import PlaygroundV3 from '@site/src/components/PlaygroundV3'; -# Theme switching +## Development -## Working with themes during runtime +### Theme switching + +#### Working with themes during runtime - +name="theme-switcher" +height="15rem" + +> diff --git a/packages/documentation/docs/guidelines/_theme-switching_styleguide.md b/packages/documentation/docs/guidelines/_theme-switching_styleguide.md index d0185305c15..488cf4858ea 100644 --- a/packages/documentation/docs/guidelines/_theme-switching_styleguide.md +++ b/packages/documentation/docs/guidelines/_theme-switching_styleguide.md @@ -1,25 +1,28 @@ -# Selecting a theme for designing +## Guidelines + +### Selecting a theme for designing When working with our Figma library, you can apply a theme to either an entire page or an individual element, such as a frame or component: ![Applying a theme](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2232-192&mode=design&t=C6IjeY71MP4uA7vZ-4) -## Applying one theme to a whole page + +#### Applying one theme to a whole page 1. First ensure there are no selected elements on the page by pressing the "Esc" key to deselect them. 2. Click the button with the hexagon in the right panel on the right side of the "Page" section to open the theme selection dropdown. -3. Select from the dropdown the desired theme colors to apply to the entire page. +3. Select from the dropdown the desired theme colors to apply to the entire page. -## Applying one theme to an element +#### Applying one theme to an element 1. Select the specific element (such as a frame or component) you want to apply a theme to. 2. Click the button with the hexagon in the right panel on the right side of the "Layer" section to open the theme selection dropdown. -3. Select from the dropdown the desired theme colors to apply to the selected element. +3. Select from the dropdown the desired theme colors to apply to the selected element. Note: When applying a theme to an individual element, it overrides the page-level theme. For more information see the official [Figma documentation](https://help.figma.com/hc/en-us/articles/15339657135383-Guide-to-variables-in-Figma). -# Changing theme variables +### Changing theme variables ![Changing theme variables](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=2232-101&mode=design&t=C6IjeY71MP4uA7vZ-4) diff --git a/packages/documentation/docs/guidelines/theme-switching.md b/packages/documentation/docs/guidelines/theme-switching.md index fa79f6f780f..311d54895c6 100644 --- a/packages/documentation/docs/guidelines/theme-switching.md +++ b/packages/documentation/docs/guidelines/theme-switching.md @@ -2,11 +2,14 @@ sidebar_position: 2 --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_theme-switching_styleguide.md'; import DocsCode from './\_theme-switching_code.md'; # Theme Switching - + + + + diff --git a/packages/documentation/docs/icon-library/_icon_code.md b/packages/documentation/docs/icon-library/_icon_code.md index 5a980177e7d..d9ef8589b82 100644 --- a/packages/documentation/docs/icon-library/_icon_code.md +++ b/packages/documentation/docs/icon-library/_icon_code.md @@ -1,8 +1,10 @@ import Icons from '@site/src/components/Icons'; -## Usage +## Development -### Angular +### Usage + +#### Angular ```html @@ -10,7 +12,7 @@ import Icons from '@site/src/components/Icons'; ``` -### React +#### React ```html @@ -18,7 +20,7 @@ import Icons from '@site/src/components/Icons'; ``` -### Web components +#### Web components ```html @@ -26,7 +28,7 @@ import Icons from '@site/src/components/Icons'; ``` -### Vue +#### Vue ```html @@ -34,9 +36,10 @@ import Icons from '@site/src/components/Icons'; ``` -## Integrate external icons +### Integrate external icons + +#### Technical requirements -### Technical requirements - Supported icon format is SVG - Each icon is a single SVG file, Sprites are not supported yet - The icon has a size of 512✕512 (width, height and viewBox) @@ -49,10 +52,10 @@ import Icons from '@site/src/components/Icons'; ``` -### Internal SVG structure +#### Internal SVG structure The provided SVG icons are graphic resources whose code is mostly generated by design applications such as Figma, Sketch or Adobe Illustrator. The tools use different export routines, which can also change over time. We therefore cannot guarantee that the internal structure of an SVG will be preserved after updates – even if the icons remain visually the same. -## Icon library +### Icon library diff --git a/packages/documentation/docs/icon-library/_icon_styleguide.md b/packages/documentation/docs/icon-library/_icon_styleguide.md index d2779e98280..355e9228ede 100644 --- a/packages/documentation/docs/icon-library/_icon_styleguide.md +++ b/packages/documentation/docs/icon-library/_icon_styleguide.md @@ -1,17 +1,19 @@ +## Guidelines + +## Icons -# Icons - The following section is about in-app icons, used in the actual application UI and UI elements. It is not about application icons, that usually appear on a launch pad, home screen, desktop, task bar or the like. -## Usage +### Usage Icons are graphical representations of terms, functions, objects etc.. Ideally, they are used together with a descriptive text to make it easier for users to learn their meaning. A standalone icon, without textual description, has to be paired with a tooltip that describes the meaning of the icon. Make sure a description can be read out by screen readers. -## Icon library +### Icon library The Siemens Industrial Experience design system comes with an extensive set of icons made for the industrial context. Since it is almost impossible to cover every thinkable icon usecase, it is also possible to integrate external icons to complement the icon set. -## Designing new icons +### Designing new icons + Before you start designing your specific icon set for your application, consider the following: - Make sure the icons you need are not already in the library @@ -26,56 +28,59 @@ Before you start designing your specific icon set for your application, consider - Finally: Entrust a professional designer with the task of designing an icon -### Technical requirements +#### Technical requirements + Icons in our design system are monochromatic. They will be colored during runtime, depending on the context they are being used in. For more technical requirements see the "Code" tab above. -### Formal requirements -New icons should follow the app icon guidelines below for a consistent look & feel across applications. For Siemens applications it is mandatory to follow these guidelines. +#### Formal requirements +New icons should follow the app icon guidelines below for a consistent look & feel across applications. For Siemens applications it is mandatory to follow these guidelines. -# Icon design guidelines +## Icon design guidelines These guidelines extend the basic guidelines on [Siemens brandville](https://brandville.siemens.com/en/design-elements/icons/ui-icons). -## 1. Icon grid size +### 1. Icon grid size + - The basic icon grid size is 24✕24 ![Basic grid](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=801-253&mode=design&t=LqIxNidruCmTfYDF-4) -## 2. In-app icon design grid +### 2. In-app icon design grid + - Use the design grid component “Icon Design Grid” from the “Assets” library as background for creating new icons - The design grid helps to limit the icon boundaries to achieve an evenly optical weight of different icon shapes - The clearance zone (red area) should not be touched by the icon (for exceptions see below) - The lines represent the boundaries of key shapes or just mark the center ![In-app icon design grid](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=801-856&mode=design&t=LqIxNidruCmTfYDF-4) - Use the portrait key shape for vertically oriented shapes -![Portrait key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-17540&mode=design&t=LqIxNidruCmTfYDF-4) + ![Portrait key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-17540&mode=design&t=LqIxNidruCmTfYDF-4) - Use the landscape key shape for horizontally oriented shapes -![Landscape key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-19334&mode=design&t=LqIxNidruCmTfYDF-4) + ![Landscape key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-19334&mode=design&t=LqIxNidruCmTfYDF-4) - Use the square key shape for square icons -![Square key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23090&mode=design&t=LqIxNidruCmTfYDF-4) + ![Square key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23090&mode=design&t=LqIxNidruCmTfYDF-4) - Use the circle key shape for round icons -![Circle key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23091&mode=design&t=LqIxNidruCmTfYDF-4) + ![Circle key shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23091&mode=design&t=LqIxNidruCmTfYDF-4) -### Exceptions to the clearance zone +#### Exceptions to the clearance zone - Icons with attributes: Icons can be enhanced with attributes. These attributes are allowed to touch the clearance zone but should keep at least 1px space to the outer boundary -![Exception 1: icon attributes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23092&mode=design&t=LqIxNidruCmTfYDF-4) + ![Exception 1: icon attributes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23092&mode=design&t=LqIxNidruCmTfYDF-4) - Optical fixes: Shapes are allowed to touch the clearance zone to equalize visual effects with pointed shapes or single strokes -![Exception 2: optical fixes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23093&mode=design&t=LqIxNidruCmTfYDF-4) + ![Exception 2: optical fixes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=802-23093&mode=design&t=LqIxNidruCmTfYDF-4) -## 3. Light weight icons +### 3. Light weight icons - Prefer strokes and outlines over filled shapes - Please provide a filled variant of the icon as well, where possible and potentially useful. It can be used in situations when more visual weight is required. The filled variant gets the name suffix “-filled”. ![Normal and filled variant](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=808-23094&mode=design&t=LqIxNidruCmTfYDF-4) -## 4. Simple and geometric +### 4. Simple and geometric - Keep icons as simple as possible - Avoid complex symbols or symbol combinations whenever possible @@ -85,14 +90,14 @@ These guidelines extend the basic guidelines on [Siemens brandville](https://bra ![Simple and geometric shapes](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=808-23095&mode=design&t=LqIxNidruCmTfYDF-4) -## 5. Stroke widths +### 5. Stroke widths - Default stroke width is 2px - In case icon readability can't be guaranteed otherwise, stroke widths of 1.5px or even 1x are also allowed. Before doing that please make sure all rules from section 4 are followed. ![Stroke widths](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=809-23096&mode=design&t=LqIxNidruCmTfYDF-4) -## 6. Gaps +### 6. Gaps - Anti-aliasing effects can lead to blurry borders and edges - Use 2px gaps to visually separate two shapes from each other @@ -100,7 +105,7 @@ These guidelines extend the basic guidelines on [Siemens brandville](https://bra ![Gaps and unsafe pattern](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=809-23097&mode=design&t=LqIxNidruCmTfYDF-4) -## 7. Strikethrough, cuts and cutouts +### 7. Strikethrough, cuts and cutouts - A diagonal strikethrough is used to symbolize the opposite of an icon or an unavailability (e.g. show & hide, switch off alarm) - A diagonal strikethrough starts from top left and ends at the bottom right (refers to the crossbar of letter “N” for “No”), followed by a 2px space above right @@ -108,22 +113,25 @@ These guidelines extend the basic guidelines on [Siemens brandville](https://bra ![Strikethroughs and gaps](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Pattern-Illustrations?type=design&node-id=810-23098&mode=design&t=LqIxNidruCmTfYDF-4) -## 8. The technical finish +### 8. The technical finish + +#### Prepare your icon for integration -### Prepare your icon for integration - The icon size (including clearance zone) must be 24x24 - The icon must not contain strokes (convert all strokes to outlines) - Combine all icon parts to one single shape by using boolean operations - Name the remaining shape “Vector”, otherwise color overrides will not work properly in Figma - Make sure the shape is set to “Scale” in the “Constraints” settings in Figma, otherwise the resizing will not work properly -### Integrate in Figma +#### Integrate in Figma + - Create a component from your icon - Use a short, descriptive and unique name - also consider adding a project or application suffix to the icon name to prevent naming collisions with other external icons - "Publish" the document with your icon(s) and it will be available as library in your document assets - Activate your library in the design document -### Export for development +#### Export for development + - Create an instance of your icon (this can be done in the same document the icon is stored in) - Resize this instance to 512×512 (target size for development integration) - Check if the scaling works properly (check scaling settings, if not) diff --git a/packages/documentation/docs/icon-library/icons.md b/packages/documentation/docs/icon-library/icons.md index bbfdead480b..af1e67911dd 100644 --- a/packages/documentation/docs/icon-library/icons.md +++ b/packages/documentation/docs/icon-library/icons.md @@ -2,11 +2,14 @@ title: Icons --- -import DocsTabs from '@site/src/components/DocsTabs'; +import LinkableDocsTabs from '@site/src/components/LinkableDocsTabs'; import DocsUx from './\_icon_styleguide.md'; import DocsCode from './\_icon_code.md'; # Icons - + + + + diff --git a/packages/documentation/docs/legacy/_category_.json b/packages/documentation/docs/legacy/_category_.json new file mode 100644 index 00000000000..d115833cd93 --- /dev/null +++ b/packages/documentation/docs/legacy/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Legacy" +} diff --git a/packages/documentation/docs/legacy/checkbox.mdx b/packages/documentation/docs/legacy/checkbox.mdx new file mode 100644 index 00000000000..db2681f962d --- /dev/null +++ b/packages/documentation/docs/legacy/checkbox.mdx @@ -0,0 +1,28 @@ +--- +unlisted: true +--- + +import Playground from '@site/src/components/PlaygroundV3'; +import LatestTags from '@site/src/components/Tags'; + +# Checkbox + + + +## Examples + +### Basic + + + +### Indeterminate + + + diff --git a/packages/documentation/docs/legacy/input.mdx b/packages/documentation/docs/legacy/input.mdx new file mode 100644 index 00000000000..f02e1b25702 --- /dev/null +++ b/packages/documentation/docs/legacy/input.mdx @@ -0,0 +1,60 @@ +--- +unlisted: true +--- + +import LatestTags from '@site/src/components/Tags'; +import Playground from '@site/src/components/PlaygroundV3'; + +# Input + + + +## Examples + +### Basic + + + + +### Disabled + + + +### Readonly + + + +### With icon + + + +### Label placement + + + +### Input types + + + +### Search + + diff --git a/packages/documentation/docs/legacy/radiobutton.mdx b/packages/documentation/docs/legacy/radiobutton.mdx new file mode 100644 index 00000000000..5dccb54b1d4 --- /dev/null +++ b/packages/documentation/docs/legacy/radiobutton.mdx @@ -0,0 +1,18 @@ +--- +unlisted: true +--- + +import Playground from '@site/src/components/PlaygroundV3'; +import LatestTags from '@site/src/components/Tags'; + +# Radio button + + + +## Examples + +### Basic + + diff --git a/packages/documentation/docs/legacy/textarea.mdx b/packages/documentation/docs/legacy/textarea.mdx new file mode 100644 index 00000000000..49895875126 --- /dev/null +++ b/packages/documentation/docs/legacy/textarea.mdx @@ -0,0 +1,33 @@ +--- +unlisted: true +--- + +import Playground from '@site/src/components/PlaygroundV3'; +import LatestTags from '@site/src/components/Tags'; + +# Textarea + + + +## Examples + +### Basic + + +### Disabled + + +### Readonly + + diff --git a/packages/documentation/docs/controls/validation.md b/packages/documentation/docs/legacy/validation.mdx similarity index 71% rename from packages/documentation/docs/controls/validation.md rename to packages/documentation/docs/legacy/validation.mdx index 97f59ef49a2..d511eda80de 100644 --- a/packages/documentation/docs/controls/validation.md +++ b/packages/documentation/docs/legacy/validation.mdx @@ -1,10 +1,20 @@ +--- +unlisted: true +--- + import Playground from '@site/src/components/PlaygroundV3'; +import LatestTags from '@site/src/components/Tags'; import Events from './../auto-generated/ix-validation-tooltip/events.md'; import Props from './../auto-generated/ix-validation-tooltip/props.md'; # Form validation + + +
+
+ For the validation `@siemens/ix` use the validation concept of [bootstrap](https://getbootstrap.com/docs/5.2/forms/validation/). The difference is that the validation tooltip is implemented as `@siemens/ix` [tooltip](#properties-tooltip) @@ -15,10 +25,9 @@ In the following examples section you will find different implementations of a f ### Basic - + name="validation" + height="22rem" +/> ## API diff --git a/packages/documentation/docs/migration/uxt.md b/packages/documentation/docs/migration/uxt.md index 785dad8e25d..3e348ed4803 100644 --- a/packages/documentation/docs/migration/uxt.md +++ b/packages/documentation/docs/migration/uxt.md @@ -92,7 +92,7 @@ As some of the components are named differently in Industrial Experience, please | Notification | [Toast](../controls/toast.md) | | Pager | [Pagination](../controls/pagination.md) | | Popover | [Tooltip](../controls/tooltip.md), [dropdown](../controls/dropdown.md) | -| Switch | [Toggle](../controls/toggle.md) | +| Switch | [Toggle](../controls/toggle.mdx) | | Context region | [Pane](../controls/panes.md) (inline right) | | Item region | [Pane](../controls/panes.md) (floating right) | | Leading region | [Pane](../controls/panes.md) (inline left) | diff --git a/packages/documentation/scripts/api-tasks.ts b/packages/documentation/scripts/api-tasks.ts index 409ca909455..5403f71d631 100644 --- a/packages/documentation/scripts/api-tasks.ts +++ b/packages/documentation/scripts/api-tasks.ts @@ -17,8 +17,12 @@ import { escapeMarkdown } from './utils'; type DocsTag = { name: string; text: string }; +function htmlFormReadyTag(value: string) { + return `
Form-ready since ${value}`; +} + function htmlSinceTag(value: string) { - return `Since: ${value}`; + return `Since ${value}`; } function htmlDeprecatedTag(value: string) { @@ -201,6 +205,10 @@ function writeTags(component: { docsTags: DocsTag[] }) { const renderedDocsTags = docsTags .map((tag) => { + if (tag.name === 'form-ready') { + return htmlFormReadyTag(tag.text); + } + if (tag.name === 'since') { return htmlSinceTag(tag.text); } diff --git a/packages/documentation/scripts/download-theme.ts b/packages/documentation/scripts/download-theme.ts index f66d422f3d7..36cc59fcf21 100644 --- a/packages/documentation/scripts/download-theme.ts +++ b/packages/documentation/scripts/download-theme.ts @@ -15,7 +15,7 @@ import zlib from 'zlib'; const pkgRoot = path.join(__dirname, '..'); -const version = '2.2.0-beta.0'; +const version = '2.2.0'; const token = process.env.CSC; const ci = process.env.CI; diff --git a/packages/documentation/src/components/ApiTableTag/ApiTableTag.css b/packages/documentation/src/components/ApiTableTag/ApiTableTag.css index 8eebea75fd2..99f48423e02 100644 --- a/packages/documentation/src/components/ApiTableTag/ApiTableTag.css +++ b/packages/documentation/src/components/ApiTableTag/ApiTableTag.css @@ -11,23 +11,18 @@ position: relative; align-self: flex-start; - width: auto; max-width: 25vw; - white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - cursor: default; font-size: 12px; background-color: var(--theme-color-primary); border-radius: 2px; padding: 0.25rem 0.5rem; - color: var(--theme-color-inv-std-text); font: var(--theme-text-default-title-single); - margin: 0.5rem 0; } diff --git a/packages/documentation/src/components/DocsTabs/DocsTabs.scss b/packages/documentation/src/components/DocsTabs/DocsTabs.scss deleted file mode 100644 index dec6300c544..00000000000 --- a/packages/documentation/src/components/DocsTabs/DocsTabs.scss +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2023 Siemens AG - * - * SPDX-License-Identifier: MIT - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -.Docs__Tabs { - display: flex; - position: relative; - - height: 44px; -} - -.Doc_Tab { - display: flex; - position: relative; - - justify-content: center; - align-items: center; - - height: 100%; - width: 100%; - - cursor: pointer; - background-color: var(--theme-color-component-1); - - font-weight: 700; - - > svg { - width: 24px; - height: 24px; - fill: var(--theme-color-std-text); - margin-right: 0.5rem; - } -} - -.Doc_Tab.active { - background-color: var(--theme-color-dynamic); - color: var(--theme-color-primary--contrast); - - > svg { - fill: var(--theme-color-primary--contrast); - } -} - -.Docs__Tabs__Content { - margin-top: 1rem; -} diff --git a/packages/documentation/src/components/DocsTabs/index.tsx b/packages/documentation/src/components/DocsTabs/index.tsx deleted file mode 100644 index 50d4e17e46a..00000000000 --- a/packages/documentation/src/components/DocsTabs/index.tsx +++ /dev/null @@ -1,125 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2023 Siemens AG - * - * SPDX-License-Identifier: MIT - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -import BrowserOnly from '@docusaurus/BrowserOnly'; -import clsx from 'clsx'; -import React, { useState } from 'react'; -import './DocsTabs.scss'; - -export type DocsTabsProps = { - styleguide: any; - code: any; -}; - -const STORAGE_KEY = 'docusaurus.ix.general.tab'; - -type DocsTabSelection = 'styleguide' | 'code'; - -function isDocsTabSelection(value: string): value is DocsTabSelection { - return value === 'styleguide' || value === 'code'; -} - -function getCurrentDocsTabSelection(): DocsTabSelection { - const defaultSelection = window.localStorage.getItem(STORAGE_KEY); - if (!defaultSelection) { - return 'styleguide'; - } - - if (isDocsTabSelection(defaultSelection)) { - return defaultSelection; - } - - return 'styleguide'; -} - -function setCurrentDocsTabSelection(selection: DocsTabSelection) { - window.localStorage.setItem(STORAGE_KEY, selection); -} - -const DocsTabs = (props: DocsTabsProps) => { - const [tabSelection, setTabSelection] = useState( - getCurrentDocsTabSelection() - ); - - const onTabChange = (selection: DocsTabSelection) => { - setTabSelection(selection); - setCurrentDocsTabSelection(selection); - }; - - const Markdown = props[tabSelection]; - return ( - <> -
- onTabChange('styleguide')} - > - - - - - onTabChange('code')} - > - - - - -
-
- -
- - ); -}; - -export default (props) => { - return {() => }; -}; - -export function DocTab( - props: React.PropsWithChildren<{ - name: string; - active: boolean; - onClick: (event: React.MouseEvent) => void; - }> -) { - return ( -
- {props.children} - {props.name} -
- ); -} diff --git a/packages/documentation/src/components/PlaygroundV2/index.tsx b/packages/documentation/src/components/PlaygroundV2/index.tsx index 5fdab79ebf9..952e8d8f89c 100644 --- a/packages/documentation/src/components/PlaygroundV2/index.tsx +++ b/packages/documentation/src/components/PlaygroundV2/index.tsx @@ -16,155 +16,30 @@ import { TargetFramework } from './framework-types'; import Demo, { DemoProps } from './../Demo'; import styles from './styles.module.css'; import { - replaceStyleFilepath, - SourceFile, - getBranchPath, - stripComments, + fetchSourceFilesByFileName, + fetchSourceFilesFromExample, + getLanguage, openStackBlitz, + getBranchPath, + SourceFile, } from './utils'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -function extractCodePart(code: string, limiter: RegExp) { - const limiterMatches = code.match(limiter); - - if (limiterMatches && limiterMatches.length === 2) { - const [_, intermediate] = code.split(limiter); - - return stripComments( - intermediate - .split('\n') - .map((line) => line.replace(/[ ]{4}/, '')) - .join('\n') - .trim() - ); - } - - return ''; -} - -function sliceCode(code: string) { - const previewCode = extractCodePart(code, //g); - - if (previewCode) { - const headerSources = extractCodePart(code, //g); - - if (headerSources) { - return ( - '\n' + - headerSources + - '\n\n\n' + - previewCode - ); - } - - return previewCode; - } - - return stripComments(code); -} - -function adaptCode(code: string) { - return replaceStyleFilepath(sliceCode(code), true).source; -} - -async function fetchSource(path: string) { - const response = await fetch(`${path}`); - const source = await response.text(); - - // Docusaurus don' throw a classic 404 if a sub route is not found - // Check if the response is the bootstrap code of docusaurus - // If this is the case the resource is not existing - if ( - !source || - source?.includes('
') || - source?.includes('Page Not Found') - ) { - return null; - } - - return source; -} - -async function fetchHTMLSource( - path: string, - framework: TargetFramework, - files: string[] -) { - let frameworkPath = 'web-components'; - - if (framework === TargetFramework.ANGULAR) { - frameworkPath = 'angular'; - } - - if (framework === TargetFramework.REACT) { - frameworkPath = 'react'; - } - - if (framework === TargetFramework.VUE) { - frameworkPath = 'vue'; - } - - return Promise.all( - files.map(async (file) => { - try { - const source = await fetchSource( - getLanguage(file) === 'css' - ? `${path}/previews/styles/${file}` - : `${path}/previews/${frameworkPath}/${file}` - ); - - if (!source) { - return null; - } - - return { - filename: file, - source: adaptCode(source), - raw: source, - }; - } catch (e) { - console.warn(e); - } - }) - ); -} - -function getLanguage(filename: string) { - if (filename.endsWith('.html')) { - return 'html'; - } - - if (filename.endsWith('.ts')) { - return 'ts'; - } - - if (filename.endsWith('.tsx')) { - return 'tsx'; - } - - if (filename.endsWith('.vue')) { - return 'tsx'; - } - - if (filename.endsWith('.css')) { - return 'css'; - } -} - type PlaygroundV2Props = { files: Record; includeCssFile?: boolean; examplesByName?: boolean; disableStackBlitz?: boolean; + showOnly?: TargetFramework[]; } & DemoProps; -function SourceCodePreview(props: { +export function SourceCodePreview(props: { framework: TargetFramework; name: string; files?: Record; includeCssFile?: boolean; examplesByName?: boolean; - onSourceCodeFetched: (files: SourceFile[]) => void; + onSourceCodeFetched?: (files: SourceFile[]) => void; }) { const [isFetching, setFetching] = useState(true); @@ -175,30 +50,12 @@ function SourceCodePreview(props: { useEffect(() => { if (props.examplesByName) { - const filesToFetch = []; - - if (props.framework === TargetFramework.ANGULAR) { - filesToFetch.push(...[`${props.name}.html`, `${props.name}.ts`]); - } - - if (props.framework === TargetFramework.JAVASCRIPT) { - filesToFetch.push(`${props.name}.html`); - } - - if (props.framework === TargetFramework.REACT) { - filesToFetch.push(`${props.name}.tsx`); - } - - if (props.framework === TargetFramework.VUE) { - filesToFetch.push(`${props.name}.vue`); - } - - if (props.includeCssFile) { - filesToFetch.push(`${props.name}.css`); - } - - setFetching(true); - fetchHTMLSource(baseUrl, props.framework, filesToFetch).then((files) => { + fetchSourceFilesFromExample( + baseUrl, + props.name, + props.framework, + props.includeCssFile + ).then((files) => { setSelectedFile(0); setFiles(files.filter((f) => f)); setFetching(false); @@ -209,16 +66,20 @@ function SourceCodePreview(props: { const filesToFetch = props.files[props.framework]; setFetching(true); - fetchHTMLSource(baseUrl, props.framework, filesToFetch).then((files) => { - setSelectedFile(0); - setFiles(files.filter((f) => f)); - setFetching(false); - }); + fetchSourceFilesByFileName(baseUrl, props.framework, filesToFetch).then( + (files) => { + setSelectedFile(0); + setFiles(files.filter((f) => f)); + setFetching(false); + } + ); } }, [props.framework]); useEffect(() => { - props.onSourceCodeFetched(files); + if (props.onSourceCodeFetched) { + props.onSourceCodeFetched(files); + } }, [files]); if (isFetching) { @@ -273,6 +134,24 @@ export default function PlaygroundV2(props: PlaygroundV2Props) { const context = useDocusaurusContext(); const versionDeployment = context.siteConfig.customFields .playgroundVersion as 'latest' | (string & {}); + const [tabs] = useState([ + { + id: TargetFramework.ANGULAR, + label: 'Angular', + }, + { + id: TargetFramework.REACT, + label: 'React', + }, + { + id: TargetFramework.VUE, + label: 'Vue', + }, + { + id: TargetFramework.JAVASCRIPT, + label: 'Javascript', + }, + ]); const isTabVisible = (framework: TargetFramework) => { if (props.examplesByName) { @@ -288,24 +167,23 @@ export default function PlaygroundV2(props: PlaygroundV2Props) { setTab(TargetFramework.PREVIEW)}> Preview - {isTabVisible(TargetFramework.ANGULAR) && ( - setTab(TargetFramework.ANGULAR)}> - Angular - - )} - {isTabVisible(TargetFramework.REACT) && ( - setTab(TargetFramework.REACT)}> - React - - )} - {isTabVisible(TargetFramework.VUE) && ( - setTab(TargetFramework.VUE)}>Vue - )} - {isTabVisible(TargetFramework.JAVASCRIPT) && ( - setTab(TargetFramework.JAVASCRIPT)}> - Javascript - - )} + {tabs + .filter((tab) => { + if (props.showOnly?.length > 0) { + return props.showOnly.includes(tab.id); + } + + return true; + }) + .map((tab) => { + if (isTabVisible(tab.id)) { + return ( + setTab(tab.id)}> + {tab.label} + + ); + } + })}
{tab === TargetFramework.PREVIEW ? ( diff --git a/packages/documentation/src/components/PlaygroundV2/utils.ts b/packages/documentation/src/components/PlaygroundV2/utils.ts index dc7eb3b6ba0..a83b24fc1c6 100644 --- a/packages/documentation/src/components/PlaygroundV2/utils.ts +++ b/packages/documentation/src/components/PlaygroundV2/utils.ts @@ -7,7 +7,7 @@ * LICENSE file in the root directory of this source tree. */ -import sdk from '@stackblitz/sdk'; +import sdk, { Project } from '@stackblitz/sdk'; import { TargetFramework } from './framework-types'; import { themeSwitcher } from '@siemens/ix'; @@ -46,6 +46,164 @@ export type SourceFile = { raw: string; }; +function extractCodePart(code: string, limiter: RegExp) { + const limiterMatches = code.match(limiter); + + if (limiterMatches && limiterMatches.length === 2) { + const [_, intermediate] = code.split(limiter); + + return stripComments( + intermediate + .split('\n') + .map((line) => line.replace(/[ ]{4}/, '')) + .join('\n') + .trim() + ); + } + + return ''; +} + +function sliceCode(code: string) { + const previewCode = extractCodePart(code, //g); + + if (previewCode) { + const headerSources = extractCodePart(code, //g); + + if (headerSources) { + return ( + '\n' + + headerSources + + '\n\n\n' + + previewCode + ); + } + + return previewCode; + } + + return stripComments(code); +} + +function adaptCode(code: string) { + return replaceStyleFilepath(sliceCode(code), true).source; +} + +export function getLanguage(filename: string) { + if (filename.endsWith('.html')) { + return 'html'; + } + + if (filename.endsWith('.ts')) { + return 'ts'; + } + + if (filename.endsWith('.tsx')) { + return 'tsx'; + } + + if (filename.endsWith('.vue')) { + return 'tsx'; + } + + if (filename.endsWith('.css')) { + return 'css'; + } +} + +async function fetchSource(path: string) { + const response = await fetch(`${path}`); + const source = await response.text(); + + // Docusaurus don' throw a classic 404 if a sub route is not found + // Check if the response is the bootstrap code of docusaurus + // If this is the case the resource is not existing + if ( + !source || + source?.includes('
') || + source?.includes('Page Not Found') + ) { + return null; + } + + return source; +} + +export async function fetchSourceFilesByFileName( + path: string, + framework: TargetFramework, + files: string[] +) { + let frameworkPath = 'web-components'; + + if (framework === TargetFramework.ANGULAR) { + frameworkPath = 'angular'; + } + + if (framework === TargetFramework.REACT) { + frameworkPath = 'react'; + } + + if (framework === TargetFramework.VUE) { + frameworkPath = 'vue'; + } + + return Promise.all( + files.map(async (file) => { + try { + const source = await fetchSource( + getLanguage(file) === 'css' + ? `${path}/previews/styles/${file}` + : `${path}/previews/${frameworkPath}/${file}` + ); + + if (!source) { + return null; + } + + return { + filename: file, + source: adaptCode(source), + raw: source, + }; + } catch (e) { + console.warn(e); + } + }) + ); +} + +export async function fetchSourceFilesFromExample( + baseUrl: string, + exampleName: string, + framework: TargetFramework, + includeCssFile: boolean +) { + const filesToFetch = []; + + if (framework === TargetFramework.ANGULAR) { + filesToFetch.push(...[`${exampleName}.html`, `${exampleName}.ts`]); + } + + if (framework === TargetFramework.JAVASCRIPT) { + filesToFetch.push(`${exampleName}.html`); + } + + if (framework === TargetFramework.REACT) { + filesToFetch.push(`${exampleName}.tsx`); + } + + if (framework === TargetFramework.VUE) { + filesToFetch.push(`${exampleName}.vue`); + } + + if (includeCssFile) { + filesToFetch.push(`${exampleName}.css`); + } + + return fetchSourceFilesByFileName(baseUrl, framework, filesToFetch); +} + function patchPkgLibraryVersion(pkg: string, replaceVersion: string) { return pkg.replace(/\"\"/g, `"${replaceVersion}"`); } @@ -171,7 +329,7 @@ async function getFiles( return { files, styleFiles }; } -async function openHtmlStackBlitz( +async function createHtmlStackBlitzConfig( baseUrl: string, sourceFiles: SourceFile[], version: string @@ -195,27 +353,32 @@ async function openHtmlStackBlitz( TargetFramework.JAVASCRIPT ); - sdk.openProject( - { - template: 'node', - title: 'iX html app', - description: 'iX html playground', - files: { - ...files, - ...styleFiles, - 'src/styles/global.css': global_css, - 'src/main.js': main_js, - 'package.json': patchPkgLibraryVersion(package_json, version), - 'vite.config.ts': vite_config_ts, - }, + const config: Project = { + template: 'node', + title: 'iX html app', + description: 'iX html playground', + files: { + ...files, + ...styleFiles, + 'src/styles/global.css': global_css, + 'src/main.js': main_js, + 'package.json': patchPkgLibraryVersion(package_json, version), + 'vite.config.ts': vite_config_ts, }, - { - openFile: ['src/index.html'], - } - ); + }; + + return { + exampleFile: 'src/index.html', + open: () => { + sdk.openProject(config, { + openFile: ['src/index.html'], + }); + }, + config, + }; } -async function openAngularStackBlitz( +async function createAngularStackBlitzConfig( baseUrl: string, name: string, sourceFiles: SourceFile[], @@ -283,54 +446,67 @@ async function openAngularStackBlitz( TargetFramework.ANGULAR ); - sdk.openProject( - { - template: 'node', - title: 'iX angular app', - description: 'iX angular playground', - files: { - ...files, - ...styleFiles, - 'src/app/declare-component.ts': declare_component_ts, - 'src/app/app.component.html': app_component_html, - 'src/app/app.component.ts': app_component_ts, - 'src/app/app.module.ts': app_module_ts, - 'src/index.html': replaceTheme(index_html), - 'src/main.ts': main_ts, - 'src/styles.css': global_css, - 'angular.json': angular_json, - 'package.json': patchPkgLibraryVersion(package_json, version), - 'tsconfig.app.json': tsconfig_app_json, - 'tsconfig.json': tsconfig_json, - }, + const config: Project = { + template: 'node', + title: 'iX Angular app', + description: 'iX Angular playground', + files: { + ...files, + ...styleFiles, + 'src/app/declare-component.ts': declare_component_ts, + 'src/app/app.component.html': app_component_html, + 'src/app/app.component.ts': app_component_ts, + 'src/app/app.module.ts': app_module_ts, + 'src/index.html': replaceTheme(index_html), + 'src/main.ts': main_ts, + 'src/styles.css': global_css, + 'angular.json': angular_json, + 'package.json': patchPkgLibraryVersion(package_json, version), + 'tsconfig.app.json': tsconfig_app_json, + 'tsconfig.json': tsconfig_json, }, - { - openFile: `src/app/${name}.ts`, - } - ); + }; + + return { + exampleFile: `src/app/${name}.ts`, + open: () => { + sdk.openProject(config, { + openFile: `src/app/${name}.ts`, + }); + }, + config, + }; } -async function openReactStackBlitz( +async function createReactStackBlitzConfig( baseUrl: string, sourceFiles: SourceFile[], version: string ) { const styleFilePath: string = `${baseUrl}auto-generated/previews/styles/`; + const filesToCopy = [ + 'vite.config.ts', + 'tsconfig.json', + 'tsconfig.node.json', + 'src/main.tsx', + 'src/vite-env.d.ts', + ]; + const [ global_css, app_tsx, index_html, - index_tsx, package_json, - tsconfig_json, + // Keep order of files above + ...otherFiles ] = await loadSourceCodeFromStatic([ `${styleFilePath}global.css`, - `${baseUrl}code-runtime/react/App.tsx`, + `${baseUrl}code-runtime/react/src/App.tsx`, `${baseUrl}code-runtime/react/index.html`, - `${baseUrl}code-runtime/react/index.tsx`, `${baseUrl}code-runtime/react/package.json`, - `${baseUrl}code-runtime/react/tsconfig.json`, + // Keep order of files above + ...filesToCopy.map((file) => `${baseUrl}code-runtime/react/${file}`), ]); const renderFirstExample = sourceFiles[0]; @@ -354,32 +530,38 @@ async function openReactStackBlitz( TargetFramework.REACT ); - sdk.openProject( - { - template: 'node', - title: 'iX React App', - description: 'iX react playground', - files: { - ...files, - ...styleFiles, - 'src/styles/global.css': global_css, - 'public/index.html': replaceTheme(index_html), - 'src/index.tsx': index_tsx, - 'src/App.tsx': patchAppTs(), - 'package.json': patchPkgLibraryVersion(package_json, version), - 'tsconfig.json': tsconfig_json, - '.stackblitzrc': `{ - "startCommand": "npm run start" - }`, - }, + const stackBlitzFiles = { + ...files, + ...styleFiles, + 'src/styles/global.css': global_css, + 'index.html': replaceTheme(index_html), + 'src/App.tsx': patchAppTs(), + 'package.json': patchPkgLibraryVersion(package_json, version), + }; + + otherFiles.forEach((file, index) => { + stackBlitzFiles[filesToCopy[index]] = file; + }); + + const config: Project = { + template: 'node', + title: 'iX React App', + description: 'iX react playground', + files: stackBlitzFiles, + }; + + return { + exampleFile: `src/${renderFirstExample.filename}`, + open: () => { + sdk.openProject(config, { + openFile: `src/${renderFirstExample.filename}`, + }); }, - { - openFile: `src/${renderFirstExample.filename}`, - } - ); + config, + }; } -async function openVueStackBlitz( +async function createVueStackBlitzConfig( baseUrl: string, sourceFiles: SourceFile[], version: string @@ -424,34 +606,39 @@ async function openVueStackBlitz( TargetFramework.VUE ); - sdk.openProject( - { - template: 'node', - title: 'iX Vue App', - description: 'iX vue playground', - files: { - ...files, - ...styleFiles, - 'src/styles/global.css': global_css, - 'index.html': replaceTheme(index_html), - 'src/main.ts': main_ts, - 'src/App.vue': patchAppTs(), - 'src/env.d.ts': env_d_ts, - 'package.json': patchPkgLibraryVersion(package_json, version), - 'tsconfig.json': tsconfig_json, - 'vite.config.ts': viteconfig_ts, - '.stackblitzrc': `{ - "startCommand": "npm run dev" - }`, - }, + const config: Project = { + template: 'node', + title: 'iX Vue App', + description: 'iX vue playground', + files: { + ...files, + ...styleFiles, + 'src/styles/global.css': global_css, + 'index.html': replaceTheme(index_html), + 'src/main.ts': main_ts, + 'src/App.vue': patchAppTs(), + 'src/env.d.ts': env_d_ts, + 'package.json': patchPkgLibraryVersion(package_json, version), + 'tsconfig.json': tsconfig_json, + 'vite.config.ts': viteconfig_ts, + '.stackblitzrc': `{ + "startCommand": "npm run dev" + }`, }, - { - openFile: `src/${renderFirstExample.filename}`, - } - ); + }; + + return { + exampleFile: `src/${renderFirstExample.filename}`, + open: () => { + sdk.openProject(config, { + openFile: `src/${renderFirstExample.filename}`, + }); + }, + config, + }; } -export async function openStackBlitz({ +export async function createStackblitzConfig({ name, framework, files, @@ -465,19 +652,58 @@ export async function openStackBlitz({ version: string; }) { const libraryVersion = version || 'latest'; + + let project: Promise<{ + open: () => void; + config: Project; + exampleFile: string; + }> = null; if (framework === TargetFramework.REACT) { - return openReactStackBlitz(baseUrl, files, libraryVersion); + project = createReactStackBlitzConfig(baseUrl, files, libraryVersion); } if (framework === TargetFramework.ANGULAR) { - return openAngularStackBlitz(baseUrl, name, files, libraryVersion); + project = createAngularStackBlitzConfig( + baseUrl, + name, + files, + libraryVersion + ); } if (framework === TargetFramework.JAVASCRIPT) { - return openHtmlStackBlitz(baseUrl, files, libraryVersion); + project = createHtmlStackBlitzConfig(baseUrl, files, libraryVersion); } if (framework === TargetFramework.VUE) { - return openVueStackBlitz(baseUrl, files, libraryVersion); + project = createVueStackBlitzConfig(baseUrl, files, libraryVersion); + } + + return project; +} + +export async function openStackBlitz({ + name, + framework, + files, + baseUrl, + version, +}: { + name: string; + files: SourceFile[]; + framework: TargetFramework; + baseUrl: string; + version: string; +}) { + const project = createStackblitzConfig({ + name, + framework, + files, + baseUrl, + version, + }); + if (await project) { + const { open } = await project; + open(); } } diff --git a/packages/documentation/src/components/PlaygroundV3/angular-snippets.ts b/packages/documentation/src/components/PlaygroundV3/angular-snippets.ts index c8246ca8239..fea2a313392 100644 --- a/packages/documentation/src/components/PlaygroundV3/angular-snippets.ts +++ b/packages/documentation/src/components/PlaygroundV3/angular-snippets.ts @@ -27,8 +27,9 @@ async function fetchFile( export async function fetchSourceForAngular(baseUrl: string, name: string) { const snippets: Record = {}; + await fetchFile(snippets, `${baseUrl}/${name}.html`, `${name}.html`); + await Promise.all([ - fetchFile(snippets, `${baseUrl}/${name}.html`, `${name}.html`), fetchFile(snippets, `${baseUrl}/${name}.ts`, `${name}.ts`), fetchFile(snippets, `${baseUrl}/${name}.css`, `${name}.css`), ]); diff --git a/packages/documentation/src/components/PlaygroundV3/index.tsx b/packages/documentation/src/components/PlaygroundV3/index.tsx index bcf5ed020d4..462ecfce109 100644 --- a/packages/documentation/src/components/PlaygroundV3/index.tsx +++ b/packages/documentation/src/components/PlaygroundV3/index.tsx @@ -212,6 +212,7 @@ function ToolbarButtons(props: { const theme = useTheme(); const baseUrl = useBaseUrl('/'); const baseUrlAssets = useBaseUrl('/img'); + const stackblizAssetUrl = `${baseUrlAssets}/stackblitz.svg`; const iframe = useBaseUrl('/webcomponent-examples/dist/preview-examples'); return ( @@ -236,12 +237,14 @@ function ToolbarButtons(props: { baseUrl: baseUrl, framework: props.activeFramework, snippets: props.snippets, - name: props.deviantRootFileName ? props.deviantRootFileName : props.name, + name: props.deviantRootFileName + ? props.deviantRootFileName + : props.name, version: 'latest', }) } className="Stackblitz" - icon={`${baseUrlAssets}/stackblitz.svg`} + icon={stackblizAssetUrl} outline //@ts-ignore iconSize="16" diff --git a/packages/documentation/src/components/StackblitzEmbedded/index.tsx b/packages/documentation/src/components/StackblitzEmbedded/index.tsx new file mode 100644 index 00000000000..b938d2bef34 --- /dev/null +++ b/packages/documentation/src/components/StackblitzEmbedded/index.tsx @@ -0,0 +1,69 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { useLayoutEffect, useRef } from 'react'; +import sdk from '@stackblitz/sdk'; +import { + createStackblitzConfig, + fetchSourceFilesFromExample, +} from '../PlaygroundV2/utils'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import { TargetFramework } from '../PlaygroundV2/framework-types'; + +function StackblitzEmbedded(props: { + exampleName: string; + height: string; + framework: TargetFramework; + version?: string; +}) { + const embedRef = useRef(); + + const baseUrlAutogenerated = useBaseUrl('/auto-generated'); + const baseUrl = useBaseUrl('/'); + + useLayoutEffect(() => { + const embed = embedRef.current; + + if (!embed) { + return; + } + + (async () => { + const files = await fetchSourceFilesFromExample( + baseUrlAutogenerated, + props.exampleName, + props.framework, + false + ); + + const project = await createStackblitzConfig({ + baseUrl, + files, + framework: props.framework, + name: props.exampleName, + version: props.version ?? 'latest', + }); + + sdk + .embedProject(embed, project.config, { + clickToLoad: true, + height: props.height, + view: 'preview', + openFile: [project.exampleFile], + }) + .then((result) => console.log(result)) + .catch((error) => console.error(error)); + })(); + }, []); + + return
; +} + +StackblitzEmbedded.displayName = 'StackblitzEmbedded'; + +export default StackblitzEmbedded; diff --git a/packages/documentation/src/components/Tags/LegacyTag.css b/packages/documentation/src/components/Tags/LegacyTag.css new file mode 100644 index 00000000000..191fc99a0aa --- /dev/null +++ b/packages/documentation/src/components/Tags/LegacyTag.css @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: 2023 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.TagContainer { + display: flex; + align-items: center; + position: relative; + width: min-content; + white-space: nowrap; + + gap: 0.25rem; + + border: 1px solid var(--theme-color-primary); + border-radius: 0.25rem; + padding: 0.2rem 0.5rem; + + font: var(--theme-text-default-title-single); + color: var(--theme-color-primary); + font-size: 12px; + line-height: 1.5; +} + +a[href].TagContainer { + text-decoration: none !important; +} + +div.TagsContainer > .Docs__Tag { + margin-right: 0; +} diff --git a/packages/documentation/src/components/Tags/index.tsx b/packages/documentation/src/components/Tags/index.tsx new file mode 100644 index 00000000000..c5fcdecce0d --- /dev/null +++ b/packages/documentation/src/components/Tags/index.tsx @@ -0,0 +1,26 @@ +import './LegacyTag.css'; +import { IxIcon } from '@siemens/ix-react'; + +export default function LegacyTag( + props: Readonly<{ + url: string; + hasDeprecatedAncestor: boolean; + deprecationVersion?: string; + }> +) { + return ( +
+ {!props.hasDeprecatedAncestor && ( + + Deprecated since {props.deprecationVersion} + + )} + + + {props.hasDeprecatedAncestor + ? 'Show deprecated version' + : 'Show latest version'} + +
+ ); +} diff --git a/packages/documentation/src/css/api-table.scss b/packages/documentation/src/css/api-table.scss index 64c89829e63..ce8b34a71e4 100644 --- a/packages/documentation/src/css/api-table.scss +++ b/packages/documentation/src/css/api-table.scss @@ -30,13 +30,19 @@ font-size: 12px; background-color: var(--theme-color-primary); border-radius: 2px; - padding: 0.15rem 0.25rem; + padding: 0.15rem 0.5rem; margin-right: 0.15rem; color: var(--theme-color-inv-std-text); font-weight: bold; } +a.Docs__Tag, +a.Docs__Tag:hover { + color: var(--theme-color-inv-std-text) !important; + text-decoration: none !important; +} + .Docs__Tag.Docs__Tag__Deprecated { background-color: var(--theme-color-alarm); } diff --git a/packages/html-test-app/src/index.html b/packages/html-test-app/src/index.html index 603647bbca7..03d6e2a5adb 100644 --- a/packages/html-test-app/src/index.html +++ b/packages/html-test-app/src/index.html @@ -14,10 +14,9 @@ Vite App - - + Button - + diff --git a/packages/html-test-app/src/preview-examples/application-breakpoints.html b/packages/html-test-app/src/preview-examples/application-breakpoints.html index ecb2f152d02..65cc6d946d0 100644 --- a/packages/html-test-app/src/preview-examples/application-breakpoints.html +++ b/packages/html-test-app/src/preview-examples/application-breakpoints.html @@ -12,7 +12,7 @@ - Application breakpoint example + Application breakpoints example diff --git a/packages/html-test-app/src/preview-examples/button-danger-ghost.html b/packages/html-test-app/src/preview-examples/button-danger-ghost.html index d9cc44ce61d..f0dea1df968 100644 --- a/packages/html-test-app/src/preview-examples/button-danger-ghost.html +++ b/packages/html-test-app/src/preview-examples/button-danger-ghost.html @@ -1,9 +1,18 @@ + + - Vite App + Button danger ghost example diff --git a/packages/html-test-app/src/preview-examples/button-danger-outline.html b/packages/html-test-app/src/preview-examples/button-danger-outline.html index 033cc035871..88579769137 100644 --- a/packages/html-test-app/src/preview-examples/button-danger-outline.html +++ b/packages/html-test-app/src/preview-examples/button-danger-outline.html @@ -1,9 +1,18 @@ + + - Vite App + Button danger outline example diff --git a/packages/html-test-app/src/preview-examples/button-danger.html b/packages/html-test-app/src/preview-examples/button-danger.html index 033fe08b6ed..9ffb6632420 100644 --- a/packages/html-test-app/src/preview-examples/button-danger.html +++ b/packages/html-test-app/src/preview-examples/button-danger.html @@ -6,12 +6,13 @@ This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. --> + - Vite App + Button danger example diff --git a/packages/html-test-app/src/preview-examples/button-grey-secondary.html b/packages/html-test-app/src/preview-examples/button-grey-secondary.html index bba4d196e7b..f7705e388d0 100644 --- a/packages/html-test-app/src/preview-examples/button-grey-secondary.html +++ b/packages/html-test-app/src/preview-examples/button-grey-secondary.html @@ -12,7 +12,7 @@ - Button-grey-secondary example + Button grey secondary example diff --git a/packages/html-test-app/src/preview-examples/button-loading.html b/packages/html-test-app/src/preview-examples/button-loading.html index 6c057f4f4ea..b77858a792b 100644 --- a/packages/html-test-app/src/preview-examples/button-loading.html +++ b/packages/html-test-app/src/preview-examples/button-loading.html @@ -12,7 +12,7 @@ - Loading button example + Button loading example diff --git a/packages/html-test-app/src/preview-examples/content.html b/packages/html-test-app/src/preview-examples/content.html index 83bcde404e2..9784cf4701c 100644 --- a/packages/html-test-app/src/preview-examples/content.html +++ b/packages/html-test-app/src/preview-examples/content.html @@ -8,7 +8,12 @@ --> - + + + + + Content example + diff --git a/packages/html-test-app/src/preview-examples/custom-field-validation.html b/packages/html-test-app/src/preview-examples/custom-field-validation.html new file mode 100644 index 00000000000..933972f625f --- /dev/null +++ b/packages/html-test-app/src/preview-examples/custom-field-validation.html @@ -0,0 +1,63 @@ + + + + + + + + Custom field validation example + + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/custom-field.html b/packages/html-test-app/src/preview-examples/custom-field.html new file mode 100644 index 00000000000..89c425bd938 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/custom-field.html @@ -0,0 +1,39 @@ + + + + + + + + Custom field example + + + + + + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/date-input-disabled.html b/packages/html-test-app/src/preview-examples/date-input-disabled.html new file mode 100644 index 00000000000..77a54881e57 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/date-input-disabled.html @@ -0,0 +1,22 @@ + + + + + + + + Date input disabled example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/date-input-label.html b/packages/html-test-app/src/preview-examples/date-input-label.html new file mode 100644 index 00000000000..a5c12b49f1f --- /dev/null +++ b/packages/html-test-app/src/preview-examples/date-input-label.html @@ -0,0 +1,27 @@ + + + + + + + + Date input label example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/date-input-readonly.html b/packages/html-test-app/src/preview-examples/date-input-readonly.html new file mode 100644 index 00000000000..1f409ab3f8c --- /dev/null +++ b/packages/html-test-app/src/preview-examples/date-input-readonly.html @@ -0,0 +1,22 @@ + + + + + + + + Date input readonly example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/date-input-validation.html b/packages/html-test-app/src/preview-examples/date-input-validation.html new file mode 100644 index 00000000000..71a47d03850 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/date-input-validation.html @@ -0,0 +1,57 @@ + + + + + + + + Date input validation example + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/date-input.html b/packages/html-test-app/src/preview-examples/date-input.html new file mode 100644 index 00000000000..8a34d2290c2 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/date-input.html @@ -0,0 +1,22 @@ + + + + + + + + Date input example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/datepicker-locale.html b/packages/html-test-app/src/preview-examples/datepicker-locale.html index fe39e4c8dfe..f213b7d7d76 100644 --- a/packages/html-test-app/src/preview-examples/datepicker-locale.html +++ b/packages/html-test-app/src/preview-examples/datepicker-locale.html @@ -12,7 +12,7 @@ - Date picker locale example + Datepicker locale example Language: diff --git a/packages/html-test-app/src/preview-examples/drawer-full-height.html b/packages/html-test-app/src/preview-examples/drawer-full-height.html index 55d7b1a227f..28573b4bcf2 100644 --- a/packages/html-test-app/src/preview-examples/drawer-full-height.html +++ b/packages/html-test-app/src/preview-examples/drawer-full-height.html @@ -12,7 +12,7 @@ - Drawer full example + Drawer full height example diff --git a/packages/html-test-app/src/preview-examples/echarts-bar-horizontal-stacked.html b/packages/html-test-app/src/preview-examples/echarts-bar-horizontal-stacked.html index 0217660361e..753a5b3183d 100644 --- a/packages/html-test-app/src/preview-examples/echarts-bar-horizontal-stacked.html +++ b/packages/html-test-app/src/preview-examples/echarts-bar-horizontal-stacked.html @@ -12,14 +12,13 @@ - ECharts example + ECharts bar horizontal stacked example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-bar-simple.html b/packages/html-test-app/src/preview-examples/echarts-bar-simple.html index 7e702975a95..751405e8af6 100644 --- a/packages/html-test-app/src/preview-examples/echarts-bar-simple.html +++ b/packages/html-test-app/src/preview-examples/echarts-bar-simple.html @@ -12,14 +12,13 @@ - ECharts example + ECharts bar simple example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-circle.html b/packages/html-test-app/src/preview-examples/echarts-circle.html index 376175ada2e..edd66dcb7b4 100644 --- a/packages/html-test-app/src/preview-examples/echarts-circle.html +++ b/packages/html-test-app/src/preview-examples/echarts-circle.html @@ -12,14 +12,13 @@ - ECharts example + ECharts circle example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-empty-state.html b/packages/html-test-app/src/preview-examples/echarts-empty-state.html index e091f2ce6b6..2b912e0ade6 100644 --- a/packages/html-test-app/src/preview-examples/echarts-empty-state.html +++ b/packages/html-test-app/src/preview-examples/echarts-empty-state.html @@ -12,14 +12,13 @@ - ECharts example + ECharts empty state example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-gauge.html b/packages/html-test-app/src/preview-examples/echarts-gauge.html index ce8ab5f53b5..21d4e98588c 100644 --- a/packages/html-test-app/src/preview-examples/echarts-gauge.html +++ b/packages/html-test-app/src/preview-examples/echarts-gauge.html @@ -12,14 +12,13 @@ - ECharts example + ECharts gauge example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-line-advanced.html b/packages/html-test-app/src/preview-examples/echarts-line-advanced.html index 5ca0bfbb800..0a168bd6062 100644 --- a/packages/html-test-app/src/preview-examples/echarts-line-advanced.html +++ b/packages/html-test-app/src/preview-examples/echarts-line-advanced.html @@ -12,14 +12,13 @@ - ECharts example + ECharts line advanced example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-line-multiple-y-axis.html b/packages/html-test-app/src/preview-examples/echarts-line-multiple-y-axis.html index ac05e95d6a5..26baf7a3d75 100644 --- a/packages/html-test-app/src/preview-examples/echarts-line-multiple-y-axis.html +++ b/packages/html-test-app/src/preview-examples/echarts-line-multiple-y-axis.html @@ -12,14 +12,13 @@ - ECharts example + ECharts line multiple y-axis example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-line-simple.html b/packages/html-test-app/src/preview-examples/echarts-line-simple.html index b50341529ff..90fb38ebfd6 100644 --- a/packages/html-test-app/src/preview-examples/echarts-line-simple.html +++ b/packages/html-test-app/src/preview-examples/echarts-line-simple.html @@ -12,14 +12,13 @@ - ECharts example + ECharts line simple example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-pie.html b/packages/html-test-app/src/preview-examples/echarts-pie.html index 9aaaaae5613..3293493b4ed 100644 --- a/packages/html-test-app/src/preview-examples/echarts-pie.html +++ b/packages/html-test-app/src/preview-examples/echarts-pie.html @@ -12,14 +12,13 @@ - ECharts example + ECharts pie example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-progress-arc.html b/packages/html-test-app/src/preview-examples/echarts-progress-arc.html index d60d6141802..fe9db2e33fd 100644 --- a/packages/html-test-app/src/preview-examples/echarts-progress-arc.html +++ b/packages/html-test-app/src/preview-examples/echarts-progress-arc.html @@ -12,14 +12,13 @@ - ECharts example + ECharts progress arc example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-progress-circle.html b/packages/html-test-app/src/preview-examples/echarts-progress-circle.html index 21a06b03b87..515fb583507 100644 --- a/packages/html-test-app/src/preview-examples/echarts-progress-circle.html +++ b/packages/html-test-app/src/preview-examples/echarts-progress-circle.html @@ -12,14 +12,13 @@ - ECharts example + ECharts progress circle example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-special-3d.html b/packages/html-test-app/src/preview-examples/echarts-special-3d.html index b085fcfed96..625a9babb6e 100644 --- a/packages/html-test-app/src/preview-examples/echarts-special-3d.html +++ b/packages/html-test-app/src/preview-examples/echarts-special-3d.html @@ -12,15 +12,14 @@ - ECharts example + ECharts special 3d example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-special-toolbox.html b/packages/html-test-app/src/preview-examples/echarts-special-toolbox.html index d0a3f759be1..cf307ccc106 100644 --- a/packages/html-test-app/src/preview-examples/echarts-special-toolbox.html +++ b/packages/html-test-app/src/preview-examples/echarts-special-toolbox.html @@ -12,14 +12,13 @@ - ECharts example + ECharts special toolbox example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/echarts-special-zoom.html b/packages/html-test-app/src/preview-examples/echarts-special-zoom.html index ba7735be414..b74285f1e4e 100644 --- a/packages/html-test-app/src/preview-examples/echarts-special-zoom.html +++ b/packages/html-test-app/src/preview-examples/echarts-special-zoom.html @@ -12,14 +12,13 @@ - ECharts example + ECharts special zoom example - - +
- + diff --git a/packages/html-test-app/src/preview-examples/form-checkbox-disabled.html b/packages/html-test-app/src/preview-examples/form-checkbox-disabled.html new file mode 100644 index 00000000000..33eb8deff1a --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox-disabled.html @@ -0,0 +1,26 @@ + + + + + + + + Form checkbox disabled example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.css b/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.css new file mode 100644 index 00000000000..d86ca7ea8ab --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.css @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.cb-padding { + padding-left: 1rem; +} diff --git a/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.html b/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.html new file mode 100644 index 00000000000..1c0f4e34c3f --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox-group-indeterminate.html @@ -0,0 +1,67 @@ + + + + + + + + Form checkbox group indeterminate example + + + + + + + + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/form-checkbox-group.html b/packages/html-test-app/src/preview-examples/form-checkbox-group.html new file mode 100644 index 00000000000..a3f28bcc9c1 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox-group.html @@ -0,0 +1,25 @@ + + + + + + + + Form checkbox group example + + + + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/form-checkbox-validation.html b/packages/html-test-app/src/preview-examples/form-checkbox-validation.html new file mode 100644 index 00000000000..28a43447160 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox-validation.html @@ -0,0 +1,63 @@ + + + + + + + + Form checkbox validation example + + +
+ + + +
+ +
+ + + + +
+ +
+ + + + +
+ +
+ + + + +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/form-checkbox.html b/packages/html-test-app/src/preview-examples/form-checkbox.html new file mode 100644 index 00000000000..42f04ac69cb --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-checkbox.html @@ -0,0 +1,22 @@ + + + + + + + + Form checkbox example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/form-layout-auto.html b/packages/html-test-app/src/preview-examples/form-layout-auto.html new file mode 100644 index 00000000000..b3e4d82b4b1 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-layout-auto.html @@ -0,0 +1,27 @@ + + + + + + + + Avatar example + + + + Example + + Example + + Submit + + + + diff --git a/packages/html-test-app/src/preview-examples/form-layout-grid.css b/packages/html-test-app/src/preview-examples/form-layout-grid.css new file mode 100644 index 00000000000..d6390b71019 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-layout-grid.css @@ -0,0 +1,7 @@ +.layout-grid-example { + ix-select, + ix-input, + ix-button { + width: 100%; + } +} diff --git a/packages/html-test-app/src/preview-examples/form-layout-grid.html b/packages/html-test-app/src/preview-examples/form-layout-grid.html new file mode 100644 index 00000000000..7965f1a5409 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-layout-grid.html @@ -0,0 +1,44 @@ + + + + + + + + Avatar example + + + + + + + Example + + + + + + + + Example + + + + + + + + Submit + + + + + + diff --git a/packages/html-test-app/src/preview-examples/form-validation.css b/packages/html-test-app/src/preview-examples/form-validation.css new file mode 100644 index 00000000000..4f98e054d49 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/form-validation.css @@ -0,0 +1,22 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.form-validation-example { + display: flex; + flex-direction: column; + width: fit-content; +} + +.form-validation-example .padding-right { + padding-right: 0.5rem; +} diff --git a/packages/html-test-app/src/preview-examples/icon-toggle-button-secondary-outline.html b/packages/html-test-app/src/preview-examples/icon-toggle-button-secondary-outline.html index 52fc613fe72..1731b33cab3 100644 --- a/packages/html-test-app/src/preview-examples/icon-toggle-button-secondary-outline.html +++ b/packages/html-test-app/src/preview-examples/icon-toggle-button-secondary-outline.html @@ -12,7 +12,7 @@ - Vite App + Icon toggle button secondary outline example diff --git a/packages/html-test-app/src/preview-examples/input-disabled.html b/packages/html-test-app/src/preview-examples/input-disabled.html index 1f46ae24f5c..1c4e7c2fbbc 100644 --- a/packages/html-test-app/src/preview-examples/input-disabled.html +++ b/packages/html-test-app/src/preview-examples/input-disabled.html @@ -15,20 +15,12 @@ Input disabled example -
- -
+ - diff --git a/packages/html-test-app/src/preview-examples/input-label.html b/packages/html-test-app/src/preview-examples/input-label.html new file mode 100644 index 00000000000..7324b18ab05 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-label.html @@ -0,0 +1,27 @@ + + + + + + + + Input label example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/input-legacy-disabled.html b/packages/html-test-app/src/preview-examples/input-legacy-disabled.html new file mode 100644 index 00000000000..943a7e19f8c --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-legacy-disabled.html @@ -0,0 +1,34 @@ + + + + + + + + Input legacy disabled example + + +
+ +
+ + + + + diff --git a/packages/html-test-app/src/preview-examples/input-labels.html b/packages/html-test-app/src/preview-examples/input-legacy-labels.html similarity index 94% rename from packages/html-test-app/src/preview-examples/input-labels.html rename to packages/html-test-app/src/preview-examples/input-legacy-labels.html index 8f6f816ecb5..f58ff3c46b6 100644 --- a/packages/html-test-app/src/preview-examples/input-labels.html +++ b/packages/html-test-app/src/preview-examples/input-legacy-labels.html @@ -12,7 +12,7 @@ - Input labels example + Input legacy labels example diff --git a/packages/html-test-app/src/preview-examples/input-legacy-readonly.html b/packages/html-test-app/src/preview-examples/input-legacy-readonly.html new file mode 100644 index 00000000000..44e04c812ac --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-legacy-readonly.html @@ -0,0 +1,34 @@ + + + + + + + + Input legacy readonly example + + +
+ +
+ + + + + diff --git a/packages/html-test-app/src/preview-examples/input-search.html b/packages/html-test-app/src/preview-examples/input-legacy-search.html similarity index 96% rename from packages/html-test-app/src/preview-examples/input-search.html rename to packages/html-test-app/src/preview-examples/input-legacy-search.html index a79d2b38f95..aa3371105d3 100644 --- a/packages/html-test-app/src/preview-examples/input-search.html +++ b/packages/html-test-app/src/preview-examples/input-legacy-search.html @@ -12,7 +12,7 @@ - Input search example + Input legacy search example
diff --git a/packages/html-test-app/src/preview-examples/input-legacy-types.html b/packages/html-test-app/src/preview-examples/input-legacy-types.html new file mode 100644 index 00000000000..d6560578322 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-legacy-types.html @@ -0,0 +1,49 @@ + + + + + + + + Input legacy types example + + + + + + Text: + + + + + Number: + + .00 + $ + + + + Password: + + + + + Email: + + + + + Telephone: + + +
+ + + diff --git a/packages/html-test-app/src/preview-examples/input-with-icon.html b/packages/html-test-app/src/preview-examples/input-legacy-with-icon.html similarity index 94% rename from packages/html-test-app/src/preview-examples/input-with-icon.html rename to packages/html-test-app/src/preview-examples/input-legacy-with-icon.html index 92fe43e4c09..93e41a6ad43 100644 --- a/packages/html-test-app/src/preview-examples/input-with-icon.html +++ b/packages/html-test-app/src/preview-examples/input-legacy-with-icon.html @@ -12,7 +12,7 @@ - Input with icon example + Input legacy with icon example
diff --git a/packages/html-test-app/src/preview-examples/input-legacy.html b/packages/html-test-app/src/preview-examples/input-legacy.html new file mode 100644 index 00000000000..86b6a75400e --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-legacy.html @@ -0,0 +1,33 @@ + + + + + + + + Input legacy example + + + + +
+ + + + + diff --git a/packages/html-test-app/src/preview-examples/input-pattern.html b/packages/html-test-app/src/preview-examples/input-pattern.html new file mode 100644 index 00000000000..c42bc087ea8 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-pattern.html @@ -0,0 +1,26 @@ + + + + + + + + Input pattern example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/input-readonly.html b/packages/html-test-app/src/preview-examples/input-readonly.html index ecb8abf85b2..bc7ad8a2f8e 100644 --- a/packages/html-test-app/src/preview-examples/input-readonly.html +++ b/packages/html-test-app/src/preview-examples/input-readonly.html @@ -15,20 +15,13 @@ Input readonly example -
- -
+ - diff --git a/packages/html-test-app/src/preview-examples/input-types.html b/packages/html-test-app/src/preview-examples/input-types.html index 99d748f08d1..991b0a0d977 100644 --- a/packages/html-test-app/src/preview-examples/input-types.html +++ b/packages/html-test-app/src/preview-examples/input-types.html @@ -14,36 +14,51 @@ Input types example - + -
- - Text: - - - - - Number: - - .00 - $ - - - - Password: - - - - - Email: - - - - - Telephone: - - -
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ diff --git a/packages/html-test-app/src/preview-examples/input-validation.html b/packages/html-test-app/src/preview-examples/input-validation.html new file mode 100644 index 00000000000..16c68e66128 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/input-validation.html @@ -0,0 +1,61 @@ + + + + + + + + Input validation example + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/input.html b/packages/html-test-app/src/preview-examples/input.html index 7efa3c1ea9c..c17d816c951 100644 --- a/packages/html-test-app/src/preview-examples/input.html +++ b/packages/html-test-app/src/preview-examples/input.html @@ -15,19 +15,8 @@ Input example -
- -
+ - diff --git a/packages/html-test-app/src/preview-examples/layout-auto-custom.html b/packages/html-test-app/src/preview-examples/layout-auto-custom.html new file mode 100644 index 00000000000..a59f9a955a7 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/layout-auto-custom.html @@ -0,0 +1,51 @@ + + + + + + + + Layout auto custom example + + + + + 1 + 2 + 3 + 4 + 5 + 6 + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/layout-auto.css b/packages/html-test-app/src/preview-examples/layout-auto.css new file mode 100644 index 00000000000..8d3766cbc84 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/layout-auto.css @@ -0,0 +1,24 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +ix-layout-auto ix-typography { + display: flex; + padding: 0.15rem; + flex-direction: column; + justify-content: center; + align-items: center; + align-self: stretch; + border: 0.0625rem solid var(--theme-color-soft-bdr); + background: var(--theme-color-ghost); + border-radius: 0.1875rem; +} diff --git a/packages/html-test-app/src/preview-examples/layout-auto.html b/packages/html-test-app/src/preview-examples/layout-auto.html new file mode 100644 index 00000000000..07e69c3f32a --- /dev/null +++ b/packages/html-test-app/src/preview-examples/layout-auto.html @@ -0,0 +1,43 @@ + + + + + + + + Layout auto example + + + + + 1 + 2 + 3 + 4 + 5 + 6 + + + + + + diff --git a/packages/html-test-app/src/preview-examples/loading.html b/packages/html-test-app/src/preview-examples/loading.html index e2ca5b37710..a265dfa61cd 100644 --- a/packages/html-test-app/src/preview-examples/loading.html +++ b/packages/html-test-app/src/preview-examples/loading.html @@ -12,7 +12,7 @@ - Loading modal example + Loading example Start loading diff --git a/packages/html-test-app/src/preview-examples/menu-category.html b/packages/html-test-app/src/preview-examples/menu-category.html index f5ce96c8ebe..0d01d2fc80c 100644 --- a/packages/html-test-app/src/preview-examples/menu-category.html +++ b/packages/html-test-app/src/preview-examples/menu-category.html @@ -16,7 +16,7 @@ - + Home Normal Tab diff --git a/packages/html-test-app/src/preview-examples/message.html b/packages/html-test-app/src/preview-examples/message.html index 782cdd5d9d1..67409283f2a 100644 --- a/packages/html-test-app/src/preview-examples/message.html +++ b/packages/html-test-app/src/preview-examples/message.html @@ -12,7 +12,7 @@ - Message modal example + Message example Show 'success' message diff --git a/packages/html-test-app/src/preview-examples/number-input-disabled.html b/packages/html-test-app/src/preview-examples/number-input-disabled.html new file mode 100644 index 00000000000..bcfd914dab5 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input-disabled.html @@ -0,0 +1,22 @@ + + + + + + + + Number input disabled example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/number-input-label.html b/packages/html-test-app/src/preview-examples/number-input-label.html new file mode 100644 index 00000000000..a4cfe83a425 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input-label.html @@ -0,0 +1,25 @@ + + + + + + + + Number input label example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/number-input-readonly.html b/packages/html-test-app/src/preview-examples/number-input-readonly.html new file mode 100644 index 00000000000..7eecefb9ba5 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input-readonly.html @@ -0,0 +1,22 @@ + + + + + + + + Number input readonly example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/number-input-stepper-button.html b/packages/html-test-app/src/preview-examples/number-input-stepper-button.html new file mode 100644 index 00000000000..74c0ab298c4 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input-stepper-button.html @@ -0,0 +1,22 @@ + + + + + + + + Number input stepper button example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/number-input-validation.html b/packages/html-test-app/src/preview-examples/number-input-validation.html new file mode 100644 index 00000000000..4a70b2b140d --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input-validation.html @@ -0,0 +1,52 @@ + + + + + + + + Number input validation example + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/number-input.html b/packages/html-test-app/src/preview-examples/number-input.html new file mode 100644 index 00000000000..4396522f966 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/number-input.html @@ -0,0 +1,22 @@ + + + + + + + + Number input example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/pane-layout.html b/packages/html-test-app/src/preview-examples/pane-layout.html index 09bd22a8de3..7876d06dae1 100644 --- a/packages/html-test-app/src/preview-examples/pane-layout.html +++ b/packages/html-test-app/src/preview-examples/pane-layout.html @@ -12,7 +12,7 @@ - Pane Layout Example + Pane layout example - Pane Example + Pane example
diff --git a/packages/html-test-app/src/preview-examples/radio-disabled.html b/packages/html-test-app/src/preview-examples/radio-disabled.html new file mode 100644 index 00000000000..82f834bc96e --- /dev/null +++ b/packages/html-test-app/src/preview-examples/radio-disabled.html @@ -0,0 +1,27 @@ + + + + + + + + Radio disabled example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/radio-group.html b/packages/html-test-app/src/preview-examples/radio-group.html new file mode 100644 index 00000000000..62009becc46 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/radio-group.html @@ -0,0 +1,44 @@ + + + + + + + + Radio group example + + + + + + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/radio-validation.html b/packages/html-test-app/src/preview-examples/radio-validation.html new file mode 100644 index 00000000000..b1de4dad1d9 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/radio-validation.html @@ -0,0 +1,65 @@ + + + + + + + + Radio validation example + + + +
+ + + + +
+ +
+ + + + +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/radio.html b/packages/html-test-app/src/preview-examples/radio.html new file mode 100644 index 00000000000..b6f3fda6dec --- /dev/null +++ b/packages/html-test-app/src/preview-examples/radio.html @@ -0,0 +1,26 @@ + + + + + + + + Radio example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/select-validation.html b/packages/html-test-app/src/preview-examples/select-validation.html new file mode 100644 index 00000000000..1df69c840c5 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/select-validation.html @@ -0,0 +1,70 @@ + + + + + + + + Select validation example + + +
+ + + + + +
+
+ + + + +
+
+ + + + + +
+
+ + + + +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/textarea-disabled.html b/packages/html-test-app/src/preview-examples/textarea-disabled.html index 5b9b6626219..0a8705e3e14 100644 --- a/packages/html-test-app/src/preview-examples/textarea-disabled.html +++ b/packages/html-test-app/src/preview-examples/textarea-disabled.html @@ -15,9 +15,14 @@ Textarea disabled example - + + diff --git a/packages/html-test-app/src/preview-examples/textarea-legacy-disabled.html b/packages/html-test-app/src/preview-examples/textarea-legacy-disabled.html new file mode 100644 index 00000000000..95defdf7ce2 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/textarea-legacy-disabled.html @@ -0,0 +1,23 @@ + + + + + + + + Textarea legacy disabled example + + + + + + diff --git a/packages/html-test-app/src/preview-examples/textarea-legacy-readonly.html b/packages/html-test-app/src/preview-examples/textarea-legacy-readonly.html new file mode 100644 index 00000000000..975811c07cc --- /dev/null +++ b/packages/html-test-app/src/preview-examples/textarea-legacy-readonly.html @@ -0,0 +1,23 @@ + + + + + + + + Textarea legacy readonly example + + + + + + diff --git a/packages/html-test-app/src/preview-examples/textarea-legacy.html b/packages/html-test-app/src/preview-examples/textarea-legacy.html new file mode 100644 index 00000000000..623d1618bb6 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/textarea-legacy.html @@ -0,0 +1,21 @@ + + + + + + + + Textarea legacy example + + + + + + diff --git a/packages/html-test-app/src/preview-examples/textarea-readonly.html b/packages/html-test-app/src/preview-examples/textarea-readonly.html index b5433e4e253..e7ca8c902a8 100644 --- a/packages/html-test-app/src/preview-examples/textarea-readonly.html +++ b/packages/html-test-app/src/preview-examples/textarea-readonly.html @@ -15,9 +15,15 @@ Textarea readonly example - + + diff --git a/packages/html-test-app/src/preview-examples/textarea-rows-cols.html b/packages/html-test-app/src/preview-examples/textarea-rows-cols.html new file mode 100644 index 00000000000..d018d689a73 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/textarea-rows-cols.html @@ -0,0 +1,31 @@ + + + + + + + + Textarea rows cols example + + + + + + + diff --git a/packages/html-test-app/src/preview-examples/textarea-validation.html b/packages/html-test-app/src/preview-examples/textarea-validation.html new file mode 100644 index 00000000000..136e755fa31 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/textarea-validation.html @@ -0,0 +1,75 @@ + + + + + + + + Textarea validation example + + + +
+ +
+ +
+ +
+
+ +
+
+ +
+ + + + diff --git a/packages/html-test-app/src/preview-examples/textarea.html b/packages/html-test-app/src/preview-examples/textarea.html index 3e4e0b13e98..451f3f63494 100644 --- a/packages/html-test-app/src/preview-examples/textarea.html +++ b/packages/html-test-app/src/preview-examples/textarea.html @@ -15,7 +15,12 @@ Textarea example - + + diff --git a/packages/html-test-app/src/preview-examples/toggle-button-primary.html b/packages/html-test-app/src/preview-examples/toggle-button-primary.html index 5f15cde1253..52547e5f7a5 100644 --- a/packages/html-test-app/src/preview-examples/toggle-button-primary.html +++ b/packages/html-test-app/src/preview-examples/toggle-button-primary.html @@ -6,12 +6,13 @@ This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. --> + - Vite App + Toggle button primary example diff --git a/packages/html-test-app/src/preview-examples/validation-select.html b/packages/html-test-app/src/preview-examples/validation-select.html new file mode 100644 index 00000000000..11a32b7e247 --- /dev/null +++ b/packages/html-test-app/src/preview-examples/validation-select.html @@ -0,0 +1,47 @@ + + + + + + + + Validation select example + + +
+ + + + + Submit +
+ + + + + diff --git a/packages/html-test-app/src/public/additional-theme/.gitkeep b/packages/html-test-app/src/public/additional-theme/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/packages/html-test-app/vite.config.ts b/packages/html-test-app/vite.config.ts index 9e607207643..d61194b0ea1 100644 --- a/packages/html-test-app/vite.config.ts +++ b/packages/html-test-app/vite.config.ts @@ -10,6 +10,7 @@ import fs from 'fs'; import path from 'path'; import { defineConfig } from 'vite'; + const __dirname = path.resolve(); const previewPath = path.join(__dirname, 'src', 'preview-examples'); diff --git a/packages/react-test-app/package.json b/packages/react-test-app/package.json index 4c997d10f69..472fa5f278d 100644 --- a/packages/react-test-app/package.json +++ b/packages/react-test-app/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "@hookform/resolvers": "^3.6.0", "@siemens/ix": "workspace:*", "@siemens/ix-aggrid": "workspace:*", "@siemens/ix-echarts": "workspace:*", @@ -17,6 +18,7 @@ "@siemens/ix-react": "workspace:*", "ag-grid-community": "^30.2.0", "ag-grid-react": "^29.1.0", + "clsx": "^1.2.1", "echarts": "^5.4.1", "echarts-for-react": "~3.0.2", "echarts-gl": "^2.0.9", @@ -25,13 +27,14 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.34.2", "react-router-dom": "^6.3.0", - "web-vitals": "^2.1.4" + "web-vitals": "^2.1.4", + "yup": "^1.4.0" }, "devDependencies": { "@types/react": "18.2.33", "@types/react-dom": "18.2.14", - "@vitejs/plugin-react": "^2.0.1", - "typescript": "^4.6.4", - "vite": "^3.1.0" + "@vitejs/plugin-react": "^4.2.1", + "typescript": "^5.2.2", + "vite": "^5.2.0" } } diff --git a/packages/react-test-app/src/main.tsx b/packages/react-test-app/src/main.tsx index 61892fd40a4..778af5ab9ab 100644 --- a/packages/react-test-app/src/main.tsx +++ b/packages/react-test-app/src/main.tsx @@ -9,9 +9,9 @@ import './preview-examples/global.css'; +import { IxApplicationContext } from '@siemens/ix-react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter, Route, Routes } from 'react-router-dom'; -import { IxApplicationContext } from '@siemens/ix-react'; import App from './App'; import AboutAndLegal from './preview-examples/about-and-legal'; @@ -50,6 +50,8 @@ import Checkbox from './preview-examples/checkbox'; import CheckboxIndeterminate from './preview-examples/checkbox-indeterminate'; import Chip from './preview-examples/chip'; import Content from './preview-examples/content'; +import CustomField from './preview-examples/custom-field'; +import CustomFieldValidation from './preview-examples/custom-field-validation'; import ContentHeader from './preview-examples/content-header'; import ContentHeaderNoBack from './preview-examples/content-header-no-back'; import DateDropdown from './preview-examples/date-dropdown'; @@ -91,6 +93,10 @@ import EventListCustomItemHeight from './preview-examples/event-list-custom-item import EventListSelected from './preview-examples/event-list-selected'; import ExpandingSearch from './preview-examples/expanding-search'; import FlipTile from './preview-examples/flip-tile'; +import FormCheckbox from './preview-examples/form-checkbox'; +import FormCheckboxDisabled from './preview-examples/form-checkbox-disabled'; +import FormCheckboxGroup from './preview-examples/form-checkbox-group'; +import FormCheckboxValidation from './preview-examples/form-checkbox-validation'; import Grid from './preview-examples/grid'; import GridPadding from './preview-examples/grid-padding'; import GridSize from './preview-examples/grid-size'; @@ -103,13 +109,13 @@ import IconToggleButtonPrimaryOutline from './preview-examples/icon-toggle-butto import IconToggleButtonSecondary from './preview-examples/icon-toggle-button-secondary'; import IconToggleButtonSecondaryGhost from './preview-examples/icon-toggle-button-secondary-ghost'; import IconToggleButtonSecondaryOutline from './preview-examples/icon-toggle-button-secondary-outline'; -import Input from './preview-examples/input'; -import InputDisabled from './preview-examples/input-disabled'; -import InputLabels from './preview-examples/input-labels'; -import InputReadonly from './preview-examples/input-readonly'; -import InputSearch from './preview-examples/input-search'; -import InputTypes from './preview-examples/input-types'; -import InputWithIcon from './preview-examples/input-with-icon'; +import InputLegacy from './preview-examples/input-legacy'; +import InputLegacyDisabled from './preview-examples/input-legacy-disabled'; +import InputLegacyLabels from './preview-examples/input-legacy-labels'; +import InputLegacyReadonly from './preview-examples/input-legacy-readonly'; +import InputLegacySearch from './preview-examples/input-legacy-search'; +import InputLegacyTypes from './preview-examples/input-legacy-types'; +import InputLegacyWithIcon from './preview-examples/input-legacy-with-icon'; import KeyValue from './preview-examples/key-value'; import KeyValueList from './preview-examples/key-value-list'; import KeyValueListStriped from './preview-examples/key-value-list-striped'; @@ -130,6 +136,12 @@ import Message from './preview-examples/message'; import MessageBar from './preview-examples/message-bar'; import Modal from './preview-examples/modal'; import ModalSizes from './preview-examples/modal-sizes'; +import NumberInput from './preview-examples/number-input'; +import NumberInputDisabled from './preview-examples/number-input-disabled'; +import NumberInputLabel from './preview-examples/number-input-label'; +import NumberInputReadonly from './preview-examples/number-input-readonly'; +import NumberInputStepperButton from './preview-examples/number-input-stepper-button'; +import NumberInputValidation from './preview-examples/number-input-validation'; import Pagination from './preview-examples/pagination'; import PaginationAdvanced from './preview-examples/pagination-advanced'; import Pane from './preview-examples/pane'; @@ -139,9 +151,14 @@ import PillVariants from './preview-examples/pill-variants'; import PopoverNews from './preview-examples/popover-news'; import PushCard from './preview-examples/push-card'; import RadioButton from './preview-examples/radio-button'; +import Radio from './preview-examples/radio'; +import RadioDisabled from './preview-examples/radio-disabled'; +import RadioGroup from './preview-examples/radio-group'; +import RadioValidation from './preview-examples/radio-validation'; import Select from './preview-examples/select'; import SelectEditable from './preview-examples/select-editable'; import SelectMultiple from './preview-examples/select-multiple'; +import SelecValidation from './preview-examples/select-validation'; import Settings from './preview-examples/settings'; import Slider from './preview-examples/slider'; import SliderError from './preview-examples/slider-error'; @@ -153,9 +170,21 @@ import SplitButton from './preview-examples/split-button'; import SplitButtonIcons from './preview-examples/split-button-icons'; import Tabs from './preview-examples/tabs'; import TabsRounded from './preview-examples/tabs-rounded'; +import TextareaLegacy from './preview-examples/textarea-legacy'; +import TextareaLegacyDisabled from './preview-examples/textarea-legacy-disabled'; +import TextareaLegacyReadonly from './preview-examples/textarea-legacy-readonly'; import Textarea from './preview-examples/textarea'; import TextareaDisabled from './preview-examples/textarea-disabled'; import TextareaReadonly from './preview-examples/textarea-readonly'; +import TextareaRowCols from './preview-examples/textarea-rows-cols'; +import TextareaValidation from './preview-examples/textarea-validation'; +import Input from './preview-examples/input'; +import InputDisabled from './preview-examples/input-disabled'; +import InputLabel from './preview-examples/input-label'; +import InputPattern from './preview-examples/input-pattern'; +import InputReadonly from './preview-examples/input-readonly'; +import InputTypes from './preview-examples/input-types'; +import InputValidation from './preview-examples/input-validation'; import ThemeSwitcher from './preview-examples/theme-switcher'; import Tile from './preview-examples/tile'; import Timepicker from './preview-examples/timepicker'; @@ -182,12 +211,22 @@ import VerticalTabsWithAvatar from './preview-examples/vertical-tabs-with-avatar import Workflow from './preview-examples/workflow'; import WorkflowVertical from './preview-examples/workflow-vertical'; import reportWebVitals from './reportWebVitals'; +import ValidationSelect from './preview-examples/validation-select'; +import FormValidation from './preview-examples/form-validation'; +import LayoutAuto from './preview-examples/layout-auto'; +import LayoutAutoCustom from './preview-examples/layout-auto-custom'; +import FormCheckboxGroupIndeterminate from './preview-examples/form-checkbox-group-indeterminate'; +import FormLayoutAuto from './preview-examples/form-layout-auto'; +import FormLayoutGrid from './preview-examples/form-layout-grid'; ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } /> + } /> + } /> + } /> } /> } /> } /> @@ -255,6 +294,11 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( element={} /> } /> + } /> + } + /> } /> } /> } /> @@ -361,9 +405,23 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } /> } /> } /> - } /> - } /> - } /> + } /> + } + /> + } + /> + } + /> + } + /> } @@ -397,13 +455,31 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( path="/preview/icon-toggle-button-secondary" element={} /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } /> } @@ -449,6 +525,18 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( /> } /> } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } + /> } /> } /> } /> } /> } /> + } + /> + } + /> + } /> } @@ -488,7 +585,22 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( path="/preview/textarea-readonly" element={} /> - } /> + } + /> + } + /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> } /> } /> } /> @@ -528,6 +640,27 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( } /> } /> } /> + } /> + } + /> + } + /> + } + /> + } + /> + } + /> } /> } /> } /> @@ -540,7 +673,19 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( path="/preview/workflow-vertical" element={} /> + } + /> + } /> + } /> + } + /> } /> + } /> + } /> diff --git a/packages/react-test-app/src/preview-examples/card.tsx b/packages/react-test-app/src/preview-examples/card.tsx index ad35652fbcd..46f12127f2f 100644 --- a/packages/react-test-app/src/preview-examples/card.tsx +++ b/packages/react-test-app/src/preview-examples/card.tsx @@ -18,10 +18,14 @@ export default () => { Number of components - Vanilla JavaScript
- Angular
- Blazor
- React
+ Vanilla JavaScript +
+ Angular +
+ Blazor +
+ React +
Vue.js
123 diff --git a/packages/react-test-app/src/preview-examples/custom-field-validation.tsx b/packages/react-test-app/src/preview-examples/custom-field-validation.tsx new file mode 100644 index 00000000000..456bc6f6ecb --- /dev/null +++ b/packages/react-test-app/src/preview-examples/custom-field-validation.tsx @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCustomField } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/custom-field.tsx b/packages/react-test-app/src/preview-examples/custom-field.tsx new file mode 100644 index 00000000000..e29de3d1281 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/custom-field.tsx @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { useRef } from 'react'; +import { IxCustomField, IxIconButton, IxInput } from '@siemens/ix-react'; + +export default () => { + const ref = useRef(null); + + return ( + + + { + ref.current?.click(); + }} + > + console.log(e.target.files)} + /> + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/date-input-disabled.tsx b/packages/react-test-app/src/preview-examples/date-input-disabled.tsx new file mode 100644 index 00000000000..9a1fbbee23e --- /dev/null +++ b/packages/react-test-app/src/preview-examples/date-input-disabled.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxDateInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/date-input-label.tsx b/packages/react-test-app/src/preview-examples/date-input-label.tsx new file mode 100644 index 00000000000..ef7c1c9bd99 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/date-input-label.tsx @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxDateInput } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/date-input-readonly.tsx b/packages/react-test-app/src/preview-examples/date-input-readonly.tsx new file mode 100644 index 00000000000..262f84d37a2 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/date-input-readonly.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxDateInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/date-input-validation.tsx b/packages/react-test-app/src/preview-examples/date-input-validation.tsx new file mode 100644 index 00000000000..aea217fa53b --- /dev/null +++ b/packages/react-test-app/src/preview-examples/date-input-validation.tsx @@ -0,0 +1,48 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxDateInput } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/date-input.tsx b/packages/react-test-app/src/preview-examples/date-input.tsx new file mode 100644 index 00000000000..82c3c0e313d --- /dev/null +++ b/packages/react-test-app/src/preview-examples/date-input.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxDateInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/form-checkbox-disabled.tsx b/packages/react-test-app/src/preview-examples/form-checkbox-disabled.tsx new file mode 100644 index 00000000000..b090dcab9ef --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox-disabled.tsx @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCheckbox } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.css b/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.css new file mode 100644 index 00000000000..d86ca7ea8ab --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.css @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.cb-padding { + padding-left: 1rem; +} diff --git a/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.tsx b/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.tsx new file mode 100644 index 00000000000..9e840bfe5ee --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox-group-indeterminate.tsx @@ -0,0 +1,95 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCheckboxCustomEvent } from '@siemens/ix'; +import './form-checkbox-group-indeterminate.css'; + +import { IxCheckbox, IxCheckboxGroup } from '@siemens/ix-react'; +import { useEffect, useState } from 'react'; + +export default () => { + const [parentCheckboxState, setParentCheckboxState] = useState({ + indeterminate: false, + checked: false, + label: 'Option group', + }); + const [childCheckboxesState, setChildCheckboxesState] = useState([ + { checked: true, label: 'Sub option one' }, + { checked: true, label: 'Another sub option' }, + { checked: false, label: 'Another sub option' }, + ]); + + useEffect(() => { + if (childCheckboxesState.every((cb) => cb.checked)) { + setParentCheckboxState({ + ...parentCheckboxState, + indeterminate: false, + checked: true, + }); + } else if (childCheckboxesState.some((cb) => cb.checked)) { + setParentCheckboxState({ + ...parentCheckboxState, + indeterminate: true, + checked: false, + }); + } else { + setParentCheckboxState({ + ...parentCheckboxState, + indeterminate: false, + checked: false, + }); + } + }, [childCheckboxesState]); + + function parentCheckedChange(e: IxCheckboxCustomEvent) { + setParentCheckboxState({ + ...parentCheckboxState, + checked: e.target.checked, + }); + setChildCheckboxesState( + childCheckboxesState.map((cb) => { + return { ...cb, checked: e.target.checked }; + }) + ); + } + + function checkedChange(e: IxCheckboxCustomEvent, idx: number) { + setChildCheckboxesState( + childCheckboxesState.map((cb, index) => { + if (idx === index) { + return { ...cb, checked: e.target.checked }; + } else { + return cb; + } + }) + ); + } + + return ( + + + {childCheckboxesState.map((cb, index) => { + return ( + checkedChange(e, index)} + label="Sub option one" + className="cb-padding" + key={cb.label} + > + ); + })} + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-checkbox-group.tsx b/packages/react-test-app/src/preview-examples/form-checkbox-group.tsx new file mode 100644 index 00000000000..bed28778ea4 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox-group.tsx @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCheckbox, IxCheckboxGroup } from '@siemens/ix-react'; + +export default () => { + return ( + + + + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-checkbox-validation.tsx b/packages/react-test-app/src/preview-examples/form-checkbox-validation.tsx new file mode 100644 index 00000000000..9b236ad527c --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox-validation.tsx @@ -0,0 +1,71 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCheckbox, IxCheckboxGroup } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ + + +
+ +
+ + + + +
+ +
+ + + + +
+ +
+ + + + +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-checkbox.tsx b/packages/react-test-app/src/preview-examples/form-checkbox.tsx new file mode 100644 index 00000000000..25c6ae79866 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-checkbox.tsx @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxCheckbox } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-layout-auto.tsx b/packages/react-test-app/src/preview-examples/form-layout-auto.tsx new file mode 100644 index 00000000000..cf49e3f16a4 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-layout-auto.tsx @@ -0,0 +1,27 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { + IxButton, + IxFieldLabel, + IxInput, + IxLayoutAuto, + IxSelect, +} from '@siemens/ix-react'; + +export default () => { + return ( + + Example + + Example + + Submit + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-layout-grid.css b/packages/react-test-app/src/preview-examples/form-layout-grid.css new file mode 100644 index 00000000000..d6390b71019 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-layout-grid.css @@ -0,0 +1,7 @@ +.layout-grid-example { + ix-select, + ix-input, + ix-button { + width: 100%; + } +} diff --git a/packages/react-test-app/src/preview-examples/form-layout-grid.tsx b/packages/react-test-app/src/preview-examples/form-layout-grid.tsx new file mode 100644 index 00000000000..fcd50aa4148 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-layout-grid.tsx @@ -0,0 +1,48 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { + IxButton, + IxCol, + IxFieldLabel, + IxInput, + IxLayoutGrid, + IxRow, + IxSelect, +} from '@siemens/ix-react'; + +import './form-layout-grid.css'; + +export default () => { + return ( + + + + Example + + + + + + + + Example + + + + + + + + Submit + + + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/form-validation.css b/packages/react-test-app/src/preview-examples/form-validation.css new file mode 100644 index 00000000000..4f98e054d49 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-validation.css @@ -0,0 +1,22 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.form-validation-example { + display: flex; + flex-direction: column; + width: fit-content; +} + +.form-validation-example .padding-right { + padding-right: 0.5rem; +} diff --git a/packages/react-test-app/src/preview-examples/form-validation.tsx b/packages/react-test-app/src/preview-examples/form-validation.tsx new file mode 100644 index 00000000000..ce81ce51aa5 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/form-validation.tsx @@ -0,0 +1,286 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import './form-validation.css'; + +import { yupResolver } from '@hookform/resolvers/yup'; +import { iconBezierCurve, iconLocation } from '@siemens/ix-icons/icons'; +import { + IxButton, + IxCheckbox, + IxCheckboxGroup, + IxCustomField, + IxDateInput, + IxIcon, + IxIconButton, + IxLayoutAuto, + IxNumberInput, + IxRadio, + IxRadioGroup, + IxSelect, + IxSelectItem, + IxInput, + IxTextarea, + IxTypography, +} from '@siemens/ix-react'; +import clsx from 'clsx'; +import { useLayoutEffect, useRef, useState } from 'react'; +import { Controller, useForm } from 'react-hook-form'; +import * as yup from 'yup'; + +const validationSchema = yup.object({ + name: yup.string().required('Name is required'), + 'last-name': yup.string(), + address: yup.string(), + thresholdLimitA: yup + .number() + .max(5, 'The threshold must be equal or lesser than 5'), + thresholdLimitB: yup.number(), + begin: yup.string(), + end: yup + .string() + .test('valid-date', '2024/05/05 is not allowed to pick', (value) => { + return value !== '2024/05/05'; + }), + comment: yup.string(), + agreed: yup.boolean().oneOf([true], 'You must agree to continue'), + 'booking-option': yup.string(), + 'travel-option': yup.string(), + 'room-size': yup.number(), + email: yup.string(), + pin: yup.string(), + 'confirm-pin': yup.string().oneOf([yup.ref('pin')], 'PIN does not match'), + upload: yup.string(), + 'upload-path': yup.string().required('You need to upload a file'), +}); + +export default function FormValidation() { + const uploadRef = useRef(null); + + const [showWarning, setShowWarning] = useState(true); + + const { + register, + handleSubmit, + control, + formState: { errors }, + trigger, + setValue, + } = useForm({ + mode: 'all', + reValidateMode: 'onChange', + defaultValues: { + name: 'John', + 'last-name': 'Muster', + address: 'John Street 14', + thresholdLimitA: 6, + thresholdLimitB: 7, + begin: '2024/05/05', + end: '2024/05/05', + comment: 'Some info', + agreed: false, + 'booking-option': '2', + 'travel-option': '3', + 'room-size': 100, + email: '', + pin: '', + 'confirm-pin': '', + upload: '', + 'upload-path': '', + }, + resolver: yupResolver(validationSchema), + }); + + useLayoutEffect(() => { + // Do instant validation after rendering + trigger(); + }, [trigger]); + + const onSubmit = (data: any) => { + console.log(data); + }; + + return ( +
+ + + + + + + + + {Array.from({ length: 3 }).map((_, option) => ( + ( + field.onChange(`${option}`)} + > + )} + /> + ))} + + + + + + m2 + + + + + + + + + + + + { + setShowWarning(detail > 5); + }} + > + + + + + + + + + {/* Implement custom form component */} + + uploadRef.current?.click()} + readonly + style={{ width: '100%' }} + {...register('upload-path')} + className={clsx({ 'ix-invalid': errors['upload-path'] })} + > + { + setValue('upload-path', file.target.value); + }} + name="upload" + /> + uploadRef.current?.click()} + > + + + + + + ( + + setValue('agreed', evt.detail)} + className={clsx({ 'ix-invalid': errors.agreed })} + > + + )} + /> + + + Submit + + +
+ ); +} diff --git a/packages/react-test-app/src/preview-examples/input-disabled.tsx b/packages/react-test-app/src/preview-examples/input-disabled.tsx index 77fec645b51..a032e52e687 100644 --- a/packages/react-test-app/src/preview-examples/input-disabled.tsx +++ b/packages/react-test-app/src/preview-examples/input-disabled.tsx @@ -7,17 +7,14 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxInput } from '@siemens/ix-react'; export default () => { return ( -
- -
+ ); }; diff --git a/packages/react-test-app/src/preview-examples/input-label.tsx b/packages/react-test-app/src/preview-examples/input-label.tsx new file mode 100644 index 00000000000..9fa48accfb6 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-label.tsx @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxInput } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-legacy-disabled.tsx b/packages/react-test-app/src/preview-examples/input-legacy-disabled.tsx new file mode 100644 index 00000000000..3e9cd2222e3 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-legacy-disabled.tsx @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => { + return ( +
+ +
+ ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-labels.tsx b/packages/react-test-app/src/preview-examples/input-legacy-labels.tsx similarity index 100% rename from packages/react-test-app/src/preview-examples/input-labels.tsx rename to packages/react-test-app/src/preview-examples/input-legacy-labels.tsx diff --git a/packages/react-test-app/src/preview-examples/input-legacy-readonly.tsx b/packages/react-test-app/src/preview-examples/input-legacy-readonly.tsx new file mode 100644 index 00000000000..d6a4e3ff497 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-legacy-readonly.tsx @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => { + return ( +
+ +
+ ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-search.tsx b/packages/react-test-app/src/preview-examples/input-legacy-search.tsx similarity index 100% rename from packages/react-test-app/src/preview-examples/input-search.tsx rename to packages/react-test-app/src/preview-examples/input-legacy-search.tsx diff --git a/packages/react-test-app/src/preview-examples/input-legacy-types.tsx b/packages/react-test-app/src/preview-examples/input-legacy-types.tsx new file mode 100644 index 00000000000..beb3269a277 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-legacy-types.tsx @@ -0,0 +1,43 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxInputGroup } from '@siemens/ix-react'; + +export default () => { + return ( +
+ + Text: + + + + + Number: + + .00 + $ + + + + Password: + + + + + Email: + + + + + Telephone: + + +
+ ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-with-icon.tsx b/packages/react-test-app/src/preview-examples/input-legacy-with-icon.tsx similarity index 100% rename from packages/react-test-app/src/preview-examples/input-with-icon.tsx rename to packages/react-test-app/src/preview-examples/input-legacy-with-icon.tsx diff --git a/packages/react-test-app/src/preview-examples/input-legacy.tsx b/packages/react-test-app/src/preview-examples/input-legacy.tsx new file mode 100644 index 00000000000..61235f1dc40 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-legacy.tsx @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => { + return ( +
+ +
+ ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-pattern.tsx b/packages/react-test-app/src/preview-examples/input-pattern.tsx new file mode 100644 index 00000000000..f78788199bf --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-pattern.tsx @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxInput } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/input-readonly.tsx b/packages/react-test-app/src/preview-examples/input-readonly.tsx index 8d260f2eb63..20b0495aead 100644 --- a/packages/react-test-app/src/preview-examples/input-readonly.tsx +++ b/packages/react-test-app/src/preview-examples/input-readonly.tsx @@ -7,17 +7,15 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxInput } from '@siemens/ix-react'; export default () => { return ( -
- -
+ ); }; diff --git a/packages/react-test-app/src/preview-examples/input-types.tsx b/packages/react-test-app/src/preview-examples/input-types.tsx index beb3269a277..857f6f00964 100644 --- a/packages/react-test-app/src/preview-examples/input-types.tsx +++ b/packages/react-test-app/src/preview-examples/input-types.tsx @@ -7,37 +7,49 @@ * LICENSE file in the root directory of this source tree. */ -import { IxInputGroup } from '@siemens/ix-react'; +import { IxInput } from '@siemens/ix-react'; export default () => { return ( -
- - Text: - - + <> +
+ +
- - Number: - - .00 - $ - +
+ +
- - Password: - - +
+ +
- - Email: - - +
+ +
- - Telephone: - - -
+
+ +
+ ); }; diff --git a/packages/react-test-app/src/preview-examples/input-validation.tsx b/packages/react-test-app/src/preview-examples/input-validation.tsx new file mode 100644 index 00000000000..b22165c981b --- /dev/null +++ b/packages/react-test-app/src/preview-examples/input-validation.tsx @@ -0,0 +1,52 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxInput } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/input.tsx b/packages/react-test-app/src/preview-examples/input.tsx index 7c96f8bb51f..783c39dcbe8 100644 --- a/packages/react-test-app/src/preview-examples/input.tsx +++ b/packages/react-test-app/src/preview-examples/input.tsx @@ -7,16 +7,8 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxInput } from '@siemens/ix-react'; export default () => { - return ( -
- -
- ); + return ; }; diff --git a/packages/react-test-app/src/preview-examples/layout-auto-custom.tsx b/packages/react-test-app/src/preview-examples/layout-auto-custom.tsx new file mode 100644 index 00000000000..77b1c804ae0 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/layout-auto-custom.tsx @@ -0,0 +1,34 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import './layout-auto.css'; + +import { IxLayoutAuto, IxTypography } from '@siemens/ix-react'; + +export default () => { + return ( + + 1 + 2 + 3 + + 4 + + 5 + 6 + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/layout-auto.css b/packages/react-test-app/src/preview-examples/layout-auto.css new file mode 100644 index 00000000000..8d3766cbc84 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/layout-auto.css @@ -0,0 +1,24 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +ix-layout-auto ix-typography { + display: flex; + padding: 0.15rem; + flex-direction: column; + justify-content: center; + align-items: center; + align-self: stretch; + border: 0.0625rem solid var(--theme-color-soft-bdr); + background: var(--theme-color-ghost); + border-radius: 0.1875rem; +} diff --git a/packages/react-test-app/src/preview-examples/layout-auto.tsx b/packages/react-test-app/src/preview-examples/layout-auto.tsx new file mode 100644 index 00000000000..05e44d80028 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/layout-auto.tsx @@ -0,0 +1,27 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import './layout-auto.css'; + +import { IxLayoutAuto, IxTypography } from '@siemens/ix-react'; + +export default () => { + return ( + + 1 + 2 + 3 + + 4 + + 5 + 6 + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/message-bar.tsx b/packages/react-test-app/src/preview-examples/message-bar.tsx index 6ff93163eb3..df1ddcc65fa 100644 --- a/packages/react-test-app/src/preview-examples/message-bar.tsx +++ b/packages/react-test-app/src/preview-examples/message-bar.tsx @@ -15,12 +15,8 @@ export default () => { return ( <>
- - Message text - - - Message text - + Message text + Message text
Message text Action diff --git a/packages/react-test-app/src/preview-examples/number-input-disabled.tsx b/packages/react-test-app/src/preview-examples/number-input-disabled.tsx new file mode 100644 index 00000000000..13190379c02 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input-disabled.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/number-input-label.tsx b/packages/react-test-app/src/preview-examples/number-input-label.tsx new file mode 100644 index 00000000000..79528c48560 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input-label.tsx @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/number-input-readonly.tsx b/packages/react-test-app/src/preview-examples/number-input-readonly.tsx new file mode 100644 index 00000000000..d6f8affe30f --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input-readonly.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/number-input-stepper-button.tsx b/packages/react-test-app/src/preview-examples/number-input-stepper-button.tsx new file mode 100644 index 00000000000..258951e2efd --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input-stepper-button.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/number-input-validation.tsx b/packages/react-test-app/src/preview-examples/number-input-validation.tsx new file mode 100644 index 00000000000..e293e6d4fd0 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input-validation.tsx @@ -0,0 +1,48 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/number-input.tsx b/packages/react-test-app/src/preview-examples/number-input.tsx new file mode 100644 index 00000000000..20deeecb703 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/number-input.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxNumberInput } from '@siemens/ix-react'; + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/pill-variants.tsx b/packages/react-test-app/src/preview-examples/pill-variants.tsx index 3a4b01c45ea..d5ebfe61a11 100644 --- a/packages/react-test-app/src/preview-examples/pill-variants.tsx +++ b/packages/react-test-app/src/preview-examples/pill-variants.tsx @@ -17,9 +17,7 @@ export default () => { - - Primary - + Primary diff --git a/packages/react-test-app/src/preview-examples/radio-disabled.tsx b/packages/react-test-app/src/preview-examples/radio-disabled.tsx new file mode 100644 index 00000000000..ca54e6866ba --- /dev/null +++ b/packages/react-test-app/src/preview-examples/radio-disabled.tsx @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxRadio } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/radio-group.tsx b/packages/react-test-app/src/preview-examples/radio-group.tsx new file mode 100644 index 00000000000..996bda34565 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/radio-group.tsx @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxRadio, IxRadioGroup } from '@siemens/ix-react'; + +export default () => { + return ( + + + + + + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/radio-validation.tsx b/packages/react-test-app/src/preview-examples/radio-validation.tsx new file mode 100644 index 00000000000..7160572aa7f --- /dev/null +++ b/packages/react-test-app/src/preview-examples/radio-validation.tsx @@ -0,0 +1,100 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxRadio, IxRadioGroup } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ + + + +
+ +
+ + + + +
+ +
+ + + + +
+ +
+ + + + +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/radio.tsx b/packages/react-test-app/src/preview-examples/radio.tsx new file mode 100644 index 00000000000..414df3f5995 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/radio.tsx @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxRadio } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/select-validation.tsx b/packages/react-test-app/src/preview-examples/select-validation.tsx new file mode 100644 index 00000000000..ec4b07d7661 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/select-validation.tsx @@ -0,0 +1,66 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxSelect, IxSelectItem } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ + + + + +
+
+ + + + +
+
+ + + + + +
+
+ + + + +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/textarea-disabled.tsx b/packages/react-test-app/src/preview-examples/textarea-disabled.tsx index bd43c78c28b..f48a51f31c5 100644 --- a/packages/react-test-app/src/preview-examples/textarea-disabled.tsx +++ b/packages/react-test-app/src/preview-examples/textarea-disabled.tsx @@ -7,12 +7,8 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxTextarea } from '@siemens/ix-react'; export default () => { - return ( - - ); + return ; }; diff --git a/packages/react-test-app/src/preview-examples/textarea-legacy-disabled.tsx b/packages/react-test-app/src/preview-examples/textarea-legacy-disabled.tsx new file mode 100644 index 00000000000..b93fcf085dc --- /dev/null +++ b/packages/react-test-app/src/preview-examples/textarea-legacy-disabled.tsx @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/textarea-legacy-readonly.tsx b/packages/react-test-app/src/preview-examples/textarea-legacy-readonly.tsx new file mode 100644 index 00000000000..8199efd0138 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/textarea-legacy-readonly.tsx @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/textarea-legacy.tsx b/packages/react-test-app/src/preview-examples/textarea-legacy.tsx new file mode 100644 index 00000000000..c2d03eb8862 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/textarea-legacy.tsx @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +export default () => { + return ; +}; diff --git a/packages/react-test-app/src/preview-examples/textarea-readonly.tsx b/packages/react-test-app/src/preview-examples/textarea-readonly.tsx index 2442ade4680..fa628a54f21 100644 --- a/packages/react-test-app/src/preview-examples/textarea-readonly.tsx +++ b/packages/react-test-app/src/preview-examples/textarea-readonly.tsx @@ -7,12 +7,8 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxTextarea } from '@siemens/ix-react'; export default () => { - return ( - - ); + return ; }; diff --git a/packages/react-test-app/src/preview-examples/textarea-rows-cols.tsx b/packages/react-test-app/src/preview-examples/textarea-rows-cols.tsx new file mode 100644 index 00000000000..69005167add --- /dev/null +++ b/packages/react-test-app/src/preview-examples/textarea-rows-cols.tsx @@ -0,0 +1,23 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxTextarea } from '@siemens/ix-react'; + +export default () => { + return ( + + ); +}; diff --git a/packages/react-test-app/src/preview-examples/textarea-validation.tsx b/packages/react-test-app/src/preview-examples/textarea-validation.tsx new file mode 100644 index 00000000000..6959e7afbe6 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/textarea-validation.tsx @@ -0,0 +1,56 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxTextarea } from '@siemens/ix-react'; + +export default () => { + return ( + <> +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + ); +}; diff --git a/packages/react-test-app/src/preview-examples/textarea.tsx b/packages/react-test-app/src/preview-examples/textarea.tsx index c2d03eb8862..d358f498153 100644 --- a/packages/react-test-app/src/preview-examples/textarea.tsx +++ b/packages/react-test-app/src/preview-examples/textarea.tsx @@ -7,8 +7,8 @@ * LICENSE file in the root directory of this source tree. */ - +import { IxTextarea } from '@siemens/ix-react'; export default () => { - return ; + return ; }; diff --git a/packages/react-test-app/src/preview-examples/validation-select.tsx b/packages/react-test-app/src/preview-examples/validation-select.tsx new file mode 100644 index 00000000000..973aefc1f67 --- /dev/null +++ b/packages/react-test-app/src/preview-examples/validation-select.tsx @@ -0,0 +1,58 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { IxButton, IxSelect, IxSelectItem } from '@siemens/ix-react'; + +import { Controller, useForm } from 'react-hook-form'; + +export default function () { + const { + control, + handleSubmit, + formState: { errors }, + } = useForm({ + mode: 'onChange', + }); + + const onSubmit = (data: any) => { + console.log(data); + }; + + return ( +
+ { + return ( + + + + + ); + }} + /> + Submit + + ); +} diff --git a/packages/react-test-app/tsconfig.json b/packages/react-test-app/tsconfig.json index 3d0a51a86e2..a7fc6fbf23d 100644 --- a/packages/react-test-app/tsconfig.json +++ b/packages/react-test-app/tsconfig.json @@ -1,20 +1,24 @@ { "compilerOptions": { - "target": "ESNext", + "target": "ES2020", "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", - "moduleResolution": "Node", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/packages/react-test-app/tsconfig.node.json b/packages/react-test-app/tsconfig.node.json index 9d31e2aed93..97ede7ee6f2 100644 --- a/packages/react-test-app/tsconfig.node.json +++ b/packages/react-test-app/tsconfig.node.json @@ -1,9 +1,11 @@ { "compilerOptions": { "composite": true, + "skipLibCheck": true, "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true }, "include": ["vite.config.ts"] } diff --git a/packages/react/src/components.ts b/packages/react/src/components.ts index fe59a3c55ec..ea3a7a4cb42 100644 --- a/packages/react/src/components.ts +++ b/packages/react/src/components.ts @@ -20,11 +20,15 @@ import { defineCustomElement as defineIxCardContent } from '@siemens/ix/componen import { defineCustomElement as defineIxCardList } from '@siemens/ix/components/ix-card-list.js'; import { defineCustomElement as defineIxCardTitle } from '@siemens/ix/components/ix-card-title.js'; import { defineCustomElement as defineIxCategoryFilter } from '@siemens/ix/components/ix-category-filter.js'; +import { defineCustomElement as defineIxCheckbox } from '@siemens/ix/components/ix-checkbox.js'; +import { defineCustomElement as defineIxCheckboxGroup } from '@siemens/ix/components/ix-checkbox-group.js'; import { defineCustomElement as defineIxChip } from '@siemens/ix/components/ix-chip.js'; import { defineCustomElement as defineIxCol } from '@siemens/ix/components/ix-col.js'; import { defineCustomElement as defineIxContent } from '@siemens/ix/components/ix-content.js'; import { defineCustomElement as defineIxContentHeader } from '@siemens/ix/components/ix-content-header.js'; +import { defineCustomElement as defineIxCustomField } from '@siemens/ix/components/ix-custom-field.js'; import { defineCustomElement as defineIxDateDropdown } from '@siemens/ix/components/ix-date-dropdown.js'; +import { defineCustomElement as defineIxDateInput } from '@siemens/ix/components/ix-date-input.js'; import { defineCustomElement as defineIxDatePicker } from '@siemens/ix/components/ix-date-picker.js'; import { defineCustomElement as defineIxDatetimePicker } from '@siemens/ix/components/ix-datetime-picker.js'; import { defineCustomElement as defineIxDivider } from '@siemens/ix/components/ix-divider.js'; @@ -38,19 +42,22 @@ import { defineCustomElement as defineIxEmptyState } from '@siemens/ix/component import { defineCustomElement as defineIxEventList } from '@siemens/ix/components/ix-event-list.js'; import { defineCustomElement as defineIxEventListItem } from '@siemens/ix/components/ix-event-list-item.js'; import { defineCustomElement as defineIxExpandingSearch } from '@siemens/ix/components/ix-expanding-search.js'; +import { defineCustomElement as defineIxFieldLabel } from '@siemens/ix/components/ix-field-label.js'; import { defineCustomElement as defineIxFilterChip } from '@siemens/ix/components/ix-filter-chip.js'; import { defineCustomElement as defineIxFlipTile } from '@siemens/ix/components/ix-flip-tile.js'; import { defineCustomElement as defineIxFlipTileContent } from '@siemens/ix/components/ix-flip-tile-content.js'; -import { defineCustomElement as defineIxFormField } from '@siemens/ix/components/ix-form-field.js'; import { defineCustomElement as defineIxGroup } from '@siemens/ix/components/ix-group.js'; import { defineCustomElement as defineIxGroupContextMenu } from '@siemens/ix/components/ix-group-context-menu.js'; import { defineCustomElement as defineIxGroupItem } from '@siemens/ix/components/ix-group-item.js'; +import { defineCustomElement as defineIxHelperText } from '@siemens/ix/components/ix-helper-text.js'; import { defineCustomElement as defineIxIconButton } from '@siemens/ix/components/ix-icon-button.js'; import { defineCustomElement as defineIxIconToggleButton } from '@siemens/ix/components/ix-icon-toggle-button.js'; +import { defineCustomElement as defineIxInput } from '@siemens/ix/components/ix-input.js'; import { defineCustomElement as defineIxInputGroup } from '@siemens/ix/components/ix-input-group.js'; import { defineCustomElement as defineIxKeyValue } from '@siemens/ix/components/ix-key-value.js'; import { defineCustomElement as defineIxKeyValueList } from '@siemens/ix/components/ix-key-value-list.js'; import { defineCustomElement as defineIxKpi } from '@siemens/ix/components/ix-kpi.js'; +import { defineCustomElement as defineIxLayoutAuto } from '@siemens/ix/components/ix-layout-auto.js'; import { defineCustomElement as defineIxLayoutGrid } from '@siemens/ix/components/ix-layout-grid.js'; import { defineCustomElement as defineIxLinkButton } from '@siemens/ix/components/ix-link-button.js'; import { defineCustomElement as defineIxMapNavigation } from '@siemens/ix/components/ix-map-navigation.js'; @@ -71,11 +78,14 @@ import { defineCustomElement as defineIxModalContent } from '@siemens/ix/compone import { defineCustomElement as defineIxModalExample } from '@siemens/ix/components/ix-modal-example.js'; import { defineCustomElement as defineIxModalFooter } from '@siemens/ix/components/ix-modal-footer.js'; import { defineCustomElement as defineIxModalHeader } from '@siemens/ix/components/ix-modal-header.js'; +import { defineCustomElement as defineIxNumberInput } from '@siemens/ix/components/ix-number-input.js'; import { defineCustomElement as defineIxPagination } from '@siemens/ix/components/ix-pagination.js'; import { defineCustomElement as defineIxPane } from '@siemens/ix/components/ix-pane.js'; import { defineCustomElement as defineIxPaneLayout } from '@siemens/ix/components/ix-pane-layout.js'; import { defineCustomElement as defineIxPill } from '@siemens/ix/components/ix-pill.js'; import { defineCustomElement as defineIxPushCard } from '@siemens/ix/components/ix-push-card.js'; +import { defineCustomElement as defineIxRadio } from '@siemens/ix/components/ix-radio.js'; +import { defineCustomElement as defineIxRadioGroup } from '@siemens/ix/components/ix-radio-group.js'; import { defineCustomElement as defineIxRow } from '@siemens/ix/components/ix-row.js'; import { defineCustomElement as defineIxSelect } from '@siemens/ix/components/ix-select.js'; import { defineCustomElement as defineIxSelectItem } from '@siemens/ix/components/ix-select-item.js'; @@ -85,6 +95,7 @@ import { defineCustomElement as defineIxSplitButton } from '@siemens/ix/componen import { defineCustomElement as defineIxSplitButtonItem } from '@siemens/ix/components/ix-split-button-item.js'; import { defineCustomElement as defineIxTabItem } from '@siemens/ix/components/ix-tab-item.js'; import { defineCustomElement as defineIxTabs } from '@siemens/ix/components/ix-tabs.js'; +import { defineCustomElement as defineIxTextarea } from '@siemens/ix/components/ix-textarea.js'; import { defineCustomElement as defineIxTile } from '@siemens/ix/components/ix-tile.js'; import { defineCustomElement as defineIxTimePicker } from '@siemens/ix/components/ix-time-picker.js'; import { defineCustomElement as defineIxToast } from '@siemens/ix/components/ix-toast.js'; @@ -113,11 +124,15 @@ export const IxCardContent = /*@__PURE__*/createReactComponent('ix-card-list', undefined, undefined, defineIxCardList); export const IxCardTitle = /*@__PURE__*/createReactComponent('ix-card-title', undefined, undefined, defineIxCardTitle); export const IxCategoryFilter = /*@__PURE__*/createReactComponent('ix-category-filter', undefined, undefined, defineIxCategoryFilter); +export const IxCheckbox = /*@__PURE__*/createReactComponent('ix-checkbox', undefined, undefined, defineIxCheckbox); +export const IxCheckboxGroup = /*@__PURE__*/createReactComponent('ix-checkbox-group', undefined, undefined, defineIxCheckboxGroup); export const IxChip = /*@__PURE__*/createReactComponent('ix-chip', undefined, undefined, defineIxChip); export const IxCol = /*@__PURE__*/createReactComponent('ix-col', undefined, undefined, defineIxCol); export const IxContent = /*@__PURE__*/createReactComponent('ix-content', undefined, undefined, defineIxContent); export const IxContentHeader = /*@__PURE__*/createReactComponent('ix-content-header', undefined, undefined, defineIxContentHeader); +export const IxCustomField = /*@__PURE__*/createReactComponent('ix-custom-field', undefined, undefined, defineIxCustomField); export const IxDateDropdown = /*@__PURE__*/createReactComponent('ix-date-dropdown', undefined, undefined, defineIxDateDropdown); +export const IxDateInput = /*@__PURE__*/createReactComponent('ix-date-input', undefined, undefined, defineIxDateInput); export const IxDatePicker = /*@__PURE__*/createReactComponent('ix-date-picker', undefined, undefined, defineIxDatePicker); export const IxDatetimePicker = /*@__PURE__*/createReactComponent('ix-datetime-picker', undefined, undefined, defineIxDatetimePicker); export const IxDivider = /*@__PURE__*/createReactComponent('ix-divider', undefined, undefined, defineIxDivider); @@ -131,19 +146,22 @@ export const IxEmptyState = /*@__PURE__*/createReactComponent('ix-event-list', undefined, undefined, defineIxEventList); export const IxEventListItem = /*@__PURE__*/createReactComponent('ix-event-list-item', undefined, undefined, defineIxEventListItem); export const IxExpandingSearch = /*@__PURE__*/createReactComponent('ix-expanding-search', undefined, undefined, defineIxExpandingSearch); +export const IxFieldLabel = /*@__PURE__*/createReactComponent('ix-field-label', undefined, undefined, defineIxFieldLabel); export const IxFilterChip = /*@__PURE__*/createReactComponent('ix-filter-chip', undefined, undefined, defineIxFilterChip); export const IxFlipTile = /*@__PURE__*/createReactComponent('ix-flip-tile', undefined, undefined, defineIxFlipTile); export const IxFlipTileContent = /*@__PURE__*/createReactComponent('ix-flip-tile-content', undefined, undefined, defineIxFlipTileContent); -export const IxFormField = /*@__PURE__*/createReactComponent('ix-form-field', undefined, undefined, defineIxFormField); export const IxGroup = /*@__PURE__*/createReactComponent('ix-group', undefined, undefined, defineIxGroup); export const IxGroupContextMenu = /*@__PURE__*/createReactComponent('ix-group-context-menu', undefined, undefined, defineIxGroupContextMenu); export const IxGroupItem = /*@__PURE__*/createReactComponent('ix-group-item', undefined, undefined, defineIxGroupItem); +export const IxHelperText = /*@__PURE__*/createReactComponent('ix-helper-text', undefined, undefined, defineIxHelperText); export const IxIconButton = /*@__PURE__*/createReactComponent('ix-icon-button', undefined, undefined, defineIxIconButton); export const IxIconToggleButton = /*@__PURE__*/createReactComponent('ix-icon-toggle-button', undefined, undefined, defineIxIconToggleButton); +export const IxInput = /*@__PURE__*/createReactComponent('ix-input', undefined, undefined, defineIxInput); export const IxInputGroup = /*@__PURE__*/createReactComponent('ix-input-group', undefined, undefined, defineIxInputGroup); export const IxKeyValue = /*@__PURE__*/createReactComponent('ix-key-value', undefined, undefined, defineIxKeyValue); export const IxKeyValueList = /*@__PURE__*/createReactComponent('ix-key-value-list', undefined, undefined, defineIxKeyValueList); export const IxKpi = /*@__PURE__*/createReactComponent('ix-kpi', undefined, undefined, defineIxKpi); +export const IxLayoutAuto = /*@__PURE__*/createReactComponent('ix-layout-auto', undefined, undefined, defineIxLayoutAuto); export const IxLayoutGrid = /*@__PURE__*/createReactComponent('ix-layout-grid', undefined, undefined, defineIxLayoutGrid); export const IxLinkButton = /*@__PURE__*/createReactComponent('ix-link-button', undefined, undefined, defineIxLinkButton); export const IxMapNavigation = /*@__PURE__*/createReactComponent('ix-map-navigation', undefined, undefined, defineIxMapNavigation); @@ -164,11 +182,14 @@ export const IxModalContent = /*@__PURE__*/createReactComponent('ix-modal-example', undefined, undefined, defineIxModalExample); export const IxModalFooter = /*@__PURE__*/createReactComponent('ix-modal-footer', undefined, undefined, defineIxModalFooter); export const IxModalHeader = /*@__PURE__*/createReactComponent('ix-modal-header', undefined, undefined, defineIxModalHeader); +export const IxNumberInput = /*@__PURE__*/createReactComponent('ix-number-input', undefined, undefined, defineIxNumberInput); export const IxPagination = /*@__PURE__*/createReactComponent('ix-pagination', undefined, undefined, defineIxPagination); export const IxPane = /*@__PURE__*/createReactComponent('ix-pane', undefined, undefined, defineIxPane); export const IxPaneLayout = /*@__PURE__*/createReactComponent('ix-pane-layout', undefined, undefined, defineIxPaneLayout); export const IxPill = /*@__PURE__*/createReactComponent('ix-pill', undefined, undefined, defineIxPill); export const IxPushCard = /*@__PURE__*/createReactComponent('ix-push-card', undefined, undefined, defineIxPushCard); +export const IxRadio = /*@__PURE__*/createReactComponent('ix-radio', undefined, undefined, defineIxRadio); +export const IxRadioGroup = /*@__PURE__*/createReactComponent('ix-radio-group', undefined, undefined, defineIxRadioGroup); export const IxRow = /*@__PURE__*/createReactComponent('ix-row', undefined, undefined, defineIxRow); export const IxSelect = /*@__PURE__*/createReactComponent('ix-select', undefined, undefined, defineIxSelect); export const IxSelectItem = /*@__PURE__*/createReactComponent('ix-select-item', undefined, undefined, defineIxSelectItem); @@ -178,6 +199,7 @@ export const IxSplitButton = /*@__PURE__*/createReactComponent('ix-split-button-item', undefined, undefined, defineIxSplitButtonItem); export const IxTabItem = /*@__PURE__*/createReactComponent('ix-tab-item', undefined, undefined, defineIxTabItem); export const IxTabs = /*@__PURE__*/createReactComponent('ix-tabs', undefined, undefined, defineIxTabs); +export const IxTextarea = /*@__PURE__*/createReactComponent('ix-textarea', undefined, undefined, defineIxTextarea); export const IxTile = /*@__PURE__*/createReactComponent('ix-tile', undefined, undefined, defineIxTile); export const IxTimePicker = /*@__PURE__*/createReactComponent('ix-time-picker', undefined, undefined, defineIxTimePicker); export const IxToast = /*@__PURE__*/createReactComponent('ix-toast', undefined, undefined, defineIxToast); diff --git a/packages/react/src/react-component-lib/utils/attachProps.ts b/packages/react/src/react-component-lib/utils/attachProps.ts index 9a1825f54f3..075b3a39911 100644 --- a/packages/react/src/react-component-lib/utils/attachProps.ts +++ b/packages/react/src/react-component-lib/utils/attachProps.ts @@ -5,9 +5,7 @@ export const attachProps = (node: HTMLElement, newProps: any, oldProps: any = {} if (node instanceof Element) { // add any classes in className to the class list const className = getClassName(node.classList, newProps, oldProps); - if (className !== '') { - node.className = className; - } + node.className = className; Object.keys(newProps).forEach((name) => { if ( diff --git a/packages/vue-test-app/index.html b/packages/vue-test-app/index.html index 1b2b76ec5e9..66468e48dc5 100644 --- a/packages/vue-test-app/index.html +++ b/packages/vue-test-app/index.html @@ -3,6 +3,7 @@ SPDX-License-Identifier: MIT --> + diff --git a/packages/vue-test-app/package.json b/packages/vue-test-app/package.json index 86416f3f46c..9bd9ff5d505 100644 --- a/packages/vue-test-app/package.json +++ b/packages/vue-test-app/package.json @@ -15,6 +15,8 @@ "@siemens/ix-echarts": "workspace:*", "@siemens/ix-icons": "^2.0.0", "@siemens/ix-vue": "workspace:*", + "@vuelidate/core": "^2.0.3", + "@vuelidate/validators": "^2.0.4", "ag-grid-community": "^30.2.0", "ag-grid-vue3": "^30.1.0", "echarts": "^5.4.1", @@ -22,7 +24,6 @@ "html-test-app": "workspace:*", "vue": "^3.2.45", "vue-echarts": "~6.6.9", - "vue-hooks-form": "^0.3.0", "web-vitals": "^2.1.4" }, "devDependencies": { diff --git a/packages/vue-test-app/src/Root.vue b/packages/vue-test-app/src/Root.vue index e4ba01b504a..00340e0c484 100644 --- a/packages/vue-test-app/src/Root.vue +++ b/packages/vue-test-app/src/Root.vue @@ -18,23 +18,17 @@ import ApplicationAppSwitch from './preview-examples/application-app-switch.vue' import ApplicationBreakpoints from './preview-examples/application-breakpoints.vue'; import ApplicationHeader from './preview-examples/application-header.vue'; import Application from './preview-examples/application.vue'; +import AvatarImage from './preview-examples/avatar-image.vue'; +import AvatarInitials from './preview-examples/avatar-initials.vue'; +import Avatar from './preview-examples/avatar.vue'; import BasicNavigationWithoutHeader from './preview-examples/basic-navigation-without-header.vue'; import BasicNavigation from './preview-examples/basic-navigation.vue'; +import BlindHeaderActions from './preview-examples/blind-header-actions.vue'; +import BlindVariants from './preview-examples/blind-variants.vue'; import Blind from './preview-examples/blind.vue'; import BreadcrumbNextItems from './preview-examples/breadcrumb-next-items.vue'; import BreadcrumbTruncate from './preview-examples/breadcrumb-truncate.vue'; import Breadcrumb from './preview-examples/breadcrumb.vue'; -import ButtonGroup from './preview-examples/button-group.vue'; -import ButtonWithIcon from './preview-examples/button-with-icon.vue'; -import Buttons from './preview-examples/buttons.vue'; -import CheckboxIndeterminate from './preview-examples/checkbox-indeterminate.vue'; -import Checkbox from './preview-examples/checkbox.vue'; -import Chip from './preview-examples/chip.vue'; -import AvatarImage from './preview-examples/avatar-image.vue'; -import AvatarInitials from './preview-examples/avatar-initials.vue'; -import Avatar from './preview-examples/avatar.vue'; -import BlindHeaderActions from './preview-examples/blind-header-actions.vue'; -import BlindVariants from './preview-examples/blind-variants.vue'; import ButtonDangerGhost from './preview-examples/button-danger-ghost.vue'; import ButtonDangerOutline from './preview-examples/button-danger-outline.vue'; import ButtonDanger from './preview-examples/button-danger.vue'; @@ -42,22 +36,31 @@ import ButtonGhost from './preview-examples/button-ghost.vue'; import ButtonGreyGhost from './preview-examples/button-grey-ghost.vue'; import ButtonGreySecondary from './preview-examples/button-grey-secondary.vue'; import ButtonGrey from './preview-examples/button-grey.vue'; +import ButtonGroup from './preview-examples/button-group.vue'; import ButtonLoading from './preview-examples/button-loading.vue'; import ButtonSecondary from './preview-examples/button-secondary.vue'; import ButtonTextIcon from './preview-examples/button-text-icon.vue'; -import Card from './preview-examples/card.vue'; +import ButtonWithIcon from './preview-examples/button-with-icon.vue'; +import Buttons from './preview-examples/buttons.vue'; import CardList from './preview-examples/card-list.vue'; +import Card from './preview-examples/card.vue'; +import CategoryFilterSuggestions from './preview-examples/category-filter-suggestions.vue'; import CategoryFilter from './preview-examples/category-filter.vue'; +import CheckboxIndeterminate from './preview-examples/checkbox-indeterminate.vue'; +import Checkbox from './preview-examples/checkbox.vue'; +import Chip from './preview-examples/chip.vue'; import ContentHeaderNoBack from './preview-examples/content-header-no-back.vue'; import ContentHeader from './preview-examples/content-header.vue'; import Content from './preview-examples/content.vue'; -import DateDropdown from './preview-examples/date-dropdown.vue'; +import CustomFieldValidation from './preview-examples/custom-field-validation.vue'; +import CustomField from './preview-examples/custom-field.vue'; import DateDropdownUserRange from './preview-examples/date-dropdown-user-range.vue'; +import DateDropdown from './preview-examples/date-dropdown.vue'; +import DatepickerLocale from './preview-examples/datepicker-locale.vue'; import DatepickerRange from './preview-examples/datepicker-range.vue'; -import Divider from './preview-examples/divider.vue'; import Datepicker from './preview-examples/datepicker.vue'; -import DatepickerLocale from './preview-examples/datepicker-locale.vue'; import Datetimepicker from './preview-examples/datetimepicker.vue'; +import Divider from './preview-examples/divider.vue'; import DrawerFullHeight from './preview-examples/drawer-full-height.vue'; import Drawer from './preview-examples/drawer.vue'; import DropdownButtonIcon from './preview-examples/dropdown-button-icon.vue'; @@ -66,40 +69,61 @@ import DropdownIcon from './preview-examples/dropdown-icon.vue'; import DropdownQuickActions from './preview-examples/dropdown-quick-actions.vue'; import DropdownSubmenu from './preview-examples/dropdown-submenu.vue'; import Dropdown from './preview-examples/dropdown.vue'; -import Echarts from './preview-examples/echarts.vue'; -import EchartsGauge from './preview-examples/echarts-gauge.vue'; import EchartsBarHorizontalStacked from './preview-examples/echarts-bar-horizontal-stacked.vue'; import EchartsBarSimple from './preview-examples/echarts-bar-simple.vue'; import EchartsCircle from './preview-examples/echarts-circle.vue'; import EchartsEmptyState from './preview-examples/echarts-empty-state.vue'; +import EchartsGauge from './preview-examples/echarts-gauge.vue'; import EchartsLineAdvanced from './preview-examples/echarts-line-advanced.vue'; import EchartsLineMultipleYAxis from './preview-examples/echarts-line-multiple-y-axis.vue'; import EchartsLineSimple from './preview-examples/echarts-line-simple.vue'; import EchartsPie from './preview-examples/echarts-pie.vue'; -import EchartsProgressCircle from './preview-examples/echarts-progress-circle.vue'; import EchartsProgressArc from './preview-examples/echarts-progress-arc.vue'; +import EchartsProgressCircle from './preview-examples/echarts-progress-circle.vue'; import EchartsSpecial3d from './preview-examples/echarts-special-3d.vue'; import EchartsSpecialToolbox from './preview-examples/echarts-special-toolbox.vue'; import EchartsSpecialZoom from './preview-examples/echarts-special-zoom.vue'; -import MenuCategory from './preview-examples/menu-category.vue'; -import Slider from './preview-examples/slider.vue'; -import SliderTrace from './preview-examples/slider-trace.vue'; -import SliderMarker from './preview-examples/slider-marker.vue'; -import SliderError from './preview-examples/slider-error.vue'; +import Echarts from './preview-examples/echarts.vue'; import EmptyStateCompactBreak from './preview-examples/empty-state-compact-break.vue'; +import EmptyStateCompact from './preview-examples/empty-state-compact.vue'; import EmptyState from './preview-examples/empty-state.vue'; import EventListCompact from './preview-examples/event-list-compact.vue'; +import EventListCustomItemHeight from './preview-examples/event-list-custom-item-height.vue'; import EventListSelected from './preview-examples/event-list-selected.vue'; import EventList from './preview-examples/event-list.vue'; import ExpandingSearch from './preview-examples/expanding-search.vue'; import FlipTile from './preview-examples/flip-tile.vue'; +import FormCheckboxDisabled from './preview-examples/form-checkbox-disabled.vue'; +import FormCheckboxGroupIndeterminate from './preview-examples/form-checkbox-group-indeterminate.vue'; +import FormCheckboxGroup from './preview-examples/form-checkbox-group.vue'; +import FormCheckboxValidation from './preview-examples/form-checkbox-validation.vue'; +import FormCheckbox from './preview-examples/form-checkbox.vue'; +import FormValidation from './preview-examples/form-validation.vue'; +import GridPadding from './preview-examples/grid-padding.vue'; +import GridSize from './preview-examples/grid-size.vue'; +import Grid from './preview-examples/grid.vue'; import GroupContextMenu from './preview-examples/group-context-menu.vue'; import GroupCustomEntry from './preview-examples/group-custom-entry.vue'; import GroupHeaderSuppressed from './preview-examples/group-header-suppressed.vue'; import Group from './preview-examples/group.vue'; +import IconToggleButtonPrimaryGhost from './preview-examples/icon-toggle-button-primary-ghost.vue'; +import IconToggleButtonPrimaryOutline from './preview-examples/icon-toggle-button-primary-outline.vue'; +import IconToggleButtonSecondaryGhost from './preview-examples/icon-toggle-button-secondary-ghost.vue'; +import IconToggleButtonSecondaryOutline from './preview-examples/icon-toggle-button-secondary-outline.vue'; +import IconToggleButtonSecondary from './preview-examples/icon-toggle-button-secondary.vue'; import InputDisabled from './preview-examples/input-disabled.vue'; +import InputLabel from './preview-examples/input-label.vue'; +import InputLegacyDisabled from './preview-examples/input-legacy-disabled.vue'; +import InputLegacyLabels from './preview-examples/input-legacy-labels.vue'; +import InputLegacyReadonly from './preview-examples/input-legacy-readonly.vue'; +import InputLegacySearch from './preview-examples/input-legacy-search.vue'; +import InputLegacyTypes from './preview-examples/input-legacy-types.vue'; +import InputLegacyWithIcon from './preview-examples/input-legacy-with-icon.vue'; +import InputLegacy from './preview-examples/input-legacy.vue'; +import InputPattern from './preview-examples/input-pattern.vue'; import InputReadonly from './preview-examples/input-readonly.vue'; -import InputWithIcon from './preview-examples/input-with-icon.vue'; +import InputTypes from './preview-examples/input-types.vue'; +import InputValidation from './preview-examples/input-validation.vue'; import Input from './preview-examples/input.vue'; import KeyValueListStriped from './preview-examples/key-value-list-striped.vue'; import KeyValueListWithCustomValue from './preview-examples/key-value-list-with-custom-value.vue'; @@ -109,65 +133,67 @@ import KeyValueWithCustomValue from './preview-examples/key-value-with-custom-va import KeyValueWithIcon from './preview-examples/key-value-with-icon.vue'; import KeyValueWithLabelLeft from './preview-examples/key-value-with-label-left.vue'; import KeyValue from './preview-examples/key-value.vue'; +import Kpi from './preview-examples/kpi.vue'; +import LayoutAutoCustom from './preview-examples/layout-auto-custom.vue'; +import LayoutAuto from './preview-examples/layout-auto.vue'; +import LinkButtonDisabled from './preview-examples/link-button-disabled.vue'; +import LinkButton from './preview-examples/link-button.vue'; +import Loading from './preview-examples/loading.vue'; import MapNavigationOverlay from './preview-examples/map-navigation-overlay.vue'; import MapNavigation from './preview-examples/map-navigation.vue'; -import Pill from './preview-examples/pill.vue'; +import MenuCategory from './preview-examples/menu-category.vue'; +import MenuWithBottomTabs from './preview-examples/menu-with-bottom-tabs.vue'; +import MessageBar from './preview-examples/message-bar.vue'; +import Message from './preview-examples/message.vue'; +import ModalSizes from './preview-examples/modal-sizes.vue'; +import ModalExample from './preview-examples/modal.vue'; +import NumberInputDisabled from './preview-examples/number-input-disabled.vue'; +import NumberInputLabel from './preview-examples/number-input-label.vue'; +import NumberInputReadOnly from './preview-examples/number-input-readonly.vue'; +import NumberInputStepperButton from './preview-examples/number-input-stepper-button.vue'; +import NumberInput from './preview-examples/number-input.vue'; +import PaginationAdvanced from './preview-examples/pagination-advanced.vue'; +import Pagination from './preview-examples/pagination.vue'; +import PaneLayout from './preview-examples/pane-layout.vue'; +import Pane from './preview-examples/pane.vue'; import PillVariants from './preview-examples/pill-variants.vue'; +import Pill from './preview-examples/pill.vue'; import PopoverNews from './preview-examples/popover-news.vue'; import PushCard from './preview-examples/push-card.vue'; import RadioButton from './preview-examples/radio-button.vue'; +import RadioDisabled from './preview-examples/radio-disabled.vue'; +import RadioGroup from './preview-examples/radio-group.vue'; +import RadioValidation from './preview-examples/radio-validation.vue'; +import Radio from './preview-examples/radio.vue'; import SelectEditable from './preview-examples/select-editable.vue'; import SelectMultiple from './preview-examples/select-multiple.vue'; +import SelectValidation from './preview-examples/select-validation.vue'; import Select from './preview-examples/select.vue'; import Settings from './preview-examples/settings.vue'; +import SliderError from './preview-examples/slider-error.vue'; +import SliderMarker from './preview-examples/slider-marker.vue'; +import SliderTrace from './preview-examples/slider-trace.vue'; +import Slider from './preview-examples/slider.vue'; import SpinnerLarge from './preview-examples/spinner-large.vue'; import Spinner from './preview-examples/spinner.vue'; +import SplitButtonIcons from './preview-examples/split-button-icons.vue'; +import SplitButton from './preview-examples/split-button.vue'; +import TabsRounded from './preview-examples/tabs-rounded.vue'; import Tabs from './preview-examples/tabs.vue'; -import TextareaDisabled from './preview-examples/textarea-disabled.vue'; -import TextareaReadonly from './preview-examples/textarea-readonly.vue'; -import Textarea from './preview-examples/textarea.vue'; +import TextareaFieldDisabled from './preview-examples/textarea-disabled.vue'; +import TextareaLegacyDisabled from './preview-examples/textarea-legacy-disabled.vue'; +import TextareaLegacyReadonly from './preview-examples/textarea-legacy-readonly.vue'; +import TextareaLegacy from './preview-examples/textarea-legacy.vue'; +import TextareaFieldReadonly from './preview-examples/textarea-readonly.vue'; +import TextareaFieldRowsCols from './preview-examples/textarea-rows-cols.vue'; +import TextareaFieldValidation from './preview-examples/textarea-validation.vue'; +import TextareaField from './preview-examples/textarea.vue'; +import ThemeSwitcher from './preview-examples/theme-switcher.vue'; import Tile from './preview-examples/tile.vue'; import Timepicker from './preview-examples/timepicker.vue'; import ToastCustom from './preview-examples/toast-custom.vue'; import ToastPosition from './preview-examples/toast-position.vue'; import Toast from './preview-examples/toast.vue'; -import ToggleCustomLabel from './preview-examples/toggle-custom-label.vue'; -import ToggleDisabled from './preview-examples/toggle-disabled.vue'; -import Toggle from './preview-examples/toggle.vue'; -import Tooltip from './preview-examples/tooltip.vue'; -import TreeCustom from './preview-examples/tree-custom.vue'; -import Tree from './preview-examples/tree.vue'; -import WorkflowVertical from './preview-examples/workflow-vertical.vue'; -import Workflow from './preview-examples/workflow.vue'; -import Grid from './preview-examples/grid.vue'; -import GridSize from './preview-examples/grid-size.vue'; -import GridPadding from './preview-examples/grid-padding.vue'; -import EventListCustomItemHeight from './preview-examples/event-list-custom-item-height.vue'; -import IconToggleButtonPrimaryGhost from './preview-examples/icon-toggle-button-primary-ghost.vue'; -import IconToggleButtonPrimaryOutline from './preview-examples/icon-toggle-button-primary-outline.vue'; -import IconToggleButtonSecondaryGhost from './preview-examples/icon-toggle-button-secondary-ghost.vue'; -import IconToggleButtonSecondaryOutline from './preview-examples/icon-toggle-button-secondary-outline.vue'; -import IconToggleButtonSecondary from './preview-examples/icon-toggle-button-secondary.vue'; -import InputLabels from './preview-examples/input-labels.vue'; -import InputSearch from './preview-examples/input-search.vue'; -import InputTypes from './preview-examples/input-types.vue'; -import Kpi from './preview-examples/kpi.vue'; -import LinkButtonDisabled from './preview-examples/link-button-disabled.vue'; -import LinkButton from './preview-examples/link-button.vue'; -import Loading from './preview-examples/loading.vue'; -import MenuWithBottomTabs from './preview-examples/menu-with-bottom-tabs.vue'; -import ModalSizes from './preview-examples/modal-sizes.vue'; -import Modal from './preview-examples/modal.vue'; -import Message from './preview-examples/message.vue'; -import MessageBar from './preview-examples/message-bar.vue'; -import PaginationAdvanced from './preview-examples/pagination-advanced.vue'; -import Pagination from './preview-examples/pagination.vue'; -import Pane from './preview-examples/pane.vue'; -import PaneLayout from './preview-examples/pane-layout.vue'; -import SplitButtonIcons from './preview-examples/split-button-icons.vue'; -import SplitButton from './preview-examples/split-button.vue'; -import TabsRounded from './preview-examples/tabs-rounded.vue'; -import ThemeSwitcher from './preview-examples/theme-switcher.vue'; import ToggleButtonPrimaryGhost from './preview-examples/toggle-button-primary-ghost.vue'; import ToggleButtonPrimaryOutline from './preview-examples/toggle-button-primary-outline.vue'; import ToggleButtonPrimary from './preview-examples/toggle-button-primary.vue'; @@ -175,13 +201,22 @@ import ToggleButtonSecondaryGhost from './preview-examples/toggle-button-seconda import ToggleButtonSecondaryOutline from './preview-examples/toggle-button-secondary-outline.vue'; import ToggleButtonSecondary from './preview-examples/toggle-button-secondary.vue'; import ToggleChecked from './preview-examples/toggle-checked.vue'; +import ToggleCustomLabel from './preview-examples/toggle-custom-label.vue'; +import ToggleDisabled from './preview-examples/toggle-disabled.vue'; import ToggleIndeterminate from './preview-examples/toggle-indeterminate.vue'; +import Toggle from './preview-examples/toggle.vue'; +import Tooltip from './preview-examples/tooltip.vue'; +import TreeCustom from './preview-examples/tree-custom.vue'; +import Tree from './preview-examples/tree.vue'; import Upload from './preview-examples/upload.vue'; +import ValidationSelect from './preview-examples/validation-select.vue'; import Validation from './preview-examples/validation.vue'; import VerticalTabsWithAvatar from './preview-examples/vertical-tabs-with-avatar.vue'; import VerticalTabs from './preview-examples/vertical-tabs.vue'; -import CategoryFilterSuggestions from './preview-examples/category-filter-suggestions.vue'; -import EmptyStateCompact from './preview-examples/empty-state-compact.vue'; +import WorkflowVertical from './preview-examples/workflow-vertical.vue'; +import Workflow from './preview-examples/workflow.vue'; +import FormLayoutAuto from './preview-examples/form-layout-auto.vue'; +import FormLayoutGrid from './preview-examples/form-layout-grid.vue'; const routes: any = { '/': App, @@ -219,8 +254,11 @@ const routes: any = { '/preview/category-filter-suggestions.vue': CategoryFilterSuggestions, '/preview/category-filter': CategoryFilter, '/preview/checkbox-indeterminate': CheckboxIndeterminate, + '/preview/form-checkbox-group-indeterminate': FormCheckboxGroupIndeterminate, '/preview/checkbox': Checkbox, '/preview/chip': Chip, + '/preview/custom-field': CustomField, + '/preview/custom-field-validation': CustomFieldValidation, '/preview/date-dropdown': DateDropdown, '/preview/date-dropdown-user-range': DateDropdownUserRange, '/preview/content-header-no-back': ContentHeaderNoBack, @@ -262,26 +300,92 @@ const routes: any = { '/preview/event-list': EventList, '/preview/expanding-search': ExpandingSearch, '/preview/flip-tile': FlipTile, + '/preview/form-checkbox': FormCheckbox, + '/preview/form-checkbox-disabled': FormCheckboxDisabled, + '/preview/form-checkbox-group': FormCheckboxGroup, + '/preview/form-checkbox-validation': FormCheckboxValidation, + '/preview/group': Group, '/preview/grid-padding': GridPadding, '/preview/grid-size': GridSize, '/preview/grid': Grid, '/preview/group-context-menu': GroupContextMenu, '/preview/group-custom-entry': GroupCustomEntry, '/preview/group-header-suppressed': GroupHeaderSuppressed, - '/preview/group': Group, '/preview/icon-toggle-button-primary-ghost': IconToggleButtonPrimaryGhost, '/preview/icon-toggle-button-primary-outline': IconToggleButtonPrimaryOutline, '/preview/icon-toggle-button-secondary-ghost': IconToggleButtonSecondaryGhost, '/preview/icon-toggle-button-secondary-outline': IconToggleButtonSecondaryOutline, '/preview/icon-toggle-button-secondary': IconToggleButtonSecondary, + '/preview/input-legacy-disabled': InputLegacyDisabled, + '/preview/input-legacy-labels': InputLegacyLabels, + '/preview/input-legacy-readonly': InputLegacyReadonly, + '/preview/input-legacy-search': InputLegacySearch, + '/preview/input-legacy-types': InputLegacyTypes, + '/preview/input-legacy-with-icon': InputLegacyWithIcon, + '/preview/message-bar': MessageBar, + '/preview/pill': Pill, + '/preview/pill-variants': PillVariants, + '/preview/radio-button': RadioButton, + '/preview/radio': Radio, + '/preview/radio-disabled': RadioDisabled, + '/preview/radio-group': RadioGroup, + '/preview/radio-validation': RadioValidation, + '/preview/select': Select, + '/preview/select-editable': SelectEditable, + '/preview/select-multiple': SelectMultiple, + '/preview/select-validation': SelectValidation, + '/preview/pane': Pane, + '/preview/pane-layout': PaneLayout, + '/preview/spinner': Spinner, + '/preview/spinner-large': SpinnerLarge, + '/preview/split-button': SplitButton, + '/preview/split-button-icons': SplitButtonIcons, + '/preview/tabs': Tabs, + '/preview/textarea-legacy': TextareaLegacy, + '/preview/textarea-legacy-disabled': TextareaLegacyDisabled, + '/preview/textarea-legacy-readonly': TextareaLegacyReadonly, + '/preview/textarea': TextareaField, + '/preview/textarea-readonly': TextareaFieldReadonly, + '/preview/textarea-disabled': TextareaFieldDisabled, + '/preview/textarea-rows-cols': TextareaFieldRowsCols, + '/preview/textarea-validation': TextareaFieldValidation, + '/preview/input': Input, '/preview/input-disabled': InputDisabled, - '/preview/input-labels': InputLabels, + '/preview/input-label': InputLabel, + '/preview/input-pattern': InputPattern, '/preview/input-readonly': InputReadonly, - '/preview/input-search': InputSearch, '/preview/input-types': InputTypes, - '/preview/input-with-icon': InputWithIcon, - '/preview/input': Input, + '/preview/input-validation': InputValidation, + '/preview/tile': Tile, + '/preview/timepicker': Timepicker, + '/preview/toast': Toast, + '/preview/toast-custom': ToastCustom, + '/preview/toast-position': ToastPosition, + '/preview/toggle': Toggle, + '/preview/toggle-disabled': ToggleDisabled, + '/preview/toggle-custom-toggle': ToggleCustomLabel, + '/preview/tree': Tree, + '/preview/tree-custom': TreeCustom, + '/preview/popover-news': PopoverNews, + '/preview/settings': Settings, + '/preview/kpi': Kpi, + '/preview/modal': ModalExample, + '/preview/number-input': NumberInput, + '/preview/number-input-disabled': NumberInputDisabled, + '/preview/number-input-label': NumberInputLabel, + '/preview/number-input-readonly': NumberInputReadOnly, + '/preview/number-input-stepper-button': NumberInputStepperButton, + '/preview/workflow': Workflow, + '/preview/workflow-vertical': WorkflowVertical, + '/preview/map-navigation': MapNavigation, + '/preview/map-navigation-overlay': MapNavigationOverlay, + '/preview/tooltip': Tooltip, + '/preview/push-card': PushCard, + '/preview/page-header': ContentHeader, + '/preview/page-header-no-back': ContentHeaderNoBack, + '/preview/key-value': KeyValue, + '/preview/input-legacy': InputLegacy, '/preview/key-value-list-striped': KeyValueListStriped, '/preview/key-value-list-with-custom-value': KeyValueListWithCustomValue, '/preview/key-value-list-with-icon': KeyValueListWithIcon, @@ -289,51 +393,25 @@ const routes: any = { '/preview/key-value-with-custom-value': KeyValueWithCustomValue, '/preview/key-value-with-icon': KeyValueWithIcon, '/preview/key-value-with-label-left': KeyValueWithLabelLeft, - '/preview/key-value': KeyValue, - '/preview/kpi': Kpi, '/preview/link-button-disabled': LinkButtonDisabled, '/preview/link-button': LinkButton, '/preview/loading': Loading, - '/preview/map-navigation-overlay': MapNavigationOverlay, - '/preview/map-navigation': MapNavigation, '/preview/menu-category': MenuCategory, '/preview/menu-with-bottom-tabs': MenuWithBottomTabs, '/preview/message': Message, - '/preview/message-bar': MessageBar, '/preview/modal-sizes': ModalSizes, - '/preview/modal': Modal, '/preview/pagination-advanced': PaginationAdvanced, '/preview/pagination': Pagination, - '/preview/pane': Pane, - '/preview/pane-layout': PaneLayout, - '/preview/pill': Pill, - '/preview/pill-variants': PillVariants, - '/preview/popover-news': PopoverNews, - '/preview/push-card': PushCard, - '/preview/radio-button': RadioButton, - '/preview/select-editable': SelectEditable, - '/preview/select-multiple': SelectMultiple, - '/preview/select': Select, - '/preview/settings': Settings, '/preview/slider-error': SliderError, + '/preview/validation-select': ValidationSelect, + '/preview/form-validation': FormValidation, + '/preview/layout-auto': LayoutAuto, + '/preview/layout-auto-custom': LayoutAutoCustom, '/preview/slider-marker': SliderMarker, '/preview/slider-trace': SliderTrace, '/preview/slider': Slider, - '/preview/spinner-large': SpinnerLarge, - '/preview/spinner': Spinner, - '/preview/split-button-icons': SplitButtonIcons, - '/preview/split-button': SplitButton, '/preview/tabs-rounded': TabsRounded, - '/preview/tabs': Tabs, - '/preview/textarea-disabled': TextareaDisabled, - '/preview/textarea-readonly': TextareaReadonly, - '/preview/textarea': Textarea, '/preview/theme-switcher': ThemeSwitcher, - '/preview/tile': Tile, - '/preview/timepicker': Timepicker, - '/preview/toast-custom': ToastCustom, - '/preview/toast-position': ToastPosition, - '/preview/toast': Toast, '/preview/toggle-button-primary-ghost': ToggleButtonPrimaryGhost, '/preview/toggle-button-primary-outline': ToggleButtonPrimaryOutline, '/preview/toggle-button-primary': ToggleButtonPrimary, @@ -342,18 +420,16 @@ const routes: any = { '/preview/toggle-button-secondary': ToggleButtonSecondary, '/preview/toggle-checked': ToggleChecked, '/preview/toggle-custom-label': ToggleCustomLabel, - '/preview/toggle-disabled': ToggleDisabled, '/preview/toggle-indeterminate': ToggleIndeterminate, - '/preview/toggle': Toggle, - '/preview/tooltip': Tooltip, - '/preview/tree-custom': TreeCustom, - '/preview/tree': Tree, '/preview/upload': Upload, '/preview/validation': Validation, '/preview/vertical-tabs-with-avatar': VerticalTabsWithAvatar, '/preview/vertical-tabs': VerticalTabs, - '/preview/workflow-vertical': WorkflowVertical, - '/preview/workflow': Workflow, + '/preview/button-danger': ButtonDanger, + '/preview/button-danger-ghost': ButtonDangerGhost, + '/preview/button-danger-outline': ButtonDangerOutline, + '/preview/form-layout-auto': FormLayoutAuto, + '/preview/form-layout-grid': FormLayoutGrid, }; const currentPath = ref(window.location.pathname); @@ -366,3 +442,4 @@ const currentView = computed(() => { +import layoutAutoVue from './preview-examples/layout-auto.vue'; diff --git a/packages/vue-test-app/src/preview-examples/about-and-legal.vue b/packages/vue-test-app/src/preview-examples/about-and-legal.vue index a7d1f7a1a1b..1d3013c48c8 100644 --- a/packages/vue-test-app/src/preview-examples/about-and-legal.vue +++ b/packages/vue-test-app/src/preview-examples/about-and-legal.vue @@ -11,7 +11,6 @@ import { IxApplication, IxApplicationHeader, - IxBasicNavigation, IxMenu, IxMenuAbout, IxMenuAboutItem, diff --git a/packages/vue-test-app/src/preview-examples/custom-field-validation.vue b/packages/vue-test-app/src/preview-examples/custom-field-validation.vue new file mode 100644 index 00000000000..85beecea48d --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/custom-field-validation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/custom-field.vue b/packages/vue-test-app/src/preview-examples/custom-field.vue new file mode 100644 index 00000000000..5244300ee10 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/custom-field.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/date-input-disabled.vue b/packages/vue-test-app/src/preview-examples/date-input-disabled.vue new file mode 100644 index 00000000000..0cb31259ab6 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/date-input-disabled.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/date-input-label.vue b/packages/vue-test-app/src/preview-examples/date-input-label.vue new file mode 100644 index 00000000000..e288bf1234c --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/date-input-label.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/date-input-readonly.vue b/packages/vue-test-app/src/preview-examples/date-input-readonly.vue new file mode 100644 index 00000000000..8590838bd1b --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/date-input-readonly.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/date-input-validation.vue b/packages/vue-test-app/src/preview-examples/date-input-validation.vue new file mode 100644 index 00000000000..56b08bc1725 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/date-input-validation.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/date-input.vue b/packages/vue-test-app/src/preview-examples/date-input.vue new file mode 100644 index 00000000000..93c71982fe1 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/date-input.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox-disabled.vue b/packages/vue-test-app/src/preview-examples/form-checkbox-disabled.vue new file mode 100644 index 00000000000..f8198fa53f5 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox-disabled.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.css b/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.css new file mode 100644 index 00000000000..d86ca7ea8ab --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.css @@ -0,0 +1,16 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.cb-padding { + padding-left: 1rem; +} diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.vue b/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.vue new file mode 100644 index 00000000000..392438b4826 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox-group-indeterminate.vue @@ -0,0 +1,76 @@ + + + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox-group.vue b/packages/vue-test-app/src/preview-examples/form-checkbox-group.vue new file mode 100644 index 00000000000..22fd8c98d32 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox-group.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox-validation.vue b/packages/vue-test-app/src/preview-examples/form-checkbox-validation.vue new file mode 100644 index 00000000000..f6129e4795b --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox-validation.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-checkbox.vue b/packages/vue-test-app/src/preview-examples/form-checkbox.vue new file mode 100644 index 00000000000..8b0d14f66b6 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-checkbox.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-layout-auto.vue b/packages/vue-test-app/src/preview-examples/form-layout-auto.vue new file mode 100644 index 00000000000..27b7959f4f5 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-layout-auto.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/vue-test-app/src/preview-examples/form-layout-grid.css b/packages/vue-test-app/src/preview-examples/form-layout-grid.css new file mode 100644 index 00000000000..d6390b71019 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-layout-grid.css @@ -0,0 +1,7 @@ +.layout-grid-example { + ix-select, + ix-input, + ix-button { + width: 100%; + } +} diff --git a/packages/vue-test-app/src/preview-examples/form-layout-grid.vue b/packages/vue-test-app/src/preview-examples/form-layout-grid.vue new file mode 100644 index 00000000000..abcba5c8a18 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-layout-grid.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/form-validation.css b/packages/vue-test-app/src/preview-examples/form-validation.css new file mode 100644 index 00000000000..4f98e054d49 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-validation.css @@ -0,0 +1,22 @@ +/* + * SPDX-FileCopyrightText: 2024 Siemens AG + * + * SPDX-License-Identifier: MIT + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/* + * Styles get overwritten by html-test-app css files each build or dev task. + * If you want to modify the example styles do this only inside the html-test-app + */ + +.form-validation-example { + display: flex; + flex-direction: column; + width: fit-content; +} + +.form-validation-example .padding-right { + padding-right: 0.5rem; +} diff --git a/packages/vue-test-app/src/preview-examples/form-validation.vue b/packages/vue-test-app/src/preview-examples/form-validation.vue new file mode 100644 index 00000000000..5ddc5821927 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/form-validation.vue @@ -0,0 +1,284 @@ + + + + + + + diff --git a/packages/vue-test-app/src/preview-examples/input-disabled.vue b/packages/vue-test-app/src/preview-examples/input-disabled.vue index fd8497bc857..45fc6d0636a 100644 --- a/packages/vue-test-app/src/preview-examples/input-disabled.vue +++ b/packages/vue-test-app/src/preview-examples/input-disabled.vue @@ -7,15 +7,14 @@ * LICENSE file in the root directory of this source tree. --> - + diff --git a/packages/vue-test-app/src/preview-examples/input-label.vue b/packages/vue-test-app/src/preview-examples/input-label.vue new file mode 100644 index 00000000000..6d6e5af8dae --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/input-label.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/input-legacy-disabled.vue b/packages/vue-test-app/src/preview-examples/input-legacy-disabled.vue new file mode 100644 index 00000000000..fd8497bc857 --- /dev/null +++ b/packages/vue-test-app/src/preview-examples/input-legacy-disabled.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/packages/vue-test-app/src/preview-examples/input-labels.vue b/packages/vue-test-app/src/preview-examples/input-legacy-labels.vue similarity index 88% rename from packages/vue-test-app/src/preview-examples/input-labels.vue rename to packages/vue-test-app/src/preview-examples/input-legacy-labels.vue index cd5aa82ef85..0275560c53f 100644 --- a/packages/vue-test-app/src/preview-examples/input-labels.vue +++ b/packages/vue-test-app/src/preview-examples/input-legacy-labels.vue @@ -8,7 +8,7 @@ -->