@aquera/nile-elements 1.5.4 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/demo/index.css +9 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +871 -255
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +13 -2
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.cjs.js +1 -1
- package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.esm.js +89 -33
- package/dist/nile-button/nile-button.esm.js +2 -2
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.esm.js +59 -2
- package/dist/nile-calendar/nile-calendar.esm.js +16 -10
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -5
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +37 -23
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.esm.js +7 -6
- package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +4 -4
- package/dist/nile-detail/index.cjs.js +2 -0
- package/dist/nile-detail/index.cjs.js.map +1 -0
- package/dist/nile-detail/index.esm.js +1 -0
- package/dist/nile-detail/nile-detail.cjs.js +2 -0
- package/dist/nile-detail/nile-detail.cjs.js.map +1 -0
- package/dist/nile-detail/nile-detail.css.cjs.js +2 -0
- package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -0
- package/dist/nile-detail/nile-detail.css.esm.js +149 -0
- package/dist/nile-detail/nile-detail.esm.js +45 -0
- package/dist/nile-detail/nile-detail.utils.cjs.js +2 -0
- package/dist/nile-detail/nile-detail.utils.cjs.js.map +1 -0
- package/dist/nile-detail/nile-detail.utils.esm.js +1 -0
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -2
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +24 -2
- package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.esm.js +15 -6
- package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +19 -0
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +16 -14
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +8 -3
- package/dist/nile-input/nile-input.css.cjs.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.esm.js +4 -4
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.cjs.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.esm.js +3 -4
- package/dist/nile-link/nile-link.esm.js +2 -2
- package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.esm.js +109 -5
- package/dist/nile-pagination/nile-pagination.esm.js +70 -3
- package/dist/nile-qr-code/index.cjs.js +2 -0
- package/dist/nile-qr-code/index.cjs.js.map +1 -0
- package/dist/nile-qr-code/index.esm.js +1 -0
- package/dist/nile-qr-code/nile-qr-code-utils.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code-utils.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code-utils.esm.js +1 -0
- package/dist/nile-qr-code/nile-qr-code.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code.css.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code.css.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code.css.esm.js +12 -0
- package/dist/nile-qr-code/nile-qr-code.esm.js +9 -0
- package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +25 -6
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.esm.js +4 -3
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +7 -4
- package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.css.esm.js +5 -1
- package/dist/nile-textarea/nile-textarea.css.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.css.cjs.js.map +1 -1
- package/dist/nile-textarea/nile-textarea.css.esm.js +10 -5
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +5 -3
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js +11 -0
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
- package/dist/src/nile-button/nile-button.css.js +89 -33
- package/dist/src/nile-button/nile-button.css.js.map +1 -1
- package/dist/src/nile-button/nile-button.js +5 -5
- package/dist/src/nile-button/nile-button.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.css.js +57 -0
- package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.d.ts +1 -0
- package/dist/src/nile-calendar/nile-calendar.js +24 -6
- package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -5
- package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.css.js +35 -21
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.css.js +7 -6
- package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +7 -1
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-date-picker/nile-date-picker.d.ts +3 -0
- package/dist/src/nile-date-picker/nile-date-picker.js +22 -2
- package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
- package/dist/src/nile-detail/index.d.ts +1 -0
- package/dist/src/nile-detail/index.js +2 -0
- package/dist/src/nile-detail/index.js.map +1 -0
- package/dist/src/nile-detail/nile-detail.css.d.ts +3 -0
- package/dist/src/nile-detail/nile-detail.css.js +152 -0
- package/dist/src/nile-detail/nile-detail.css.js.map +1 -0
- package/dist/src/nile-detail/nile-detail.d.ts +29 -0
- package/dist/src/nile-detail/nile-detail.js +143 -0
- package/dist/src/nile-detail/nile-detail.js.map +1 -0
- package/dist/src/nile-detail/nile-detail.test.d.ts +1 -0
- package/dist/src/nile-detail/nile-detail.test.js +168 -0
- package/dist/src/nile-detail/nile-detail.test.js.map +1 -0
- package/dist/src/nile-detail/nile-detail.utils.d.ts +8 -0
- package/dist/src/nile-detail/nile-detail.utils.js +117 -0
- package/dist/src/nile-detail/nile-detail.utils.js.map +1 -0
- package/dist/src/nile-dropdown/nile-dropdown.d.ts +1 -0
- package/dist/src/nile-dropdown/nile-dropdown.js +11 -0
- package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +11 -6
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.css.js +22 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +1 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.js +6 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
- package/dist/src/nile-inline-edit/nile-inline-edit.css.js +15 -6
- package/dist/src/nile-inline-edit/nile-inline-edit.css.js.map +1 -1
- package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +2 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.js +7 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +19 -0
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +6 -0
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +88 -4
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.d.ts +3 -0
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js +110 -0
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js.map +1 -0
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.d.ts +2 -0
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js +109 -0
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +4 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +30 -2
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.d.ts +2 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js +109 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js.map +1 -0
- package/dist/src/nile-input/nile-input.css.js +4 -4
- package/dist/src/nile-input/nile-input.css.js.map +1 -1
- package/dist/src/nile-link/nile-link.css.js +1 -2
- package/dist/src/nile-link/nile-link.css.js.map +1 -1
- package/dist/src/nile-link/nile-link.js +1 -0
- package/dist/src/nile-link/nile-link.js.map +1 -1
- package/dist/src/nile-pagination/nile-pagination.css.js +107 -3
- package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
- package/dist/src/nile-pagination/nile-pagination.d.ts +5 -1
- package/dist/src/nile-pagination/nile-pagination.js +84 -1
- package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
- package/dist/src/nile-pagination/nile-pagination.test.js +1187 -103
- package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -1
- package/dist/src/nile-qr-code/index.d.ts +1 -0
- package/dist/src/nile-qr-code/index.js +2 -0
- package/dist/src/nile-qr-code/index.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.d.ts +15 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.js +678 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.d.ts +12 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.js +24 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.d.ts +127 -0
- package/dist/src/nile-qr-code/nile-qr-code.js +381 -0
- package/dist/src/nile-qr-code/nile-qr-code.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.d.ts +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.js +719 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.js.map +1 -0
- package/dist/src/nile-radio/nile-radio.css.js +1 -1
- package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +25 -6
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +17 -6
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-select.js +7 -2
- package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +7 -4
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js +5 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js.map +1 -1
- package/dist/src/nile-textarea/nile-textarea.css.js +10 -5
- package/dist/src/nile-textarea/nile-textarea.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +5 -3
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/index.ts +3 -2
- package/src/nile-auto-complete/nile-auto-complete.css.ts +11 -0
- package/src/nile-button/nile-button.css.ts +89 -33
- package/src/nile-button/nile-button.ts +6 -5
- package/src/nile-calendar/nile-calendar.css.ts +57 -0
- package/src/nile-calendar/nile-calendar.ts +17 -6
- package/src/nile-checkbox/nile-checkbox.css.ts +4 -5
- package/src/nile-chip/nile-chip.css.ts +35 -21
- package/src/nile-code-editor/nile-code-editor.css.ts +7 -6
- package/src/nile-code-editor/nile-code-editor.ts +7 -1
- package/src/nile-date-picker/nile-date-picker.ts +22 -2
- package/src/nile-detail/index.ts +1 -0
- package/src/nile-detail/nile-detail.css.ts +153 -0
- package/src/nile-detail/nile-detail.test.ts +215 -0
- package/src/nile-detail/nile-detail.ts +140 -0
- package/src/nile-detail/nile-detail.utils.ts +133 -0
- package/src/nile-dropdown/nile-dropdown.ts +11 -0
- package/src/nile-file-upload/utils/file-validation.util.ts +10 -5
- package/src/nile-filter-chip/nile-filter-chip.css.ts +22 -0
- package/src/nile-filter-chip/nile-filter-chip.ts +2 -0
- package/src/nile-inline-edit/nile-inline-edit.css.ts +15 -6
- package/src/nile-inline-edit/nile-inline-edit.ts +4 -0
- package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +19 -0
- package/src/nile-inline-sidebar/nile-inline-sidebar.test.ts +108 -0
- package/src/nile-inline-sidebar/nile-inline-sidebar.ts +108 -5
- package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.ts +107 -0
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.ts +107 -0
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +34 -3
- package/src/nile-input/nile-input.css.ts +4 -4
- package/src/nile-link/nile-link.css.ts +1 -2
- package/src/nile-link/nile-link.ts +1 -0
- package/src/nile-pagination/nile-pagination.css.ts +107 -3
- package/src/nile-pagination/nile-pagination.test.ts +1388 -101
- package/src/nile-pagination/nile-pagination.ts +87 -2
- package/src/nile-qr-code/index.ts +1 -0
- package/src/nile-qr-code/nile-qr-code-utils.ts +733 -0
- package/src/nile-qr-code/nile-qr-code.css.ts +26 -0
- package/src/nile-qr-code/nile-qr-code.test.ts +879 -0
- package/src/nile-qr-code/nile-qr-code.ts +431 -0
- package/src/nile-radio/nile-radio.css.ts +1 -1
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +25 -6
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +14 -6
- package/src/nile-rich-text-editor/nile-rte-select.ts +5 -2
- package/src/nile-select/nile-select.css.ts +7 -4
- package/src/nile-slide-toggle/nile-slide-toggle.css.ts +5 -1
- package/src/nile-textarea/nile-textarea.css.ts +10 -5
- package/src/nile-virtual-select/nile-virtual-select.css.ts +5 -3
- package/vscode-html-custom-data.json +163 -10
- package/web-test-runner.config.mjs +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-qr-code.test.js","sourceRoot":"","sources":["../../../src/nile-qr-code/nile-qr-code.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html } from '@open-wc/testing';\nimport './nile-qr-code';\nimport NileQrCode from './nile-qr-code';\n\ndescribe('NileQrCode', () => {\n // === RENDERING ===\n\n it('1. should render without errors', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a canvas element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n it('4. should have a canvas with correct default size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('128');\n expect(canvas!.getAttribute('height')).to.equal('128');\n });\n\n it('5. shadow root should be open mode', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot!.mode).to.equal('open');\n });\n\n // === DEFAULT PROPERTY VALUES ===\n\n it('6. should have default value of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.value).to.equal('');\n });\n\n it('7. should have default size of 128', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.size).to.equal(128);\n });\n\n it('8. should have default fill of black', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.fill).to.equal('black');\n });\n\n it('9. should have default background of white', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.background).to.equal('white');\n });\n\n it('10. should have default radius of 0', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.radius).to.equal(0);\n });\n\n it('11. should have default errorCorrection of H', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('H');\n });\n\n it('12. should have default label of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.label).to.equal('');\n });\n\n // === PROPERTY SETTING ===\n\n it('13. should accept value property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://example.com\"></nile-qr-code>`);\n expect(el.value).to.equal('https://example.com');\n });\n\n it('14. should accept size property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"256\"></nile-qr-code>`);\n expect(el.size).to.equal(256);\n });\n\n it('15. should accept fill property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"red\"></nile-qr-code>`);\n expect(el.fill).to.equal('red');\n });\n\n it('16. should accept background property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"blue\"></nile-qr-code>`);\n expect(el.background).to.equal('blue');\n });\n\n it('17. should accept radius property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.5\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.5);\n });\n\n it('18. should accept error-correction property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code error-correction=\"L\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('L');\n });\n\n it('19. should accept label property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code label=\"Scan me\"></nile-qr-code>`);\n expect(el.label).to.equal('Scan me');\n });\n\n // === ATTRIBUTE REFLECTION ===\n\n it('20. should reflect value to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.getAttribute('value')).to.equal('test');\n });\n\n it('21. should reflect size to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"64\"></nile-qr-code>`);\n expect(el.getAttribute('size')).to.equal('64');\n });\n\n it('22. should reflect fill to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"green\"></nile-qr-code>`);\n expect(el.getAttribute('fill')).to.equal('green');\n });\n\n it('23. should reflect background to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"yellow\"></nile-qr-code>`);\n expect(el.getAttribute('background')).to.equal('yellow');\n });\n\n it('24. should reflect radius to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.3\"></nile-qr-code>`);\n expect(el.getAttribute('radius')).to.equal('0.3');\n });\n\n it('25. should reflect error-correction to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code error-correction=\"M\"></nile-qr-code>`);\n expect(el.getAttribute('error-correction')).to.equal('M');\n });\n\n it('26. should reflect label to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code label=\"My QR\"></nile-qr-code>`);\n expect(el.getAttribute('label')).to.equal('My QR');\n });\n\n // === ACCESSIBILITY ===\n\n it('27. should have role=img on canvas', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('role')).to.equal('img');\n });\n\n it('28. should use label for aria-label when provided', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://test.com\" label=\"Scan this code\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('Scan this code');\n });\n\n it('29. should fallback to value for aria-label when no label', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://test.com\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('https://test.com');\n });\n\n it('30. should fallback to \"QR Code\" for aria-label when no label and no value', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('QR Code');\n });\n\n // === CSS PARTS ===\n\n it('31. should have base part on canvas', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('[part=\"base\"]');\n expect(canvas).to.exist;\n });\n\n it('32. base part should be the canvas element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('[part=\"base\"]');\n expect(canvas!.tagName.toLowerCase()).to.equal('canvas');\n });\n\n // === SIZE CHANGES ===\n\n it('33. should update canvas width when size changes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"64\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('64');\n });\n\n it('34. should update canvas height when size changes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"256\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('height')).to.equal('256');\n });\n\n it('35. should redraw when size property is changed programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" size=\"128\"></nile-qr-code>`);\n el.size = 64;\n await el.updateComplete;\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('64');\n });\n\n // === VALUE CHANGES ===\n\n it('36. should render QR code when value is set', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"Hello\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n // Canvas should have some drawn content\n const ctx = canvas!.getContext('2d');\n expect(ctx).to.exist;\n });\n\n it('37. should redraw when value changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"First\"></nile-qr-code>`);\n el.value = 'Second';\n await el.updateComplete;\n expect(el.value).to.equal('Second');\n });\n\n it('38. should handle empty value gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"\"></nile-qr-code>`);\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('39. should handle long URLs', async () => {\n const longUrl = 'https://example.com/' + 'a'.repeat(200);\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=${longUrl}></nile-qr-code>`);\n expect(el).to.exist;\n expect(el.value).to.equal(longUrl);\n });\n\n // === ERROR CORRECTION LEVELS ===\n\n it('40. should accept error-correction L', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"L\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('L');\n });\n\n it('41. should accept error-correction M', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"M\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('M');\n });\n\n it('42. should accept error-correction Q', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"Q\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('Q');\n });\n\n it('43. should accept error-correction H', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"H\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('H');\n });\n\n // === RADIUS ===\n\n it('44. should accept radius 0', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0\"></nile-qr-code>`);\n expect(el.radius).to.equal(0);\n });\n\n it('45. should accept radius 0.5', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.5\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.5);\n });\n\n it('46. should accept fractional radius values', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.25\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.25);\n });\n\n // === COLOR PROPERTIES ===\n\n it('47. should accept hex fill color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"#FF0000\"></nile-qr-code>`);\n expect(el.fill).to.equal('#FF0000');\n });\n\n it('48. should accept rgb fill color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"rgb(255,0,0)\"></nile-qr-code>`);\n expect(el.fill).to.equal('rgb(255,0,0)');\n });\n\n it('49. should accept transparent background', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"transparent\"></nile-qr-code>`);\n expect(el.background).to.equal('transparent');\n });\n\n it('50. should accept hex background color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"#0000FF\"></nile-qr-code>`);\n expect(el.background).to.equal('#0000FF');\n });\n\n // === INSTANCE ===\n\n it('51. should be instance of NileQrCode', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el).to.be.instanceOf(NileQrCode);\n });\n\n it('52. should have correct tag name', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-qr-code');\n });\n\n it('53. should be a defined custom element', async () => {\n expect(customElements.get('nile-qr-code')).to.exist;\n });\n\n it('54. should be registered as NileQrCode', async () => {\n expect(customElements.get('nile-qr-code')).to.equal(NileQrCode);\n });\n\n // === STATIC STYLES ===\n\n it('55. should have static styles', async () => {\n const styles = NileQrCode.styles;\n expect(styles).to.exist;\n expect(Array.isArray(styles)).to.be.true;\n });\n\n it('56. styles array should have at least one entry', async () => {\n const styles = NileQrCode.styles;\n expect((styles as any[]).length).to.be.greaterThan(0);\n });\n\n // === RENDER METHOD ===\n\n it('57. should have render method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.render).to.be.a('function');\n });\n\n it('58. render should return a TemplateResult', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const result = el.render();\n expect(result).to.exist;\n });\n\n it('59. should not throw when render is called', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(() => el.render()).to.not.throw();\n });\n\n // === UPDATE LIFECYCLE ===\n\n it('60. should have updateComplete promise', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.updateComplete).to.be.a('promise');\n });\n\n it('61. updateComplete should resolve', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const result = await el.updateComplete;\n expect(result).to.not.be.undefined;\n });\n\n it('62. should render consistently after re-render', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n await el.requestUpdate();\n await el.updateComplete;\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n it('63. should maintain canvas after multiple updates', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n for (let i = 0; i < 5; i++) {\n await el.requestUpdate();\n await el.updateComplete;\n }\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n // === DOM STRUCTURE ===\n\n it('64. canvas should be the only child in shadow root template', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvases = el.shadowRoot!.querySelectorAll('canvas');\n expect(canvases.length).to.equal(1);\n });\n\n it('65. should not have any slot elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const slots = el.shadowRoot!.querySelectorAll('slot');\n expect(slots.length).to.equal(0);\n });\n\n it('66. should not have any input elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const inputs = el.shadowRoot!.querySelectorAll('input');\n expect(inputs.length).to.equal(0);\n });\n\n it('67. should not have any button elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const buttons = el.shadowRoot!.querySelectorAll('button');\n expect(buttons.length).to.equal(0);\n });\n\n it('68. should not have any SVG elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const svgs = el.shadowRoot!.querySelectorAll('svg');\n expect(svgs.length).to.equal(0);\n });\n\n it('69. should not have light DOM content', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.childNodes.length).to.equal(0);\n });\n\n // === DOM MANIPULATION ===\n\n it('70. should render after being added to DOM programmatically', async () => {\n const container = await fixture(html`<div></div>`);\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('71. should handle removal and re-addition', async () => {\n const container = await fixture(html`<div></div>`);\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n await el.updateComplete;\n container.removeChild(el);\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('72. should work when created via new', async () => {\n const el = new NileQrCode();\n document.body.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n document.body.removeChild(el);\n });\n\n it('73. should be connectedCallback-compatible', async () => {\n const el = document.createElement('nile-qr-code') as NileQrCode;\n document.body.appendChild(el);\n await el.updateComplete;\n expect(el.isConnected).to.be.true;\n document.body.removeChild(el);\n });\n\n it('74. should handle disconnectedCallback', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n el.remove();\n expect(el.isConnected).to.be.false;\n });\n\n // === RENDERING CONTEXTS ===\n\n it('75. should render correctly inside a flex container', async () => {\n const container = await fixture(html`<div style=\"display:flex\"><nile-qr-code value=\"test\"></nile-qr-code></div>`);\n const qr = container.querySelector('nile-qr-code')!;\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('76. should render correctly inside a grid container', async () => {\n const container = await fixture(html`<div style=\"display:grid\"><nile-qr-code value=\"test\"></nile-qr-code></div>`);\n const qr = container.querySelector('nile-qr-code')!;\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('77. should render correctly with class attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code class=\"custom-class\"></nile-qr-code>`);\n expect(el.classList.contains('custom-class')).to.be.true;\n });\n\n it('78. should render correctly with id attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code id=\"my-qr\"></nile-qr-code>`);\n expect(el.id).to.equal('my-qr');\n });\n\n it('79. should render correctly with style attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code style=\"margin:10px\"></nile-qr-code>`);\n expect(el.style.margin).to.equal('10px');\n });\n\n it('80. should render correctly with hidden attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code hidden></nile-qr-code>`);\n expect(el.hidden).to.be.true;\n });\n\n // === MULTIPLE INSTANCES ===\n\n it('81. should render multiple QR codes independently', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"One\"></nile-qr-code>\n <nile-qr-code value=\"Two\"></nile-qr-code>\n <nile-qr-code value=\"Three\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n expect(qrCodes.length).to.equal(3);\n });\n\n it('82. each QR code should have its own shadow root', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"A\"></nile-qr-code>\n <nile-qr-code value=\"B\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n expect(qrCodes[0].shadowRoot).to.not.equal(qrCodes[1].shadowRoot);\n });\n\n it('83. multiple instances should each have a canvas', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"X\"></nile-qr-code>\n <nile-qr-code value=\"Y\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n qrCodes.forEach(qr => {\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n });\n\n // === PROGRAMMATIC PROPERTY CHANGES ===\n\n it('84. should redraw when fill changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill=\"black\"></nile-qr-code>`);\n el.fill = 'red';\n await el.updateComplete;\n expect(el.fill).to.equal('red');\n });\n\n it('85. should redraw when background changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" background=\"white\"></nile-qr-code>`);\n el.background = 'transparent';\n await el.updateComplete;\n expect(el.background).to.equal('transparent');\n });\n\n it('86. should redraw when radius changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" radius=\"0\"></nile-qr-code>`);\n el.radius = 0.3;\n await el.updateComplete;\n expect(el.radius).to.equal(0.3);\n });\n\n it('87. should redraw when errorCorrection changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"H\"></nile-qr-code>`);\n el.errorCorrection = 'L';\n await el.updateComplete;\n expect(el.errorCorrection).to.equal('L');\n });\n\n // === EDGE CASES ===\n\n it('88. should handle being moved between containers', async () => {\n const container1 = await fixture(html`<div></div>`) as HTMLElement;\n const container2 = await fixture(html`<div></div>`) as HTMLElement;\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container1.appendChild(el);\n await el.updateComplete;\n container2.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('89. should handle rapid add/remove', async () => {\n const container = await fixture(html`<div></div>`) as HTMLElement;\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n container.removeChild(el);\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('90. shadowRoot host should reference the element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot!.host).to.equal(el);\n });\n\n it('91. should handle data-* attributes gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code data-testid=\"qr1\"></nile-qr-code>`);\n expect(el.getAttribute('data-testid')).to.equal('qr1');\n });\n\n it('92. should handle setting custom aria attributes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code aria-hidden=\"true\"></nile-qr-code>`);\n expect(el.getAttribute('aria-hidden')).to.equal('true');\n });\n\n // === CANVAS ATTRIBUTES ===\n\n it('93. canvas should have width attribute matching size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"200\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('200');\n });\n\n it('94. canvas should have height attribute matching size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"200\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('height')).to.equal('200');\n });\n\n it('95. canvas should have part attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('part')).to.equal('base');\n });\n\n it('96. canvas should have role attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.hasAttribute('role')).to.be.true;\n });\n\n it('97. canvas should have aria-label attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.hasAttribute('aria-label')).to.be.true;\n });\n\n // === CONNECTED STATE ===\n\n it('98. should be in connected state after fixture', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.isConnected).to.be.true;\n });\n\n it('99. should not affect parent container', async () => {\n const container = await fixture(html`<div class=\"parent\"><nile-qr-code></nile-qr-code></div>`) as HTMLElement;\n expect(container.classList.contains('parent')).to.be.true;\n expect(container.children.length).to.equal(1);\n });\n\n it('100. should handle all properties at once', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"https://example.com\"\n size=\"256\"\n fill=\"#333\"\n background=\"#FFF\"\n radius=\"0.4\"\n error-correction=\"Q\"\n label=\"Scan to visit\"\n ></nile-qr-code>\n `);\n expect(el.value).to.equal('https://example.com');\n expect(el.size).to.equal(256);\n expect(el.fill).to.equal('#333');\n expect(el.background).to.equal('#FFF');\n expect(el.radius).to.equal(0.4);\n expect(el.errorCorrection).to.equal('Q');\n expect(el.label).to.equal('Scan to visit');\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n expect(canvas!.getAttribute('aria-label')).to.equal('Scan to visit');\n });\n\n // === IMAGE OVERLAY DEFAULTS ===\n\n it('101. should have default image of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.image).to.equal('');\n });\n\n it('102. should have default imageSize of 0.25', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imageSize).to.equal(0.25);\n });\n\n it('103. should have default imagePadding of 4', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imagePadding).to.equal(4);\n });\n\n it('104. should have default imageRadius of 4', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imageRadius).to.equal(4);\n });\n\n // === IMAGE OVERLAY PROPERTY SETTING ===\n\n it('105. should accept image property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image=\"https://example.com/logo.png\"></nile-qr-code>`);\n expect(el.image).to.equal('https://example.com/logo.png');\n });\n\n it('106. should accept image-size property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-size=\"0.3\"></nile-qr-code>`);\n expect(el.imageSize).to.equal(0.3);\n });\n\n it('107. should accept image-padding property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-padding=\"8\"></nile-qr-code>`);\n expect(el.imagePadding).to.equal(8);\n });\n\n it('108. should accept image-radius property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-radius=\"12\"></nile-qr-code>`);\n expect(el.imageRadius).to.equal(12);\n });\n\n // === IMAGE OVERLAY ATTRIBUTE REFLECTION ===\n\n it('109. should reflect image to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image=\"logo.png\"></nile-qr-code>`);\n expect(el.getAttribute('image')).to.equal('logo.png');\n });\n\n it('110. should reflect image-size to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-size=\"0.35\"></nile-qr-code>`);\n expect(el.getAttribute('image-size')).to.equal('0.35');\n });\n\n it('111. should reflect image-padding to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-padding=\"6\"></nile-qr-code>`);\n expect(el.getAttribute('image-padding')).to.equal('6');\n });\n\n it('112. should reflect image-radius to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-radius=\"10\"></nile-qr-code>`);\n expect(el.getAttribute('image-radius')).to.equal('10');\n });\n\n // === IMAGE OVERLAY RENDERING ===\n\n it('113. should still render canvas when image is set', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"https://example.com/logo.png\"></nile-qr-code>`);\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('114. should handle invalid image URL gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"not-a-valid-url\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('115. should handle image property change programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n el.image = 'https://example.com/logo.png';\n await el.updateComplete;\n expect(el.image).to.equal('https://example.com/logo.png');\n });\n\n it('116. should clear image when set to empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"https://example.com/logo.png\"></nile-qr-code>`);\n el.image = '';\n await el.updateComplete;\n expect(el.image).to.equal('');\n });\n\n // === GRADIENT FILL DEFAULTS ===\n\n it('117. should have default fillGradient of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.fillGradient).to.equal('');\n });\n\n // === GRADIENT FILL PROPERTY SETTING ===\n\n it('118. should accept fill-gradient property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill-gradient=\"135, #6366f1, #ec4899\"></nile-qr-code>`);\n expect(el.fillGradient).to.equal('135, #6366f1, #ec4899');\n });\n\n it('119. should reflect fill-gradient to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill-gradient=\"90, red, blue\"></nile-qr-code>`);\n expect(el.getAttribute('fill-gradient')).to.equal('90, red, blue');\n });\n\n it('120. should render with gradient fill', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"45, #000, #fff\"></nile-qr-code>`);\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('121. should fallback to fill when gradient is malformed', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"invalid\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('122. should handle gradient with multiple color stops', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"180, red, orange, yellow, green\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n });\n\n it('123. should handle gradient change programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n el.fillGradient = '90, #333, #999';\n await el.updateComplete;\n expect(el.fillGradient).to.equal('90, #333, #999');\n });\n\n // === DOWNLOAD METHOD ===\n\n it('124. should have a download method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.download).to.be.a('function');\n });\n\n it('125. should have a toDataURL method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.toDataURL).to.be.a('function');\n });\n\n it('126. toDataURL should return a data URL string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n const dataUrl = el.toDataURL();\n expect(dataUrl).to.be.a('string');\n expect(dataUrl).to.include('data:image/png');\n });\n\n it('127. toDataURL should accept a custom MIME type', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n const dataUrl = el.toDataURL('image/jpeg');\n expect(dataUrl).to.be.a('string');\n });\n\n it('128. download should not throw', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(() => el.download('test.png')).to.not.throw();\n });\n\n // === COMBINED FEATURES ===\n\n it('129. should handle gradient + rounded modules together', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"test\"\n radius=\"0.5\"\n fill-gradient=\"45, #6366f1, #ec4899\">\n </nile-qr-code>\n `);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('130. should handle all new properties at once', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"https://example.com\"\n size=\"256\"\n fill=\"#333\"\n background=\"#FFF\"\n radius=\"0.3\"\n error-correction=\"H\"\n label=\"Full featured\"\n image=\"https://example.com/logo.png\"\n image-size=\"0.25\"\n image-padding=\"6\"\n image-radius=\"8\"\n fill-gradient=\"135, #6366f1, #ec4899\">\n </nile-qr-code>\n `);\n expect(el.value).to.equal('https://example.com');\n expect(el.size).to.equal(256);\n expect(el.imageSize).to.equal(0.25);\n expect(el.imagePadding).to.equal(6);\n expect(el.imageRadius).to.equal(8);\n expect(el.fillGradient).to.equal('135, #6366f1, #ec4899');\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-radio.css.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Radio CSS\n */\nexport const styles = css`\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host(:focus-visible) {\n outline: 0px;\n }\n\n .radio {\n display: inline-flex;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n vertical-align: middle;\n cursor: pointer;\n margin: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n align-items: center;\n }\n\n .radio--medium {\n --toggle-size: 14px;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md))\n }\n\n .radio__checked-icon {\n display: var(--nile-display-inline-flex, var(--ng-display-block));\n width: var(--nile-radio-inner-width, var(--ng-width-2));\n height: var(--nile-radio-inner-width, var(--ng-height-8px));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background: var(--nile-radio-checked-icon-background, var(--ng-colors-bg-primary));\n }\n\n .radio__control {\n flex: 0 0 auto;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nile-radio-outer-width, var(--ng-width-4));\n height: var(--nile-radio-outer-height, var(--ng-height-16px));\n border: solid 1px var(--nile-radio-outer-border-color, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background-color: var(--nile-radio-outer-background-color, var(--ng-colors-bg-primary));\n color: transparent;\n transition: var(--nile-transition-duration-default, var(--ng-transition-duration-default)) border-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) background-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) box-shadow;\n }\n\n .radio__input {\n position: absolute;\n opacity: 0;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n pointer-events: none;\n }\n\n /* Hover */\n .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-hover-border-color, var(--ng-colors-border-neutral));\n background: var(--nile-radio-hover-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked */\n .radio--checked .radio__control {\n color: var(--nile-colors-primary-600, var(--ng-colors-fg-brand-primary-600));\n border: 1px solid var(--nile-radio-checked-border-color, var(--ng-colors-bg-brand-solid));\n background-color: var(--nile-radio-checked-background-color,var(--ng-colors-bg-brand-solid));\n }\n\n /* Checked + hover */\n .radio.radio--checked:not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-checked-hover-border-color, var(--ng-colors-bg-brand-solid-hover));\n background-color: var(--nile-radio-checked-hover-background-color, var(--ng-colors-bg-brand-solid-hover));\n }\n\n /* Checked + hover */\n .radio__checked-icon:hover {\n background-color: var(--nile-radio-checked-hover-icon-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked + focus */\n :host(:focus-visible) .radio__control {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n }\n\n .radio__control:focus-visible {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 2px;\n }\n\n /* Focused, but not disabled */\n.radio--focused:not(.radio--disabled) .radio__control {\n outline: solid var(--nile-outline-none, var(--ng-outline-2px)) var(--nile-outline-none, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n}\n\n /* Disabled */\n .radio--disabled {\n
|
|
1
|
+
{"version":3,"file":"nile-radio.css.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Radio CSS\n */\nexport const styles = css`\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host(:focus-visible) {\n outline: 0px;\n }\n\n .radio {\n display: inline-flex;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n vertical-align: middle;\n cursor: pointer;\n margin: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n align-items: center;\n }\n\n .radio--medium {\n --toggle-size: 14px;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md))\n }\n\n .radio__checked-icon {\n display: var(--nile-display-inline-flex, var(--ng-display-block));\n width: var(--nile-radio-inner-width, var(--ng-width-2));\n height: var(--nile-radio-inner-width, var(--ng-height-8px));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background: var(--nile-radio-checked-icon-background, var(--ng-colors-bg-primary));\n }\n\n .radio__control {\n flex: 0 0 auto;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nile-radio-outer-width, var(--ng-width-4));\n height: var(--nile-radio-outer-height, var(--ng-height-16px));\n border: solid 1px var(--nile-radio-outer-border-color, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background-color: var(--nile-radio-outer-background-color, var(--ng-colors-bg-primary));\n color: transparent;\n transition: var(--nile-transition-duration-default, var(--ng-transition-duration-default)) border-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) background-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) box-shadow;\n }\n\n .radio__input {\n position: absolute;\n opacity: 0;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n pointer-events: none;\n }\n\n /* Hover */\n .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-hover-border-color, var(--ng-colors-border-neutral));\n background: var(--nile-radio-hover-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked */\n .radio--checked .radio__control {\n color: var(--nile-colors-primary-600, var(--ng-colors-fg-brand-primary-600));\n border: 1px solid var(--nile-radio-checked-border-color, var(--ng-colors-bg-brand-solid));\n background-color: var(--nile-radio-checked-background-color,var(--ng-colors-bg-brand-solid));\n }\n\n /* Checked + hover */\n .radio.radio--checked:not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-checked-hover-border-color, var(--ng-colors-bg-brand-solid-hover));\n background-color: var(--nile-radio-checked-hover-background-color, var(--ng-colors-bg-brand-solid-hover));\n }\n\n /* Checked + hover */\n .radio__checked-icon:hover {\n background-color: var(--nile-radio-checked-hover-icon-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked + focus */\n :host(:focus-visible) .radio__control {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n }\n\n .radio__control:focus-visible {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 2px;\n }\n\n /* Focused, but not disabled */\n.radio--focused:not(.radio--disabled) .radio__control {\n outline: solid var(--nile-outline-none, var(--ng-outline-2px)) var(--nile-outline-none, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n}\n\n /* Disabled */\n .radio--disabled {\n \n cursor: not-allowed;\n }\n\n .radio--disabled .radio__checked-icon {\n background-color:var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle)); // for v2\n }\n\n .radio--disabled .radio__control {\n background-color:var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled-subtle));\n border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n }\n\n /* When the control isn't checked, hide the circle for Windows High Contrast mode a11y */\n .radio:not(.radio--checked) svg circle {\n opacity: 0;\n }\n\n .radio__label {\n display: inline-block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n line-height: var(--nile-type-scale-3, var(--ng-line-height-text-sm));\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n user-select: none;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n margin-top: var(--nile-spacing-xxs, var(--ng-spacing-xxs));\n }\n .radio__label_border {\n padding: var(--nile-spacing-lg, var(--ng-spacing-xl));\n border-radius: var(--nile-radius-sm, var(--ng-radius-xl));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n`;\n"]}
|
|
@@ -18,7 +18,7 @@ export const styles = css `
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
.rte-container nile-rte-toolbar {
|
|
21
|
+
.rte-container nile-rte-toolbar {
|
|
22
22
|
display: flex;
|
|
23
23
|
align-items: center;
|
|
24
24
|
gap: 6px;
|
|
@@ -26,12 +26,10 @@ export const styles = css `
|
|
|
26
26
|
border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
|
|
27
27
|
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
28
28
|
border-radius: 8px 8px 0 0;
|
|
29
|
-
|
|
30
29
|
width: 100%;
|
|
31
30
|
box-sizing: border-box;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
|
|
35
33
|
.rte-container .editor {
|
|
36
34
|
min-height: 160px;
|
|
37
35
|
width: 100%;
|
|
@@ -46,7 +44,23 @@ export const styles = css `
|
|
|
46
44
|
border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
nile-rich-text-editor[disabled] .rte-container {
|
|
48
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
49
|
+
cursor: not-allowed !important;
|
|
50
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {
|
|
54
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
55
|
+
cursor: not-allowed !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
nile-rich-text-editor[disabled] .rte-container .editor {
|
|
59
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
60
|
+
pointer-events: none ;
|
|
61
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
62
|
+
}
|
|
63
|
+
|
|
50
64
|
nile-rte-preview {
|
|
51
65
|
display: block;
|
|
52
66
|
width: 100%;
|
|
@@ -59,7 +73,11 @@ nile-rte-preview {
|
|
|
59
73
|
word-wrap: break-word;
|
|
60
74
|
}
|
|
61
75
|
|
|
62
|
-
|
|
76
|
+
nile-rich-text-editor[disabled] nile-rte-preview {
|
|
77
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
78
|
+
cursor: not-allowed ;
|
|
79
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
80
|
+
}
|
|
63
81
|
|
|
64
82
|
nile-rte-toolbar-item nile-button::part(base) {
|
|
65
83
|
width: 32px;
|
|
@@ -83,7 +101,6 @@ nile-rte-preview {
|
|
|
83
101
|
background: var(--nile-colors-white-base);
|
|
84
102
|
}
|
|
85
103
|
|
|
86
|
-
|
|
87
104
|
.editor p { margin: 1em 0; }
|
|
88
105
|
.editor h1, .preview h1 {
|
|
89
106
|
font-size: 2em;
|
|
@@ -158,6 +175,8 @@ nile-rte-toolbar-item nile-button[data-active]::part(base):hover {
|
|
|
158
175
|
opacity: 0.7;
|
|
159
176
|
}
|
|
160
177
|
|
|
178
|
+
|
|
179
|
+
|
|
161
180
|
|
|
162
181
|
|
|
163
182
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsLxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert; }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n}\n\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: var(--nile-colors-white-base);\n }\n\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n.editor ol {\n list-style-position: inside; \n padding: 0px;\n}\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(var(--nile-font-family-sans-serif), var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"]}
|
|
@@ -45,6 +45,7 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
45
45
|
super(...arguments);
|
|
46
46
|
this.value = '';
|
|
47
47
|
this.noStyles = false;
|
|
48
|
+
this.disabled = false;
|
|
48
49
|
this.singleLineEditor = false;
|
|
49
50
|
this.placeholder = '';
|
|
50
51
|
this.mentions = {};
|
|
@@ -314,6 +315,7 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
314
315
|
Array.from(tb.children).forEach(child => {
|
|
315
316
|
const tag = child.tagName.toLowerCase();
|
|
316
317
|
if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {
|
|
318
|
+
child.disabled = this.disabled;
|
|
317
319
|
child.addEventListener('change', (e) => {
|
|
318
320
|
this.focusAndRestore();
|
|
319
321
|
const alignment = e.detail;
|
|
@@ -342,14 +344,15 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
342
344
|
btn.variant = 'tertiary';
|
|
343
345
|
btn.size = 'small';
|
|
344
346
|
}
|
|
347
|
+
btn.disabled = this.disabled;
|
|
345
348
|
if (iconAttr) {
|
|
346
|
-
btn.innerHTML = `<nile-icon name="${iconAttr}" aria-label="${label}"></nile-icon>`;
|
|
349
|
+
btn.innerHTML = `<nile-icon name="${iconAttr}" color=${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'} aria-label="${label}"></nile-icon>`;
|
|
347
350
|
child.innerHTML = '';
|
|
348
351
|
}
|
|
349
352
|
else if (!authoredHasContent) {
|
|
350
353
|
const defaultIcon = DEFAULT_ICONS[cmd];
|
|
351
354
|
if (defaultIcon) {
|
|
352
|
-
btn.innerHTML = `<nile-icon name="${defaultIcon}" size="20" color
|
|
355
|
+
btn.innerHTML = `<nile-icon name="${defaultIcon}" size="20" color=${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'} aria-label="${label}"></nile-icon>`;
|
|
353
356
|
}
|
|
354
357
|
else {
|
|
355
358
|
btn.textContent = label || cmd;
|
|
@@ -361,10 +364,15 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
361
364
|
child.innerHTML = '';
|
|
362
365
|
}
|
|
363
366
|
if (!btn.isConnected) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
367
|
+
if (this.disabled) {
|
|
368
|
+
child.appendChild(btn);
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
const tooltip = document.createElement('nile-lite-tooltip');
|
|
372
|
+
tooltip.setAttribute('content', label);
|
|
373
|
+
tooltip.appendChild(btn);
|
|
374
|
+
child.appendChild(tooltip);
|
|
375
|
+
}
|
|
368
376
|
}
|
|
369
377
|
btn.setAttribute('aria-label', label);
|
|
370
378
|
btn.addEventListener('mousedown', e => e.preventDefault());
|
|
@@ -726,6 +734,9 @@ __decorate([
|
|
|
726
734
|
__decorate([
|
|
727
735
|
property({ type: Boolean, attribute: true, reflect: true })
|
|
728
736
|
], NileRichTextEditor.prototype, "noStyles", void 0);
|
|
737
|
+
__decorate([
|
|
738
|
+
property({ type: Boolean, attribute: true, reflect: true })
|
|
739
|
+
], NileRichTextEditor.prototype, "disabled", void 0);
|
|
729
740
|
__decorate([
|
|
730
741
|
property({ type: Boolean, attribute: 'singlelineeditor', reflect: true })
|
|
731
742
|
], NileRichTextEditor.prototype, "singleLineEditor", void 0);
|