* fix item 2: All page content should be contained by landmarks
* fix item 4. Elements must only use permitted ARIA attributes
* fix item 6. ARIA attributes must conform to valid values
* fix bug on item 6. and fix item 7. <ul> and <ol> must only directly contain <li>, <script> or <template> elements
* fix item 8. Interactive controls must not be nested
* fix item 10. ARIA toggle fields must have an accessible name
* fix item 11. autocomplete attribute must be used correctly
* fix item 12. Form elements must have labels
* fix item 14. ARIA input fields must have an accessible name
* fix item 15. Buttons must have discernible text
* fix item 16. Images must have alternative text
* working on item 17
* finish fix item 17. ARIA role should be appropriate for the element
* fix wrong role in hidden inputs
* address pr comments
* Fix select controls do not close when clicking on arrow
* Rebase
* Control vue-select state via labeledSelect
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Control vue-select state via Select.vue
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Set isOpen to false when select closes
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Move focus back to select wrapper on close
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Defer more select open state logic to wrapper
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Close when no selection is made
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Allow for multiselect
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Fix failing e2e test
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
---------
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
Co-authored-by: Phillip Rak <rak.phillip@gmail.com>
* Simplify spacebar prevent behavior when focusing LabeledSelect
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Fix unit test
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Simplify spacebar prevent behavior when focusing Select
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
---------
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Create new `useDropdownItem` composable
This composable defines common methods that can be shared across different dropdown menu item types.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Create new `RcDropdownMenuItemCheckbox` component
`RcDropdownMenuItemCheckbox` specifies the styles and behaviors for a menu items that acts as a checkbox.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Create a select item dropdown component
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Move container actions into dedicated component
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Toggle container logs actions based on environment
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Fix type for labeledSelect component ref
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Replace trigger mixin data with event.stop
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Fix typo: LocaleSelector
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
---------
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* working on focus trap composable
* working on slide in panel refactor
* add change so that we dont have a change on the component diff
* fix slidein extension details panel key nav
* fine tune cluster badge trigger btn
* finish work on extensions page
* fix lint errors
* address pr comments
* fix problems of propagation
* update return focus for some modals in the extensions main screen
* remove dead code + fix focus selector return for add extensions repo and developer install modals
- Remove custom code, use new generic code that follows 'compact' concept
- Apply to all four fields in row
- Also fix a bug where selected verbs such that another row is shown would grow height of other inputs
Fix height of Create Project Resource Quotes input fields
- Vue2
- Component would inherit attributes, such as class from owning element. For example classes applied to `<Select` would be applied to the first element within the Select component
- $attrs property does not contain some properties from the parent, such as class
- Vue3
- Component does not inherit attributes of owning element
- $attrs property contains all propertiesof parrent, including class
- Bug
- We fixed part one, but not part two
- in Select we were applying class twice, manually to parent and then automatically to v-select
- solution is to fix part two (chop out class)
This defines the `canPaginate()` computed prop so that it can be accessed in the `labeled-form-element` mixin.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* fix issue with Resources Select in globalRoles edit/create interface
* address PR comments
* add missing check
* Minor improvement, add comments
- Did a deep dive on what this should actually be doing, added comments to explain
- We should prioritise methods to find a key via config before falling back on label and random string
- The opt.optionKey has been (previously) applied incorrectly. It should be the actual option key, rather than a key to find the option key
- This is the root of the issue.
- I don't think we should fix this here in case of breaking somewhere else
- The changes in the PR are one's we should be doing anyway
---------
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Richard Cox <richard.cox@suse.com>
* Prevent ESLint to format generated paths
* Add HTML ESLint Rules
* Format all the Vue HTML templates except Harvester
* Exclude Harvester package from linting HTML, keeping old formatting rules
* remove @input event from v-select as event is already sent by default by v-select
* adjust unit tests
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Fixes#4575 Add in validator injection to form-validation mixin, add in "allTabsExtraContent" slot to "tabbed" for messaging that should span all tabs, Error component optionally displays as banner, InputWithSelect can now show validationMessage on text-box without a label, LabeledSelect can now show tooltip and validationMessage at the same time, Select component can now show validation message, adding and removing rules and rulepaths displays correct content, removing does not reload page (fixes#6319), ingress form shows proper validation messages for the following states: invalid "name" field, invalid request host, invalid rule path, invalid rule target service, invalid rule port, invalid default backend target service, invalid default backend port, either rules or default backend must be present. Ingress form is validated and "Create" button is disabled if payload is not validated as correct.
* Use plugins globally in Jest configuration over single statements
* Add checkspell terms
* Add test id and cleanup code for Upgrading
* Create test for Upgrading input actually updating values while typing
* Handle missing terminationGracePeriodSeconds value in the spec qhile hanfling Upgrade value
* Replace Deployment Upgrading input event strategy with blur
* Remove container input listener, over single input emitters, to avoid issues in case of blur
* Extend tests to all the inputs to update the data in the Upgrading tab
* Removed deprecated components
* Correct vue-select import in Vue within Jest setup
* Add vue-select type
* Create form tests sample for input with custom select component
* Create unit tests for all the forms
* Create test for Upgrading without verify value
* Changed from component to query selectors in select input unit tests
* Prevent multiple events due inconsistent event input pattern in network update for Harvester
* Correct TS complain about Vue logic
* Add issue number to TODO
Summary
This ports the components under pkg/rancher-components to TypeScript. Take note that this change also touches some areas outside of pkg/rancher-components, including
shell/mixins/labeled-form-element.ts
shell/mixins/compact-input.ts
shell/components/form/LabeledSelect.vue
shell/components/form/Select.vue
Making changes to these components was required to properly work with the mixins used for pkg/rancher-components/src/components/Form/LabeledInput/LabeledInput.vue. Perhaps these would be good candidates to port to Rancher Components next..
Fixes#5932
Areas or cases that should be tested
We'll need to review a good range of usages for the modified components to check for regressions. I'm mostly concerned about type errors or warnings that might be raised during runtime.
This adds a new project for Rancher Components under `pkg/rancher-components` and replaces components used throughout dashboard with the versions used here. All imports for the following components have been updated:
```
|- BadgeState.vue
|- Banner.vue
|- Card.vue
|- Form
|- Checkbox.vue
|- LabeledInput.vue
|- LabeledTooltip.vue
|- RadioButton.vue
|- RadioGroup.vue
|- TextAreaAutoGrow.vue
```
* Doc
* v0.7.0
* v0.7.1
* v0.7.2
* Add creators
* v0.1.14
* v0.1.17
* Add Yarn link
* Tidy ups and typos
* Allow models to be loaded from plugins
* v0.1.15
* v0.1.18
* v0.6.6
* Improve readme, fix cyperss log msg
* v0.1.17
* v0.1.19
* v0.6.7
* v0.6.8
* Fix logo ref when in shell
* Fix lint issues
* Fix error in example
* Fix script to work on linux
* Add ability to revert moves without losing changes
* Fix bug with custom models in a plugin
* Fix build of UI packages
* Add dist-pkg to .eslintignore
* Pull out util from extend-router to prevent router being pulled in UI packages
* Update PLUGINS.md
* Remove duplicate dependency
* Reduce size of built UI packages
* Share codemirror. Other tidy ups
* Further improvements
* Tidy ups to support i18n in plugins
* Clen up add comments
* More clean-ups and comments added
* Rename from extension to plugin
* Missed file in rename
* v0.6.9
* TIdy ups following rename
* v0.1.20
* v0.1.21
* More refactor and tidy up
* v0.1.22
* v0.1.18
* v0.1.19
* v0.1.23
* v0.6.10
* Version Packages. Improve naming. Unload.
* v0.6.11
* v0.1.20
* v0.1.21
* v0.1.24
* v0.6.12
* v0.1.25
* v0.1.22
* v0.6.13
* Fix issues when plugin is builtin
* Add missing files
* Fix lint issues and watcher ignores
* Fixes following review
* v0.1.28
* v0.1.31
* v0.6.20
* Fix coer.js version
* Fix bug where plugins included via npm don't work
* Changes post merge
* Move plugins doc to dev guide, add note at top of README
* Update cypress version
* Add note about the reset --hard in rejig -d
* Fixes post merge
* Rename @ranch to @rancher and ad plugins
* Improve routes support, add package assets support
* Add uninstall hooks and pass interal opts
* Fix rejig script
* Minor fixes
* Routing tweaks
- attempted to improve `addRoutes` typing, failed a lot
- improved typings in plugins.ts
- added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator
- fixed some linting
- safely fail when Verdaccio isn't running
- fixed some typos
* Remove frontmatter-markdown-loader reference from nuxt-config
* Revert "Remove frontmatter-markdown-loader reference from nuxt-config"
This reverts commit 29ef6f2f7b.
* Exclude creators from dashboard build
* Revert "Exclude creators from dashboard build"
This reverts commit 8ede93ee7c.
* Ingore creators via tsconfig
- We're still susceptible with vue shims in multiple packages
- Need to determine why packages can't use shim from route
- Probably need to move `./vue-shim.d.ts` in to `./shell`. Needs testing with a pkg that imports a component
* After rejig
Co-authored-by: Neil MacDougall <nmacdougall@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>