Files
threshold-ui/addons/core
08b8b03fed Grant actions card (#3246)
* chore: 🤖 Add initial page layout for code editor + sidebar (#3180)

* chore: 🤖 Add initial page layout for code editor + sidebar

* test: 💍 add missing a11y ignores for exisitng color issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18460

* Replace `Rose::CodeEditor` with `Hds::CodeEditor` (#2679)

* chore: 🤖 replace Rose::CodeEditor with Hds::CodeEditor

- Remove CodeEditor 5 dependency

* chore: 🤖 Replace CodeMirror5 dep

remove CodeMirror5 and replace existing editors with HDS::CodeEditor

* chore: 🤖 deleting old codeeditor styles

* feat: 🎸 changing code editor

changing code editor

✅ Closes: 0

* removed unused export

* pr cleanup

* updating tests for new code editor

* responding to PR feedback

* added whitespace

* fixing linting violations

* chore: 🤖 self-review PR

self-review PR in the course of switching to new HDS code editor

* fix: 🐛 fix linting bug

* fix: 🐛 unneeded dependency

remove jslint dependency as this is handled in the new code editor from
HDS

* fix: 🐛 Fixing import bug

Fix import bug caused by importing scss modules that no longer exist

* Fix and refactor code editor acceptance test

* Fix and refactor code editor acceptance test

* chore: 🤖 remove codemirror dependency

* refactor: 💡 fix merge conflict issues

* test: 💍 update e2e test selectors

* test: 💍 fix target spec click event

* refactor: 💡 clean up test selectors for code editor

* refactor: 💡 clean up storage bucket test selectors

* chore: 🤖 remove code mirror modifiers

---------

Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: cameronperera <cameron.perera@hashicorp.com>

* feat: 🎸 Create string formats component (#3191)

* feat: 🎸 Create string formats component

* Add missing copyright headers

* fix: 🐛 change to readonly

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18458

* feat: 🎸 add grant schema to mirage (#3196)

* feat: 🎸 add grant schema to mirage

* refactor: 💡 update grant schema mirage data

* refactor: 💡 fix route name in mirage

* feat: 🎸 add export options flyout (#3198)

* feat: 🎸 add export options flyout

* fix: 🐛 update id to be ids

* test: 💍 add a11y ignores

* test: 💍 fix tests for grant string format

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-18524

* feat: 🎸 Add autocompletion to code editor (#3207)

* feat: 🎸 create grant actions component

* feat: 🎸 add description to actions

* feat: 🎸 update default logic to not show all actions

* feat: 🎸 show invalid id and type message

* test: 💍 create const for test selectors

* feat: 🎸 trigger action suggestion when cursor moves

* refactor: 💡 add createGrantLineHelpers func

* refactor: 💡 small refactors

* feat: 🎸 Add CSP nonce to code editors (#3230)

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 small refactor

* test: 💍 add more tests

* refactor: 💡 fix merge conflicts issues

* refactor: 💡 updates from PR feedback

* refactor: 💡 updates for completions and linting

* test: 💍 fix test issue with translations

* test: 💍 fix test issue that was already fixed once

* refactor: 💡 address PR feedback

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
Co-authored-by: Zack Moore <zack.moore@hashicorp.com>
Co-authored-by: calcaide <ccorvo@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Bharath Gajjala <120367134+bgajjala8@users.noreply.github.com>
2026-05-14 15:21:29 -04:00
..
2026-05-14 15:21:07 -04:00
2026-01-28 17:09:06 -08:00
2026-05-14 15:21:07 -04:00
2026-05-14 15:21:29 -04:00
2022-10-06 11:41:12 -04:00
2025-06-03 12:55:12 -04:00
2025-06-03 12:55:12 -04:00
2026-02-27 13:32:27 -05:00
2026-01-28 17:09:06 -08:00
2020-11-18 11:58:16 -05:00
2026-05-12 16:02:21 -04:00
2025-06-03 12:55:12 -04:00
2026-01-28 17:09:06 -08:00

Core Features Addon for Boundary

This addon contains core features used by Boundary UIs, such as i18n and helpers.

Add core to an App

Add this addon to an Ember application's devDependencies as: "core": "workspace:*", for applications included in this monorepo.

Installation

See monorepo README for installation instructions.

I18n

To access translations within a template, see ember-intl docs.

Notifications

Use notificaiton decorators to notify the user when a function or action succeeds or fails. For example:

import { notifySuccess, notifyError } from 'core/decorators/notify';

export default class ExampleRoute extends Route {
  @notifyError(({ message }) => message, { catch: true })
  @notifySuccess('notifications.delete-success')
  async myAction() {
    // do something
  }
}

Confirmations

This addon exposes a service to request confirmations and the component used to expose them to users. A decorator is exposed for convenience.

To guard an action on a confirmation, decorate it with @confirm. In this example, the confirmation looks up the translation under a questions.delete-confirm key.

import { confirm } from 'core/decorators/confirm';

export default class ExampleRoute extends Route {
  @confirm('questions.delete-confirm')
  async myAction() {
    // do something
  }
}

In the application template, iterate over confirmations, yielding the confirmation instance as well as accept and deny functions which, when called, update the confirmation status.

<PendingConfirmations as |confirmation accept deny|>
  {{!-- your confirmation dialog component here --}}
</PendingConfirmations

App and Company Names

To make use of the app-name, company-name, and company-copyright helpers, add appName an companyName keys to your Ember config (see admin for example).

Documentation URLs

To render doc links in your application, be sure to configure the links in your Ember config (see admin). Then reference doc links by keys:

<DocLink @doc="account" @iconSize="24" />

Loading Helper

See admin and desktop routes and templates for examples of how to use the loading subsystem. For example, to annotate that an async action should present a loading indicator to a user:

@action
@loading
async myAction() {
  // ...do potentially time-consuming task
}

Scope Service

This addon exposes a service to hold all active scopes (org and project where available).

To make use of the service, import it and initialize it using service injection.

import { service } from '@ember/service';

export default class ExampleRoute extends Route {
  @service scope;
  async myAction() {
    // do something
  }
}

Pnpm Commands

List of available project commands. pnpm run <command-name>

Command Description
build:development Builds the dummy app in development mode.
build Builds the dummy app for production.
lint Runs all lint commands.
lint:js Lints js files.
lint:js:fix Runs automatic lint fixes for js files.
lint:hbs Runs lint for hbs template files.
lint:hbs:fix Runs automatic lint fixes for hbs template files.
format Runs all auto-formatters.
format:js Auto-formats js files using Prettier.
format:hbs Auto-formats hbs files using Prettier.
start Runs the dummy app local server.
test Runs all tests.
test:ember-compatibility Runs tests across multiple Ember versions with ember-try.
precommit Runs all lint, format and tests.
doc:toc Automatically generates a table of contents for this README file.

Additional commands in the monorepo package may affect this projects.

Linting

  • pnpm lint:hbs
  • pnpm lint:hbs --fix
  • pnpm lint:js
  • pnpm lint:js --fix

Formatting

Before submitting your work, be sure to run auto-formatters (see commands above). This helps to ensure consistency among authors.

  • pnpm format

Running tests

  • pnpm test – Runs the test suite on the current Ember version
  • pnpm test --server – Runs the test suite in "watch mode"
  • pnpm test:all – Runs the test suite against multiple Ember versions

Running the dummy application

Contributing

See monorepo README for more contribution instructions.

Building ToC

To autogenerate a ToC (table of contents) for this README, run pnpm doc:toc. Please update the ToC whenever editing the structure of README.